/* ═══════════════════════════════════════════════════════════════════
   KORAXIS — style_koraxis.css
   CSS copié pixel-perfect depuis NEXORA/MobiGlass TELOS src/style.css
   Adaptations KORAXIS uniquement :
     · #topbar → position:fixed (JS gère marginTop:56px sur #app-shell)
     · #app-shell = flex-row (≡ #app dans NEXORA)
     · .panel dans #main directement (pas de #panels wrapper)
     · .hub-main = .hub-left de NEXORA
     · #stanton-canvas-kx = #stanton-canvas de NEXORA
     · .hub-topbar/.hub-kpi = KPI strip du HUB
═══════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Rajdhani:wght@400;500;600;700&family=Share+Tech+Mono&display=swap');

/* ── TOKENS ─────────────────────────────────────────────────────── */
:root {
  --orange:        #ff9b2f;
  --orange-dim:    #c46a08;
  --orange-glow:   rgba(255,140,0,0.35);
  --orange-faint:  rgba(255,153,0,0.06);
  --green:         #00ff9f;
  --red:           #ff5252;
  --blue:          #59d0ff;
  --purple:        #dc64ff;
  --cyan:          #59d0ff;
  --bg:            #020817;
  --bg2:           #030d1a;
  --bg3:           #071020;
  --border:        rgba(89,208,255,0.15);
  --border-bright: rgba(255,153,0,0.55);
  --text:          #dbe8ff;
  --text-dim:      #6e88aa;
  --text-soft:     #9bb4d3;
  --text-bright:   #eef4ff;
  --mono:          'Share Tech Mono', 'Courier New', monospace;
  --ui:            'Rajdhani', 'Segoe UI', sans-serif;
  --glow-orange:   0 0 12px rgba(255,140,0,0.35);
  --glow-cyan:     0 0 14px rgba(89,208,255,0.25);
  --sidebar-w:     190px;
  --topbar-h:      56px;
  --nav-h:         46px;
  --nav-margin:    4px 9px;
  --nav-padding:   6px 12px;
  --nav-radius:    12px;
  --nav-icon-sz:   14px;
  --kpi-pad:       14px;
  --kpi-val-sz:    20px;
}

/* ── RESET ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { width: 100%; height: 100%; overflow: hidden; }
body {
  font-family: var(--ui);
  color: var(--text);
  background:
    radial-gradient(circle at top, rgba(30,60,120,.25), transparent 40%),
    radial-gradient(circle at bottom right, rgba(255,140,0,.08), transparent 30%),
    linear-gradient(180deg, #02040b 0%, #030814 100%);
}
body::before {
  content: '';
  position: fixed; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: .22;
}
button { font-family: var(--ui); cursor: pointer; }
a { color: inherit; text-decoration: none; }
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: rgba(4,10,20,.8); }
::-webkit-scrollbar-thumb { background: var(--orange-dim); border-radius: 2px; }

/* ── TOPBAR ─────────────────────────────────────────────────────── */
#topbar {
  position: fixed; top: 0; left: 0; right: 0;
  height: var(--topbar-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 18px;
  background: linear-gradient(180deg, rgba(7,12,24,.96), rgba(5,10,20,.92));
  border-bottom: 1px solid rgba(89,208,255,.15);
  backdrop-filter: blur(12px);
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.04), 0 0 30px rgba(0,0,0,.45);
  z-index: 200;
}
#topbar::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--orange), transparent);
  opacity: 0.45;
}
.tb-brand { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.tb-brand img { height: 44px; width: auto; object-fit: contain; mix-blend-mode: screen; filter: drop-shadow(0 0 8px rgba(255,153,0,.4)); }
.tb-name { font-family: 'Orbitron', sans-serif; font-size: 18px; font-weight: 700; color: var(--text-bright); letter-spacing: 2px; }
.tb-sub  { font-size: 10px; letter-spacing: 2.5px; color: var(--text-dim); text-transform: uppercase; }
.tb-center {
  position: absolute; left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; gap: 10px;
  font-family: var(--mono); font-size: 11px; letter-spacing: 2px; color: var(--text-dim);
  pointer-events: none;
}
.status-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--green); box-shadow: 0 0 6px var(--green);
  animation: blink 2s ease-in-out infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes pulse { 0%,100%{opacity:1;box-shadow:0 0 6px #00ff9f} 50%{opacity:.5} }
.tb-right { display: flex; align-items: center; gap: 22px; }
.tb-clock { text-align: right; }
.tb-clock .time, #tb-time { font-family: var(--mono); font-size: 22px; color: var(--orange); letter-spacing: 2px; line-height: 1; }
.tb-clock .date, #tb-date { font-size: 10px; color: var(--text-dim); letter-spacing: 1px; margin-top: 2px; }
.tb-net {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 12px;
  border: 1px solid rgba(255,153,0,.25);
  background: rgba(255,140,0,.06);
  border-radius: 8px;
}
.tb-net .nl { font-size: 12px; color: var(--orange); font-weight: 600; letter-spacing: 1px; }
.tb-net .ns { font-size: 10px; color: var(--text-dim); letter-spacing: 1px; }
.wifi { display: flex; flex-direction: column; align-items: center; gap: 1px; }
.wifi span { background: var(--orange); border-radius: 1px; display: block; }
.wifi span:nth-child(1) { width: 14px; height: 2px; }
.wifi span:nth-child(2) { width: 10px; height: 2px; }
.wifi span:nth-child(3) { width:  6px; height: 2px; }
#btn-login {
  background: #5865F2; color: #fff; border: none;
  padding: 8px 18px; font-family: var(--mono); font-size: 11px; letter-spacing: 2px;
  clip-path: polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  display: flex; align-items: center; gap: 8px;
}
#btn-login:hover { background: #4752c4; }
#user-menu { display: none !important; }

/* ── APP SHELL ──────────────────────────────────────────────────── */
#app-shell {
  display: flex; overflow: hidden;
  margin-top: var(--topbar-h);
  height: calc(100vh - var(--topbar-h) - 10px);
}

