/* =====================================================================
   PackZen — premium layer for staff dashboards (admin, driver, advisor, partner)
   Same language as the customer site (white, green + marigold, Bricolage/Geist),
   tuned for dense data. Restyle only: no markup, ids, permissions or logic.
   ===================================================================== */
:root {
  --ops-bg: #F6F8F7; --ops-surface: #FFFFFF; --ops-line: rgba(10, 40, 28, 0.10); --ops-line-2: rgba(10, 40, 28, 0.18);
  --ops-text: #0C1A14; --ops-text-2: #3E5248; --ops-muted: #6B7D74;
  --ops-green: #1F9D5C; --ops-green-deep: #157A47; --ops-green-soft: rgba(31, 157, 92, 0.10);
  --ops-marigold: #FFB224; --ops-marigold-ink: #9A5B00;
  --ops-display: "Bricolage Grotesque", "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ops-body: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ops-shadow: 0 1px 2px rgba(12, 26, 20, 0.04), 0 8px 24px -14px rgba(12, 26, 20, 0.16);
}
body { font-family: var(--ops-body) !important; -webkit-font-smoothing: antialiased; color: var(--ops-text); }
h1, h2, h3, .table-title, .page-title, .section-title, .topbar-title { font-family: var(--ops-display) !important; letter-spacing: -0.02em; }

/* ---------- login screens: light, calm, on brand ---------- */
#adminLogin, #driverLogin, #loginWrap, .login-screen, .auth-wrap, .partner-auth {
  background: radial-gradient(800px 500px at 80% 10%, rgba(31,157,92,0.14), transparent 60%),
              radial-gradient(600px 400px at 10% 90%, rgba(255,178,36,0.14), transparent 60%), #F6F8F7 !important;
}
#adminLogin > *, #driverLogin > *, #loginWrap > * {
  border-radius: 24px !important; border: 1px solid var(--ops-line) !important; box-shadow: 0 30px 80px -40px rgba(12,26,20,0.45) !important;
}
#loginWrap > * { background: #fff !important; color: var(--ops-text) !important; }
#loginWrap label, #loginWrap .nb-label, #loginWrap small, #loginWrap p { color: var(--ops-text-2) !important; }
#loginWrap input { background: #fff !important; color: var(--ops-text) !important; border: 1px solid var(--ops-line-2) !important; }

/* ---------- surfaces ---------- */
.stat-card, .table-card, .chart-card, .nb-card, .earn-card, .hist-card, .card, .job-card, .booking-card, .lead-kpi {
  background: var(--ops-surface) !important; border: 1px solid var(--ops-line) !important; border-radius: 18px !important; box-shadow: var(--ops-shadow) !important;
}
.sc-val, .stat-value, .earn-val, .lead-kpi-v { font-family: var(--ops-display) !important; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; color: var(--ops-text) !important; }
.sc-lbl, .stat-label, .earn-lbl, .sc-sub, .stat-sub { color: var(--ops-muted) !important; }

/* ---------- navigation ---------- */
.nav-item { border-radius: 12px !important; font-weight: 500 !important; transition: background-color .15s ease, color .15s ease; }
.nav-item:hover { background: var(--ops-green-soft) !important; }
.nav-item.active { background: var(--ops-green-soft) !important; color: var(--ops-green-deep) !important; font-weight: 700 !important; box-shadow: inset 3px 0 0 var(--ops-green); }
.drv-tab.active, .bn-item.active { color: var(--ops-green-deep) !important; }

