/*
 * Poke.Cheap UI Kit
 * Sistema visual compartilhado para dashboards e páginas de análise.
 * Referência: azul noturno, ouro antigo, ciano e azul-claro.
 */

:root {
  --ui-bg-deep: #030a16;
  --ui-bg: #080e16;
  --ui-surface-1: #0f1a26;
  --ui-surface-2: #142233;
  --ui-surface-3: #1b2940;
  --ui-surface-raised: #22324a;

  --ui-gold-100: #f0dfb6;
  --ui-gold-300: #d6bd82;
  --ui-gold-500: #c9a86a;
  --ui-gold-700: #8d713d;
  --ui-gold-soft: rgba(201, 168, 106, .12);

  --ui-cyan-200: #b8ecff;
  --ui-cyan-300: #79d9ff;
  --ui-cyan-500: #35bdf2;
  --ui-cyan-700: #227cad;
  --ui-cyan-soft: rgba(53, 189, 242, .12);

  /* Aliases mantidos para compatibilidade. */
  /* Aliases legados: preservam componentes existentes enquanto a nomenclatura migra para ciano. */
  --ui-azure-300: var(--ui-cyan-300);
  --ui-azure-500: var(--ui-cyan-500);
  --ui-azure-700: var(--ui-cyan-700);
  --ui-azure-soft: var(--ui-cyan-soft);

  --ui-text: #f4efe4;
  --ui-text-soft: #cdd6e0;
  --ui-text-muted: #9fb0c2;
  --ui-text-faint: #697b8e;
  --ui-success: #52d6a2;
  --ui-warning: #efb75e;
  --ui-danger: #ef6b64;
  --ui-info: #66b8ff;

  --ui-line: rgba(159, 176, 194, .15);
  --ui-line-strong: rgba(201, 168, 106, .38);
  --ui-focus: var(--ui-cyan-300);

  --ui-font-display: 'Cinzel', Georgia, serif;
  --ui-font-body: 'Barlow', system-ui, sans-serif;
  --ui-font-mono: 'JetBrains Mono', Consolas, monospace;

  --ui-text-xs: 11px;
  --ui-text-sm: 13px;
  --ui-text-md: 15px;
  --ui-text-lg: 18px;
  --ui-text-xl: clamp(24px, 3vw, 34px);
  --ui-text-2xl: clamp(30px, 4vw, 44px);

  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 24px;
  --ui-space-6: 32px;
  --ui-space-7: 48px;
  --ui-space-8: 64px;

  --ui-radius-xs: 4px;
  --ui-radius-sm: 7px;
  --ui-radius-md: 11px;
  --ui-radius-lg: 16px;
  --ui-radius-pill: 999px;

  --ui-shadow-sm: 0 8px 24px rgba(0, 0, 0, .18);
  --ui-shadow-lg: 0 24px 70px rgba(0, 0, 0, .4);
  --ui-glow-azure: 0 0 24px rgba(53, 189, 242, .16);
  --ui-glow-gold: 0 0 24px rgba(201, 168, 106, .12);

  /* Aliases para os componentes legados durante a migração. */
  --bg: var(--ui-bg);
  --panel: var(--ui-surface-1);
  --panel-2: var(--ui-surface-2);
  --border: var(--ui-line);
  --text: var(--ui-text);
  --text-dim: var(--ui-text-muted);
  --accent: var(--ui-azure-500);
  --accent-dim: var(--ui-azure-700);
  --amber: var(--ui-gold-500);
  --coral: var(--ui-danger);
  --blue: var(--ui-info);
}

* { box-sizing: border-box; }

body {
  background:
    linear-gradient(rgba(5,8,13,.88), rgba(5,8,13,.96)),
    var(--ui-page-background-image, none) center top / cover fixed no-repeat,
    radial-gradient(circle at 50% -280px, rgba(27, 71, 94, .38), transparent 560px),
    linear-gradient(180deg, var(--ui-bg-deep), var(--ui-bg));
  color: var(--ui-text);
  font-family: var(--ui-font-body);
}

.mono { font-family: var(--ui-font-mono); }

/* Tipografia */
.ui-kicker,
.eyebrow {
  color: var(--ui-azure-300);
  font: 700 var(--ui-text-xs) var(--ui-font-display);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ui-title {
  margin: 0;
  color: var(--ui-gold-100);
  font-family: var(--ui-font-display);
  font-size: var(--ui-text-xl);
  line-height: 1.12;
  letter-spacing: .01em;
  text-shadow: 0 2px 18px rgba(201, 168, 106, .12);
}

.ui-section-title {
  margin: 0;
  color: var(--ui-gold-300);
  font: 700 var(--ui-text-lg) var(--ui-font-display);
  letter-spacing: .04em;
}

.ui-muted { color: var(--ui-text-muted); }

/* Foco compartilhado */
.ui-btn:focus-visible,
.ui-input:focus-visible,
.ui-select:focus-visible,
.ui-icon-btn:focus-visible,
.ui-chip:focus-visible,
.ui-modal-close:focus-visible,
body.market-home button:focus-visible,
body.market-home input:focus-visible,
body.market-home select:focus-visible,
body.market-home [tabindex="0"]:focus-visible,
body:not(.market-home) .tab:focus-visible,
body:not(.market-home) a:focus-visible {
  outline: 2px solid var(--ui-focus);
  outline-offset: 3px;
}

/* Botões */
.ui-btn {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-2);
  padding: 0 var(--ui-space-4);
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm);
  font: 700 var(--ui-text-sm) var(--ui-font-display);
  letter-spacing: .045em;
  text-decoration: none;
  cursor: pointer;
  transition: color .16s ease, background .16s ease, border-color .16s ease,
    transform .16s ease, box-shadow .16s ease;
}

.ui-btn:hover:not(:disabled) { transform: translateY(-1px); }
.ui-btn:active:not(:disabled) { transform: translateY(0); }
.ui-btn:disabled { opacity: .42; cursor: not-allowed; }

