/* ─── Custom CSS for C++ Cheatsheet ─────────────────────────────────────────── */

/* ── Google Font: Inter ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

/* ── Root palette overrides ── */
:root {
  --md-primary-fg-color:        #7c3aed;
  --md-primary-fg-color--light: #a78bfa;
  --md-primary-fg-color--dark:  #5b21b6;
  --md-accent-fg-color:         #06b6d4;
}

[data-md-color-scheme="slate"] {
  --md-default-bg-color:        #0f0f17;
  --md-default-fg-color:        #e2e8f0;
  --md-code-bg-color:           #1a1a2e;
  --md-code-fg-color:           #e2e8f0;
}

/* ── Hero banner on index page ── */
.hero-banner {
  background: linear-gradient(135deg, #1a0535 0%, #0f172a 40%, #0c1a3a 100%);
  border: 1px solid rgba(124, 58, 237, 0.25);
  border-radius: 16px;
  padding: 2rem 1.5rem;
  margin: 1.5rem 0 2.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.hero-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(124,58,237,0.18) 0%, transparent 65%);
  pointer-events: none;
}

.hero-banner h1 {
  font-size: 2.4rem;
  font-weight: 700;
  background: linear-gradient(90deg, #a78bfa, #06b6d4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0 0 0.6rem;
  letter-spacing: -0.02em;
}

.hero-banner .badge-row {
  display: flex;
  gap: 0.6rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1.4rem;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid rgba(255,255,255,0.1);
}

.badge-red { background: rgba(237, 79, 58, 0.2); color: #c4b5fd; }
.badge-cyan   { background: rgba(6,182,212,0.15); color: #67e8f9; }
.badge-green  { background: rgba(34,197,94,0.15); color: #86efac; }
.badge-orange { background: rgba(251,146,60,0.15); color: #fdba74; }

/* ── Code block refinements ── */
.md-typeset code {
  border-radius: 5px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.84em;
}

/* ── Admonition icon sizing ── */
.md-typeset .admonition-title::before,
.md-typeset summary::before {
  top: 0.6rem;
}

/* ── Table refinements ── */
.md-typeset table:not([class]) {
  border-radius: 8px;
  overflow: hidden;
  font-size: 1em; /* match surrounding prose — overrides Material's internal 0.64rem shrinkage */
}

.md-typeset table:not([class]) th {
  background: rgba(124,58,237,0.18);
}

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(124,58,237,0.4); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(124,58,237,0.7); }

/* ── Content inner padding ── */
.md-content__inner {
  padding-left: 0.8rem;
  padding-right: 0.8rem;
}

@media screen and (min-width: 76.25em) {
  /* Max-width + generous horizontal padding = increased left/right page margins */
  .md-grid {
    max-width: 88rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}
