:root {
  --ink: #1f2725;
  --muted: #66706c;
  --paper: #f2eee4;
  --paper-deep: #e7dfcf;
  --card: #fbf8f0;
  --green: #173b39;
  --green-2: #214d48;
  --bronze: #9f7840;
  --bronze-light: #c6a66e;
  --red: #7b322e;
  --line: rgba(31, 39, 37, .14);
  --shadow: 0 16px 40px rgba(35, 36, 31, .09);
  --radius: 18px;
  --shell: 1180px;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--paper);
}

body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at top left, rgba(159,120,64,.08), transparent 30rem),
    linear-gradient(180deg, #f6f2e8 0%, var(--paper) 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}

a { color: inherit; }

.page-shell {
  width: min(calc(100% - 36px), var(--shell));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(18, 48, 46, .96);
  border-bottom: 1px solid rgba(198,166,110,.26);
  backdrop-filter: blur(12px);
}

.header-inner {
  width: min(calc(100% - 36px), var(--shell));
  min-height: 76px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 28px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: white;
  text-decoration: none;
  margin-right: auto;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(198,166,110,.65);
  border-radius: 50%;
  color: var(--bronze-light);
}

.brand strong,
.brand small {
  display: block;
}

.brand strong {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.brand small {
  margin-top: 1px;
  color: rgba(255,255,255,.62);
  font-size: .74rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 6px;
}

.main-nav a {
  color: rgba(255,255,255,.75);
  text-decoration: none;
  font-size: .92rem;
  padding: 10px 12px;
  border-radius: 10px;
}

.main-nav a:hover,
.main-nav a.active {
  color: white;
  background: rgba(255,255,255,.07);
}

.menu-toggle {
  display: none;
  border: 0;
  color: white;
  background: transparent;
  font-size: 1.4rem;
  cursor: pointer;
}

.hero {
  position: relative;
  overflow: hidden;
  min-height: 510px;
  display: grid;
  align-items: center;
  color: white;
  background:
    linear-gradient(115deg, #0f2f2c 0%, #173b39 45%, #274943 100%);
}

.hero::before,
.hero::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(198,166,110,.17);
  border-radius: 50%;
}

.hero::before {
  width: 430px;
  height: 430px;
  right: -80px;
  top: 30px;
}

.hero::after {
  width: 620px;
  height: 620px;
  right: 90px;
  top: -300px;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  opacity: .28;
  background-image:
    repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,.025) 25px 26px),
    repeating-linear-gradient(-45deg, transparent 0 24px, rgba(255,255,255,.018) 25px 26px);
}

.hero-content {
  position: relative;
  z-index: 2;
  padding-block: 74px 82px;
}

.eyebrow {
  margin: 0 0 8px;
  color: var(--bronze-light);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.eyebrow.dark {
  color: var(--bronze);
}

.hero h1,
.section-heading h2,
.panel h2,
.painting-card h2,
.rule-highlight h2 {
  font-family: Georgia, "Times New Roman", serif;
}

.hero h1 {
  margin: 0;
  font-size: clamp(3rem, 8vw, 6.8rem);
  line-height: .92;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.hero-points {
  margin: 10px 0 0;
  color: var(--bronze-light);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 5vw, 3.25rem);
  font-weight: 700;
}

.hero-points small {
  font-size: .42em;
  letter-spacing: .12em;
}

.hero-scenario {
  margin: 20px 0 2px;
  font-size: 1.3rem;
  font-weight: 800;
}

.hero-meta {
  margin: 0;
  color: rgba(255,255,255,.68);
}

.paint-requirement {
  width: min(620px, 100%);
  margin-top: 26px;
  display: grid;
  grid-template-columns: auto minmax(160px, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid rgba(198,166,110,.24);
  border-radius: 14px;
  background: rgba(255,255,255,.055);
}

.paint-requirement span,
.paint-requirement strong {
  display: block;
}

.paint-requirement span {
  color: rgba(255,255,255,.62);
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.primary-button {
  display: inline-block;
  margin-top: 24px;
  padding: 13px 18px;
  border: 1px solid var(--bronze-light);
  border-radius: 11px;
  color: #162d2a;
  background: var(--bronze-light);
  font-weight: 850;
  text-decoration: none;
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .07em;
}

.paint-bar {
  height: 9px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(255,255,255,.13);
}

.paint-bar span {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--bronze-light);
}

.progress-section,
.status-section,
.two-column,
.matches-section,
.quick-links,
.painting-section {
  padding-top: 76px;
}

.section-heading {
  margin-bottom: 24px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
}

.section-heading.compact {
  align-items: center;
}

.section-heading h2,
.panel h2,
.painting-card h2,
.rule-highlight h2 {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 2.5rem);
}

.section-heading > p {
  width: min(500px, 100%);
  margin: 0;
  color: var(--muted);
}

.campaign-progress {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  padding: 28px 0 4px;
}

.campaign-progress::before {
  content: "";
  position: absolute;
  top: 49px;
  left: 9%;
  right: 9%;
  height: 1px;
  background: var(--line);
}

.round-node {
  position: relative;
  z-index: 1;
  text-align: center;
}

.round-node .dot {
  width: 42px;
  height: 42px;
  margin: 0 auto 12px;
  display: grid;
  place-items: center;
  border: 1px solid #b8b0a1;
  border-radius: 50%;
  color: var(--muted);
  background: var(--paper);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}

.round-node.current .dot {
  color: #173b39;
  border-color: var(--bronze);
  background: var(--bronze-light);
  box-shadow: 0 0 0 7px rgba(159,120,64,.10);
}

.round-node.complete .dot {
  color: white;
  border-color: var(--green);
  background: var(--green);
}

.round-node strong,
.round-node small {
  display: block;
}

.round-node small {
  color: var(--muted);
}

.status-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.stat-card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.45);
  box-shadow: 0 10px 35px rgba(35,36,31,.04);
}

.stat-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.10);
  font-size: 1.15rem;
}

.stat-card small,
.stat-card strong {
  display: block;
}

.stat-card small {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .73rem;
}

.stat-card strong {
  font-size: 2rem;
  line-height: 1.1;
}

.two-column {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 22px;
}

.panel {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.82);
  box-shadow: var(--shadow);
}

.panel-title-row {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}

.round-chip {
  flex: none;
  padding: 7px 10px;
  border-radius: 999px;
  color: var(--green);
  background: rgba(23,59,57,.08);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.round-chip.accent {
  color: #624719;
  background: rgba(159,120,64,.13);
}


.provisional-chip {
  color: #6e501c;
  background: rgba(159,120,64,.14);
  border: 1px solid rgba(159,120,64,.18);
}

.provisional-chip.official {
  color: var(--green);
  background: rgba(23,59,57,.08);
  border-color: rgba(23,59,57,.12);
}

.standings-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: -4px 0 14px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(31,39,37,.035);
}

.mode-button {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--muted);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.mode-button strong,
.mode-button small {
  display: block;
}

.mode-button strong {
  font-size: .86rem;
}

.mode-button small {
  margin-top: 1px;
  font-size: .69rem;
  line-height: 1.35;
}

.mode-button.active {
  color: var(--ink);
  border-color: rgba(159,120,64,.22);
  background: var(--card);
  box-shadow: 0 5px 16px rgba(35,36,31,.07);
}

.general-context {
  margin-bottom: 12px;
  padding: 10px 12px;
  border-left: 3px solid var(--bronze);
  border-radius: 0 9px 9px 0;
  color: #655846;
  background: rgba(159,120,64,.075);
  font-size: .79rem;
  line-height: 1.45;
}

.general-context.official {
  border-left-color: var(--green-2);
  color: var(--muted);
  background: rgba(23,59,57,.055);
}

.table-wrap {
  overflow-x: auto;
}

.standings-table {
  width: 100%;
  border-collapse: collapse;
}

.standings-table th {
  color: var(--muted);
  font-size: .69rem;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
}

.standings-table td {
  padding: 14px 8px;
  border-bottom: 1px solid rgba(31,39,37,.085);
  vertical-align: middle;
}

.standings-table tbody tr:last-child td {
  border-bottom: 0;
}

.position {
  width: 52px;
  font-weight: 900;
}

.player-cell strong,
.player-cell small {
  display: block;
}

.player-cell small {
  color: var(--muted);
  margin-top: 2px;
}

.army-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.army-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--army-accent, var(--bronze));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--army-accent, var(--bronze)) 18%, transparent);
}

.points {
  font-weight: 900;
}

.text-link {
  margin-top: 18px;
  padding: 0;
  border: 0;
  color: var(--green);
  background: transparent;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.ranking-help,
.empty-note {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: .84rem;
}

.hidden { display: none !important; }

.match-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.match-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.74);
  box-shadow: 0 10px 30px rgba(35,36,31,.04);
}

.match-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.match-status .badge {
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(23,59,57,.08);
  color: var(--green);
}

.match-card.pending .match-status .badge {
  background: rgba(159,120,64,.12);
  color: #6e501c;
}

.match-versus {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
}

.combatant:last-child {
  text-align: right;
}

.combatant strong,
.combatant small {
  display: block;
}

.combatant small {
  color: var(--muted);
}

.score {
  text-align: center;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.45rem;
  font-weight: 800;
}

.score small {
  display: block;
  color: var(--muted);
  font-family: inherit;
  font-size: .7rem;
  font-weight: 600;
}

.quick-links {
  padding-bottom: 76px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.feature-card {
  position: relative;
  min-height: 230px;
  overflow: hidden;
  display: flex;
  gap: 18px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: inherit;
  background: linear-gradient(145deg, rgba(251,248,240,.92), rgba(235,228,213,.65));
  box-shadow: 0 10px 30px rgba(35,36,31,.04);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}

.feature-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

.feature-number {
  flex: none;
  color: rgba(159,120,64,.46);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.2rem;
  line-height: 1;
}

.feature-card small {
  color: var(--bronze);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .7rem;
  font-weight: 800;
}

.feature-card h3 {
  margin: 5px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
}

.feature-card p {
  color: var(--muted);
  margin: 0 0 18px;
}

.feature-card strong {
  color: var(--green);
  font-size: .86rem;
}

.rule-highlight {
  color: white;
  background: var(--green);
  border-block: 1px solid rgba(198,166,110,.23);
}

.rule-highlight-inner {
  min-height: 310px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  align-items: center;
  gap: 70px;
  padding-block: 50px;
}

.rule-highlight h2 {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
}

.rule-highlight p:not(.eyebrow) {
  max-width: 520px;
  color: rgba(255,255,255,.72);
}

.mini-progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mini-step {
  position: relative;
  width: 72px;
  text-align: center;
}

.mini-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 19px;
  left: 52px;
  width: calc(100% + 10px);
  height: 1px;
  background: rgba(198,166,110,.32);
}

.mini-step .mini-dot {
  position: relative;
  z-index: 2;
  width: 38px;
  height: 38px;
  margin: 0 auto 8px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(198,166,110,.48);
  border-radius: 50%;
  background: #173b39;
}

.mini-step.current .mini-dot,
.mini-step.complete .mini-dot {
  color: #173b39;
  background: var(--bronze-light);
}

.mini-step strong,
.mini-step small {
  display: block;
}

.mini-step small {
  color: rgba(255,255,255,.55);
}

.painting-section {
  padding-bottom: 76px;
}

.painting-card {
  display: grid;
  grid-template-columns: auto 1fr minmax(260px, .7fr);
  align-items: center;
  gap: 26px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.85);
  box-shadow: var(--shadow);
}

.painting-symbol {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(159,120,64,.10);
  font-size: 1.5rem;
}

.painting-copy p:last-child {
  margin-bottom: 0;
  color: var(--muted);
}

.painting-progress > div:first-child {
  text-align: right;
  margin-bottom: 8px;
}

.painting-progress > div:first-child span {
  font-size: 1.7rem;
  font-weight: 900;
}

.painting-progress > div:first-child small {
  color: var(--muted);
}

.painting-progress strong {
  display: block;
  margin-top: 7px;
  text-align: right;
}

.paint-bar.dark {
  background: rgba(23,59,57,.10);
}

.paint-bar.dark span {
  background: var(--green);
}

footer {
  color: rgba(255,255,255,.7);
  background: #102b29;
}

