/* ============================================================
   DĒMOS OS — Obsidian Publish Theme v4
   Dark terminal · Lisible · Contrastes vérifiés
   Sélecteurs: .theme-dark / .theme-light (Obsidian 1.0+)
   CC BY-NC 4.0 — ouaisfieu
   ============================================================ */

/* ===== FONTS ===== */
@import url('https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400&family=Fira+Code:wght@400;500;700&display=swap');

/* =============================================================
   DARK THEME — Couleurs principales
   Fond: #0d0d0d (quasi-noir)
   Texte: #d4d4d4 (gris très clair — ratio 12:1 sur #0d0d0d)
   Accent: #00cc33 (vert terminal)
   Liens: #5cc8ff (bleu ciel clair — ratio 7.5:1 sur #0d0d0d)
   Muted: #999999 (gris moyen — ratio 6.5:1 sur #0d0d0d)
   ============================================================= */

.theme-dark {
  /* --- Backgrounds --- */
  --background-primary: #0d0d0d;
  --background-primary-alt: #141414;
  --background-secondary: #111111;
  --background-secondary-alt: #181818;
  --background-modifier-border: #333333;
  --background-modifier-form-field: #1a1a1a;
  --background-modifier-form-field-highlighted: #222222;
  --background-modifier-box-shadow: rgba(0, 0, 0, 0.4);
  --background-modifier-success: #1a3a1a;
  --background-modifier-error: #3a1a1a;
  --background-modifier-error-rgb: 58, 26, 26;
  --background-modifier-error-hover: #4a2020;
  --background-modifier-cover: rgba(0, 0, 0, 0.8);

  /* --- Text (tous vérifiés ratio > 4.5:1 sur #0d0d0d) --- */
  --text-normal: #d4d4d4;
  --text-muted: #999999;
  --text-faint: #666666;
  --text-on-accent: #0d0d0d;
  --text-error: #ff6b6b;
  --text-error-hover: #ff8888;
  --text-selection: rgba(0, 204, 51, 0.25);
  --text-highlight-bg: rgba(0, 204, 51, 0.15);
  --text-accent: #00cc33;
  --text-accent-hover: #33ff66;

  /* --- Interactive / Accent --- */
  --interactive-normal: #1a1a1a;
  --interactive-hover: #252525;
  --interactive-accent: #00cc33;
  --interactive-accent-rgb: 0, 204, 51;
  --interactive-accent-hover: #33ff66;

  /* --- Links (bleu clair, haut contraste sur fond sombre) --- */
  --link-color: #5cc8ff;
  --link-color-hover: #8ad8ff;
  --link-external-color: #5cc8ff;
  --link-external-color-hover: #8ad8ff;
  --link-unresolved-color: #777777;
  --link-unresolved-opacity: 0.8;

  /* --- Tags --- */
  --tag-color: #00cc33;
  --tag-background: rgba(0, 204, 51, 0.1);
  --tag-background-hover: rgba(0, 204, 51, 0.2);

  /* --- Code --- */
  --code-normal: #cccccc;
  --code-background: #1a1a1a;
  --code-comment: #666666;
  --code-function: #5cc8ff;
  --code-keyword: #00cc33;
  --code-string: #ffd666;
  --code-value: #ff9966;
  --code-operator: #d4d4d4;
  --code-property: #66ddaa;
  --code-tag: #ff6b6b;
  --code-important: #ff9966;

  /* --- Headings --- */
  --h1-color: #00ff41;
  --h2-color: #00dd38;
  --h3-color: #00cc33;
  --h4-color: #00bb2e;
  --h5-color: #999999;
  --h6-color: #777777;

  /* --- Scrollbar --- */
  --scrollbar-bg: transparent;
  --scrollbar-thumb-bg: #333333;
  --scrollbar-active-thumb-bg: #555555;

  /* --- Table --- */
  --table-header-background: #1a1a1a;
  --table-header-background-hover: #222222;
  --table-background: transparent;
  --table-row-background-hover: rgba(0, 204, 51, 0.05);
  --table-border-color: #333333;
  --table-header-color: #d4d4d4;

  /* --- Blockquote --- */
  --blockquote-border-color: #00cc33;
  --blockquote-background-color: rgba(0, 204, 51, 0.03);

  /* --- Callouts --- */
  --callout-default-color: 0, 204, 51;

  /* --- Nav sidebar --- */
  --nav-item-color: #999999;
  --nav-item-color-hover: #d4d4d4;
  --nav-item-color-active: #00cc33;
  --nav-item-color-selected: #00cc33;
  --nav-item-background-hover: rgba(0, 204, 51, 0.08);
  --nav-item-background-active: rgba(0, 204, 51, 0.12);
  --nav-item-background-selected: rgba(0, 204, 51, 0.12);

  /* --- Graph --- */
  --graph-line: #333333;
  --graph-node: #00cc33;
  --graph-node-focused: #00ff41;
  --graph-node-tag: #5cc8ff;
  --graph-node-attachment: #ffd666;

  /* --- Checkbox --- */
  --checkbox-color: #00cc33;
  --checkbox-color-hover: #33ff66;
  --checkbox-marker-color: #0d0d0d;
  --checklist-done-color: #666666;
  --checklist-done-decoration: line-through;

  /* --- Properties / Frontmatter --- */
  --metadata-label-text-color: #999999;
  --metadata-input-text-color: #d4d4d4;
}

