/* BLT SOFT WARE — shared theme, 9flare.com visual language
   Deep-space navy + glassmorphism + neon gradient accents.
   Loaded by: index.php, admin.php, user_manager.php, portal_user.php */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  /* --- core 9flare tokens --- */
  --page-bg:#030713; --page-bg-2:#060b18;
  --sidebar-bg:#050914; --sidebar-bg-soft:#08101f;
  --topbar-bg:#050914d1;
  --surface:#091226b8; --surface-strong:#0b142ae0; --surface-soft:#0a11229e;
  --text-primary:#fff; --text-secondary:#ebf2ffc7; --text-muted:#dce6ff94; --text-soft:#d2dcf56b; --text-disabled:#d2dcf547;
  --cyan:#36d9ff; --cyan-soft:#4ea7ff; --blue:#3d6bff; --violet:#7c4dff; --purple:#a855f7; --pink-purple:#c084fc;
  --green:#35f08a; --teal:#22e6b8; --orange:#ff9f1c; --yellow:#ffc247;
  --border-soft:#91aaff29; --border-blue:#3f8cff94; --border-purple:#a855f766;
  --radius-xs:8px; --radius-sm:10px; --radius-md:12px; --radius-lg:14px; --radius-xl:18px; --radius-full:999px;
  --shadow-card:0 18px 48px #0000003d;
  --shadow-blue:0 0 34px #3d6bff47; --shadow-cyan:0 0 24px #36d9ff3d; --shadow-purple:0 0 28px #a855f73d;
  --shadow-green:0 0 22px #23f08a2e; --shadow-orange:0 0 22px #ff9f1c2e;
  --accent:#6366f1; --accent-hover:#818cf8;
  --success:#22c55e; --warning:#f59e0b; --danger:#ef4444;
  --gradient-1:linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#a855f7 100%);
  --gradient-2:linear-gradient(135deg,#06b6d4 0%,#3b82f6 50%,#6366f1 100%);
  --glass-blur:12px; --glass-bg:#12121ac7; --glass-bg-secondary:#0a0a0fd1; --glass-border:#2a2a4e99;
  --glass-shadow:0 18px 42px #0000004d, inset 0 1px #ffffff0d;

  /* --- back-compat aliases: old var(--xxx) names used across admin.php /
       user_manager.php / portal_user.php keep resolving after their local
       :root blocks are deleted --- */
  --bg: var(--page-bg);
  --panel: var(--surface-strong);
  --panel2: var(--surface);
  --text: var(--text-primary);
  --muted: var(--text-secondary);
  --primary: var(--accent);
  --primary2: var(--accent-hover);
  --warn: var(--warning);
  --border: var(--border-soft);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--page-bg);
  color:var(--text-primary);
}

::selection{background:var(--border-blue);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--page-bg)}
::-webkit-scrollbar-thumb{background:var(--surface-strong);border-radius:var(--radius-full);border:2px solid var(--page-bg)}

