/* -- Catppuccin Latte for Quarto Code Blocks (VS Code style) -- */

/* Palette Latte */
:root {
  --ctp-base:       #eff1f5;
  --ctp-surface0:   #ccd0da;
  --ctp-surface1:   #bcc0cc;
  --ctp-text:       #4c4f69;
  --ctp-subtext:    #6c6f85;
  --ctp-blue:       #1e66f5;
  --ctp-lavender:   #7287fd;
  --ctp-sky:        #04a5e5;
  --ctp-green:      #40a02b;
  --ctp-yellow:     #df8e1d;
  --ctp-peach:      #fe640b;
  --ctp-red:        #d20f39;
  --ctp-pink:       #ea76cb;
  --ctp-mauve:      #8839ef;
}

/* Bloc de code général */
pre.sourceCode {
  background-color: var(--ctp-base) !important;
  color: var(--ctp-text);
  border-radius: 8px;
  padding: 1em 1.2em;
  overflow-x: auto;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  border-left: 4px solid var(--ctp-lavender);
}

code, pre {
  font-family: "Menlo","JetBrains Mono", monospace;
  font-size: 0.95em;
  line-height: 1.4;
}

/* Numéros de ligne */
pre.sourceCode span.line {
  color: var(--ctp-subtext);
}

/* Bouton copier */
.quarto-code-copy-button {
  background-color: var(--ctp-surface0);
  color: var(--ctp-text);
  border: none;
  border-radius: 6px;
  transition: background-color 0.2s ease;
}
.quarto-code-copy-button:hover {
  background-color: var(--ctp-lavender);
  color: var(--ctp-base);
}

/* -------------------- */
/* Syntax highlighting  */
/* -------------------- */
pre.sourceCode .kw { color: var(--ctp-mauve); font-weight: 600; }    /* keywords */
pre.sourceCode .dt { color: var(--ctp-yellow); }                     /* data types */
pre.sourceCode .dv { color: var(--ctp-peach); }                      /* numeric literals */
pre.sourceCode .co { color: var(--ctp-subtext); font-style: italic; }/* comments */
pre.sourceCode .st { color: var(--ctp-green); }                      /* strings */
pre.sourceCode .ch { color: var(--ctp-green); }                      /* chars */
pre.sourceCode .fu { color: var(--ctp-blue); }                       /* function names */
pre.sourceCode .op { color: var(--ctp-sky); }                        /* operators */
pre.sourceCode .va { color: var(--ctp-text); }                       /* variables */
pre.sourceCode .cf { color: var(--ctp-mauve); font-weight: 600; }    /* control flow */
pre.sourceCode .bn { color: var(--ctp-peach); }                      /* built-in constants */
pre.sourceCode .pp { color: var(--ctp-green); }                      /* preprocessor (#include) */
pre.sourceCode .at { color: var(--ctp-yellow); }                     /* attributes */
pre.sourceCode .er { color: var(--ctp-red); font-weight: 600; }      /* errors */
pre.sourceCode .ss { color: var(--ctp-pink); }                       /* special strings */

/* Sélection */
pre.sourceCode ::selection {
  background: var(--ctp-surface1);
  color: var(--ctp-blue);
}

/* -------------------- */
/* Terminal simulation  */
/* -------------------- */

/* Blocs plaintext stylisés comme un terminal */
pre.plaintext {
  background: linear-gradient(to bottom, #2e3440 0%, #2e3440 30px, #3b4252 30px) !important;
  color: #d8dee9 !important;
  border-radius: 8px;
  padding: 2.5em 1.2em 1em 1.2em !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
  border: 1px solid #4c566a;
  position: relative;
  font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Code", "Droid Sans Mono", monospace !important;
  font-size: 0.9em;
  line-height: 1.5;
}

/* Barre de titre du terminal */
pre.plaintext::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 30px;
  background: #2e3440;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

/* Boutons macOS du terminal */
pre.plaintext::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 12px;
  width: 12px;
  height: 12px;
  background: #bf616a;
  border-radius: 50%;
  box-shadow: 
    18px 0 0 #ebcb8b,
    36px 0 0 #a3be8c;
}

/* Code à l'intérieur du bloc plaintext */
pre.plaintext code {
  background: transparent !important;
  color: #d8dee9 !important;
  padding: 0 !important;
  font-family: inherit !important;
}

/* Simulation du prompt */
pre.plaintext code::before {
  content: "$ ";
  color: #88c0d0;
  font-weight: bold;
  user-select: none;
  display: inline-block;
  margin-right: 0.5em;
}

/* Ne pas ajouter de prompt sur les lignes suivantes */
pre.plaintext code br + *::before {
  content: none;
}

/* Surlignage pour les lignes de sortie (sans prompt) */
pre.plaintext .output-line {
  color: #eceff4;
  padding-left: 0;
}

/* Style pour les messages de succès */
pre.plaintext .success {
  color: #a3be8c;
}

/* Style pour les messages d'erreur */
pre.plaintext .error {
  color: #bf616a;
}

/* Style pour les warnings */
pre.plaintext .warning {
  color: #ebcb8b;
}

/* Alternative: style terminal clair (si besoin) */
pre.plaintext.light-terminal {
  background: linear-gradient(to bottom, #e5e9f0 0%, #e5e9f0 30px, #eceff4 30px) !important;
  color: #2e3440 !important;
  border: 1px solid #d8dee9;
}

pre.plaintext.light-terminal::before {
  background: #e5e9f0;
}

pre.plaintext.light-terminal::after {
  background: #bf616a;
  box-shadow: 
    18px 0 0 #d08770,
    36px 0 0 #a3be8c;
}

pre.plaintext.light-terminal code {
  color: #2e3440 !important;
}

pre.plaintext.light-terminal code::before {
  color: #5e81ac;
}