/* =============================================================
   LIGHT THEME — Fallback si l'utilisateur toggle en light
   Fond: #f5f5f0 (crème doux)
   Texte: #1a1a1a (quasi-noir — ratio 15:1)
   Accent: #007a1f (vert foncé — ratio 5.5:1)
   Liens: #0066aa (bleu foncé — ratio 6:1)
   ============================================================= */

.theme-light {
  --background-primary: #f5f5f0;
  --background-primary-alt: #eaeae5;
  --background-secondary: #ededeb;
  --background-secondary-alt: #e0e0dd;
  --background-modifier-border: #cccccc;
  --background-modifier-form-field: #ffffff;
  --background-modifier-form-field-highlighted: #f0f0ec;
  --background-modifier-box-shadow: rgba(0, 0, 0, 0.1);

  --text-normal: #1a1a1a;
  --text-muted: #555555;
  --text-faint: #888888;
  --text-on-accent: #ffffff;
  --text-error: #cc0000;
  --text-selection: rgba(0, 122, 31, 0.2);
  --text-highlight-bg: rgba(0, 122, 31, 0.12);
  --text-accent: #007a1f;
  --text-accent-hover: #005a15;

  --interactive-normal: #ffffff;
  --interactive-hover: #eaeaea;
  --interactive-accent: #007a1f;
  --interactive-accent-rgb: 0, 122, 31;
  --interactive-accent-hover: #005a15;

  --link-color: #0066aa;
  --link-color-hover: #004477;
  --link-external-color: #0066aa;
  --link-external-color-hover: #004477;
  --link-unresolved-color: #aaaaaa;

  --tag-color: #007a1f;
  --tag-background: rgba(0, 122, 31, 0.08);
  --tag-background-hover: rgba(0, 122, 31, 0.15);

  --code-normal: #333333;
  --code-background: #eaeae5;
  --code-comment: #888888;
  --code-function: #0066aa;
  --code-keyword: #007a1f;
  --code-string: #996600;

  --h1-color: #005a15;
  --h2-color: #006a18;
  --h3-color: #007a1f;
  --h4-color: #008a22;
  --h5-color: #555555;
  --h6-color: #777777;

  --table-header-background: #eaeae5;
  --table-header-background-hover: #e0e0dd;
  --table-background: transparent;
  --table-row-background-hover: rgba(0, 122, 31, 0.04);
  --table-border-color: #cccccc;
  --table-header-color: #1a1a1a;

  --blockquote-border-color: #007a1f;
  --blockquote-background-color: rgba(0, 122, 31, 0.03);

  --nav-item-color: #555555;
  --nav-item-color-hover: #1a1a1a;
  --nav-item-color-active: #007a1f;
  --nav-item-color-selected: #007a1f;
  --nav-item-background-hover: rgba(0, 122, 31, 0.06);
  --nav-item-background-active: rgba(0, 122, 31, 0.1);
  --nav-item-background-selected: rgba(0, 122, 31, 0.1);

  --graph-line: #cccccc;
  --graph-node: #007a1f;
  --graph-node-focused: #005a15;
  --graph-node-tag: #0066aa;

  --checkbox-color: #007a1f;
  --checkbox-color-hover: #005a15;
  --checkbox-marker-color: #ffffff;
  --checklist-done-color: #aaaaaa;

  --scrollbar-bg: transparent;
  --scrollbar-thumb-bg: #cccccc;
  --scrollbar-active-thumb-bg: #aaaaaa;

  --metadata-label-text-color: #555555;
  --metadata-input-text-color: #1a1a1a;
}

