/* OneYearDeal brand theme — dark-only (Martin directive 2026-10-06).
   Night harbour: Paper #14181D · Ink #E6EDF3 · Harvest Amber #E8912D · Navy #1C2431
   Alert Red #E4795F (verdicts ONLY) · Fair Green #57A773 (verdicts ONLY)
   Sand #2C333B borders · Stone #9AA4AE muted · Card #1C2128.
   Rule: colour = data. Red/green never decorative. Amber ≤10% of any view. */

/* Dark-only theme (Martin directive 2026-10-06): night-harbour palette is the only theme. */
:root {
  --oyd-paper: #14181D;
  --oyd-ink: #E6EDF3;
  --oyd-amber: #E8912D;
  --oyd-amber-deep: #C77B1B;
  --oyd-navy: #1C2431;
  --oyd-red: #E4795F;
  --oyd-green: #57A773;
  --oyd-sand: #2C333B;
  --oyd-stone: #9AA4AE;
  --oyd-card: #1C2128;

  --oyd-font-display: 'Archivo', 'DejaVu Sans', sans-serif;
  --oyd-font-body: 'Inter', 'DejaVu Sans', sans-serif;
  --oyd-font-mono: 'IBM Plex Mono', 'DejaVu Sans Mono', monospace;
}

:root {
  --bulma-scheme-main: var(--oyd-paper);
  --bulma-scheme-main-bis: var(--oyd-card);
  --bulma-scheme-main-ter: var(--oyd-sand);
  --bulma-scheme-h: var(--oyd-ink);
  --bulma-scheme-invert: var(--oyd-paper);
  --bulma-scheme-invert-bis: var(--oyd-sand);
  --bulma-scheme-invert-ter: var(--oyd-card);
  --bulma-text: var(--oyd-ink);
  --bulma-text-strong: var(--oyd-ink);
  --bulma-link: var(--oyd-amber);
  --bulma-link-hover: var(--oyd-amber);
  --bulma-text-weak: var(--oyd-stone);
  --bulma-background: var(--oyd-card);
  --bulma-input-background-color: var(--oyd-card);
  --bulma-input-border-color: var(--oyd-sand);
  --bulma-input-color: var(--oyd-ink);
  --bulma-primary: var(--oyd-amber);
  --bulma-primary-invert: #FFFFFF;
  --bulma-warning: var(--oyd-amber);
  --bulma-danger: var(--oyd-red);
  --bulma-success: var(--oyd-green);
  --bulma-border: var(--oyd-sand);
  --bulma-border-hover: var(--oyd-stone);
  --bulma-radius: 10px;
  --bulma-family-primary: var(--oyd-font-body);
  --bulma-family-secondary: var(--oyd-font-display);
  --bulma-family-code: var(--oyd-font-mono);
}

/* Typography rules */
h1, h2, h3, .title, .subtitle { font-family: var(--oyd-font-display); letter-spacing: -0.01em; }
.oyd-mono, .price, .checked-stamp, code, .tag.is-mono { font-family: var(--oyd-font-mono) !important; }

