/*
 * Verico Contrast Safety Guard v1
 * Purpose:
 * - Navy / blue background => white text.
 * - White / light background => dark navy text.
 * - Prevent unreadable white-on-white and black-on-navy combinations.
 */

:root {
  --verico-navy: #071D3A;
  --verico-navy-soft: #0B2A50;
  --verico-navy-deep: #041731;
  --verico-gold: #C8A24A;
  --verico-gold-soft: #E6C76A;
  --verico-white: #FFFFFF;
  --verico-ink: #102033;
  --verico-muted: #5B677A;
  --verico-surface: #FFFFFF;
  --verico-soft-bg: #F6F8FC;
  --verico-border: rgba(7, 29, 58, 0.14);
}

/* Base readability */
html body {
  color: var(--verico-ink);
  background: var(--verico-soft-bg);
}

/* When background is navy/blue, text must be white, not black. */
.bg-navy,
.navy,
.dark-navy,
.verico-navy,
.vgm-hero,
.vgm-header,
.vgm-topbar,
.vgm-sidebar,
.vgm-banner,
.vgm-card-navy,
.report-hero,
.report-header,
.report-cover,
.report-titlebar,
.isca-hero,
.isca-header,
.student-hero,
.teacher-hero,
.parent-hero,
.admin-hero,
.dashboard-hero,
.section-navy,
.card-navy,
.panel-navy,
.hero-navy,
[class*="navy"],
[class*="blue-card"],
[class*="dark-card"],
[style*="background:#071D3A"],
[style*="background: #071D3A"],
[style*="background-color:#071D3A"],
[style*="background-color: #071D3A"],
[style*="background:#041731"],
[style*="background: #041731"],
[style*="background-color:#041731"],
[style*="background-color: #041731"],
[style*="background:#0B2A50"],
[style*="background: #0B2A50"],
[style*="background-color:#0B2A50"],
[style*="background-color: #0B2A50"],
[style*="background:#071d3a"],
[style*="background: #071d3a"],
[style*="background-color:#071d3a"],
[style*="background-color: #071d3a"],
[style*="background:#041731"],
[style*="background: #041731"],
[style*="background-color:#041731"],
[style*="background-color: #041731"],
[style*="background:#0b2a50"],
[style*="background: #0b2a50"],
[style*="background-color:#0b2a50"],
[style*="background-color: #0b2a50"] {
  background-color: var(--verico-navy) !important;
  color: var(--verico-white) !important;
}

/* Force nested text inside navy blocks to remain readable. */
.bg-navy *,
.navy *,
.dark-navy *,
.verico-navy *,
.vgm-hero *,
.vgm-header *,
.vgm-topbar *,
.vgm-sidebar *,
.vgm-banner *,
.vgm-card-navy *,
.report-hero *,
.report-header *,
.report-cover *,
.report-titlebar *,
.isca-hero *,
.isca-header *,
.student-hero *,
.teacher-hero *,
.parent-hero *,
.admin-hero *,
.dashboard-hero *,
.section-navy *,
.card-navy *,
.panel-navy *,
.hero-navy *,
[class*="navy"] *,
[class*="blue-card"] *,
[class*="dark-card"] * {
  color: inherit;
}

/* Specific readable colors inside navy area */
.bg-navy p,
.navy p,
.dark-navy p,
.verico-navy p,
.report-header p,
.vgm-header p,
.vgm-hero p,
.section-navy p,
.card-navy p,
.panel-navy p,
[class*="navy"] p {
  color: rgba(255,255,255,0.90) !important;
}

.bg-navy h1, .bg-navy h2, .bg-navy h3, .bg-navy h4,
.navy h1, .navy h2, .navy h3, .navy h4,
.dark-navy h1, .dark-navy h2, .dark-navy h3, .dark-navy h4,
.report-header h1, .report-header h2, .report-header h3,
.vgm-header h1, .vgm-header h2, .vgm-header h3,
.section-navy h1, .section-navy h2, .section-navy h3,
.card-navy h1, .card-navy h2, .card-navy h3,
.panel-navy h1, .panel-navy h2, .panel-navy h3,
[class*="navy"] h1, [class*="navy"] h2, [class*="navy"] h3 {
  color: var(--verico-white) !important;
}

/* Gold text remains gold on navy. */
.bg-navy .gold,
.navy .gold,
.dark-navy .gold,
.verico-navy .gold,
.report-header .gold,
.vgm-header .gold,
.section-navy .gold,
.card-navy .gold,
.panel-navy .gold,
[class*="navy"] .gold,
[class*="navy"] .accent,
[class*="navy"] .highlight {
  color: var(--verico-gold-soft) !important;
}