.footer-inner {
  min-height: 105px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.footer-inner strong,
.footer-inner small {
  display: block;
}

.footer-inner small {
  margin-top: 3px;
  color: rgba(255,255,255,.45);
}

@media (max-width: 900px) {
  .main-nav {
    position: absolute;
    left: 18px;
    right: 18px;
    top: 68px;
    display: none;
    padding: 10px;
    border: 1px solid rgba(198,166,110,.25);
    border-radius: 14px;
    background: #123330;
    box-shadow: 0 20px 45px rgba(0,0,0,.22);
  }

  .main-nav.open { display: grid; }
  .menu-toggle { display: block; }

  .two-column,
  .rule-highlight-inner,
  .painting-card {
    grid-template-columns: 1fr;
  }

  .painting-progress > div:first-child,
  .painting-progress strong {
    text-align: left;
  }

  .quick-links {
    grid-template-columns: 1fr;
  }

  .feature-card {
    min-height: auto;
  }
}

@media (max-width: 720px) {
  .hero { min-height: 470px; }

  .paint-requirement {
    grid-template-columns: 1fr auto;
  }

  .paint-requirement .paint-bar {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .section-heading {
    display: block;
  }

  .section-heading > p {
    margin-top: 8px;
  }

  .status-grid,
  .match-grid {
    grid-template-columns: 1fr;
  }

  .campaign-progress {
    grid-template-columns: repeat(5, minmax(62px, 1fr));
    overflow-x: auto;
    padding-bottom: 12px;
  }

  .campaign-progress::before {
    left: 7%;
    right: 7%;
  }

  .round-node strong {
    font-size: .8rem;
  }

  .round-node small {
    font-size: .72rem;
  }

  .mini-progress {
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 10px;
  }

  .mini-step {
    min-width: 68px;
  }

  .painting-section,
  .quick-links,
  .matches-section,
  .two-column,
  .status-section,
  .progress-section {
    padding-top: 46px;
  }
}

@media (max-width: 560px) {
  .standings-mode {
    grid-template-columns: 1fr;
  }

  .general-title-row {
    align-items: flex-start;
  }
}

@media (max-width: 520px) {
  .page-shell,
  .header-inner {
    width: min(calc(100% - 24px), var(--shell));
  }

  .brand strong {
    font-size: .88rem;
  }

  .brand small {
    font-size: .64rem;
  }

  .hero-content {
    padding-block: 60px 64px;
  }

  .panel,
  .match-card,
  .painting-card {
    padding: 21px;
  }

  .match-versus {
    grid-template-columns: 1fr;
    gap: 10px;
    text-align: left;
  }

  .combatant:last-child {
    text-align: left;
  }

  .score {
    padding: 8px 0;
    border-block: 1px solid var(--line);
    text-align: left;
  }

  .standings-table th:nth-child(3),
  .standings-table td:nth-child(3) {
    display: none;
  }
}


/* =========================================================
   VERSION 4 · LANDING ACTIONS + RULES PAGE
   ========================================================= */
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 24px;
}
.hero-actions .primary-button { margin-top: 0; }
.secondary-button {
  display: inline-block;
  padding: 13px 18px;
  border: 1px solid rgba(198,166,110,.72);
  border-radius: 11px;
  color: var(--bronze-light);
  background: rgba(255,255,255,.035);
  font-weight: 850;
  text-decoration: none;
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .07em;
}
.secondary-button:hover { background: rgba(198,166,110,.09); }

.rules-page { background: #f3efe5; }
.rules-page #generales,
.rules-page #rondas { scroll-margin-top: 76px; }
.rules-hero {
  position: relative;
  overflow: hidden;
  color: white;
  background: linear-gradient(120deg, #102f2d 0%, #183d39 60%, #264942 100%);
}
.rules-hero-pattern {
  position: absolute;
  inset: 0;
  opacity: .23;
  background-image:
    linear-gradient(30deg, transparent 44%, rgba(198,166,110,.12) 45% 46%, transparent 47%),
    linear-gradient(-30deg, transparent 44%, rgba(198,166,110,.08) 45% 46%, transparent 47%);
  background-size: 48px 48px;
}
.rules-hero-inner {
  position: relative;
  z-index: 1;
  padding-block: 68px 62px;
}
.rules-hero h1 {
  max-width: 760px;
  margin: 0;
  font: 700 clamp(2.8rem, 7vw, 5.8rem)/.96 Georgia, "Times New Roman", serif;
  letter-spacing: -.04em;
  text-transform: uppercase;
}
.rules-hero-inner > p:not(.eyebrow) {
  max-width: 690px;
  margin: 20px 0 0;
  color: rgba(255,255,255,.7);
  font-size: 1.05rem;
}
.rules-jump-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}
.rules-jump-nav a {
  padding: 10px 14px;
  border: 1px solid rgba(198,166,110,.35);
  border-radius: 999px;
  color: white;
  background: rgba(255,255,255,.05);
  text-decoration: none;
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.rules-section { padding-block: 66px 76px; }
.rules-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  margin-bottom: 28px;
}
.rules-section-heading h2 {
  margin: 0;
  font: 700 clamp(2rem, 4vw, 3rem)/1 Georgia, "Times New Roman", serif;
}
.rules-section-heading > p {
  max-width: 520px;
  margin: 0;
  color: var(--muted);
}
.rules-section-heading.inverted { color: white; }
.rules-section-heading.inverted > p { color: rgba(255,255,255,.62); }
.general-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.summary-tile {
  padding: 19px 20px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,255,255,.48);
}
.summary-tile small,
.summary-tile strong,
.summary-tile span { display: block; }
.summary-tile small {
  color: var(--bronze);
  font-size: .7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .09em;
}
.summary-tile strong {
  margin-top: 4px;
  font: 700 1.18rem Georgia, "Times New Roman", serif;
}
.summary-tile span { margin-top: 3px; color: var(--muted); font-size: .83rem; }
.rules-accordion,
.round-accordion { display: grid; gap: 10px; }
.rule-accordion-item,
.round-accordion details {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(251,248,240,.8);
}
.rule-accordion-item > summary,
.round-accordion summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.rule-accordion-item > summary::-webkit-details-marker,
.round-accordion summary::-webkit-details-marker { display: none; }
.rule-accordion-item > summary {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
}
.rule-index {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.1);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}
.rule-accordion-item summary strong,
.rule-accordion-item summary small { display: block; }
.rule-accordion-item summary small { margin-top: 2px; color: var(--muted); }
.chevron { color: var(--bronze); font-size: 1.25rem; transition: transform .2s ease; }
.rule-accordion-item[open] .chevron { transform: rotate(180deg); }
.rule-content {
  padding: 0 22px 24px 76px;
  border-top: 1px solid rgba(31,39,37,.07);
}
.rule-content > :first-child { margin-top: 20px; }
.rule-content p { color: #46504c; }
.rules-list { margin: 12px 0; padding-left: 1.2rem; }
.rules-list li { margin: 8px 0; color: #46504c; }
.rounds-overview-table {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.rounds-overview-table div {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(23,59,57,.035);
}
.rounds-overview-table b,
.rounds-overview-table strong,
.rounds-overview-table span { display: block; }
.rounds-overview-table b { color: var(--bronze); font-family: Georgia, serif; }
.rounds-overview-table strong { margin: 4px 0; }
.rounds-overview-table span { color: var(--muted); font-size: .75rem; }
.points-award-grid,
.restructure-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 18px 0;
}
.points-award-grid div,
.restructure-grid div {
  padding: 14px;
  text-align: center;
  border-radius: 12px;
  background: rgba(23,59,57,.055);
}
.points-award-grid span,
.points-award-grid strong,
.points-award-grid small,
.restructure-grid span,
.restructure-grid strong,
.restructure-grid small { display: block; }
.points-award-grid strong,
.restructure-grid strong { color: var(--green); font: 700 1.7rem Georgia, serif; }
.points-award-grid small,
.restructure-grid small { color: var(--muted); }
.rule-callout {
  margin: 18px 0;
  padding: 15px 16px;
  border-left: 3px solid var(--bronze);
  border-radius: 0 10px 10px 0;
  background: rgba(159,120,64,.09);
  color: #4c4437;
}
.do-dont-grid,
.two-rule-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.do-box,
.dont-box,
.two-rule-columns > div {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.45);
}
.do-box h3,
.dont-box h3,
.two-rule-columns h3 { margin: 0 0 10px; font: 700 1rem Georgia, serif; }
.do-box h3 { color: var(--green); }
.dont-box h3 { color: var(--red); }

.round-rules-band {
  background: linear-gradient(180deg, #153936 0%, #102f2d 100%);
  border-top: 1px solid rgba(198,166,110,.24);
}
.round-rules-section { padding-bottom: 86px; }
.round-picker {
  position: sticky;
  top: 76px;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(198,166,110,.2);
  border-radius: 16px;
  background: rgba(13,42,40,.94);
  backdrop-filter: blur(10px);
}
.round-picker button {
  position: relative;
  min-width: 0;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: rgba(255,255,255,.62);
  background: transparent;
  cursor: pointer;
}
.round-picker button span,
.round-picker button strong,
.round-picker button small { display: block; }
.round-picker button span { color: var(--bronze-light); font-family: Georgia, serif; }
.round-picker button strong { font-size: 1rem; }
.round-picker button small { font-size: .68rem; }
.round-picker button.active {
  color: #163b38;
  border-color: var(--bronze-light);
  background: var(--bronze-light);
}
.round-picker button.active span { color: #163b38; }
.round-picker button.current-round:not(.active)::after {
  content: "ACTUAL";
  position: absolute;
  top: 5px;
  right: 6px;
  color: var(--bronze-light);
  font-size: .48rem;
  font-weight: 900;
  letter-spacing: .08em;
}
.current-round-notice {
  margin: 14px 0 22px;
  padding: 10px 13px;
  border-radius: 10px;
  color: rgba(255,255,255,.62);
  background: rgba(255,255,255,.04);
  font-size: .82rem;
}
.current-round-notice.is-current { color: #e7d5ae; }
.current-round-notice span { color: var(--bronze-light); }
.round-rule-panel[hidden] { display: none; }
.round-rule-panel {
  overflow: hidden;
  border: 1px solid rgba(198,166,110,.2);
  border-radius: 20px;
  background: #f3efe5;
  box-shadow: 0 24px 60px rgba(0,0,0,.2);
}
.round-rule-header {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  align-items: center;
  gap: 34px;
  padding: 30px;
  color: white;
  background: linear-gradient(120deg, #193f3b, #244943);
}
.round-rule-header h2 { margin: 0; font: 700 clamp(2rem,5vw,3.6rem)/1 Georgia, serif; }
.round-rule-header > div:first-child > p:last-child { margin: 7px 0 0; color: rgba(255,255,255,.65); font-weight: 800; }
.round-facts { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }
.round-facts span { padding: 11px 13px; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; background: rgba(255,255,255,.04); }
.round-facts small,
.round-facts b { display: block; }
.round-facts small { color: var(--bronze-light); font-size: .63rem; text-transform: uppercase; letter-spacing: .08em; }
.round-facts b { margin-top: 2px; font-size: .84rem; }
.round-accordion { padding: 14px; }
.round-accordion details { background: #faf7ef; }
.round-accordion summary {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  font-weight: 850;
}
.round-accordion details[open] summary { color: var(--green); }
.round-accordion details[open] summary span { transform: rotate(180deg); }
.round-accordion summary span { transition: transform .2s ease; }
.round-detail { padding: 2px 18px 22px; border-top: 1px solid rgba(31,39,37,.07); }
.round-detail h3 { margin: 20px 0 6px; font: 700 1.05rem Georgia, serif; }
.round-detail p { color: #46504c; }
.round-detail img {
  display: block;
  max-width: min(100%, 820px);
  max-height: 470px;
  margin: 18px auto 2px;
  object-fit: contain;
  border: 1px solid rgba(31,39,37,.12);
  border-radius: 12px;
  background: #e8dec9;
}
.dark-callout { color: #4c4437; background: rgba(159,120,64,.13); }
.special-roll-table { display: grid; gap: 8px; margin-top: 18px; }
.special-roll-table > div { display: grid; grid-template-columns: 54px 1fr; gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.special-roll-table b { color: var(--bronze); font: 700 1.1rem Georgia, serif; text-align: center; }
.special-roll-table strong,
.special-roll-table small { display: block; }
.special-roll-table small { margin-top: 2px; color: var(--muted); }

@media (max-width: 900px) {
  .general-summary-grid { grid-template-columns: repeat(2, 1fr); }
  .rounds-overview-table { grid-template-columns: repeat(2, 1fr); }
  .rounds-overview-table div:last-child { grid-column: 1 / -1; }
  .round-rule-header { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .rules-section { padding-block: 46px 56px; }
  .rules-section-heading { display: block; }
  .rules-section-heading > p { margin-top: 9px; }
  .rule-content { padding: 0 18px 20px; }
  .do-dont-grid,
  .two-rule-columns { grid-template-columns: 1fr; }
  .points-award-grid,
  .restructure-grid { grid-template-columns: repeat(2, 1fr); }
  .round-picker {
    grid-template-columns: repeat(5, minmax(78px, 1fr));
    overflow-x: auto;
    top: 68px;
    border-radius: 0;
    margin-inline: -12px;
  }
  .round-rule-header { padding: 24px 20px; }
  .round-facts { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions a { text-align: center; }
  .rules-hero-inner { padding-block: 52px 48px; }
  .general-summary-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .summary-tile { padding: 14px; }
  .rule-accordion-item > summary { grid-template-columns: auto 1fr auto; gap: 10px; padding: 15px 14px; }
  .rule-accordion-item summary small { font-size: .72rem; }
  .rounds-overview-table { grid-template-columns: 1fr; }
  .rounds-overview-table div:last-child { grid-column: auto; }
  .round-facts { grid-template-columns: 1fr; }
  .round-accordion { padding: 9px; }
  .round-accordion summary { padding: 15px 14px; }
  .round-detail { padding: 2px 14px 18px; }
}


/* ===== V5 · refinements requested during rules review ===== */
.rules-section-heading.simplified-heading {
  display: block;
  margin-bottom: 24px;
}

.round-title-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.round-title-row .scenario-title {
  color: var(--bronze-light);
  font: 700 clamp(1.45rem, 3vw, 2.25rem)/1 Georgia, serif;
  letter-spacing: -.015em;
}

.round-facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.round-facts .round-fact-objectives {
  grid-column: 1 / -1;
  border-color: rgba(198,166,110,.30);
  background: rgba(198,166,110,.08);
}

.round-facts .round-fact-objectives b {
  color: white;
}

.image-only-detail {
  padding-top: 12px;
}

.image-only-detail img {
  margin-top: 0;
}

@media (max-width: 720px) {
  .round-title-row {
    display: grid;
    gap: 8px;
  }

  .round-title-row .scenario-title {
    font-size: 1.45rem;
  }

  .round-facts .round-fact-objectives {
    grid-column: 1 / -1;
  }
}


/* V6 · Personajes y Unidades: columnas perfectamente alineadas + ejemplos */
.rule-permission-grid {
  align-items: stretch;
}

.rule-permission-grid > .do-box,
.rule-permission-grid > .dont-box {
  height: 100%;
  margin-top: 0;
}

.rule-examples {
  margin-top: 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(255,255,255,.28);
}

.rule-examples h4 {
  margin: 0 0 9px;
  font: 700 .88rem Georgia, serif;
}

.rule-examples ul {
  margin: 0;
  padding-left: 18px;
  color: #56605c;
  font-size: .88rem;
}

.rule-examples li + li {
  margin-top: 6px;
}

.rule-examples-do {
  border-top: 3px solid rgba(23,59,57,.42);
}

.rule-examples-do h4 {
  color: var(--green);
}

.rule-examples-dont {
  border-top: 3px solid rgba(123,50,46,.42);
}

.rule-examples-dont h4 {
  color: var(--red);
}

@media (max-width: 720px) {
  .rule-permission-grid {
    grid-template-columns: 1fr;
  }

  .rule-permission-grid > .do-box { order: 1; }
  .rule-permission-grid > .rule-examples-do { order: 2; }
  .rule-permission-grid > .dont-box { order: 3; }
  .rule-permission-grid > .rule-examples-dont { order: 4; }
}


/* ==========================================================
   RONDAS · HISTÓRICO DE CAMPAÑA · V7
   ========================================================== */

.rounds-history-page { background: #f3efe5; }

.round-history-hero {
  position: relative;
  overflow: hidden;
  color: white;
  background: linear-gradient(120deg, #102f2d 0%, #183d39 60%, #264942 100%);
}

.round-history-pattern {
  position: absolute;
  inset: 0;
  opacity: .25;
  background-image:
    linear-gradient(30deg, rgba(255,255,255,.025) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.025) 87.5%),
    linear-gradient(150deg, rgba(255,255,255,.025) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.025) 87.5%);
  background-size: 58px 58px;
}

.round-history-hero-inner {
  position: relative;
  z-index: 1;
  padding-block: 64px 58px;
}

.round-history-hero h1 {
  margin: 0;
  font: 700 clamp(2.8rem, 7vw, 5.4rem)/.98 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
}

.round-history-hero p:last-child {
  max-width: 650px;
  margin: 16px 0 0;
  color: rgba(255,255,255,.68);
  font-size: 1.04rem;
}

.round-history-band {
  position: sticky;
  top: 76px;
  z-index: 12;
  border-bottom: 1px solid rgba(198,166,110,.22);
  background: rgba(13,42,40,.96);
  backdrop-filter: blur(12px);
}

.history-round-picker {
  display: grid;
  grid-template-columns: repeat(5, minmax(92px, 1fr));
}

.history-round-picker button {
  position: relative;
  min-height: 78px;
  padding: 11px 10px;
  border: 0;
  border-right: 1px solid rgba(255,255,255,.07);
  color: rgba(255,255,255,.72);
  background: transparent;
  cursor: pointer;
}

.history-round-picker button:first-child { border-left: 1px solid rgba(255,255,255,.07); }

.history-round-picker button span,
.history-round-picker button strong,
.history-round-picker button small { display: block; }

.history-round-picker button span {
  color: var(--bronze-light);
  font: 700 .8rem Georgia, serif;
}

.history-round-picker button strong { margin-top: 2px; font-size: 1.05rem; }

.history-round-picker button small {
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.history-round-picker button.active {
  color: #143431;
  background: var(--bronze-light);
}

.history-round-picker button.active span { color: #143431; }

.history-round-picker button.current-round:not(.active)::after {
  content: "";
  position: absolute;
  bottom: 7px;
  left: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--bronze-light);
  transform: translateX(-50%);
}

.round-history-content {
  padding-top: 46px;
  padding-bottom: 82px;
}

.history-round-header {
  display: grid;
  grid-template-columns: 1fr minmax(430px, .9fr);
  align-items: center;
  gap: 42px;
  padding: 31px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(251,248,240,.96), rgba(235,228,213,.72));
  box-shadow: var(--shadow);
}

.history-title-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 13px;
}

.history-title-line h2 {
  margin: 0;
  font: 700 clamp(2.4rem, 5vw, 4rem)/1 Georgia, "Times New Roman", serif;
}

.history-scenario {
  margin: 8px 0 0;
  color: var(--bronze);
  font-size: 1.22rem;
  font-weight: 850;
}

.history-status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.history-status-chip.provisional { color: #6a4a18; background: rgba(159,120,64,.14); }
.history-status-chip.official { color: var(--green); background: rgba(23,59,57,.10); }
.history-status-chip.future { color: #68716e; background: rgba(31,39,37,.065); }
.history-status-chip.warning { color: var(--red); background: rgba(123,50,46,.09); }

.history-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.history-facts span {
  padding: 12px 14px;
  border: 1px solid rgba(31,39,37,.08);
  border-radius: 11px;
  background: rgba(255,255,255,.38);
}

.history-facts small,
.history-facts b { display: block; }

.history-facts small {
  color: var(--bronze);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.history-facts b { margin-top: 3px; font-size: .82rem; }

.history-dashboard {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 22px;
  margin-top: 22px;
}

.history-played-cell { font-weight: 750; }

.overall-progress-panel { display: flex; flex-direction: column; }

.overall-progress-number {
  margin-top: auto;
  padding-top: 10px;
}

.overall-progress-number strong {
  font: 700 clamp(3.8rem, 8vw, 6.2rem)/.9 Georgia, serif;
  color: var(--green);
}

.overall-progress-number span { color: var(--muted); }

.history-progress-track {
  height: 13px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(23,59,57,.10);
  box-shadow: inset 0 0 0 1px rgba(23,59,57,.04);
}

.history-progress-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
  transition: width .3s ease;
}

.overall-progress-panel .history-progress-track { margin-top: 25px; }

.overall-progress-footer {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 10px;
  color: var(--muted);
  font-size: .82rem;
}

.player-progress-panel { margin-top: 22px; }

.player-progress-list { display: grid; gap: 0; }

.player-progress-row {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) 1.3fr;
  align-items: center;
  gap: 28px;
  padding: 17px 0;
  border-top: 1px solid rgba(31,39,37,.085);
}

.player-progress-row:first-child { border-top: 0; }

.player-progress-name {
  display: flex;
  align-items: center;
  gap: 12px;
}

.player-progress-name .army-dot { flex: none; }

.player-progress-name strong,
.player-progress-name small { display: block; }

.player-progress-name small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .76rem;
}

.player-progress-meta {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: .78rem;
}

.player-track { height: 10px; }
.player-track > span { background: var(--player-accent, var(--green)); }

.titles-section { padding-top: 54px; }
.history-section-heading { align-items: center; }

.titles-heading-line {
  display: flex;
  align-items: center;
  gap: 12px;
}

.title-awards-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

.title-award-card {
  position: relative;
  min-height: 236px;
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.88);
  box-shadow: 0 10px 30px rgba(35,36,31,.05);
}

.title-award-card:nth-child(4) { grid-column: 2 / span 2; }
.title-award-card:nth-child(5) { grid-column: 4 / span 2; }

.award-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.award-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(159,120,64,.16);
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.09);
  font-weight: 900;
}

.title-award-card > small {
  margin-top: 17px;
  color: var(--bronze);
  font-size: .66rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.title-award-card h3 {
  margin: 3px 0 16px;
  font: 700 1.45rem Georgia, "Times New Roman", serif;
}

.award-winners {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: auto;
}

.award-winner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.award-empty { color: var(--muted); font-style: italic; }

.award-stat {
  min-height: 2.3em;
  margin: 9px 0 0;
  color: var(--muted);
  font-size: .76rem;
}

.title-info-wrap { position: relative; }

.title-info {
  width: 29px;
  height: 29px;
  padding: 0;
  border: 1px solid rgba(23,59,57,.15);
  border-radius: 50%;
  color: var(--green);
  background: rgba(23,59,57,.055);
  font-weight: 900;
  cursor: pointer;
}

.title-tooltip {
  position: absolute;
  right: 0;
  top: 36px;
  z-index: 8;
  width: min(290px, 75vw);
  padding: 13px 14px;
  border: 1px solid rgba(198,166,110,.28);
  border-radius: 11px;
  color: rgba(255,255,255,.86);
  background: #163633;
  box-shadow: 0 14px 34px rgba(0,0,0,.20);
  font-size: .78rem;
  line-height: 1.45;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  pointer-events: none;
}

.title-info-wrap:hover .title-tooltip,
.title-info-wrap:focus-within .title-tooltip,
.title-info-wrap.is-open .title-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.award-victories { border-top: 3px solid rgba(159,120,64,.60); }
.award-jogo { border-top: 3px solid rgba(45,111,115,.48); }
.award-defense { border-top: 3px solid rgba(23,59,57,.55); }
.award-pacifist { border-top: 3px solid rgba(110,131,165,.52); }
.award-hammer { border-top: 3px solid rgba(123,50,46,.45); }

@media (max-width: 980px) {
  .history-round-header,
  .history-dashboard { grid-template-columns: 1fr; }

  .title-awards-grid { grid-template-columns: repeat(2, 1fr); }

  .title-award-card,
  .title-award-card:nth-child(4),
  .title-award-card:nth-child(5) { grid-column: auto; }

  .title-award-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .round-history-band { top: 68px; }

  .history-round-picker {
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .history-round-picker::-webkit-scrollbar { display: none; }

  .history-round-picker button {
    min-width: 92px;
    flex: 1 0 92px;
  }

  .round-history-content { padding-top: 28px; }
  .history-round-header { padding: 23px 20px; }
  .history-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .player-progress-row {
    grid-template-columns: 1fr;
    gap: 11px;
    padding-block: 16px;
  }

  .title-awards-grid { grid-template-columns: 1fr; }

  .title-award-card,
  .title-award-card:nth-child(4),
  .title-award-card:nth-child(5),
  .title-award-card:last-child { grid-column: auto; }

  .history-section-heading { display: block; }
  .history-section-heading > p { margin-top: 8px; }

  .history-standings-table th:nth-child(3),
  .history-standings-table td:nth-child(3) { display: none; }
}

@media (max-width: 520px) {
  .round-history-hero-inner { padding-block: 46px 42px; }
  .history-facts { grid-template-columns: 1fr; }

  .overall-progress-footer,
  .player-progress-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .panel.history-standings-panel,
  .panel.overall-progress-panel,
  .player-progress-panel { padding: 21px; }

  .history-standings-table th:nth-child(4),
  .history-standings-table td:nth-child(4) { display: none; }
}


/* ==========================================================
   RONDAS · AJUSTES V8
   ========================================================== */

.history-side-stack {
  display: grid;
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  min-width: 0;
}

.compact-progress-panel,
.round-dates-panel {
  min-height: 0;
  padding: 21px 23px;
}

.compact-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.compact-panel-heading h2 {
  margin: 0;
  font: 700 1.45rem Georgia, "Times New Roman", serif;
}

.compact-progress-panel .eyebrow,
.round-dates-panel .eyebrow {
  margin-bottom: 3px;
}

.compact-progress-summary {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
}

.compact-progress-panel .overall-progress-number {
  margin: 0;
  padding: 0;
}

.compact-progress-panel .overall-progress-number strong {
  font-size: clamp(2.7rem, 5vw, 4rem);
}

.compact-progress-panel .history-progress-track {
  margin-top: 14px;
  height: 11px;
}

.compact-pending {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: .78rem;
  white-space: nowrap;
}

.round-dates-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.round-date-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 8px 0;
  border-top: 1px solid rgba(31,39,37,.075);
}

.round-date-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.round-date-calendar {
  width: 42px;
  height: 42px;
  overflow: hidden;
  display: grid;
  place-items: center;
  align-content: center;
  border: 1px solid rgba(159,120,64,.22);
  border-radius: 10px;
  background: rgba(159,120,64,.08);
}

.round-date-calendar strong {
  color: var(--green);
  font: 800 1.05rem/1 Georgia, serif;
}

.round-date-calendar span {
  margin-top: 2px;
  color: var(--bronze);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.round-date-copy strong,
.round-date-copy small {
  display: block;
}

.round-date-copy strong {
  font-size: .86rem;
}

.round-date-copy small {
  margin-top: 1px;
  color: var(--muted);
  font-size: .7rem;
}

.date-state-chip {
  padding: 5px 8px;
  border-radius: 999px;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
  white-space: nowrap;
}

.date-state-chip.past {
  color: var(--green);
  background: rgba(23,59,57,.09);
}

.date-state-chip.upcoming {
  color: #6a4a18;
  background: rgba(159,120,64,.14);
}

.date-state-chip.today {
  color: white;
  background: var(--red);
}

.round-dates-empty {
  padding: 13px 0 3px;
  color: var(--muted);
  font-size: .8rem;
  font-style: italic;
}

.title-awards-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.title-award-card,
.title-award-card:nth-child(4),
.title-award-card:nth-child(5),
.title-award-card:last-child {
  grid-column: auto;
}

.award-bloodbath {
  border-top: 3px solid rgba(126,72,47,.50);
}

@media (max-width: 980px) {
  .history-side-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .title-awards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .title-award-card:last-child {
    grid-column: auto;
  }
}

@media (max-width: 720px) {
  .history-side-stack,
  .title-awards-grid {
    grid-template-columns: 1fr;
  }

  .compact-progress-panel,
  .round-dates-panel {
    padding: 20px;
  }

  .round-date-item {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .date-state-chip {
    grid-column: 2;
    justify-self: start;
  }
}

/* ==========================================================
   CLASIFICACIÓN GENERAL · V9
   ========================================================== */

.classification-page { background: #f3efe5; }

.classification-hero {
  position: relative;
  overflow: hidden;
  color: white;
  background: linear-gradient(120deg, #102f2d 0%, #183d39 60%, #264942 100%);
}

.classification-hero-inner {
  position: relative;
  z-index: 1;
  padding-block: 64px 58px;
}

.classification-hero h1 {
  margin: 0;
  font: 700 clamp(2.8rem, 7vw, 5.4rem)/.98 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
}

.classification-hero p:last-child {
  max-width: 720px;
  margin: 16px 0 0;
  color: rgba(255,255,255,.68);
  font-size: 1.04rem;
}

.classification-content {
  padding-top: 46px;
  padding-bottom: 82px;
}

.classification-dashboard {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 22px;
}

.campaign-standings-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 17px;
}

.campaign-standings-heading h2 {
  margin: 0;
  font: 700 clamp(1.8rem, 4vw, 2.5rem) Georgia, "Times New Roman", serif;
}

.standings-mode-switch {
  display: inline-flex;
  padding: 4px;
  border: 1px solid rgba(31,39,37,.10);
  border-radius: 999px;
  background: rgba(31,39,37,.045);
}

.standings-mode-switch button {
  padding: 8px 12px;
  border: 0;
  border-radius: 999px;
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-size: .76rem;
  font-weight: 850;
  cursor: pointer;
}

.standings-mode-switch button.active {
  color: #173b39;
  background: var(--bronze-light);
}

.classification-mode-note {
  margin-bottom: 17px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: .8rem;
}

.classification-mode-note.provisional-note {
  color: #68491d;
  background: rgba(159,120,64,.10);
  border: 1px solid rgba(159,120,64,.13);
}

.classification-mode-note.official-note {
  color: var(--green);
  background: rgba(23,59,57,.07);
  border: 1px solid rgba(23,59,57,.09);
}

.classification-side-stack {
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 14px;
}

.campaign-rounds-number { margin-top: 28px; }

.campaign-rounds-number strong {
  color: var(--green);
  font: 700 clamp(3.7rem, 7vw, 5.7rem)/.9 Georgia, serif;
}

.campaign-rounds-number span { color: var(--muted); }

.campaign-rounds-summary .history-progress-track { margin-top: 23px; }

.campaign-rounds-meta {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 10px;
  color: var(--muted);
  font-size: .78rem;
}

.campaign-current-round {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 12px;
}

.campaign-current-round > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(159,120,64,.24);
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.08);
  font: 700 1.15rem Georgia, serif;
}

.campaign-current-round strong,
.campaign-current-round small { display: block; }

.campaign-current-round small {
  margin-top: 2px;
  color: var(--muted);
}

.round-progress-panel { margin-top: 22px; }

.campaign-round-progress-list { display: grid; }

.campaign-round-progress-row {
  display: grid;
  grid-template-columns: minmax(235px, .8fr) 1.2fr auto;
  align-items: center;
  gap: 28px;
  padding: 17px 0;
  border-top: 1px solid rgba(31,39,37,.085);
}

.campaign-round-progress-row:first-child { border-top: 0; }

.campaign-round-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}

.campaign-round-roman {
  flex: none;
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  border: 1px solid rgba(159,120,64,.18);
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.07);
  font: 700 .9rem Georgia, serif;
}

.campaign-round-identity strong,
.campaign-round-identity small { display: block; }

.campaign-round-identity small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .75rem;
}

.campaign-achievements-section { padding-top: 54px; }

.campaign-achievements-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.campaign-achievement-card { grid-column: auto !important; }

.award-crown { border-top: 3px solid rgba(181,137,46,.60); }
.award-nemesis { border-top: 3px solid rgba(91,48,48,.58); }
.award-headhunter { border-top: 3px solid rgba(75,82,52,.56); }

@media (max-width: 980px) {
  .classification-dashboard { grid-template-columns: 1fr; }
  .classification-side-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }
  .campaign-achievements-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .classification-content { padding-top: 28px; }
  .campaign-standings-heading { display: block; }
  .standings-mode-switch { margin-top: 14px; }
  .classification-side-stack,
  .campaign-achievements-grid { grid-template-columns: 1fr; }
  .campaign-round-progress-row {
    grid-template-columns: 1fr;
    gap: 11px;
  }
  .campaign-round-progress-row .history-status-chip { justify-self: start; }
  .campaign-standings-table th:nth-child(3),
  .campaign-standings-table td:nth-child(3) { display: none; }
}

@media (max-width: 520px) {
  .classification-hero-inner { padding-block: 46px 42px; }
  .campaign-rounds-meta { flex-direction: column; gap: 3px; }
  .campaign-standings-panel,
  .campaign-rounds-summary,
  .campaign-current-state,
  .round-progress-panel { padding: 21px; }
  .campaign-standings-table th:nth-child(4),
  .campaign-standings-table td:nth-child(4) { display: none; }
}


/* ==========================================================
   AJUSTES GLOBALES + INICIO/RONDAS · V10
   ========================================================== */

/* Un único alto de cabecera para todas las páginas. */
.site-header .header-inner {
  min-height: 76px;
}

/* INICIO: resumen de enfrentamientos. */
.home-round-link {
  margin-top: 0;
  text-decoration: none;
}

.home-match-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.home-match-column {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.78);
  box-shadow: 0 10px 30px rgba(35,36,31,.04);
}

.home-match-column.played-column {
  border-top: 3px solid rgba(23,59,57,.55);
}

.home-match-column.pending-column {
  border-top: 3px solid rgba(159,120,64,.52);
}

.home-match-column-title {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 17px 19px 14px;
  border-bottom: 1px solid rgba(31,39,37,.075);
}

.home-match-state-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: none;
  border-radius: 50%;
  color: var(--green);
  background: rgba(23,59,57,.08);
  font-weight: 900;
}

.pending-column .home-match-state-icon {
  color: #6a4a18;
  background: rgba(159,120,64,.12);
}

.home-match-column-title small,
.home-match-column-title h3 {
  display: block;
  margin: 0;
}

.home-match-column-title small {
  color: var(--muted);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-match-column-title h3 {
  margin-top: 1px;
  font: 700 1.15rem Georgia, "Times New Roman", serif;
}

.home-match-column-title h3 span {
  color: var(--bronze);
}

.home-match-list {
  display: grid;
}

.home-match-row {
  min-height: 51px;
  display: grid;
  align-items: center;
  gap: 8px;
  padding: 11px 18px;
  border-top: 1px solid rgba(31,39,37,.07);
  font-size: .84rem;
}

.home-match-row:first-child {
  border-top: 0;
}

.home-match-row.played {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.home-match-player {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
}

.home-match-player.right {
  flex-direction: row;
}

.home-match-player b {
  min-width: 31px;
  text-align: right;
  font: 800 .93rem Georgia, serif;
}

.home-match-player.right b {
  text-align: left;
}

.home-match-player.winner span,
.home-match-player.winner b {
  color: var(--green);
  font-weight: 900;
}

.home-match-divider {
  color: rgba(31,39,37,.25);
}

.home-match-row.pending {
  grid-template-columns: 1fr auto 1fr;
  color: var(--muted);
}

.home-match-row.pending span:last-child {
  text-align: right;
}

.home-match-row.pending b {
  color: var(--bronze);
  font-size: .68rem;
}

.home-match-empty {
  margin: 0;
  padding: 18px;
  color: var(--muted);
  font-size: .8rem;
  font-style: italic;
}

/* RONDAS: histórico detallado de partidas. */
.round-history-matches-section {
  padding-top: 54px;
  scroll-margin-top: 152px;
}

.round-history-match-grid .match-card {
  background: rgba(251,248,240,.84);
}

@media (max-width: 720px) {
  .home-match-summary {
    grid-template-columns: 1fr;
  }

  .home-round-link {
    display: inline-block;
    margin-top: 8px;
  }

  .round-history-matches-section {
    scroll-margin-top: 140px;
  }
}

@media (max-width: 520px) {
  .home-match-row {
    padding-inline: 14px;
  }

  .home-match-row.played {
    grid-template-columns: 1fr auto 1fr;
  }

  .home-match-player {
    display: grid;
    gap: 2px;
  }

  .home-match-player.right {
    justify-items: end;
  }

  .home-match-player b,
  .home-match-player.right b {
    text-align: inherit;
  }
}


/* ==========================================================
   CABECERAS DE SECCIÓN UNIFICADAS · V11
   La navegación superior queda intacta. Estos son los grandes
   bloques verdes propios de Inicio / Reglas / Rondas / Clasificación.
   ========================================================== */

:root {
  --section-hero-height: 440px;
}

/* Un mismo alto y centrado vertical para las cuatro páginas. */
.hero,
.rules-hero,
.round-history-hero,
.classification-hero {
  min-height: var(--section-hero-height);
  height: var(--section-hero-height);
  display: grid;
  align-items: center;
}

/* Inicio era sensiblemente más alto: compactamos solo sus espacios
   verticales sin cambiar su información ni su jerarquía. */
.hero-content {
  padding-block: 42px;
}

.hero h1 {
  font-size: clamp(3rem, 7vw, 5.8rem);
}

.hero-points {
  margin-top: 6px;
  font-size: clamp(1.7rem, 4.5vw, 2.85rem);
}

.hero-scenario {
  margin-top: 13px;
}

.paint-requirement {
  margin-top: 18px;
  padding-block: 12px;
}

.hero-actions {
  margin-top: 17px;
}

/* El resto de páginas usa el mismo espacio interior y se centra
   dentro exactamente del mismo bloque de 440 px. */
.rules-hero-inner,
.round-history-hero-inner,
.classification-hero-inner {
  width: min(calc(100% - 36px), var(--shell));
  padding-block: 38px;
}

/* La página de reglas lleva navegación interna en su cabecera.
   Reducimos sus huecos para mantener la misma altura sin apretar texto. */
.rules-hero-inner > p:not(.eyebrow) {
  margin-top: 14px;
}

.rules-jump-nav {
  margin-top: 20px;
}

/* En pantallas pequeñas conservamos la misma lógica visual,
   pero permitimos un poco más de alto para que Inicio no se comprima. */
@media (max-width: 720px) {
  :root {
    --section-hero-height: 420px;
  }

  .hero-content,
  .rules-hero-inner,
  .round-history-hero-inner,
  .classification-hero-inner {
    padding-block: 34px;
  }

  .hero h1 {
    font-size: clamp(2.75rem, 14vw, 4.4rem);
  }

  .hero-points {
    font-size: clamp(1.55rem, 9vw, 2.35rem);
  }

  .paint-requirement {
    margin-top: 14px;
  }

  .hero-actions {
    margin-top: 14px;
  }
}

@media (max-width: 520px) {
  /* Los botones de Inicio pasan a dos filas en móvil, por lo que usamos
     altura mínima en vez de recortar contenido. Las cuatro cabeceras
     siguen compartiendo el mismo mínimo visual. */
  .hero,
  .rules-hero,
  .round-history-hero,
  .classification-hero {
    height: auto;
    min-height: 420px;
  }
}


/* ==========================================================
   CABECERAS DE SECCIÓN · REDISEÑO V12
   Sin alturas rígidas que recorten contenido.
   ========================================================== */

:root {
  --section-hero-min-height: 310px;
}

/* Las cuatro cabeceras comparten tamaño y alineación, pero su altura
   puede crecer si realmente lo necesita el contenido. */
.hero,
.rules-hero,
.round-history-hero,
.classification-hero {
  height: auto !important;
  min-height: var(--section-hero-min-height) !important;
  display: grid;
  align-items: center;
}

/* Composición común de dos columnas. */
.section-hero-grid {
  width: min(calc(100% - 36px), var(--shell));
  min-height: var(--section-hero-min-height);
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(330px, .78fr);
  align-items: center;
  gap: clamp(36px, 6vw, 86px);
  padding-block: 32px !important;
}

.section-hero-primary,
.section-hero-secondary {
  min-width: 0;
}

.section-hero-secondary {
  border-left: 1px solid rgba(198,166,110,.22);
  padding-left: clamp(26px, 4vw, 46px);
}

.section-hero-description {
  max-width: 480px;
  margin: 0 !important;
  color: rgba(255,255,255,.70);
  font-size: .98rem;
  line-height: 1.6;
}

/* Títulos del mismo peso visual en las secciones secundarias. */
.rules-hero h1,
.round-history-hero h1,
.classification-hero h1 {
  max-width: 720px;
  font-size: clamp(2.65rem, 5.4vw, 4.65rem);
  line-height: .96;
}

/* Inicio: título, puntos y escenario comparten una sola composición compacta. */
.home-hero-grid {
  position: relative;
  z-index: 2;
}

.home-hero-titleline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 18px;
}

.hero h1 {
  font-size: clamp(2.9rem, 5.8vw, 5rem) !important;
  line-height: .94;
}

.home-hero-titleline .hero-points {
  margin: 0;
  font-size: clamp(1.7rem, 3.4vw, 2.55rem) !important;
}

.hero-scenario {
  margin: 13px 0 1px !important;
  font-size: 1.14rem;
}

.hero-meta {
  font-size: .91rem;
}

.home-hero-secondary {
  display: grid;
  gap: 15px;
}

.paint-requirement {
  width: 100%;
  margin: 0 !important;
  grid-template-columns: auto minmax(100px, 1fr) auto;
  gap: 13px;
  padding: 12px 14px !important;
}

.paint-requirement span {
  font-size: .68rem;
}

.hero-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0 !important;
}

.hero-actions .primary-button {
  margin: 0;
  padding: 11px 12px;
  display: grid;
  place-items: center;
  text-align: center;
  font-size: .69rem;
  line-height: 1.25;
}

/* Reglas: el texto ya está en columna lateral, por lo que los viejos
   selectores no deben reservar espacio vertical adicional. */
.rules-hero-inner > p:not(.eyebrow) {
  margin: 0;
}

.rules-jump-nav {
  margin-top: 18px !important;
}

.rules-jump-nav a {
  padding: 9px 12px;
  font-size: .75rem;
}

/* Los selectores antiguos de Rondas/Clasificación apuntaban al último p.
   Ya no deben imponer márgenes sobre la nueva columna. */
.round-history-hero p:last-child,
.classification-hero p:last-child {
  margin: 0;
}

/* Tablet: mantenemos dos columnas mientras haya ancho suficiente,
   pero suavizamos tamaños. */
@media (max-width: 900px) {
  :root {
    --section-hero-min-height: 300px;
  }

  .section-hero-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
    gap: 30px;
  }

  .section-hero-secondary {
    padding-left: 26px;
  }

  .hero-actions {
    grid-template-columns: 1fr;
  }
}

/* Móvil: apilamos y dejamos que la altura sea natural. Nada se corta. */
@media (max-width: 720px) {
  :root {
    --section-hero-min-height: 0px;
  }

  .hero,
  .rules-hero,
  .round-history-hero,
  .classification-hero {
    min-height: 0 !important;
  }

  .section-hero-grid {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 22px;
    padding-block: 34px !important;
  }

  .section-hero-secondary {
    border-left: 0;
    border-top: 1px solid rgba(198,166,110,.20);
    padding: 20px 0 0;
  }

  .home-hero-titleline {
    gap: 12px;
  }

  .paint-requirement {
    grid-template-columns: auto 1fr auto;
  }

  .hero-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rules-hero h1,
  .round-history-hero h1,
  .classification-hero h1,
  .hero h1 {
    font-size: clamp(2.55rem, 12vw, 4rem) !important;
  }
}

@media (max-width: 480px) {
  .section-hero-grid {
    width: min(calc(100% - 24px), var(--shell));
    padding-block: 28px !important;
    gap: 18px;
  }

  .hero-actions {
    grid-template-columns: 1fr;
  }

  .paint-requirement {
    grid-template-columns: 1fr auto;
  }

  .paint-requirement .paint-bar {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .section-hero-description {
    font-size: .91rem;
  }
}


/* ==========================================================
   ADMINISTRACIÓN · V13
   ========================================================== */

.admin-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at top right, rgba(159,120,64,.08), transparent 32rem),
    #eee9dd;
}

.admin-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  color: white;
  background: #102f2d;
  border-bottom: 1px solid rgba(198,166,110,.24);
}

