:root {
  --mayor-ground: #4ade80;
  --mayor-mounted: #b77948;
  --mayor-ranged: #38bdf8;
  --mayor-siege: #94a3b8;
  --mayor-gold: #f6c65b;
}

.go-optimizer-type {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: 0 0 1.25rem;
  padding: 0;
  border: 0;
}
.go-optimizer-type legend { margin-bottom: .65rem; font-weight: 800; letter-spacing: .02em; }
.go-optimizer-type label,
.go-choice-card {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  min-height: 52px;
  padding: .85rem 1rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  cursor: pointer;
}
.go-optimizer-type label:has(input:checked),
.go-choice-card:has(input:checked) {
  border-color: var(--mayor-gold);
  box-shadow: inset 0 0 0 1px rgba(246,198,91,.28);
}
.go-optimizer-type input,
.go-choice-card input { margin-top: .2rem; accent-color: var(--mayor-gold); }
.go-optimizer-type span,
.go-choice-card span { display: grid; gap: .18rem; }
.go-choice-card small { color: var(--go-muted, #aeb5c2); line-height: 1.35; }

.go-mayor-controls {
  position: relative;
  overflow: hidden;
  margin: 0 0 1.25rem;
  padding: clamp(1rem, 2.8vw, 1.6rem);
  border: 1px solid rgba(246,198,91,.28);
  border-radius: 18px;
  background:
    radial-gradient(circle at 95% 0, rgba(56,189,248,.12), transparent 32%),
    linear-gradient(145deg, rgba(246,198,91,.08), rgba(11,18,30,.48));
}
.go-mayor-heading,
.go-mayor-method-heading,
.go-mayor-result-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}
.go-mayor-heading h2,
.go-mayor-result-heading h2,
.go-mayor-method-heading h3 { margin: .1rem 0 .35rem; }
.go-mayor-count,
.go-certified-badge {
  flex: none;
  padding: .4rem .7rem;
  border-radius: 999px;
  color: #101827;
  background: var(--mayor-gold);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.go-mayor-pool {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0;
  padding: 0;
  border: 0;
}
.go-mayor-pool legend { margin-bottom: .55rem; font-weight: 800; }
.go-mayor-craft-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.go-mayor-priorities { display: grid; gap: .65rem; margin: 1rem 0; }
.go-mayor-priority {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: center;
  padding: .65rem;
  border-left: 4px solid var(--troop-color);
  border-radius: 10px;
  background: rgba(0,0,0,.18);
}
.go-mayor-priority.troop-ground { --troop-color: var(--mayor-ground); }
.go-mayor-priority.troop-mounted { --troop-color: var(--mayor-mounted); }
.go-mayor-priority.troop-ranged { --troop-color: var(--mayor-ranged); }
.go-mayor-priority.troop-siege { --troop-color: var(--mayor-siege); }
.go-mayor-priority-number {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: #071019;
  background: var(--troop-color);
  font-weight: 900;
}
.go-mayor-priority-actions { display: flex; gap: .35rem; }
.go-mayor-add,
.go-mayor-another,
.go-equipped-action button { min-height: 44px; min-width: 44px; }
.go-mayor-errors {
  margin: .8rem 0;
  padding: .75rem .9rem;
  border-left: 4px solid #fb7185;
  border-radius: 8px;
  background: rgba(190,24,93,.15);
}

.go-mayor-result { min-width: 0; }
.go-mayor-comparison,
.go-mayor-gear-table { width: 100%; border-collapse: collapse; }
.go-mayor-comparison th,
.go-mayor-comparison td { padding: .75rem; border-bottom: 1px solid rgba(255,255,255,.12); text-align: right; }
.go-mayor-comparison th:first-child { text-align: left; }
.go-mayor-comparison td.is-better { color: var(--mayor-gold); font-weight: 900; background: rgba(246,198,91,.08); }
.go-mayor-identical {
  margin: 1rem 0;
  padding: .85rem 1rem;
  border: 1px solid rgba(74,222,128,.35);
  border-radius: 12px;
  background: rgba(74,222,128,.09);
  font-weight: 800;
}
.go-mayor-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.go-mayor-method {
  min-width: 0;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  background: linear-gradient(160deg, rgba(255,255,255,.06), rgba(0,0,0,.12));
}
.go-mayor-total { color: var(--mayor-gold); white-space: nowrap; }
.go-mayor-selected-list { display: grid; gap: .35rem; margin: .9rem 0; }
.go-mayor-selected-list div,
.go-mayor-all-grid div { display: flex; justify-content: space-between; gap: .8rem; }
.go-mayor-selected-list dt,
.go-mayor-selected-list dd { margin: 0; }
.go-mayor-set-bonuses { margin: 1rem 0; }
.go-mayor-set-bonus { display: grid; gap: .25rem; padding: .65rem 0; border-top: 1px solid rgba(255,255,255,.1); }
.go-mayor-all-debuffs > summary { min-height: 44px; align-items: center; }
.go-mayor-all-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; }
.go-mayor-another { margin-top: 1.2rem; }

@media (max-width: 760px) {
  .go-optimizer-type,
  .go-mayor-pool,
  .go-mayor-craft-grid,
  .go-mayor-method-grid { grid-template-columns: 1fr; }
  .go-mayor-heading,
  .go-mayor-method-heading,
  .go-mayor-result-heading { align-items: stretch; flex-direction: column; }
  .go-mayor-count,
  .go-certified-badge { align-self: flex-start; }
  .go-mayor-priority { grid-template-columns: 2.2rem minmax(0, 1fr); }
  .go-mayor-priority-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); }
  .go-mayor-priority-actions .go-icon-button { width: 100%; }
  .go-mayor-all-grid { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .go-mayor-controls,
  .go-mayor-method { padding: .8rem; border-radius: 12px; }
  .go-mayor-priority { padding: .55rem; }
  .go-mayor-comparison th,
  .go-mayor-comparison td { padding: .6rem .45rem; font-size: .82rem; }
}
