/* ATX Shield 控制台样式（基于 /assets/tokens.css 令牌 · v2 de-AI） */

.hidden { display: none !important; }

/* —— 顶栏 —— */
.console-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--atx-bg);
  border-bottom: 1px solid var(--atx-border-faint);
}
.console-header > .row { justify-content: space-between; padding-block: var(--atx-sp-1); }

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  font-family: var(--atx-mono);
  font-weight: 700;
  font-size: var(--atx-fs-sm);
  color: var(--atx-fg);
}
.brand:hover { text-decoration: none; }
.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: var(--atx-r-sm);
  background: var(--atx-accent);
  color: var(--atx-on-accent);
}

.chip-balance {
  font-family: var(--atx-mono);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--atx-accent);
}

/* —— 认证视图 —— */
.auth-view { max-width: 420px; margin-inline: auto; padding-block: var(--atx-sp-6); }
.auth-card { padding: var(--atx-sp-4); }
.auth-side { text-align: center; font-size: var(--atx-fs-sm); margin-top: var(--atx-sp-3); }

.seg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-bottom: var(--atx-sp-3);
  border: 1px solid var(--atx-border-faint);
  border-radius: var(--atx-r-sm);
  overflow: hidden;
}
.seg-btn {
  padding: 0.55em;
  border: none;
  border-right: 1px solid var(--atx-border-faint);
  background: transparent;
  color: var(--atx-fg-muted);
  font-family: var(--atx-mono);
  font-size: var(--atx-fs-sm);
  font-weight: 700;
  cursor: pointer;
  transition: background var(--atx-t), color var(--atx-t);
}
.seg-btn:last-child { border-right: none; }
.seg-btn:hover { color: var(--atx-fg); }
.seg-btn.is-active { background: var(--atx-accent-soft); color: var(--atx-accent); }

.stack { display: grid; gap: var(--atx-sp-2); }
.field { display: grid; gap: 0.3em; }
.field-label {
  font-family: var(--atx-mono);
  font-size: var(--atx-fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--atx-fg-muted);
}
.form-error { color: var(--atx-danger); min-height: 1.4em; font-size: var(--atx-fs-sm); }

/* —— 仪表盘 —— */
.console-main { padding-block: var(--atx-sp-4) var(--atx-sp-6); }
.dash-grid {
  display: grid;
  gap: var(--atx-sp-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.balance-card { grid-column: 1 / -1; padding: var(--atx-sp-4); border-radius: var(--atx-r-lg); }
.balance-num {
  font-family: var(--atx-mono);
  font-size: var(--atx-fs-hero);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
  font-variant-numeric: tabular-nums;
}
.balance-num .unit { font-size: var(--atx-fs-md); font-weight: 400; margin-left: 0.4em; color: var(--atx-fg-muted); }

.packs { display: flex; gap: var(--atx-sp-1); flex-wrap: wrap; margin-top: var(--atx-sp-3); }
.pack {
  display: grid;
  gap: 0.1em;
  padding: 0.7em 1em;
  border: 1px solid var(--atx-border);
  border-radius: var(--atx-r-sm);
  background: transparent;
  color: var(--atx-fg);
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  transition: border-color var(--atx-t), color var(--atx-t);
}
.pack:hover { border-color: var(--atx-accent); }
.pack .pack-points {
  font-family: var(--atx-mono);
  font-weight: 700;
  font-size: var(--atx-fs-lg);
  font-variant-numeric: tabular-nums;
}
.pack .pack-price {
  font-family: var(--atx-mono);
  font-size: var(--atx-fs-xs);
  color: var(--atx-fg-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.key-plain {
  display: block;
  padding: 0.7em 0.9em;
  margin-block: var(--atx-sp-1);
  border-radius: var(--atx-r-sm);
  border: 1px dashed var(--atx-accent);
  background: var(--atx-accent-soft);
  font-family: var(--atx-mono);
  word-break: break-all;
  user-select: all;
}
.key-row { justify-content: space-between; margin-block: var(--atx-sp-1); }
.key-row code { font-variant-numeric: tabular-nums; }

.agent-list { margin-top: var(--atx-sp-2); display: grid; gap: var(--atx-sp-1); }
.agent-row {
  display: flex;
  align-items: center;
  gap: 0.6em;
  padding: 0.5em 0.7em;
  border: 1px solid var(--atx-border-faint);
  border-radius: var(--atx-r-sm);
  font-size: var(--atx-fs-sm);
}

/* —— 流水表 —— */
.tx-table { width: 100%; border-collapse: collapse; font-size: var(--atx-fs-sm); }
.tx-card { grid-column: 1 / -1; }
.tx-table th {
  text-align: left;
  font-family: var(--atx-mono);
  font-size: var(--atx-fs-xs);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--atx-faint);
  padding: 0.5em 0.6em;
  border-bottom: 1px solid var(--atx-border-faint);
}
.tx-table td {
  padding: 0.55em 0.6em;
  border-bottom: 1px solid var(--atx-border-faint);
  font-variant-numeric: tabular-nums;
}
.tx-table tr:last-child td { border-bottom: none; }
.tx-amt-pos { color: var(--atx-ok); font-family: var(--atx-mono); font-weight: 700; }
.tx-amt-neg { font-family: var(--atx-mono); }

/* —— 结果卡（充值成功页 / mock 收银台）—— */
.result-main { max-width: 440px; padding-block: var(--atx-sp-6); }
.result-card {
  border-radius: var(--atx-r-lg);
  text-align: center;
  padding: var(--atx-sp-4);
  display: grid;
  gap: var(--atx-sp-2);
  justify-items: center;
}
.result-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin: 0;
  border-radius: 50%;
  font-family: var(--atx-mono);
  font-size: var(--atx-fs-lg);
  font-weight: 700;
  background: var(--atx-accent);
  color: var(--atx-on-accent);
}
.result-icon.is-fail { background: var(--atx-danger); }
.result-icon.is-mock { background: transparent; border: 1px dashed var(--atx-border); color: var(--atx-fg-muted); }
.result-card .btn { justify-self: center; }

/* —— 响应式 —— */
@media (max-width: 760px) {
  .dash-grid { grid-template-columns: 1fr; }
}