.admin-topbar-inner {
  width: min(calc(100% - 36px), 1380px);
  min-height: 68px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.admin-top-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.admin-mode-badge {
  padding: 6px 9px;
  border: 1px solid rgba(198,166,110,.28);
  border-radius: 999px;
  color: var(--bronze-light);
  font-size: .65rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.admin-public-link {
  color: rgba(255,255,255,.80);
  font-size: .82rem;
  font-weight: 750;
  text-decoration: none;
}

.admin-shell {
  width: min(100%, 1480px);
  min-height: calc(100vh - 68px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
}

.admin-sidebar {
  padding: 34px 20px 28px;
  border-right: 1px solid rgba(31,39,37,.10);
  background: rgba(247,243,233,.72);
}

.admin-sidebar-heading {
  padding-inline: 10px;
}

.admin-sidebar-heading h1 {
  margin: 0;
  font: 700 1.65rem Georgia, "Times New Roman", serif;
}

.admin-nav {
  display: grid;
  gap: 5px;
  margin-top: 26px;
}

.admin-nav button {
  width: 100%;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 11px;
  padding: 12px 11px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.admin-nav button > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  color: var(--bronze);
  background: rgba(159,120,64,.09);
}

.admin-nav button b {
  font-size: .86rem;
}

.admin-nav button small {
  margin-top: 1px;
  color: var(--muted);
  font-size: .69rem;
}

.admin-nav button:hover,
.admin-nav button.active {
  border-color: rgba(23,59,57,.09);
  background: rgba(23,59,57,.065);
}

.admin-nav button.active > span {
  color: white;
  background: var(--green);
}

.admin-storage-card {
  margin-top: 28px;
  display: flex;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(159,120,64,.16);
  border-radius: 12px;
  background: rgba(159,120,64,.06);
}

.storage-dot {
  width: 8px;
  height: 8px;
  flex: none;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--bronze);
}

.admin-storage-card strong,
.admin-storage-card small {
  display: block;
}

.admin-storage-card strong {
  font-size: .76rem;
}

.admin-storage-card small {
  margin-top: 3px;
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.45;
}

.admin-workspace {
  min-width: 0;
  padding: 34px clamp(22px, 4vw, 54px) 80px;
}

.admin-workspace-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 36px;
}

.admin-workspace-top h2 {
  margin: 0;
  font: 700 clamp(2rem, 4vw, 3.2rem)/1 Georgia, "Times New Roman", serif;
}

.admin-workspace-top p:last-child {
  max-width: 680px;
  margin: 9px 0 0;
  color: var(--muted);
}

.admin-data-actions {
  flex: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.admin-ghost-button,
.admin-danger-text {
  padding: 9px 11px;
  border: 1px solid rgba(31,39,37,.11);
  border-radius: 9px;
  color: var(--green);
  background: rgba(255,255,255,.46);
  font: inherit;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
}

.admin-danger-text {
  color: var(--red);
}

.admin-file-button {
  position: relative;
  cursor: pointer;
}

.admin-file-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.admin-notice {
  margin-top: 24px;
  padding: 12px 14px;
  border: 1px solid rgba(159,120,64,.15);
  border-radius: 10px;
  color: #65491d;
  background: rgba(159,120,64,.08);
  font-size: .78rem;
}

.admin-tab-panel {
  display: none;
  margin-top: 24px;
}

.admin-tab-panel.active {
  display: block;
}

.admin-round-toolbar {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(251,248,240,.72);
}

.admin-round-toolbar label {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-round-toolbar label > span {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.admin-round-toolbar select {
  min-width: 210px;
}

.admin-round-stats {
  display: flex;
  gap: 9px;
}

.admin-round-stats span {
  padding: 7px 9px;
  border-radius: 999px;
  color: var(--muted);
  background: rgba(31,39,37,.055);
  font-size: .72rem;
}

.admin-results-layout {
  display: grid;
  grid-template-columns: minmax(340px, .78fr) minmax(0, 1.22fr);
  align-items: start;
  gap: 18px;
  margin-top: 18px;
}

.admin-results-lists {
  display: grid;
  gap: 18px;
}

.admin-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.84);
  box-shadow: 0 10px 30px rgba(35,36,31,.045);
}

.result-editor-card {
  position: sticky;
  top: 92px;
}

.admin-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 17px;
}

.admin-card-heading h3 {
  margin: 0;
  font: 700 1.45rem Georgia, "Times New Roman", serif;
}

.admin-status-pill {
  flex: none;
  padding: 6px 9px;
  border-radius: 999px;
  color: #68491d;
  background: rgba(159,120,64,.12);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.admin-status-pill.saved,
.admin-round-state.closed {
  color: var(--green);
  background: rgba(23,59,57,.09);
}

.active-round-pill {
  max-width: 240px;
  white-space: normal;
  text-align: center;
  line-height: 1.3;
}

.admin-field,
.admin-score-editor label,
.admin-player-editor label {
  display: grid;
  gap: 6px;
}

.admin-field + .admin-field {
  margin-top: 13px;
}

.admin-field > span,
.admin-score-editor label > span,
.admin-player-editor label > span {
  color: var(--muted);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.admin-page input,
.admin-page select {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid rgba(31,39,37,.13);
  border-radius: 9px;
  color: var(--ink);
  background: rgba(255,255,255,.67);
  font: inherit;
}

.admin-page input:focus,
.admin-page select:focus {
  outline: 2px solid rgba(159,120,64,.22);
  border-color: rgba(159,120,64,.45);
}

.admin-score-editor {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  gap: 12px;
  margin-top: 17px;
}

.admin-score-editor > b {
  padding-bottom: 10px;
  color: var(--bronze);
}

.admin-score-editor input {
  min-height: 64px;
  font: 800 1.6rem Georgia, serif;
  text-align: center;
}

.admin-result-preview {
  min-height: 112px;
  margin-top: 16px;
  padding: 14px;
  border: 1px dashed rgba(31,39,37,.14);
  border-radius: 10px;
  background: rgba(31,39,37,.025);
}

.preview-placeholder,
.preview-error {
  color: var(--muted);
  font-size: .78rem;
}

.preview-error {
  color: var(--red);
}

.preview-result-outcome {
  margin-bottom: 10px;
  color: var(--green);
  font-weight: 850;
}

.preview-impact-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.preview-impact-grid > div {
  padding: 9px;
  border-radius: 8px;
  background: rgba(255,255,255,.48);
}

.preview-impact-grid strong,
.preview-impact-grid span,
.preview-impact-grid small {
  display: block;
}

.preview-impact-grid span {
  margin-top: 4px;
  font-size: .78rem;
}

.preview-impact-grid small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .67rem;
}

.admin-editor-actions {
  display: flex;
  gap: 8px;
  margin-top: 15px;
}

.admin-primary-button,
.admin-secondary-button {
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 9px;
  font: inherit;
  font-size: .76rem;
  font-weight: 850;
  cursor: pointer;
}

.admin-primary-button {
  border: 1px solid var(--green);
  color: white;
  background: var(--green);
}

.admin-secondary-button {
  border: 1px solid rgba(123,50,46,.18);
  color: var(--red);
  background: rgba(123,50,46,.05);
}

.admin-match-list {
  display: grid;
}

.admin-match-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 12px 2px;
  border: 0;
  border-top: 1px solid rgba(31,39,37,.075);
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.admin-match-row:first-child {
  border-top: 0;
}

.admin-match-row:hover {
  background: rgba(23,59,57,.035);
}

.admin-match-row > span strong,
.admin-match-row > span small {
  display: block;
}

.admin-match-row > span small {
  color: var(--muted);
  font-size: .66rem;
}

.admin-match-row > span.right {
  text-align: right;
}

.admin-match-row > b {
  color: var(--bronze);
  font-family: Georgia, serif;
}

.admin-match-row > em {
  color: var(--green);
  font-size: .68rem;
  font-style: normal;
  font-weight: 850;
}

.admin-empty {
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  font-style: italic;
}

.admin-two-column {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
}

.admin-date-list {
  display: grid;
}

.admin-date-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid rgba(31,39,37,.075);
}

.admin-date-row:first-child {
  border-top: 0;
}

.admin-date-number {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  color: var(--bronze);
  background: rgba(159,120,64,.09);
  font: 700 .78rem Georgia, serif;
}

.admin-date-row strong,
.admin-date-row small {
  display: block;
}

.admin-date-row small {
  margin-top: 2px;
  color: var(--muted);
}

.admin-date-row button {
  border: 0;
  color: var(--red);
  background: transparent;
  font: inherit;
  font-size: .7rem;
  font-weight: 800;
  cursor: pointer;
}

.admin-round-list {
  display: grid;
}

.admin-round-row {
  display: grid;
  grid-template-columns: minmax(235px, .8fr) 1.2fr auto auto;
  align-items: center;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid rgba(31,39,37,.075);
}

.admin-round-row:first-child {
  border-top: 0;
}

.admin-round-row.current {
  margin-inline: -10px;
  padding-inline: 10px;
  border-radius: 10px;
  background: rgba(159,120,64,.055);
}

.admin-round-identity {
  display: flex;
  align-items: center;
  gap: 11px;
}

.admin-round-identity > span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex: none;
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.09);
  font: 700 .85rem Georgia, serif;
}