/* ── SIDEBAR ────────────────────────────────────────────────────── */
#sidebar {
  width: var(--sidebar-w);
  min-width: 0; max-width: var(--sidebar-w); flex-shrink: 0;
  background: linear-gradient(180deg, rgba(4,10,20,.96), rgba(5,14,30,.92));
  border-right: 1px solid rgba(89,208,255,.12);
  backdrop-filter: blur(18px);
  display: none; flex-direction: column;
  height: 100%; overflow: hidden;
  padding-top: 4px;
}
#sidebar.visible { display: flex; }
/* Zone de nav scrollable indépendamment — la carte profil (.sb-profile, hors de
   ce wrapper) garde toujours sa place et ne peut plus être poussée hors écran,
   même si la liste de liens est longue. */
.sb-nav-scroll {
  flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden;
}
.sb-nav-scroll::-webkit-scrollbar       { width: 3px; }
.sb-nav-scroll::-webkit-scrollbar-track { background: transparent; }
.sb-nav-scroll::-webkit-scrollbar-thumb { background: rgba(255,153,0,.2); border-radius: 2px; }

.sb-section { padding: 6px 0 2px; }
.sb-section-label,
.nav-group-label {
  font-family: var(--mono); font-size: 8px; letter-spacing: 2px;
  color: rgba(89,208,255,.3); padding: 4px 14px 4px; text-transform: uppercase;
  display: block;
}
.sb-divider, .nav-divider { height: 1px; background: rgba(255,153,0,.25); margin: 4px 12px; }

/* Nav items — NEXORA glassmorphism exact */
.nav-item {
  display: flex; align-items: center; gap: 10px;
  margin: var(--nav-margin);
  padding: var(--nav-padding);
  border-radius: var(--nav-radius);
  border: 1px solid transparent;
  min-height: var(--nav-h);
  cursor: pointer;
  transition: .2s ease;
  background: linear-gradient(90deg, rgba(255,140,0,.03), transparent);
  position: relative;
  user-select: none;
}
.nav-item:hover {
  border-color: rgba(255,153,0,.4);
  transform: translateX(3px);
  box-shadow: var(--glow-orange);
}
.nav-item.active {
  border-color: rgba(255,153,0,.65);
  background: linear-gradient(90deg, rgba(255,153,0,.24), rgba(255,153,0,.06));
  box-shadow: inset 0 0 20px rgba(255,153,0,.08), 0 0 18px rgba(255,153,0,.18);
}
.nav-item.active .n-icon { color: var(--orange); }
.nav-item.active .n-main { color: var(--text-bright); }
.n-icon { width: 18px; text-align: center; color: var(--text-dim); font-size: var(--nav-icon-sz); transition: color 0.15s; flex-shrink: 0; }
.n-main { font-size: 11px; font-weight: 600; letter-spacing: 0.5px; color: var(--text); }
.n-sub  { font-size: 9px; letter-spacing: 1px; text-transform: uppercase; color: var(--text-dim); margin-top: 1px; opacity: .7; }
.nav-badge {
  margin-left: auto; font-size: 10px; padding: 1px 7px;
  background: rgba(255,153,0,.18); color: var(--orange);
  border-radius: 10px; font-family: var(--mono);
  border: 1px solid rgba(255,153,0,.3);
}

/* Couleurs icônes */
#nav-hub        .n-icon { color: var(--orange); }
#nav-membres    .n-icon { color: var(--cyan); }
#nav-ressource  .n-icon { color: var(--orange); }
#nav-armurerie  .n-icon { color: var(--red); }
#nav-stocks     .n-icon { color: var(--green); }
#nav-banque     .n-icon { color: var(--green); }
#nav-commandes  .n-icon { color: var(--orange); }
#nav-objectifs  .n-icon { color: var(--green); }
#nav-missions   .n-icon { color: var(--cyan); }
#nav-blueprints .n-icon { color: var(--purple); }
#nav-commerce   .n-icon { color: var(--orange); }
#nav-data-ressource .n-icon { color: var(--cyan); }
#nav-data-armurie   .n-icon { color: var(--red); }
#nav-logs       .n-icon { color: #8890a0; }
#nav-parametres .n-icon { color: var(--text-dim); }
#nav-roles-droits .n-icon { color: var(--orange); }
#nav-dashboard  .n-icon { color: var(--orange); }

