/* ---------- MARKDOWN BODY TYPOGRAPHY ---------- */
.markdown-body{max-width:74ch; font-size:1rem; line-height:1.7;}
.markdown-body > *:first-child{margin-top:0;}

.markdown-body h1{font-size:clamp(1.9rem, 3.4vw, 2.6rem); margin-bottom:1.4rem;}
.markdown-body h2{font-size:1.55rem; margin:2.6rem 0 1rem; padding-top:0.2rem;}
.markdown-body h3{font-size:1.2rem; margin:2rem 0 0.8rem;}
.markdown-body h4{font-size:1.02rem; margin:1.6rem 0 0.6rem;}
.markdown-body h2:first-child, .markdown-body h3:first-child{margin-top:0;}

.markdown-body a.headerlink{
  margin-left:0.5em;
  font-size:0.8em;
  color:var(--steel);
  opacity:0;
  transition:opacity 0.15s ease;
  text-decoration:none;
}
.markdown-body h1:hover a.headerlink,
.markdown-body h2:hover a.headerlink,
.markdown-body h3:hover a.headerlink,
.markdown-body h4:hover a.headerlink{opacity:1;}

.markdown-body p, .markdown-body ul, .markdown-body ol{margin:1rem 0; color:var(--ink-soft);}
.markdown-body ul, .markdown-body ol{padding-left:1.4rem;}
.markdown-body ul{list-style:disc;}
.markdown-body ol{list-style:decimal;}
.markdown-body li{margin:0.35rem 0;}
.markdown-body li > ul, .markdown-body li > ol{margin:0.35rem 0;}

.markdown-body strong{color:var(--ink); font-weight:600;}
.markdown-body a:not(.headerlink){color:var(--red); border-bottom:1px solid rgba(216,0,0,0.3); transition:border-color 0.15s ease;}
.markdown-body a:not(.headerlink):hover{border-bottom-color:var(--red);}

.markdown-body hr{border:none; border-top:1px solid var(--line-light); margin:2.4rem 0;}

/* ---------- TABLES ---------- */
.markdown-body table{
  display:block;
  width:max-content;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-collapse:collapse;
  margin:1.4rem 0;
  font-size:0.92rem;
  border:1px solid var(--line-light);
  scrollbar-width:thin;
  scrollbar-color:var(--steel) transparent;
}
.markdown-body table::-webkit-scrollbar{height:8px;}
.markdown-body table::-webkit-scrollbar-thumb{background:var(--line-light); border-radius:4px;}
.markdown-body table::-webkit-scrollbar-thumb:hover{background:var(--steel);}
.markdown-body th, .markdown-body td{
  padding:0.65em 0.9em;
  border-bottom:1px solid var(--line-light);
  text-align:left;
  vertical-align:top;
}
.markdown-body thead th{
  font-family:var(--font-mono);
  font-size:0.68rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--steel);
  border-bottom:1px solid var(--ink);
}
.markdown-body tbody tr:hover{background:rgba(20,24,27,0.03);}

/* ---------- INLINE CODE ---------- */
.markdown-body code{
  font-family:var(--font-mono);
  font-size:0.86em;
  background:rgba(20,24,27,0.06);
  color:var(--red-deep);
  padding:0.15em 0.4em;
  border-radius:3px;
}

/* ---------- CODE BLOCKS ---------- */
.markdown-body .highlight{
  position:relative;
  background:var(--ink);
  margin:1.3rem 0;
  overflow:hidden;
}
.markdown-body .highlight pre{
  overflow-x:auto;
  padding:1.1rem 1.3rem;
}
.markdown-body .highlight code{
  background:none;
  color:var(--paper);
  padding:0;
  font-size:0.84rem;
  line-height:1.65;
  border-radius:0;
}
.copy-btn{
  position:absolute;
  top:0.6rem; right:0.6rem;
  display:flex; align-items:center; gap:0.4em;
  background:rgba(247,246,243,0.06);
  border:1px solid var(--line-dark);
  color:var(--paper);
  font-family:var(--font-mono);
  font-size:0.62rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:0.4em 0.6em;
  cursor:pointer;
  opacity:0;
  transition:opacity 0.15s ease, border-color 0.15s ease;
}
.markdown-body .highlight:hover .copy-btn{opacity:1;}
.copy-btn:hover{border-color:var(--red);}
.copy-btn.copied{color:var(--red); border-color:var(--red);}