.admin-round-identity strong,
.admin-round-identity small {
  display: block;
}

.admin-round-identity small {
  color: var(--muted);
  font-size: .7rem;
}

.admin-round-progress > div:first-child {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: .7rem;
}

.admin-round-state {
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--muted);
  background: rgba(31,39,37,.055);
  font-size: .63rem;
  font-weight: 850;
  text-transform: uppercase;
}

.admin-round-state.current {
  color: #68491d;
  background: rgba(159,120,64,.12);
}

.admin-round-row > button {
  min-width: 92px;
  padding: 8px 9px;
  border: 1px solid rgba(23,59,57,.14);
  border-radius: 8px;
  color: var(--green);
  background: rgba(23,59,57,.05);
  font: inherit;
  font-size: .68rem;
  font-weight: 850;
  cursor: pointer;
}

.admin-round-row > button:disabled {
  opacity: .42;
  cursor: default;
}

.admin-card-help {
  margin: -6px 0 16px;
  color: var(--muted);
  font-size: .78rem;
}

.admin-player-editor-list {
  display: grid;
}

.admin-player-editor {
  display: grid;
  grid-template-columns: 140px 1fr 1.3fr;
  align-items: end;
  gap: 14px;
  padding: 13px 0;
  border-top: 1px solid rgba(31,39,37,.075);
}

