/* 按钮保留原生语义、业务事件和尺寸布局；所有材质只依赖主题令牌。 */
[data-ui="button"] {
  box-sizing: border-box;
  min-height: var(--control-height); max-width: 100%;
  font-family: var(--font-ui); font-size: 13px; font-weight: 500; line-height: 1.5;
  color: var(--text); border: 1px solid transparent; border-radius: var(--radius-control);
  background: transparent; cursor: pointer; text-decoration: none;
  transition: background var(--duration-fast), border-color var(--duration-fast),
    box-shadow var(--duration-fast), color var(--duration-fast), transform var(--duration-fast);
}
[data-ui="button"][data-variant="primary"],
[data-ui="button"][data-variant="secondary"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 18px; border-radius: var(--radius-pill); text-align: center;
}
/* 高亮细芯、柔光肩部和静态反射分别成层，斜光始终位于文字后面。 */
[data-ui="button"][data-variant="primary"] {
  --sweep-core: var(--metal-highlight);
  --sweep-shoulder: color-mix(in srgb, var(--metal-highlight) 64%, transparent);
  --button-metal: linear-gradient(160deg, var(--accent-hover), var(--accent) 48%, var(--metal-low));
  color: var(--on-accent); border-color: var(--accent-hover);
  box-shadow: inset 0 1px 1px var(--metal-highlight), inset 0 -1px 1px var(--metal-low);
}
[data-ui="button"][data-variant="secondary"] {
  --sweep-core: color-mix(in srgb, var(--metal-highlight) 52%, transparent);
  --sweep-shoulder: color-mix(in srgb, var(--accent-hover) 24%, transparent);
  --button-metal: linear-gradient(var(--soft-surface), var(--soft-surface));
  color: var(--text); border-color: var(--accent);
  box-shadow: inset 0 1px 0 var(--accent-hover);
}
[data-ui="button"]:is([data-variant="primary"], [data-variant="secondary"]) {
  background-image: linear-gradient(120deg, transparent 40%, var(--sweep-shoulder) 46%,
      var(--sweep-core) 48%, var(--sweep-core) 49%, var(--sweep-shoulder) 51%, transparent 57%),
    linear-gradient(120deg, transparent 9%, var(--sweep-shoulder) 18%, transparent 28%),
    var(--button-metal);
  background-size: 220% 100%, 100% 100%, 100% 100%;
  background-position: 65% 0, 0 0, 0 0;
  background-repeat: no-repeat;
  animation: ui-button-surface-sweep 3s ease-in-out infinite;
}
@media (hover: hover) {
  [data-ui="button"]:is([data-variant="primary"], [data-variant="secondary"]):not(:disabled):not([aria-disabled="true"]):hover {
    --sweep-core: var(--metal-highlight);
    --sweep-shoulder: color-mix(in srgb, var(--metal-highlight) 72%, transparent);
    border-color: var(--metal-highlight);
    animation-duration: 1.8s;
  }
  [data-ui="button"][data-variant="ghost"]:not(:disabled):hover,
  [data-ui="button"][data-variant="icon"]:not(:disabled):hover {
    color: var(--accent-hover); background: var(--hover-surface);
  }
}
[data-ui="button"][data-variant="ghost"] {
  color: var(--accent); padding: 6px 4px;
}
[data-ui="button"][data-variant="icon"] {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; min-width: 44px; padding: 8px; border-color: var(--soft-line);
  background: var(--soft-surface); border-radius: var(--radius-pill);
}
[data-ui="button"][data-variant]:not(:disabled):not([aria-disabled="true"]):active {
  transform: translateY(1px); box-shadow: inset 0 2px 8px var(--shadow);
  animation: none;
  background-position: 65% 0, 0 0, 0 0;
}
[data-ui="button"]:is(:disabled, [aria-disabled="true"]) {
  opacity: .48; cursor: not-allowed; box-shadow: none; animation: none;
  filter: saturate(.4);
  text-shadow: none;
  background-image: var(--button-metal, none);
}
[data-ui="button"][aria-busy="true"] { cursor: progress; }
/* 复合卡片沿用内部排版，只替换其容器状态。 */
[data-ui="button"][data-variant="card"] {
  border: 1px solid var(--soft-line); background: var(--surface);
  border-radius: var(--radius-panel); padding: 14px;
}
[data-ui="button"][data-variant="card"]:is(:hover, [aria-pressed="true"]) {
  border-color: var(--accent); background: var(--hover-surface);
}
.header { min-height: 68px; height: auto; padding-block: 12px; }
.header .wallet-button { min-height: 44px; height: auto; padding: 8px 10px; font-size: 11px; }
.header .menu-button { width: 44px; height: 44px; }
.header .brand { font-size: clamp(15px, 5vw, 21px); white-space: nowrap; }
/* 固定宽度的卡片购买列使用紧凑横向间距，但保留可触摸高度。 */
.plan-row [data-ui="button"] { padding-inline: 10px; font-size: 12px; }
.verification-input-wrap [data-ui="button"] { border: 0; background: transparent; }
/* 首帧光带位于左侧，先扫出右边，再从左侧进入；每轮只短暂停留。 */
@keyframes ui-button-surface-sweep {
  0% { background-position: 65% 0, 0 0, 0 0; }
  58%, 70% { background-position: -65% 0, 0 0, 0 0; }
  70.01% { background-position: 130% 0, 0 0, 0 0; }
  100% { background-position: 65% 0, 0 0, 0 0; }
}

/* 广场图片仅保留上部展示，原烘焙按钮由真实可换肤控件替代。 */
.launch-market-visual { aspect-ratio: 1226 / 900; }
.launch-market-banner { position: absolute; inset: 0; width: 100%; height: auto; }
[data-ui="button"].launch-banner-create {
  position: relative; inset: auto; width: 100%; height: auto; margin-top: 12px;
}
