/* ===========================================
   Valley Contax Partner Portal
   (visual theme adapted from WebRX)
   =========================================== */

:root {
  --vc-navy: #1a2332;
  --vc-navy-light: #243447;
  --vc-teal: #0d9488;
  --vc-teal-light: #14b8a6;
  --vc-blue: #2563eb;
  --vc-blue-light: #3b82f6;
  --vc-gray-50: #f8fafc;
  --vc-gray-100: #f1f5f9;
  --vc-gray-200: #e2e8f0;
  --vc-gray-600: #475569;
  --vc-gray-700: #334155;
  --vc-sidebar-width: 220px;
}

/* ---- Base ---- */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background-color: var(--vc-gray-50);
  color: #1e293b;
}

/* ---- Auth Page ---- */
.auth-body {
  background: linear-gradient(135deg, var(--vc-navy) 0%, var(--vc-navy-light) 50%, var(--vc-teal) 100%);
  min-height: 100vh;
}

.login-card { border: none; border-radius: 16px; overflow: hidden; }
.login-icon { font-size: 3rem; color: var(--vc-teal); }

/* ---- Navbar ---- */
.top-navbar {
  background: var(--vc-navy);
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
  padding: 0.6rem 1.2rem;
  z-index: 1030;
  position: fixed;
  top: 0; left: 0; right: 0;
}
.brand-text { font-size: 1.4rem; font-weight: 700; letter-spacing: -0.5px; }
.brand-sub {
  font-size: 0.8rem; font-weight: 300; opacity: 0.7;
  border-left: 1px solid rgba(255,255,255,0.3); padding-left: 0.6rem;
}

/* ---- Sidebar ---- */
.sidebar {
  position: fixed;
  top: var(--navbar-height, 56px);
  bottom: 0; left: 0;
  width: var(--vc-sidebar-width);
  background: #fff;
  border-right: 1px solid var(--vc-gray-200);
  overflow-y: auto;
  z-index: 1020;
}
.sidebar-inner { padding: 1.2rem 0; }
.sidebar-section { margin-bottom: 1.2rem; }
.sidebar-heading {
  font-size: 0.7rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--vc-gray-600);
  padding: 0 1.2rem; margin-bottom: 0.4rem;
}
.sidebar .nav-link {
  color: var(--vc-gray-700); padding: 0.45rem 1.2rem;
  font-size: 0.88rem; font-weight: 450;
  border-left: 3px solid transparent; transition: all 0.15s;
}
.sidebar .nav-link:hover { background: var(--vc-gray-100); color: var(--vc-blue); border-left-color: var(--vc-blue); }
.sidebar .nav-link.active { background: #eff6ff; color: var(--vc-blue); border-left-color: var(--vc-blue); font-weight: 600; }

/* ---- Main Content ---- */
.main-content { padding: 1.5rem 2rem 3rem; margin-top: var(--navbar-height, 56px); }
@media (min-width: 768px) {
  .col-md-10.ms-sm-auto.main-content {
    margin-left: var(--vc-sidebar-width) !important;
    width: calc(100% - var(--vc-sidebar-width));
  }
}

/* ---- Cards ---- */
.card {
  border: 1px solid var(--vc-gray-200);
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  overflow: hidden;
}
.card-header { font-weight: 600; font-size: 0.95rem; background-color: #f1f3f5; }
.stat-card { transition: transform 0.15s, box-shadow 0.15s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.calc-card { transition: transform 0.15s, box-shadow 0.15s; }
.calc-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }

/* ---- Tables ---- */
.table th {
  font-size: 0.82rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.04em; color: var(--vc-gray-600); border-bottom-width: 2px;
}
.table td { vertical-align: middle; }
tr[data-href] { cursor: pointer; }

/* ---- Buttons ---- */
.btn-primary { background: var(--vc-blue); border-color: var(--vc-blue); }
.btn-primary:hover { background: var(--vc-blue-light); border-color: var(--vc-blue-light); }

/* ---- Badges / Alerts / Forms ---- */
.badge { font-weight: 500; letter-spacing: 0.02em; }
.alert { border-radius: 8px; font-size: 0.9rem; }
.form-label { font-weight: 500; font-size: 0.88rem; color: var(--vc-gray-700); }
.form-control:focus, .form-select:focus {
  border-color: var(--vc-blue-light);
  box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.15);
}

/* ---- Headings ---- */
h2 { font-weight: 700; font-size: 1.5rem; color: var(--vc-navy); }
h2 .bi { color: var(--vc-teal); }
code { color: var(--vc-navy); font-weight: 500; }

/* ---- Calculator results ---- */
.out { font-weight: 600; font-variant-numeric: tabular-nums; }
.results td.out { font-size: 1.05rem; }
.results th { letter-spacing: 0.02em; }
.field-error { color: #dc3545; font-size: 0.8rem; min-height: 1em; }

/* ---- Privacy notice (admin-editable plain text) ---- */
.prewrap { white-space: pre-wrap; line-height: 1.6; }

/* ---- Responsive ---- */
@media (max-width: 767px) {
  .main-content { padding: 1rem; }
  .sidebar { display: none; }
}