/* Sidebar profile footer */
.sb-profile {
  margin-top: auto; padding: 12px 14px 30px;
  border-top: 1px solid rgba(89,208,255,.1);
  background: rgba(255,140,0,.02);
  flex-shrink: 0;
}
.sbp-head { display: flex; align-items: center; gap: 9px; margin-bottom: 9px; }
.sbp-avatar, #sb-avatar {
  width: 44px; height: 44px;
  border: 1.5px solid var(--orange);
  border-radius: 6px;
  background: var(--bg3);
  display: flex; align-items: center; justify-content: center;
  color: var(--orange); font-size: 20px; flex-shrink: 0;
  cursor: pointer; transition: all 0.2s; overflow: hidden; position: relative;
  object-fit: cover;
}
.sbp-avatar:hover, #sb-avatar:hover { border-color: #fff; box-shadow: 0 0 12px var(--orange); }
.sbp-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sbp-head-text { min-width: 0; }
.sbp-name, #sb-name { font-size: 14px; font-weight: 700; color: var(--orange); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sbp-id, .sbp-corpo, #sb-corpo-tag { font-size: 10px; color: var(--text-dim); font-family: var(--mono); letter-spacing: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sbp-role, #sb-role { font-size: 9px; color: var(--text-dim); font-family: var(--mono); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sbp-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 5px; }
.sb-profile, .sbp-head, .sbp-stats-grid { min-width: 0; max-width: 100%; box-sizing: border-box; }
.sbp-stats-grid > div { min-width: 0; overflow: hidden; }
.sbp-stats-grid #sb-rang, .sbp-stats-grid #sb-ressources, .sbp-stats-grid #sb-stock-val {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block;
}
.sbp-item .l { font-size: 9px; color: var(--text-dim); letter-spacing: 1px; text-transform: uppercase; }
.sbp-item .v { font-size: 12px; font-weight: 600; color: var(--text); }
.sbp-item .v.credits { color: var(--orange); font-family: var(--mono); }
.rep-bar  { height: 3px; background: rgba(89,208,255,.1); margin-top: 7px; border-radius: 2px; }
.rep-fill { height: 100%; background: linear-gradient(90deg, var(--orange-dim), var(--orange)); border-radius: 2px; }
.sb-version { margin-top: 8px; font-size: 10px; color: var(--text-dim); letter-spacing: 1px; font-family: var(--mono); }
.sbp-logout {
  margin-top: 8px; width: 100%;
  background: none; border: 1px solid rgba(255,68,68,.3); color: rgba(255,68,68,.6);
  font-family: var(--mono); font-size: 11px; letter-spacing: 1px;
  padding: 8px; transition: all .15s; border-radius: 7px;
}
.sbp-logout:hover { border-color: #ff4444; color: #ff4444; }

/* ── MAIN ───────────────────────────────────────────────────────── */
#main { flex: 1; display: flex; flex-direction: column; overflow: hidden; height: 100%; background: transparent; margin-top: 0 !important; }

/* ── PANELS ─────────────────────────────────────────────────────── */
.panel { display: none; width: 100%; height: 100%; overflow: hidden; }
.panel.active { display: flex; flex-direction: column; }
/* Centre horizontalement tout wrapper "boxed" (max-width défini en inline) —
   couvre tous les onglets type formulaire/profil sans avoir à toucher chaque module JS. */
.panel.active > div[style*="max-width"] { margin-left: auto; margin-right: auto; }
#panel-hub.active { flex-direction: column; overflow: hidden; }

/* ── HUB → voir style_hub.css ──────────────────────────────────── */

/* Cache le canvas quand le hub n'est pas actif */
#panel-hub:not(.active) { display: none !important; }
#panel-hub:not(.active) #stanton-canvas-kx,
#panel-hub:not(.active) .hub-body,
#panel-hub:not(.active) .hub-topbar,
#panel-hub:not(.active) .hub-bottom { visibility: hidden; }

/* ── SHARED COMPONENTS ──────────────────────────────────────────── */
.sec-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 14px; background: rgba(8,15,30,.55); border-bottom: 1px solid rgba(89,208,255,.1);
  flex-shrink: 0;
}
.sec-title { font-family: 'Orbitron', var(--ui); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-dim); }
.sec-title .acc { color: var(--orange); margin-right: 5px; }
.sec-link { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--orange); cursor: pointer; }
.sec-link:hover { text-decoration: underline; }
.sec-bars { display: flex; gap: 2px; }
.sec-bar-el { width: 4px; height: 10px; background: var(--orange); border-radius: 1px; }

/* Data table — NEXORA style */
.data-table { width: 100%; border-collapse: separate; border-spacing: 0 6px; }
.data-table thead th { background: transparent; border: none; padding: 7px 13px; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-soft); text-align: left; cursor: pointer; }
.data-table thead th:hover { color: var(--orange); }
.data-table tbody tr { background: rgba(11,20,38,.72); transition: .2s ease; }
.data-table tbody tr:hover {
  transform: scale(1.01);
  background: linear-gradient(90deg, rgba(255,153,0,.10), rgba(89,208,255,.04));
  box-shadow: var(--glow-orange);
}
.data-table td { border: none; padding: 10px 13px; font-family: var(--mono); font-size: 14px; }
.td-name  { font-family: var(--ui) !important; font-size: 15px !important; font-weight: 600; color: var(--text-bright); }
.td-green { color: var(--green); font-weight: 600; }
.td-red   { color: var(--red); }
.td-orange{ color: var(--orange); }
.td-dim   { color: var(--text-dim); font-size: 13px !important; }
.td-blue  { color: var(--cyan); }

