:root {
  color-scheme: dark;
  --theme-canvas: #0d1110;
  --theme-surface: #151a18;
  --theme-surface-alt: #1b211e;
  --theme-surface-raised: #222925;
  --theme-border: #303934;
  --theme-border-strong: #465149;
  --theme-ink: #eee9dd;
  --theme-muted: #ada99e;
  --theme-faint: #85877e;
  --theme-accent: #d18454;
  --theme-accent-bright: #eeae7d;
  --theme-accent-deep: #a85b32;
  --theme-accent-soft: #3b2821;
  --theme-gold: #d7b46a;
  --theme-link: #8bc8db;
  --theme-link-hover: #b4e1ed;
  --theme-success: #78c493;
  --theme-success-soft: #1b3528;
  --theme-warning: #d8b35b;
  --theme-warning-soft: #3a321d;
  --theme-danger: #e18191;
  --theme-danger-soft: #3d2329;
  --theme-focus: #66c8e4;
}

html {
  background: var(--theme-canvas);
}

body {
  background:
    radial-gradient(circle at 12% -8%, rgba(209, 132, 84, .1), transparent 25rem),
    radial-gradient(circle at 92% 20%, rgba(74, 122, 112, .08), transparent 30rem),
    var(--theme-canvas);
  color: var(--theme-ink);
}

::selection {
  background: rgba(209, 132, 84, .38);
  color: #fffaf2;
}

a {
  color: var(--theme-link);
}

a:hover {
  color: var(--theme-link-hover);
}

h1,
h2,
h3,
.h1,
.h2,
.h3 {
  color: #f7f1e5;
  letter-spacing: -.018em;
}

hr {
  border-top-color: var(--theme-border);
}

.text-dark,
.text-body {
  color: var(--theme-ink) !important;
}

.text-muted,
.footer.text-muted,
caption {
  color: var(--theme-muted) !important;
}

.text-danger {
  color: var(--theme-danger) !important;
}

.border-top {
  border-top-color: var(--theme-border) !important;
}

.border-bottom {
  border-bottom-color: var(--theme-border) !important;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
}

.site-nav {
  background: rgba(13, 17, 16, .94);
  box-shadow: 0 .45rem 1.5rem rgba(0, 0, 0, .28);
  backdrop-filter: blur(14px);
  position: relative;
  z-index: auto;
}

/*
 * Header bars are a dark-theme invariant. Feature stylesheets are loaded
 * before this file and some of them also provide a light standalone theme.
 * Override only the color layer here so intentional gradients and artwork
 * remain intact while a white fallback can never bleed through.
 */
main header,
.card-header,
.modal-header,
[class$="-header"],
[class*="-header "],
[class$="__header"],
[class*="__header "],
[class$="-heading"],
[class*="-heading "],
[class$="__heading"],
[class*="__heading "],
[class$="-toolbar"],
[class*="-toolbar "],
[class$="__toolbar"],
[class*="__toolbar "],
[class$="-masthead"],
[class*="-masthead "],
[class$="__masthead"],
[class*="__masthead "],
thead th {
  background-color: var(--theme-surface) !important;
}

.site-nav .navbar-brand {
  align-items: center;
  color: #f3d39d !important;
  display: inline-flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.28rem;
  font-weight: 700;
  gap: .55rem;
  letter-spacing: -.025em;
  text-align: left;
  white-space: nowrap;
  word-break: normal;
}

.navbar-brand::before {
  background: linear-gradient(135deg, var(--theme-accent-bright), var(--theme-accent-deep));
  border: 1px solid rgba(255, 226, 188, .45);
  box-shadow: 0 0 1rem rgba(209, 132, 84, .26);
  content: "";
  height: .72rem;
  transform: rotate(45deg);
  width: .72rem;
}

.navbar-brand small {
  border-left: 1px solid rgba(243, 211, 157, .28);
  color: #aaa79e;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  padding-left: .55rem;
  text-transform: uppercase;
}

.site-nav .navbar-nav .nav-link {
  align-items: center;
  border-radius: .35rem;
  color: #c9c6bd !important;
  display: flex;
  min-height: 2.55rem;
  padding-left: .62rem;
  padding-right: .62rem;
}

