/* =========================================================
   ML/AI Landscape — Theme overrides
   Loaded on top of the base style.css.
   Replaces the navy/orange cyber-threat palette with a
   violet/indigo academic-research palette.
   ========================================================= */

/* ── Colour variable overrides ──────────────────────────── */
:root {
  --colour-bg:          #f9f8ff;   /* very faint violet tint */
  --colour-bg-alt:      #f2f0ff;
  --colour-primary:     #2e1065;   /* violet-950 */
  --colour-primary-mid: #7c3aed;   /* violet-600 */
  --colour-accent:      #7c3aed;   /* violet-600 — replaces orange */

}

/* ── Header ─────────────────────────────────────────────── */
.site-header {
  background: linear-gradient(135deg, #0f0824 0%, #1c0f50 55%, #2e1b6e 100%);
  border-bottom-color: #7c3aed;
}

.site-header::before {
  background: radial-gradient(
    ellipse 70% 120% at 20% 50%,
    rgba(124, 58, 237, 0.22) 0%,
    transparent 70%
  );
}

/* Subtle circuit-board dot pattern on the header */
.site-header::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(167,139,250,0.08) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
}

/* ── Source badge ─────────────────────────────────────────── */
.source-badge {
  background: #7c3aed;
}
/* Secondary/overflow badges must stay light — override the violet above */
.source-badge--secondary {
  background: var(--colour-bg-alt);
  color: var(--colour-text-mid);
  border: 1px solid var(--colour-border);
}

/* ── Score bar fill ──────────────────────────────────────── */
.score-bar-fill {
  background: #7c3aed;
}

/* ── Score tooltip bar ───────────────────────────────────── */
.stt-bar {
  background: #7c3aed;
}

/* ── Score value ─────────────────────────────────────────── */
.score-value {
  color: #5b21b6;
}

/* ── Card title hover ────────────────────────────────────── */
.card-title-link:hover {
  color: #7c3aed;
}

/* ── Filter chip active state ────────────────────────────── */
.filter-chip {
  color: var(--colour-text);
}
.filter-chip.active {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
  box-shadow: 0 0 0 3px rgb(124 58 237 / 0.2);
}
.filter-chip:hover:not(.active) {
  border-color: #7c3aed;
  background: #f5f3ff;
  color: #5b21b6;
}

/* ── Search focus ring ────────────────────────────────────── */
.search-input:focus {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgb(124 58 237 / 0.15);
}

/* ── Section heading accent bar ──────────────────────────── */
.section-heading {
  border-left-color: #7c3aed;
}

/* ── Method card top accent ──────────────────────────────── */
.method-card {
  border-top: 3px solid #7c3aed;
  border-left-width: 1px;  /* reset — no left accent on method cards */
}

.method-icon {
  color: #7c3aed;
}

/* ── Back-to-top button ──────────────────────────────────── */
.back-to-top {
  background: #7c3aed;
}
.back-to-top:hover {
  background: #5b21b6;
}

/* ── Footer ──────────────────────────────────────────────── */
.site-footer {
  background: #0f0824;
}

/* ── View-toggle active state ────────────────────────────── */
.view-toggle-btn.active .view-toggle-label {
  color: #7c3aed;
}
.view-toggle-btn.active .view-toggle-icon {
  color: #7c3aed;
}

/* ── Badge re-skin: .badge--malware used for topic types ─── */
/* In the AI/ML page this badge class is repurposed for topic type pills */
.badge--malware {
  background: #f5f3ff;
  color: #5b21b6;
  border: 1px solid #c4b5fd;
}