.admin-player-editor:first-child {
  border-top: 0;
}

.admin-player-id {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 9px;
}

.admin-player-id code {
  color: var(--muted);
  font-size: .75rem;
}

.admin-toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 60;
  max-width: min(370px, calc(100vw - 44px));
  padding: 12px 15px;
  border-radius: 10px;
  color: white;
  background: var(--green);
  box-shadow: 0 16px 40px rgba(0,0,0,.20);
  font-size: .78rem;
  font-weight: 750;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: .18s ease;
}

.admin-toast.error {
  background: var(--red);
}

.admin-toast.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media (max-width: 1050px) {
  .admin-shell {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .admin-results-layout,
  .admin-two-column {
    grid-template-columns: 1fr;
  }

  .result-editor-card {
    position: static;
  }

  .admin-round-row {
    grid-template-columns: minmax(220px, .9fr) 1.1fr auto;
  }

  .admin-round-row > button {
    grid-column: 3;
  }
}

@media (max-width: 820px) {
  .admin-shell {
    display: block;
  }

  .admin-sidebar {
    padding: 14px 16px;
    border-right: 0;
    border-bottom: 1px solid rgba(31,39,37,.10);
  }

  .admin-sidebar-heading,
  .admin-storage-card {
    display: none;
  }

  .admin-nav {
    display: flex;
    gap: 7px;
    margin: 0;
    overflow-x: auto;
  }

  .admin-nav button {
    min-width: 132px;
    grid-template-columns: 25px auto;
    padding: 9px 10px;
  }

  .admin-nav button > span {
    width: 25px;
    height: 25px;
  }

  .admin-nav button small {
    display: none;
  }

  .admin-workspace {
    padding: 26px 18px 70px;
  }

  .admin-workspace-top {
    display: block;
  }

  .admin-data-actions {
    justify-content: flex-start;
    margin-top: 18px;
  }

  .admin-round-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .admin-round-row > button {
    grid-column: auto;
    justify-self: start;
  }

  .admin-player-editor {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .admin-player-id {
    min-height: auto;
  }
}

@media (max-width: 560px) {
  .admin-topbar-inner {
    width: calc(100% - 24px);
  }

  .admin-mode-badge {
    display: none;
  }

  .admin-public-link {
    font-size: .72rem;
  }

  .admin-round-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-round-toolbar label {
    display: grid;
  }

  .admin-round-toolbar select {
    min-width: 0;
  }

  .admin-round-stats {
    justify-content: flex-start;
  }

  .admin-score-editor {
    grid-template-columns: 1fr;
  }

  .admin-score-editor > b {
    display: none;
  }

  .preview-impact-grid {
    grid-template-columns: 1fr;
  }

  .admin-match-row {
    grid-template-columns: 1fr auto 1fr;
  }

  .admin-match-row > em {
    grid-column: 1 / -1;
    justify-self: end;
  }

  .admin-editor-actions {
    flex-direction: column;
  }
}


/* ==========================================================
   EJÉRCITOS + IMPORTADOR OLD WORLD BUILDER · V14
   ========================================================== */

.armies-page {
  background: #f3efe5;
}

.armies-hero {
  position: relative;
  overflow: hidden;
  min-height: var(--section-hero-min-height);
  display: grid;
  align-items: center;
  color: white;
  background: linear-gradient(120deg, #102f2d 0%, #183d39 60%, #264942 100%);
}

.armies-hero-inner {
  position: relative;
  z-index: 1;
}

.armies-hero h1 {
  margin: 0;
  font: 700 clamp(2.65rem, 5.4vw, 4.65rem)/.96 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
}

.army-selector-band {
  position: sticky;
  top: 76px;
  z-index: 12;
  border-bottom: 1px solid rgba(198,166,110,.22);
  background: rgba(13,42,40,.96);
  backdrop-filter: blur(12px);
}

.army-selector-inner {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.army-selector-inner label {
  display: flex;
  align-items: center;
  gap: 9px;
}

.army-selector-inner label > span {
  color: rgba(255,255,255,.52);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.army-selector-inner select {
  min-width: 210px;
  padding: 9px 34px 9px 11px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 9px;
  color: white;
  background: #173b39;
  font: inherit;
  font-size: .82rem;
}

.army-source-chip {
  margin-left: auto;
  padding: 6px 9px;
  border: 1px solid rgba(198,166,110,.24);
  border-radius: 999px;
  color: var(--bronze-light);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.armies-content {
  padding-top: 34px;
  padding-bottom: 82px;
}

.army-empty-state {
  min-height: 330px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  text-align: center;
}

.army-empty-state > span {
  color: var(--bronze);
  font-size: 2rem;
}

.army-empty-state h2 {
  margin: 0;
  font: 700 2rem Georgia, serif;
}

.army-empty-state p {
  max-width: 520px;
  margin: 0;
  color: var(--muted);
}

.army-overview-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 20px;
}

.army-profile-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.army-profile-top {
  display: flex;
  align-items: center;
  gap: 17px;
}

.army-player-emblem {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  flex: none;
  border: 1px solid rgba(159,120,64,.25);
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.08);
  font: 700 1.5rem Georgia, serif;
}

.army-profile-card h2 {
  margin: 0;
  font: 700 2rem Georgia, serif;
}

.army-profile-card p:not(.eyebrow) {
  margin: 2px 0 0;
  color: var(--muted);
}

.army-list-title {
  max-width: 48%;
  text-align: right;
}

.army-list-title small,
.army-list-title strong,
.army-list-title span {
  display: block;
}

.army-list-title small {
  color: var(--bronze);
  font-size: .65rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.army-list-title strong {
  margin-top: 4px;
  font: 700 1.2rem Georgia, serif;
}

.army-list-title span {
  margin-top: 3px;
  color: var(--muted);
  font-size: .72rem;
}

.army-points-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.army-points-number strong {
  color: var(--green);
  font: 700 clamp(3rem, 6vw, 4.7rem)/.9 Georgia, serif;
}

.army-points-number span {
  color: var(--muted);
}

.army-points-track {
  height: 11px;
  margin-top: 18px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(23,59,57,.10);
}

.army-points-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--green);
}

.army-summary-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  color: var(--muted);
  font-size: .72rem;
}

.army-evolution-section,
.army-list-section {
  padding-top: 52px;
}

.army-heading-line {
  display: flex;
  align-items: center;
  gap: 12px;
}

.army-evolution-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.army-evolution-summary article {
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(251,248,240,.72);
}

.army-evolution-summary small,
.army-evolution-summary strong,
.army-evolution-summary span {
  display: block;
}

.army-evolution-summary small {
  color: var(--bronze);
  font-size: .63rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.army-evolution-summary strong {
  margin-top: 4px;
  font: 700 1.65rem Georgia, serif;
}

.army-evolution-summary span {
  margin-top: 3px;
  color: var(--muted);
  font-size: .69rem;
}

.army-changes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.army-change-card {
  padding: 19px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.84);
  box-shadow: 0 8px 24px rgba(35,36,31,.035);
}

.army-change-card.added { border-top: 3px solid rgba(23,59,57,.56); }
.army-change-card.modified { border-top: 3px solid rgba(159,120,64,.58); }
.army-change-card.removed { border-top: 3px solid rgba(123,50,46,.50); }

.army-change-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.army-change-heading span {
  color: var(--bronze);
  font-size: .64rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.army-change-heading strong {
  font-size: .75rem;
}

.army-change-card h4 {
  margin: 14px 0 2px;
  font: 700 1.18rem Georgia, serif;
}

.army-change-card > p {
  margin: 0;
  color: var(--muted);
  font-size: .71rem;
}

.army-change-card ul {
  margin: 13px 0 0;
  padding-left: 17px;
  color: var(--muted);
  font-size: .75rem;
}

.army-change-card li + li {
  margin-top: 5px;
}

.army-no-changes {
  grid-column: 1 / -1;
  min-height: 120px;
  display: grid;
  place-items: center;
  align-content: center;
  border: 1px dashed rgba(31,39,37,.13);
  border-radius: var(--radius);
  color: var(--muted);
  text-align: center;
}

.army-no-changes > span {
  color: var(--bronze);
  font: 700 1.5rem Georgia, serif;
}

.army-no-changes p {
  margin: 5px 0 0;
}

.army-category-stack {
  display: grid;
  gap: 20px;
}

.army-category-block {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.72);
}

.army-category-heading {
  min-height: 65px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 18px;
  border-bottom: 1px solid rgba(31,39,37,.08);
  background: rgba(23,59,57,.035);
}

.army-category-heading > div {
  display: flex;
  align-items: center;
  gap: 11px;
}

.army-category-heading h3 {
  margin: 0;
  font: 700 1.25rem Georgia, serif;
}

.army-category-mark {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.10);
  font-weight: 850;
}

.army-category-heading > strong {
  color: var(--green);
  font: 700 1rem Georgia, serif;
}

.army-unit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.army-unit-card {
  min-width: 0;
  padding: 18px;
  border-top: 1px solid rgba(31,39,37,.07);
}

.army-unit-card:nth-child(odd) {
  border-right: 1px solid rgba(31,39,37,.07);
}

.army-unit-card:nth-child(-n+2) {
  border-top: 0;
}

.army-unit-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
}

