/**
 * 商家 Dashboard V2.0
 * 仅在商家布局和首页作用域内覆盖旧版外观，不改变业务控件或接口行为。
 */

.merchant-body {
  min-width: 0;
  color: var(--lx-color-text-primary);
  background: var(--lx-color-bg-page);
  font-family: var(--lx-font-family);
  font-size: var(--lx-font-size-md);
}

.merchant-layout-v2.app-container {
  min-width: 0;
  padding: 0;
  background: var(--lx-color-bg-page);
}

.merchant-layout-v2 .fixed-header.lx-header {
  position: sticky;
  top: 0;
  right: auto;
  left: auto;
  grid-area: header;
  height: var(--lx-topbar-height);
  padding: 0 var(--lx-page-padding);
  color: var(--lx-color-text-primary);
  border-bottom: 1px solid var(--lx-color-border);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: none;
}

.merchant-layout-v2 .merchant-header-brand {
  display: none;
}

.merchant-layout-v2 .header-search {
  width: min(440px, 36vw);
  height: var(--lx-control-height);
  margin-right: auto;
  border: 1px solid var(--lx-color-border);
  border-radius: var(--lx-radius-md);
  background: var(--lx-color-bg-subtle);
}

.merchant-layout-v2 .header-search span,
.merchant-layout-v2 .header-search input::placeholder {
  color: var(--lx-color-text-tertiary);
}

.merchant-layout-v2 .header-search input {
  color: var(--lx-color-text-primary);
}

.merchant-layout-v2 .merchant-user {
  gap: var(--lx-space-8);
  color: var(--lx-color-text-primary);
}

.merchant-layout-v2 .header-badge {
  color: var(--lx-color-success);
  background: var(--lx-color-success-soft);
}

.merchant-layout-v2 .header-wallet,
.merchant-layout-v2 .account-button {
  height: var(--lx-control-height);
  border-color: var(--lx-color-border);
  border-radius: var(--lx-radius-md);
  color: var(--lx-color-text-primary);
  background: var(--lx-color-bg-card);
}

.merchant-layout-v2 .header-wallet span,
.merchant-layout-v2 .account-button::after {
  color: var(--lx-color-text-tertiary);
}

.merchant-layout-v2 .header-wallet b {
  color: var(--lx-color-text-primary);
}

.merchant-layout-v2 .header-wallet button {
  height: 26px;
  color: var(--lx-color-primary);
  background: var(--lx-color-primary-soft);
  font-weight: var(--lx-font-weight-semibold);
}

.merchant-layout-v2 .account-dropdown {
  border-color: var(--lx-color-border);
  border-radius: var(--lx-radius-card);
  box-shadow: var(--lx-shadow-dropdown);
}

.merchant-layout-v2 .account-dropdown .logout-link {
  color: var(--lx-color-text-inverse);
  background: var(--lx-color-primary);
}

.merchant-menu-toggle,
.merchant-sidebar-scrim {
  display: none;
}

.merchant-layout-v2 .app-sidebar-container.lx-layout__sidebar {
  position: sticky;
  top: 0;
  left: auto;
  z-index: var(--lx-z-sticky);
  grid-area: sidebar;
  width: auto;
  height: 100vh;
  height: 100dvh;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-right: 1px solid var(--lx-color-border);
  border-radius: 0;
  background: var(--lx-color-bg-card);
  box-shadow: none;
}

.merchant-layout-v2 .sidebar-menu.lx-sidebar__nav {
  display: block;
  width: 100%;
  padding: var(--lx-space-12);
}

.merchant-layout-v2 .sidebar-item.lx-sidebar__item {
  width: 100%;
  min-height: 40px;
  height: auto;
  margin: 0 0 var(--lx-space-4);
  padding: var(--lx-space-8) var(--lx-space-12);
  border-radius: var(--lx-radius-md);
  color: var(--lx-color-text-secondary);
  background: transparent;
  font-size: var(--lx-font-size-md);
  font-weight: var(--lx-font-weight-medium);
  transform: none;
}

.merchant-layout-v2 .sidebar-item::before {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: var(--lx-radius-sm);
  color: var(--lx-color-text-tertiary);
  background: var(--lx-color-bg-subtle);
}

.merchant-layout-v2 .sidebar-item:hover {
  color: var(--lx-color-text-primary);
  background: var(--lx-color-bg-hover);
}

.merchant-layout-v2 .sidebar-item.is-active,
.merchant-layout-v2 .sidebar-item[aria-current="page"] {
  color: var(--lx-color-primary);
  background: var(--lx-color-primary-soft);
}

