/* ============================================================
 *  NL WOLF NETWORK — GLOBAL LOCKDOWN STYLESHEET
 *  Path: /global-lockdown.css  (mirror to every site root)
 *  Authored: 2026-05-13
 *
 *  This file is the FINAL enforcement layer for the design system.
 *  It overrides any per-page CSS that violates the lockdown rules.
 *  Imported by every HTML page on all 4 sites:
 *      nlwolf.com
 *      wolfstandard.ca
 *      wolfcommand.ca
 *      wolfpacklounge.com
 *
 *  RULES (locked May 2026, do not weaken):
 *  1. No grey body text. Body / label / secondary text is
 *     var(--white) or var(--blue). The ONLY allowed muted text
 *     on a content page is the footer copyright line (white at
 *     0.6 opacity).
 *  2. Three fonts only: Bebas Neue (headings), Barlow Condensed
 *     (labels / nav / CTAs), Barlow (body).
 *  3. Font sizes / weights / letter-spacing match the design
 *     system tables. Page-level CSS may scale slightly but the
 *     base ladder below is the floor.
 *  4. --silver var is RESERVED for nav-link default state ONLY.
 *     Do not use --silver for any other text element.
 *  5. Grey hex codes (#C0C0C0, #888, #777, #666, #555, #444,
 *     #333) are BANNED on any visible text element. Hairline
 *     borders may still use #111-#222 for separators.
 * ============================================================ */

/* ---------- 1. Token re-declaration (defensive) ----------
   If a page forgets to declare the palette, these defaults kick in.
   Pages that DO declare their own palette will override these. */
:root {
  --gold:        #B8860B;
  --gold-bright: #D4A017;
  --blue:        #4AB2EF;
  --blue-glow:   rgba(74, 178, 239, 0.1);
  --black:       #000000;
  --dark:        #0A0A0A;
  --dark2:       #0f0f0f;
  --dark3:       #1A1A1A;
  --silver:      #F5F0E8;  /* was grey #C0C0C0 -- banned, now white */
  --white:       #F5F0E8;
  --red:         #8B0000;
  --red-bright:  #cc3333;
  --green:       #6bb33b;
}

/* ---------- 2. Type ladder (LOCKED minimum values) ---------- */

/* Headings — Bebas Neue */
h1, .h1, .page-head-title, .hero-title, .section-title {
  font-family: 'Bebas Neue', sans-serif;
  color: var(--white);
  letter-spacing: 1px;
  line-height: 0.95;
}
h2, .h2 {
  font-family: 'Bebas Neue', sans-serif;
  color: var(--white);
  letter-spacing: 1px;
  line-height: 1;
}
h3, .h3, .card-title, .tile-name {
  font-family: 'Bebas Neue', sans-serif;
  color: var(--white);
  letter-spacing: 1px;
}

/* Labels / meta / CTAs — Barlow Condensed uppercase */
.section-label, .page-head-label, .dash-section-label,
.card-meta, .tile-tag, .card-cta, .btn,
.footer-links a, .nav-mobile a {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
}

/* Body / description — Barlow */
body, p, .card-desc, .tile-status, .page-head-sub {
  font-family: 'Barlow', sans-serif;
}

/* ---------- 3. GREY KILLER (enforcement layer) ----------
   Catch every element that has historically rendered grey.
   These selectors are intentionally broad and use higher
   specificity than per-page rules to win the cascade. */

/* Section labels */
body .section-label,
body .page-head-label,
body .dash-section-label,
body .ref-wing-label {
  color: var(--blue);
}

/* Card / tile descriptions and statuses */
body .card-desc,
body .tile-status,
body .tile-name,
body .tile-tag {
  /* preserve tile-tag = gold, others fall back to white/blue */
}
body .card-desc,
body .tile-status {
  color: var(--blue);
}
body .tile-name {
  color: var(--white);
}
body .tile-tag {
  color: var(--gold-bright);
}

/* Subtitles, body text, page sub */
body .page-head-sub,
body p {
  color: var(--white);
}

/* Stat labels (ATK / DEF / HP / GATHER SPD / etc.) */
body .troop-stat-label,
body .metric-label,
body .skin-stat-label,
body .economy-stat-label,
body .hero-id-meta,
body .beast-meta,
body .beast-value-cta,
body .card-cta,
body .slot-name,
body .slot-val,
body .equipment-legend,
body .breakdown-note {
  color: var(--blue);
}

/* Empty / placeholder states — blue at low opacity, never grey */
body .gear-card.empty .slot-name,
body .gear-card.empty .slot-val,
body .hero-gear-slot.empty,
body .tile.placeholder .tile-tag,
body .tile.placeholder .tile-status,
body .tile-link.muted,
body .skin-thumb.more,
body .widget-badge.dim {
  color: var(--blue);
  opacity: 0.5;
}
body .tile.placeholder .tile-name {
  color: var(--white);
  opacity: 0.7;
}

/* Footer copyright is the ONLY muted text allowed */
body .footer-copy {
  color: var(--white);
}

/* ---------- 4. Hard ban on grey hex codes -----------
   If a style attribute or inline rule sets a known grey value
   directly on body text, force it back. We can't override every
   inline style with CSS alone, but these utility classes catch
   the common offenders if pages use them. */
.text-muted, .text-grey, .text-gray, .muted-text {
  color: var(--blue) !important;
  opacity: 0.7;
}

/* ---------- 5. Nav silver exception (sole permitted use) ----- */
.nav-links a {
  color: var(--white);
}
.nav-links a:hover {
  color: var(--blue);
}
.nav-links a.active {
  color: var(--gold-bright);
}

/* ---------- 6. Anti-regression rules -----------
   These selectors target the exact violations seen in the
   Wolf Command dashboard. If anyone reintroduces these patterns
   with grey colors, this file forces them back to spec. */
body .hero-id-meta,
body .beast-meta {
  color: var(--blue) !important;
}
body .footer-copy {
  color: var(--white) !important;
}
