/* ================================================================
   Oranet NMS — Light Green Theme
   ================================================================ */
:root {
  --bg:       #f0fdf4;   /* light green page background */
  --card:     #ffffff;   /* white cards */
  --card2:    #ecfdf5;   /* alternate card / table header */
  --hover:    #d1fae5;   /* table row hover */
  --border:   #86efac;   /* borders */
  --border2:  #d1fae5;   /* table inner borders */
  --text:     #0f172a;   /* dark black text */
  --muted:    #475569;   /* muted text */
  --blue:     #15803d;   /* green accent (primary) */
  --green:    #15803d;   /* green */
  --orange:   #c2410c;   /* orange */
  --red:      #b91c1c;   /* red */
  --navbar:   #14532d;   /* dark green navbar */
  --nav-text: #f1f5f9;   /* navbar text */
}

body {
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: 'Segoe UI', system-ui, sans-serif;
}

/* Navbar */
.navbar {
  background: var(--navbar) !important;
  border-bottom: 1px solid #166534 !important;
}
.navbar-brand, .navbar .nav-link, .navbar .text-muted {
  color: var(--nav-text) !important;
}

/* Cards */
.card {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(21,128,61,.08);
}

/* Tables */
.table { color: var(--text) !important; }
.table th {
  background: var(--card2) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
  font-size: .78rem;
  text-transform: uppercase;
}
.table td {
  border-color: var(--border2) !important;
  vertical-align: middle;
  color: var(--text) !important;
}
.table tbody tr:hover { background: var(--hover) !important; }

/* Forms */
.form-control, .form-select {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
.form-control:focus, .form-select:focus {
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 3px rgba(21,128,61,.15) !important;
}
.form-control::placeholder { color: var(--muted) !important; }

/* Search box */
.search-box {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}

/* Text utilities */
.text-muted { color: var(--muted) !important; }
.text-primary { color: var(--blue) !important; }
.text-success { color: var(--green) !important; }
.text-danger  { color: var(--red) !important; }
.text-warning { color: var(--orange) !important; }
.text-info    { color: #0369a1 !important; }

/* Badges */
.badge.bg-secondary { background: #64748b !important; }

/* Status dots */
.status-dot { width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:4px; }
.dot-up     { background: var(--green); box-shadow: 0 0 5px var(--green); }
.dot-down   { background: var(--red);   box-shadow: 0 0 5px var(--red); animation: pulse 1s infinite; }
.dot-unknown { background: #94a3b8; }
.dot-ok  { background: var(--green); }
.dot-warn{ background: var(--orange); }
.dot-bad { background: var(--red); }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

/* Code / IP addresses */
code {
  color: #166534 !important;
  background: var(--card2) !important;
  padding: 1px 5px;
  border-radius: 4px;
}

/* Alert / PPPoE session rows */
.pppoe-ip   { color: var(--blue) !important; font-weight: 600; }
.pppoe-user { color: var(--text) !important; font-weight: 700; }

/* Section headings in cards */
.border-bottom { border-color: var(--border) !important; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--card2); }
::-webkit-scrollbar-thumb { background: #86efac; border-radius: 3px; }

/* Modal */
.modal-content {
  background: var(--card) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}
.modal-header, .modal-footer {
  border-color: var(--border) !important;
  background: var(--card2) !important;
}

/* Dropdown */
.dropdown-menu {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
}
.dropdown-item { color: var(--text) !important; }
.dropdown-item:hover { background: var(--hover) !important; }

/* Alert / View-as-LCO banner */
.alert-warning { background: #fef9c3 !important; border-color: #fde047 !important; color: #713f12 !important; }

/* Buttons override for dark navbar buttons */
.navbar .btn-outline-info    { color:#67e8f9; border-color:#67e8f9; }
.navbar .btn-outline-warning { color:#fde047; border-color:#fde047; }
.navbar .btn-outline-secondary { color:#cbd5e1; border-color:#cbd5e1; }
.navbar .btn-outline-danger  { color:#fca5a5; border-color:#fca5a5; }
.navbar .btn-outline-info:hover    { background:#0e7490; }
.navbar .btn-outline-warning:hover { background:#a16207; }

/* Login/reset page center box */
.login-box {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  border-radius: 16px;
  box-shadow: 0 4px 24px rgba(21,128,61,.12);
}
