/* ===================================================================
   EternalGuild Codex — Game Wiki Theme
   Inspired by roguepedia pixel-game wiki aesthetic
   =================================================================== */

:root {
  --eg-gold:          #f2c14e;
  --eg-red:           #e05a4e;
  --eg-cyan:          #74d7d8;
  --eg-green:         #4ade80;
  --eg-purple:        #c084fc;
  --eg-orange:        #fb923c;
  --eg-sprite-border: #c85a1c;
  --eg-bg-frame:      #0d0d0d;
  --eg-bg-panel:      #161618;
  --eg-border-subtle: #2d2d30;
}

/* ---- Headings ---- */
.md-typeset h1 { color: var(--eg-gold); letter-spacing: 0.03em; }
.md-typeset h2 { color: var(--eg-gold); border-bottom: 1px solid #2d2d1a; padding-bottom: 4px; }
.md-typeset h3 { color: #d4a840; }
.md-typeset h4 { color: #b89030; }

/* ---- Links ---- */
.md-typeset a { color: var(--eg-cyan); }
.md-typeset a:hover { color: #a8ebec; }

/* ---- Tables ---- */
.md-typeset table:not([class]) {
  border: 1px solid var(--eg-border-subtle);
  border-radius: 2px;
  font-size: 0.88em;
}
.md-typeset table:not([class]) th {
  color: var(--eg-gold);
  background: #1a1a22;
  border-bottom: 1px solid #3a3a20;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.82em;
  letter-spacing: 0.06em;
}
.md-typeset table:not([class]) td {
  border-bottom: 1px solid var(--eg-border-subtle);
  vertical-align: middle;
}
.md-typeset table:not([class]) tr:hover td { background: #1d1d20; }

/* ---- Admonitions ---- */
.md-typeset .admonition.warning { border-color: var(--eg-red); }

/* Quick-reference card (abstract admonition) */
.md-typeset .admonition.abstract,
.md-typeset details.abstract {
  border-color: var(--eg-sprite-border);
  border-left-width: 4px;
  background: #1a1208;
}
.md-typeset .admonition.abstract > .admonition-title,
.md-typeset details.abstract > summary {
  background: #221608;
  color: var(--eg-gold);
  font-weight: 700;
}
.md-typeset .admonition.abstract > .admonition-title::before,
.md-typeset details.abstract > summary::before {
  background-color: var(--eg-gold);
}

/* info (source files) */
.md-typeset .admonition.info {
  background: #101018;
  border-color: #333355;
}
.md-typeset .admonition.info > .admonition-title {
  background: #14141e;
  color: #8888cc;
}
.md-typeset .admonition.info > .admonition-title::before {
  background-color: #8888cc;
}

/* ===================================================================
   Sprite frame — pixel portrait with game-styled border
   =================================================================== */
.eg-sprite-frame {
  display: inline-block;
  float: right;
  background: var(--eg-bg-frame);
  border: 3px solid var(--eg-sprite-border);
  padding: 6px;
  margin: 0 0 16px 20px;
  box-shadow: 0 0 12px rgba(200, 90, 28, 0.25);
  clear: right;
}
.eg-sprite-frame img {
  display: block;
  image-rendering: pixelated;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* Class portrait row (multiple small portraits side by side) */
.eg-class-portraits {
  display: flex;
  gap: 8px;
  float: right;
  margin: 0 0 16px 20px;
}
.eg-class-portraits .eg-sprite-frame {
  float: none;
  margin: 0;
}

/* Status effect inline icon */
.eg-status-icon {
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
  image-rendering: pixelated;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

/* ===================================================================
   Roster grid — sprite grid on index pages
   =================================================================== */
.eg-roster {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 18px 20px;
  background: var(--eg-bg-panel);
  border: 1px solid var(--eg-border-subtle);
  border-top: 2px solid var(--eg-sprite-border);
  margin-bottom: 28px;
  border-radius: 2px;
}
.eg-roster-section {
  width: 100%;
  font-size: 0.78em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
  margin-bottom: 2px;
}
.eg-roster-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  text-decoration: none !important;
}
.eg-roster-item img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  image-rendering: pixelated;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  background: #0d0d0d;
  border: 2px solid #3a3a3a;
  padding: 4px;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.eg-roster-item:hover img {
  border-color: var(--eg-sprite-border);
  box-shadow: 0 0 8px rgba(200, 90, 28, 0.4);
}
.eg-roster-item span {
  font-size: 0.72em;
  color: var(--eg-gold);
  text-align: center;
  line-height: 1.2;
  max-width: 68px;
}

/* ===================================================================
   Tag chips
   =================================================================== */
.eg-tags { margin: 6px 0 8px; line-height: 2.2; }
.eg-tag {
  display: inline-block;
  padding: 1px 9px;
  border-radius: 2px;
  font-size: 0.76em;
  font-weight: 700;
  margin: 2px 3px 2px 0;
  letter-spacing: 0.03em;
  text-decoration: none !important;
  cursor: default;
}
/* chip color variants */
.eg-tag-ailment   { background: #2d1a4a; color: #c084fc; border: 1px solid #7c3aed; }
.eg-tag-dot       { background: #3e1a1a; color: #f87171; border: 1px solid #dc2626; }
.eg-tag-physical  { background: #1a2a3e; color: #93c5fd; border: 1px solid #3b82f6; }
.eg-tag-debuff    { background: #3a1a1a; color: #fca5a5; border: 1px solid #991b1b; }
.eg-tag-buff      { background: #1a3a22; color: #86efac; border: 1px solid #15803d; }
.eg-tag-divine    { background: #2a2218; color: #fde68a; border: 1px solid #b45309; }
.eg-tag-condition { background: #2a2518; color: #fde68a; border: 1px solid #92400e; }
.eg-tag-encounter { background: #1e1a2e; color: #a78bfa; border: 1px solid #5b21b6; }
.eg-tag-daily     { background: #2e1a1a; color: #fbbf24; border: 1px solid #92400e; }
.eg-tag-atwill    { background: #182018; color: #6ee7b7; border: 1px solid #065f46; }
.eg-tag-default   { background: #222; color: #aaa; border: 1px solid #444; }

/* ===================================================================
   Colored stat values (used in generated HTML blocks)
   =================================================================== */
.eg-val-damage   { color: #f87171; font-weight: 600; }
.eg-val-heal     { color: #4ade80; font-weight: 600; }
.eg-val-duration { color: #34d399; font-weight: 600; }
.eg-val-buff     { color: #fbbf24; font-weight: 600; }
.eg-val-keyword  { color: var(--eg-cyan); font-weight: 600; }
.eg-val-gold     { color: var(--eg-gold); font-weight: 600; }
.eg-val-ap       { color: #fb923c; font-weight: 600; }

/* ===================================================================
   Stat block (enemy compact header)
   =================================================================== */
.eg-statblock {
  display: inline-flex;
  gap: 0;
  border: 1px solid #333;
  margin-bottom: 16px;
  font-size: 0.85em;
  clear: both; /* sit below floated sprite */
}
.eg-statblock dt {
  background: #1a1a22;
  color: var(--eg-gold);
  font-size: 0.75em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 10px 1px;
  text-align: center;
  border-right: 1px solid #333;
}
.eg-statblock dd {
  background: #111;
  font-weight: 600;
  padding: 3px 10px 4px;
  text-align: center;
  border-right: 1px solid #333;
  margin: 0;
}
.eg-statblock > div:last-child dt,
.eg-statblock > div:last-child dd { border-right: none; }

/* ===================================================================
   Nav sidebar tweaks
   =================================================================== */
.md-nav__title { color: var(--eg-gold); }
.md-nav__link--active { color: var(--eg-gold) !important; font-weight: 700; }