.army-unit-titleline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}

.army-unit-titleline h4 {
  margin: 0;
  font: 700 1.06rem Georgia, serif;
}

.army-unit-heading > div:first-child > p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: .69rem;
}

.army-general-chip {
  padding: 4px 6px;
  border-radius: 999px;
  color: #68491d;
  background: rgba(159,120,64,.12);
  font-size: .57rem;
  font-weight: 900;
  text-transform: uppercase;
}

.army-unit-meta {
  flex: none;
  display: flex;
  align-items: center;
  gap: 8px;
}

.army-unit-meta strong {
  color: var(--green);
  font-size: .76rem;
}

.army-unit-strength {
  color: var(--muted);
  font-size: .65rem;
}

.army-unit-details {
  margin-top: 13px;
}

.army-unit-detail-row {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 10px;
  padding: 6px 0;
  border-top: 1px solid rgba(31,39,37,.055);
}

.army-unit-detail-row:first-child {
  border-top: 0;
}

.army-unit-detail-row > span {
  color: var(--bronze);
  font-size: .62rem;
  font-weight: 850;
  text-transform: uppercase;
}

.army-unit-detail-row p {
  margin: 0;
  color: var(--muted);
  font-size: .7rem;
}

.army-unit-no-options {
  margin: 0;
  color: var(--muted);
  font-size: .7rem;
  font-style: italic;
}

/* Admin OWB importer */
.army-admin-layout {
  align-items: start;
}

.army-upload-zone {
  min-height: 150px;
  margin-top: 16px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  padding: 20px;
  border: 1px dashed rgba(159,120,64,.35);
  border-radius: 12px;
  color: var(--green);
  background: rgba(159,120,64,.05);
  text-align: center;
  cursor: pointer;
}

.army-upload-zone:hover {
  background: rgba(159,120,64,.085);
}

.army-upload-zone input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.army-upload-icon {
  font-size: 1.55rem;
  color: var(--bronze);
}

.army-upload-zone strong {
  font-size: .85rem;
}

.army-upload-zone small {
  color: var(--muted);
  font-size: .68rem;
}

.army-import-preview {
  min-height: 135px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(31,39,37,.10);
  border-radius: 10px;
  background: rgba(31,39,37,.025);
}

.army-import-valid-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.army-import-valid-heading span {
  color: var(--green);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.army-import-valid-heading strong {
  font: 700 .95rem Georgia, serif;
}

.army-import-valid h4,
.army-import-existing strong {
  display: block;
  margin: 10px 0 2px;
  font: 700 1.05rem Georgia, serif;
}

.army-import-valid p,
.army-import-existing p {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
}

.army-import-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 11px;
}

.army-import-facts span {
  padding: 5px 7px;
  border-radius: 7px;
  background: rgba(31,39,37,.055);
  color: var(--muted);
  font-size: .62rem;
}

.army-import-facts span.ok {
  color: var(--green);
  background: rgba(23,59,57,.07);
}

.army-import-facts span.warn {
  color: var(--red);
  background: rgba(123,50,46,.07);
}

.army-import-warning,
.army-import-replace {
  display: block;
  margin-top: 9px !important;
  color: var(--red) !important;
  font-size: .68rem !important;
}

.army-import-replace {
  color: #68491d !important;
}

.army-import-error {
  color: var(--red);
}

.army-import-error strong {
  font-size: .8rem;
}

.army-import-error ul {
  padding-left: 17px;
  font-size: .7rem;
}

.admin-army-list-grid {
  display: grid;
  gap: 7px;
}

.admin-army-stored-card {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 16px;
  padding: 12px;
  border: 1px solid rgba(31,39,37,.08);
  border-radius: 10px;
  color: inherit;
  background: rgba(255,255,255,.34);
  text-align: left;
  cursor: pointer;
}

.admin-army-stored-card:hover {
  background: rgba(23,59,57,.045);
}

.admin-army-stored-card > div:first-child {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 8px;
}

.admin-army-stored-card .army-dot {
  grid-row: 1 / 3;
}

.admin-army-stored-card strong,
.admin-army-stored-card small {
  display: block;
}

.admin-army-stored-card small {
  color: var(--muted);
  font-size: .65rem;
}

.admin-army-stored-card > div:nth-child(2) {
  text-align: right;
}

.admin-army-stored-card > div:nth-child(2) b,
.admin-army-stored-card > div:nth-child(2) span {
  display: block;
}

.admin-army-stored-card > div:nth-child(2) b {
  color: var(--green);
}

.admin-army-stored-card > div:nth-child(2) span {
  color: var(--muted);
  font-size: .65rem;
}

.admin-army-stored-card > em {
  grid-column: 1 / -1;
  color: var(--bronze);
  font-size: .68rem;
  font-style: normal;
}

@media (max-width: 900px) {
  .army-overview-grid {
    grid-template-columns: 1fr;
  }

  .army-evolution-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .army-changes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .army-profile-card {
    align-items: flex-start;
  }
}

@media (max-width: 720px) {
  .armies-hero {
    min-height: 0;
  }

  .army-selector-band {
    top: 68px;
  }

  .army-selector-inner {
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding-block: 12px;
  }

  .army-selector-inner label {
    display: grid;
    gap: 4px;
  }

  .army-selector-inner select {
    width: 100%;
    min-width: 0;
  }

  .army-source-chip {
    grid-column: 1 / -1;
    justify-self: start;
    margin-left: 0;
  }

  .army-profile-card {
    display: grid;
  }

  .army-list-title {
    max-width: none;
    text-align: left;
  }

  .army-changes-grid {
    grid-template-columns: 1fr;
  }

  .army-unit-grid {
    grid-template-columns: 1fr;
  }

  .army-unit-card:nth-child(odd) {
    border-right: 0;
  }

  .army-unit-card:nth-child(2) {
    border-top: 1px solid rgba(31,39,37,.07);
  }
}

@media (max-width: 520px) {
  .army-evolution-summary {
    grid-template-columns: 1fr 1fr;
  }

  .army-heading-line {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .army-unit-heading {
    display: grid;
  }

  .army-unit-meta {
    justify-content: space-between;
  }

  .army-unit-detail-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .army-selector-inner {
    grid-template-columns: 1fr;
  }

  .army-source-chip {
    grid-column: auto;
  }
}


/* ==========================================================
   VALIDACIÓN DE PROGRESIÓN DE EJÉRCITOS · V15
   ========================================================== */

.army-validation-panel {
  margin-top: 16px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(251,248,240,.86);
  box-shadow: 0 8px 24px rgba(35,36,31,.035);
}

.army-validation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.army-validation-heading h3 {
  margin: 0;
  font: 700 1.45rem Georgia, "Times New Roman", serif;
}

.army-validation-status {
  flex: none;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.army-validation-status.valid {
  color: var(--green);
  background: rgba(23,59,57,.09);
}

.army-validation-status.review {
  color: #6a4a18;
  background: rgba(159,120,64,.14);
}

.army-validation-status.violation {
  color: var(--red);
  background: rgba(123,50,46,.10);
}

.army-validation-status.neutral {
  color: var(--muted);
  background: rgba(31,39,37,.055);
}

.army-validation-help {
  max-width: 780px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.5;
}

.army-validation-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 15px;
}

.army-validation-summary article {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(31,39,37,.035);
}

.army-validation-summary article.valid {
  background: rgba(23,59,57,.055);
}

.army-validation-summary article.review {
  background: rgba(159,120,64,.075);
}

.army-validation-summary article.violation {
  background: rgba(123,50,46,.055);
}

.army-validation-summary strong {
  font: 700 1.25rem Georgia, serif;
}

.army-validation-summary .valid strong { color: var(--green); }
.army-validation-summary .review strong { color: var(--bronze); }
.army-validation-summary .violation strong { color: var(--red); }

.army-validation-summary span {
  color: var(--muted);
  font-size: .68rem;
}

.army-validation-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.army-validation-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px;
  padding: 13px;
  border: 1px solid rgba(31,39,37,.08);
  border-radius: 10px;
  background: rgba(255,255,255,.34);
}

.army-validation-item.review {
  border-color: rgba(159,120,64,.18);
  background: rgba(159,120,64,.045);
}

.army-validation-item.violation {
  border-color: rgba(123,50,46,.18);
  background: rgba(123,50,46,.04);
}

.army-validation-icon {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  font-weight: 900;
}

.army-validation-item.review .army-validation-icon {
  color: #6a4a18;
  background: rgba(159,120,64,.14);
}

.army-validation-item.violation .army-validation-icon {
  color: var(--red);
  background: rgba(123,50,46,.10);
}

.army-validation-item-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}

.army-validation-item-title > span {
  color: var(--bronze);
  font-size: .60rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.army-validation-item.violation .army-validation-item-title > span {
  color: var(--red);
}

.army-validation-item-title strong {
  font-size: .82rem;
}

.army-validation-item small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .66rem;
}

.army-validation-item p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: .73rem;
}

.army-validation-item blockquote {
  margin: 8px 0 0;
  padding: 7px 9px;
  border-left: 2px solid rgba(159,120,64,.35);
  color: rgba(31,39,37,.72);
  background: rgba(159,120,64,.045);
  font-size: .67rem;
  font-style: normal;
}

.army-validation-clean {
  min-height: 60px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--muted);
}

.army-validation-clean > span {
  color: var(--green);
  font-weight: 900;
}

.army-validation-clean p {
  margin: 0;
  font-size: .74rem;
}

/* Admin: preview de validación antes de guardar */
.admin-progression-check {
  margin-top: 12px;
  padding: 10px 11px;
  border-radius: 9px;
  background: rgba(23,59,57,.055);
}

.admin-progression-check.review {
  background: rgba(159,120,64,.075);
}

.admin-progression-check.violation {
  background: rgba(123,50,46,.065);
}

.admin-progression-check > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.admin-progression-check strong {
  color: var(--green);
  font-size: .69rem;
}

.admin-progression-check.review strong {
  color: #6a4a18;
}

.admin-progression-check.violation strong {
  color: var(--red);
}

.admin-progression-check span {
  color: var(--muted);
  font-size: .62rem;
}

.admin-progression-check p {
  margin: 7px 0 0 !important;
  font-size: .67rem !important;
}

.admin-progression-check ul {
  margin: 8px 0 0;
  padding-left: 17px;
  color: var(--muted);
  font-size: .65rem;
}

.admin-progression-check li + li {
  margin-top: 4px;
}

@media (max-width: 640px) {
  .army-validation-heading {
    display: grid;
  }

  .army-validation-status {
    justify-self: start;
  }

  .army-validation-summary {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================
   ESTADÍSTICA "PARTIDA CON MÁS PUNTOS" · V17
   ========================================================== */

.award-match-wrap {
  display: grid;
  gap: 7px;
}

.award-match {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 8px 9px;
  border: 1px solid rgba(31,39,37,.07);
  border-radius: 9px;
  background: rgba(31,39,37,.035);
  font-size: .75rem;
}

.award-match > span:last-of-type {
  text-align: right;
}

.award-match > strong {
  color: var(--green);
  font: 800 .88rem Georgia, "Times New Roman", serif;
  white-space: nowrap;
}

.award-match > small {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: .61rem;
  text-align: center;
}

@media (max-width: 520px) {
  .award-match {
    font-size: .7rem;
  }

  .award-match > strong {
    font-size: .82rem;
  }
}


/* ==========================================================
   DATOS DE PARTIDA + MEDALLAS · V18
   ========================================================== */

/* ADMIN · DATOS DE PARTIDA */
.admin-match-details {
  margin-top: 18px;
  padding: 15px;
  border: 1px solid rgba(31,39,37,.09);
  border-radius: 11px;
  background: rgba(31,39,37,.025);
}

.admin-match-details-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 13px;
}

.admin-match-details-heading h4 {
  margin: 0;
  font: 700 1.08rem Georgia, serif;
}

.admin-match-details-heading > span {
  color: var(--muted);
  font-size: .62rem;
}

.admin-cross-data {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 13px;
}

.admin-detail-group {
  padding: 12px;
  border: 1px solid rgba(31,39,37,.07);
  border-radius: 9px;
  background: rgba(255,255,255,.34);
}

.admin-detail-group > strong,
.admin-round-specific > div:first-child > strong {
  display: block;
  margin-bottom: 8px;
  font-size: .72rem;
}

.admin-check-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 0;
  cursor: pointer;
}

.admin-check-row input {
  width: 16px;
  min-height: 16px;
  margin-top: 1px;
  flex: none;
}

.admin-check-row span {
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.35;
}

.admin-check-row b {
  color: var(--ink);
}

.admin-dual-number {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.admin-dual-number label {
  display: grid;
  gap: 5px;
}

.admin-dual-number label > span {
  color: var(--muted);
  font-size: .61rem;
  font-weight: 800;
}

.admin-dual-number input {
  min-height: 38px;
}

.admin-round-specific {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(159,120,64,.18);
  border-radius: 9px;
  background: rgba(159,120,64,.055);
}

.admin-round-specific > div:first-child {
  margin-bottom: 10px;
}

.admin-round-specific > div:first-child small {
  display: block;
  color: var(--muted);
  font-size: .65rem;
  line-height: 1.4;
}

/* EJÉRCITOS · MEDALLAS */
.medals-top-section {
  padding-top: 30px;
  padding-bottom: 24px;
}

.medals-archive {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at top right, rgba(159,120,64,.11), transparent 28rem),
    rgba(251,248,240,.86);
  box-shadow: 0 12px 32px rgba(35,36,31,.045);
}

.medals-archive > summary {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 22px;
  list-style: none;
  cursor: pointer;
}

.medals-archive > summary::-webkit-details-marker {
  display: none;
}

.medals-archive > summary h2 {
  margin: 0;
  font: 700 2rem Georgia, serif;
}

.medals-summary-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.medals-summary-right > span {
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
}

.medals-summary-right > b {
  padding: 7px 10px;
  border-radius: 999px;
  color: #6a4a18;
  background: rgba(159,120,64,.13);
  font-size: .72rem;
}

.medals-summary-right > i {
  color: var(--bronze);
  font-size: 1.2rem;
  font-style: normal;
  transition: transform .18s ease;
}

.medals-archive[open] .medals-summary-right > i {
  transform: rotate(180deg);
}

.medals-body {
  padding: 0 22px 24px;
  border-top: 1px solid rgba(31,39,37,.07);
}

