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

/* Shared public-facing visual system. Operational dashboards intentionally do not load this file. */
body.public-ui {
  --public-void: #111712;
  --public-ink: #172019;
  --public-fog: #edf1ed;
  --public-paper: #ffffff;
  --public-lime: #d6ff36;
  --public-orange: #ff7147;
  --public-mint: #43d6a1;
  --public-slate: #657169;
  --public-line: #dce4dd;
  /* Map legacy page variables into the same public palette. */
  --bg: var(--public-fog);
  --surface: var(--public-paper);
  --surface-2: #f5f8f5;
  --surface-3: #edf3ee;
  --surface-4: #dce7de;
  --gold: var(--public-orange);
  --amber: var(--public-orange);
  --amber-light: #ff9a7e;
  --blue: #238a68;
  --green: #21864f;
  --cyan: #168d9a;
  --text: var(--public-ink);
  --text-2: var(--public-slate);
  --text-3: #7b897f;
  --text2: var(--public-slate);
  --text3: #7b897f;
  --border: var(--public-line);
  --border2: #b7cfbb;
  --glass: var(--public-paper);
  margin: 0 !important;
  min-height: 100vh;
  background: var(--public-fog) !important;
  color: var(--public-ink) !important;
  font-family: Manrope, sans-serif !important;
  line-height: 1.55;
}

body.public-ui *, body.public-ui *::before, body.public-ui *::after { box-sizing: border-box; }
body.public-ui h1, body.public-ui h2, body.public-ui h3, body.public-ui h4,
body.public-ui .title, body.public-ui .section-title { color: var(--public-ink); font-family: Manrope, sans-serif !important; }
body.public-ui p { color: var(--public-slate); }
body.public-ui a { color: inherit; }
body.public-ui button, body.public-ui input, body.public-ui select, body.public-ui textarea { font-family: Manrope, sans-serif !important; }