.merchant-layout-v2 .sidebar-item.is-active::before,
.merchant-layout-v2 .sidebar-item[aria-current="page"]::before {
  color: var(--lx-color-primary);
  background: var(--lx-color-bg-card);
}

.merchant-layout-v2 .app-main.lx-page,
.reference-page-mode .merchant-layout-v2 .app-main.lx-page,
.reference-page-mode.publish-route-mode .merchant-layout-v2 .app-main.lx-page {
  grid-area: page;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: var(--lx-page-padding);
  overflow-x: clip;
  background: var(--lx-color-bg-page);
}

.merchant-layout-v2 .merchant-panel {
  border-color: var(--lx-color-border);
  border-radius: var(--lx-radius-card);
  background: var(--lx-color-bg-card);
  box-shadow: var(--lx-shadow-card);
}

.merchant-layout-v2 .merchant-page-heading {
  margin-bottom: var(--lx-space-20);
  padding: var(--lx-space-20) var(--lx-space-24);
  overflow: visible;
  background: var(--lx-color-bg-card);
}

.merchant-layout-v2 .merchant-page-heading::after {
  display: none;
}

.merchant-layout-v2 .summary-heading {
  margin: 0;
}

.merchant-layout-v2 .panel-kicker {
  margin-bottom: var(--lx-space-4);
  color: var(--lx-color-primary);
  font-weight: var(--lx-font-weight-semibold);
}

.merchant-layout-v2 .summary-panel h1 {
  color: var(--lx-color-text-primary);
  font-size: var(--lx-font-size-3xl);
  font-weight: var(--lx-font-weight-semibold);
  letter-spacing: 0;
}

.merchant-layout-v2 .summary-panel p {
  margin-top: var(--lx-space-4);
  color: var(--lx-color-text-secondary);
  font-size: var(--lx-font-size-md);
}

.merchant-layout-v2 .summary-actions {
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--lx-space-8);
}

.merchant-layout-v2 .summary-actions .soft-action {
  min-width: 80px;
  height: auto;
  transform: none;
}

.merchant-section-heading small,
.merchant-source-footer span {
  color: var(--lx-color-text-tertiary);
  font-size: var(--lx-font-size-xs);
}

[data-source="realtime"] {
  color: var(--lx-color-success) !important;
}

[data-source="compatibility"] {
  color: var(--lx-color-warning) !important;
}

[data-source="cache"] {
  color: var(--lx-color-danger) !important;
}

.merchant-layout-v2 .workspace-panel.lx-content {
  min-width: 0;
  margin: 0;
}

.merchant-dashboard-active .merchant-layout-v2 .workspace-panel.lx-content {
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

@media (min-width: 1024px) {
  body:not(.reference-page-mode) .merchant-layout-v2 .app-main.lx-page {
    padding-right: max(var(--lx-page-padding), 160px);
  }
}

.merchant-dashboard-v2 {
  display: grid;
  min-width: 0;
  gap: var(--lx-space-20);
}

.merchant-dashboard-section {
  min-width: 0;
}

.merchant-section-heading,
.merchant-dashboard-v2 .lx-card__header {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: var(--lx-space-16);
}

.merchant-section-heading {
  margin-bottom: var(--lx-space-12);
}

.merchant-section-heading span,
.merchant-dashboard-v2 .lx-card__header span {
  display: block;
  margin-bottom: 2px;
  color: var(--lx-color-text-tertiary);
  font-size: var(--lx-font-size-xs);
}

.merchant-section-heading h2,
.merchant-dashboard-v2 .lx-card__header h2 {
  margin: 0;
  color: var(--lx-color-text-primary);
  font-size: var(--lx-font-size-lg);
  font-weight: var(--lx-font-weight-semibold);
  letter-spacing: 0;
}

.merchant-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--lx-space-12);
}

.merchant-metric-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.merchant-metric-card .lx-card__body {
  position: relative;
  padding: var(--lx-space-16) var(--lx-space-20);
}

.merchant-metric-card__mark {
  position: absolute;
  top: var(--lx-space-16);
  right: var(--lx-space-16);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--lx-color-border-strong);
}

.merchant-metric-card--balance .merchant-metric-card__mark,
.merchant-metric-card--activity .merchant-metric-card__mark {
  background: var(--lx-color-primary);
}

.merchant-metric-card--coins .merchant-metric-card__mark,
.merchant-metric-card--repayment .merchant-metric-card__mark {
  background: var(--lx-color-warning);
}