/* ---------- tables ---------- */
.table-hdr { border-bottom: 1px solid var(--ops-line) !important; }
table th { font-family: var(--ops-body) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ops-muted) !important; background: #FAFBFA !important; }
table td { border-color: var(--ops-line) !important; }
tbody tr:hover { background: #F3F8F5 !important; }
.empty-row td, .empty-td, .hist-empty, .chat-empty { color: var(--ops-muted) !important; }

/* ---------- buttons & inputs ---------- */
.btn-primary-sm, .btn-assign, .btn-update, .btn-action, .btn-export, .nb-btn, .btn-primary {
  border-radius: 999px !important; font-weight: 600 !important; box-shadow: none !important;
}
.btn-primary-sm, .btn-assign, .btn-update, .btn-primary { background: var(--ops-green) !important; color: #fff !important; border: 0 !important; }
.btn-primary-sm:hover, .btn-assign:hover, .btn-update:hover, .btn-primary:hover { background: var(--ops-green-deep) !important; }
.btn-export, .btn-action { background: #fff !important; color: var(--ops-text) !important; border: 1px solid var(--ops-line-2) !important; }
.btn-cancel { border-radius: 999px !important; }
.field-input, .nb-field input, .nb-field select, #sectionLeads select, #sectionLeads input { border-radius: 12px !important; border: 1px solid var(--ops-line-2) !important; }
.field-input:focus, input:focus, select:focus, textarea:focus { outline: none !important; border-color: var(--ops-green) !important; box-shadow: 0 0 0 3px rgba(31,157,92,0.18) !important; }

/* ---------- badges ---------- */
.badge, .status-badge { border-radius: 999px !important; font-weight: 700 !important; letter-spacing: 0 !important; }
.svc-count { background: var(--ops-marigold) !important; color: #2A1A00 !important; border-radius: 999px !important; font-weight: 800 !important; }

/* partner portal sign-in / register pages */
body.partner-body[data-page="login"], body.partner-body[data-page="register"], body.partner-body[data-page="forgot"], .auth-page-wrap {
  background: radial-gradient(800px 500px at 80% 10%, rgba(31,157,92,0.14), transparent 60%),
              radial-gradient(600px 400px at 10% 90%, rgba(255,178,36,0.14), transparent 60%), #F6F8F7 !important;
}
.auth-page-card { border-radius: 24px !important; border: 1px solid var(--ops-line) !important; box-shadow: 0 30px 80px -40px rgba(12,26,20,0.45) !important; }
.auth-page-title { font-family: var(--ops-display) !important; }

/* partner portal pages (register, profile, settings, support): light header + progress */
body.partner-body .app-bar { background: rgba(255,255,255,.92) !important; border-bottom: 1px solid var(--ops-line) !important; box-shadow: none !important; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
body.partner-body .app-bar, body.partner-body .app-bar a, body.partner-body .app-bar span, body.partner-body .app-bar .app-logo-text { color: var(--ops-text) !important; }
body.partner-body .app-bar .app-login-pill { background: var(--ops-text) !important; color: #fff !important; }
.reg-progress-wrap { background: #fff !important; border-bottom: 1px solid var(--ops-line) !important; }
.reg-progress-wrap, .reg-progress-wrap * { color: var(--ops-text-2) !important; }
.reg-progress-track { background: #E5ECE8 !important; }
.reg-progress-fill { background: var(--ops-green) !important; box-shadow: none !important; }
.reg-card { border-radius: 20px !important; border: 1px solid var(--ops-line) !important; box-shadow: var(--ops-shadow) !important; }
.reg-card-title { font-family: var(--ops-display) !important; }
.vt-chip.selected, .vt-chip.active { border-color: var(--ops-green) !important; background: var(--ops-green-soft) !important; color: var(--ops-green-deep) !important; }

/* ---------- partner landing page (partner.html): light, on-brand, readable ---------- */
.partner-hero {
  background: radial-gradient(700px 420px at 85% 0%, rgba(31,157,92,0.16), transparent 60%),
              radial-gradient(520px 360px at 0% 100%, rgba(255,178,36,0.16), transparent 60%), #FFFFFF !important;
  color: var(--ops-text) !important; border-bottom: 1px solid var(--ops-line);
}
.partner-hero h1 { color: var(--ops-text) !important; font-family: var(--ops-display) !important; letter-spacing: -0.03em; line-height: 1.05 !important; }
.partner-hero .partner-hero-accent { color: var(--ops-green-deep) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
.partner-hero .partner-hero-sub, .partner-hero p { color: var(--ops-text-2) !important; }
.partner-hero-badge { background: var(--ops-green-soft) !important; color: var(--ops-green-deep) !important; border: 1px solid rgba(31,157,92,.3) !important; }
.partner-hero .pz-btn-primary { background: var(--ops-green) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; box-shadow: none !important; }
.partner-hero .pz-btn-outline { background: #fff !important; color: var(--ops-text) !important; border: 1px solid var(--ops-line-2) !important; border-radius: 999px !important; }
.partner-hero [class*="chip"], .partner-hero [class*="pill"], .partner-hero [class*="trust"] span, .partner-hero-trust > * {
  background: #fff !important; color: var(--ops-text-2) !important; border: 1px solid var(--ops-line-2) !important;
}
.partner-stats-strip { background: #fff !important; border-bottom: 1px solid var(--ops-line) !important; }
.partner-stats-strip * { color: var(--ops-text-2) !important; }
.partner-stats-strip [class*="value"], .partner-stats-strip strong, .partner-stats-strip b { color: var(--ops-green-deep) !important; font-family: var(--ops-display) !important; }
.partner-section h2 { font-family: var(--ops-display) !important; color: var(--ops-text) !important; letter-spacing: -0.02em; }
.partner-section-alt { background: var(--ops-bg) !important; }
.partner-section [class*="card"], .partner-section [class*="tile"], .partner-section [class*="item"]:not(li) {
  border-radius: 16px !important; border: 1px solid var(--ops-line) !important; box-shadow: var(--ops-shadow) !important; background: #fff !important;
}
.pz-track { gap: 10px; }
.pz-track span { white-space: nowrap; flex: none; }
.pz-track b { font-size: .98rem; }
.partner-trust-row > *, .partner-trust-row span, .partner-trust-row div {
  background: #fff !important; color: var(--ops-text-2) !important; border: 1px solid var(--ops-line-2) !important; border-radius: 999px !important;
}
.partner-trust-row svg, .partner-trust-row i { color: var(--ops-green) !important; }

/* admin preview banner (partner portal + crew app) */
.pz-preview-banner { position: sticky; top: 0; z-index: 9999; background: #FFF3DC; color: #5C3A00; border-bottom: 1px solid #F5C46B; padding: 10px 14px; font: 500 .88rem var(--ops-body); text-align: center; }
.pz-preview-banner a { color: #157A47; font-weight: 700; margin-left: 4px; }

/* partner.html: final call-to-action + footer readable and on-brand */
.partner-final-cta { background: linear-gradient(135deg, #0F3D27, #157A47) !important; color: #fff !important; }
.partner-final-cta h2, .partner-final-cta p, .partner-final-cta span { color: #fff !important; }
.partner-final-cta p { opacity: .9; }
.partner-final-cta a:not(.pz-btn) { color: #FFD27A !important; font-weight: 700; }
.partner-final-cta .pz-btn, .partner-final-cta .pz-btn-primary { background: #fff !important; color: #0F3D27 !important; border: 0 !important; }
.partner-footer-full { background: #0C1A14 !important; color: #E6EFEA !important; }
.partner-footer-full .footer-inner { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: flex-start; justify-content: space-between; max-width: 1100px; margin: 0 auto; padding: 28px 18px; }
.partner-footer-full h3, .partner-footer-full p, .partner-footer-full span, .partner-footer-full div { color: #E6EFEA !important; }
.partner-footer-full h3 { font-family: var(--ops-display); font-size: 1.2rem; margin: 0 0 4px; display: flex; gap: 8px; align-items: center; }
.partner-footer-full .footer-brand { display: flex; gap: 12px; align-items: flex-start; max-width: 360px; }
.partner-footer-full .footer-brand img { background: #fff; border-radius: 10px; padding: 3px; }
.partner-footer-full .footer-links { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.partner-footer-full a { color: #9FE0BC !important; text-decoration: none !important; font-weight: 600; }
.partner-footer-full a:hover { color: #fff !important; text-decoration: underline !important; }
.partner-footer-full .partner-badge-footer { background: #1F9D5C !important; color: #fff !important; font-size: .7rem; padding: 2px 8px; border-radius: 999px; }
.portal-crew-btn { display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 999px; background: var(--ops-green); color: #fff !important; font-weight: 700; font-size: .88rem; text-decoration: none; }
.portal-crew-btn:hover { background: var(--ops-green-deep); }