.site-nav button.nav-link {
  border: 0;
  cursor: pointer;
  text-align: left;
}

.site-nav .navbar-nav .nav-link:hover,
.site-nav .navbar-nav .nav-link:focus {
  background: rgba(255, 255, 255, .045);
  color: #fff8ec !important;
  text-decoration: none;
}

.site-nav .navbar-nav .nav-link.is-active {
  background: rgba(225, 148, 86, .1);
  box-shadow: inset 0 -2px 0 var(--theme-accent-bright);
  color: var(--theme-accent-bright) !important;
  font-weight: 700;
}

.site-nav .dropdown-menu {
  background: #171c1a;
  border: 1px solid var(--theme-border-strong);
  box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .35);
}

.site-nav .dropdown-item {
  color: #d6d1c6;
}

.site-nav .dropdown-item:hover,
.site-nav .dropdown-item:focus {
  background: rgba(225, 148, 86, .13);
  color: #fff8ec;
}

.site-nav .dropdown-item.is-active {
  background: rgba(225, 148, 86, .1);
  color: var(--theme-accent-bright);
  font-weight: 700;
}

.site-nav .nav-link:focus-visible,
.site-nav .dropdown-item:focus-visible,
.navbar-toggler:focus-visible {
  outline: 2px solid var(--theme-accent-bright);
  outline-offset: 2px;
}