/* ---------- Aurora glow background utility ---------- */
.aurora-bg{position:relative;overflow:hidden}
.aurora-bg::before{
  content:'';
  position:absolute;
  inset:-20% -10%;
  background:
    radial-gradient(600px 500px at 20% 0%, #7c4dff33, transparent 60%),
    radial-gradient(600px 500px at 80% 10%, #3d6bff33, transparent 60%),
    radial-gradient(700px 600px at 50% 100%, #36d9ff22, transparent 60%);
  filter:blur(60px);
  animation:auroraPulse 12s ease-in-out infinite alternate;
  pointer-events:none;
  z-index:0;
}
.aurora-bg > *{position:relative;z-index:1}
@keyframes auroraPulse{
  0%{transform:translateY(0) scale(1);opacity:.85}
  100%{transform:translateY(-20px) scale(1.05);opacity:1}
}

/* ---------- Cards / glass panels ---------- */
.card,.glass-panel{
  background:var(--surface-strong);
  border:1px solid var(--border-soft);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  backdrop-filter:blur(var(--glass-blur));
  -webkit-backdrop-filter:blur(var(--glass-blur));
}

/* ---------- Buttons ---------- */
button,.btn{
  border:0;
  border-radius:var(--radius-full);
  padding:11px 20px;
  font-family:inherit;
  font-weight:600;
  font-size:14px;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
button:hover,.btn:hover{transform:translateY(-1px)}
button:active,.btn:active{transform:translateY(0)}

.btn-primary{background:var(--gradient-1);color:#fff;box-shadow:var(--shadow-purple)}
.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-blue)}
.btn-danger{background:var(--danger);color:#fff}
.btn-warn{background:var(--warning);color:#0b142a}
.btn-success{background:var(--success);color:#0b142a}
.copy-btn{background:var(--surface);color:var(--text-primary);border:1px solid var(--border-soft)}

/* ---------- Inputs ---------- */
input,select,textarea{
  width:100%;
  font-family:inherit;
  padding:12px 14px;
  border-radius:var(--radius-md);
  border:1px solid var(--border-soft);
  background:var(--surface);
  color:var(--text-primary);
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
input::placeholder,textarea::placeholder{color:var(--text-disabled)}
input:focus,select:focus,textarea:focus{border-color:var(--border-blue);box-shadow:0 0 0 3px #3d6bff22}

.input-pill,.input-pill input,input.input-pill{border-radius:var(--radius-full)}
.input-icon{position:relative}
.input-icon i{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:var(--text-muted);font-size:14px;pointer-events:none;
}
.input-icon input{padding-left:40px}

label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}

/* ---------- Badges / pills ---------- */
.pill{
  display:inline-block;
  border-radius:var(--radius-full);
  padding:4px 10px;
  font-size:12px;
  font-weight:600;
  background:#3d6bff26;
  color:var(--cyan-soft);
  border:1px solid var(--border-blue);
}

/* ---------- Stat tiles ---------- */
.stat-card{
  background:var(--surface);
  border:1px solid var(--border-soft);
  border-radius:var(--radius-lg);
  padding:14px;
}
.stat-card .k{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.stat-card .v{
  font-size:24px;font-weight:800;margin-top:4px;
  background:var(--gradient-2);-webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---------- Toolbar ---------- */
.toolbar,.toolbar-left,.toolbar-right{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.toolbar{justify-content:space-between;margin-bottom:16px}

/* ---------- Site navbar (index.php) ---------- */
.header{
  position:fixed;top:0;width:100%;z-index:1000;
  background:var(--topbar-bg);
  backdrop-filter:blur(var(--glass-blur));
  -webkit-backdrop-filter:blur(var(--glass-blur));
  border-bottom:1px solid var(--border-soft);
}
.nav-links a{
  color:var(--text-secondary);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.82rem;
  font-weight:600;
  transition:color .2s ease;
}
.nav-links a:hover{color:var(--cyan)}

/* ---------- Dashboard title row (admin.php / user_manager.php) ---------- */
.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}

/* ---------- Tables ---------- */
table,.data-table{width:100%;border-collapse:collapse;background:var(--surface)}
table th,table td,.data-table th,.data-table td{
  padding:12px 14px;border-bottom:1px solid var(--border-soft);text-align:left;font-size:14px;white-space:nowrap;
}
table th,.data-table th{background:var(--surface-strong);position:sticky;top:0;z-index:1;color:var(--text-secondary);font-weight:600}
table tr:hover td,.data-table tr:hover td{background:#3d6bff14}
.data-table tr.row-editing td{background:#3d6bff22}
.table-wrap{overflow:auto;border:1px solid var(--border-soft);border-radius:var(--radius-lg)}

/* ---------- Status / meta text ---------- */
.meta,.muted,.small,.table-hint{color:var(--text-muted)}
.meta{font-size:14px}
.small,.table-hint{font-size:12px}
.status{margin-top:10px;font-size:14px;min-height:18px}
.status.error{color:#ff8a8a}
.status.success{color:#7bf0ac}

/* ---------- Gradient text utilities ---------- */
.text-gradient{background:var(--gradient-1);-webkit-background-clip:text;background-clip:text;color:transparent}
.text-gradient-2{background:var(--gradient-2);-webkit-background-clip:text;background-clip:text;color:transparent}