.merchant-metric-card--principal .merchant-metric-card__mark {
  background: var(--lx-color-info);
}

.merchant-metric-card--order .merchant-metric-card__mark {
  background: var(--lx-color-danger);
}

.merchant-dashboard-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: var(--lx-space-20);
}

.merchant-dashboard-columns--lower {
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
}

.merchant-dashboard-v2 .lx-card__header {
  min-height: 60px;
  padding: var(--lx-space-12) var(--lx-space-20);
}

.merchant-pending-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--lx-space-8);
}

.merchant-pending-item {
  display: flex;
  min-width: 0;
  min-height: 72px;
  align-items: center;
  justify-content: space-between;
  gap: var(--lx-space-12);
  padding: var(--lx-space-12);
  border: 1px solid var(--lx-color-border);
  border-radius: var(--lx-radius-md);
  color: var(--lx-color-text-primary);
  background: var(--lx-color-bg-card);
  text-align: left;
  cursor: pointer;
  transition: border-color var(--lx-duration-fast) var(--lx-easing-standard), background-color var(--lx-duration-fast) var(--lx-easing-standard);
}

.merchant-pending-item:hover,
.merchant-pending-item:focus-visible {
  border-color: var(--lx-color-primary-border);
  background: var(--lx-color-primary-soft);
}

.merchant-pending-item:focus-visible {
  outline: 2px solid var(--lx-color-primary);
  outline-offset: 2px;
}

.merchant-pending-item span,
.merchant-pending-item strong,
.merchant-pending-item small {
  display: block;
  min-width: 0;
}

.merchant-pending-item strong {
  font-size: var(--lx-font-size-sm);
}

.merchant-pending-item small {
  margin-top: var(--lx-space-4);
  overflow: hidden;
  color: var(--lx-color-text-tertiary);
  font-size: var(--lx-font-size-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.merchant-pending-item b {
  flex: 0 0 auto;
  color: var(--lx-color-primary);
  font-size: var(--lx-font-size-xl);
}

.merchant-quick-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--lx-space-8);
}

.merchant-quick-action.lx-button {
  min-width: 0;
  min-height: 72px;
  align-items: flex-start;
  flex-direction: column;
  padding: var(--lx-space-12);
  white-space: normal;
}

.merchant-quick-action strong,
.merchant-quick-action span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.merchant-quick-action span {
  color: var(--lx-color-text-tertiary);
  font-size: var(--lx-font-size-xs);
}

.merchant-activity-list {
  padding: 0;
}

.merchant-activity-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.3fr) auto minmax(180px, 1fr) auto;
  gap: var(--lx-space-16);
  min-width: 0;
  min-height: 72px;
  align-items: center;
  padding: var(--lx-space-12) var(--lx-space-20);
}

.merchant-activity-row + .merchant-activity-row {
  border-top: 1px solid var(--lx-color-divider);
}

.merchant-activity-row__main,
.merchant-activity-row__main strong,
.merchant-activity-row__main span {
  min-width: 0;
}

.merchant-activity-row__main strong,
.merchant-activity-row__main span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.merchant-activity-row__main strong {
  font-size: var(--lx-font-size-sm);
}

.merchant-activity-row__main span {
  margin-top: var(--lx-space-4);
  color: var(--lx-color-text-tertiary);
  font-size: var(--lx-font-size-xs);
}

.merchant-activity-row__progress div {
  display: flex;
  justify-content: space-between;
  gap: var(--lx-space-8);
  color: var(--lx-color-text-tertiary);
  font-size: var(--lx-font-size-xs);
}

.merchant-activity-row__progress b {
  color: var(--lx-color-text-secondary);
  font-weight: var(--lx-font-weight-medium);
}

.merchant-activity-row__progress > i {
  display: block;
  height: 5px;
  margin-top: var(--lx-space-8);
  overflow: hidden;
  border-radius: var(--lx-radius-pill);
  background: var(--lx-color-bg-disabled);
}

.merchant-activity-row__progress em {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--lx-color-primary);
}

.merchant-risk-list {
  min-height: 180px;
}

.merchant-risk-item {
  padding: var(--lx-space-12) 0;
}

.merchant-risk-item + .merchant-risk-item {
  border-top: 1px solid var(--lx-color-divider);
}

.merchant-risk-item > div {
  display: flex;
  align-items: center;
  gap: var(--lx-space-8);
}