/* Cat badges */
.cat-badge { display: inline-block; padding: 2px 7px; font-size: 10px; font-family: var(--ui); letter-spacing: 1px; text-transform: uppercase; font-weight: 600; border-radius: 4px; }
.cat-mineral     { background: rgba(255,153,0,0.12); color: var(--orange); }
.cat-salvage     { background: rgba(180,130,80,0.15); color: #d4a464; }
.cat-resources   { background: rgba(89,208,255,0.12); color: var(--cyan); }
.cat-equipment   { background: rgba(0,255,159,0.10);  color: var(--green); }
.cat-weapons     { background: rgba(255,82,82,0.12);  color: var(--red); }
.cat-accessories { background: rgba(220,100,255,0.10); color: var(--purple); }
.cat-other       { background: rgba(180,180,180,0.10); color: #aaa; }
.cat-metal       { background: rgba(89,208,255,0.12);  color: var(--cyan); }
.cat-gas         { background: rgba(0,255,159,0.10);   color: var(--green); }
.cat-rare        { background: rgba(220,100,255,0.10); color: var(--purple); }
.cat-ressources    { background: rgba(89,208,255,0.12);  color: var(--cyan); }
.cat-equipements   { background: rgba(0,255,159,0.10);   color: var(--green); }
.cat-armement      { background: rgba(255,82,82,0.12);   color: var(--red); }
.cat-accessoires   { background: rgba(220,100,255,0.10); color: var(--purple); }
.cat-autre         { background: rgba(180,180,180,0.10); color: #aaa; }
.arm-cat-badge { display:inline-block; padding:1px 7px; font-size:9px; letter-spacing:1px; border:1px solid currentColor; font-family:var(--ui); text-transform:uppercase; border-radius:4px; }

/* Buttons */
.btn { padding: 6px 14px; border: 1px solid rgba(89,208,255,.14); background: rgba(255,255,255,.02); color: var(--text); font-family: var(--ui); font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; transition: all 0.15s; border-radius: 12px; }
.btn:hover { border-color: rgba(255,153,0,.45); box-shadow: var(--glow-orange); }
.btn.primary { background: linear-gradient(90deg, rgba(255,153,0,.28), rgba(255,153,0,.08)); border-color: rgba(255,153,0,.55); color: #fff; }
.btn.primary:hover { border-color: var(--orange); }
.btn.success { background: var(--orange); border-color: var(--orange); color: #000; font-weight: 700; }
.btn.success:hover { background: #e07a0e; }
.btn.danger  { border-color: rgba(255,68,68,0.4); color: var(--red); }
.btn.danger:hover { background: rgba(255,68,68,0.08); }
.btn.sm { padding: 3px 8px; font-size: 11px; }
.btn-primary  { background: rgba(255,153,0,.3); color: #fff; border: 1px solid rgba(255,153,0,.5); padding: 10px 24px; font-family: var(--mono); font-size: 12px; letter-spacing: 2px; cursor: pointer; border-radius: 10px; }
.btn-primary:hover  { background: var(--orange); color: #000; }
.btn-secondary { background: none; color: var(--orange); border: 1px solid rgba(255,153,0,.4); padding: 10px 24px; font-family: var(--mono); font-size: 12px; letter-spacing: 2px; cursor: pointer; border-radius: 10px; }
.btn-secondary:hover { background: rgba(255,153,0,.1); }
.btn-discord { background: #5865F2; color: #fff; border: none; padding: 10px 24px; font-family: var(--mono); font-size: 12px; letter-spacing: 2px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; border-radius: 10px; }
.btn-discord:hover { background: #4752c4; }

/* Toolbar / filter */
.toolbar { display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-bottom: 1px solid rgba(89,208,255,.1); background: rgba(8,15,30,.55); flex-shrink: 0; flex-wrap: wrap; }
.tbl-wrap { flex: 1; overflow-y: auto; background: linear-gradient(180deg, rgba(7,15,28,.92), rgba(4,10,22,.88)); border: 1px solid rgba(89,208,255,.12); border-radius: 22px; backdrop-filter: blur(16px); box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 15px 40px rgba(0,0,0,.42); }
.filter-btn { padding: 5px 11px; border: 1px solid rgba(89,208,255,.14); background: rgba(255,255,255,.02); color: var(--text); font-family: var(--ui); font-size: 13px; letter-spacing: 1px; cursor: pointer; transition: all 0.15s; border-radius: 12px; }
.filter-btn.active { background: linear-gradient(90deg, rgba(255,153,0,.28), rgba(255,153,0,.08)); border-color: rgba(255,153,0,.55); color: #fff; }

/* Forms */
.form-field { display: flex; flex-direction: column; gap: 4px; }
.form-lbl { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-dim); }
.form-lbl .req { color: var(--red); margin-left: 3px; }
.form-input { background: rgba(8,15,30,.75); border: 1px solid rgba(89,208,255,.14); color: var(--text); padding: 9px 11px; font-family: var(--mono); font-size: 14px; outline: none; transition: border-color 0.15s; width: 100%; border-radius: 14px; }
.form-input:focus { border-color: rgba(255,153,0,.5); box-shadow: 0 0 0 1px rgba(255,153,0,.15); }
.form-hint  { font-size: 11px; color: var(--text-dim); }
.form-error { font-size: 12px; color: var(--red); display: none; }
.form-error.show { display: block; }
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-family: var(--mono); font-size: 11px; color: var(--text-dim); letter-spacing: 2px; margin-bottom: 6px; text-transform: uppercase; }
.form-group input, .form-group textarea { width: 100%; background: rgba(8,15,30,.75); border: 1px solid rgba(89,208,255,.14); color: var(--text); padding: 9px 12px; font-family: var(--mono); font-size: 12px; outline: none; border-radius: 10px; }
.form-group input:focus, .form-group textarea:focus { border-color: rgba(255,153,0,.5); }
.form-group textarea { resize: vertical; min-height: 80px; }
.form-wrap  { max-width: 560px; background: rgba(7,15,28,.92); border: 1px solid rgba(89,208,255,.12); padding: 28px; border-radius: 22px; }
.form-title { font-family: 'Orbitron', var(--ui); font-size: 16px; font-weight: 700; letter-spacing: 3px; color: var(--orange); margin-bottom: 20px; }
.form-msg   { font-family: var(--mono); font-size: 11px; margin-top: 10px; }
.form-msg.ok  { color: var(--green); }
.form-msg.err { color: var(--red); }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }

/* Search */
.search-box { display: flex; align-items: center; gap: 6px; border: 1px solid rgba(89,208,255,.14); padding: 5px 10px; background: rgba(8,15,30,.75); border-radius: 14px; }
.search-box input { background: transparent; border: none; outline: none; color: var(--text); font-family: var(--mono); font-size: 13px; width: 100%; }
.search-ico { color: var(--text-dim); font-size: 14px; }

/* Modal */
.overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.72); z-index: 1000; align-items: center; justify-content: center; backdrop-filter: blur(4px); }
.overlay.open { display: flex; }
.modal { background: rgba(7,15,28,.96); border: 1px solid var(--border-bright); width: 100%; max-width: 430px; position: relative; box-shadow: 0 0 50px rgba(255,153,0,.12); border-radius: 22px; }
.modal::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--orange), transparent); border-radius: 22px 22px 0 0; }
.modal-head { display: flex; justify-content: space-between; align-items: center; padding: 13px 17px; border-bottom: 1px solid rgba(89,208,255,.1); background: rgba(8,15,30,.55); border-radius: 22px 22px 0 0; }
.modal-title { font-family: 'Orbitron', var(--ui); font-size: 13px; font-weight: 700; color: var(--orange); letter-spacing: 1px; }
.modal-close { background: none; border: none; color: var(--text-dim); font-size: 19px; cursor: pointer; line-height: 1; }
.modal-body  { padding: 18px; display: flex; flex-direction: column; gap: 13px; }
.modal-foot  { padding: 13px 17px; border-top: 1px solid rgba(89,208,255,.1); display: flex; justify-content: flex-end; gap: 8px; border-radius: 0 0 22px 22px; }
#modal-bp, #modal-mission, #modal-cmd, #modal-cmd-detail, #modal-tx, #modal-stock { display:none; position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:300; align-items:center; justify-content:center; padding:16px; backdrop-filter:blur(4px); }
#modal-bp.open, #modal-mission.open, #modal-cmd.open, #modal-cmd-detail.open, #modal-tx.open, #modal-stock.open { display:flex; }
.modal-inner { background:rgba(7,15,28,.96); border:1px solid rgba(89,208,255,.12); padding:24px; width:100%; max-width:520px; max-height:90vh; overflow-y:auto; border-radius:22px; }

/* Toast */
#toasts { position: fixed; top: 68px; right: 16px; display: flex; flex-direction: column; gap: 8px; z-index: 9999; pointer-events: none; }
.toast { display: flex; gap: 10px; align-items: flex-start; background: rgba(7,15,28,.96); border: 1px solid rgba(89,208,255,.12); border-left: 3px solid var(--orange); padding: 9px 13px; min-width: 240px; box-shadow: 0 4px 20px rgba(0,0,0,0.5); animation: tIn .3s ease, tOut .3s 3.7s ease forwards; border-radius: 0 12px 12px 0; }
.toast.success { border-left-color: var(--green); }
.toast.error   { border-left-color: var(--red); }
@keyframes tIn  { from{opacity:0;transform:translateX(14px)} to{opacity:1;transform:none} }
@keyframes tOut { to{opacity:0;transform:translateX(14px)} }
.ti { font-size: 15px; }
.tt { font-size: 13px; font-weight: 700; color: var(--text-bright); }
.tm { font-size: 12px; color: var(--text-dim); margin-top: 2px; font-family: var(--mono); }

/* ── PANELS MÉTIER ──────────────────────────────────────────────── */

/* Missions */
.missions-list { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.mission-card {
  background: linear-gradient(180deg, rgba(7,15,28,.92), rgba(4,10,22,.88));
  border: 1px solid rgba(89,208,255,.12);
  border-radius: 22px;
  padding: 13px 15px; display: flex; gap: 13px; align-items: flex-start;
  cursor: pointer; transition: all 0.2s;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 15px 40px rgba(0,0,0,.42);
  backdrop-filter: blur(16px);
}
.mission-card:hover { border-color: rgba(255,153,0,.35); box-shadow: 0 0 25px rgba(255,153,0,.12), 0 18px 40px rgba(0,0,0,.45); }
.mission-card.done { opacity: 0.55; }
.m-icon { width: 36px; height: 36px; border: 1px solid rgba(89,208,255,.2); background: rgba(8,15,30,.6); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; color: var(--orange); border-radius: 10px; }
.m-title { font-size: 16px; font-weight: 700; color: var(--text-bright); }
.m-desc  { font-size: 13px; color: var(--text-dim); margin-top: 2px; line-height: 1.5; }
.m-footer { display: flex; gap: 11px; margin-top: 7px; align-items: center; flex-wrap: wrap; }
.m-reward { font-family: var(--mono); font-size: 15px; color: var(--green); }
.m-status { padding: 2px 8px; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; border: 1px solid; font-family: var(--ui); border-radius: 6px; }
.ms-open     { border-color: var(--orange); color: var(--orange); }
.ms-progress { border-color: var(--cyan);   color: var(--cyan); }
.ms-done     { border-color: var(--green);  color: var(--green); }
.ms-pending  { border-color: #c084fc;       color: #c084fc; }
.m-dl { margin-left: auto; font-size: 12px; color: var(--text-dim); font-family: var(--mono); }

/* Commandes */
.cmd-card {
  background: linear-gradient(180deg, rgba(7,15,28,.92), rgba(4,10,22,.88));
  border: 1px solid rgba(89,208,255,.12);
  border-radius: 22px;
  padding: 14px 16px; margin-bottom: 10px; transition: all 0.2s; cursor: pointer;
  backdrop-filter: blur(16px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 8px 24px rgba(0,0,0,.3);
}
.cmd-card:hover { border-color: rgba(255,153,0,.35); box-shadow: 0 0 25px rgba(255,153,0,.12), 0 18px 40px rgba(0,0,0,.45); }
.cmd-card.livree  { opacity: 0.55; border-color: rgba(0,255,159,.3); }
.cmd-card.annulee { opacity: 0.45; border-color: rgba(255,82,82,.3); }
.cmd-type-interne { border-left: 3px solid #818cf8; }
.cmd-type-externe { border-left: 3px solid var(--orange); }
.cmd-header { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:8px; }
.cmd-title  { font-size:14px; font-weight:700; color:var(--text-bright); }
.cmd-ref    { font-size:10px; font-family:var(--mono); color:var(--text-dim); margin-top:2px; }
.cmd-body   { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:8px; }
.cmd-field  { min-width:120px; }
.cmd-lbl    { font-size:9px; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-dim); margin-bottom:2px; }
.cmd-val    { font-size:12px; font-family:var(--mono); color:var(--text-bright); }
.cmd-footer { display:flex; gap:8px; align-items:center; flex-wrap:wrap; border-top:1px solid rgba(89,208,255,.08); padding-top:8px; margin-top:4px; }
.cmd-status { display:inline-block; padding:2px 9px; font-size:10px; letter-spacing:1px; font-family:var(--ui); text-transform:uppercase; font-weight:700; border:1px solid; border-radius:6px; }
.cmd-status-attente  { color:var(--cyan);   border-color:var(--cyan);   background:rgba(89,208,255,0.07); }
.cmd-status-en_cours { color:var(--orange); border-color:var(--orange); background:rgba(255,153,0,0.07); }
.cmd-status-livree   { color:var(--green);  border-color:var(--green);  background:rgba(0,255,159,0.07); }
.cmd-status-annulee  { color:var(--red);    border-color:var(--red);    background:rgba(255,82,82,0.07); }
.prio-badge   { padding:2px 6px; font-family:var(--mono); font-size:9px; letter-spacing:1px; border-radius:4px; }
.prio-normale { color:var(--text-dim); border:1px solid rgba(89,208,255,.14); border-radius:4px; }
.prio-haute   { color:#f7c11e; border:1px solid #f7c11e; background:rgba(247,193,30,0.08); border-radius:4px; }
.prio-urgente { color:var(--red); border:1px solid var(--red); background:rgba(255,82,82,0.08); border-radius:4px; }

/* Objectifs */
.obj-tab { padding: 6px 16px; border: none; border-bottom: 2px solid transparent; background: transparent; color: var(--text-dim); font-family: var(--ui); font-size: 12px; font-weight: 600; letter-spacing: 1px; cursor: pointer; text-transform: uppercase; transition: all 0.15s; }
.obj-tab.active { color: var(--orange); border-bottom-color: var(--orange); }
.obj-tab:hover  { color: var(--text-bright); }
.obj-card { background: rgba(7,15,28,.72); border: 1px solid rgba(89,208,255,.12); border-radius: 16px; padding: 14px 16px; margin-bottom: 10px; transition: all 0.2s; }
.obj-card:hover { border-color: rgba(255,153,0,.35); }
.obj-card.done  { opacity: 0.55; border-color: rgba(0,255,159,.3); }
.obj-title { font-size: 14px; font-weight: 700; color: var(--text-bright); margin-bottom: 4px; }
.obj-desc  { font-size: 11px; color: var(--text-dim); margin-bottom: 10px; line-height: 1.6; }
.obj-meta  { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.obj-badge { font-size: 10px; padding: 2px 8px; border: 1px solid; letter-spacing: 1px; font-family: var(--ui); text-transform: uppercase; border-radius: 6px; }
.obj-prog-wrap { flex: 1; min-width: 120px; }
.obj-prog-bg   { height: 5px; background: rgba(89,208,255,.1); border-radius: 3px; overflow: hidden; margin-top: 3px; }
.obj-prog-fill { height: 100%; background: linear-gradient(90deg, var(--orange), var(--green)); border-radius: 3px; transition: width 0.4s ease; }

/* Stocks */
.stock-footer { display: flex; border-top: 1px solid rgba(89,208,255,.1); background: rgba(8,15,30,.55); flex-shrink: 0; border-radius: 0 0 22px 22px; }
.sf-cell { flex: 1; padding: 9px 14px; border-right: 1px solid rgba(89,208,255,.1); }
.sf-cell:last-child { border-right: none; }
.sf-lbl { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-dim); }
.sf-val { font-family: var(--mono); font-size: 17px; color: var(--orange); margin-top: 2px; }
.sf-val.green { color: var(--green); }
.stock-qty { font-size: 13px; font-weight: 700; color: var(--orange); }
.stock-qty.low  { color: var(--red); }
.stock-qty.zero { color: var(--text-dim); }
.qty-input { background: rgba(8,15,30,.75); border: 1px solid rgba(89,208,255,.14); color: var(--text); padding: 4px 8px; font-family: var(--mono); font-size: 11px; width: 80px; outline: none; text-align: center; border-radius: 8px; }
.qty-input:focus { border-color: rgba(255,153,0,.5); }

/* Partenaires / membres */
.partners-grid { flex: 1; overflow-y: auto; padding: 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 10px; align-content: start; }
.partner-card {
  background: linear-gradient(180deg, rgba(7,15,28,.92), rgba(4,10,22,.88));
  border: 1px solid rgba(89,208,255,.12); border-radius: 22px;
  padding: 13px; position: relative; transition: all 0.2s; cursor: pointer;
  backdrop-filter: blur(16px); box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 15px 40px rgba(0,0,0,.42);
}
.partner-card:hover { border-color: rgba(255,153,0,.35); box-shadow: 0 0 25px rgba(255,153,0,.12), 0 18px 40px rgba(0,0,0,.45); }
.partner-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--orange), transparent); border-radius: 22px 22px 0 0; }
.pc-name { font-size: 16px; font-weight: 700; color: var(--text-bright); margin-bottom: 3px; }
.pc-id   { font-size: 11px; font-family: var(--mono); color: var(--text-dim); letter-spacing: 1px; }
.pc-rank { display: inline-block; margin: 5px 0; padding: 2px 8px; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; font-weight: 600; font-family: var(--ui); border: 1px solid; border-radius: 6px; }
.pc-stats { display: flex; gap: 12px; margin-top: 7px; }
.pcs-v { font-family: var(--mono); font-size: 15px; color: var(--orange); }
.pcs-l { font-size: 11px; color: var(--text-dim); letter-spacing: 1px; }
.pc-rep-bar  { height: 3px; background: rgba(89,208,255,.1); margin-top: 7px; border-radius: 2px; }
.pc-rep-fill { height: 100%; background: var(--orange); border-radius: 2px; }

/* Banque */
.gkpi { flex: 1; padding: 11px 14px; border-right: 1px solid rgba(89,208,255,.1); }
.gkpi:last-child { border-right: none; }
.gkpi-lbl { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-dim); margin-bottom: 3px; }
.gkpi-val { font-family: var(--mono); font-size: 19px; color: var(--text-bright); }
.gkpi-val.orange { color: var(--orange); }
.gkpi-val.green  { color: var(--green); }
.bank-tab.active { color: var(--text-bright) !important; border-bottom-color: var(--orange) !important; }
.bank-row { cursor: pointer; transition: background .12s; }
.bank-row:hover { background: rgba(255,153,0,.05); }
.bank-amount-credit { color: var(--green); font-weight: 700; font-family: var(--mono); }
.bank-amount-debit  { color: var(--red);   font-weight: 700; font-family: var(--mono); }
.bank-badge { display:inline-block; padding:2px 8px; font-size:9px; letter-spacing:1px; border:1px solid currentColor; font-family:var(--ui); text-transform:uppercase; border-radius:4px; }
.bank-stat-card { background:rgba(7,15,28,.72); border:1px solid rgba(89,208,255,.12); padding:14px; border-radius:14px; }
.bank-stat-card:hover { border-color:rgba(255,153,0,.35); }
.bank-pg-btn { padding:4px 10px; border:1px solid rgba(89,208,255,.14); background:transparent; color:var(--text-dim); font-family:var(--ui); font-size:10px; cursor:pointer; border-radius:8px; }
.bank-pg-btn.active { border-color:var(--orange); color:var(--orange); }
.bank-pg-btn:hover  { border-color:rgba(255,153,0,.45); color:var(--orange); }

/* Logs système */
.logs-wrap { flex: 1; overflow-y: auto; padding: 11px; font-family: var(--mono); font-size: 13px; line-height: 2; background: linear-gradient(180deg, rgba(7,15,28,.92), rgba(4,10,22,.88)); border: 1px solid rgba(89,208,255,.12); border-radius: 22px; backdrop-filter: blur(16px); box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 15px 40px rgba(0,0,0,.42); }
.log-entry { display: flex; gap: 11px; border-bottom: 1px solid rgba(255,153,0,.03); padding: 2px 0; }
.le-ts   { color: var(--text-dim); min-width: 46px; }
.le-type { min-width: 62px; }
.type-trade   { color: var(--green); }
.type-system  { color: var(--cyan); }
.type-partner { color: var(--purple); }
.type-alert   { color: var(--orange); }
.type-error   { color: var(--red); }
.le-msg { color: var(--text); }

/* Blueprints */
.bp-card { background: rgba(7,15,28,.72); border: 1px solid rgba(89,208,255,.12); border-radius: 16px; padding: 14px; transition: all 0.2s; cursor: pointer; }
.bp-card:hover { border-color: rgba(255,153,0,.35); }
.bp-card-name { font-size: 12px; font-weight: 700; color: var(--text); margin-bottom: 5px; }
.bp-card-cat  { font-family: var(--mono); font-size: 9px; letter-spacing: 2px; color: var(--text-dim); margin-bottom: 8px; }
.bp-ingredients { display: flex; flex-wrap: wrap; gap: 4px; }
.bp-ing { font-family: var(--mono); font-size: 9px; padding: 2px 6px; border: 1px solid rgba(89,208,255,.2); color: var(--text-dim); border-radius: 4px; }
.bp-craftable { border-color: rgba(0,255,159,.4) !important; }
.bp-craftable .bp-card-name { color: var(--green); }
.bp-wrap { max-width: 960px; }
.bp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px; }

/* Annuaire */
.section-title { font-family: 'Orbitron', var(--ui); font-size: 18px; font-weight: 700; letter-spacing: 4px; color: var(--orange); margin-bottom: 20px; border-bottom: 1px solid rgba(89,208,255,.1); padding-bottom: 10px; }
#corpos-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.corpo-card { background:rgba(7,15,28,.72); border:1px solid rgba(89,208,255,.12); border-radius:22px; padding:18px; cursor:pointer; transition:all .2s; backdrop-filter:blur(16px); }
.corpo-card:hover { border-color:rgba(255,153,0,.35); box-shadow:0 0 25px rgba(255,153,0,.1); }
.corpo-tag  { font-family:var(--mono); font-size:11px; color:var(--text-dim); letter-spacing:2px; }
.corpo-nom  { font-size:17px; font-weight:700; color:var(--text); margin:4px 0; }
.corpo-desc { font-family:var(--mono); font-size:11px; color:var(--text-dim); line-height:1.5; margin-top:7px; }
.corpo-badge { display:inline-block; margin-top:10px; padding:3px 10px; font-family:var(--mono); font-size:10px; background:rgba(0,255,159,.1); color:var(--green); border:1px solid var(--green); border-radius:6px; }

/* RSI */
.rsi-status { display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10px; padding:3px 10px; border:1px solid; border-radius:8px; }
.rsi-status.verified   { color:var(--green); border-color:var(--green); background:rgba(0,255,159,.08); }
.rsi-status.unverified { color:var(--text-dim); border-color:rgba(89,208,255,.2); }
.rsi-status.failed     { color:var(--red); border-color:var(--red); background:rgba(255,82,82,.08); }
.rsi-input-row { display:flex; gap:8px; align-items:center; margin-top:8px; }
.rsi-input { background:rgba(8,15,30,.75); border:1px solid rgba(89,208,255,.14); color:var(--text); padding:8px 12px; font-family:var(--mono); font-size:11px; outline:none; flex:1; border-radius:10px; }
.rsi-input:focus { border-color:rgba(255,153,0,.5); }
.rsi-btn { background:rgba(255,153,0,.3); color:#fff; border:1px solid rgba(255,153,0,.5); padding:8px 16px; font-family:var(--mono); font-size:10px; cursor:pointer; border-radius:8px; }
.rsi-btn:hover { background:var(--orange); color:#000; }
.rsi-badge-ok { color:var(--green); }
.rsi-badge-no { color:var(--text-dim); }

/* Callback loader */
#callback-loader { display:none; position:fixed; inset:0; background:var(--bg); z-index:999; align-items:center; justify-content:center; flex-direction:column; gap:16px; }
#callback-loader.show { display:flex; }
#callback-loader p { font-family:var(--mono); font-size:12px; color:var(--text-dim); letter-spacing:3px; }

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media (min-width: 1600px) {
  :root { --sidebar-w: 210px; --nav-h: 50px; --kpi-pad: 18px; --kpi-val-sz: 23px; }
}
@media (max-width: 1400px) { .hub-right { width: 240px; } }
@media (max-width: 1280px) {
  :root { --sidebar-w: 172px; --nav-h: 40px; --kpi-pad: 10px; --kpi-val-sz: 17px; }
  .hub-topbar { gap: 10px; padding: 10px; }
  .hub-right { width: 200px; }
  .hub-bottom { height: 160px; min-height: 160px; }
}
@media (max-width: 1100px) {
  :root { --sidebar-w: 56px; }
  .n-main, .n-sub, .sb-version { display: none; }
  .nav-item { justify-content: center; }
  .hub-right { width: 180px; }
  .hub-bottom { height: 140px; min-height: 140px; }

  /* Carte profil sidebar : passe en icône seule, comme les liens de nav
     au-dessus — sans ça, pseudo/tag corpo/rôle/stats/bouton texte
     débordent d'une sidebar de 56px de large. */
  .sb-profile { padding: 10px 4px; }
  .sbp-head { justify-content: center; margin-bottom: 6px; }
  .sbp-head-text, .sbp-stats-grid, .sbp-sep, .sbp-ver-wrap { display: none; }
  .sbp-logout { padding: 6px 0; }
  .sbp-logout-txt { display: none; }
}
@media (max-width: 880px) {
  .hub-body { flex-direction: column; }
  .hub-left, .hub-main { border-right: none; border-bottom: 1px solid rgba(89,208,255,.1); }
  .hub-right { width: 100%; max-height: 220px; padding: 4px 8px 8px; }
}

/* ── PANEL MEMBRES ────────────────────────────────────────────────── */
#panel-membres.active {
  overflow-y: auto;
  padding: 24px 28px;
}
#panel-membres .section-title {
  font-family: 'Orbitron', var(--ui);
  font-size: 16px; font-weight: 700;
  letter-spacing: 3px; color: var(--orange);
  margin-bottom: 20px; padding-bottom: 10px;
  border-bottom: 1px solid rgba(89,208,255,.12);
}
#invite-box {
  background: rgba(7,15,28,.92) !important;
  border: 1px solid rgba(0,255,159,.3) !important;
  border-radius: 16px !important;
  padding: 20px !important;
  margin-bottom: 20px;
}
#invite-box input {
  background: rgba(4,10,20,.8) !important;
  border: 1px solid rgba(89,208,255,.2) !important;
  border-radius: 10px !important;
}
#membres-list table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(7,15,28,.72);
  border: 1px solid rgba(89,208,255,.12);
  border-radius: 16px;
  overflow: hidden;
}
#membres-list thead tr {
  background: rgba(8,15,30,.8);
  border-bottom: 1px solid rgba(255,153,0,.2);
}
#membres-list thead th {
  color: var(--orange) !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
  padding: 10px 14px !important;
  text-transform: uppercase;
  font-weight: 400;
}
#membres-list tbody tr {
  border-bottom: 1px solid rgba(89,208,255,.06);
  transition: background .15s;
}
#membres-list tbody tr:hover {
  background: rgba(255,153,0,.04);
}
#membres-list tbody td {
  padding: 12px 14px !important;
}