/* When background is white/light, text must be dark navy, not white. */
.bg-white,
.white,
.card,
.box,
.panel,
.content-card,
.report-card,
.vgm-card,
.vgm-panel,
.student-card,
.teacher-card,
.parent-card,
.admin-card,
.dashboard-card,
.section-white,
.table-wrap,
.recommendation-card,
.university-card,
.country-card,
.mission-card,
.reflection-card,
.evidence-card,
.score-card,
[style*="background:#fff"],
[style*="background: #fff"],
[style*="background-color:#fff"],
[style*="background-color: #fff"],
[style*="background:#ffffff"],
[style*="background: #ffffff"],
[style*="background-color:#ffffff"],
[style*="background-color: #ffffff"],
[style*="background:white"],
[style*="background: white"],
[style*="background-color:white"],
[style*="background-color: white"] {
  color: var(--verico-ink) !important;
}

/* Nested text inside white cards should not become white. */
.bg-white *,
.white *,
.card *,
.box *,
.panel *,
.content-card *,
.report-card *,
.vgm-card *,
.vgm-panel *,
.student-card *,
.teacher-card *,
.parent-card *,
.admin-card *,
.dashboard-card *,
.section-white *,
.table-wrap *,
.recommendation-card *,
.university-card *,
.country-card *,
.mission-card *,
.reflection-card *,
.evidence-card *,
.score-card * {
  color: inherit;
}

/* Headings on white/light background */
.bg-white h1, .bg-white h2, .bg-white h3, .bg-white h4,
.white h1, .white h2, .white h3, .white h4,
.card h1, .card h2, .card h3, .card h4,
.box h1, .box h2, .box h3, .box h4,
.panel h1, .panel h2, .panel h3, .panel h4,
.content-card h1, .content-card h2, .content-card h3,
.report-card h1, .report-card h2, .report-card h3,
.vgm-card h1, .vgm-card h2, .vgm-card h3,
.student-card h1, .student-card h2, .student-card h3,
.teacher-card h1, .teacher-card h2, .teacher-card h3,
.parent-card h1, .parent-card h2, .parent-card h3,
.admin-card h1, .admin-card h2, .admin-card h3,
.dashboard-card h1, .dashboard-card h2, .dashboard-card h3 {
  color: var(--verico-navy) !important;
}

/* Paragraphs on white/light background */
.bg-white p,
.white p,
.card p,
.box p,
.panel p,
.content-card p,
.report-card p,
.vgm-card p,
.student-card p,
.teacher-card p,
.parent-card p,
.admin-card p,
.dashboard-card p {
  color: var(--verico-muted) !important;
}

/* Tables: white rows use navy text; navy headers use white text. */
table {
  color: var(--verico-ink) !important;
  background: var(--verico-white);
}
table th {
  background: var(--verico-navy) !important;
  color: var(--verico-white) !important;
}
table th * {
  color: var(--verico-white) !important;
}
table td {
  color: var(--verico-ink) !important;
  background-color: var(--verico-white);
}

/* Form controls must remain readable */
input, select, textarea {
  background: #ffffff !important;
  color: var(--verico-ink) !important;
  border-color: var(--verico-border) !important;
}
input::placeholder, textarea::placeholder {
  color: #7B8796 !important;
}

/* Buttons */
.btn,
button,
a.button,
.vgm-btn,
.report-btn,
.action-btn {
  border-radius: 12px;
}
.btn-primary,
.button-primary,
.vgm-btn-primary,
.report-btn-primary,
button.primary,
a.primary {
  background: var(--verico-gold) !important;
  color: var(--verico-navy) !important;
  border-color: var(--verico-gold) !important;
  font-weight: 700;
}
.btn-secondary,
.button-secondary,
.vgm-btn-secondary,
.report-btn-secondary,
button.secondary,
a.secondary {
  background: var(--verico-navy) !important;
  color: var(--verico-white) !important;
  border-color: var(--verico-navy) !important;
}

/* Badges */
.badge,
.pill,
.tag,
.vgm-badge {
  background: rgba(200,162,74,0.14);
  color: var(--verico-navy) !important;
  border: 1px solid rgba(200,162,74,0.35);
}
[class*="navy"] .badge,
[class*="navy"] .pill,
[class*="navy"] .tag,
[class*="navy"] .vgm-badge {
  color: var(--verico-gold-soft) !important;
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.20);
}

/* Explicit emergency classes available for manual use */
.verico-bg-navy {
  background: var(--verico-navy) !important;
  color: #fff !important;
}
.verico-bg-navy * {
  color: inherit;
}
.verico-bg-white {
  background: #fff !important;
  color: var(--verico-ink) !important;
}
.verico-bg-white * {
  color: inherit;
}
.verico-text-on-navy {
  color: #fff !important;
}
.verico-text-on-white {
  color: var(--verico-ink) !important;
}

/* Print / PDF export readability */
@media print {
  body, .card, .report-card, .vgm-card, .panel {
    color: var(--verico-ink) !important;
  }
  .report-header, .vgm-header, .section-navy, .card-navy, .panel-navy {
    background: var(--verico-navy) !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .report-header *, .vgm-header *, .section-navy *, .card-navy *, .panel-navy * {
    color: #fff !important;
  }
}