/* Pygments tokens - recolored to the brand palette */
.highlight .c, .highlight .ch, .highlight .cm, .highlight .cpf, .highlight .c1, .highlight .cs{color:var(--steel); font-style:italic;}
.highlight .cp{color:var(--accent-data);}
.highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .ow{color:var(--red); font-weight:600;}
.highlight .kc{color:var(--paper);}
.highlight .kt{color:var(--accent-data);}
.highlight .o{color:rgba(247,246,243,0.65);}
.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .mo, .highlight .il{color:var(--paper);}
.highlight .s, .highlight .sa, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .s1, .highlight .ss{color:#7FBFCC;}
.highlight .nt, .highlight .nf, .highlight .nc, .highlight .nn, .highlight .fm{color:#FF8A66;}
.highlight .na{color:var(--accent-data);}
.highlight .nb, .highlight .bp{color:#FF8A66;}
.highlight .no, .highlight .ne{color:var(--red-deep);}
.highlight .nd{color:var(--accent-data);}
.highlight .ni, .highlight .nl{color:var(--steel);}
.highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi, .highlight .vm{color:rgba(247,246,243,0.85);}
.highlight .w{color:rgba(247,246,243,0.2);}
.highlight .err{color:inherit; border:none;}
.highlight .gd{color:var(--red-deep);}
.highlight .gi{color:var(--accent-data);}
.highlight .gr, .highlight .gt{color:var(--red);}
.highlight .go, .highlight .gp{color:var(--steel);}
.highlight .gh, .highlight .gu{color:var(--paper); font-weight:600;}
.highlight .ge{font-style:italic;}
.highlight .ges{font-weight:600; font-style:italic;}
.highlight .gs{font-weight:600;}

/* ---------- ADMONITIONS ---------- */
.markdown-body .admonition{
  margin:1.6rem 0;
  padding:1.1rem 1.3rem;
  background:rgba(20,24,27,0.03);
  border-left:2px solid var(--accent-data);
}
.markdown-body .admonition .admonition-title{
  font-family:var(--font-head);
  font-size:1rem;
  font-weight:600;
  color:var(--accent-data);
  margin-bottom:0.5rem;
  line-height:1.5;
}
.markdown-body .admonition .admonition-title::before{
  content:'\2014\a0'; /* em dash + nbsp, flows inline so long sentence titles wrap normally */
}
.markdown-body .admonition .admonition-title a{color:inherit; font-weight:600;}
.markdown-body .admonition > :last-child{margin-bottom:0;}
.markdown-body .admonition.caution, .markdown-body .admonition.danger, .markdown-body .admonition.warning{
  border-left-color:var(--red);
  background:rgba(216,0,0,0.045);
}
.markdown-body .admonition.caution .admonition-title, .markdown-body .admonition.danger .admonition-title, .markdown-body .admonition.warning .admonition-title{color:var(--red);}
.markdown-body .admonition.quote{border-left-color:var(--steel); background:transparent;}
.markdown-body .admonition.quote .admonition-title{color:var(--steel);}
.markdown-body .admonition.quote{font-style:italic; color:var(--ink-soft);}

/* ---------- TABBED CONTENT ---------- */
.markdown-body .tabbed-set{margin:1.6rem 0;}
.markdown-body .tabbed-set input{position:absolute; opacity:0; pointer-events:none;}
.markdown-body .tabbed-labels{
  display:flex;
  gap:1.4rem;
  border-bottom:1px solid var(--line-light);
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
}
.markdown-body .tabbed-labels label{
  padding:0.7em 0;
  color:var(--steel);
  cursor:pointer;
  border-bottom:1.5px solid transparent;
  margin-bottom:-1px;
  transition:color 0.15s ease, border-color 0.15s ease;
}
.markdown-body .tabbed-labels label:hover{color:var(--ink);}
.markdown-body .tabbed-block{display:none; padding-top:1.1rem;}
.markdown-body .tabbed-block > :first-child{margin-top:0;}
.markdown-body .tabbed-set input:nth-child(1):checked ~ .tabbed-labels > label:nth-child(1),
.markdown-body .tabbed-set input:nth-child(2):checked ~ .tabbed-labels > label:nth-child(2),
.markdown-body .tabbed-set input:nth-child(3):checked ~ .tabbed-labels > label:nth-child(3),
.markdown-body .tabbed-set input:nth-child(4):checked ~ .tabbed-labels > label:nth-child(4),
.markdown-body .tabbed-set input:nth-child(5):checked ~ .tabbed-labels > label:nth-child(5),
.markdown-body .tabbed-set input:nth-child(6):checked ~ .tabbed-labels > label:nth-child(6){
  color:var(--red); border-bottom-color:var(--red);
}
.markdown-body .tabbed-set input:nth-child(1):checked ~ .tabbed-content > .tabbed-block:nth-child(1),
.markdown-body .tabbed-set input:nth-child(2):checked ~ .tabbed-content > .tabbed-block:nth-child(2),
.markdown-body .tabbed-set input:nth-child(3):checked ~ .tabbed-content > .tabbed-block:nth-child(3),
.markdown-body .tabbed-set input:nth-child(4):checked ~ .tabbed-content > .tabbed-block:nth-child(4),
.markdown-body .tabbed-set input:nth-child(5):checked ~ .tabbed-content > .tabbed-block:nth-child(5),
.markdown-body .tabbed-set input:nth-child(6):checked ~ .tabbed-content > .tabbed-block:nth-child(6){
  display:block;
}

/* ---------- MERMAID ---------- */
.markdown-body .mermaid{margin:1.6rem 0; background:var(--white); border:1px solid var(--line-light); padding:1rem; overflow-x:auto;}

/* ---------- ATTR_LIST / MISC ---------- */
.markdown-body blockquote{
  margin:1.4rem 0;
  padding-left:1.2rem;
  border-left:2px solid var(--red);
  color:var(--ink-soft);
  font-size:1.02rem;
}
.markdown-body img{margin:1rem 0; border:1px solid var(--line-light);}

/* ---------- INLINE ICON SHORTCODES (:material-check:, :material-close:, emoji) ---------- */
.markdown-body .twemoji{display:inline-flex; vertical-align:-0.15em;}
.markdown-body .twemoji svg{width:1.1em; height:1.1em; fill:var(--accent-data);}