/* Navbar: navy, brand-ordered */
.navbar.is-brand-navy {
  background: var(--oyd-navy);
  border-bottom: 2px solid var(--oyd-amber);
}
.navbar.is-brand-navy .navbar-item { color: #E9E2D6; font-family: var(--oyd-font-body); }
.navbar.is-brand-navy .navbar-item:hover { color: #FFFFFF; background: rgba(255,255,255,0.06); }
.navbar.is-brand-navy .navbar-brand .navbar-item { color: #FFFFFF; }

/* Hero */
.hero.is-brand-paper { background: var(--oyd-paper); }
.hero.is-brand-navy { background: var(--oyd-navy); color: #E9E2D6; }
.hero.is-brand-navy .title, .hero.is-brand-navy .subtitle { color: #FFFFFF; }
.hero .title strong, .hero .subtitle strong { color: inherit; }

/* Cards */
.card.is-deal { border: 1px solid var(--oyd-sand); border-radius: 10px; background: var(--oyd-card); }
.card.is-deal .card-header { box-shadow: none; border-bottom: 1px solid var(--oyd-sand); }
.card.is-deal:hover { border-color: var(--oyd-stone); }

/* Prices: ALWAYS mono, no exceptions */
.price-year1 { font-family: var(--oyd-font-mono); font-size: 2rem; font-weight: 600; line-height: 1.1; color: var(--oyd-ink); }
.price-renewal { font-family: var(--oyd-font-mono); font-size: 1.05rem; font-weight: 600; }
.price-renewal.is-fair  { color: var(--oyd-green); }
.price-renewal.is-steep { color: var(--oyd-amber-deep); }
.price-renewal.is-shock,
.price-renewal.is-trap  { color: var(--oyd-red); }
.price-term { font-family: var(--oyd-font-mono); font-size: 0.8rem; color: var(--oyd-stone); }

/* Renewal-shock badges — colour = data */
.shock-badge { font-family: var(--oyd-font-mono); font-size: 0.75rem; font-weight: 600; padding: 0.15em 0.6em; border-radius: 4px; letter-spacing: 0.04em; }
.shock-badge.is-fair  { background: rgba(87,167,115,0.14); color: var(--oyd-green); border: 1px solid var(--oyd-green); }
.shock-badge.is-steep { background: rgba(232,145,45,0.14); color: var(--oyd-amber); border: 1px solid var(--oyd-amber); }
.shock-badge.is-shock { background: rgba(228,121,95,0.14); color: var(--oyd-red); border: 1px solid var(--oyd-red); }
.shock-badge.is-trap  { background: var(--oyd-red); color: #FFFFFF; border: 1px solid var(--oyd-red); }

/* Stock chips */
.stock-chip { font-family: var(--oyd-font-mono); font-size: 0.7rem; padding: 0.15em 0.6em; border-radius: 3px; border: 1px solid var(--oyd-sand); color: var(--oyd-stone); }
.stock-chip.is-in-stock { color: var(--oyd-green); border-color: var(--oyd-green); }
.stock-chip.is-low { color: var(--oyd-amber-deep); border-color: var(--oyd-amber); }
.stock-chip.is-sold-out { color: var(--oyd-red); border-color: var(--oyd-red); }

/* Checked stamp — trust is the product */
.checked-stamp { font-family: var(--oyd-font-mono); font-size: 0.72rem; color: var(--oyd-stone); }
.checked-stamp::before { content: '✓ '; color: var(--oyd-green); }
.checked-stamp.is-stale::before { content: '⚠ '; color: var(--oyd-amber-deep); }
.checked-stamp.is-stale { color: var(--oyd-amber-deep); }

/* Affiliate disclosure */
.affiliate-disclosure { font-size: 0.78rem; color: var(--oyd-stone); margin-bottom: 0.35rem; }

/* Buttons */
.button.is-brand-amber { background: var(--oyd-amber); border-color: transparent; color: #FFFFFF; font-weight: 600; }
.button.is-brand-amber:hover { background: var(--oyd-amber-deep); }
.button.is-navy { background: var(--oyd-navy); color: #FFFFFF; border-color: transparent; }

/* Category tiles */
.tile.is-brand { border: 1px solid var(--oyd-sand); border-radius: 10px; background: var(--oyd-card); }
.tile.is-brand:hover { border-color: var(--oyd-amber); }

/* Footer */
.footer.is-brand { background: var(--oyd-navy); color: #E9E2D6; padding: 2.5rem 1.5rem; }
.footer.is-brand .title { color: #FFFFFF; font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; }
.footer.is-brand a { color: #E9E2D6; }
.footer.is-brand a:hover { color: var(--oyd-amber); }
.footer.is-brand .footer-note { font-size: 0.78rem; color: #A9B4C0; }


/* Base surfaces: explicit dark so no light shows through */
html, body { background: var(--oyd-paper) !important; color: var(--oyd-ink); }
.section { background: transparent; }
/* Bulma light-scheme remaps: cards, tables, inputs, notifications, boxes */
.card, .box, .notification, .table, .input, .textarea, .select select { background-color: var(--oyd-card) !important; color: var(--oyd-ink) !important; border-color: var(--oyd-sand); }
select option { background: var(--oyd-card); color: var(--oyd-ink); }
.label { color: var(--oyd-ink); }
.input::placeholder { color: var(--oyd-stone); }
.table th { color: var(--oyd-ink); }
.table td { border-color: var(--oyd-sand); }
.hero { background: var(--oyd-paper); }

/* Tabs: Bulma default blue → brand */
.tabs li.is-active a { color: var(--oyd-amber) !important; border-bottom-color: var(--oyd-amber) !important; }
.tabs a { color: var(--oyd-stone); }
.tabs a:hover { color: var(--oyd-ink); border-bottom-color: var(--oyd-sand); }
/* Bulma link-blue remnants on generic links */
a { color: var(--oyd-amber); }
a:hover { color: var(--oyd-amber-deep); }
.content a, .column a, td a, li a { color: var(--oyd-amber); }

/* Toggle tabs (deals type filter): active = amber with ink text, inactive = dark card */
.tabs.is-toggle li.is-active a { background-color: var(--oyd-amber) !important; border-color: var(--oyd-amber) !important; color: #14181D !important; }
.tabs.is-toggle li a { background-color: var(--oyd-card); border-color: var(--oyd-sand); color: var(--oyd-ink); }
.tabs.is-toggle li a:hover { background-color: var(--oyd-sand); color: var(--oyd-ink); }
.select:after { border-color: var(--oyd-amber) !important; }
.select select { color: var(--oyd-ink) !important; }
/* Striped table rows: dark alternates only */
.table.is-striped tbody tr:not(.is-selected):nth-child(even) { background-color: var(--oyd-card) !important; }
.table.is-striped tbody tr:not(.is-selected):nth-child(odd) { background-color: var(--oyd-paper) !important; }
.table tbody tr:hover { background-color: var(--oyd-sand) !important; }