.ui-btn-primary {
  border-color: var(--ui-gold-500);
  background: linear-gradient(180deg, #d6bd82, #a98242);
  color: #120f09;
  box-shadow: inset 0 1px rgba(255,255,255,.28), var(--ui-glow-gold);
}
.ui-btn-primary:hover:not(:disabled) { background: linear-gradient(180deg, #ead49f, #b9914d); }

.ui-btn-secondary {
  border-color: var(--ui-line-strong);
  background: linear-gradient(180deg, var(--ui-surface-3), var(--ui-surface-1));
  color: var(--ui-gold-300);
}
.ui-btn-secondary:hover:not(:disabled) {
  border-color: var(--ui-gold-500);
  background: var(--ui-surface-3);
  box-shadow: var(--ui-glow-gold);
}

.ui-btn-ghost {
  border-color: transparent;
  background: transparent;
  color: var(--ui-text-soft);
}
.ui-btn-ghost:hover:not(:disabled) { border-color: var(--ui-line); background: var(--ui-surface-2); }

.ui-btn-danger {
  border-color: rgba(239,107,100,.48);
  background: rgba(239,107,100,.12);
  color: #ffaaa5;
}
.ui-btn-danger:hover:not(:disabled) { border-color: var(--ui-danger); background: rgba(239,107,100,.2); }

.ui-btn-sm { min-height: 34px; padding-inline: var(--ui-space-3); font-size: var(--ui-text-xs); }

.ui-icon-btn {
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--ui-line);
  border-radius: 50%;
  background: var(--ui-surface-2);
  color: var(--ui-text-muted);
  cursor: pointer;
}
.ui-icon-btn:hover { border-color: var(--ui-azure-700); color: var(--ui-azure-300); }

/* Painéis e cards */
.ui-panel,
.filter-panel,
.results-shell,
.chart-panel,
.pokemon-detail-panel,
.summary-card,
.popover {
  border: 1px solid var(--ui-line);
  background:
    linear-gradient(145deg, rgba(255,255,255,.018), transparent 40%),
    var(--ui-surface-1);
  box-shadow: inset 0 1px rgba(255,255,255,.025);
}

.ui-panel,
.filter-panel,
.results-shell,
.chart-panel,
.pokemon-detail-panel { border-radius: var(--ui-radius-lg); }

.ui-panel {
  position: relative;
  padding: var(--ui-space-5);
}

.ui-panel-ornate::before,
.results-shell::before {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
  border: 1px solid var(--ui-gold-500);
  background: var(--ui-bg);
  transform: rotate(45deg);
  box-shadow: 0 0 10px rgba(53,189,242,.25);
}
.ui-panel-ornate::before { top: -5px; left: 28px; }

.ui-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--ui-space-4);
}

.ui-card {
  min-width: 0;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-2);
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.ui-card:hover { border-color: var(--ui-line-strong); background: var(--ui-surface-3); }

.ui-card-pokemon,
.item-card {
  position: relative;
  overflow: hidden;
}
.ui-card-pokemon::after,
.item-card::after {
  content: '';
  position: absolute;
  width: 90px;
  height: 90px;
  right: -38px;
  bottom: -44px;
  border: 1px solid rgba(53,189,242,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 12px rgba(53,189,242,.025);
}

.ui-card-offer { border-left: 3px solid var(--ui-gold-500); }
.ui-card-stat strong,
.summary-card strong {
  display: block;
  color: var(--ui-gold-100);
  font: 500 20px var(--ui-font-mono);
}
.ui-card-stat span,
.summary-card span { color: var(--ui-text-muted); font-size: var(--ui-text-xs); }

/* Formulários */
.ui-field { display: grid; gap: var(--ui-space-2); }
.ui-label {
  color: var(--ui-gold-300);
  font: 600 var(--ui-text-xs) var(--ui-font-display);
  letter-spacing: .075em;
  text-transform: uppercase;
}
.ui-help { color: var(--ui-text-faint); font-size: var(--ui-text-xs); }

.ui-input,
.ui-select,
input[type="search"],
.range-input,
.type-select {
  width: 100%;
  min-height: 42px;
  padding: 0 var(--ui-space-3);
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-bg-deep);
  color: var(--ui-text);
  font: 400 var(--ui-text-sm) var(--ui-font-body);
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.ui-input:hover,
.ui-select:hover,
input[type="search"]:hover,
.range-input:hover,
.type-select:hover { border-color: var(--ui-line-strong); }
.ui-input:focus,
.ui-select:focus,
input[type="search"]:focus,
.range-input:focus,
.type-select:focus {
  border-color: var(--ui-azure-700);
  box-shadow: 0 0 0 3px var(--ui-azure-soft);
}
.ui-input::placeholder,
input::placeholder { color: var(--ui-text-faint); }
.ui-input:disabled,
.ui-select:disabled { opacity: .5; cursor: not-allowed; }

.ui-check {
  accent-color: var(--ui-azure-500);
  width: 16px;
  height: 16px;
}

/* Badges, tags e indicadores */
.ui-badge,
.badge,
.offer-tag,
.ui-tag,
.ui-trend,
.ui-price-indicator {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-1);
  width: fit-content;
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-pill);
  padding: 3px 8px;
  font-size: var(--ui-text-xs);
  font-weight: 700;
  line-height: 1.2;
}