.medal-player-tabs {
  display: flex;
  gap: 7px;
  padding-top: 16px;
  overflow-x: auto;
}

.medal-player-tabs button {
  flex: none;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 10px;
  border: 1px solid rgba(31,39,37,.09);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255,255,255,.36);
  font: inherit;
  font-size: .69rem;
  font-weight: 800;
  cursor: pointer;
}

.medal-player-tabs button.active {
  color: white;
  border-color: var(--green);
  background: var(--green);
}

.medals-intro {
  max-width: 760px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.5;
}

.medal-categories {
  display: grid;
  gap: 24px;
  margin-top: 24px;
}

.medal-category-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 11px;
}

.medal-category-heading h3 {
  margin: 0;
  font: 700 1.25rem Georgia, serif;
}

.medal-category-heading p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: .68rem;
}

.medal-category-heading > span {
  flex: none;
  color: var(--bronze);
  font-size: .7rem;
  font-weight: 900;
}

.medal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.medal-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
  border: 1px solid rgba(31,39,37,.08);
  border-radius: 12px;
  background: rgba(255,255,255,.38);
}

.medal-card.locked {
  opacity: .69;
}

.medal-card.unlocked {
  border-color: rgba(159,120,64,.24);
  background:
    linear-gradient(135deg, rgba(159,120,64,.09), rgba(255,255,255,.48));
}

.medal-emblem {
  position: relative;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  align-self: start;
  border: 1px solid rgba(31,39,37,.11);
  border-radius: 50%;
  color: rgba(31,39,37,.48);
  background: rgba(31,39,37,.045);
  font: 800 .88rem Georgia, serif;
}

.medal-card.unlocked .medal-emblem {
  color: #6a4a18;
  border-color: rgba(159,120,64,.38);
  background:
    radial-gradient(circle at 35% 30%, #f5e5b7, #c89a50 70%);
  box-shadow: inset 0 0 0 4px rgba(255,255,255,.25);
}

.medal-emblem > i {
  position: absolute;
  right: -3px;
  bottom: -3px;
  display: grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding-inline: 3px;
  border: 2px solid #f4efe4;
  border-radius: 50%;
  color: white;
  background: var(--green);
  font-size: .58rem;
  font-style: normal;
}

.medal-card.locked .medal-emblem > i {
  background: #77756e;
  font-size: .5rem;
}

.medal-title-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px;
}

.medal-title-line h4 {
  margin: 0;
  font: 700 1rem Georgia, serif;
}

.medal-title-line > span {
  color: var(--bronze);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.medal-copy > p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: .69rem;
  line-height: 1.45;
}

.medal-copy > small {
  display: block;
  margin-top: 5px;
  color: #7c6742;
  font-size: .61rem;
}

.medal-earned-date,
.medal-progress {
  margin-top: 10px;
}

.medal-earned-date {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(31,39,37,.06);
}

.medal-earned-date span,
.medal-progress > div:first-child span {
  color: var(--muted);
  font-size: .59rem;
  font-weight: 800;
  text-transform: uppercase;
}

.medal-earned-date strong {
  color: var(--green);
  font-size: .68rem;
}

.medal-progress > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.medal-progress > div:first-child strong {
  color: var(--muted);
  font-size: .64rem;
}

.medal-progress-track {
  height: 5px;
  margin-top: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(31,39,37,.09);
}

.medal-progress-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bronze);
}

/* El selector de listas queda ahora debajo del archivo de medallas. */
.army-selector-band {
  position: relative;
  top: auto;
}

@media (max-width: 820px) {
  .admin-cross-data {
    grid-template-columns: 1fr;
  }

  .medal-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .admin-match-details-heading {
    display: grid;
  }

  .admin-dual-number {
    grid-template-columns: 1fr;
  }

  .medals-archive > summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .medals-summary-right {
    width: 100%;
  }

  .medals-summary-right > i {
    margin-left: auto;
  }

  .medal-card {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .medal-emblem {
    width: 46px;
    height: 46px;
  }
}


/* V18 · selector triestado para muerte de Generales */
.admin-general-select {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
}

.admin-general-select > span {
  color: var(--muted);
  font-size: .67rem;
  line-height: 1.35;
}

.admin-general-select b {
  color: var(--ink);
}

.admin-general-select select {
  min-height: 34px;
  padding-block: 5px;
  font-size: .66rem;
}

@media (max-width: 560px) {
  .admin-general-select {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================
   EJÉRCITOS · SELECTOR ÚNICO DE JUGADOR · V19
   ========================================================== */

.army-player-selector-band {
  border-bottom: 1px solid rgba(198,166,110,.22);
  background: rgba(13,42,40,.96);
}

.army-player-selector-inner {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.army-player-selector-inner > label {
  display: flex;
  align-items: center;
  gap: 10px;
}

.army-player-selector-inner label > span,
.army-list-selector-inner label > span {
  color: rgba(255,255,255,.52);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.army-player-selector-inner select,
.army-list-selector-inner select {
  min-width: 235px;
  padding: 9px 34px 9px 11px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 9px;
  color: white;
  background: #173b39;
  font: inherit;
  font-size: .82rem;
}

.army-selected-player {
  display: flex;
  align-items: center;
  gap: 11px;
  color: white;
}

.army-selected-player-emblem {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(198,166,110,.28);
  border-radius: 50%;
  color: var(--bronze-light);
  background: rgba(198,166,110,.08);
  font: 700 .95rem Georgia, serif;
}

.army-selected-player strong,
.army-selected-player small {
  display: block;
}

.army-selected-player strong {
  font-size: .82rem;
}

.army-selected-player small {
  margin-top: 1px;
  color: rgba(255,255,255,.52);
  font-size: .66rem;
}

.medals-top-section {
  padding-top: 26px;
  padding-bottom: 24px;
}

.army-list-selector-band {
  border-top: 1px solid rgba(31,39,37,.06);
  border-bottom: 1px solid rgba(198,166,110,.18);
  background: rgba(13,42,40,.96);
}

.army-list-selector-inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.army-list-selector-inner label {
  display: flex;
  align-items: center;
  gap: 9px;
}

.army-list-selector-inner .army-source-chip {
  margin-left: auto;
}

.medal-player-tabs {
  display: none !important;
}

.medal-title-line > span {
  display: none !important;
}

@media (max-width: 720px) {
  .army-player-selector-inner {
    min-height: 0;
    padding-block: 12px;
  }

  .army-player-selector-inner > label {
    display: grid;
    gap: 4px;
    width: 100%;
  }

  .army-player-selector-inner select {
    width: 100%;
    min-width: 0;
  }

  .army-selected-player {
    display: none;
  }

  .army-list-selector-inner {
    min-height: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding-block: 12px;
  }

  .army-list-selector-inner label {
    display: grid;
    gap: 4px;
  }

  .army-list-selector-inner select {
    width: 100%;
    min-width: 0;
  }

  .army-list-selector-inner .army-source-chip {
    margin-left: 0;
    align-self: end;
  }
}

@media (max-width: 520px) {
  .army-list-selector-inner {
    grid-template-columns: 1fr;
  }

  .army-list-selector-inner .army-source-chip {
    justify-self: start;
  }
}


/* ==========================================================
   EJÉRCITOS · JERARQUÍA DE PÁGINA · V20
   ========================================================== */

/* El selector superior se limita a elegir jugador. */
.army-player-selector-inner {
  justify-content: flex-start;
}

/* Resumen del jugador */
.army-player-summary-section {
  padding-top: 28px;
}

.army-player-summary-card {
  min-height: 128px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 22px 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at right center, rgba(159,120,64,.09), transparent 22rem),
    rgba(251,248,240,.86);
  box-shadow: 0 10px 28px rgba(35,36,31,.04);
}

.army-player-summary-identity {
  display: flex;
  align-items: center;
  gap: 16px;
}

.army-player-summary-identity .army-selected-player-emblem {
  width: 54px;
  height: 54px;
  color: var(--bronze);
  border-color: rgba(159,120,64,.28);
  background: rgba(159,120,64,.08);
  font-size: 1.25rem;
}

.army-player-summary-identity h2 {
  margin: 0;
  font: 700 1.85rem Georgia, "Times New Roman", serif;
}

.army-player-summary-identity > div > span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .78rem;
}

.army-player-summary-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(115px, 1fr));
  gap: 10px;
}

.army-player-summary-stats > div {
  min-width: 120px;
  padding: 13px 16px;
  border-left: 1px solid rgba(31,39,37,.08);
}

.army-player-summary-stats small,
.army-player-summary-stats strong {
  display: block;
}

.army-player-summary-stats small {
  color: var(--muted);
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.army-player-summary-stats strong {
  margin-top: 3px;
  color: var(--green);
  font: 700 1.65rem Georgia, serif;
}

/* Medallas quedan inmediatamente después del resumen. */
.medals-top-section {
  padding-top: 18px;
  padding-bottom: 0;
}

/* LISTAS: sección normal, sin segunda cabecera verde. */
.armies-content {
  padding-top: 38px;
}

.army-lists-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 20px;
}

.army-lists-heading h2 {
  margin: 0;
  font: 700 clamp(1.8rem, 3vw, 2.5rem)/1 Georgia, "Times New Roman", serif;
}

.army-lists-heading > div:first-child > p:last-child {
  max-width: 620px;
  margin: 7px 0 0;
  color: var(--muted);
  font-size: .75rem;
  line-height: 1.5;
}

.army-list-controls {
  flex: none;
  display: flex;
  align-items: end;
  gap: 10px;
}

.army-list-controls label {
  display: grid;
  gap: 5px;
}

.army-list-controls label > span {
  color: var(--muted);
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.army-list-controls select {
  min-width: 220px;
  min-height: 40px;
  padding: 8px 34px 8px 10px;
  border: 1px solid rgba(31,39,37,.13);
  border-radius: 9px;
  color: var(--ink);
  background: rgba(251,248,240,.96);
  font: inherit;
  font-size: .78rem;
}

.army-list-controls .army-source-chip {
  margin: 0 0 2px;
  color: #6a4a18;
  border-color: rgba(159,120,64,.22);
  background: rgba(159,120,64,.07);
}

/* La primera tarjeta de la lista ya no repite al jugador. */
.army-list-identity-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.army-list-identity-card h3 {
  margin: 0;
  font: 700 1.55rem Georgia, "Times New Roman", serif;
}

.army-list-identity-card p:not(.eyebrow) {
  max-width: 580px;
  margin: 5px 0 0;
  color: var(--muted);
  font-size: .73rem;
}

.army-list-round-chip {
  flex: none;
  padding: 7px 10px;
  border-radius: 999px;
  color: #6a4a18;
  background: rgba(159,120,64,.11);
  font-size: .65rem;
  font-weight: 850;
  text-transform: uppercase;
}

/* Neutralizamos estilos de la antigua segunda banda por si quedan selectores heredados. */
.army-list-selector-band,
.army-list-selector-inner {
  display: none !important;
}

@media (max-width: 760px) {
  .army-player-summary-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .army-player-summary-stats {
    width: 100%;
  }

  .army-player-summary-stats > div {
    border-left: 0;
    border-top: 1px solid rgba(31,39,37,.08);
    padding-left: 0;
  }

  .army-lists-heading {
    align-items: stretch;
    flex-direction: column;
    gap: 16px;
  }

  .army-list-controls {
    align-items: stretch;
    justify-content: space-between;
  }

  .army-list-controls label {
    flex: 1;
  }

  .army-list-controls select {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 520px) {
  .army-player-summary-section {
    padding-top: 20px;
  }

  .army-player-summary-card {
    padding: 18px;
  }

  .army-player-summary-stats {
    grid-template-columns: 1fr 1fr;
  }

  .army-list-controls {
    align-items: flex-start;
    flex-direction: column;
  }

  .army-list-identity-card {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* ==========================================================
   EJÉRCITOS · LIMPIEZA + SELECTOR VISUAL DE LISTAS · V21
   ========================================================== */

/* Cabecera de Medallas más directa al desaparecer el eyebrow. */
.medals-archive > summary {
  min-height: 78px;
}

/* Las categorías ya no llevan descripción secundaria. */
.medal-category-heading {
  align-items: center;
}

.medal-category-heading p {
  display: none !important;
}

/* Cabecera de listas sin eyebrow ni controles laterales. */
.army-lists-heading {
  align-items: flex-start;
  margin-bottom: 16px;
}

.army-lists-heading > div:first-child > p:last-child {
  margin-top: 7px;
}

/* Selector visual de etapas */
.army-list-stage-selector {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 22px;
}

.army-list-stage {
  position: relative;
  min-height: 88px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0;
  padding: 12px 8px;
  border: 1px solid rgba(31,39,37,.11);
  border-radius: 12px;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255,255,255,.58), rgba(251,248,240,.82));
  font: inherit;
  cursor: pointer;
  transition: transform .14s ease, border-color .14s ease, background .14s ease, box-shadow .14s ease;
}

.army-list-stage:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(159,120,64,.35);
  box-shadow: 0 7px 18px rgba(35,36,31,.055);
}

.army-list-stage strong {
  color: var(--green);
  font: 700 1.45rem/1 Georgia, "Times New Roman", serif;
}

.army-list-stage > span {
  margin-top: 1px;
  color: var(--bronze);
  font-size: .54rem;
  font-weight: 900;
  letter-spacing: .08em;
}

.army-list-stage small {
  margin-top: 7px;
  color: var(--muted);
  font-size: .64rem;
  font-weight: 750;
}

.army-list-stage em {
  position: absolute;
  right: 6px;
  top: 6px;
  padding: 3px 5px;
  border-radius: 999px;
  color: var(--muted);
  background: rgba(31,39,37,.055);
  font-size: .48rem;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}

.army-list-stage.active {
  border-color: rgba(159,120,64,.48);
  background:
    radial-gradient(circle at top right, rgba(198,166,110,.15), transparent 70%),
    rgba(23,59,57,.075);
  box-shadow:
    inset 0 0 0 1px rgba(159,120,64,.14),
    0 8px 22px rgba(35,36,31,.055);
}

.army-list-stage.active strong {
  color: #6a4a18;
}

.army-list-stage.active::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: -1px;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: var(--bronze);
}

.army-list-stage.unavailable {
  opacity: .42;
  cursor: not-allowed;
  filter: grayscale(.2);
}

/* Ya no existe badge de procedencia visible. */
.army-source-chip {
  display: none !important;
}

/* El tamaño ya forma parte del nombre: ocultamos el antiguo texto auxiliar. */
.army-unit-strength {
  display: none !important;
}

@media (max-width: 760px) {
  .army-list-stage-selector {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .army-list-stage-selector {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .army-list-stage {
    min-height: 78px;
  }
}


/* ==========================================================
   IDENTIDAD VISUAL DE FACCIONES · V23
   ========================================================== */

.faction-badge {
  display: inline-grid;
  place-items: center;
  flex: none;
  overflow: hidden;
  border: 1px solid rgba(31,39,37,.12);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(31,39,37,.06);
  vertical-align: middle;
}

.faction-badge img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.faction-badge--xs {
  width: 22px;
  height: 22px;
  border-radius: 5px;
}

.faction-badge--sm {
  width: 30px;
  height: 30px;
}

.faction-badge--md {
  width: 42px;
  height: 42px;
  border-radius: 9px;
}

.faction-badge--lg {
  width: 52px;
  height: 52px;
  border-radius: 10px;
}

.faction-badge--fallback {
  color: var(--green);
  font: 800 .72rem Georgia, serif;
  background: rgba(251,248,240,.96);
}

.player-icon-name,
.player-identity,
.table-player-identity,
.home-match-identity,
.award-match-player,
.admin-match-player,
.admin-stored-player {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.player-icon-name > strong,
.player-icon-name > span:last-child {
  min-width: 0;
}

.player-identity-copy {
  display: grid;
  min-width: 0;
}

.player-identity-copy small {
  color: var(--muted);
  font-size: .68rem;
}

.table-player-identity > div {
  display: grid;
  min-width: 0;
}

.table-player-identity strong,
.table-player-identity small {
  display: block;
}

.home-match-identity {
  gap: 6px;
}

.home-match-player.right .home-match-identity {
  flex-direction: row-reverse;
}

.award-winner {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.award-match-player {
  gap: 5px;
}

.award-match-player:last-of-type {
  justify-content: flex-end;
}

.combatant .faction-badge {
  margin-bottom: 6px;
}

.admin-match-player {
  text-align: left;
}

.admin-match-player.right {
  justify-content: flex-end;
  text-align: right;
}

.admin-match-player > span,
.admin-stored-player > span {
  display: grid;
  min-width: 0;
}

.admin-stored-player {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}

.admin-player-id {
  gap: 8px;
}

.preview-result-outcome .player-icon-name {
  margin-inline: 4px;
}

#scoreAName .player-icon-name,
#scoreBName .player-icon-name,
#generalKilledAText .player-icon-name,
#generalKilledBText .player-icon-name,
#bannersAName .player-icon-name,
#bannersBName .player-icon-name,
#objectivesAName .player-icon-name,
#objectivesBName .player-icon-name {
  gap: 5px;
}

.army-selected-player-emblem {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.army-selected-player-emblem .faction-badge {
  width: 54px;
  height: 54px;
}

@media (max-width: 560px) {
  .faction-badge--sm {
    width: 27px;
    height: 27px;
  }

  .faction-badge--md {
    width: 36px;
    height: 36px;
  }

  .home-match-identity {
    gap: 4px;
  }
}


/* ==========================================================
   ADMIN · DATOS ESPECÍFICOS DE RONDAS III–V · V25
   ========================================================== */

.admin-special-data-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.admin-round-specific + .admin-round-specific {
  margin-top: 10px;
}

#supplyTrainFields {
  border-color: rgba(128,95,70,.20);
  background: rgba(128,95,70,.045);
}

#dominationFields {
  border-color: rgba(45,111,115,.18);
  background: rgba(45,111,115,.04);
}

#specialElementFields {
  border-color: rgba(110,131,165,.20);
  background: rgba(110,131,165,.045);
}

#dominationAInput,
#dominationBInput {
  font-weight: 800;
}

@media (max-width: 760px) {
  .admin-special-data-grid {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================
   ADMIN · CONTROLES SÍ/NO SIN SOLAPAMIENTOS · V27
   ========================================================== */

/*
  Los controles de Generales, Tren de suministros y Elemento especial
  pasan a una disposición vertical:
  texto descriptivo arriba + selector a ancho completo debajo.
  Esto evita que los nombres largos de jugador o condición invadan
  el desplegable en tarjetas estrechas.
*/
.admin-general-select {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 6px !important;
  min-width: 0;
  padding: 7px 0 !important;
}

.admin-general-select + .admin-general-select {
  border-top: 1px solid rgba(31,39,37,.055);
}

.admin-general-select > span {
  display: block;
  min-width: 0;
  max-width: 100%;
  color: var(--muted);
  font-size: .67rem;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.admin-general-select > span .player-icon-name {
  display: inline-flex;
  max-width: 100%;
  vertical-align: middle;
}

.admin-general-select select {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 7px 32px 7px 9px;
  box-sizing: border-box;
  font-size: .68rem;
}

/* Los dos subbloques del tren mantienen dos columnas en escritorio,
   pero cada uno tiene suficiente espacio y nunca deja desbordar contenido. */
.admin-special-data-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: start;
}

.admin-special-data-grid > * {
  min-width: 0;
}

.admin-detail-group {
  min-width: 0;
  overflow: hidden;
}

/* En Elemento especial no necesitamos que el grupo interno fuerce alturas
   ni anchos distintos entre ambos jugadores. */
#specialElementFields .admin-detail-group {
  height: 100%;
}

/* En pantallas medianas pasamos antes a una columna para mantener
   una lectura limpia en la consola. */
@media (max-width: 980px) {
  .admin-special-data-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Móvil: un poco más de espacio táctil. */
@media (max-width: 560px) {
  .admin-general-select {
    gap: 7px !important;
    padding: 9px 0 !important;
  }

  .admin-general-select select {
    min-height: 42px;
    font-size: .72rem;
  }
}


/* ==========================================================
   LINKS · V28
   ========================================================== */

.links-page {
  background: #f3efe5;
}

.links-hero {
  position: relative;
  overflow: hidden;
  min-height: var(--section-hero-min-height);
  display: grid;
  align-items: center;
  color: white;
  background: linear-gradient(120deg, #102f2d 0%, #183d39 60%, #264942 100%);
}

.links-hero-inner {
  position: relative;
  z-index: 1;
}

.links-hero h1 {
  margin: 0;
  font: 700 clamp(2.65rem, 5.4vw, 4.65rem)/.96 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
}

.links-content {
  display: grid;
  gap: 46px;
  padding-top: 42px;
  padding-bottom: 86px;
}

.links-group {
  display: grid;
  gap: 15px;
}

.links-group-heading {
  display: flex;
  align-items: center;
  gap: 12px;
}

.links-group-heading h2 {
  margin: 0;
  font: 700 1.45rem Georgia, "Times New Roman", serif;
}

.links-group-index {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: none;
  border: 1px solid rgba(159,120,64,.22);
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.07);
  font-size: .64rem;
  font-weight: 900;
}

.links-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.links-grid-single {
  grid-template-columns: minmax(0, 1fr);
}

.resource-link-card {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 13px;
  color: inherit;
  background:
    radial-gradient(circle at top right, rgba(159,120,64,.07), transparent 15rem),
    rgba(251,248,240,.84);
  box-shadow: 0 8px 24px rgba(35,36,31,.035);
  text-decoration: none;
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}

.resource-link-card:hover {
  transform: translateY(-2px);
  border-color: rgba(159,120,64,.34);
  box-shadow: 0 12px 28px rgba(35,36,31,.065);
}

.resource-link-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: none;
  border: 1px solid rgba(159,120,64,.22);
  border-radius: 11px;
  color: #6a4a18;
  background: rgba(159,120,64,.09);
  font: 700 1.15rem Georgia, serif;
}

.resource-link-copy {
  display: grid;
  min-width: 0;
}

.resource-link-copy small {
  color: var(--bronze);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.resource-link-copy strong {
  margin-top: 2px;
  font: 700 1.02rem Georgia, "Times New Roman", serif;
}

.resource-link-copy > span {
  margin-top: 4px;
  color: var(--muted);
  font-size: .7rem;
  line-height: 1.45;
}

.resource-link-action {
  flex: none;
  padding: 7px 9px;
  border-radius: 999px;
  color: var(--green);
  background: rgba(23,59,57,.07);
  font-size: .62rem;
  font-weight: 900;
}

@media (max-width: 760px) {
  .links-hero {
    min-height: 0;
  }

  .links-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .links-content {
    gap: 34px;
    padding-top: 30px;
  }

  .resource-link-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .resource-link-action {
    grid-column: 2;
    justify-self: start;
  }
}


/* ==========================================================
   JUGADORES · FICHA COMPLETA · V29
   ========================================================== */

.players-page {
  background: #f3efe5;
}

.players-hero .section-hero-description {
  max-width: 620px;
}

.player-profile-section {
  padding-top: 30px;
}

.player-major-section {
  padding-top: 34px;
}

.player-section-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
}

.player-section-heading > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: none;
  border: 1px solid rgba(159,120,64,.23);
  border-radius: 50%;
  color: var(--bronze);
  background: rgba(159,120,64,.07);
  font-size: .64rem;
  font-weight: 900;
}

.player-section-heading h2 {
  margin: 0;
  font: 700 1.48rem Georgia, "Times New Roman", serif;
}

.player-section-heading p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: .69rem;
}

