/* =====================================================================
   NEXUSFLOW LICENSE & MONITORING SYSTEM
   Premium Dark Theme - Elegant & Professional
   ===================================================================== */

:root {
  --nfx-bg:        #0a0e17;
  --nfx-bg-2:      #0f1521;
  --nfx-card:      #131a28;
  --nfx-card-2:    #1a2233;
  --nfx-border:    #1e2a40;
  --nfx-text:      #e4e9f2;
  --nfx-muted:     #7b8499;
  --nfx-accent:    #4dabf7;
  --nfx-accent-2:  #3b82f6;
  --nfx-success:   #2dd4a7;
  --nfx-danger:    #ef4458;
  --nfx-warning:   #f5b14a;
  --nfx-purple:    #9d6bff;
}

/* ===== GLOBAL ===== */
body {
  background: var(--nfx-bg);
  color: var(--nfx-text);
  font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;
  font-size: .9rem;
}

.nfx-app { background: var(--nfx-bg); }

a { color: var(--nfx-accent); text-decoration: none; }
a:hover { color: var(--nfx-accent-2); }

/* ===== NAVBAR ===== */
.nfx-navbar {
  background: linear-gradient(135deg, var(--nfx-bg-2) 0%, var(--nfx-card) 100%);
  border-bottom: 1px solid var(--nfx-border);
  padding: .6rem 1rem;
  box-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.nfx-navbar .navbar-brand {
  color: var(--nfx-text);
  font-size: 1.1rem;
  letter-spacing: .5px;
}
.nfx-logo {
  color: var(--nfx-accent);
  font-size: 1.3rem;
  display: inline-flex;
  align-items: center;
}
.nfx-navbar .nav-link {
  color: var(--nfx-muted);
  padding: .5rem .9rem;
  border-radius: 6px;
  margin: 0 2px;
  transition: all .15s ease;
  font-weight: 500;
}
.nfx-navbar .nav-link:hover {
  color: var(--nfx-text);
  background: rgba(77,171,247,.08);
}
.nfx-navbar .nav-link.active {
  color: var(--nfx-accent);
  background: rgba(77,171,247,.12);
}
.nfx-navbar .nav-link i { margin-right: 4px; }

/* ===== CARDS ===== */
.card {
  background: var(--nfx-card);
  border: 1px solid var(--nfx-border);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.card-header {
  background: var(--nfx-card-2);
  border-bottom: 1px solid var(--nfx-border);
  font-weight: 600;
  padding: .7rem 1rem;
}
.card-body { padding: 1rem; }

/* ===== STAT CARDS ===== */
.stat-card {
  background: var(--nfx-card);
  border: 1px solid var(--nfx-border);
  border-radius: 10px;
  padding: 1.1rem;
  position: relative;
  overflow: hidden;
  transition: transform .15s ease, border-color .15s ease;
}
.stat-card:hover {
  transform: translateY(-2px);
  border-color: var(--nfx-accent);
}
.stat-card .stat-icon {
  position: absolute;
  right: 1rem;
  top: 1rem;
  font-size: 2rem;
  opacity: .15;
}
.stat-card .stat-label {
  color: var(--nfx-muted);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  font-weight: 600;
}
.stat-card .stat-value {
  font-size: 1.7rem;
  font-weight: 700;
  margin-top: .3rem;
  color: var(--nfx-text);
}
.stat-card .stat-sub {
  font-size: .75rem;
  color: var(--nfx-muted);
  margin-top: .2rem;
}

/* ===== TABLES ===== */
.table {
  color: var(--nfx-text);
  margin-bottom: 0;
}
.table > :not(caption) > * > * { padding: .7rem .8rem; }
.table thead th {
  background: var(--nfx-card-2);
  border-bottom: 1px solid var(--nfx-border);
  color: var(--nfx-muted);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  font-weight: 600;
}
.table tbody tr {
  border-color: var(--nfx-border);
  transition: background .1s ease;
}
.table tbody tr:hover { background: rgba(77,171,247,.04); }
.table tbody td { border-color: var(--nfx-border); vertical-align: middle; }

/* ===== BADGES ===== */
.badge { font-weight: 600; padding: .35em .6em; }

/* ===== BUTTONS ===== */
.btn { font-weight: 500; border-radius: 6px; }
.btn-primary {
  background: var(--nfx-accent);
  border-color: var(--nfx-accent);
}
.btn-primary:hover {
  background: var(--nfx-accent-2);
  border-color: var(--nfx-accent-2);
}
.btn-outline-primary {
  color: var(--nfx-accent);
  border-color: var(--nfx-accent);
}
.btn-outline-primary:hover {
  background: var(--nfx-accent);
  border-color: var(--nfx-accent);
}

/* ===== FORMS ===== */
.form-control, .form-select {
  background: var(--nfx-bg-2);
  border: 1px solid var(--nfx-border);
  color: var(--nfx-text);
  border-radius: 6px;
}
.form-control:focus, .form-select:focus {
  background: var(--nfx-bg-2);
  border-color: var(--nfx-accent);
  color: var(--nfx-text);
  box-shadow: 0 0 0 .2rem rgba(77,171,247,.15);
}
.form-control::placeholder { color: var(--nfx-muted); }
.form-label { color: var(--nfx-muted); font-size: .82rem; font-weight: 500; }
.input-group-text {
  background: var(--nfx-card-2);
  border: 1px solid var(--nfx-border);
  color: var(--nfx-muted);
}

/* ===== LOGIN PAGE ===== */
.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at top, #131a28 0%, var(--nfx-bg) 70%);
  padding: 1rem;
}
.login-card {
  background: var(--nfx-card);
  border: 1px solid var(--nfx-border);
  border-radius: 14px;
  box-shadow: 0 10px 40px rgba(0,0,0,.5);
  width: 100%;
  max-width: 410px;
  padding: 2.2rem;
}
.login-card .login-logo {
  font-size: 2.4rem;
  color: var(--nfx-accent);
  text-align: center;
  margin-bottom: .4rem;
}
.login-card h3 {
  text-align: center;
  font-weight: 700;
  margin-bottom: .2rem;
}
.login-card .login-sub {
  text-align: center;
  color: var(--nfx-muted);
  font-size: .85rem;
  margin-bottom: 1.5rem;
}

/* ===== LANDING PAGE ===== */
.landing-hero {
  min-height: 100vh;
  background: radial-gradient(ellipse at 30% 20%, rgba(77,171,247,.12) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 80%, rgba(157,107,255,.08) 0%, transparent 50%),
              var(--nfx-bg);
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.landing-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(77,171,247,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(77,171,247,.03) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);
}
.landing-content { position: relative; z-index: 1; }
.landing-logo-big {
  font-size: 3.5rem;
  color: var(--nfx-accent);
  margin-bottom: 1rem;
}
.landing-title {
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: -1px;
  line-height: 1.1;
}
.landing-subtitle {
  font-size: 1.15rem;
  color: var(--nfx-muted);
  max-width: 520px;
}

/* ===== MONOSPACE (license key, account) ===== */
.mono {
  font-family: 'Consolas', 'Courier New', monospace;
  letter-spacing: .3px;
}

/* ===== MISC ===== */
.text-accent  { color: var(--nfx-accent) !important; }
.text-muted-2 { color: var(--nfx-muted) !important; }
.nfx-footer { background: var(--nfx-bg-2); border-top: 1px solid var(--nfx-border); }
.divider { height: 1px; background: var(--nfx-border); margin: 1rem 0; }
.cursor-pointer { cursor: pointer; }

/* progress bar for DD */
.dd-bar { height: 6px; border-radius: 3px; background: var(--nfx-border); overflow: hidden; }
.dd-bar > div { height: 100%; transition: width .3s ease; }

/* chart container */
.chart-container { position: relative; height: 280px; width: 100%; }

/* responsive */
@media (max-width: 768px) {
  .landing-title { font-size: 2rem; }
  .stat-card .stat-value { font-size: 1.3rem; }
}