/* ── PANEL MEMBRES — style cartes ─────────────────────────────────── */
#panel-membres.active {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding: 20px 24px 0 24px !important;
}
#membres-list {
  flex: 1;
  overflow-y: auto;
  padding-bottom: 16px;
}
/* ── COMMERCE — badges transactions ──────────────────────────────── */
.tx-type-badge { display:inline-block; padding:1px 7px; font-size:9px; font-family:var(--mono); letter-spacing:1px; border-radius:3px; border:1px solid; text-transform:uppercase; }
.tx-depot  { color:var(--green); border-color:rgba(0,255,159,.4); background:rgba(0,255,159,.06); }
.tx-retrait{ color:#ff5252;      border-color:rgba(255,82,82,.4);  background:rgba(255,82,82,.06); }
.tx-depot  td, td.tx-depot  { color:var(--green) !important; font-weight:700; }
.tx-retrait td, td.tx-retrait{ color:#ff5252 !important;     font-weight:700; }

/* ── MON ESPACE — RSI status ─────────────────────────────────────── */
.rsi-status { display:inline-flex; align-items:center; gap:4px; font-family:var(--mono); font-size:9px; padding:2px 8px; border:1px solid; border-radius:4px; }
.rsi-status.verified  { color:var(--green); border-color:rgba(0,255,159,.4); background:rgba(0,255,159,.06); }
.rsi-status.failed    { color:#ff5252;      border-color:rgba(255,82,82,.4);  background:rgba(255,82,82,.06); }
.rsi-status.unverified{ color:var(--text-dim); border-color:rgba(89,208,255,.2); }

/* ── NAV Mon Espace ──────────────────────────────────────────────── */
#nav-mon-espace .n-icon { color:var(--orange); }
#nav-logs       .n-icon { color:#8890a0; }
/* ── ARMURERIE — liste des membres (STOCK) — portées de NEXORA style.css,
   jamais recréées côté KORAXIS (classes utilisées mais non stylées) ── */
.pl-list { flex: 1; overflow-y: auto; }
.pl-item {
  display: flex; align-items: center; gap: 9px;
  padding: 10px 13px; border-bottom: 1px solid rgba(247,140,30,0.05);
  cursor: pointer; transition: all 0.15s; border-left: 3px solid transparent;
  border-radius: 8px;
}
.pl-item:hover   { background: var(--orange-faint); border-left-color: var(--orange-dim); }
.pl-item.sel     { background: rgba(247,140,30,0.09); border-left-color: var(--orange); }
.pl-avatar {
  width: 32px; height: 32px; flex-shrink: 0; background: var(--bg3);
  border: 1px solid var(--border); display: flex; align-items: center; justify-content: center;
  font-size: 15px; color: var(--orange);
  clip-path: polygon(10% 0%,90% 0%,100% 10%,100% 90%,90% 100%,10% 100%,0% 90%,0% 10%);
  overflow: hidden;
  contain: strict;
}
.pl-info { flex: 1; min-width: 0; }
.pl-name { font-size: 15px; font-weight: 700; color: var(--text-bright); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl-meta { font-size: 11px; color: var(--text-dim); font-family: var(--mono); letter-spacing: 1px; }
.pl-badge { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; padding: 2px 6px; border: 1px solid; font-weight: 600; font-family: var(--ui); white-space: nowrap; border-radius: 4px; }
.pb-stock  { border-color: var(--green); color: var(--green); }
.pb-empty  { border-color: var(--text-dim); color: var(--text-dim); }
.pl-empty-msg { padding: 24px; text-align: center; color: var(--text-dim); font-size: 13px; letter-spacing: 1px; line-height: 1.8; }

/* ── Accès admin plateforme — point discret dans Mon Espace, admins uniquement ── */
.floating-admin-dot:hover {
  background: rgba(255,70,50,.5);
  border-color: rgba(255,70,50,.6);
  box-shadow: 0 0 8px rgba(255,70,50,.4);
}