/* File: src/styles/font-scale.css */
/* ─────────────────────────────────────────────────────────────────────────────
   font-scale.css
   Single-file readability overrides for ALL DOM UI text.
   Import LAST in index.html (after all other stylesheets).

   To tweak readability of any DOM text, edit ONLY this file.
   Parallels CanvasTheme.js for canvas-drawn text.

   NOTE: the entire "EQUIP BAR" override block was removed — equipbar.css now
   bakes in the correct bright colours, and these !important rules were fighting
   it. The dead .hud-player-type / .hud-controls rules were removed too (the
   player-type subtitle no longer exists in the HUD).
───────────────────────────────────────────────────────────────────────────── */


/* ══════════════════════════════════════════════════════════════════════════
   HUD — top-left vital bars, status effects
══════════════════════════════════════════════════════════════════════════ */

/* HUD panel border */
.ui-hud {
  border-color: #2e5218 !important;                /* was #1e3212 — invisible */
}

/* Title */
.hud-title {
  color: #a8e058 !important;                       /* was #6aaa38 */
}

/* Senses value (bold inline) */
#hud-senses-value {
  color: #a0d860 !important;
}

/* ── Vitals ─────────────────────────────────────────────────────────── */

/* Vital labels — HP, NUT, EN */
.vital-label {
  color: #80aa48 !important;                       /* was #3a5a22 */
}