/* =============================================================
   TYPOGRAPHY (commun dark + light, sélecteur body)
   ============================================================= */

body {
  --font-text-theme: 'Space Mono', 'Fira Code', 'Courier New', monospace;
  --font-interface-theme: 'Space Mono', 'Fira Code', monospace;
  --font-monospace-theme: 'Fira Code', 'Space Mono', monospace;
  --font-text-size: 15px;
  --line-height-normal: 1.75;
  --line-height-tight: 1.4;
}

/* =============================================================
   PUBLISH STRUCTURE — Layout
   ============================================================= */

body,
.published-container {
  background-color: var(--background-primary) !important;
  color: var(--text-normal) !important;
  font-family: var(--font-text-theme) !important;
}

.published-container .site-body {
  background-color: var(--background-primary) !important;
}

.site-body-left-column,
.site-body-left-column::before {
  background-color: var(--background-secondary) !important;
  border-right: 1px solid var(--background-modifier-border) !important;
}

.site-body-left-column-site-name {
  color: var(--text-normal) !important;
  font-family: var(--font-monospace-theme) !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

.site-body-right-column {
  background-color: var(--background-secondary) !important;
  border-left: 1px solid var(--background-modifier-border) !important;
}

/* =============================================================
   NAVIGATION
   ============================================================= */

.nav-file-title,
.nav-folder-title,
.tree-item-self {
  color: var(--nav-item-color) !important;
  font-size: 13px !important;
}

.nav-file-title:hover,
.nav-folder-title:hover,
.tree-item-self:hover {
  color: var(--nav-item-color-hover) !important;
  background-color: var(--nav-item-background-hover) !important;
}

.nav-file-title.is-active,
.tree-item-self.is-active,
.tree-item-self.mod-active {
  color: var(--nav-item-color-active) !important;
  background-color: var(--nav-item-background-active) !important;
}

/* =============================================================
   MARKDOWN CONTENT
   ============================================================= */

.markdown-rendered,
.markdown-preview-view,
.published-container .markdown-preview-view {
  color: var(--text-normal) !important;
  background-color: var(--background-primary) !important;
  font-family: var(--font-text-theme) !important;
  font-size: var(--font-text-size) !important;
  line-height: var(--line-height-normal) !important;
}

/* =============================================================
   HEADINGS
   ============================================================= */

h1, .markdown-rendered h1 { color: var(--h1-color) !important; font-family: var(--font-monospace-theme) !important; font-weight: 700 !important; font-size: 1.8em !important; border-bottom: 2px solid var(--background-modifier-border); padding-bottom: 0.3em; margin-top: 1.5em; }
h2, .markdown-rendered h2 { color: var(--h2-color) !important; font-family: var(--font-monospace-theme) !important; font-weight: 700 !important; font-size: 1.5em !important; margin-top: 1.3em; }
h3, .markdown-rendered h3 { color: var(--h3-color) !important; font-family: var(--font-monospace-theme) !important; font-weight: 700 !important; font-size: 1.25em !important; }
h4, .markdown-rendered h4 { color: var(--h4-color) !important; font-weight: 700 !important; font-size: 1.1em !important; }
h5, .markdown-rendered h5 { color: var(--h5-color) !important; font-size: 1em !important; text-transform: uppercase; letter-spacing: 0.08em; }
h6, .markdown-rendered h6 { color: var(--h6-color) !important; font-size: 0.9em !important; text-transform: uppercase; letter-spacing: 0.06em; }

/* =============================================================
   LINKS
   ============================================================= */

a, .internal-link { color: var(--link-color) !important; text-decoration: none !important; }
a:hover, .internal-link:hover { color: var(--link-color-hover) !important; text-decoration: underline !important; }
.external-link { color: var(--link-external-color) !important; }
.external-link:hover { color: var(--link-external-color-hover) !important; }
.internal-link.is-unresolved { color: var(--link-unresolved-color) !important; opacity: 0.8; }

/* =============================================================
   TEXT FORMATTING
   ============================================================= */

strong, b { color: var(--text-normal) !important; font-weight: 700 !important; }
em, i { color: var(--text-normal) !important; }
mark { background-color: var(--text-highlight-bg) !important; color: var(--text-normal) !important; padding: 1px 3px; border-radius: 2px; }
p, li { color: var(--text-normal) !important; }

/* =============================================================
   BLOCKQUOTES
   ============================================================= */

blockquote { border-left: 3px solid var(--blockquote-border-color) !important; background-color: var(--blockquote-background-color) !important; color: var(--text-muted) !important; padding: 10px 20px !important; margin: 1em 0 !important; }
blockquote p { color: var(--text-muted) !important; }

/* =============================================================
   CODE
   ============================================================= */

code { color: var(--code-normal) !important; background-color: var(--code-background) !important; font-family: var(--font-monospace-theme) !important; font-size: 0.88em !important; padding: 2px 5px !important; border-radius: 3px !important; }
pre { background-color: var(--code-background) !important; border: 1px solid var(--background-modifier-border) !important; border-radius: 4px !important; padding: 12px 16px !important; overflow-x: auto !important; }
pre code { background-color: transparent !important; padding: 0 !important; font-size: 13px !important; line-height: 1.5 !important; }

.token.comment, .token.prolog { color: var(--code-comment) !important; }
.token.function { color: var(--code-function) !important; }
.token.keyword, .token.tag { color: var(--code-keyword) !important; }
.token.string, .token.attr-value { color: var(--code-string) !important; }
.token.number, .token.boolean { color: var(--code-value) !important; }
.token.operator { color: var(--code-operator) !important; }
.token.property, .token.class-name { color: var(--code-property) !important; }

/* =============================================================
   TABLES
   ============================================================= */

table { border-collapse: collapse !important; width: 100% !important; }
th { background-color: var(--table-header-background) !important; color: var(--table-header-color) !important; font-weight: 700 !important; padding: 8px 12px !important; border: 1px solid var(--table-border-color) !important; text-align: left !important; font-size: 0.9em !important; }
td { color: var(--text-normal) !important; background-color: transparent !important; padding: 6px 12px !important; border: 1px solid var(--table-border-color) !important; font-size: 0.9em !important; }
tr:hover td { background-color: var(--table-row-background-hover) !important; }

/* =============================================================
   CALLOUTS
   ============================================================= */

.callout { border-radius: 4px !important; }
.callout-title { color: var(--text-normal) !important; font-weight: 700 !important; }
.callout-content, .callout-content p { color: var(--text-normal) !important; }

/* =============================================================
   TAGS
   ============================================================= */

.tag, a.tag { color: var(--tag-color) !important; background-color: var(--tag-background) !important; font-size: 0.8em !important; padding: 2px 8px !important; border-radius: 3px !important; }
.tag:hover, a.tag:hover { background-color: var(--tag-background-hover) !important; }

/* =============================================================
   HR, BACKLINKS, OUTLINE
   ============================================================= */

hr { border: none !important; border-top: 1px solid var(--background-modifier-border) !important; margin: 2em 0 !important; }

.backlinks { background-color: var(--background-secondary) !important; border-radius: 4px !important; margin-top: 2em !important; }
.backlinks .published-section-header { color: var(--text-muted) !important; font-family: var(--font-monospace-theme) !important; font-size: 12px !important; text-transform: uppercase !important; }
.backlink-items-container { color: var(--text-muted) !important; }
.backlink-items-container a { color: var(--link-color) !important; }

.outline-view-outer .tree-item-self { color: var(--text-faint) !important; font-size: 12px !important; }
.outline-view-outer .tree-item-self:hover { color: var(--text-normal) !important; }
.outline-view-outer .tree-item-self.mod-active { color: var(--interactive-accent) !important; }

/* =============================================================
   GRAPH, SEARCH, EMBEDS, METADATA
   ============================================================= */

.graph-view.color-fill { color: var(--graph-node) !important; }
.graph-view.color-fill-focused { color: var(--graph-node-focused) !important; }
.graph-view.color-fill-tag { color: var(--graph-node-tag) !important; }
.graph-view.color-line { color: var(--graph-line) !important; }
.graph-view.color-text { color: var(--text-muted) !important; }

.search-bar, .search-view-container input { background-color: var(--background-modifier-form-field) !important; color: var(--text-normal) !important; border: 1px solid var(--background-modifier-border) !important; }

.markdown-embed, .file-embed { border: 1px solid var(--background-modifier-border) !important; border-radius: 4px !important; background-color: var(--background-primary-alt) !important; }
.markdown-embed-title { color: var(--text-muted) !important; }

.frontmatter-container, .metadata-container { background-color: var(--background-primary-alt) !important; border: 1px solid var(--background-modifier-border) !important; border-radius: 4px !important; color: var(--text-muted) !important; }

/* =============================================================
   SCROLLBAR
   ============================================================= */

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--scrollbar-bg); }
::-webkit-scrollbar-thumb { background-color: var(--scrollbar-thumb-bg); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background-color: var(--scrollbar-active-thumb-bg); }
* { scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb-bg) var(--scrollbar-bg); }