.merchant-risk-item > span {
  display: block;
  margin-top: var(--lx-space-8);
  color: var(--lx-color-text-secondary);
  font-size: var(--lx-font-size-sm);
}

.merchant-risk-empty {
  min-height: 154px;
  padding: var(--lx-space-16);
}

.merchant-risk-empty .lx-empty-state__icon {
  border-color: var(--lx-color-success-border);
  color: var(--lx-color-success);
  background: var(--lx-color-success-soft);
}

.merchant-source-footer {
  flex-wrap: wrap;
  justify-content: space-between;
}

@media (min-width: 1600px) {
  .merchant-dashboard-metrics {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (max-width: 1180px) {
  .merchant-dashboard-columns,
  .merchant-dashboard-columns--lower {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1023px) {
  .merchant-layout-v2 .fixed-header.lx-header {
    position: sticky;
  }

  .merchant-layout-v2 .merchant-header-brand,
  .merchant-menu-toggle {
    display: flex;
  }

  .merchant-menu-toggle {
    flex: 0 0 var(--lx-icon-button-size);
  }

  .merchant-layout-v2 .merchant-header-brand {
    min-width: 0;
    margin-right: auto;
  }

  .merchant-layout-v2 .merchant-header-brand .brand-mark {
    width: 34px;
    height: 34px;
    border-radius: var(--lx-radius-md);
    background: var(--lx-color-primary);
    box-shadow: none;
  }

  .merchant-layout-v2 .merchant-header-brand .brand-copy strong {
    color: var(--lx-color-text-primary);
  }

  .merchant-layout-v2 .merchant-header-brand .brand-copy small {
    color: var(--lx-color-text-tertiary);
  }

  .merchant-layout-v2 .header-search {
    display: none;
  }

  .merchant-layout-v2 .app-sidebar-container.lx-layout__sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: var(--lx-z-modal);
    display: flex;
    width: min(300px, calc(100vw - 48px));
    height: 100vh;
    height: 100dvh;
    visibility: hidden;
    transform: translateX(-100%);
    transition: transform var(--lx-duration-normal) var(--lx-easing-standard), visibility var(--lx-duration-normal) var(--lx-easing-standard);
  }

  .merchant-layout-v2.is-mobile-menu-open .app-sidebar-container.lx-layout__sidebar {
    visibility: visible;
    transform: translateX(0);
  }

  .merchant-sidebar-scrim {
    position: fixed;
    inset: 0;
    z-index: var(--lx-z-overlay);
    border: 0;
    background: var(--lx-color-overlay);
  }

  .merchant-layout-v2.is-mobile-menu-open .merchant-sidebar-scrim {
    display: block;
  }
}

@media (max-width: 767px) {
  .merchant-layout-v2 .fixed-header.lx-header {
    gap: var(--lx-space-8);
  }

  .merchant-layout-v2 .merchant-header-brand .brand-copy,
  .merchant-layout-v2 .header-badge,
  .merchant-layout-v2 .header-wallet,
  .merchant-layout-v2 .account-button::after {
    display: none;
  }

  .merchant-layout-v2 .account-button {
    width: var(--lx-icon-button-size);
    padding: 0;
    overflow: hidden;
    font-size: 0;
  }

  .merchant-layout-v2 .account-button::before {
    content: "我";
    font-size: var(--lx-font-size-sm);
  }

  .merchant-layout-v2 .merchant-page-heading {
    padding: var(--lx-space-16);
  }

  .merchant-layout-v2 .summary-heading {
    display: block;
  }

  .merchant-layout-v2 .summary-actions {
    width: 100%;
    margin-top: var(--lx-space-16);
    justify-content: flex-start;
  }

  .merchant-layout-v2 .summary-actions .lx-button {
    flex: 1 1 0;
  }

  .merchant-dashboard-metrics {
    grid-template-columns: minmax(0, 1fr);
  }

  .merchant-pending-list,
  .merchant-quick-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .merchant-activity-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--lx-space-8) var(--lx-space-12);
    padding: var(--lx-space-12) var(--lx-space-16);
  }

  .merchant-activity-row__status {
    justify-self: end;
  }

  .merchant-activity-row__progress {
    grid-column: 1 / -1;
  }

  .merchant-activity-row > .lx-button {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .merchant-dashboard-active .contact-float {
    right: 4px;
    bottom: 72px;
    transform: scale(0.72);
    transform-origin: right bottom;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .merchant-dashboard-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .merchant-layout-v2 .app-sidebar-container.lx-layout__sidebar,
  .merchant-pending-item {
    transition: none;
  }
}