.ui-badge-gold { color: var(--ui-gold-300); background: var(--ui-gold-soft); border-color: rgba(201,168,106,.3); }
.ui-badge-cyan,
.ui-badge-azure { color: var(--ui-cyan-300); background: var(--ui-cyan-soft); border-color: rgba(53,189,242,.3); }
.ui-badge-danger { color: #ffaaa5; background: rgba(239,107,100,.1); border-color: rgba(239,107,100,.28); }
.ui-category-pokemon { color: var(--ui-cyan-300); background: var(--ui-cyan-soft); border-color: rgba(53,189,242,.3); }
.ui-category-items { color: var(--ui-gold-300); background: var(--ui-gold-soft); border-color: rgba(201,168,106,.3); }
.ui-category-stones { color: #bc8cff; background: rgba(188,140,255,.09); border-color: rgba(188,140,255,.3); }
.ui-category-balls { color: #82c5ff; background: rgba(130,197,255,.09); border-color: rgba(130,197,255,.3); }
.ui-category-diamonds { color: #8ceae5; background: rgba(140,234,229,.09); border-color: rgba(140,234,229,.3); }

.ui-offer-badge {
  min-height: 28px;
  padding: 4px 10px 4px 7px;
  border: 1px solid rgba(201,168,106,.42);
  border-radius: var(--ui-radius-xs) var(--ui-radius-pill) var(--ui-radius-pill) var(--ui-radius-xs);
  background: linear-gradient(90deg, rgba(201,168,106,.16), rgba(53,189,242,.08));
  color: var(--ui-gold-300);
  font-family: var(--ui-font-display);
  letter-spacing: .045em;
  text-transform: none;
}
.ui-offer-badge svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--ui-cyan-300);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.ui-quality-badge,
.ui-potential {
  --quality-color: var(--ui-text-muted);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid color-mix(in srgb, var(--quality-color) 38%, transparent);
  border-radius: var(--ui-radius-pill);
  background: color-mix(in srgb, var(--quality-color) 10%, transparent);
  color: var(--quality-color);
  font-size: var(--ui-text-xs);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.ui-quality-gem {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border: 1px solid currentColor;
  background: color-mix(in srgb, var(--quality-color) 35%, transparent);
  transform: rotate(45deg);
  box-shadow: 0 0 8px color-mix(in srgb, var(--quality-color) 30%, transparent);
}
.ui-quality-weak { --quality-color: #8796a8; }
.ui-quality-common { --quality-color: #b8c9d9; }
.ui-quality-uncommon { --quality-color: #72d4ff; }
.ui-quality-rare { --quality-color: #5aa7ff; }
.ui-quality-epic { --quality-color: #be8cff; }
.ui-quality-legendary { --quality-color: #e6c778; }
.ui-quality-mythic { --quality-color: #ff6f91; }
.ui-quality-ancient { --quality-color: #ff9d52; }
.ui-quality-divine { --quality-color: #b8ecff; }
.ui-quality-divine .ui-quality-gem { background: var(--ui-cyan-200); box-shadow: 0 0 12px rgba(121,217,255,.55); }
.ui-quality-value {
  padding-right: 6px;
  border-right: 1px solid color-mix(in srgb, var(--quality-color) 34%, transparent);
  color: inherit;
  font: 700 10px/1 var(--ui-font-mono);
}
.ui-quality-label {
  color: inherit;
  font-size: 10px;
  line-height: 1;
}

.ui-quality-filter {
  gap: 7px;
  min-height: 30px;
  padding: 5px 10px;
  border-color: color-mix(in srgb, var(--quality-color) 24%, transparent);
  background: color-mix(in srgb, var(--quality-color) 6%, transparent);
  color: var(--quality-color);
}
.ui-quality-filter.ui-quality-weak { --quality-color: #8796a8; }
.ui-quality-filter.ui-quality-common { --quality-color: #b8c9d9; }
.ui-quality-filter.ui-quality-uncommon { --quality-color: #72d4ff; }
.ui-quality-filter.ui-quality-rare { --quality-color: #5aa7ff; }
.ui-quality-filter.ui-quality-epic { --quality-color: #be8cff; }
.ui-quality-filter.ui-quality-legendary { --quality-color: #e6c778; }
.ui-quality-filter.ui-quality-mythic { --quality-color: #ff6f91; }
.ui-quality-filter.ui-quality-ancient { --quality-color: #ff9d52; }
.ui-quality-filter.ui-quality-divine { --quality-color: #b8ecff; }
.ui-quality-filter:hover,
.ui-quality-filter.active {
  border-color: color-mix(in srgb, var(--quality-color) 48%, transparent);
  background: color-mix(in srgb, var(--quality-color) 12%, transparent);
  color: var(--quality-color);
}

.ui-potential { --quality-color: var(--ui-cyan-300); }
.ui-potential strong { font-family: var(--ui-font-mono); font-size: 10px; }
.ui-potential-exceptional { --quality-color: #b8ecff; }
.ui-potential-excellent { --quality-color: #79d9ff; }
.ui-potential-very-good { --quality-color: #5bbcf6; }
.ui-potential-good { --quality-color: #77a9ff; }
.ui-potential-average { --quality-color: #e1c77f; }
.ui-potential-below-average { --quality-color: #f2a65e; }
.ui-potential-weak { --quality-color: #ef7770; }

.ui-pokemon-potential {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, max-content));
  align-items: end;
  gap: var(--ui-space-3) var(--ui-space-5);
  margin: 0 0 var(--ui-space-4);
  padding: var(--ui-space-4);
  border: 1px solid rgba(53,189,242,.2);
  border-left: 3px solid var(--ui-cyan-500);
  border-radius: var(--ui-radius-md);
  background: linear-gradient(90deg, rgba(53,189,242,.08), transparent);
}
.ui-pokemon-potential > div { display: grid; gap: 9px; }
.ui-pokemon-potential span {
  color: var(--ui-text-soft);
  font-size: var(--ui-text-sm);
  font-weight: 600;
}
.ui-pokemon-potential small {
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  line-height: 1.45;
}
.ui-pokemon-potential .ui-potential,
.ui-pokemon-potential .ui-quality-badge {
  min-height: 30px;
  padding: 5px 10px;
  font-size: var(--ui-text-sm);
}
.ui-pokemon-potential .ui-potential strong { font-size: var(--ui-text-sm); }
.ui-pokemon-potential > small { grid-column: 1 / -1; }
.ui-pokemon-potential.is-empty { grid-template-columns: 1fr; align-items: start; }

.ui-type { color: var(--type-color, var(--ui-text-soft)); background: color-mix(in srgb, var(--type-color, #718096) 15%, transparent); border-color: color-mix(in srgb, var(--type-color, #718096) 38%, transparent); }
.ui-type-fire { --type-color: #ff8664; }
.ui-type-water { --type-color: #69b9ff; }
.ui-type-grass { --type-color: #77d89b; }
.ui-type-electric { --type-color: #f0cf63; }
.ui-type-psychic { --type-color: #d28dff; }
.ui-type-dragon { --type-color: #7f9cff; }
.ui-type-dark { --type-color: #9ba6b4; }
.ui-type-fairy { --type-color: #f3a2d6; }

.ui-rarity-common { color: #bcc8d5; background: rgba(188,200,213,.08); }
.ui-rarity-uncommon { color: #70d0ff; background: rgba(112,208,255,.09); border-color: rgba(112,208,255,.3); }
.ui-rarity-rare { color: #68b8ff; background: rgba(104,184,255,.09); border-color: rgba(104,184,255,.3); }
.ui-rarity-epic { color: #bc8cff; background: rgba(188,140,255,.09); border-color: rgba(188,140,255,.3); }
.ui-rarity-legendary { color: var(--ui-gold-300); background: var(--ui-gold-soft); border-color: rgba(201,168,106,.38); }

.ui-trend-up,
.ui-price-up { color: var(--ui-success); }
.ui-trend-down,
.ui-price-down { color: var(--ui-danger); }
.ui-trend-flat,
.ui-price-flat { color: var(--ui-text-muted); }

/* Tabelas */
.ui-table-wrap,
.table-scroll,
.detail-listings { max-width: 100%; overflow-x: auto; }

.ui-table,
table {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
}
.ui-table { min-width: 640px; }
.ui-table th,
thead th {
  color: var(--ui-gold-300);
  font: 600 var(--ui-text-xs) var(--ui-font-display);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ui-table th,
.ui-table td,
thead th,
tbody td { border-bottom: 1px solid var(--ui-line); }
.ui-table th,
.ui-table td { padding: var(--ui-space-3) var(--ui-space-4); text-align: left; }
.ui-table tbody tr,
tbody tr { transition: background .16s ease; }
.ui-table tbody tr:hover,
tbody tr:hover { background: rgba(53,189,242,.045); }

/* Tooltip */
.ui-tooltip {
  position: relative;
  display: inline-flex;
}
.ui-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 20;
  left: 50%;
  bottom: calc(100% + 9px);
  width: max-content;
  max-width: 230px;
  padding: 7px 9px;
  border: 1px solid var(--ui-line-strong);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-bg-deep);
  color: var(--ui-text-soft);
  box-shadow: var(--ui-shadow-sm);
  font-size: var(--ui-text-xs);
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition: opacity .14s ease, transform .14s ease;
}
.ui-tooltip:hover::after,
.ui-tooltip:focus-within::after { opacity: 1; transform: translate(-50%, 0); }

/* Modal */
.ui-modal {
  width: min(520px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--ui-line-strong);
  border-radius: var(--ui-radius-lg);
  background: var(--ui-surface-1);
  color: var(--ui-text);
  box-shadow: var(--ui-shadow-lg);
}
.ui-modal::backdrop { background: rgba(2,5,9,.76); backdrop-filter: blur(3px); }
.ui-modal-head,
.ui-modal-body,
.ui-modal-actions { padding: var(--ui-space-4) var(--ui-space-5); }
.ui-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-line);
}
.ui-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-2);
  border-top: 1px solid var(--ui-line);
}
.ui-modal-close {
  border: 0;
  background: transparent;
  color: var(--ui-text-muted);
  cursor: pointer;
  font-size: 20px;
}

/* Alertas */
.ui-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid var(--alert-border, var(--ui-line));
  border-radius: var(--ui-radius-md);
  background: var(--alert-bg, var(--ui-surface-2));
  color: var(--alert-color, var(--ui-text-soft));
  font-size: var(--ui-text-sm);
}
.ui-alert strong { display: block; color: var(--ui-text); margin-bottom: 2px; }
.ui-alert-info { --alert-border: rgba(102,184,255,.3); --alert-bg: rgba(102,184,255,.08); --alert-color: #acd7ff; }
.ui-alert-success { --alert-border: rgba(82,214,162,.3); --alert-bg: rgba(82,214,162,.08); --alert-color: #a5edcf; }
.ui-alert-warning { --alert-border: rgba(239,183,94,.32); --alert-bg: rgba(239,183,94,.09); --alert-color: #f4cf92; }
.ui-alert-danger { --alert-border: rgba(239,107,100,.32); --alert-bg: rgba(239,107,100,.09); --alert-color: #ffaaa5; }

/* Progresso */
.ui-progress { display: grid; gap: var(--ui-space-2); }
.ui-progress-head { display: flex; justify-content: space-between; color: var(--ui-text-muted); font-size: var(--ui-text-xs); }
.ui-progress-track,
.stat-track {
  height: 8px;
  overflow: hidden;
  border: 1px solid rgba(159,176,194,.1);
  border-radius: var(--ui-radius-pill);
  background: var(--ui-bg-deep);
}
.ui-progress-fill,
.stat-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--ui-azure-700), var(--ui-azure-300));
  box-shadow: 0 0 12px rgba(53,189,242,.25);
}
.ui-progress-gold .ui-progress-fill { background: linear-gradient(90deg, var(--ui-gold-700), var(--ui-gold-300)); }

/* Loading e skeleton */
.ui-loading,
.market-feedback,
.detail-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-space-3);
  color: var(--ui-text-muted);
}
.ui-spinner,
.loading-spinner {
  width: 22px;
  height: 22px;
  border: 2px solid var(--ui-line);
  border-top-color: var(--ui-azure-500);
  border-radius: 50%;
  animation: ui-spin .8s linear infinite;
}
@keyframes ui-spin { to { transform: rotate(360deg); } }

.ui-skeleton {
  position: relative;
  overflow: hidden;
  min-height: 14px;
  border-radius: var(--ui-radius-xs);
  background: var(--ui-surface-3);
}
.ui-skeleton::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.07), transparent);
  transform: translateX(-100%);
  animation: ui-shimmer 1.45s infinite;
}
@keyframes ui-shimmer { to { transform: translateX(100%); } }

/* Empty state */
.ui-empty,
.empty,
.chart-empty,
.detail-error {
  padding: var(--ui-space-7) var(--ui-space-5);
  color: var(--ui-text-muted);
  text-align: center;
}
.ui-empty-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin: 0 auto var(--ui-space-3);
  border: 1px solid var(--ui-line-strong);
  border-radius: 50%;
  background: var(--ui-gold-soft);
  color: var(--ui-gold-300);
  font-size: 24px;
}
.ui-empty h3 { margin: 0 0 var(--ui-space-2); color: var(--ui-gold-100); font: 700 var(--ui-text-md) var(--ui-font-display); }
.ui-empty p { max-width: 420px; margin: 0 auto; font-size: var(--ui-text-sm); }

/* Gráficos */
.ui-chart,
.chart-panel {
  padding: var(--ui-space-4);
  border-radius: var(--ui-radius-lg);
}
.ui-chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  margin-bottom: var(--ui-space-4);
}
.ui-chart-legend { display: flex; gap: var(--ui-space-3); color: var(--ui-text-muted); font-size: var(--ui-text-xs); }
.ui-chart-key::before {
  content: '';
  width: 8px;
  height: 8px;
  display: inline-block;
  margin-right: 6px;
  border-radius: 50%;
  background: var(--key-color, var(--ui-azure-500));
}
.ui-chart svg { width: 100%; height: auto; overflow: visible; }
.ui-chart-grid { stroke: var(--ui-line); }
.ui-chart-line { fill: none; stroke: var(--ui-azure-300); stroke-width: 2.5; }
.ui-chart-area { fill: url(#uiChartArea); opacity: .25; }

/* Navegação segmentada/chips */
.ui-segmented,
.mode-toggle,
.tabs,
.view-toggle,
.chart-options {
  display: inline-flex;
  gap: var(--ui-space-1);
  padding: var(--ui-space-1);
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-md);
  background: var(--ui-bg-deep);
}
.ui-chip,
.tab,
.mode-toggle button {
  min-height: 34px;
  padding: 0 var(--ui-space-3);
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm);
  background: transparent;
  color: var(--ui-text-muted);
  font: 600 var(--ui-text-sm) var(--ui-font-body);
  cursor: pointer;
}
.ui-chip:hover,
.tab:hover,
.mode-toggle button:hover { color: var(--ui-text); background: var(--ui-surface-2); }
.ui-chip.active,
.tab.active {
  border-color: rgba(53,189,242,.34);
  background: var(--ui-azure-soft);
  color: var(--ui-azure-300);
}
.mode-toggle button.active {
  border-color: var(--ui-gold-500);
  background: linear-gradient(180deg, var(--ui-gold-300), var(--ui-gold-700));
  color: #120f09;
}

/* Integração com as páginas atuais */
header {
  position: relative;
  border-color: var(--ui-line);
  background: rgba(5,8,13,.86);
  backdrop-filter: blur(14px);
}
header .brand { grid-column: 1; }
header .status { grid-column: 3; }
body .header-logo,
.market-home .header-logo {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: -55px;
  width: 156px;
  height: 118px;
  grid-column: auto;
  grid-row: auto;
  justify-self: auto;
  object-fit: contain;
  filter:
    drop-shadow(0 0 9px rgba(121,217,255,.34))
    drop-shadow(0 0 24px rgba(53,189,242,.2))
    drop-shadow(0 12px 20px rgba(0,0,0,.6));
  transform: translateX(-50%);
}
header + main { padding-top: calc(var(--ui-space-7) + 38px); }
.brand h1,
.detail-hero h2,
.chart-toolbar h3,
.detail-listings h3,
.pokemon-detail-panel h3 { font-family: var(--ui-font-display); }
.brand h1 { color: var(--ui-gold-100); }
.status { color: var(--ui-text-muted); }
.pulse { background: var(--ui-azure-500); }
.pulse.stale { background: var(--ui-danger); }
.breadcrumb a,
.back-link { color: var(--ui-azure-300); }
.breadcrumb {
  margin-bottom: var(--ui-space-5);
  color: var(--ui-text-muted);
  font-size: var(--ui-text-sm);
  font-weight: 500;
  line-height: 1.5;
}
.detail-icon { border-color: var(--ui-line-strong); background: var(--ui-surface-1); }
.detail-hero h2 { color: var(--ui-gold-100); }
.summary-card { border-radius: var(--ui-radius-md); }
.chart-toolbar h3,
.detail-listings h3,
.pokemon-detail-panel h3 { color: var(--ui-gold-300); }
.popover.ui-panel {
  position: fixed;
  z-index: 1000;
  border-color: var(--ui-line-strong);
  box-shadow: var(--ui-shadow-lg);
}
.popover-close { background: var(--ui-surface-2); border-color: var(--ui-line); color: var(--ui-text-muted); }
.stat-label,
.popover-facts dt { color: var(--ui-text-muted); }
.pokemon-detail-panel .evo-chain { gap: var(--ui-space-3); }
.pokemon-detail-panel .evo-step { gap: var(--ui-space-2); }
.pokemon-detail-panel .evo-step img {
  width: 90px;
  height: 90px;
  border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius-md);
  background: radial-gradient(circle, rgba(53,189,242,.08), var(--ui-surface-2) 68%);
}
.pokemon-detail-panel .evo-step.current img {
  outline: 2px solid var(--ui-cyan-500);
  outline-offset: 2px;
  box-shadow: 0 0 22px rgba(53,189,242,.18);
}
.pokemon-detail-panel .evo-step span {
  max-width: 98px;
  color: var(--ui-text-soft);
  font-size: var(--ui-text-sm);
  font-weight: 600;
}
.pokemon-detail-panel .evo-arrow {
  margin-top: -24px;
  padding-inline: var(--ui-space-1);
  color: var(--ui-cyan-300);
  font-size: var(--ui-text-sm);
  line-height: 1.35;
}
.stat-row { margin-bottom: 10px; font-size: var(--ui-text-sm); }
.stat-label { width: 68px; }
.stat-track { height: 10px; }
.stat-scale-note {
  display: block;
  margin-top: var(--ui-space-2);
  color: var(--ui-text-faint);
  font-size: var(--ui-text-xs);
  line-height: 1.4;
}
.npc-arrow.up { color: var(--ui-success); }
.npc-arrow.down { color: var(--ui-danger); }

body.market-home {
  --color-canvas: var(--ui-bg-deep);
  --color-surface-1: var(--ui-surface-1);
  --color-surface-2: var(--ui-surface-2);
  --color-surface-3: var(--ui-surface-3);
  --color-line-subtle: var(--ui-line);
  --color-line-strong: var(--ui-line-strong);
  --color-ink: var(--ui-text);
  --color-ink-muted: var(--ui-text-muted);
  --color-ink-faint: var(--ui-text-faint);
  --color-brand: var(--ui-gold-500);
  --color-brand-strong: var(--ui-gold-300);
  --color-brand-soft: var(--ui-gold-soft);
  --color-info: var(--ui-info);
  --color-warning: var(--ui-warning);
  --color-danger: var(--ui-danger);
  --color-focus: var(--ui-focus);
}

/* Hero cinematográfico da página inicial */
.cinematic-hero {
  --hero-mobile-image: url('/images/hero-campfire-night-wide.webp');
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: clamp(520px, 36vw, 560px);
  overflow: hidden;
  background: #06142a;
}
.hero-background,
.hero-stars,
.hero-shooting-stars,
.hero-contrast {
  position: absolute;
  inset: 0;
  z-index: -4;
  overflow: hidden;
  pointer-events: none;
}
.hero-background {
  background-color: #06142a;
  background-image: url('/images/hero-campfire-night-wide.webp');
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
}
.hero-stars {
  z-index: -3;
  right: 14%;
  bottom: 54%;
  left: 14%;
  opacity: .32;
  background-image:
    radial-gradient(circle at 28% 12%, rgba(225,244,255,.9) 0 1px, transparent 2px),
    radial-gradient(circle at 39% 30%, rgba(121,217,255,.78) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 51% 9%, rgba(244,239,228,.78) 0 1px, transparent 2px),
    radial-gradient(circle at 63% 24%, rgba(184,236,255,.84) 0 1.1px, transparent 2.1px),
    radial-gradient(circle at 74% 14%, rgba(225,244,255,.8) 0 .9px, transparent 1.9px);
  filter: drop-shadow(0 0 3px rgba(121,217,255,.26));
  animation: hero-stars-pulse 5.8s ease-in-out infinite;
}
.hero-stars::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .22;
  background-image:
    radial-gradient(circle at 34% 18%, rgba(255,255,255,.84) 0 .9px, transparent 1.9px),
    radial-gradient(circle at 47% 36%, rgba(121,217,255,.72) 0 1px, transparent 2px),
    radial-gradient(circle at 58% 15%, rgba(225,244,255,.8) 0 1.1px, transparent 2.1px),
    radial-gradient(circle at 69% 33%, rgba(244,239,228,.74) 0 .8px, transparent 1.8px);
  animation: hero-stars-pulse 8.6s 1.7s ease-in-out infinite reverse;
}
.hero-shooting-stars {
  z-index: -2;
}
.hero-shooting-stars span {
  position: absolute;
  top: 14%;
  left: 62%;
  width: 172px;
  height: 2px;
  opacity: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent 4%, rgba(121,217,255,.18) 40%, rgba(225,245,255,.92));
  filter: drop-shadow(0 0 5px rgba(121,217,255,.4));
  transform: translate3d(-140px, -40px, 0) rotate(-22deg);
  transform-origin: right center;
  animation: hero-shooting-star 10s 2s linear infinite;
}
.hero-shooting-stars span::after {
  content: '';
  position: absolute;
  top: -2px;
  right: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(225,245,255,.9);
  box-shadow: 0 0 7px rgba(184,236,255,.58);
}
.hero-shooting-stars span:nth-child(2) {
  top: 27%;
  left: 36%;
  width: 136px;
  animation-delay: 7s;
  animation-duration: 12s;
}
.hero-contrast {
  z-index: -1;
  background:
    radial-gradient(ellipse at 50% 37%, rgba(1,7,17,.7) 0, rgba(1,7,17,.42) 24%, transparent 58%),
    radial-gradient(circle at 30% 91%, rgba(240,139,52,.13), transparent 18%),
    linear-gradient(180deg, rgba(2,8,18,.62) 0%, rgba(2,8,18,.2) 30%, rgba(2,8,18,.16) 58%, rgba(3,9,17,.52) 100%);
  animation: hero-fire-warmth 8s ease-in-out infinite alternate;
}
.cinematic-hero header {
  z-index: 2;
  min-height: 82px;
  padding: var(--ui-space-3) max(var(--ui-space-5), calc((100vw - 1320px) / 2));
  border: 0;
  border-bottom: 1px solid rgba(121,217,255,.18);
  background: rgba(3,10,21,.62);
  box-shadow: 0 10px 30px rgba(0,0,0,.14);
  backdrop-filter: blur(10px);
}
.cinematic-hero header .header-logo,
.market-home .cinematic-hero .header-logo {
  position: absolute;
  left: 50%;
  bottom: -54px;
  width: 156px;
  height: 118px;
  filter:
    drop-shadow(0 0 10px rgba(121,217,255,.3))
    drop-shadow(0 12px 20px rgba(0,0,0,.58));
  transform: translateX(-50%);
}
.cinematic-hero-content {
  z-index: 1;
  align-self: stretch;
  display: grid;
  grid-template-rows: auto 1fr;
  justify-items: center;
  width: min(920px, calc(100% - 48px));
  margin: clamp(66px, 8vh, 76px) auto 0;
  padding-bottom: 0;
  text-align: center;
}
.market-home .cinematic-hero .market-intro {
  display: grid;
  justify-items: center;
  gap: var(--ui-space-3);
  margin: 0;
}
.market-home .cinematic-hero .market-intro h2 {
  max-width: 820px;
  font-size: clamp(36px, 5vw, 66px);
  line-height: 1.02;
  text-wrap: balance;
  text-shadow: 0 3px 30px rgba(0,0,0,.72), 0 1px 0 rgba(0,0,0,.7);
}
.market-home .cinematic-hero .market-intro-copy {
  max-width: 610px;
  color: #d7e1ec;
  font-size: var(--ui-text-md);
  line-height: 1.65;
  text-shadow: 0 2px 14px rgba(0,0,0,.9);
}
.market-home .cinematic-hero .eyebrow {
  margin: 0;
  color: var(--ui-cyan-200);
  text-shadow: 0 2px 12px rgba(0,0,0,.9);
}
.market-home .cinematic-hero .mode-toggle {
  align-self: end;
  margin: var(--ui-space-2) 0 28px;
  border-color: rgba(184,236,255,.16);
  background: rgba(5,8,13,.68);
  box-shadow: 0 12px 32px rgba(0,0,0,.2);
  backdrop-filter: blur(10px);
}
.market-home #marketView {
  position: relative;
  z-index: 2;
  margin-top: -15px;
  padding-top: 0;
}

@keyframes hero-stars-pulse {
  0%, 100% { opacity: .18; transform: scale(.985); }
  45% { opacity: .62; transform: scale(1.035); }
  68% { opacity: .34; transform: scale(1); }
}
@keyframes hero-shooting-star {
  0%, 4% { opacity: 0; transform: translate3d(-140px, -40px, 0) rotate(-22deg); }
  7% { opacity: .92; }
  17% { opacity: .82; }
  24%, 100% { opacity: 0; transform: translate3d(430px, 135px, 0) rotate(-22deg); }
}
@keyframes hero-fire-warmth {
  from { opacity: .92; }
  to { opacity: 1; }
}

body.detail-page .cinematic-hero {
  display: block;
  min-height: 300px;
  overflow: hidden;
  background: #06142a;
}
body.detail-page .hero-stars,
body.detail-page .hero-shooting-stars,
body.detail-page .cinematic-hero-content { display: none; }
body.detail-page .hero-background {
  display: block;
  background-position: center 68%;
  background-size: cover;
}
body.detail-page .hero-contrast {
  display: block;
  background:
    linear-gradient(180deg, rgba(2,8,18,.54), rgba(2,8,18,.08) 48%, rgba(5,8,13,.96) 100%),
    radial-gradient(ellipse at 50% 50%, transparent 16%, rgba(2,8,18,.28) 100%);
  animation: none;
}
body.detail-page .cinematic-hero header {
  min-height: 88px;
  border-bottom: 1px solid var(--ui-line);
  background: rgba(3,10,21,.62);
  backdrop-filter: blur(10px);
}
body.detail-page #detailView { padding-top: var(--ui-space-5); }

@media (min-aspect-ratio: 5 / 2) and (min-width: 1921px) {
  .hero-background { background-size: auto 100%; }
}

@media (max-width: 800px) {
  .cinematic-hero {
    min-height: 520px;
  }
  .hero-background {
    background-image: var(--hero-mobile-image);
    background-position: 30% bottom;
  }
  .cinematic-hero header {
    min-height: 76px;
    padding-inline: var(--ui-space-4);
  }
  .cinematic-hero header .header-logo,
  .market-home .cinematic-hero .header-logo {
    position: absolute;
    bottom: -46px;
    width: 138px;
    height: 104px;
    transform: translateX(-50%);
  }
  .cinematic-hero-content {
    width: min(100% - 32px, 660px);
    margin-top: 68px;
    padding-bottom: 0;
  }
  .market-home .cinematic-hero .market-intro {
    align-items: center;
  }
  .market-home .cinematic-hero .market-intro h2 {
    font-size: clamp(32px, 10vw, 48px);
  }
  .market-home .cinematic-hero .market-intro-copy {
    max-width: 520px;
    font-size: var(--ui-text-sm);
  }
  body.detail-page .cinematic-hero header .header-logo {
    width: 126px;
    height: 88px;
  }
  body.detail-page .cinematic-hero {
    min-height: 220px;
  }
  body.detail-page .hero-background {
    background-position: 30% 68%;
  }
  body.detail-page #detailView { padding-top: var(--ui-space-4); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-stars,
  .hero-stars::before,
  .hero-shooting-stars span,
  .hero-contrast {
    animation: none !important;
  }
  .hero-shooting-stars { display: none; }
}

.market-home .eyebrow { color: var(--ui-azure-300); }
.market-home .pulse { background: var(--ui-azure-500); }
.market-home .pulse.stale { background: var(--ui-danger); }
.market-home .tab.active {
  border-color: rgba(53,189,242,.34);
  background: var(--ui-azure-soft);
  color: var(--ui-azure-300);
}
.market-home .mode-toggle button.active {
  border-color: var(--ui-gold-500);
  background: linear-gradient(180deg, var(--ui-gold-300), var(--ui-gold-700));
  color: #120f09;
}
.market-home .market-intro h2 {
  color: var(--ui-gold-100);
  font-family: var(--ui-font-display);
  letter-spacing: .015em;
}
.market-home .filter-panel {
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-color: rgba(121,217,255,.16);
  background:
    linear-gradient(110deg, rgba(53,189,242,.035), transparent 48%),
    rgba(15,26,38,.94);
}
.market-home .filter-panel .controls {
  grid-template-columns: 122px minmax(0, 1fr) auto;
  min-height: 68px;
  padding: var(--ui-space-3) var(--ui-space-4);
}
.market-home .filter-panel #currencyRow {
  grid-template-columns: 122px minmax(0, 1fr);
  border-top: 1px solid var(--ui-line);
}
.market-home .filter-caption {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2);
  color: var(--ui-gold-300);
  font-family: var(--ui-font-display);
  letter-spacing: .08em;
}
.market-home .filter-caption-icon {
  width: 32px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(121,217,255,.22);
  border-radius: var(--ui-radius-sm);
  background: rgba(53,189,242,.07);
  color: var(--ui-cyan-300);
}
.market-home .filter-caption-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.55;
}
.market-home #tabs,
.market-home #currencyTabs {
  width: fit-content;
  padding: 3px;
  border-color: rgba(121,217,255,.1);
  background: rgba(5,8,13,.7);
}
.market-home #tabs .ui-chip,
.market-home #currencyTabs .ui-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding-inline: 11px;
  color: var(--ui-text-muted);
}
.market-home #tabs .ui-chip:hover,
.market-home #currencyTabs .ui-chip:hover { color: var(--ui-cyan-200); }
.market-home #tabs .ui-chip > span:not(.ui-nav-icon),
.market-home #currencyTabs .ui-chip > span:not(.ui-nav-icon) { line-height: 1; }
.market-home #tabs .ui-chip.active,
.market-home #currencyTabs .ui-chip.active {
  border-color: rgba(121,217,255,.42);
  background: linear-gradient(180deg, rgba(53,189,242,.18), rgba(53,189,242,.08));
  color: var(--ui-cyan-200);
  box-shadow: inset 0 1px rgba(255,255,255,.06), 0 0 16px rgba(53,189,242,.06);
}
.ui-nav-icon {
  width: 17px;
  height: 17px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
}
.ui-nav-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.55;
}
.market-search {
  position: relative;
  display: block;
}
.market-search-icon {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 12px;
  width: 18px;
  height: 18px;
  color: var(--ui-text-faint);
  pointer-events: none;
  transform: translateY(-50%);
}
.market-search-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.7;
}
.market-home #search {
  padding-left: 38px;
  border-color: rgba(121,217,255,.14);
  background:
    linear-gradient(90deg, rgba(53,189,242,.035), transparent),
    var(--ui-bg-deep);
}
.market-home #search:focus { border-color: var(--ui-cyan-500); }
.market-search:focus-within .market-search-icon { color: var(--ui-cyan-300); }
.market-home .results-shell { position: relative; overflow: visible; }
.market-home .results-shell::before { top: -5px; left: 28px; }
.market-home .results-shell > * { position: relative; }
.market-home .results-heading h3 { color: var(--ui-gold-300); font-family: var(--ui-font-display); }
.market-home .results-count { color: var(--ui-azure-300); }
.market-home .item-card-price { color: var(--ui-gold-100); }
.market-home .retry-btn { font-family: var(--ui-font-display); }

/* Filtros de qualidade vêm depois da regra genérica de chips para preservar cada tier. */
.pokemon-filter-panel .ui-quality-filter {
  border-color: color-mix(in srgb, var(--quality-color) 32%, transparent);
  background: color-mix(in srgb, var(--quality-color) 9%, transparent);
  color: var(--quality-color);
}
.pokemon-filter-panel .ui-quality-filter:hover,
.pokemon-filter-panel .ui-quality-filter.active {
  border-color: color-mix(in srgb, var(--quality-color) 58%, transparent);
  background: color-mix(in srgb, var(--quality-color) 16%, transparent);
  color: var(--quality-color);
  box-shadow: 0 0 14px color-mix(in srgb, var(--quality-color) 12%, transparent);
}

/* Página do catálogo */
.ui-kit-page { min-height: 100vh; }
.ui-kit-shell { width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: var(--ui-space-7) 0 var(--ui-space-8); }
.ui-kit-hero { display: grid; grid-template-columns: 1.2fr .8fr; gap: var(--ui-space-6); align-items: end; margin-bottom: var(--ui-space-7); }
.ui-kit-hero p { max-width: 680px; color: var(--ui-text-muted); line-height: 1.6; }
.ui-kit-palette { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--ui-space-2); }
.ui-swatch { min-height: 90px; padding: var(--ui-space-3); border: 1px solid var(--ui-line); border-radius: var(--ui-radius-md); background: var(--swatch); color: var(--ui-text); font-size: var(--ui-text-xs); }
.ui-kit-section { margin-top: var(--ui-space-7); }
.ui-kit-section-head { display: flex; justify-content: space-between; align-items: end; gap: var(--ui-space-4); margin-bottom: var(--ui-space-4); }
.ui-kit-section-head p { margin: 0; color: var(--ui-text-muted); font-size: var(--ui-text-sm); }
.ui-kit-row { display: flex; flex-wrap: wrap; gap: var(--ui-space-3); align-items: center; }
.ui-kit-stack { display: grid; gap: var(--ui-space-3); }
.ui-kit-form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ui-space-4); }
.ui-kit-demo-chart { min-height: 260px; }
.ui-kit-nav { display: flex; justify-content: space-between; align-items: center; padding: var(--ui-space-3) 0; border-bottom: 1px solid var(--ui-line); }
.ui-kit-nav a { color: var(--ui-gold-300); font: 700 var(--ui-text-sm) var(--ui-font-display); text-decoration: none; }

@media (max-width: 800px) {
  .ui-kit-hero,
  .ui-kit-form-grid { grid-template-columns: 1fr; }
  .history-grid,
  .market-request-grid { grid-template-columns: 1fr; }
  .ui-kit-palette { grid-template-columns: repeat(2, 1fr); }
  .ui-modal-actions { flex-direction: column-reverse; }
  .ui-modal-actions .ui-btn { width: 100%; }
  .market-home #tabs,
  .market-home #currencyTabs { width: 100%; overflow-x: auto; }
  .market-home .filter-panel .controls,
  .market-home .filter-panel #currencyRow {
    grid-template-columns: 1fr;
    padding: var(--ui-space-3);
  }
  .ui-pokemon-potential { grid-template-columns: 1fr; align-items: start; }
  .ui-pokemon-potential > small { grid-column: auto; }
  .pokemon-detail-panel .evo-step img { width: 90px; height: 90px; }
  .pokemon-detail-panel .evo-step span { max-width: 98px; }
  body .header-logo,
  .market-home .header-logo {
    bottom: -47px;
    width: 138px;
    height: 104px;
  }
  header .status {
    position: absolute;
    top: 28px;
    right: 16px;
    grid-column: auto;
    grid-row: auto;
  }
  header #statusText { display: none; }
  header + main { padding-top: calc(var(--ui-space-7) + 28px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
