
/* ------------------------------------------------------------------
   components.css
   (cards, toc, figure, media, code, tables...) 
   ------------------------------------------------------------------ */

.card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem 1.2rem;
  margin: 1.1rem 0;
  box-shadow: 0 2px 8px var(--shadow);
}

.toc{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem 1rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem;
  margin: 1.2rem auto 1.6rem;
  box-shadow: 0 2px 8px var(--shadow);
}
.toc a{ padding: 4px 10px; border-radius: 8px; color: var(--link); font-weight:500; font-size:.95rem; }
.toc a:hover{ background: var(--link); color: var(--bg); }

/* images & figures */
.prose img, .card img, article img{ display:block; margin-left:auto; margin-right:auto; height:auto; max-width:100%; }
figure{ text-align:center; margin: 1.5rem auto; }
figure img{ display:block; margin:0 auto .6rem; max-width:100%; height:auto; border-radius:var(--radius); }
figcaption{ margin-top:10px; text-align:center; width:100%; max-width:600px; color:var(--muted); font-size:0.9rem; }

.hero-img { width: min(100%, 420px); display:block; margin:0 auto; height:auto; border-radius:var(--radius); }

/* media elements */
img, video{ max-width:100%; height:auto; }
audio, video{ display:block; margin:.75rem auto; width: min(100%, 680px); outline:none; }

/* tables */
table{ width:100%; border-collapse:collapse; margin:1rem 0; overflow:hidden; border-radius:10px; border:1px solid var(--border); }
th, td{ padding:.6rem .8rem; border-bottom:1px solid var(--border); }
thead th{ background: color-mix(in srgb, var(--card) 85%, var(--border)); text-align:left; font-weight:700; }

/* code & quotes */
pre, code, kbd, samp{ font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
pre{ background: var(--code-bg); padding: .9rem 1rem; border-radius: 10px; overflow:auto; border:1px solid var(--border); }
code{ background: var(--code-bg); padding: .15em .35em; border-radius:6px; }
blockquote{ margin:1rem 0; padding:.5rem 1rem; border-left:4px solid var(--link); background: color-mix(in srgb, var(--card) 88%, var(--border)); border-radius:8px; }