/* =============================================================
   CHECKBOXES
   ============================================================= */

input[type="checkbox"] { accent-color: var(--checkbox-color) !important; }
.task-list-item.is-checked, li.is-checked { color: var(--checklist-done-color) !important; text-decoration: line-through !important; }

/* =============================================================
   CSSCLASSES
   ============================================================= */

.clean-read .markdown-rendered, .clean-read .markdown-preview-view { max-width: 700px; margin: 0 auto; padding: 2em; }
.data-page table { font-size: 0.85em !important; }
.plaidoyer h1 { text-align: center; }
.plaidoyer blockquote { border-left-width: 4px !important; font-style: italic; }
.veille h1 { font-size: 1.4em !important; }
.alerte { border-left: 4px solid var(--text-error) !important; padding-left: 1em; }

/* =============================================================
   MOBILE
   ============================================================= */

@media (max-width: 750px) {
  .markdown-rendered, .markdown-preview-view { font-size: 14px !important; padding: 12px !important; }
  h1 { font-size: 1.4em !important; }
  h2 { font-size: 1.25em !important; }
  h3 { font-size: 1.1em !important; }
  table { font-size: 0.8em !important; }
}

/* =============================================================
   PRINT
   ============================================================= */

@media print {
  body, .published-container, .markdown-preview-view { background: white !important; color: black !important; }
  a { color: #0066aa !important; }
  h1, h2, h3, h4, h5, h6 { color: black !important; }
  pre, code { background: #f0f0f0 !important; color: #333 !important; }
  .site-body-left-column, .site-body-right-column, .graph-view-container { display: none !important; }
}

/* =============================================================
   ██████╗ ███████╗████████╗██████╗  ██████╗      ██████╗ ███████╗███████╗██╗  ██╗
   ██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔═══██╗    ██╔════╝ ██╔════╝██╔════╝██║ ██╔╝
   ██████╔╝█████╗     ██║   ██████╔╝██║   ██║    ██║  ███╗█████╗  █████╗  █████╔╝
   ██╔══██╗██╔══╝     ██║   ██╔══██╗██║   ██║    ██║   ██║██╔══╝  ██╔══╝  ██╔═██╗
   ██║  ██║███████╗   ██║   ██║  ██║╚██████╔╝    ╚██████╔╝███████╗███████╗██║  ██╗
   ╚═╝  ╚═╝╚══════╝   ╚═╝   ╚═╝  ╚═╝ ╚═════╝      ╚═════╝ ╚══════╝╚══════╝╚═╝  ╚═╝

   MODE RÉTRO GEEK — vert tendre + lilas
   Charte ePOP!up / ouaisfieu
   Activation: cssclass: retro-geek (frontmatter d'une note)
   ============================================================= */

/* =============================================================
   PALETTE (charte ouaisfieu exacte)

   Fond:        #030308 (abysse)           Panel: #0c0e1c
   Bordure:     #1e2040 (indigo)           Glow:  rgba(177,156,217,0.3)
   Texte:       #e8eaf0 (ratio 18:1)      Dim:   #8892b0 (ratio 6:1)
   Lilac:       #b19cd9 (ratio 6.8:1)     Bright:#d4c4ff (ratio 10:1)
   Purple:      #8b5cf6 (ratio 4.8:1)     Dim:   #8b7aaf (ratio 4.6:1)
   Green:       #00ff88 (ratio 12.5:1)    Dim:   #00cc6a (ratio 8.5:1)
   Cyan:        #00f0ff (ratio 11:1)      Magenta:#ff00aa (ratio 5:1)
   ============================================================= */

.retro-geek {
  --background-primary: #030308 !important;
  --background-primary-alt: #0c0e1c !important;
  --background-secondary: #080810 !important;
  --background-secondary-alt: #12142a !important;
  --background-modifier-border: #1e2040 !important;
  --background-modifier-form-field: #0c0e1c !important;
  --background-modifier-box-shadow: rgba(177, 156, 217, 0.1) !important;

  --text-normal: #e8eaf0 !important;
  --text-muted: #8892b0 !important;
  --text-faint: #5a6080 !important;
  --text-on-accent: #030308 !important;
  --text-error: #ff00aa !important;
  --text-selection: rgba(177, 156, 217, 0.3) !important;
  --text-highlight-bg: rgba(177, 156, 217, 0.15) !important;
  --text-accent: #b19cd9 !important;
  --text-accent-hover: #d4c4ff !important;

  --interactive-accent: #b19cd9 !important;
  --interactive-accent-rgb: 177, 156, 217 !important;
  --interactive-accent-hover: #d4c4ff !important;
  --interactive-normal: #0c0e1c !important;
  --interactive-hover: #12142a !important;

  --link-color: #00f0ff !important;
  --link-color-hover: #66f7ff !important;
  --link-external-color: #00f0ff !important;
  --link-external-color-hover: #66f7ff !important;
  --link-unresolved-color: #5a6080 !important;

  --tag-color: #00ff88 !important;
  --tag-background: rgba(0, 255, 136, 0.08) !important;
  --tag-background-hover: rgba(0, 255, 136, 0.15) !important;

  --code-normal: #00ff88 !important;
  --code-background: #0c0e1c !important;
  --code-comment: #5a6080 !important;
  --code-function: #00f0ff !important;
  --code-keyword: #b19cd9 !important;
  --code-string: #d4c4ff !important;
  --code-value: #00cc6a !important;
  --code-operator: #8892b0 !important;
  --code-property: #00ff88 !important;

  --h1-color: #d4c4ff !important;
  --h2-color: #b19cd9 !important;
  --h3-color: #8b5cf6 !important;
  --h4-color: #00ff88 !important;
  --h5-color: #00cc6a !important;
  --h6-color: #8892b0 !important;

  --table-header-background: #12142a !important;
  --table-header-color: #d4c4ff !important;
  --table-border-color: #1e2040 !important;
  --table-row-background-hover: rgba(177, 156, 217, 0.06) !important;

  --blockquote-border-color: #b19cd9 !important;
  --blockquote-background-color: rgba(177, 156, 217, 0.04) !important;

  --nav-item-color: #8892b0 !important;
  --nav-item-color-hover: #e8eaf0 !important;
  --nav-item-color-active: #b19cd9 !important;
  --nav-item-color-selected: #b19cd9 !important;
  --nav-item-background-hover: rgba(177, 156, 217, 0.08) !important;
  --nav-item-background-active: rgba(177, 156, 217, 0.12) !important;

  --graph-line: #1e2040 !important;
  --graph-node: #b19cd9 !important;
  --graph-node-focused: #d4c4ff !important;
  --graph-node-tag: #00ff88 !important;

  --scrollbar-bg: transparent !important;
  --scrollbar-thumb-bg: #1e2040 !important;
  --scrollbar-active-thumb-bg: #b19cd9 !important;

  --checkbox-color: #00ff88 !important;
  --checkbox-marker-color: #030308 !important;
  --checklist-done-color: #5a6080 !important;
}

/* ------- Fonds forcés ------- */

.retro-geek,
.retro-geek .published-container,
.retro-geek .site-body,
.retro-geek .markdown-preview-view {
  background-color: #030308 !important;
  color: #e8eaf0 !important;
}

.retro-geek .site-body-left-column,
.retro-geek .site-body-left-column::before {
  background-color: #080810 !important;
  border-right: 1px solid #1e2040 !important;
}

.retro-geek .site-body-right-column {
  background-color: #080810 !important;
  border-left: 1px solid #1e2040 !important;
}

/* ------- Site name — lilac glow ------- */

.retro-geek .site-body-left-column-site-name {
  color: #b19cd9 !important;
  font-family: 'Fira Code', monospace !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  text-shadow: 0 0 12px rgba(177, 156, 217, 0.5) !important;
}

/* ------- Headings — lilac→purple→green cascade + glow ------- */

.retro-geek h1, .retro-geek .markdown-rendered h1 {
  color: #d4c4ff !important;
  font-family: 'Fira Code', monospace !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  text-shadow: 0 0 20px rgba(177, 156, 217, 0.4) !important;
  border-bottom: 1px solid #1e2040 !important;
}

.retro-geek h2, .retro-geek .markdown-rendered h2 {
  color: #b19cd9 !important;
  font-family: 'Fira Code', monospace !important;
  text-shadow: 0 0 10px rgba(177, 156, 217, 0.3) !important;
}

.retro-geek h3, .retro-geek .markdown-rendered h3 {
  color: #8b5cf6 !important;
  font-family: 'Fira Code', monospace !important;
}

.retro-geek h4, .retro-geek .markdown-rendered h4 {
  color: #00ff88 !important;
  text-shadow: 0 0 8px rgba(0, 255, 136, 0.3) !important;
}

/* ------- Liens = cyan glow ------- */

.retro-geek a, .retro-geek .internal-link {
  color: #00f0ff !important;
  text-shadow: 0 0 6px rgba(0, 240, 255, 0.2) !important;
}

.retro-geek a:hover, .retro-geek .internal-link:hover {
  color: #66f7ff !important;
  text-shadow: 0 0 12px rgba(0, 240, 255, 0.4) !important;
}

/* ------- Bold = lilac bright, Em = green dim ------- */

.retro-geek strong, .retro-geek b { color: #d4c4ff !important; }
.retro-geek em, .retro-geek i { color: #00cc6a !important; }
.retro-geek mark { background-color: rgba(177, 156, 217, 0.2) !important; color: #e8eaf0 !important; }

/* ------- Blockquote = lilac border + inset glow ------- */

.retro-geek blockquote {
  border-left: 3px solid #b19cd9 !important;
  background-color: rgba(177, 156, 217, 0.04) !important;
  box-shadow: inset 3px 0 12px rgba(177, 156, 217, 0.1) !important;
}
.retro-geek blockquote p { color: #8892b0 !important; }

/* ------- Code = green néon sur panel ------- */

.retro-geek code {
  color: #00ff88 !important;
  background-color: #0c0e1c !important;
  border: 1px solid #1e2040 !important;
  text-shadow: 0 0 4px rgba(0, 255, 136, 0.3) !important;
}

.retro-geek pre {
  background-color: #0c0e1c !important;
  border: 1px solid rgba(177, 156, 217, 0.2) !important;
  box-shadow: 0 0 15px rgba(177, 156, 217, 0.05) !important;
}

/* ------- Tables = header lilac ------- */

.retro-geek th {
  background-color: #12142a !important;
  color: #d4c4ff !important;
  border-color: #1e2040 !important;
  font-family: 'Fira Code', monospace !important;
  text-transform: uppercase !important;
  font-size: 0.8em !important;
  letter-spacing: 0.08em !important;
}

.retro-geek td { color: #e8eaf0 !important; border-color: #1e2040 !important; }
.retro-geek tr:hover td { background-color: rgba(177, 156, 217, 0.06) !important; }

/* ------- Tags = green pill + glow ------- */

.retro-geek .tag, .retro-geek a.tag {
  color: #00ff88 !important;
  background-color: rgba(0, 255, 136, 0.08) !important;
  border: 1px solid rgba(0, 255, 136, 0.2) !important;
  text-shadow: 0 0 4px rgba(0, 255, 136, 0.3) !important;
}

.retro-geek .tag:hover { background-color: rgba(0, 255, 136, 0.15) !important; box-shadow: 0 0 8px rgba(0, 255, 136, 0.2) !important; }

/* ------- HR = gradient lilac → green → lilac ------- */

.retro-geek hr {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, #b19cd9, #00ff88, #b19cd9, transparent) !important;
  margin: 2em 0 !important;
}

/* ------- Callouts = glassmorphism ------- */

.retro-geek .callout {
  background-color: rgba(12, 14, 28, 0.7) !important;
  border: 1px solid rgba(177, 156, 217, 0.2) !important;
  backdrop-filter: blur(4px) !important;
}
.retro-geek .callout-title { color: #d4c4ff !important; }
.retro-geek .callout-content, .retro-geek .callout-content p { color: #e8eaf0 !important; }

/* ------- Backlinks, Outline, Search ------- */

.retro-geek .backlinks { background-color: #080810 !important; border: 1px solid #1e2040 !important; }
.retro-geek .backlinks .published-section-header { color: #b19cd9 !important; }
.retro-geek .backlink-items-container a { color: #00f0ff !important; }

.retro-geek .outline-view-outer .tree-item-self { color: #5a6080 !important; }
.retro-geek .outline-view-outer .tree-item-self:hover { color: #b19cd9 !important; }
.retro-geek .outline-view-outer .tree-item-self.mod-active { color: #00ff88 !important; }

.retro-geek .search-bar, .retro-geek .search-view-container input {
  background-color: #0c0e1c !important; color: #e8eaf0 !important; border: 1px solid #1e2040 !important;
}
.retro-geek .search-bar:focus, .retro-geek .search-view-container input:focus {
  border-color: #b19cd9 !important; box-shadow: 0 0 8px rgba(177, 156, 217, 0.3) !important;
}

/* ------- Embeds = glass ------- */

.retro-geek .markdown-embed, .retro-geek .file-embed {
  background-color: rgba(12, 14, 28, 0.7) !important;
  border: 1px solid rgba(177, 156, 217, 0.15) !important;
  backdrop-filter: blur(8px) !important;
}

/* ------- Frontmatter ------- */

.retro-geek .frontmatter-container, .retro-geek .metadata-container {
  background-color: #0c0e1c !important; border: 1px solid #1e2040 !important; color: #8892b0 !important;
}

/* ------- CRT scanlines subtiles ------- */

.retro-geek .markdown-preview-view::after {
  content: '';
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: repeating-linear-gradient(
    0deg,
    transparent, transparent 2px,
    rgba(177, 156, 217, 0.015) 2px,
    rgba(177, 156, 217, 0.015) 4px
  );
  pointer-events: none;
  z-index: 9999;
}

/* ------- Sélection texte = lilac ------- */

.retro-geek ::selection {
  background: rgba(177, 156, 217, 0.35) !important;
  color: #e8eaf0 !important;
}

/* =============================================================
   FIN MODE RÉTRO GEEK
   ============================================================= */