.site-account-toggle span {
  display: block;
  max-width: 10rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-account-logout {
  margin: 0;
}

.site-account-logout .dropdown-item {
  color: #d6d1c6;
  text-align: left;
  width: 100%;
}

.navbar-toggler {
  border-color: var(--theme-border-strong) !important;
}

main {
  min-height: calc(100vh - 10.5rem);
}

.footer {
  background: rgba(10, 13, 12, .78);
  border-color: var(--theme-border) !important;
}

.skip-link {
  background: var(--theme-accent);
  color: #17110e;
  font-weight: 700;
}

.btn {
  border-radius: .42rem;
}

.btn-primary,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background: var(--theme-accent);
  border-color: var(--theme-accent);
  color: #17110e;
  font-weight: 700;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active {
  background: var(--theme-accent-bright);
  border-color: var(--theme-accent-bright);
  color: #17110e;
}

.btn-outline-secondary {
  border-color: #667168;
  color: #d6d3ca;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  background: var(--theme-surface-raised);
  border-color: #88938b;
  color: #fff;
}

.btn-danger {
  background: #a84252;
  border-color: #b64a5b;
}

.form-control,
.custom-select,
input,
select,
textarea {
  background-color: #111614;
  border-color: var(--theme-border-strong);
  color: var(--theme-ink);
}

.form-control:focus,
.custom-select:focus,
input:focus,
select:focus,
textarea:focus {
  background-color: #151b18;
  border-color: var(--theme-focus);
  box-shadow: 0 0 0 .2rem rgba(102, 200, 228, .15);
  color: #fff;
}

.form-control:disabled,
.form-control[readonly],
input:disabled,
select:disabled,
textarea:disabled {
  background-color: #202622;
  color: var(--theme-faint);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: #777e77;
}

.form-check-input {
  accent-color: var(--theme-accent);
}

.table-responsive {
  border: 1px solid var(--theme-border);
  border-radius: .6rem;
  box-shadow: 0 .6rem 1.7rem rgba(0, 0, 0, .12);
}

.table {
  color: var(--theme-ink);
  margin-bottom: 0;
}

.table thead th {
  background: #1d2421;
  border-bottom-color: var(--theme-border-strong);
  border-top: 0;
  color: #c8c3b7;
  font-size: .78rem;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.table td,
.table th {
  border-top-color: var(--theme-border);
}

.table tbody tr:nth-child(even) {
  background: rgba(255, 255, 255, .018);
}

.table tbody tr:hover {
  background: rgba(209, 132, 84, .07);
}

.deck-profile-list {
  background: var(--theme-surface);
  border: 1px solid var(--theme-border);
  border-radius: .55rem;
  padding: 1rem 1.2rem;
}

.deck-history__chart {
  background: var(--theme-surface);
  border: 1px solid var(--theme-border);
  border-radius: .6rem;
  padding: .75rem;
}

/* Daily draft surfaces */
.daily-draft-shell {
  --daily-ink: var(--theme-ink);
  --daily-muted: var(--theme-muted);
  --daily-faint: var(--theme-faint);
  --daily-border: var(--theme-border);
  --daily-border-strong: var(--theme-border-strong);
  --daily-paper: var(--theme-surface);
  --daily-paper-alt: var(--theme-surface-alt);
  --daily-canvas: var(--theme-canvas);
  --daily-accent: var(--theme-accent);
  --daily-accent-dark: var(--theme-accent-bright);
  --daily-accent-soft: var(--theme-accent-soft);
  --daily-gold: var(--theme-gold);
  --daily-success: var(--theme-success);
  --daily-success-soft: var(--theme-success-soft);
  --daily-danger: var(--theme-danger);
  --daily-danger-soft: var(--theme-danger-soft);
  --daily-focus: var(--theme-focus);
  --daily-review-map-background: var(--theme-surface-raised);
}

.daily-primary-action {
  color: #17110e;
}

.daily-primary-action:hover:not(:disabled) {
  background: var(--theme-accent-bright);
  border-color: var(--theme-accent-bright);
  color: #17110e;
}

.daily-hero {
  background:
    radial-gradient(circle at 88% 12%, rgba(215, 180, 106, .16), transparent 30%),
    linear-gradient(125deg, #181e1b, #111513);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .25);
}

.daily-hero__lede {
  color: #c7c4ba;
}

.daily-hero__card,
.daily-archive-deck-placing {
  background: rgba(32, 39, 35, .9);
}

.daily-step-list li,
.daily-play-toolbar,
.daily-builder-toolbar,
.daily-pack-panel,
.daily-pick-panel,
.daily-pool-panel,
.daily-builder-pool,
.daily-main-deck,
.daily-builder-preview,
.draft-card,
.builder-pool-card,
.daily-deck-stats dl > div {
  background: var(--daily-paper);
}

.draft-card:hover,
.draft-card.is-selected,
.draft-card[aria-pressed="true"] {
  box-shadow: 0 0 0 2px var(--daily-accent-soft), 0 .55rem 1.2rem rgba(0, 0, 0, .38);
}

.daily-card-image-fallback,
.daily-key-card__visual,
.daily-key-card__fallback,
.daily-card-preview-tooltip__visual,
.daily-card-preview-tooltip__fallback,
.daily-archive-player-card__visual {
  background: #272e2a;
}

.daily-builder-filters select {
  background: #111614;
}

.builder-pool-card.is-in-deck {
  background: #16251c;
}

.daily-results-header,
.daily-history-header,
.daily-archive-hero,
.daily-archive-deck-hero {
  background:
    radial-gradient(circle at 82% 14%, rgba(215, 180, 106, .13), transparent 28%),
    linear-gradient(115deg, var(--daily-paper), #211d19);
}

.daily-field-hero {
  background: linear-gradient(125deg, var(--daily-paper), #18231f);
}

.daily-result-card--placement {
  background: linear-gradient(135deg, #262317, #33291b);
  border-color: #705d37;
}

.daily-matchup-recap__source--generated {
  background: #292a40;
  color: #c5c4ef;
}

.daily-card-reference:focus-visible {
  background: #523629;
}

.daily-archive-divergence {
  background: linear-gradient(135deg, #271f19, #171b19);
}

.draft-pool-group li,
.builder-pool-card__footer,
.daily-deck-row,
.daily-table td,
.daily-pod-decklist li,
.daily-archive-decklist li {
  border-color: var(--daily-border);
}

/* Full deck builder */
.revised-builder-page {
  --builder-ink: var(--theme-ink);
  --builder-muted: var(--theme-muted);
  --builder-faint: var(--theme-faint);
  --builder-border: var(--theme-border);
  --builder-border-strong: var(--theme-border-strong);
  --builder-surface: var(--theme-surface);
  --builder-surface-alt: var(--theme-surface-alt);
  --builder-surface-raised: var(--theme-surface-raised);
  --builder-accent: var(--theme-accent);
  --builder-accent-dark: var(--theme-accent-bright);
  --builder-accent-soft: var(--theme-accent-soft);
  --builder-focus: var(--theme-focus);
  --builder-success: var(--theme-success);
  --builder-success-soft: var(--theme-success-soft);
  --builder-warning: var(--theme-warning);
  --builder-warning-soft: var(--theme-warning-soft);
  --builder-danger: var(--theme-danger);
  --builder-danger-soft: var(--theme-danger-soft);
}

.field-group input,
.field-group select,
.toolbar-button,
.format-rules > summary,
.filter-chip,
.sort-direction-button,
.active-filter-chip,
.catalog-card,
.deck-card-row,
.quantity-button,
.deck-stack-card,
.preview-quantity-input {
  background: #171c1a;
}

.field-group input:disabled,
.field-group select:disabled {
  background: #252b27;
  color: var(--builder-faint);
}

.pane-heading {
  background: linear-gradient(180deg, #1c221f, #161b18);
}

.segmented-control,
.catalog-table__header,
.deck-group__heading {
  background: #202723;
  border-color: var(--builder-border);
}

.segment-button.is-active,
.segment-button[aria-selected="true"],
.mobile-builder-tab.is-active,
.mobile-builder-tab[aria-selected="true"],
.mobile-builder-tab[aria-pressed="true"] {
  background: #303730;
  color: var(--builder-accent-dark);
}

.catalog-card:nth-child(even),
.deck-card-row:nth-child(even),
.deck-builder.catalog-view-grid .catalog-card:nth-child(even) {
  background: #141917;
}

.catalog-card.is-selected,
.deck-card-row.is-selected {
  background: #30231d;
}

.catalog-card.is-in-deck:not(.is-selected) {
  background: #17231b;
}

.catalog-card__quantity,
.mobile-tab-count,
.mana-curve__bar,
.color-distribution {
  background: #29302c;
}

.catalog-card__image-button,
.preview-image-frame,
.preview-empty__card {
  background-color: #282e2a;
}

.builder-message--error {
  background: var(--builder-danger-soft);
  border-color: #75424c;
}

.catalog-card__mana,
.preview-text {
  color: #c8c5bc;
}

.legality-badge--legal {
  color: #a7dfb9;
}

.deck-card-row__badge {
  color: #efd17a;
}

.legality-badge--banned {
  color: #efa1ad;
}

.card-quantity-input:focus {
  background: #1b221f;
}

.save-deck-button,
.preview-add-button,
.card-action,
.save-deck-button:hover:not(:disabled),
.preview-add-button:hover:not(:disabled),
.card-action:hover:not(:disabled) {
  color: #17110e;
}

/* Admin */
.admin-header h1,
.admin-panel h2,
.admin-danger-zone h3,
.admin-facts dd,
.admin-run-stats strong {
  color: var(--theme-ink);
}

.admin-header > p:last-child,
.admin-facts dt,
.admin-run-stats span {
  color: var(--theme-muted);
}

.admin-eyebrow {
  color: var(--theme-gold);
}

.admin-panel {
  background: var(--theme-surface);
  border-color: var(--theme-border);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .22);
}

.admin-status {
  background: var(--theme-success-soft);
  color: var(--theme-success);
}

.admin-facts,
.admin-run-stats div {
  border-color: var(--theme-border);
}

.admin-danger-zone {
  background: #26191b;
  border-color: #583138;
}

.admin-danger-zone p {
  color: #c3a7aa;
}

@media (max-width: 1199.98px) {
  .site-nav .navbar-collapse {
    border-top: 1px solid var(--theme-border);
    margin-top: .65rem;
    max-height: calc(100vh - 4.75rem);
    overflow-y: auto;
    padding-top: .55rem;
  }

  .site-primary-nav {
    padding-bottom: .4rem;
  }

  .site-account-nav {
    border-top: 1px solid var(--theme-border);
    padding-top: .4rem;
  }

  .site-nav .navbar-nav .nav-link {
    justify-content: flex-start;
    min-height: 2.75rem;
    padding: .65rem .6rem;
  }

  .site-nav .dropdown-menu {
    margin: 0 0 .4rem;
  }

  .site-account-toggle span {
    max-width: calc(100vw - 5rem);
  }
}

@media (min-width: 1200px) {
  .site-account-nav {
    margin-left: .75rem;
  }
}