/* ── Topic type badge colours ────────────────────────────── */
.threat-type-badge--research            { background: #eff6ff; color: #1e40af; border-color: #93c5fd; }
.threat-type-badge--model-release       { background: #f5f3ff; color: #5b21b6; border-color: #c4b5fd; }
.threat-type-badge--safety              { background: #fef2f2; color: #991b1b; border-color: #fca5a5; }
.threat-type-badge--safety-alignment    { background: #fef2f2; color: #991b1b; border-color: #fca5a5; }
.threat-type-badge--regulation          { background: #fefce8; color: #854d0e; border-color: #fcd34d; }
.threat-type-badge--regulation-policy   { background: #fefce8; color: #854d0e; border-color: #fcd34d; }
.threat-type-badge--product-launch      { background: #f0fdf4; color: #14532d; border-color: #86efac; }
.threat-type-badge--investment          { background: #fdf2f8; color: #9d174d; border-color: #f9a8d4; }
.threat-type-badge--infrastructure      { background: #f8fafc; color: #334155; border-color: #94a3b8; }
.threat-type-badge--ethics              { background: #fdf4ff; color: #6b21a8; border-color: #d8b4fe; }
.threat-type-badge--ethics-privacy      { background: #fdf4ff; color: #6b21a8; border-color: #d8b4fe; }
.threat-type-badge--deepfake            { background: #292524; color: #fef3c7; border-color: #78716c; }
.threat-type-badge--aiml                { background: #f5f3ff; color: #5b21b6; border-color: #c4b5fd; }
.threat-type-badge--ai-ml               { background: #f5f3ff; color: #5b21b6; border-color: #c4b5fd; }

/* ── ML technique / "mother model" badge colours ──────────
   Visually distinct from topic badges: slightly denser,
   monospace-ish label feel.  14 technique families.         */

/* LLM — central pillar of modern AI, indigo */
.threat-type-badge--llm                 { background: #eef2ff; color: #3730a3; border-color: #a5b4fc; font-style: italic; }

/* Diffusion Model — generative, purple */
.threat-type-badge--diffusion-model     { background: #faf5ff; color: #6d28d9; border-color: #c4b5fd; }

/* Reinforcement Learning — action/reward, amber */
.threat-type-badge--reinforcement-learning { background: #fffbeb; color: #92400e; border-color: #fcd34d; }

/* Computer Vision — perception, cyan */
.threat-type-badge--computer-vision     { background: #ecfeff; color: #155e75; border-color: #67e8f9; }

/* Graph Learning — connected, emerald */
.threat-type-badge--graph-learning      { background: #ecfdf5; color: #065f46; border-color: #6ee7b7; }

/* Clustering — unsupervised, slate */
.threat-type-badge--clustering          { background: #f8fafc; color: #1e293b; border-color: #94a3b8; }

/* Ensemble Methods — tree-based, forest green */
.threat-type-badge--ensemble-methods    { background: #f0fdf4; color: #14532d; border-color: #4ade80; }

/* Multimodal — cross-modal, sky blue */
.threat-type-badge--multimodal          { background: #f0f9ff; color: #0c4a6e; border-color: #7dd3fc; }

/* Robotics — physical AI, orange */
.threat-type-badge--robotics            { background: #fff7ed; color: #7c2d12; border-color: #fb923c; }

/* Federated Learning — distributed, blue-grey */
.threat-type-badge--federated-learning  { background: #f1f5f9; color: #334155; border-color: #94a3b8; font-style: italic; }

/* GAN — adversarial, fuchsia */
.threat-type-badge--gan                 { background: #fdf4ff; color: #86198f; border-color: #e879f9; }

/* RAG — retrieval, teal */
.threat-type-badge--rag                 { background: #f0fdfa; color: #134e4a; border-color: #5eead4; }

/* AI Agent — agentic, violet bold */
.threat-type-badge--ai-agent            { background: #ede9fe; color: #4c1d95; border-color: #8b5cf6; font-weight: 700; }

/* Fine-tuning — adaptation, lavender */
.threat-type-badge--fine-tuning         { background: #f5f3ff; color: #5b21b6; border-color: #ddd6fe; font-style: italic; }

/* ── Source credibility badge — mid tier uses violet ──────── */
.source-cred-badge--med {
  background: #f5f3ff;
  color: #5b21b6;
  border: 1px solid #c4b5fd;
}

/* ── Supporting source link hover ────────────────────────── */
.supporting-source-link:hover .badge--source {
  background: #7c3aed;
  color: #fff;
}
.supporting-source-url {
  color: #7c3aed;
}

/* ── Clear-filters / link button ─────────────────────────── */
.btn-clear-filters:hover {
  border-color: #7c3aed;
  color: #7c3aed;
}
.link-btn {
  color: #7c3aed;
}

/* ── Corroboration badge — violet instead of green ──────── */
.corroboration-badge {
  color: #5b21b6;
  background: #f5f3ff;
  border-color: #c4b5fd;
}

/* ── Expand toggle hover ─────────────────────────────────── */
.expand-toggle:hover {
  border-color: #a78bfa;
  color: #5b21b6;
}

/* ── Dark mode overrides for the violet/indigo theme ─────── */
html[data-dark="true"] {
  --colour-bg:          #0c0a1e;
  --colour-bg-alt:      #130f2e;
  --colour-card:        #1a1535;
  --colour-border:      #2e2057;
  --colour-border-hover:#4a356e;
  --colour-primary:     #7c3aed;
  --colour-primary-mid: #a855f7;

}

html[data-dark="true"] .filter-chip        { color: #e2e8f0; }
html[data-dark="true"] .filter-chip.active { background: #7c3aed; border-color: #7c3aed; color: #fff; }
html[data-dark="true"] .filter-chip:hover:not(.active) { background: #2e1065; border-color: #7c3aed; color: #c4b5fd; }
html[data-dark="true"] .badge--malware   { background: #180f33; color: #c4b5fd; border-color: #5b21b6; }
html[data-dark="true"] .corroboration-badge { background: #180f33; color: #a78bfa; border-color: #5b21b6; }
html[data-dark="true"] .source-cred-badge--med { background: #180f33; color: #c4b5fd; border-color: #5b21b6; }

/* ── Background gradient wash ───────────────────────────── */
body {
  background-image: radial-gradient(
    ellipse 200% 60% at 50% 0%,
    rgba(124, 58, 237, 0.22) 0%,
    transparent 65%
  );
}
html[data-dark="true"] body {
  background-image: radial-gradient(
    ellipse 200% 60% at 50% 0%,
    rgba(168, 85, 247, 0.40) 0%,
    transparent 65%
  );
}