/* Vital numeric values — all states */
.vital-value {
  color: #80aa48 !important;                       /* was #4a7a28 */
}
.vital-value--healthy            { color: #90cc58 !important; }
.vital-value--hurt               { color: #e0b838 !important; }
.vital-value--critical           { color: #e06850 !important; }

.vital-value--nutrition-ok       { color: #b0e868 !important; }
.vital-value--nutrition-low      { color: #e0b838 !important; }
.vital-value--nutrition-starving { color: #e08038 !important; }

.vital-value--energy-ok          { color: #e0d038 !important; }
.vital-value--energy-low         { color: #b89828 !important; }
.vital-value--energy-exhausted   { color: #909090 !important; /* was #585858 */ }

/* ── Level / XP row ─────────────────────────────────────────────────── */

/* HIERARCHY: progression is Tier-3 (meta) info — it recedes at rest and
   wakes per-row when that track's level/fraction changes (.is-active set
   per-row in HudOverlay.updateLevel). The resting dim lives on each ROW (not
   the container) so a single track can pop to full while its siblings stay
   dimmed — a parent's opacity would otherwise cap the children. No :hover
   wake: controller players can't move a cursor over it.
   On wake the row also scales up slightly (from its left edge so it grows in
   place without shoving neighbours) — the size jump is what the eye catches
   first and snaps straight to the just-changed track. */
#hud-levels .vital-row {
  opacity: 0.45;
  transform: scale(1);
  transform-origin: left center;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
#hud-levels .vital-row.is-active {
  opacity: 1;
  transform: scale(1.06);
}

/* Coloured icons — only pop of colour on the level rows */
.level-icon--combat  { color: #ff5555 !important; }
.level-icon--fitness { color: #ffaa40 !important; }
.level-icon--energy  { color: #ffee55 !important; }

/* Labels stay uniform purple */
.level-label {
  color: #b880e8 !important;
}

.level-value {
  color: #b880e8 !important;
}

/* ── Status effect badges ───────────────────────────────────────────── */

.effect-name {
  font-size: 8px !important;                       /* was 7px */
}
.effect-timer-label {
  font-size: 8px !important;                       /* was 7px */
}

/* ── Ailment badges ─────────────────────────────────────────────────── */

.ailment-name {
  font-size: 8px !important;                       /* was 7px */
}
.ailment-timer-label {
  font-size: 8px !important;                       /* was 7px */
}

/* ── Toast stack ────────────────────────────────────────────────────── */

.toast {
  color: #c0ee80 !important;
  border: none !important;
}


/* ══════════════════════════════════════════════════════════════════════════
   INVENTORY OVERLAY
══════════════════════════════════════════════════════════════════════════ */

/* Panel border */
.inv-panel {
  border-color: #3a6a24 !important;                /* was #2a4a18 — dim */
}

/* Header border */
.inv-header {
  border-bottom-color: #3a6a24 !important;         /* was #2a4a18 */
}

/* Title */
.inv-title {
  color: #b0ee60 !important;                       /* was #8fce50 */
}

/* Section labels */
.inv-section-label {
  color: #6aaa38 !important;                       /* was #2d5a1a */
}

/* Header meta text */
.inv-meta--dim {
  color: #80b850 !important;                       /* was #4a7a28 */
}
.inv-meta--dim2 {
  color: #7a5e28 !important;                       /* was #3a2808 */
}
.inv-meta--armed {
  color: #e0a830 !important;                       /* was #c8901a */
}

/* Close hint */
.inv-close-hint {
  color: #70a840 !important;                       /* was #3a6022 */
}

/* Inventory action hints */
.inv-hint {
  font-size: 9px !important;
  color: #5a8a30 !important;
}

/* ── Equipment slots ────────────────────────────────────────────────── */

/* Slot labels */
.eslot-label {
  color: #5a9a30 !important;                       /* was #2a4a18 */
}
.eslot-label--weapon {
  color: #7a5a20 !important;                       /* was #3a2808 */
}
.equip-slot.is-selected .eslot-label {
  color: #d0ff90 !important;                       /* was #c0ee80 */
}
.eslot-label--ranged {
  color: #183a5a !important;
}
.equip-slot--ranged.is-selected .eslot-label--ranged {
  color: #50a8e8 !important;
}

/* Empty slot text */
.eslot-empty {
  color: #3a6a22 !important;                       /* was #1a2e10 */
}
.equip-slot--weapon .eslot-empty {
  color: #5a4820 !important;                       /* was #2a1e08 */
}

/* Prompt text (when an item can be placed) */
.eslot-prompt {
  color: #80cc48 !important;                       /* was #5a9a30 */
}
.equip-slot--weapon .eslot-prompt {
  color: #c89030 !important;                       /* was #a07020 */
}

/* Drop hint */
.slot-drop-hint {
  color: #a0e058 !important;                       /* was #80c050 */
}
.equip-slot--weapon .slot-drop-hint {
  color: #d89030 !important;                       /* was #c07020 */
}

/* Stat hint (right-aligned in equip slots) */
.stat-hint {
  color: rgba(170, 225, 105, 0.88) !important;    /* was rgba(100,160,60,0.65) */
}

/* ── Storage grid ───────────────────────────────────────────────────── */

/* Storage slot border */
.storage-slot {
  border-color: #2a4a1a !important;                /* was #182e10 — invisible */
}

/* Item names in grid */
.item-name--slot {
  color: #a0dc58 !important;                       /* was #70a840 */
}
.storage-slot.is-selected .item-name--slot {
  color: #d0ff90 !important;                       /* was #c0ee80 */
}
.item-name--ranged {
  color: #70b8e8 !important;
}
.equip-slot--ranged.is-selected .item-name--ranged {
  color: #a0d8ff !important;
}

/* Storage divider labels */
.storage-divider {
  color: #5a8a30 !important;                       /* was #2a4a18 */
}

/* Item quantity badge */
.item-qty {
  color: #ffe055 !important;                       /* was #ffcc44 — slight boost */
  text-shadow: 0 0 4px rgba(0,0,0,0.80);
}

/* ── Nearby strip ───────────────────────────────────────────────────── */

.nearby-label {
  color: #90d858 !important;                       /* was #6aaa38 */
}
.nearby-empty {
  color: #3a6a22 !important;                       /* was #1a2e10 */
}

/* Nearby chip text */
.nearby-chip {
  border-color: #2e5a1e !important;                /* was #1e3412 — dim */
}

/* ── Tooltip ────────────────────────────────────────────────────────── */

.tt-line {
  color: #80b850 !important;                       /* was #4a7a28 */
}
.tt-line--title {
  color: #c0f080 !important;                       /* was #90cc60 */
}

/* ── Crafting panel ─────────────────────────────────────────────────── */

/* Panel border */
.inv-craft-col {
  border-left-color: #2e5a1e !important;           /* was #1a3412 */
}

/* Crafting description */
.craft-desc {
  color: rgba(155, 215, 100, 0.85) !important;    /* was rgba(80,130,50,0.60) */
}

/* Card name */
.craft-card-name {
  color: #a8dc68 !important;                       /* was #90c060 */
}
.craft-card.is-selected .craft-card-name {
  color: #d0ff90 !important;                       /* was #c0ee80 */
}
.craft-card.is-uncraftable .craft-card-name {
  color: #80aa48 !important;                       /* was #4a6a30 */
}

/* Card quantity */
.craft-card-qty {
  color: #78b840 !important;                       /* was #5a9030 */
}

/* Chevron */
.craft-chevron {
  color: #4a8a28 !important;                       /* was #2d5a1a */
}
.craft-card.is-selected .craft-chevron {
  color: #80cc48 !important;                       /* was #6aaa38 */
}

/* Ingredient lines */
.craft-ing.has-enough {
  color: #80cc48 !important;                       /* was #6aaa38 */
}
.craft-ing.missing {
  color: #e06040 !important;                       /* was #c05030 */
}
.craft-have {
  opacity: 0.80 !important;                        /* was 0.60 */
}

/* Tool requirement */
.tool-note {
  opacity: 0.78 !important;                        /* was 0.55 */
}

/* "from" label */
.craft-from-label {
  color: #5a9a30 !important;                       /* was #2d5a1a */
}
.craft-from-name {
  color: #90cc50 !important;                       /* was #6aaa38 */
}

/* Empty crafting list */
.craft-empty {
  opacity: 0.80 !important;                        /* was 0.60 */
  color: #3a6a22 !important;                       /* was #1e3010 */
}

/* Craft placeholder */
.craft-placeholder {
  opacity: 0.55 !important;                        /* was 0.35 */
}
.craft-placeholder-icon {
  color: #4a8a28 !important;                       /* was #2d5a1a */
}
.craft-placeholder-text {
  color: #4a8a28 !important;                       /* was #2d5a1a */
}


/* ══════════════════════════════════════════════════════════════════════════
   OVERLAYS — peek indicator, pickup prompt
══════════════════════════════════════════════════════════════════════════ */

/* Peek hint */
.peek-hint {
  color: rgba(90, 235, 235, 0.90) !important;     /* was rgba(64,200,200,0.65) */
}

/* Peek title */
.peek-title {
  color: #60e8e8 !important;                       /* was #40d8d8 */
}

/* Pickup prompt */
.pickup-prompt {
  border: none !important;
  box-shadow: none !important;
}

/* Cancel hint */
.pp-cancel-hint {
  color: rgba(155, 215, 100, 0.78) !important;    /* was rgba(80,130,50,0.50) */
}

/* Cancelled flash */
.pp-cancelled {
  color: #e05050 !important;                       /* was #c04040 */
}


/* ══════════════════════════════════════════════════════════════════════════
   SETTINGS PANEL — tabs, sliders, zombie cards, toggles
══════════════════════════════════════════════════════════════════════════ */

/* Section headers */
.settings-section-label {
  color: #5a9a35 !important;                       /* was #2d5a1a */
}

/* Description paragraphs */
.settings-pane-desc {
  color: rgba(140, 195, 85, 0.78) !important;     /* was rgba(80,130,50,0.50) */
}

/* ── Tabs ───────────────────────────────────────────────────────────────── */

.stab {
  color: #4a8a28 !important;                       /* was #2d5a1a */
}
.stab:hover {
  color: #80c050 !important;
}

/* ── Slider rows ────────────────────────────────────────────────────────── */

.gsr-label {
  color: #8fce50 !important;                       /* was #6aaa38 */
}
.gsr-desc {
  color: rgba(145, 200, 90, 0.75) !important;     /* was rgba(70,110,40,0.55) */
}
.gsr-value {
  color: #b0e870 !important;                       /* was #90c060 */
}

/* ── Zombie per-type cards ──────────────────────────────────────────────── */

.slider-label {
  color: rgba(150, 210, 90, 0.85) !important;     /* was rgba(80,130,50,0.65) */
}
.slider-value {
  color: #b0e870 !important;                       /* was #90c060 */
}

/* Column labels (SPAWN, COMBAT, SENSES) */
.card-col-label {
  color: rgba(130, 190, 75, 0.82) !important;     /* was rgba(60,100,36,0.60) */
}

/* Card tagline */
.card-tagline {
  color: rgba(140, 200, 85, 0.72) !important;     /* was rgba(80,130,50,0.50) */
}

/* Card name */
.card-name {
  color: #a0e060 !important;                       /* was #8fce50 */
}

/* Toggle hints */
#turning-hint,
#daynight-hint,
#inv-pause-hint,
#infection-hint,
#level-hint {
  color: rgba(140, 200, 85, 0.78) !important;     /* was rgba(106,170,56,0.6) */
}

/* Affliction descriptions */
.aff-desc {
  color: rgba(200, 185, 150, 0.80) !important;    /* was rgba(180,160,120,0.65) */
}


/* ══════════════════════════════════════════════════════════════════════════
   STARTER ITEMS (injected styles override)
══════════════════════════════════════════════════════════════════════════ */

.si-cat-label {
  color: rgba(140, 200, 85, 0.95) !important;
}
.si-pick-label {
  color: rgba(140, 200, 85, 0.78) !important;
}
.si-pool-info {
  color: rgba(140, 200, 85, 0.72) !important;
}
.si-item-chip {
  color: rgba(160, 210, 110, 0.85) !important;
}
.si-mat-name {
  color: rgba(170, 215, 125, 0.90) !important;
}
.si-qty-label {
  color: rgba(140, 200, 85, 0.72) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   STEAM DECK / HANDHELD MINIMUM FONT SIZES
   Ensures all text is at least 12 physical pixels tall (8.5px * 1.45 UI_SCALE)
══════════════════════════════════════════════════════════════════════════ */
.is-handheld .nearby-label,
.is-handheld .item-name--slot,
.is-handheld .eslot-label,
.is-handheld .weapon-stat,
.is-handheld .slot-drop-hint,
.is-handheld .eb-ammo-none,
.is-handheld .craft-card-name,
.is-handheld .craft-chevron,
.is-handheld .craft-card-qty,
.is-handheld .craft-desc,
.is-handheld .craft-ing,
.is-handheld .craft-tool-req,
.is-handheld .eb-label,
.is-handheld .eb-empty-sub,
.is-handheld .eb-badge,
.is-handheld .eb-stat,
.is-handheld .eb-ammo-label,
.is-handheld .eb-special-label,
.is-handheld .eb-special-hint,
.is-handheld .eb-gear-label,
.is-handheld .eb-gear-slot-label,
.is-handheld .eb-gear-name,
.is-handheld .eb-gear-hint,
.is-handheld .eb-gear-empty,
.is-handheld .eb-inv-hint,
.is-handheld .vital-label,
.is-handheld .vital-value,
.is-handheld .effect-name,
.is-handheld .effect-timer-label,
.is-handheld .ailment-name,
.is-handheld .ailment-timer-label,
.is-handheld .level-label,
.is-handheld .peek-hint,
.is-handheld .pp-cancel-hint,
.is-handheld .inv-hint,
.is-handheld .storage-divider,
.is-handheld .tt-rarity,
.is-handheld .tt-vs,
.is-handheld .tt-flavor,
.is-handheld .tt-sec-head,
.is-handheld .tt-d,
.is-handheld .tt-tag,
.is-handheld .craft-ing-source,
.is-handheld .craft-ext-badge {
  font-size: 10px !important;
}

.is-handheld .craft-exec-btn,
.is-handheld .item-name {
  font-size: 10px !important;
}

.is-handheld .eb-bag-count {
  font-size: 12px !important;
}

.is-handheld .eb-special-qty {
  font-size: 12px !important;
}

.is-handheld .eb-empty-text--large {
  font-size: 14px !important;
}

.is-handheld .tt-lbl,
.is-handheld .tt-val {
  font-size: 14px !important;
}

.is-handheld .tt-title {
  font-size: 18px !important;
}