/* Legacy public navigation bars */
body.public-ui nav, body.public-ui .nav, body.public-ui #nav, body.public-ui .topbar {
  background: rgba(23, 32, 25, .97) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .15) !important;
  box-shadow: 0 8px 24px rgba(17, 23, 18, .12) !important;
}
body.public-ui .nav-brand, body.public-ui .topbar-title { color: var(--public-lime) !important; font-family: Manrope, sans-serif !important; }
body.public-ui .nav-links a, body.public-ui .nav-back, body.public-ui .btn-back { color: #eaf2ec !important; }
body.public-ui .nav-links a:hover, body.public-ui .nav-links a.active, body.public-ui .nav-back:hover, body.public-ui .btn-back:hover { color: var(--public-lime) !important; }

body.public-ui .btn, body.public-ui .btn-primary, body.public-ui .nav-button, body.public-ui .cta {
  border: 1px solid var(--public-ink) !important;
  border-radius: 6px !important;
  background: var(--public-ink) !important;
  color: var(--public-lime) !important;
  box-shadow: none !important;
  font-weight: 800 !important;
  text-shadow: none !important;
}
body.public-ui .btn:hover, body.public-ui .btn-primary:hover, body.public-ui .nav-button:hover, body.public-ui .cta:hover { background: #263b2b !important; color: #e4ff6c !important; transform: translateY(-1px); }
body.public-ui .btn-outline, body.public-ui .btn-ghost { border-color: var(--public-ink) !important; background: transparent !important; color: var(--public-ink) !important; }
body.public-ui nav .btn-outline, body.public-ui nav .btn-ghost, body.public-ui .topbar .btn-outline, body.public-ui .topbar .btn-ghost { border-color: rgba(255,255,255,.45) !important; color: #fff !important; }
body.public-ui .btn-outline:hover, body.public-ui .btn-ghost:hover { background: var(--public-ink) !important; color: var(--public-lime) !important; }

/* Forms and controls */
body.public-ui input, body.public-ui select, body.public-ui textarea, body.public-ui .form-control, body.public-ui .search-input, body.public-ui .filter-select {
  background: var(--public-paper) !important;
  color: var(--public-ink) !important;
  border: 1px solid var(--public-line) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}
body.public-ui input:focus, body.public-ui select:focus, body.public-ui textarea:focus, body.public-ui .form-control:focus, body.public-ui .search-input:focus { outline: 2px solid rgba(67, 214, 161, .35) !important; border-color: var(--public-mint) !important; }
body.public-ui input::placeholder, body.public-ui textarea::placeholder { color: #87958b !important; }
body.public-ui .form-label, body.public-ui .rv-label, body.public-ui .filter-label { color: var(--public-ink) !important; }

/* Editorial/document pages */
body.public-ui .hero:not(.profile-hero) { background: var(--public-fog) !important; color: var(--public-ink) !important; }
body.public-ui .hero:not(.profile-hero) h1, body.public-ui .hero:not(.profile-hero) h2, body.public-ui .hero:not(.profile-hero) h3 { color: var(--public-ink) !important; }
body.public-ui .hero h1, body.public-ui .mission-left h2, body.public-ui .values-head h2, body.public-ui .team-head h2, body.public-ui .cta-block h2 {
  background: none !important;
  background-image: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
  -webkit-text-fill-color: var(--public-ink) !important;
  color: var(--public-ink) !important;
}
body.public-ui .hero h1 em { color: var(--public-orange) !important; -webkit-text-fill-color: var(--public-orange) !important; }
body.public-ui .hero-grid, body.public-ui .hero-glow, body.public-ui .auth-grid-bg { opacity: 0 !important; background: none !important; }
body.public-ui .section-label, body.public-ui .tag, body.public-ui .label, body.public-ui .overline { color: #4b6b52 !important; }
body.public-ui .line-accent { background: var(--public-lime) !important; }
body.public-ui .doc-wrap, body.public-ui .toc, body.public-ui .info-box, body.public-ui .warn-box, body.public-ui .contact-card, body.public-ui .value-card, body.public-ui .stat-card, body.public-ui .card {
  background: var(--public-paper) !important;
  color: var(--public-ink) !important;
  border-color: var(--public-line) !important;
  box-shadow: 0 12px 30px rgba(23, 32, 25, .06) !important;
}
body.public-ui .section p, body.public-ui .doc-wrap p, body.public-ui .doc-wrap li, body.public-ui .value-card p, body.public-ui .stat-label { color: var(--public-slate) !important; }
body.public-ui .section-num, body.public-ui .stat-num { color: var(--public-ink) !important; }
body.public-ui .divider { border-color: var(--public-line) !important; background: var(--public-line) !important; }
body.public-ui .contact-card a { color: var(--public-ink) !important; }
body.public-ui .cta-block { background: var(--public-ink) !important; border-color: var(--public-ink) !important; color: #fff !important; }
body.public-ui .cta-block h2, body.public-ui .cta-block p { color: #fff !important; -webkit-text-fill-color: #fff !important; }
body.public-ui .cta-block .btn-primary { background: var(--public-lime) !important; color: var(--public-ink) !important; border-color: var(--public-lime) !important; }

/* Readability and surface treatment for legacy information pages. */
body.public-ui .hero-desc,
body.public-ui .mission-left p,
body.public-ui .value-card p,
body.public-ui .team-role,
body.public-ui .footer-brand p,
body.public-ui .footer-col a,
body.public-ui .footer-bottom,
body.public-ui .toc a { color: var(--public-slate) !important; }
body.public-ui .mission,
body.public-ui .values,
body.public-ui .team,
body.public-ui .cta-section { background: var(--public-fog) !important; }
body.public-ui .team-card { background: var(--public-paper) !important; border-color: var(--public-line) !important; box-shadow: 0 12px 30px rgba(23,32,25,.06) !important; }
body.public-ui .team-card:hover { border-color: var(--public-mint) !important; box-shadow: 0 18px 38px rgba(23,32,25,.12) !important; }
body.public-ui .team-avatar { background: #e5eee6 !important; }
body.public-ui .team-avatar::after { background: none !important; }
body.public-ui .team-name { color: var(--public-ink) !important; }
body.public-ui footer,
body.public-ui .footer { background: #0c130d !important; border-color: rgba(255,255,255,.14) !important; }
body.public-ui footer p,
body.public-ui footer a,
body.public-ui footer .footer-bottom { color: #bfcec1 !important; }
body.public-ui footer h3,
body.public-ui footer h4,
body.public-ui footer .footer-logo { color: var(--public-lime) !important; }

/* Fundi registration */
body.public-ui .page { background: var(--public-fog) !important; }
body.public-ui .info-panel { background: var(--public-ink) !important; color: #fff !important; }
body.public-ui .info-panel h1, body.public-ui .info-panel h2, body.public-ui .info-panel h3, body.public-ui .info-panel p, body.public-ui .info-panel .feature-text strong { color: #fff !important; }
body.public-ui .info-panel .section-label, body.public-ui .info-panel .feature-text span { color: var(--public-lime) !important; }
body.public-ui .form-panel { background: var(--public-paper) !important; color: var(--public-ink) !important; }
body.public-ui .steps { border-color: var(--public-line) !important; }
body.public-ui .step-dot, body.public-ui .step.active .step-dot, body.public-ui .step.done .step-dot { background: var(--public-ink) !important; color: var(--public-lime) !important; border-color: var(--public-ink) !important; }
body.public-ui .step-lbl { color: var(--public-slate) !important; }
body.public-ui .step.active .step-lbl, body.public-ui .step.done .step-lbl { color: var(--public-ink) !important; }
body.public-ui .form-section { border-color: var(--public-line) !important; }

/* Authentication */
body.public-ui .auth-page { background: var(--public-fog) !important; color: var(--public-ink) !important; }
body.public-ui .auth-box { position: relative; z-index: 1; }
body.public-ui .auth-logo { color: var(--public-ink) !important; }
body.public-ui .auth-card { background: var(--public-paper) !important; color: var(--public-ink) !important; border: 1px solid var(--public-line) !important; box-shadow: 0 18px 50px rgba(23, 32, 25, .12) !important; }
body.public-ui .auth-card h1, body.public-ui .auth-card h2, body.public-ui .auth-card .sub { color: var(--public-slate) !important; }
body.public-ui .auth-logo img { filter: none !important; }

/* Discovery and services retain their map, but use the public palette for chrome. */
body.public-ui .services-page, body.public-ui .app-body { background: var(--public-fog) !important; color: var(--public-ink) !important; }
body.public-ui .services-panel, body.public-ui .results-panel, body.public-ui .filter-drawer, body.public-ui .modal-box { background: var(--public-paper) !important; color: var(--public-ink) !important; border-color: var(--public-line) !important; }
body.public-ui .services-panel-head, body.public-ui .results-header { border-color: var(--public-line) !important; }
body.public-ui .services-panel .label, body.public-ui .results-count { color: var(--public-ink) !important; }
body.public-ui .fundi-card, body.public-ui .rv-card { background: var(--public-paper) !important; color: var(--public-ink) !important; border-color: var(--public-line) !important; }
body.public-ui .fundi-card:hover, body.public-ui .fundi-card.active { background: #f7fbf7 !important; border-color: var(--public-mint) !important; }
body.public-ui .fundi-card::before { background: var(--public-mint) !important; box-shadow: none !important; }
body.public-ui .sort-pill, body.public-ui .filter-btn, body.public-ui .map-btn { background: var(--public-paper) !important; color: var(--public-ink) !important; border-color: var(--public-line) !important; }
body.public-ui .sort-pill.active, body.public-ui .filter-apply { background: var(--public-ink) !important; color: var(--public-lime) !important; }
body.public-ui .state-box, body.public-ui .empty { color: var(--public-slate) !important; }
body.public-ui .rv-submit, body.public-ui .rv-open-btn { background: var(--public-ink) !important; color: var(--public-lime) !important; border-color: var(--public-ink) !important; }
body.public-ui .rv-input, body.public-ui .rv-textarea { background: var(--public-paper) !important; color: var(--public-ink) !important; border-color: var(--public-line) !important; }

/* Profile page */
body.public-ui .profile-header, body.public-ui .profile-card, body.public-ui .reviews-section, body.public-ui .gallery-section { background: var(--public-paper) !important; color: var(--public-ink) !important; border-color: var(--public-line) !important; }
body.public-ui .profile-name, body.public-ui .profile-location, body.public-ui .stat-val, body.public-ui .stat-label { color: var(--public-ink) !important; }
body.public-ui .stat-box { background: var(--public-fog) !important; border-color: var(--public-line) !important; }
body.public-ui .c-gold, body.public-ui .c-blue, body.public-ui .c-green, body.public-ui .c-cyan { color: var(--public-ink) !important; }

/* Branded 404 */
body.public-ui.page-404 { display: grid; place-items: center; padding: 24px; }
body.public-ui.page-404 #message { width: min(100%, 520px); margin: 0; padding: 42px; border: 1px solid var(--public-line); border-radius: 12px; background: var(--public-paper) !important; box-shadow: 0 18px 50px rgba(23, 32, 25, .12) !important; text-align: center; }
body.public-ui.page-404 #message h2 { color: var(--public-orange) !important; font: 500 12px 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }
body.public-ui.page-404 #message h1 { color: var(--public-ink) !important; font-size: clamp(30px, 6vw, 48px); font-weight: 800; letter-spacing: -.05em; }
body.public-ui.page-404 #message p { color: var(--public-slate) !important; }
body.public-ui.page-404 #message a { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 18px; margin: 5px; border-radius: 6px; background: var(--public-ink) !important; color: var(--public-lime) !important; text-transform: none; box-shadow: none !important; }
body.public-ui.page-404 #message a.secondary { background: transparent !important; color: var(--public-ink) !important; border: 1px solid var(--public-ink); }

@media (max-width: 760px) {
  body.public-ui .doc-wrap { width: min(100% - 30px, 760px) !important; }
  body.public-ui .page { display: block !important; }
  body.public-ui .info-panel, body.public-ui .form-panel { min-height: auto !important; }
  body.public-ui .services-panel { width: 100% !important; }
  body.public-ui .map-container { min-height: 360px; }
  body.public-ui.page-404 #message { padding: 30px 22px; }
  body.public-ui nav,
  body.public-ui .nav { padding-left: 16px !important; padding-right: 16px !important; }
  body.public-ui .nav-links { display: none !important; }
  body.public-ui .nav-cta .btn-outline,
  body.public-ui .nav-actions .btn-outline { display: none !important; }
}