.player-profile-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 138px;
  padding: 22px 26px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background:
    radial-gradient(circle at right center, rgba(159,120,64,.10), transparent 24rem),
    rgba(251,248,240,.88);
  box-shadow: 0 10px 28px rgba(35,36,31,.04);
}

.player-profile-identity {
  display: flex;
  align-items: center;
  gap: 17px;
}

.player-profile-identity .army-selected-player-emblem {
  width: 58px;
  height: 58px;
}

.player-profile-identity small,
.player-current-position small,
.player-stat-card > small,
.player-highlight-label small {
  color: var(--muted);
  font-size: .59rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.player-profile-identity h2 {
  margin: 1px 0 0;
  font: 700 2rem Georgia, "Times New Roman", serif;
}

.player-profile-identity p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: .77rem;
}

.player-current-position {
  min-width: 170px;
  display: grid;
  justify-items: end;
  padding-left: 24px;
  border-left: 1px solid rgba(31,39,37,.09);
}

.player-current-position strong {
  margin-top: 1px;
  color: var(--green);
  font: 700 2.2rem Georgia, "Times New Roman", serif;
}

.player-current-position span {
  margin-top: 2px;
  color: var(--muted);
  font-size: .64rem;
}

.player-stats-grid {
  display: grid;
  grid-template-columns: 2fr repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.player-stat-card {
  min-width: 0;
  display: grid;
  align-content: center;
  min-height: 112px;
  padding: 15px;
  border: 1px solid rgba(31,39,37,.09);
  border-radius: 11px;
  background: rgba(251,248,240,.74);
}

.player-stat-card > strong {
  margin-top: 3px;
  color: var(--green);
  font: 700 1.55rem Georgia, serif;
}

.player-stat-card > span {
  margin-top: 3px;
  color: var(--muted);
  font-size: .59rem;
  line-height: 1.35;
}

.player-stat-card--record {
  align-content: stretch;
  padding: 14px 16px;
}

.player-stat-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.player-stat-heading > div {
  display: grid;
}

.player-stat-heading small {
  color: var(--muted);
  font-size: .59rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.player-stat-heading strong {
  margin-top: 4px;
  font: 700 .86rem Georgia, serif;
}

.player-stat-heading > b {
  color: var(--green);
  font: 700 1.45rem Georgia, serif;
}

.player-win-track {
  height: 8px;
  overflow: hidden;
  margin-top: 14px;
  border-radius: 999px;
  background: rgba(31,39,37,.075);
}

.player-win-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #183d39, #9f7840);
}

.player-stat-foot {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  color: var(--muted);
  font-size: .57rem;
}

.player-highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.player-highlight-card,
.player-rival-card {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(31,39,37,.09);
  border-radius: 12px;
  background: rgba(251,248,240,.80);
}

.player-highlight-card.victory {
  border-top: 3px solid rgba(44,105,75,.45);
}

.player-highlight-card.defeat {
  border-top: 3px solid rgba(141,61,52,.42);
}

.player-highlight-label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 12px;
}

.player-highlight-label > span {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 7px;
  color: var(--bronze);
  background: rgba(159,120,64,.08);
  font-size: .72rem;
}

.player-highlight-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 18px;
}

.player-highlight-opponent {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.player-highlight-opponent > div {
  display: grid;
  min-width: 0;
}

.player-highlight-opponent strong {
  font: 700 .86rem Georgia, serif;
}

.player-highlight-opponent small {
  color: var(--muted);
  font-size: .59rem;
}

.player-highlight-opponent > b {
  margin-left: auto;
  color: var(--green);
  font: 700 1.15rem Georgia, serif;
}

.player-highlight-score {
  color: var(--green);
  font: 700 1.35rem Georgia, serif;
}

.player-highlight-meta {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.player-highlight-meta span,
.player-highlight-meta b {
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(31,39,37,.055);
  color: var(--muted);
  font-size: .55rem;
  font-weight: 750;
}

.player-highlight-meta b {
  color: #6a4a18;
  background: rgba(159,120,64,.09);
}

.player-no-stat {
  margin: 0;
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.5;
}

.player-rival-content {
  display: grid;
  gap: 13px;
}

.player-rival-record + .player-rival-record {
  padding-top: 12px;
  border-top: 1px solid rgba(31,39,37,.07);
}

.player-rival-games {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.player-rival-games > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 7px;
  border: 1px solid rgba(31,39,37,.07);
  border-radius: 8px;
  background: rgba(255,255,255,.38);
}

.player-rival-games small {
  color: var(--muted);
  font-size: .52rem;
}

.player-rival-games b {
  font-size: .61rem;
}

.player-rival-games em {
  color: var(--bronze);
  font-size: .51rem;
  font-style: normal;
  font-weight: 900;
}

.player-lists-archive {
  overflow: hidden;
}

.player-lists-body {
  padding: 20px;
  border-top: 1px solid rgba(31,39,37,.08);
}

.player-lists-body .army-lists-heading {
  margin: 0 0 15px;
}

.player-lists-body .army-lists-heading p {
  margin: 0;
}

.player-lists-body .army-list-stage-selector {
  margin-top: 0;
}

/* El contenedor de listas es el que aporta ahora el espacio exterior. */
.player-lists-section {
  padding-bottom: 78px;
}

/* Evitar doble encabezado demasiado dominante: los numeradores 02/03
   marcan las grandes secciones, los summaries actúan como controles. */
.player-major-section > .player-section-heading {
  margin-bottom: 12px;
}

@media (max-width: 1100px) {
  .player-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .player-stat-card--record {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .player-profile-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .player-current-position {
    width: 100%;
    justify-items: start;
    padding: 14px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(31,39,37,.09);
  }

  .player-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .player-stat-card--record {
    grid-column: 1 / -1;
  }

  .player-highlight-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 500px) {
  .player-stats-grid {
    grid-template-columns: 1fr 1fr;
  }

  .player-profile-card {
    padding: 18px;
  }

  .player-highlight-content {
    grid-template-columns: 1fr;
  }

  .player-highlight-score {
    margin-top: 2px;
  }

  .player-highlight-meta {
    grid-column: auto;
  }

  .player-lists-body {
    padding: 14px;
  }
}


/* ==========================================================
   PRODUCCIÓN ONLINE · V30
   ========================================================== */

.admin-mode-badge.online {
  color: #dbece5;
  border-color: rgba(195,224,209,.18);
  background: rgba(105,170,137,.14);
}

.admin-mode-badge.offline {
  color: #f0d2cd;
  border-color: rgba(196,100,85,.22);
  background: rgba(141,61,52,.18);
}

.admin-storage-card.offline .storage-dot {
  background: #8d3d34;
  box-shadow: 0 0 0 4px rgba(141,61,52,.12);
}

.admin-storage-card.offline strong {
  color: #8d3d34;
}
