:root {
  --bs-primary: #174ea6;
  --bs-primary-rgb: 23, 78, 166;
  --bs-secondary-color: #6a7687;
  --app-bg: #eef2f7;
  --app-surface: #f7f9fc;
  --app-border: #d7e0ea;
  --app-dark: #102033;
  --app-text: #162234;
  --app-muted: #6a7687;
  --app-success: #0f8a5f;
  --app-warning: #b56a12;
  --app-danger: #c23a3a;
  --app-disclaimer-height: 0px;
  --app-navbar-height: 72px;
  --app-motion-duration-fast: 180ms;
  --app-motion-duration-base: 240ms;
  --app-motion-duration-slow: 320ms;
  --app-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* 全局滚动条（灰色、轻量、美观） */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(120, 132, 150, 0.55) rgba(235, 240, 247, 0.75);
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: rgba(235, 240, 247, 0.75);
  border-radius: 999px;
}

*::-webkit-scrollbar-thumb {
  background: rgba(120, 132, 150, 0.55);
  border-radius: 999px;
  border: 2px solid rgba(235, 240, 247, 0.75);
}

*::-webkit-scrollbar-thumb:hover {
  background: rgba(120, 132, 150, 0.75);
}

body.app-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(23, 78, 166, 0.08), transparent 24%),
    linear-gradient(180deg, #f8fafd 0%, var(--app-bg) 100%);
  color: var(--app-text);
}

.app-main {
  padding-top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 1.5rem) !important;
}

.app-disclaimer {
  z-index: 1041;
  background: #fff4cf;
  border-bottom: 1px solid #ead28a;
  color: #654f0b;
}

.app-navbar {
  top: var(--app-disclaimer-height);
  z-index: 1040;
  min-height: var(--app-navbar-height);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
}

.app-navbar .navbar-brand {
  color: var(--app-dark);
  letter-spacing: 0.01em;
}

.app-navbar .nav-link {
  color: var(--app-muted);
  font-weight: 500;
}

.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus {
  color: var(--bs-primary);
}

.app-account-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  background: #fff;
}

.app-account-meta {
  display: flex;
  flex-direction: column;
  min-width: 140px;
}

.app-account-name {
  font-weight: 700;
  color: var(--app-dark);
  line-height: 1.2;
}

.app-account-email {
  font-size: 0.8125rem;
  color: var(--app-muted);
  line-height: 1.2;
}

.app-top-statuses,
.tool-status-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.app-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 34px;
  padding: 0 0.75rem;
  border: 1px solid var(--app-border);
  border-radius: 999px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  font-size: 0.8125rem;
  white-space: nowrap;
}

.app-status-pill-strong {
  min-height: 40px;
  padding: 0 0.9rem;
}

.app-footer {
  background: rgba(255, 255, 255, 0.78);
}

.card {
  border-radius: 1.1rem;
}

/* 全站动效统一为更顺滑的缓动与节奏 */
a,
button,
.btn,
.form-control,
.form-select,
.nav-link,
.dropdown-item,
.page-link,
.accordion-button,
.card,
.modal-content,
.offcanvas,
.alert,
.badge {
  transition-timing-function: var(--app-motion-ease);
}

.btn,
.nav-link,
.dropdown-item,
.page-link,
.accordion-button {
  transition-duration: var(--app-motion-duration-fast);
}

.card,
.modal-content,
.offcanvas,
.alert,
.badge,
.form-control,
.form-select {
  transition-duration: var(--app-motion-duration-base);
}

.fade {
  transition: opacity var(--app-motion-duration-base) var(--app-motion-ease);
}

.collapsing {
  transition: height var(--app-motion-duration-base) var(--app-motion-ease),
    width var(--app-motion-duration-base) var(--app-motion-ease);
}

.app-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.15rem 0.75rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.app-kicker-light {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.app-hero-card {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.app-gradient-panel {
  background: linear-gradient(180deg, #17345f 0%, #102845 100%);
}

.app-info-chip,
.app-stat-card,
.app-soft-panel,
.tool-side-card {
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  background: #fff;
  padding: 1rem;
}

.tool-side-card + .tool-side-card {
  margin-top: 1rem;
}

.tool-side-title {
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.app-info-chip {
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.app-stat-card {
  background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
  box-shadow: 0 8px 24px rgba(16, 32, 51, 0.05);
}

.app-dark-card {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.08);
  padding: 1rem;
}

.app-module-card {
  border-color: var(--app-border) !important;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.app-module-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(16, 32, 51, 0.08);
  transition: 0.2s ease;
}

.app-icon-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 0.75rem;
  border-radius: 0.85rem;
  border: 1px solid var(--app-border);
  background: linear-gradient(180deg, #eef3fb 0%, #e3ecf8 100%);
  color: var(--bs-primary);
  font-weight: 700;
  font-size: 0.8rem;
}

.app-icon-badge svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
}

.app-icon-badge-lg {
  min-width: 52px;
  height: 52px;
}

.tool-sticky-header {
  position: sticky;
  top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 12px);
  z-index: 1020;
}

.app-sticky-sidebar {
  position: sticky;
  top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 112px);
}

.tool-card-link {
  display: flex;
  gap: 0.9rem;
  padding: 1rem;
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  background: linear-gradient(180deg, #fff 0%, #fbfcff 100%);
  color: inherit;
  text-decoration: none;
  transition: 0.2s ease;
}

.tool-card-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(16, 32, 51, 0.08);
}

.tool-card-link.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  box-shadow: 0 16px 38px rgba(16, 32, 51, 0.08);
}

.tool-card-icon {
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.95rem;
  border: 1px solid var(--app-border);
  color: var(--bs-primary);
  background: linear-gradient(180deg, #eef3fb 0%, #e3ecf8 100%);
}

.tool-card-icon svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
}

.tool-card-body {
  min-width: 0;
  flex: 1;
}

.tool-cta-panel {
  min-width: 220px;
}

.tool-radio-card,
.tool-check-card {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 0.95rem;
  border: 1px solid var(--app-border);
  border-radius: 0.9rem;
  background: #fff;
}

.app-pricing-card {
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  padding: 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.app-pricing-card-primary {
  background: linear-gradient(180deg, #17345f 0%, #102845 100%);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.18);
}

.result-box {
  min-height: 96px;
  border: 1px dashed #c7d2e1;
  border-radius: 1rem;
  background: #fafcff;
  padding: 1rem;
}

.result-box.empty {
  color: var(--app-muted);
}

.result-section + .result-section {
  margin-top: 1.25rem;
}

.issue-card {
  border: 1px solid var(--app-border);
  border-left: 4px solid #d59b26;
  border-radius: 0.95rem;
  background: #fff;
  padding: 1rem;
  box-shadow: 0 8px 22px rgba(16, 32, 51, 0.04);
}

.issue-card + .issue-card {
  margin-top: 0.875rem;
}

.issue-card.high,
.issue-card.critical {
  border-left-color: var(--app-danger);
}

.issue-card.medium {
  border-left-color: var(--app-warning);
}

.issue-card.low {
  border-left-color: var(--app-success);
}

.issue-quote {
  display: inline-block;
  margin-bottom: 0.75rem;
  padding: 0.3rem 0.55rem;
  border-radius: 0.6rem;
  background: #eef3f9;
  font-size: 0.8125rem;
  font-family: var(--bs-font-monospace);
}

.pre-box {
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid var(--app-border);
  border-radius: 0.95rem;
  background: #fff;
  padding: 1rem;
}

.note-list {
  margin: 0;
  padding-left: 1.1rem;
}

/* 线索源列表：卡片样式（全球企业库/海关数据/筛选中心通用） */
.empty-state-card {
  border: 1px dashed rgba(199, 210, 225, 0.95);
  border-radius: 1rem;
  background: rgba(250, 252, 255, 0.92);
  padding: 1rem;
}

.soft-card {
  border: 1px solid rgba(214, 227, 242, 0.95);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 30px rgba(16, 32, 51, 0.06);
  backdrop-filter: blur(14px);
}

.lead-source-card {
  padding: 1rem;
}

.kpi-high {
  color: var(--app-danger);
}

.kpi-medium {
  color: var(--app-warning);
}

.kpi-low {
  color: var(--app-success);
}

@media (max-width: 1199.98px) {
  .app-sticky-sidebar,
  .tool-sticky-header {
    position: static;
  }
}

@media (max-width: 991.98px) {
  .app-main {
    padding-top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 1rem) !important;
  }

  .app-account-strip {
    width: 100%;
    justify-content: center;
  }

  .app-account-meta {
    width: 100%;
    align-items: center;
    text-align: center;
  }

  .app-top-statuses,
  .tool-status-group {
    justify-content: center;
  }
}

@media (max-width: 767.98px) {
  :root {
    --app-disclaimer-height: 0px;
    --app-navbar-height: 64px;
  }

  .app-main {
    padding-bottom: 1.5rem !important;
  }

  .app-status-pill,
  .tool-card-link,
  .tool-cta-panel {
    width: 100%;
  }
}

.tool-category-group + .tool-category-group {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--app-border);
}

.tool-category-label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0f4c81;
}

.tool-empty-category {
  padding: 0.95rem 1rem;
  border: 1px dashed var(--app-border);
  border-radius: 0.9rem;
  background: linear-gradient(180deg, #fbfcff 0%, #f4f8fc 100%);
  color: var(--app-text-muted);
  font-size: 0.94rem;
}

/* =========================================================
   User-side refresh: Bootstrap SaaS + youthful soft-neumorphism
   ========================================================= */
:root {
  --bs-primary: #5b6cff;
  --bs-primary-rgb: 91, 108, 255;
  --app-bg: #eef3fb;
  --app-surface: #f7f9fe;
  --app-surface-strong: #ffffff;
  --app-border: rgba(138, 154, 196, 0.26);
  --app-text: #182338;
  --app-muted: #6f7b94;
  --app-accent: #7a5cff;
  --app-accent-soft: #eff1ff;
  --app-pink: #ff7eb8;
  --app-cyan: #55d6ff;
}

body.app-body {
  background:
    radial-gradient(circle at 8% 10%, rgba(122, 92, 255, 0.14), transparent 22%),
    radial-gradient(circle at 92% 6%, rgba(85, 214, 255, 0.16), transparent 18%),
    radial-gradient(circle at 20% 100%, rgba(255, 126, 184, 0.14), transparent 18%),
    linear-gradient(180deg, #f8fbff 0%, #eef3fb 100%);
  color: var(--app-text);
}

.app-main {
  padding-top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 1.75rem) !important;
}

.app-disclaimer {
  background: rgba(255, 245, 214, 0.96);
  border-bottom: 1px solid rgba(228, 199, 105, 0.6);
  color: #735700;
  backdrop-filter: blur(14px);
}

.app-navbar {
  background: rgba(248, 251, 255, 0.84);
  backdrop-filter: blur(24px);
  border-color: rgba(255, 255, 255, 0.8) !important;
  box-shadow: 0 18px 42px rgba(97, 120, 172, 0.10);
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 1rem;
  margin-right: 0.7rem;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: none;
  overflow: hidden;
}

.brand-mark-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.app-navbar .nav-link {
  position: relative;
  padding: 0.7rem 1rem;
  border-radius: 999px;
  color: #536078;
  font-weight: 700;
}

.app-navbar .nav-link.active,
.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.app-account-strip {
  gap: 0.85rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.88);
  border-radius: 1.25rem;
  background: linear-gradient(145deg, rgba(255,255,255,0.92), rgba(240,245,255,0.96));
  box-shadow: 10px 10px 24px rgba(194, 204, 224, 0.28), -8px -8px 18px rgba(255, 255, 255, 0.88);
}

.app-account-caption {
  font-size: 0.82rem;
  color: var(--app-muted);
}

.app-footer {
  background: rgba(248, 251, 255, 0.8);
  backdrop-filter: blur(14px);
}

.neo-card,
.neo-hero,
.neo-floating-panel,
.dashboard-panel,
.workspace-sidebar-card,
.workspace-content-panel,
.category-card,
.feature-bucket-card,
.pricing-card,
.landing-side-panel,
.summary-tile,
.app-soft-panel,
.tool-side-card,
.app-info-chip,
.result-box,
.tool-module-shell .card-body {
  border: 1px solid rgba(255, 255, 255, 0.82);
  background: linear-gradient(145deg, rgba(255,255,255,0.94), rgba(241,246,255,0.96));
  box-shadow: 16px 16px 34px rgba(184, 197, 220, 0.22), -12px -12px 28px rgba(255,255,255,0.86);
}

.neo-hero,
.landing-side-panel,
.pricing-card,
.workspace-content-panel,
.dashboard-panel {
  border-radius: 2rem;
  padding: 1.5rem;
}

.neo-hero {
  padding: 2rem;
}

.neo-hero-user {
  position: relative;
  overflow: hidden;
}

.neo-hero-user::after,
.landing-hero-section .neo-hero::after {
  content: '';
  position: absolute;
  inset: auto -10% -35% auto;
  width: 240px;
  height: 240px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(122, 92, 255, 0.16) 0%, rgba(122, 92, 255, 0) 72%);
  pointer-events: none;
}

.neo-floating-panel {
  padding: 1.35rem;
  border-radius: 1.65rem;
}

.app-kicker {
  background: linear-gradient(135deg, rgba(91,108,255,0.14), rgba(85,214,255,0.12));
  color: var(--bs-primary);
  letter-spacing: 0.08em;
  font-size: 0.72rem;
}

.summary-grid {
  display: grid;
  gap: 1rem;
}

.summary-grid-home,
.summary-grid-tool,
.summary-grid-user {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.summary-tile {
  padding: 1.1rem 1.15rem;
  border-radius: 1.5rem;
}

.summary-tile-label {
  font-size: 0.82rem;
  color: var(--app-muted);
  margin-bottom: 0.55rem;
}

.summary-tile-value {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--app-text);
  margin-bottom: 0.35rem;
}

.summary-tile-note {
  font-size: 0.82rem;
  color: var(--app-muted);
}

.landing-side-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.landing-stack {
  display: grid;
  gap: 0.95rem;
}

.landing-stack-card {
  padding: 1rem 1.05rem;
  border-radius: 1.35rem;
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(255,255,255,0.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.62);
}

.landing-stack-card strong,
.feature-bucket-card h3,
.category-card h3,
.dashboard-panel h2,
.workspace-hero h1 {
  color: var(--app-text);
}

.feature-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.feature-chip {
  display: inline-flex;
  align-items: center;
  min-height: 2.35rem;
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  text-decoration: none;
  color: #41506a;
  font-weight: 600;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(255,255,255,0.88);
  box-shadow: 8px 8px 18px rgba(191, 201, 223, 0.18), -6px -6px 16px rgba(255,255,255,0.82);
}

.feature-chip:hover,
.feature-chip:focus {
  color: var(--bs-primary);
  transform: translateY(-1px);
}

.workspace-sidebar,
.dashboard-sidebar {
  top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 1rem);
}

.workspace-sidebar-card,
.dashboard-sidebar-card {
  padding: 1rem 1rem 0.95rem;
  border-radius: 1.4rem;
}

.workspace-nav-stack,
.dashboard-anchor-nav {
  display: grid;
  gap: 0.55rem;
}

.workspace-nav-link,
.dashboard-anchor-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.72rem 0.82rem;
  border-radius: 1rem;
  text-decoration: none;
  color: #40506a;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.workspace-nav-link:hover,
.workspace-nav-link:focus,
.dashboard-anchor-link:hover,
.dashboard-anchor-link:focus,
.workspace-nav-link.is-active {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.08);
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), 0.08);
}

.workspace-nav-icon {
  width: 2.2rem;
  height: 2.2rem;
  flex: 0 0 2.2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.95rem;
  color: var(--bs-primary);
  background: linear-gradient(135deg, rgba(91,108,255,0.10), rgba(85,214,255,0.12));
}

.workspace-nav-icon svg,
.hero-icon-badge svg {
  width: 1.2rem;
  height: 1.2rem;
  stroke: currentColor;
}

.workspace-nav-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.workspace-nav-text strong {
  font-size: 0.93rem;
}

.workspace-nav-text small {
  color: var(--app-muted);
}

.workspace-count-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.7rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 800;
}

.workspace-hero {
  border-radius: 2rem;
  padding: 1.75rem;
}

.hero-icon-badge {
  width: 4rem;
  height: 4rem;
  flex: 0 0 4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 1.4rem;
  color: var(--bs-primary);
  background: linear-gradient(135deg, rgba(91,108,255,0.12), rgba(85,214,255,0.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
}

.dashboard-page,
.workspace-page {
  padding-bottom: 0.5rem;
}

.dashboard-anchor-link {
  font-weight: 700;
}

.mini-stat-stack {
  display: grid;
  gap: 0.9rem;
}

.mini-stat-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 0.9rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.7);
}

.mini-stat-item span,
.small.text-secondary {
  color: var(--app-muted) !important;
}

.dashboard-panel-head,
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.dashboard-table-wrap {
  border-radius: 1.25rem;
  overflow: hidden;
}

.dashboard-table {
  --bs-table-bg: transparent;
  margin-bottom: 0;
}

.dashboard-table thead th {
  border-bottom: 0;
  background: rgba(239, 244, 255, 0.9);
  color: #4c5a73;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.dashboard-table tbody td {
  border-color: rgba(208, 217, 236, 0.46);
  color: var(--app-text);
}

.dashboard-table tbody tr:hover {
  --bs-table-accent-bg: rgba(244, 247, 255, 0.82);
}

.soft-input,
.form-control,
.form-select {
  border-radius: 1rem;
  border-color: rgba(196, 207, 228, 0.86);
  background: rgba(255,255,255,0.88);
  box-shadow: inset 2px 2px 6px rgba(213, 220, 235, 0.20), inset -2px -2px 6px rgba(255,255,255,0.86);
}

.soft-input:focus,
.form-control:focus,
.form-select:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.42);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.12);
}

.btn {
  border-radius: 999px;
  font-weight: 700;
}

.btn-primary {
  background: linear-gradient(135deg, var(--bs-primary) 0%, var(--app-accent) 100%);
  border-color: transparent;
  box-shadow: 0 16px 28px rgba(91, 108, 255, 0.22);
}

.btn-outline-primary {
  border-color: rgba(var(--bs-primary-rgb), 0.18);
  color: var(--bs-primary);
  background: rgba(255,255,255,0.68);
}

.tool-side-card {
  padding: 1.05rem 1.1rem;
  border-radius: 1.35rem;
}

.tool-side-title {
  margin-bottom: 0.8rem;
  font-size: 1rem;
}

.note-list {
  display: grid;
  gap: 0.55rem;
  padding-left: 1.15rem;
  margin: 0;
  color: #465571;
}

.result-box {
  min-height: 132px;
  border-style: solid;
  border-radius: 1.5rem;
  background: linear-gradient(145deg, rgba(255,255,255,0.94), rgba(246,249,255,0.96));
}

.tool-radio-card,
.tool-check-card {
  border-radius: 999px;
  background: rgba(255,255,255,0.82);
}

.pricing-tier {
  padding: 1rem 1.05rem;
  border-radius: 1.35rem;
  background: rgba(255,255,255,0.74);
  border: 1px solid rgba(255,255,255,0.88);
}

.pricing-tier-primary {
  background: linear-gradient(135deg, #5b6cff 0%, #7a5cff 100%);
  color: #fff;
  box-shadow: 0 18px 32px rgba(91, 108, 255, 0.24);
}

@media (max-width: 1199.98px) {
  .summary-grid-home,
  .summary-grid-tool,
  .summary-grid-user {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace-sidebar,
  .dashboard-sidebar {
    position: static !important;
    top: auto !important;
  }
}

@media (max-width: 767.98px) {
  .summary-grid-home,
  .summary-grid-tool,
  .summary-grid-user {
    grid-template-columns: minmax(0, 1fr);
  }

  .neo-hero,
  .landing-side-panel,
  .workspace-content-panel,
  .dashboard-panel,
  .pricing-card {
    padding: 1.2rem;
    border-radius: 1.5rem;
  }

  .app-navbar .navbar-nav {
    padding-top: 0.75rem;
  }
}



.grid-selector {
  position: relative;
}

.btn-grid-selector {
  width: 100%;
  min-height: 3.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(196, 207, 228, 0.86);
  background: rgba(255,255,255,0.88);
  box-shadow: inset 2px 2px 6px rgba(213, 220, 235, 0.20), inset -2px -2px 6px rgba(255,255,255,0.86);
  color: var(--app-text);
  font-weight: 600;
}

.btn-grid-selector:hover,
.btn-grid-selector:focus,
.btn-grid-selector.show {
  border-color: rgba(var(--bs-primary-rgb), 0.42);
  color: var(--app-text);
  background: rgba(255,255,255,0.96);
}

.selector-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.selector-menu {
  width: min(100%, 680px);
  min-width: 100%;
  margin-top: 0.55rem !important;
  border: 1px solid rgba(255,255,255,0.9);
  border-radius: 1.25rem;
  background: linear-gradient(145deg, rgba(255,255,255,0.97), rgba(241,246,255,0.98));
  box-shadow: 18px 18px 34px rgba(184, 197, 220, 0.24), -12px -12px 24px rgba(255,255,255,0.88);
}

.selector-group + .selector-group {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(216, 224, 240, 0.65);
}

.selector-group-title {
  margin-bottom: 0.7rem;
  color: var(--app-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.selector-grid {
  display: grid;
  gap: 0.65rem;
}

.selector-grid-platforms {
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
}

.selector-grid-country {
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.selector-option,
.selector-check-option {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.8rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.95rem;
  border: 1px solid rgba(221, 229, 244, 0.88);
  background: rgba(255,255,255,0.76);
  color: #44536f;
  font-weight: 600;
  text-align: center;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.selector-option:hover,
.selector-option:focus,
.selector-option.is-active,
.selector-check-option:hover,
.selector-check-option.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), 0.08);
}

.selector-check-option {
  position: relative;
  justify-content: flex-start;
  gap: 0.55rem;
  cursor: pointer;
}

.selector-check-option .form-check-input {
  margin: 0;
  flex: 0 0 auto;
}

.selector-check-option span {
  flex: 1;
  min-width: 0;
}

.selector-menu-country {
  max-width: 520px;
}

.user-workspace-shell {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.user-workspace-sidebar {
  position: sticky;
  top: calc(var(--app-disclaimer-height) + var(--app-navbar-height) + 18px);
  align-self: start;
}

.user-workspace-sidebar-inner {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  max-height: calc(100vh - var(--app-disclaimer-height) - var(--app-navbar-height) - 2.5rem);
  overflow-y: auto;
  padding-right: 0.25rem;
}

.user-workspace-main {
  min-width: 0;
}

.user-workspace-content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.glass-panel {
  border: 1px solid rgba(214, 225, 238, 0.92);
  border-radius: 1.4rem;
  background: rgba(255, 255, 255, 0.76);
  backdrop-filter: blur(18px);
  box-shadow: 0 18px 44px rgba(105, 132, 170, 0.10);
}

.user-workspace-brand,
.user-workspace-profile,
.user-workspace-nav,
.user-workspace-header,
.user-workspace-stat,
.user-workspace-card,
.user-workspace-tool-panel {
  padding: 1rem 1.05rem;
}

.user-workspace-brand {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}

.user-workspace-brand-mark,
.user-workspace-avatar {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #ffffff 0%, #eaf2ff 100%);
  border: 1px solid rgba(190, 210, 236, 0.9);
  color: var(--bs-primary);
  font-weight: 800;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95), 0 10px 24px rgba(126, 155, 194, 0.18);
}

.user-workspace-brand-title,
.user-workspace-name {
  font-weight: 700;
  color: var(--app-dark);
}

.user-workspace-brand-subtitle,
.user-workspace-meta,
.user-workspace-header-text,
.user-workspace-stat-note,
.user-workspace-resource-item p,
.user-workspace-resource-item span,
.user-workspace-tool-text {
  color: var(--app-muted);
  font-size: 0.92rem;
}

.user-workspace-profile {
  display: flex;
  gap: 0.85rem;
  align-items: center;
}

.user-workspace-nav {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.user-workspace-nav-group-title {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7d8ea5;
  margin-bottom: 0.2rem;
}

.user-workspace-nav-link,
.user-workspace-tool-link {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.72rem 0.8rem;
  border-radius: 1rem;
  color: var(--app-text);
  text-decoration: none;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.user-workspace-nav-link:hover,
.user-workspace-tool-link:hover,
.user-workspace-tool-link.is-active {
  background: rgba(237, 244, 255, 0.92);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.92), 0 10px 22px rgba(120, 150, 190, 0.12);
  color: var(--bs-primary);
}

.user-workspace-tool-link {
  align-items: flex-start;
}

.user-workspace-tool-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #ffffff 0%, #edf4ff 100%);
  border: 1px solid rgba(199, 214, 235, 0.92);
  color: var(--bs-primary);
}

.user-workspace-tool-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
}

.user-workspace-tool-copy {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.user-workspace-tool-copy strong {
  font-size: 0.95rem;
}

.user-workspace-tool-copy small {
  color: var(--app-muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.user-workspace-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.user-workspace-header-kicker,
.user-workspace-card-kicker {
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #7a8aa0;
  margin-bottom: 0.35rem;
}

.user-workspace-header-title,
.user-workspace-card-title,
.user-workspace-tool-title {
  margin: 0;
  color: var(--app-dark);
  font-weight: 700;
}

.user-workspace-header-title {
  font-size: 1.8rem;
  margin-bottom: 0.35rem;
}

.user-workspace-header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.user-workspace-inline-status,
.user-workspace-status-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.9rem;
  min-width: 132px;
  border-radius: 1rem;
  background: rgba(249, 252, 255, 0.92);
  border: 1px solid rgba(215, 226, 240, 0.95);
}

.user-workspace-inline-label {
  font-size: 0.74rem;
  color: #7c8ea6;
}

.user-workspace-section {
  min-width: 0;
}

.user-workspace-summary-grid,
.user-workspace-flex-grid,
.user-workspace-resource-grid {
  display: grid;
  gap: 1rem;
}

.user-workspace-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.user-workspace-flex-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.user-workspace-stat {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.user-workspace-stat-label {
  font-size: 0.82rem;
  color: #7c8ea6;
}

.user-workspace-stat-value {
  font-size: 1.25rem;
  color: var(--app-dark);
}

.user-workspace-card-head,
.user-workspace-tool-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.user-workspace-shortcuts,
.user-workspace-resource-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.user-workspace-shortcuts {
  display: grid;
  gap: 0.75rem;
}

.user-workspace-shortcut,
.user-workspace-resource-item {
  border-radius: 1rem;
  padding: 0.95rem 1rem;
  background: rgba(250, 252, 255, 0.96);
  border: 1px solid rgba(220, 229, 242, 0.92);
}

.user-workspace-shortcut {
  text-decoration: none;
  color: var(--app-text);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.user-workspace-shortcut strong,
.user-workspace-resource-item strong {
  font-weight: 700;
}

.user-workspace-shortcut span {
  color: var(--app-muted);
  font-size: 0.84rem;
}

.user-workspace-resource-item {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.user-workspace-resource-item p {
  margin: 0;
}

.user-workspace-resource-item span {
  font-size: 0.8rem;
}

.user-workspace-tool-panel {
  padding: 1.1rem;
}

.user-workspace-tool-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: flex-end;
}

.user-workspace-status-chip {
  min-width: auto;
  flex-direction: row;
  align-items: center;
  padding: 0.55rem 0.85rem;
  color: var(--app-text);
}

.user-workspace-tool-body .tool-module-shell.card,
.user-workspace-tool-body > .card {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.user-workspace-tool-body .card-body {
  padding: 0 !important;
}

.user-workspace-tool-body .tool-side-card,
.user-workspace-tool-body .app-soft-panel,
.user-workspace-tool-body .app-stat-card {
  background: rgba(250, 252, 255, 0.94);
}

@media (max-width: 1399.98px) {
  .user-workspace-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1199.98px) {
  .user-workspace-shell {
    grid-template-columns: 1fr;
  }

  .user-workspace-sidebar {
    position: static;
  }

  .user-workspace-sidebar-inner {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  .user-workspace-header,
  .user-workspace-card-head,
  .user-workspace-tool-head {
    flex-direction: column;
  }

  .user-workspace-header-actions,
  .user-workspace-tool-statuses {
    justify-content: flex-start;
  }
}

@media (max-width: 767.98px) {
  .user-workspace-summary-grid,
  .user-workspace-flex-grid,
  .user-workspace-resource-grid,
  .user-workspace-shortcuts {
    grid-template-columns: 1fr;
  }

  .user-workspace-header-title {
    font-size: 1.45rem;
  }
}

.user-workspace-feature-card {
  text-decoration: none;
  color: var(--app-text);
  min-height: 11.5rem;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.user-workspace-feature-card:hover {
  transform: translateY(-3px);
  color: var(--app-text);
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  box-shadow: 0 18px 30px rgba(15, 23, 42, 0.08);
}

.user-workspace-feature-card strong {
  display: block;
}

.user-workspace-tool-body .tool-module-shell {
  margin-bottom: 0;
}

.user-workspace-tool-body .result-box {
  margin-bottom: 0;
}

.user-workspace-tool-body .selector-menu {
  min-width: min(44rem, calc(100vw - 3rem));
}

.user-workspace-tool-body .selector-menu-country {
  min-width: min(32rem, calc(100vw - 3rem));
}

/* 2026-03-23 user center visual refinement */
.user-workspace-shell {
  position: relative;
  grid-template-columns: 292px minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1.1rem 0 0.5rem;
}

.user-workspace-shell::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 12% 12%, rgba(136, 194, 255, 0.16), transparent 26%),
    radial-gradient(circle at 86% 8%, rgba(142, 236, 218, 0.12), transparent 22%),
    linear-gradient(180deg, #f6fbff 0%, #eef4fb 46%, #f8fbff 100%);
}

.user-workspace-sidebar-inner {
  gap: 0.35rem;
  padding-right: 0.3rem;
}

.glass-panel {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(214, 227, 242, 0.95);
  box-shadow: 0 16px 40px rgba(30, 64, 106, 0.08), inset 0 1px 0 rgba(255,255,255,0.82);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.user-workspace-brand,
.user-workspace-profile,
.user-workspace-nav,
.user-workspace-card,
.user-workspace-tool-panel,
.user-workspace-header,
.user-workspace-stat {
  border-radius: 1.4rem;
}

.user-workspace-brand {
  padding: 1.15rem 1.1rem;
}

.user-workspace-brand-mark {
  width: 3rem;
  height: 3rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, #5aa8ff 0%, #7cc6ff 45%, #9ad8ff 100%);
  box-shadow: 0 12px 24px rgba(79, 146, 230, 0.24);
}

.user-workspace-brand-title {
  font-size: 1.04rem;
  letter-spacing: 0.01em;
}

.user-workspace-brand-subtitle {
  margin-top: 0.2rem;
  line-height: 1.5;
  color: #73859a;
}

.user-workspace-profile {
  padding: 1rem 1.05rem;
}

.user-workspace-avatar {
  width: 3rem;
  height: 3rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, #eef7ff 0%, #daeefe 100%);
  color: #2f6fb5;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.92);
}

.user-workspace-name {
  font-size: 1rem;
  font-weight: 700;
}

.user-workspace-nav {
  padding: 0.75rem;
}

.user-workspace-nav-group-title {
  margin-bottom: 0.35rem;
  font-size: 0.78rem;
  color: #7c90a9;
}

.user-workspace-nav-link,
.user-workspace-tool-link {
  min-height: 3rem;
  padding: 0.68rem 0.78rem;
  border-radius: 1rem;
}

.user-workspace-nav-link {
  font-size: 0.94rem;
  font-weight: 600;
  color: #45607a;
}

.user-workspace-nav-link:hover,
.user-workspace-tool-link:hover,
.user-workspace-tool-link.is-active {
  background: linear-gradient(180deg, rgba(243, 249, 255, 0.98), rgba(232, 242, 255, 0.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95), 0 10px 24px rgba(119, 156, 204, 0.14);
  color: #2461aa;
}

.user-workspace-tool-link {
  gap: 0.8rem;
}

.user-workspace-tool-icon {
  width: 2.6rem;
  height: 2.6rem;
  flex-basis: 2.6rem;
  border-radius: 0.95rem;
  background: linear-gradient(145deg, #ffffff 0%, #edf6ff 100%);
  border: 1px solid rgba(206, 220, 238, 0.96);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95);
}

.user-workspace-tool-copy strong {
  font-size: 0.94rem;
  color: #173556;
}

.user-workspace-tool-copy small {
  margin-top: 0.05rem;
  color: #7b8ea4;
  font-size: 0.8rem;
}

.user-workspace-main {
  gap: 1rem;
}

.user-workspace-header {
  position: sticky;
  top: 1rem;
  z-index: 10;
  padding: 1.15rem 1.2rem;
  margin-bottom: 1rem;
}

.user-workspace-header-kicker,
.user-workspace-card-kicker {
  letter-spacing: 0.06em;
  color: #7890aa;
}

.user-workspace-header-title {
  font-size: 1.92rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.user-workspace-header-text {
  margin: 0;
  max-width: 42rem;
  color: #6f849d;
  line-height: 1.72;
}

.user-workspace-inline-status {
  min-width: 146px;
  padding: 0.78rem 0.95rem;
  border-radius: 1.05rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(245,249,255,0.9));
}

.user-workspace-inline-status strong {
  font-size: 0.96rem;
  color: #173556;
}

.user-workspace-content {
  gap: 1rem;
}

.user-workspace-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.95rem;
}

.user-workspace-stat {
  padding: 1rem 1.05rem;
  min-height: 9rem;
}

.user-workspace-stat-label {
  font-size: 0.8rem;
  color: #8095ac;
}

.user-workspace-stat-value {
  font-size: 1.28rem;
  font-weight: 800;
  color: #183454;
}

.user-workspace-stat-note {
  line-height: 1.55;
  color: #7d90a5;
}

.user-workspace-card,
.user-workspace-tool-panel {
  padding: 1.05rem 1.08rem;
}

.user-workspace-card-title,
.user-workspace-tool-title {
  font-size: 1.14rem;
}

.user-workspace-resource-grid {
  gap: 0.85rem;
}

.user-workspace-shortcut,
.user-workspace-resource-item {
  padding: 1rem 1.02rem;
  border-radius: 1.1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(247,250,255,0.92));
  border: 1px solid rgba(221, 231, 243, 0.96);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95);
}

.user-workspace-feature-card {
  min-height: 10.8rem;
}

.user-workspace-feature-card:hover,
.user-workspace-shortcut:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 32px rgba(34, 68, 112, 0.1);
}

.user-workspace-resource-item strong,
.user-workspace-shortcut strong {
  color: #183454;
}

.user-workspace-resource-item p,
.user-workspace-shortcut span,
.user-workspace-resource-item span {
  color: #73879f;
}

.user-workspace-tool-panel {
  padding: 1.1rem 1.12rem;
}

.user-workspace-tool-text {
  margin: 0.18rem 0 0;
  color: #70839a;
  line-height: 1.68;
}

.user-workspace-status-chip {
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(244,249,255,0.96));
  border-radius: 999px;
  padding: 0.56rem 0.88rem;
  color: #35597d;
}

.user-workspace-tool-body {
  margin-top: 0.2rem;
}

.user-workspace-tool-body .tool-module-shell > .card-body {
  padding: 0 !important;
}

.user-workspace-tool-body .tool-side-card,
.user-workspace-tool-body .app-soft-panel,
.user-workspace-tool-body .app-stat-card,
.user-workspace-tool-body .result-box {
  border-radius: 1.18rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(246,250,255,0.92));
  border: 1px solid rgba(220, 231, 243, 0.94);
}

.user-workspace-tool-body .btn,
.user-workspace-header .btn {
  border-radius: 0.95rem;
  min-height: 2.9rem;
  font-weight: 700;
}

.user-workspace-tool-body .btn-primary,
.user-workspace-header .btn-primary {
  background: linear-gradient(135deg, #3f8ef7 0%, #64b0ff 100%);
  border-color: transparent;
  box-shadow: 0 14px 28px rgba(74, 143, 230, 0.22);
}

.user-workspace-tool-body .btn-primary:hover,
.user-workspace-header .btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 30px rgba(74, 143, 230, 0.26);
}

.user-workspace-tool-body .form-label {
  font-weight: 700;
  color: #35506d;
}

.user-workspace-tool-body .form-text {
  color: #7f93a8;
}

.user-workspace-tool-body .selector-group-title {
  font-weight: 700;
  color: #627893;
}

.user-workspace-tool-body .selector-option,
.user-workspace-tool-body .selector-check-option {
  min-height: 2.85rem;
  border-radius: 0.9rem;
}

@media (max-width: 1399.98px) {
  .user-workspace-shell {
    grid-template-columns: 272px minmax(0, 1fr);
  }
}

@media (max-width: 1199.98px) {
  .user-workspace-shell {
    grid-template-columns: 1fr;
  }

  .user-workspace-header {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .user-workspace-header {
    padding: 1rem;
  }

  .user-workspace-card,
  .user-workspace-tool-panel,
  .user-workspace-stat {
    padding: 0.95rem;
  }

  .user-workspace-header-title {
    font-size: 1.52rem;
  }
}

/* 2026-03-23 unified SaaS shell for clientarea / user / tool */
.user-workspace-nav-link.is-active {
  background: linear-gradient(180deg, rgba(243, 249, 255, 0.98), rgba(232, 242, 255, 0.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95), 0 10px 24px rgba(119, 156, 204, 0.14);
  color: #2461aa;
}

.user-workspace-shell .table > :not(caption) > * > * {
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
}

.user-workspace-shell .table thead th {
  color: #7b8ea4;
  font-size: 0.82rem;
  font-weight: 700;
  border-bottom-color: rgba(214, 227, 242, 0.95);
}

.app-disclaimer {
  display: none !important;
}


/* selector platform icon enhancement */
.grid-selector {
  position: relative;
}

.selector-menu {
  width: min(100vw - 2rem, 960px);
  min-width: min(58rem, calc(100vw - 2rem));
  max-width: min(100vw - 2rem, 960px);
  z-index: 1085;
  max-height: min(72vh, 40rem);
  overflow: auto;
}

.selector-grid-platforms {
  grid-template-columns: repeat(auto-fit, minmax(172px, 1fr));
}

.selector-grid-country {
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
}

.selector-option,
.selector-check-option {
  justify-content: flex-start;
  gap: 0.6rem;
  text-align: left;
  min-height: 3.2rem;
  padding: 0.72rem 0.95rem;
}

.selector-option-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.1rem;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0.78rem;
  border: 1px solid rgba(183, 198, 227, 0.92);
  background: linear-gradient(180deg, #eef4ff 0%, #e5eeff 100%);
  color: #2a5fc4;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1;
}

.selector-option-text {
  flex: 1;
  min-width: 0;
  font-weight: 600;
  color: #30435f;
}

.selector-menu-country {
  max-width: min(100vw - 2rem, 760px);
  min-width: min(40rem, calc(100vw - 2rem));
}

.user-workspace-tool-body .selector-menu {
  min-width: min(60rem, calc(100vw - 2rem));
}

.user-workspace-tool-body .selector-menu-country {
  min-width: min(42rem, calc(100vw - 2rem));
}

@media (max-width: 991.98px) {
  .selector-menu,
  .selector-menu-country,
  .user-workspace-tool-body .selector-menu,
  .user-workspace-tool-body .selector-menu-country {
    min-width: min(100vw - 1.5rem, 100%);
    width: min(100vw - 1.5rem, 100%);
  }

  .selector-grid-platforms {
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  }
}

/* selector visibility safeguard */
.user-workspace-tool-body,
.user-workspace-tool-body .tool-module-shell,
.user-workspace-tool-body .tool-module-shell > .card-body,
.user-workspace-tool-body .row,
.user-workspace-tool-body .col-xl-8,
.user-workspace-tool-body .col-md-6,
.grid-selector {
  overflow: visible;
}

/* selector custom open state */
.grid-selector .selector-menu {
  display: none;
}

.grid-selector.is-open .selector-menu {
  display: block;
}

[data-grid-multi-selector] .selector-menu {
  display: block;
}

/* selector white popover redesign */
.grid-selector {
  position: relative;
}

.btn-grid-selector {
  width: 100%;
  min-height: 3.55rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 0.88rem 1.1rem;
  border-radius: 1.2rem;
  border: 1px solid rgba(219, 228, 240, 0.96);
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(28, 57, 90, 0.08);
  color: #20324a;
  font-weight: 700;
}

.btn-grid-selector:hover,
.btn-grid-selector:focus,
.grid-selector.is-open .btn-grid-selector {
  border-color: rgba(78, 124, 255, 0.38);
  box-shadow: 0 14px 34px rgba(59, 101, 186, 0.12);
  background: #ffffff;
  color: #18304a;
}

.selector-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  font-size: 0.98rem;
}

.grid-selector .selector-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 0.72rem);
  width: min(100vw - 2rem, 980px);
  min-width: min(60rem, calc(100vw - 2rem));
  max-width: min(100vw - 2rem, 980px);
  padding: 1.15rem 1.15rem 1.05rem;
  margin: 0 !important;
  border: 1px solid rgba(228, 235, 244, 0.98);
  border-radius: 1.6rem;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 26px 60px rgba(23, 42, 66, 0.14);
  backdrop-filter: blur(14px);
  z-index: 1085;
  max-height: min(72vh, 42rem);
  overflow: auto;
}

.grid-selector.is-open .selector-menu {
  display: block;
}

[data-grid-multi-selector] .selector-menu {
  position: static;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  box-shadow: none;
  border: 1px solid rgba(228, 235, 244, 0.92);
}

.selector-group + .selector-group {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(234, 238, 245, 0.92);
}

.selector-group-title {
  margin-bottom: 0.88rem;
  color: #7c8ea5;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.selector-grid {
  display: grid;
  gap: 0.78rem;
}

.selector-grid-platforms {
  grid-template-columns: repeat(auto-fit, minmax(176px, 1fr));
}

.selector-grid-country {
  grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
}

.selector-option,
.selector-check-option {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.72rem;
  min-height: 3.35rem;
  padding: 0.72rem 0.95rem;
  border-radius: 1rem;
  border: 1px solid rgba(230, 236, 244, 0.96);
  background: #ffffff;
  color: #2b3d56;
  font-weight: 700;
  text-align: left;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.selector-option:hover,
.selector-option:focus,
.selector-check-option:hover,
.selector-check-option:focus {
  transform: translateY(-1px);
  border-color: rgba(110, 151, 255, 0.42);
  box-shadow: 0 12px 26px rgba(51, 91, 158, 0.12);
  color: #1f4ea3;
}

.selector-option.is-active,
.selector-check-option.is-active {
  border-color: rgba(78, 124, 255, 0.46);
  background: linear-gradient(180deg, #f7faff 0%, #eff5ff 100%);
  color: #1f4ea3;
  box-shadow: 0 12px 26px rgba(51, 91, 158, 0.12);
}

.selector-option.is-active::after,
.selector-check-option.is-active::after {
  content: '閴?;
  position: absolute;
  right: 0.9rem;
  top: 50%;
  transform: translateY(-50%);
  color: #4a78f2;
  font-size: 0.92rem;
  font-weight: 800;
}

.selector-option-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  border-radius: 0.7rem;
  border: 1px solid rgba(214, 225, 241, 0.95);
  background: linear-gradient(180deg, #f7faff 0%, #edf3ff 100%);
  color: #2f63ca;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
}

.selector-option-text {
  flex: 1;
  min-width: 0;
  font-weight: 700;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.selector-check-option {
  cursor: pointer;
}

.selector-check-option .form-check-input {
  margin: 0;
  flex: 0 0 auto;
}

.selector-check-option .selector-option-icon {
  margin-left: 0.1rem;
}

.selector-menu-country {
  max-width: min(100vw - 2rem, 760px) !important;
  min-width: min(42rem, calc(100vw - 2rem)) !important;
}

.user-workspace-tool-body .selector-menu {
  min-width: min(62rem, calc(100vw - 2rem)) !important;
}

.user-workspace-tool-body .selector-menu-country {
  min-width: min(42rem, calc(100vw - 2rem)) !important;
}

@media (max-width: 991.98px) {
  .grid-selector .selector-menu,
  .selector-menu-country,
  .user-workspace-tool-body .selector-menu,
  .user-workspace-tool-body .selector-menu-country {
    width: min(100vw - 1.25rem, 100%);
    min-width: min(100vw - 1.25rem, 100%);
    max-width: min(100vw - 1.25rem, 100%);
  }

  .selector-grid-platforms {
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  }
}





/* final override: multi platform selector should behave like dropdown popover */
[data-grid-multi-selector] .selector-menu {
  display: none !important;
  position: absolute !important;
  left: 0 !important;
  top: calc(100% + 0.72rem) !important;
  width: min(100vw - 2rem, 980px) !important;
  min-width: min(60rem, calc(100vw - 2rem)) !important;
  max-width: min(100vw - 2rem, 980px) !important;
  padding: 1.15rem 1.15rem 1.05rem !important;
  margin: 0 !important;
  border: 1px solid rgba(228, 235, 244, 0.98) !important;
  border-radius: 1.6rem !important;
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow: 0 26px 60px rgba(23, 42, 66, 0.14) !important;
  backdrop-filter: blur(14px) !important;
  z-index: 1085 !important;
  max-height: min(72vh, 42rem) !important;
  overflow: auto !important;
}

[data-grid-multi-selector].is-open .selector-menu {
  display: block !important;
}

.growth-page .growth-hero-card {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.9fr);
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid var(--app-border);
  border-radius: 1.15rem;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.growth-inline-note {
  display: flex;
  align-items: center;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--app-text);
  font-size: 0.9375rem;
}

.growth-inline-note-warning {
  background: rgba(181, 106, 18, 0.1);
}

.growth-panel {
  border: 1px solid var(--app-border);
  border-radius: 1.1rem;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  box-shadow: 0 12px 32px rgba(16, 32, 51, 0.05);
  padding: 1.1rem;
}

.growth-empty-state {
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--app-border);
  border-radius: 1rem;
  background: #f8fbff;
  color: var(--app-muted);
  text-align: center;
  padding: 1.2rem;
}

/* —— 数据看板（growth-analytics / ga-dash）—— */
.ga-dash.tool-module-shell {
  background: transparent;
}

.ga-dash-shell {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0.25rem 0 1.5rem;
}

.ga-dash-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: 1.25rem;
}

.ga-dash-greeting {
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  font-weight: 700;
  color: var(--app-dark);
  margin: 0 0 0.35rem;
  letter-spacing: -0.02em;
}

.ga-dash-tagline {
  margin: 0;
  font-size: 0.95rem;
  color: var(--app-muted);
}

.ga-dash-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}

.ga-dash-period {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--app-text);
  padding: 0.35rem 0.85rem;
  border-radius: 0.65rem;
  background: #fff;
  border: 1px solid var(--app-border);
  box-shadow: 0 1px 0 rgba(16, 32, 51, 0.04);
}

.ga-dash-window-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ga-dash-chip {
  border: 1px solid var(--app-border);
  background: #fff;
  color: var(--app-text);
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background var(--app-motion-duration-fast) var(--app-motion-ease),
    border-color var(--app-motion-duration-fast) var(--app-motion-ease),
    color var(--app-motion-duration-fast) var(--app-motion-ease);
}

.ga-dash-chip:hover {
  border-color: rgba(37, 99, 235, 0.35);
  color: #1d4ed8;
}

.ga-dash-chip.is-active {
  background: rgba(37, 99, 235, 0.12);
  border-color: rgba(37, 99, 235, 0.45);
  color: #1e40af;
}

.ga-dash-chip--ghost {
  background: #f8fafc;
  color: var(--app-muted);
}

.ga-dash-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.25rem;
}

@media (max-width: 992px) {
  .ga-dash-kpi-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .ga-dash-kpi-row {
    grid-template-columns: 1fr;
  }
}

.ga-dash-kpi {
  background: #fff;
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  padding: 1.1rem 1.15rem;
  box-shadow: 0 8px 24px rgba(16, 32, 51, 0.06);
}

.ga-dash-kpi-title {
  font-size: 0.8125rem;
  color: var(--app-muted);
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.ga-dash-kpi-value {
  font-size: clamp(1.65rem, 3.5vw, 2.15rem);
  font-weight: 800;
  color: var(--app-dark);
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-bottom: 0.45rem;
}

.ga-dash-kpi-hint {
  font-size: 0.78rem;
  line-height: 1.45;
  color: #ea580c;
  font-weight: 500;
}

.ga-dash-kpi-skeleton {
  grid-column: 1 / -1;
  text-align: center;
  padding: 1.5rem;
  color: var(--app-muted);
  background: #fff;
  border: 1px dashed var(--app-border);
  border-radius: 1rem;
}

.ga-dash-marketing-card .ga-dash-marketing-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  padding: 0 1.1rem 1.1rem;
}

@media (max-width: 992px) {
  .ga-dash-marketing-card .ga-dash-marketing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ga-dash-marketing-stat {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.65rem;
  background: #f8fafc;
  border: 1px solid #e8ecf1;
}

.ga-dash-marketing-stat--wide {
  grid-column: 1 / -1;
}

.ga-dash-marketing-label {
  font-size: 0.78rem;
  color: #64748b;
}

.ga-dash-marketing-stat strong {
  font-size: 1.15rem;
  color: #0f172a;
}

.ga-dash-charts-row {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 1rem;
  margin-bottom: 1.25rem;
}

@media (max-width: 992px) {
  .ga-dash-charts-row {
    grid-template-columns: 1fr;
  }
}

.ga-dash-card {
  background: #fff;
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  box-shadow: 0 8px 28px rgba(16, 32, 51, 0.07);
  overflow: hidden;
}

.ga-dash-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 1.1rem;
  border-bottom: 1px solid rgba(215, 224, 234, 0.85);
}

.ga-dash-card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--app-dark);
}

.ga-dash-more {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #2563eb;
  text-decoration: none;
  white-space: nowrap;
}

.ga-dash-more:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

.ga-dash-chart-body {
  padding: 0.75rem 1rem 1rem;
  min-height: 240px;
  position: relative;
}

.ga-dash-chart-body--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(140px, 180px);
  gap: 0.5rem 1rem;
  align-items: center;
}

@media (max-width: 520px) {
  .ga-dash-chart-body--split {
    grid-template-columns: 1fr;
  }
}

.ga-dash-donut-wrap {
  position: relative;
  min-height: 220px;
  max-width: 280px;
  margin: 0 auto;
}

.ga-dash-donut-legend {
  list-style: none;
  margin: 0;
  padding: 0 0.25rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.ga-dash-legend-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.45rem 0.5rem;
  font-size: 0.8125rem;
}

.ga-dash-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ga-dash-legend-name {
  color: var(--app-text);
  font-weight: 500;
}

.ga-dash-legend-pct {
  font-weight: 700;
  color: var(--app-dark);
  font-variant-numeric: tabular-nums;
}

.ga-dash-legend-empty {
  list-style: none;
}

.ga-dash-tables-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 992px) {
  .ga-dash-tables-row {
    grid-template-columns: 1fr;
  }
}

.ga-dash-table-wrap {
  max-height: 320px;
  overflow: auto;
}

.ga-dash-table-card .ga-dash-card-head {
  padding-right: 1rem;
}

.ga-dash-table thead th {
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--app-muted);
  font-weight: 600;
  border-bottom-width: 1px;
  background: #f8fafc;
  position: sticky;
  top: 0;
  z-index: 1;
}

.ga-dash-table tbody td {
  font-size: 0.875rem;
  vertical-align: middle;
}

/* 线索筛选中心等：空状态更紧凑，避免中间区域“大块留白”观感 */
.growth-empty-state--compact {
  min-height: 88px;
  padding: 1rem 1.15rem;
  font-size: 0.9375rem;
  line-height: 1.5;
}

/* 线索筛选：底部两栏与 Bootstrap row 分离，避免 .row.growth-panel 叠用导致栅格错位 */
.lead-screening-page .growth-lead-screening-supplement > .row {
  --bs-gutter-x: 1.25rem;
}

.lead-screening-page .growth-lead-screening-results {
  min-height: 0;
}

.growth-list-card,
.growth-preview-card,
.growth-summary-card {
  border: 1px solid var(--app-border);
  border-radius: 1rem;
  background: #fff;
  padding: 1rem;
}

.growth-list-card + .growth-list-card {
  margin-top: 0.9rem;
}

.growth-preview-label,
.growth-summary-title {
  font-size: 0.8125rem;
  color: var(--app-muted);
  margin-bottom: 0.45rem;
}

.growth-preview-value,
.growth-summary-value {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--app-dark);
}

.growth-preview-html {
  border-radius: 0.95rem;
  background: #fbfcff;
  border: 1px solid var(--app-border);
  padding: 1rem;
}

.growth-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

@media (max-width: 1200px) {
  .growth-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .growth-page .growth-hero-card,
  .growth-summary-strip {
    grid-template-columns: 1fr;
  }
}

/* growth view enhancements */

.growth-workspace-shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.growth-secondary-nav {
  position: sticky;
  top: 5.75rem;
  border-radius: 1.1rem;
  border: 1px solid rgba(22, 34, 50, 0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(248,250,255,0.94) 100%);
  box-shadow: 0 10px 30px rgba(16, 32, 51, 0.05);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.growth-secondary-nav-wide {
  min-width: 0;
}

.growth-secondary-nav-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #8a94a6;
  margin-bottom: 0.45rem;
}

.growth-secondary-link {
  display: flex;
  align-items: center;
  min-height: 2.65rem;
  padding: 0.72rem 0.9rem;
  border-radius: 0.9rem;
  color: #556273;
  text-decoration: none;
  font-size: 0.94rem;
  font-weight: 600;
  transition: all 0.2s ease;
}

.growth-secondary-link:hover {
  color: #1f2d3d;
  background: rgba(255, 123, 71, 0.08);
}

.growth-secondary-link.is-active {
  background: rgba(255, 123, 71, 0.12);
  color: #ff6c47;
}

.growth-workspace-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}.growth-hero-side {
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(247,250,255,0.92) 100%);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
  padding: 1rem 1.05rem;
}

.growth-hero-side-warning {
  background: linear-gradient(180deg, rgba(255,247,243,0.95) 0%, rgba(255,251,248,0.95) 100%);
  border-color: rgba(255, 163, 125, 0.28);
}

.growth-hero-side-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1f2d3d;
  margin-bottom: 0.75rem;
}

.growth-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.growth-kpi-grid-wide {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.growth-kpi-card {
  border: 1px solid rgba(22, 34, 50, 0.08);
  border-radius: 1rem;
  padding: 1.05rem 1.1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(248,250,255,0.96) 100%);
  box-shadow: 0 10px 30px rgba(16, 32, 51, 0.05);
}

.growth-kpi-label {
  font-size: 0.82rem;
  color: #8a94a6;
  margin-bottom: 0.45rem;
}

.growth-kpi-value {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1f2d3d;
  margin-bottom: 0.35rem;
}

.growth-kpi-meta {
  font-size: 0.9rem;
  color: #6e7a8c;
  line-height: 1.65;
}

.growth-analytics-dual {
  padding: 0.95rem;
}

.growth-analytics-visual-card {
  border: 1px solid rgba(22, 34, 50, 0.08);
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
  box-shadow: 0 10px 28px rgba(16, 32, 51, 0.05);
  padding: 0.9rem 0.95rem 0.8rem;
}

.growth-analytics-dual .tool-side-title {
  margin-bottom: 0.55rem !important;
}

.growth-analytics-dual .console-chart-wrap,
.growth-analytics-dual .console-funnel-wrap {
  height: 320px;
  border: 1px solid rgba(22, 34, 50, 0.08);
  border-radius: 0.9rem;
  background: linear-gradient(180deg, #fcfdff 0%, #f7faff 100%);
  padding: 0.6rem 0.65rem 0.45rem;
}

.growth-note-panel {
  background: linear-gradient(180deg, #fcfdff 0%, #f8fbff 100%);
}

.growth-highlight-list {
  margin: 0;
  padding-left: 1.1rem;
  color: #526172;
  line-height: 1.75;
}

.growth-mini-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.growth-mini-step {
  border-radius: 1rem;
  border: 1px solid rgba(22, 34, 50, 0.08);
  background: rgba(255,255,255,0.86);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.growth-mini-step span {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 123, 71, 0.14);
  color: #ff7b47;
  font-size: 0.82rem;
  font-weight: 700;
}

.growth-mini-step strong {
  font-size: 0.98rem;
  color: #1f2d3d;
}

.growth-mini-step small {
  color: #7b8794;
  line-height: 1.65;
}

.growth-toolbar-row {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(220px, 0.85fr) auto;
  gap: 0.9rem;
  align-items: end;
}

.growth-toolbar-item {
  min-width: 0;
}

.growth-toolbar-item-action {
  display: flex;
  align-items: end;
}

.growth-toolbar-item-action .btn {
  width: 100%;
}

@media (max-width: 1399.98px) {
  .growth-kpi-grid-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1199.98px) {
  .growth-kpi-grid,
  .growth-kpi-grid-wide,
  .growth-mini-steps,
  .growth-toolbar-row {
    grid-template-columns: 1fr;
  }

  .growth-analytics-dual .console-chart-wrap,
  .growth-analytics-dual .console-funnel-wrap {
    height: 280px;
  }
}
@media (max-width: 1199.98px) {
  .growth-workspace-shell {
    grid-template-columns: 1fr;
  }

  .growth-secondary-nav {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .growth-analytics-dual {
    padding: 0.8rem;
  }

  .growth-analytics-visual-card {
    padding: 0.72rem;
  }

  .growth-analytics-dual .console-chart-wrap,
  .growth-analytics-dual .console-funnel-wrap {
    height: 250px;
    padding: 0.5rem;
  }
}

/* 2026-03-25 workspace app shell refresh */
.app-body.route-clientarea,
.app-body.route-user,
.app-body.route-tool {
  --workspace-sidebar-width: 304px;
  background: #f6f8fb;
}

.app-body.route-clientarea .app-navbar,
.app-body.route-user .app-navbar,
.app-body.route-tool .app-navbar {
  left: var(--workspace-sidebar-width);
  width: calc(100% - var(--workspace-sidebar-width));
  background: rgba(255, 255, 255, 0.96);
  border-bottom-color: #edf1f6 !important;
  box-shadow: none;
  backdrop-filter: blur(14px);
}

.app-body.route-clientarea .app-navbar .container-xxl,
.app-body.route-user .app-navbar .container-xxl,
.app-body.route-tool .app-navbar .container-xxl {
  max-width: none;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.app-body.route-clientarea .app-navbar .navbar-brand,
.app-body.route-user .app-navbar .navbar-brand,
.app-body.route-tool .app-navbar .navbar-brand {
  display: none;
}

.app-body.route-clientarea .app-navbar .navbar-collapse,
.app-body.route-user .app-navbar .navbar-collapse,
.app-body.route-tool .app-navbar .navbar-collapse {
  justify-content: flex-end;
}

.app-body.route-clientarea .app-main,
.app-body.route-user .app-main,
.app-body.route-tool .app-main {
  max-width: none !important;
  width: auto;
  margin-left: var(--workspace-sidebar-width);
  padding-top: calc(var(--app-navbar-height) + 1.2rem) !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}

.app-body.route-clientarea .app-footer,
.app-body.route-user .app-footer,
.app-body.route-tool .app-footer {
  display: none;
}

.app-body.route-clientarea .user-workspace-shell,
.app-body.route-user .user-workspace-shell,
.app-body.route-tool .user-workspace-shell {
  display: block;
  padding: 0;
}

.app-body.route-clientarea .user-workspace-sidebar,
.app-body.route-user .user-workspace-sidebar,
.app-body.route-tool .user-workspace-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--workspace-sidebar-width);
  height: 100vh;
  border-right: 1px solid #ebeff5;
  background: #fff;
  z-index: 1050;
}

.app-body.route-clientarea .user-workspace-sidebar-inner,
.app-body.route-user .user-workspace-sidebar-inner,
.app-body.route-tool .user-workspace-sidebar-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: none;
  overflow: hidden;
  padding: 1.25rem 0.8rem 1rem;
  gap: 0;
  background: #fff;
}

.workspace-sidebar-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 1.05rem;
}

.workspace-sidebar-footer {
  flex-shrink: 0;
  padding-top: 0.45rem;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

/* 仅作布局包裹，无额外边距/描边（避免「外圈无交互、内圈可点」的双层边） */
.workspace-membership-shell {
  display: flex;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* 深底胶囊、斜向微光泽、左金冠、白字 + 极细金边晕（略放大，底栏仍居中） */
.workspace-membership-btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  width: max-content;
  max-width: 100%;
  min-width: 7.75rem;
  min-height: 2.38rem;
  text-align: left;
  text-decoration: none;
  color: inherit;
  padding: 0.46rem 0.82rem 0.46rem 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(212, 175, 95, 0.22);
  background: linear-gradient(142deg, #2e2c33 0%, #1c1b20 48%, #141318 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.35),
    0 5px 12px rgba(0, 0, 0, 0.15);
  transition: filter 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.workspace-membership-btn:hover,
.workspace-membership-btn:focus-visible {
  color: inherit;
  text-decoration: none;
  transform: scale(1.02);
  border-color: rgba(230, 190, 110, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    inset 0 -1px 0 rgba(0, 0, 0, 0.3),
    0 5px 14px rgba(0, 0, 0, 0.18);
  filter: brightness(1.04);
}

.workspace-membership-btn:focus-visible {
  outline: none;
}

.workspace-membership-btn-copy {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}

.workspace-membership-title {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: #fff;
  text-shadow:
    0 0 1px rgba(232, 160, 74, 0.9),
    0 0 2px rgba(232, 160, 74, 0.45);
}

.workspace-membership-btn:hover .workspace-membership-title,
.workspace-membership-btn:focus-visible .workspace-membership-title {
  text-shadow:
    0 0 1px rgba(255, 200, 130, 0.95),
    0 0 4px rgba(232, 160, 74, 0.5);
}

.workspace-membership-btn-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.workspace-membership-crown {
  display: block;
  filter: drop-shadow(0 0.5px 0 rgba(0, 0, 0, 0.35));
}

.workspace-app-brand {
  padding: 0 0.55rem 0.4rem;
}

.workspace-app-brand-link {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  text-decoration: none;
  color: #17273b;
  padding: 0.55rem 0.7rem;
  border-radius: 1rem;
}

.workspace-app-brand-mark {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ff7b47 0%, #ff9f6b 100%);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 800;
  box-shadow: 0 12px 24px rgba(255, 123, 71, 0.18);
}

.workspace-app-brand-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.workspace-app-brand-copy strong {
  font-size: 1rem;
  line-height: 1.2;
  color: #17273b;
}

.workspace-app-brand-copy small {
  margin-top: 0.2rem;
  color: #8897aa;
  font-size: 0.76rem;
}

.app-body.route-clientarea .user-workspace-nav.glass-panel,
.app-body.route-user .user-workspace-nav.glass-panel,
.app-body.route-tool .user-workspace-nav.glass-panel {
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  padding: 0.15rem 0;
  border-radius: 0;
}

.app-body.route-clientarea .user-workspace-nav-group-title,
.app-body.route-user .user-workspace-nav-group-title,
.app-body.route-tool .user-workspace-nav-group-title {
  margin: 0.9rem 0 0.35rem;
  padding: 0 0.95rem;
  font-size: 0.8rem;
  color: #97a4b5;
  letter-spacing: 0;
  text-transform: none;
}

.app-body.route-clientarea .user-workspace-nav-link,
.app-body.route-clientarea .user-workspace-tool-link,
.app-body.route-user .user-workspace-nav-link,
.app-body.route-user .user-workspace-tool-link,
.app-body.route-tool .user-workspace-nav-link,
.app-body.route-tool .user-workspace-tool-link {
  position: relative;
  min-height: 2.95rem;
  padding: 0.72rem 0.95rem;
  border-radius: 0.95rem;
  box-shadow: none;
  background: transparent;
}

.app-body.route-clientarea .user-workspace-nav-link:hover,
.app-body.route-clientarea .user-workspace-nav-link.is-active,
.app-body.route-clientarea .user-workspace-tool-link:hover,
.app-body.route-clientarea .user-workspace-tool-link.is-active,
.app-body.route-user .user-workspace-nav-link:hover,
.app-body.route-user .user-workspace-nav-link.is-active,
.app-body.route-user .user-workspace-tool-link:hover,
.app-body.route-user .user-workspace-tool-link.is-active,
.app-body.route-tool .user-workspace-nav-link:hover,
.app-body.route-tool .user-workspace-nav-link.is-active,
.app-body.route-tool .user-workspace-tool-link:hover,
.app-body.route-tool .user-workspace-tool-link.is-active {
  background: #fff3ee;
  color: #ff6c47;
}

.app-body.route-clientarea .user-workspace-nav-link.is-active::before,
.app-body.route-clientarea .user-workspace-tool-link.is-active::before,
.app-body.route-user .user-workspace-nav-link.is-active::before,
.app-body.route-user .user-workspace-tool-link.is-active::before,
.app-body.route-tool .user-workspace-nav-link.is-active::before,
.app-body.route-tool .user-workspace-tool-link.is-active::before {
  content: '';
  position: absolute;
  left: -0.8rem;
  top: 0.45rem;
  bottom: 0.45rem;
  width: 3px;
  border-radius: 999px;
  background: #ff6c47;
}

.app-body.route-clientarea .user-workspace-tool-icon,
.app-body.route-user .user-workspace-tool-icon,
.app-body.route-tool .user-workspace-tool-icon {
  width: 2.25rem;
  height: 2.25rem;
  flex-basis: 2.25rem;
  border-radius: 0.8rem;
  background: #f7f9fc;
  border: 1px solid #e8edf3;
  color: #6e7f95;
  box-shadow: none;
}

.app-body.route-clientarea .user-workspace-tool-link.is-active .user-workspace-tool-icon,
.app-body.route-user .user-workspace-tool-link.is-active .user-workspace-tool-icon,
.app-body.route-tool .user-workspace-tool-link.is-active .user-workspace-tool-icon {
  background: #fff;
  color: #ff6c47;
  border-color: #ffd4c5;
}

.app-body.route-clientarea .user-workspace-tool-copy strong,
.app-body.route-user .user-workspace-tool-copy strong,
.app-body.route-tool .user-workspace-tool-copy strong {
  font-size: 0.94rem;
}

.app-body.route-clientarea .user-workspace-tool-copy small,
.app-body.route-user .user-workspace-tool-copy small,
.app-body.route-tool .user-workspace-tool-copy small {
  font-size: 0.78rem;
  line-height: 1.45;
}

.app-body.route-clientarea .user-workspace-main,
.app-body.route-user .user-workspace-main,
.app-body.route-tool .user-workspace-main {
  min-width: 0;
}

.app-body.route-clientarea .user-workspace-header,
.app-body.route-user .user-workspace-header,
.app-body.route-tool .user-workspace-header {
  position: relative;
  top: 0;
  margin-bottom: 1rem;
  padding: 1rem 1.15rem;
  border-radius: 1.15rem;
  background: #fff;
  border: 1px solid #edf1f6;
  box-shadow: 0 8px 24px rgba(18, 38, 63, 0.04);
}

.app-body.route-clientarea .user-workspace-content,
.app-body.route-user .user-workspace-content,
.app-body.route-tool .user-workspace-content {
  gap: 1rem;
}

.app-body.route-clientarea .user-workspace-card,
.app-body.route-clientarea .user-workspace-stat,
.app-body.route-clientarea .tool-module-shell .card-body,
.app-body.route-user .user-workspace-card,
.app-body.route-user .user-workspace-stat,
.app-body.route-user .tool-module-shell .card-body,
.app-body.route-tool .user-workspace-card,
.app-body.route-tool .user-workspace-stat,
.app-body.route-tool .tool-module-shell .card-body {
  background: #fff;
  border: 1px solid #edf1f6;
  box-shadow: 0 8px 24px rgba(18, 38, 63, 0.04);
  border-radius: 1.15rem;
}

.app-body.route-clientarea .user-workspace-summary-grid,
.app-body.route-user .user-workspace-summary-grid,
.app-body.route-tool .user-workspace-summary-grid {
  gap: 1rem;
}

.app-body.route-clientarea .glass-panel,
.app-body.route-user .glass-panel,
.app-body.route-tool .glass-panel {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

@media (max-width: 1199.98px) {
  .app-body.route-clientarea .app-navbar,
  .app-body.route-user .app-navbar,
  .app-body.route-tool .app-navbar {
    left: 0;
    width: 100%;
  }

  .app-body.route-clientarea .app-navbar .navbar-brand,
  .app-body.route-user .app-navbar .navbar-brand,
  .app-body.route-tool .app-navbar .navbar-brand {
    display: inline-flex;
  }

  .app-body.route-clientarea .app-main,
  .app-body.route-user .app-main,
  .app-body.route-tool .app-main {
    margin-left: 0;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .app-body.route-clientarea .user-workspace-sidebar,
  .app-body.route-user .user-workspace-sidebar,
  .app-body.route-tool .user-workspace-sidebar {
    position: static;
    width: auto;
    height: auto;
    border-right: 0;
    background: transparent;
  }

  .app-body.route-clientarea .user-workspace-sidebar-inner,
  .app-body.route-user .user-workspace-sidebar-inner,
  .app-body.route-tool .user-workspace-sidebar-inner {
    height: auto;
    padding: 0;
    background: transparent;
    overflow: visible;
  }

  .app-body.route-clientarea .workspace-sidebar-scroll,
  .app-body.route-user .workspace-sidebar-scroll,
  .app-body.route-tool .workspace-sidebar-scroll {
    flex: 0 0 auto;
    overflow: visible;
    min-height: 0;
  }

  .workspace-app-brand {
    padding: 0 0 0.25rem;
  }

  .app-body.route-clientarea .app-footer,
  .app-body.route-user .app-footer,
  .app-body.route-tool .app-footer {
    display: block;
  }
}
/* 2026-03-25 compact collapsible workspace sidebar */
.app-body.route-clientarea,
.app-body.route-user,
.app-body.route-tool {
  --workspace-sidebar-width: 210px;
  --workspace-sidebar-width-collapsed: 68px;
}

.app-body.route-clientarea .app-navbar,
.app-body.route-user .app-navbar,
.app-body.route-tool .app-navbar {
  left: var(--workspace-sidebar-width);
  width: calc(100% - var(--workspace-sidebar-width));
}

.app-body.route-clientarea .app-main,
.app-body.route-user .app-main,
.app-body.route-tool .app-main {
  margin-left: var(--workspace-sidebar-width);
  padding-left: 1.15rem !important;
  padding-right: 1.15rem !important;
}

.app-body.route-clientarea .user-workspace-sidebar,
.app-body.route-user .user-workspace-sidebar,
.app-body.route-tool .user-workspace-sidebar {
  width: var(--workspace-sidebar-width);
}

/* 工作区侧栏折叠/展开：宽度与主区联动过渡（仅桌面，与 app.js 1200px 一致） */
@media (min-width: 1200px) {
  .app-body.route-clientarea .user-workspace-sidebar,
  .app-body.route-user .user-workspace-sidebar,
  .app-body.route-tool .user-workspace-sidebar {
    transition: width 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .app-body.route-clientarea .app-navbar,
  .app-body.route-user .app-navbar,
  .app-body.route-tool .app-navbar {
    transition:
      left 0.38s cubic-bezier(0.22, 1, 0.36, 1),
      width 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .app-body.route-clientarea .app-main,
  .app-body.route-user .app-main,
  .app-body.route-tool .app-main {
    transition: margin-left 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .app-body.route-tool .w-e-full-screen-container {
    transition: left 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .workspace-sidebar-toggle-icon {
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  }
}

@media (min-width: 1200px) and (prefers-reduced-motion: reduce) {
  .app-body.route-clientarea .user-workspace-sidebar,
  .app-body.route-user .user-workspace-sidebar,
  .app-body.route-tool .user-workspace-sidebar,
  .app-body.route-clientarea .app-navbar,
  .app-body.route-user .app-navbar,
  .app-body.route-tool .app-navbar,
  .app-body.route-clientarea .app-main,
  .app-body.route-user .app-main,
  .app-body.route-tool .app-main,
  .app-body.route-tool .w-e-full-screen-container,
  .workspace-sidebar-toggle-icon {
    transition: none !important;
  }
}

.workspace-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.15rem 0.25rem 0.45rem;
}

.workspace-logo-link {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  color: #1b2633;
}

.workspace-logo-media {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  border-radius: 0.6rem;
  overflow: hidden;
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(31, 45, 61, 0.10);
}

.workspace-logo-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.workspace-logo-image:not([src]),
.workspace-logo-image[src=''] {
  display: none;
}

.workspace-logo-title {
  font-size: 0.88rem;
  line-height: 1.2;
  font-weight: 700;
  color: #1f2d3d;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.workspace-sidebar-toggle {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.55rem;
  border: 1px solid #e6ebf2;
  background: #fff;
  color: #66768a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.workspace-sidebar-toggle:hover {
  border-color: #d8dee8;
  color: #26364a;
}

.workspace-sidebar-toggle-icon {
  font-size: 1.2rem;
  line-height: 1;
  transform: translateY(-1px);
}

.app-body.route-clientarea .user-workspace-nav-group-title,
.app-body.route-user .user-workspace-nav-group-title,
.app-body.route-tool .user-workspace-nav-group-title {
  margin-top: 0.55rem;
  margin-bottom: 0.2rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

/* 数据库驱动侧栏：大分类可折叠（后台「默认收纳小类」） */
.workspace-nav-section-toggle {
  cursor: pointer;
  font: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  color: #7d8ea5;
}
.workspace-nav-section-toggle:hover {
  color: var(--bs-primary);
}
.workspace-nav-section-chevron {
  display: inline-block;
  transition: transform 0.4s cubic-bezier(0.33, 1, 0.68, 1);
  font-size: 1rem;
  flex-shrink: 0;
}
.workspace-nav-section:not(.is-collapsed) .workspace-nav-section-chevron {
  transform: rotate(90deg);
}
/* 高度过渡：用 grid 行动画代替 display:none，展开/收起更顺滑 */
.workspace-nav-section-collapse {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.42s cubic-bezier(0.33, 1, 0.68, 1);
}
.workspace-nav-section.is-collapsed .workspace-nav-section-collapse {
  grid-template-rows: 0fr;
}
.workspace-nav-section-collapse > .workspace-nav-section-body {
  overflow: hidden;
  min-height: 0;
}
.workspace-nav-section-body {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.workspace-nav-section-head-static {
  cursor: default;
  color: #7d8ea5;
}
.workspace-nav-toggle--locked {
  cursor: not-allowed;
  opacity: 0.92;
}
@media (prefers-reduced-motion: reduce) {
  .workspace-nav-section-collapse {
    transition-duration: 0.01ms;
  }
  .workspace-nav-section-chevron {
    transition-duration: 0.01ms;
  }
}

.app-body.route-clientarea .user-workspace-nav-link,
.app-body.route-clientarea .user-workspace-tool-link,
.app-body.route-user .user-workspace-nav-link,
.app-body.route-user .user-workspace-tool-link,
.app-body.route-tool .user-workspace-nav-link,
.app-body.route-tool .user-workspace-tool-link {
  min-height: 2.1rem;
  padding: 0.4rem 0.55rem;
  border-radius: 0.55rem;
  gap: 0.22rem;
  align-items: center;
}

.workspace-item-icon,
.app-body.route-clientarea .user-workspace-tool-icon,
.app-body.route-user .user-workspace-tool-icon,
.app-body.route-tool .user-workspace-tool-icon {
  width: 1.5rem;
  height: 1.5rem;
  min-width: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  font-weight: 400;
  background: transparent;
  border: 0 !important;
  box-shadow: none !important;
}

.app-body.route-clientarea .user-workspace-tool-link.is-active .user-workspace-tool-icon,
.app-body.route-user .user-workspace-tool-link.is-active .user-workspace-tool-icon,
.app-body.route-tool .user-workspace-tool-link.is-active .user-workspace-tool-icon {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.workspace-item-icon i,
.app-body.route-clientarea .user-workspace-tool-icon i,
.app-body.route-user .user-workspace-tool-icon i,
.app-body.route-tool .user-workspace-tool-icon i {
  font-size: 1rem;
  line-height: 1;
  display: inline-block;
  transform: translateY(-1px);
}

.workspace-item-label {
  font-size: 0.86rem;
  line-height: 1.25;
  color: #26364a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 折叠时只显示图标；未配置 icon 的项用占位图标，展开时隐藏占位图标 */
.app-body:not(.workspace-sidebar-collapsed) .workspace-item-icon.is-placeholder,
.app-body:not(.workspace-sidebar-collapsed) .user-workspace-tool-icon.is-placeholder {
  display: none !important;
}

.app-body.route-clientarea .user-workspace-tool-copy,
.app-body.route-user .user-workspace-tool-copy,
.app-body.route-tool .user-workspace-tool-copy {
  display: none !important;
}

.app-body.workspace-sidebar-collapsed.route-clientarea .app-navbar,
.app-body.workspace-sidebar-collapsed.route-user .app-navbar,
.app-body.workspace-sidebar-collapsed.route-tool .app-navbar {
  left: var(--workspace-sidebar-width-collapsed);
  width: calc(100% - var(--workspace-sidebar-width-collapsed));
}

.app-body.workspace-sidebar-collapsed.route-clientarea .app-main,
.app-body.workspace-sidebar-collapsed.route-user .app-main,
.app-body.workspace-sidebar-collapsed.route-tool .app-main {
  margin-left: var(--workspace-sidebar-width-collapsed);
}

.app-body.workspace-sidebar-collapsed.route-clientarea .user-workspace-sidebar,
.app-body.workspace-sidebar-collapsed.route-user .user-workspace-sidebar,
.app-body.workspace-sidebar-collapsed.route-tool .user-workspace-sidebar {
  width: var(--workspace-sidebar-width-collapsed);
}

.app-body.workspace-sidebar-collapsed .workspace-logo-title,
.app-body.workspace-sidebar-collapsed .workspace-item-label,
.app-body.workspace-sidebar-collapsed .user-workspace-nav-group-title {
  /* Bootstrap .d-flex 使用 display:flex !important，需压过大类标题整块（含竖排文字） */
  display: none !important;
}

.app-body.workspace-sidebar-collapsed .workspace-sidebar-head {
  justify-content: center;
  flex-direction: column;
}

.app-body.workspace-sidebar-collapsed .workspace-logo-link {
  justify-content: center;
}

.app-body.workspace-sidebar-collapsed .workspace-sidebar-toggle-icon {
  transform: rotate(180deg) translateY(0);
}

.app-body.workspace-sidebar-collapsed .user-workspace-nav-link,
.app-body.workspace-sidebar-collapsed .user-workspace-tool-link {
  justify-content: center;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  gap: 0;
}

.app-body.workspace-sidebar-collapsed .workspace-item-icon,
.app-body.workspace-sidebar-collapsed .user-workspace-tool-icon {
  margin: 0;
}

.app-body.workspace-sidebar-collapsed .workspace-membership-btn-copy {
  display: none !important;
}

.app-body.workspace-sidebar-collapsed .workspace-membership-btn-icon {
  display: flex !important;
}

.app-body.workspace-sidebar-collapsed .workspace-membership-btn {
  justify-content: center;
  padding: 0.44rem 0.36rem;
  min-width: 0;
  min-height: 2.28rem;
}

@media (max-width: 1199.98px) {
  .app-body.route-clientarea .app-navbar,
  .app-body.route-user .app-navbar,
  .app-body.route-tool .app-navbar {
    left: 0;
    width: 100%;
  }

  .app-body.route-clientarea .app-main,
  .app-body.route-user .app-main,
  .app-body.route-tool .app-main {
    margin-left: 0;
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
  }

  .workspace-sidebar-toggle {
    display: none;
  }
}
/* 2026-03-25 hide workspace sidebar scrollbar but keep scrolling */
.user-workspace-sidebar-inner {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.user-workspace-sidebar-inner::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.app-body.route-clientarea .user-workspace-sidebar-inner,
.app-body.route-user .user-workspace-sidebar-inner,
.app-body.route-tool .user-workspace-sidebar-inner {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.app-body.route-clientarea .user-workspace-sidebar-inner::-webkit-scrollbar,
.app-body.route-user .user-workspace-sidebar-inner::-webkit-scrollbar,
.app-body.route-tool .user-workspace-sidebar-inner::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.app-body.route-clientarea .workspace-sidebar-scroll,
.app-body.route-user .workspace-sidebar-scroll,
.app-body.route-tool .workspace-sidebar-scroll {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.app-body.route-clientarea .workspace-sidebar-scroll::-webkit-scrollbar,
.app-body.route-user .workspace-sidebar-scroll::-webkit-scrollbar,
.app-body.route-tool .workspace-sidebar-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.app-top-points-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff8a3d, #ff5d2f);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(255, 120, 60, 0.18);
}

/* 2026-03-27 workspace topbar and recharge modal */
.app-workspace-topbar {
  display: none;
}

.app-body.route-clientarea .app-navbar .navbar-collapse,
.app-body.route-user .app-navbar .navbar-collapse,
.app-body.route-tool .app-navbar .navbar-collapse {
  justify-content: space-between;
  gap: 1rem;
}

.app-body.route-clientarea .app-default-nav,
.app-body.route-user .app-default-nav,
.app-body.route-tool .app-default-nav {
  display: none !important;
}

.app-body.route-clientarea .app-workspace-topbar,
.app-body.route-user .app-workspace-topbar,
.app-body.route-tool .app-workspace-topbar {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.app-workspace-topbar-search {
  flex: 1 1 420px;
  max-width: 460px;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 1rem;
  border-radius: 1rem;
  border: 1px solid #ebeff5;
  background: #fbfcfe;
  color: #748299;
}

.app-workspace-search-icon {
  font-size: 1rem;
  line-height: 1;
  color: #97a4b5;
}

.app-workspace-search-input {
  width: 100%;
  border: 0;
  background: transparent;
  color: #1f2d3d;
  font-size: 0.96rem;
  outline: none;
}

.app-workspace-search-input[readonly] {
  cursor: default;
}

.app-workspace-topbar-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.7rem;
}

.app-top-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 2.65rem;
  padding: 0.6rem 1rem;
  border-radius: 999px;
  border: 1px solid transparent;
  background: linear-gradient(135deg, #f4f7fb 0%, #eef3f9 100%);
  color: #1f2d3d;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(17, 36, 61, 0.06);
}

button.app-top-chip {
  appearance: none;
  cursor: pointer;
}

.app-top-chip-label {
  font-size: 0.76rem;
  color: #8391a5;
}

.app-top-chip strong {
  font-size: 0.92rem;
  font-weight: 700;
  color: #1c2c3f;
}

.app-top-chip-member {
  background: linear-gradient(135deg, #eef2ff 0%, #f5eefe 100%);
  border-color: rgba(114, 105, 255, 0.14);
}

.app-top-chip-points {
  background: linear-gradient(135deg, #ff8a3d 0%, #ff5d2f 100%);
  border-color: transparent;
}

.app-top-chip-points .app-top-chip-label,
.app-top-chip-points strong {
  color: #ffffff;
}

.app-top-chip-ghost {
  background: #ffffff;
  border-color: #ebeff5;
  color: #5a687d;
}

.app-top-account-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.4rem 0.45rem 0.4rem 0.4rem;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #ebeff5;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(17, 36, 61, 0.06);
}

.app-top-account-avatar {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #7a6bff 0%, #b45fff 100%);
  color: #ffffff;
  font-size: 0.92rem;
  font-weight: 700;
}

.app-top-account-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.app-top-account-copy strong {
  font-size: 0.92rem;
  color: #1f2d3d;
  line-height: 1.2;
}

.app-top-account-copy small {
  font-size: 0.74rem;
  color: #8391a5;
  line-height: 1.2;
}

.app-top-icon-button {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 999px;
  border: 1px solid #ebeff5;
  background: #ffffff;
  color: #66768a;
  box-shadow: 0 10px 24px rgba(17, 36, 61, 0.06);
}

.points-recharge-modal .modal-dialog {
  max-width: 1180px;
}

.points-recharge-modal-content {
  background: #0f1323;
  color: #f3f6ff;
  border-radius: 1.6rem;
  overflow: hidden;
  box-shadow: 0 40px 100px rgba(3, 8, 20, 0.55);
}

.points-recharge-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 5;
  filter: invert(1);
  opacity: 0.9;
}

.points-recharge-shell {
  padding: 1.75rem;
  background: radial-gradient(circle at top left, rgba(111, 90, 255, 0.18), transparent 36%), radial-gradient(circle at top right, rgba(255, 115, 89, 0.16), transparent 30%), #0f1323;
}

.points-recharge-hero {
  display: grid;
  grid-template-columns: minmax(220px, 0.95fr) minmax(0, 1.8fr);
  gap: 1rem;
  padding: 1.15rem;
  border-radius: 1.3rem;
  background: rgba(19, 24, 40, 0.82);
  border: 1px solid rgba(134, 147, 196, 0.16);
}

.points-recharge-account {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border-radius: 1.15rem;
  background: linear-gradient(135deg, rgba(45, 54, 92, 0.94), rgba(22, 28, 50, 0.96));
}

.points-recharge-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 700;
  background: linear-gradient(135deg, #7269ff 0%, #ae63ff 100%);
  color: #fff;
  box-shadow: 0 18px 36px rgba(114, 105, 255, 0.26);
}

.points-recharge-account-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.points-recharge-account-copy strong {
  font-size: 1.15rem;
  font-weight: 700;
  color: #ffffff;
}

.points-recharge-account-copy span {
  font-size: 0.9rem;
  color: #9aa7c2;
}

.points-recharge-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.points-recharge-summary-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.95rem 1rem;
  border-radius: 1rem;
  background: rgba(18, 23, 38, 0.92);
  border: 1px solid rgba(134, 147, 196, 0.12);
}

.points-recharge-summary-item span {
  font-size: 0.78rem;
  color: #8f9ab4;
}

.points-recharge-summary-item strong {
  font-size: 1.02rem;
  font-weight: 700;
  color: #ffffff;
}

.points-recharge-summary-item small {
  font-size: 0.78rem;
  color: #9aa7c2;
}

.points-recharge-tabs {
  margin: 1.15rem 0 1.35rem;
  gap: 0.75rem;
  border: 0;
}

.points-recharge-tabs .nav-link {
  border: 0;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  color: #8f9ab4;
  background: rgba(255, 255, 255, 0.04);
}

.points-recharge-tabs .nav-link.active {
  color: #ffffff;
  background: linear-gradient(135deg, #7269ff 0%, #ae63ff 100%);
  box-shadow: 0 14px 30px rgba(114, 105, 255, 0.28);
}

.points-recharge-grid,
.points-package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.points-recharge-card,
.points-package-card {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  min-height: 100%;
  padding: 1.2rem;
  border-radius: 1.2rem;
  background: rgba(18, 23, 38, 0.96);
  border: 1px solid rgba(134, 147, 196, 0.12);
}

.points-recharge-card-top,
.points-package-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.8rem;
}

.points-recharge-card-title,
.points-package-card-head h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
}

.points-recharge-card-subtitle,
.points-package-card-kicker {
  font-size: 0.8rem;
  color: #9aa7c2;
}

.points-recharge-card-badge,
.points-package-card-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #d6def5;
  font-size: 0.72rem;
}

.points-recharge-card-points {
  font-size: 1.9rem;
  font-weight: 800;
  color: #ffffff;
}

.points-recharge-card-price,
.points-package-card-price {
  font-size: 1.7rem;
  font-weight: 800;
  color: #ffffff;
}

.points-package-card-price small {
  font-size: 0.82rem;
  color: #9aa7c2;
}

.points-package-card.is-featured {
  background: linear-gradient(180deg, rgba(40, 31, 88, 0.98) 0%, rgba(20, 21, 42, 0.98) 100%);
  border-color: rgba(126, 96, 255, 0.48);
  box-shadow: 0 20px 50px rgba(87, 73, 191, 0.22);
}

.points-package-card-list {
  margin: 0;
  padding-left: 1rem;
  color: #d6def5;
  line-height: 1.8;
}

.points-package-card-list li + li {
  margin-top: 0.2rem;
}

@media (max-width: 1399.98px) {
  .points-recharge-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .points-recharge-grid,
  .points-package-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1199.98px) {
  .app-body.route-clientarea .app-default-nav,
  .app-body.route-user .app-default-nav,
  .app-body.route-tool .app-default-nav {
    display: flex !important;
  }

  .app-body.route-clientarea .app-workspace-topbar,
  .app-body.route-user .app-workspace-topbar,
  .app-body.route-tool .app-workspace-topbar {
    display: none;
  }

  .points-recharge-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px) {
  .points-recharge-shell {
    padding: 1rem;
  }

  .points-recharge-summary-grid,
  .points-recharge-grid,
  .points-package-grid {
    grid-template-columns: 1fr;
  }
}

/* 积分 / 会员弹窗 · 白底 + 粉蓝点缀 */
.points-recharge-modal .modal-dialog {
  max-width: 1240px;
}

.points-recharge-modal-content {
  background: #ffffff;
  color: #243449;
  border-radius: 1.35rem;
  overflow: hidden;
  box-shadow: 0 28px 72px rgba(255, 105, 155, 0.14), 0 12px 40px rgba(19, 36, 58, 0.1);
}

.points-recharge-close {
  top: 1rem;
  right: 1rem;
  filter: none;
  opacity: 1;
  background-color: rgba(255, 255, 255, 0.98);
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(19, 36, 58, 0.1);
}

.points-recharge-shell {
  position: relative;
  padding: 4.9rem 1.45rem 1.45rem;
  background:
    radial-gradient(circle at 12% 8%, rgba(255, 182, 214, 0.38), transparent 24%),
    radial-gradient(circle at 88% 6%, rgba(191, 219, 254, 0.42), transparent 22%),
    linear-gradient(180deg, #fffafd 0%, #ffffff 24%, #ffffff 100%);
}

.points-recharge-shell::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 4rem;
  background: linear-gradient(90deg, #ff76b8 0%, #ff4e8f 48%, #ff9a73 100%);
}

.points-recharge-shell::after {
  content: 'AI积分  开工特惠，会员权益与积分充值自由组合';
  position: absolute;
  top: 1.05rem;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.42rem 1.15rem;
  min-width: 21rem;
  max-width: calc(100% - 8rem);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff8fb;
  font-size: 0.92rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.01em;
  text-shadow: 0 1px 2px rgba(178, 32, 88, 0.18);
}

.points-recharge-hero {
  grid-template-columns: minmax(230px, 0.92fr) minmax(0, 1.85fr);
  gap: 0.95rem;
  padding: 1rem;
  border-radius: 1.35rem;
  background: #ffffff;
  border: 1px solid rgba(255, 210, 225, 0.85);
  box-shadow: 0 14px 36px rgba(255, 105, 155, 0.1), 0 8px 24px rgba(59, 130, 246, 0.06);
}

.points-recharge-account {
  padding: 1rem;
  border-radius: 1.15rem;
  background: linear-gradient(135deg, #fff5f9 0%, #ffffff 55%, #f3f8ff 100%);
  border: 1px solid rgba(255, 200, 220, 0.75);
}

.points-recharge-avatar {
  background: linear-gradient(135deg, #8b7dff 0%, #bf73ff 100%);
  color: #ffffff;
  box-shadow: 0 12px 28px rgba(131, 108, 255, 0.24);
}

.points-recharge-account-copy strong,
.points-recharge-summary-item strong,
.points-recharge-card-title,
.points-package-card-head h3,
.points-recharge-card-points,
.points-recharge-card-price,
.points-package-card-price {
  color: #22354b;
}

.points-recharge-account-copy span,
.points-recharge-summary-item span,
.points-recharge-summary-item small,
.points-recharge-card-subtitle,
.points-package-card-kicker,
.points-package-card-list {
  color: #7f8ea3;
}

.points-recharge-summary-item {
  background: #ffffff;
  border: 1px solid #ebeff5;
  box-shadow: 0 10px 26px rgba(26, 43, 72, 0.05);
}

.points-recharge-tabs {
  margin: 1rem 0 1.2rem;
  gap: 0.75rem;
}

.points-recharge-tabs .nav-link {
  border: 1px solid #ebeff5;
  border-radius: 999px;
  padding: 0.58rem 1.08rem;
  color: #64748b;
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(25, 41, 67, 0.05);
  font-weight: 700;
}

.points-recharge-tabs .nav-link:hover {
  border-color: rgba(255, 182, 204, 0.75);
  color: #e11d48;
  background: #fffafb;
}

.points-recharge-tabs .nav-link.active {
  color: #ffffff;
  background: linear-gradient(135deg, #ff76b8 0%, #ff5a8a 52%, #ff9a61 100%);
  border-color: transparent;
  box-shadow: 0 12px 28px rgba(255, 94, 140, 0.28);
}

.points-recharge-tabs-row {
  width: 100%;
  row-gap: 0.5rem;
}

.points-recharge-tab-enterprise-wrap {
  flex-shrink: 0;
}

.points-modal-enterprise-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.48rem 0.85rem 0.48rem 0.62rem;
  border-radius: 999px;
  border: 1px solid #c9a86c;
  background: rgba(255, 255, 255, 0.96);
  color: #9a7340;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.15;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(26, 43, 72, 0.07);
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease;
}

.points-modal-enterprise-btn:hover {
  background: #fffdf8;
  border-color: #b8924f;
  color: #7a5a28;
  box-shadow: 0 10px 22px rgba(26, 43, 72, 0.09);
}

.points-modal-enterprise-btn:focus-visible {
  outline: 2px solid rgba(201, 168, 108, 0.55);
  outline-offset: 2px;
}

.points-modal-enterprise-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: inherit;
}

.points-modal-enterprise-btn-text {
  flex-shrink: 0;
}

.points-modal-enterprise-btn-chevron {
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  opacity: 0.88;
  margin-left: 0.06rem;
  transform: translateY(-0.06em);
}

@media (max-width: 575.98px) {
  .points-recharge-tab-enterprise-wrap {
    width: 100%;
    margin-left: 0 !important;
    margin-top: 0.15rem;
  }

  .points-modal-enterprise-btn {
    width: 100%;
  }
}

/* 企业认证叠在「积分 / 会员」弹窗之上 */
#enterpriseCertModal.modal {
  --bs-modal-zindex: 1065;
}

.points-recharge-content {
  padding-top: 0.2rem;
}

.points-recharge-grid,
.points-package-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.points-recharge-card,
.points-package-card {
  position: relative;
  gap: 0.9rem;
  padding: 1.15rem;
  border-radius: 1.28rem;
  background: #ffffff;
  border: 1px solid #e8ecf2;
  box-shadow: 0 12px 32px rgba(25, 41, 67, 0.06);
}

.points-recharge-card::before,
.points-package-card::before {
  content: '';
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 0.32rem;
  border-radius: 1.28rem 1.28rem 0 0;
  background: linear-gradient(90deg, #ff8ec5 0%, #ff6b9a 45%, #7eb8ff 100%);
  opacity: 0.88;
}

.points-recharge-card-badge,
.points-package-card-tag {
  background: #fff5f8;
  color: #e11d48;
  border: 1px solid rgba(253, 164, 175, 0.85);
  font-weight: 700;
}

.points-package-card.is-featured {
  background: #ffffff;
  border: 2px solid rgba(255, 118, 184, 0.55);
  box-shadow: 0 18px 42px rgba(255, 105, 155, 0.14), 0 8px 24px rgba(96, 165, 250, 0.08);
}

.points-package-card.is-featured::before {
  background: linear-gradient(90deg, #ff76b8 0%, #ff4d8c 50%, #60a5fa 100%);
  opacity: 1;
  height: 0.36rem;
}

.points-package-card.is-featured .points-package-card-head h3,
.points-package-card.is-featured .points-package-card-price,
.points-package-card.is-featured .points-package-card-list {
  color: #22354b;
}

.points-package-card.is-featured .points-package-card-kicker,
.points-package-card.is-featured .points-package-card-price small {
  color: #7f8ea3;
}

.points-package-card-price small {
  color: #8fa0b4;
}

.points-package-card-list {
  margin: 0;
  padding-left: 1rem;
  line-height: 1.8;
}

.points-recharge-card .btn,
.points-package-card .btn {
  min-height: 2.95rem;
  border-radius: 1rem;
  font-weight: 700;
}

.points-recharge-card .btn-primary,
.points-package-card .btn-primary {
  border-color: transparent;
  background: linear-gradient(135deg, #ff7ea6 0%, #ff808d 56%, #ffa25f 100%);
  box-shadow: 0 14px 30px rgba(255, 125, 145, 0.22);
}

.points-recharge-card .btn-outline-primary,
.points-package-card .btn-outline-primary {
  color: #f1657f;
  background: #fff8fb;
  border-color: rgba(255, 165, 186, 0.78);
}

.points-recharge-card .btn-outline-primary:hover,
.points-package-card .btn-outline-primary:hover {
  color: #ffffff;
  border-color: transparent;
  background: linear-gradient(135deg, #ff7ea6 0%, #ff808d 56%, #ffa25f 100%);
}

@media (max-width: 1199.98px) {
  .points-recharge-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991.98px) {
  .points-recharge-grid,
  .points-package-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .points-recharge-shell::after {
    min-width: 0;
    max-width: calc(100% - 6rem);
    font-size: 0.84rem;
  }
}

@media (max-width: 767.98px) {
  .points-recharge-shell {
    padding: 4.55rem 0.95rem 1rem;
  }

  .points-recharge-summary-grid,
  .points-recharge-grid,
  .points-package-grid {
    grid-template-columns: 1fr;
  }

  .points-recharge-shell::after {
    top: 1.05rem;
    max-width: calc(100% - 4rem);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}


/* 2026-03-27 dashboard and log center */
:root {
  --primary-color: #5b7cff;
  --glass-bg: rgba(255, 255, 255, 0.84);
  --glass-border: rgba(225, 232, 243, 0.92);
  --shadow-light: 0 16px 40px rgba(31, 47, 74, 0.08);
}
.console-dashboard-shell,.admin-log-center-page{display:grid;gap:1rem}.console-section{display:block}.console-welcome-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:1rem}.console-welcome-card,.console-alert-card,.console-action-panel,.console-data-card,.console-chart-panel,.console-help-card,.admin-log-hero,.admin-log-stat-card,.admin-log-channel-card,.admin-log-filter-panel,.admin-log-table-panel{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:1rem;box-shadow:var(--shadow-light);backdrop-filter:blur(18px)}.console-welcome-card{display:flex;align-items:center;min-height:220px;padding:1.6rem;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(88,124,255,.14),rgba(255,255,255,.92))}.console-welcome-card.is-gold{background:linear-gradient(135deg,rgba(255,204,111,.2),rgba(255,255,255,.94))}.console-welcome-card.is-diamond{background:linear-gradient(135deg,rgba(85,129,255,.22),rgba(255,255,255,.94))}.console-welcome-card::after{content:'';position:absolute;right:-70px;bottom:-70px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,rgba(91,124,255,.16),transparent 68%)}.console-welcome-copy{position:relative;z-index:1;display:grid;gap:.65rem}.console-welcome-kicker,.console-block-kicker{color:var(--primary-color);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.console-welcome-title,.console-block-title,.admin-log-title{margin:0;color:#22344a;font-weight:700}.console-welcome-title{font-size:clamp(1.65rem,2vw,2.15rem)}.console-welcome-text,.console-chart-note,.admin-log-subtitle{margin:0;color:#6d7f94;line-height:1.7}.console-welcome-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.console-user-badge{display:inline-flex;align-items:center;justify-content:center;min-height:2.35rem;padding:.45rem .95rem;border-radius:999px;font-size:.88rem;font-weight:700}.console-user-badge.is-free{background:rgba(118,131,153,.14);color:#54657a}.console-user-badge.is-gold{background:rgba(255,206,117,.22);color:#9b6a00}.console-user-badge.is-diamond{background:rgba(91,124,255,.16);color:#3457dd}.console-guide-button{border-radius:999px;padding-inline:1rem}.console-alert-card,.console-action-panel,.console-data-card,.console-chart-panel,.console-help-card,.admin-log-hero,.admin-log-stat-card,.admin-log-channel-card,.admin-log-filter-panel,.admin-log-table-panel{padding:1.35rem}.console-alert-list,.console-task-list,.console-benefit-list,.console-recent-tool-list{display:grid;gap:.85rem}.console-alert-item,.console-task-item,.console-benefit-card,.console-recent-tool,.console-help-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-radius:.9rem;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background-color .24s ease}.console-alert-item,.console-task-item,.console-recent-tool{padding:.95rem 1rem;border:1px solid rgba(225,232,243,.92);background:rgba(255,255,255,.82)}.console-alert-item strong,.console-task-item strong,.console-benefit-card strong,.console-recent-tool strong,.console-help-card strong{color:#22344a}.console-alert-item p,.console-task-item p,.console-benefit-card p,.console-recent-tool small,.console-help-card span,.console-empty-state{margin:.2rem 0 0;color:#6f8297;line-height:1.65}.console-alert-item.is-danger{border-color:rgba(255,146,146,.65);background:rgba(255,244,244,.9)}.console-alert-item.is-warning{border-color:rgba(255,205,112,.72);background:rgba(255,249,239,.92)}.console-kpi-card{display:grid;gap:.55rem;min-height:100%;padding:1.1rem 1rem}.console-kpi-label{color:#6f8196;font-size:.82rem;font-weight:700}.console-kpi-value{color:#22344a;font-size:1.72rem;font-weight:800;line-height:1.15}.console-kpi-meta{min-height:2.8rem;color:#72859b;font-size:.88rem;line-height:1.55}.console-kpi-card.points{border-color:rgba(91,124,255,.24)}.console-kpi-card.is-gold{border-color:rgba(255,204,111,.42)}.console-kpi-card.is-diamond{border-color:rgba(91,124,255,.34)}.console-kpi-card.good{border-color:rgba(87,192,143,.32)}.console-kpi-card.warn{border-color:rgba(255,187,93,.42)}.console-kpi-action{width:fit-content;border-radius:999px;padding-inline:.95rem}.console-action-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.console-action-note{color:#6f8297;font-size:.88rem}.console-quick-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.85rem}.console-quick-card{min-height:132px;padding:.95rem .9rem;border-radius:.85rem;border:1px solid rgba(225,232,243,.92);background:rgba(255,255,255,.9);text-decoration:none;display:grid;align-content:start;gap:.45rem;box-shadow:0 8px 20px rgba(25,41,67,.05);transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.console-quick-card:hover,.console-benefit-card:hover,.console-recent-tool:hover,.console-help-card:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(25,41,67,.09);border-color:rgba(91,124,255,.34)}.console-quick-icon,.console-help-icon,.console-recent-tool-icon,.admin-log-channel-icon{width:2.5rem;height:2.5rem;border-radius:.85rem;display:inline-flex;align-items:center;justify-content:center;background:rgba(91,124,255,.1);color:var(--primary-color);font-size:.88rem;font-weight:800}.console-quick-card strong,.console-help-card strong,.console-recent-tool-copy strong{font-size:.94rem}.console-quick-card span,.console-help-card span,.console-recent-tool-copy small{font-size:.82rem;line-height:1.55;color:#71849a}.console-block-head,.admin-log-table-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.console-chart-wrap{position:relative;height:320px}.console-funnel-wrap{position:relative;height:320px}.console-world-map{min-height:360px;height:100%}.console-table thead th,.admin-log-table thead th{color:#7c8ca0;font-size:.82rem;font-weight:700;border-bottom-color:rgba(227,233,241,.92)}.console-table tbody td,.admin-log-table tbody td{border-bottom-color:rgba(236,240,246,.88)}.console-recent-tool{text-decoration:none}.console-recent-tool-copy{display:grid;gap:.12rem;flex:1 1 auto;min-width:0}.console-recent-tool-action,.console-benefit-card span{color:var(--primary-color);font-weight:700;white-space:nowrap}.console-benefit-card,.console-help-card{padding:1rem 1.05rem;border:1px solid rgba(225,232,243,.92);background:rgba(255,255,255,.88);text-decoration:none}.console-guide-offcanvas{width:min(420px,92vw)}.console-guide-steps{display:grid;gap:1rem}.console-guide-step{display:grid;grid-template-columns:2.1rem 1fr;gap:.9rem;align-items:start;padding:.95rem 1rem;border-radius:.9rem;background:rgba(255,255,255,.92);border:1px solid rgba(225,232,243,.92)}.console-guide-step span{width:2.1rem;height:2.1rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(91,124,255,.12);color:var(--primary-color);font-weight:800}.console-guide-step p{margin:.3rem 0 0;color:#6f8297;line-height:1.65}.admin-log-hero,.admin-log-filter-panel,.admin-log-table-panel{background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(249,251,255,.9))}.admin-log-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.admin-log-hero-badges{display:flex;flex-wrap:wrap;gap:.6rem}.admin-log-chip{display:inline-flex;align-items:center;justify-content:center;min-height:2.2rem;padding:.35rem .8rem;border-radius:999px;background:rgba(91,124,255,.1);color:var(--primary-color);font-weight:700}.admin-log-chip.is-danger{background:rgba(255,127,127,.12);color:#d94d4d}.admin-log-stat-card span,.admin-log-drawer-item span{display:block;color:#73859b;font-size:.82rem;font-weight:700}.admin-log-stat-card strong{display:block;margin-top:.2rem;color:#22344a;font-size:1.6rem;font-weight:800}.admin-log-stat-card small,.admin-log-channel-copy small{display:block;margin-top:.35rem;color:#708398;line-height:1.6}.admin-log-stat-card.is-warning{border-color:rgba(255,187,93,.42)}.admin-log-stat-card.is-danger{border-color:rgba(255,146,146,.42)}.admin-log-channel-card{display:flex;align-items:center;gap:.9rem;min-height:100%}.admin-log-channel-copy{display:grid;gap:.14rem}.admin-log-channel-copy strong{color:#22344a}.admin-log-channel-copy span{color:#52647b;font-weight:700}.admin-log-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.95rem;padding:.2rem .7rem;border-radius:999px;font-size:.76rem;font-weight:700}.admin-log-badge.is-debug{background:rgba(128,139,158,.14);color:#647488}.admin-log-badge.is-info{background:rgba(91,124,255,.12);color:#3557db}.admin-log-badge.is-warning{background:rgba(255,187,93,.16);color:#b87404}.admin-log-badge.is-error{background:rgba(255,127,127,.16);color:#d14a4a}.admin-log-summary-cell{min-width:280px;max-width:420px;color:#52647b}.admin-log-drawer{width:min(540px,96vw)}.admin-log-drawer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.admin-log-drawer-item{padding:.85rem .95rem;border-radius:.9rem;background:rgba(249,251,255,.9);border:1px solid rgba(225,232,243,.92)}.admin-log-drawer-item.is-wide{grid-column:span 2}.admin-log-drawer-item strong{display:block;margin-top:.25rem;color:#22344a;font-size:.96rem}.admin-log-drawer-block{margin-top:1rem}.admin-log-drawer-block h4{margin-bottom:.55rem;color:#22344a;font-size:.98rem;font-weight:700}.admin-log-codeblock{margin:0;padding:.95rem;border-radius:.95rem;background:#0f1723;color:#e8eef8;font-size:.78rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}@media (max-width:1599.98px){.console-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1199.98px){.console-welcome-grid{grid-template-columns:1fr}.console-action-top,.console-block-head,.admin-log-hero,.admin-log-table-head{flex-direction:column;align-items:flex-start}}@media (max-width:991.98px){.console-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-log-drawer-grid{grid-template-columns:1fr}.admin-log-drawer-item.is-wide{grid-column:auto}}@media (max-width:767.98px){.console-quick-grid{grid-template-columns:1fr}.console-chart-wrap,.console-funnel-wrap{height:260px}.console-world-map{min-height:280px}}

.console-map-fallback{display:grid;gap:.9rem;align-content:start;min-height:360px;padding:1.1rem;border-radius:1rem;background:rgba(255,255,255,.72)}.console-map-fallback-title{color:#22344a;font-size:1rem;font-weight:700}.console-map-fallback p{margin:0;color:#71849a;line-height:1.65}.console-map-fallback-list{display:grid;gap:.65rem;margin-top:.35rem}.console-map-fallback-row{display:flex;align-items:center;justify-content:space-between;padding:.8rem .95rem;border:1px solid rgba(225,232,243,.92);border-radius:.85rem;background:rgba(249,251,255,.92)}.console-map-fallback-row span{color:#5e7086}.console-map-fallback-row strong{color:#22344a;font-size:.96rem}


/* clientarea v3 */
:root {
  --primary-color: #5b7cff;
  --glass-bg: rgba(255, 255, 255, 0.88);
  --glass-border: rgba(221, 229, 240, 0.92);
  --shadow-light: 0 10px 30px rgba(28, 42, 66, 0.08);
}

.console-home-v2 {
  display: grid;
  gap: 1rem;
}

/* 控制台首页 · 顶栏：快捷导航 + 用户信息（等高、加宽分栏） */
.console-home-topstrip .row {
  --bs-gutter-x: 1.15rem;
}

.console-home-topcard {
  padding: 1.35rem 1.45rem;
  border-radius: 0.5rem;
  background: #ffffff;
  box-shadow: 0 4px 18px rgba(28, 42, 66, 0.06);
}

.console-home-topcard-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a2b3d;
}

.console-home-quicknav-body {
  margin-top: 1rem;
  min-height: 9.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.console-home-quicknav-empty {
  align-self: center;
  width: 100%;
  text-align: center;
  padding: 1.25rem 0.5rem;
}

.console-home-quicknav-block-title {
  font-size: 0.78rem;
  font-weight: 800;
  color: #6d7f94;
  margin-bottom: 0.6rem;
}

.console-home-quicknav-block--custom {
  position: relative;
}

.console-home-quicknav-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(3.15rem, 3.15rem));
  gap: 0.7rem 0.95rem;
  grid-auto-rows: minmax(3.15rem, 3.15rem);
  align-content: start;
  /* 固定两行高度（即使格子内容少于两行也不改变模块位置） */
  min-height: calc(3.15rem * 2 + 0.7rem);
}

@media (min-width: 1200px) {
  .console-home-quicknav-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.console-home-quicknav-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 3.15rem;
  padding: 0.45rem 2.1rem 0.45rem 0.6rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(230, 236, 245, 1);
  background: #ffffff;
  text-decoration: none;
  color: #111827;
  font-size: 0.9rem;
  font-weight: 600;
  transition:
    border-color var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease),
    box-shadow var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease),
    transform var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease);
}

.console-home-quicknav-item {
  position: relative;
}

.console-quicknav-recent-del {
  position: absolute;
  right: 0.45rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(225, 232, 243, 0.98);
  background: rgba(255, 255, 255, 0.92);
  color: rgba(17, 24, 39, 0.65);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition: background-color var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease),
              border-color var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease),
              color var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease);
}

.console-home-quicknav-item:hover .console-quicknav-recent-del {
  display: inline-flex;
}

.console-quicknav-recent-del:hover {
  background: rgba(239, 246, 255, 0.95);
  border-color: rgba(91, 124, 255, 0.35);
  color: rgba(29, 78, 216, 0.9);
}

.console-home-quicknav-item:hover {
  border-color: rgba(91, 124, 255, 0.35);
  box-shadow: 0 6px 16px rgba(28, 42, 66, 0.07);
  transform: translateY(-1px);
  color: #111827;
}

.console-home-quicknav-icon {
  flex: 0 0 auto;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.82rem;
  color: #3d52c4;
  background: transparent;
}

.console-home-quicknav-icon i {
  display: inline-block;
  font-size: 1.05rem;
  line-height: 1;
  color: #3d52c4;
}

.console-home-quicknav-label {
  min-width: 0;
}

/* 添加入口（展开面板） */
.console-quicknav-picker {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.65rem);
  margin-top: 0;
  width: 100%;
  z-index: 20;
  background: linear-gradient(145deg, rgba(255,255,255,0.97), rgba(241,246,255,0.98));
  border: 1px solid rgba(196, 207, 228, 0.86);
  border-radius: 1.25rem;
  box-shadow: 18px 18px 34px rgba(184, 197, 220, 0.24), -12px -12px 24px rgba(255, 255, 255, 0.88);
  padding: 1rem;
}

.console-quicknav-picker-tabs {
  display: flex;
  gap: 1.25rem;
  border-bottom: 1px solid rgba(230, 236, 245, 0.95);
  margin-bottom: 0.7rem;
  padding: 0 0.1rem 0.65rem;
}

.console-quicknav-picker-tab {
  background: transparent;
  border: 0;
  padding: 0;
  color: #6d7f94;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  position: relative;
}

.console-quicknav-picker-tab.is-active {
  color: #22344a;
}

.console-quicknav-picker-tab.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -0.65rem;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: #1d4ed8;
}

.console-quicknav-picker-search {
  margin-bottom: 0.75rem;
}

.console-quicknav-picker-list {
  max-height: 14rem;
  overflow: auto;
}

.console-quicknav-feature-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  border: 0;
  background: transparent;
  padding: 0;
  border-radius: 0;
  cursor: pointer;
}

.console-quicknav-feature-row {
  min-height: 2.8rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(221, 229, 244, 0.88);
  background: rgba(255,255,255,0.76);
  color: #44536f;
  font-weight: 600;
  border-radius: 0.95rem;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.console-quicknav-feature-row:hover {
  border-color: rgba(29, 78, 216, 0.24);
  background: rgba(29, 78, 216, 0.08);
  color: #1d4ed8;
}

.console-quicknav-feature-row:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.console-quicknav-feature-row-icon {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(29, 78, 216, 0.06);
}

.console-quicknav-feature-row-icon i {
  font-size: 1.02rem;
  color: #3d52c4;
}

.console-quicknav-feature-row-title {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 700;
  color: #22344a;
  font-size: 0.9rem;
}

.console-quicknav-feature-row-btn {
  font-size: 0.82rem;
  font-weight: 800;
  color: #1d4ed8;
  white-space: nowrap;
}

.console-quicknav-picker-hint {
  padding: 0.75rem 0;
}

.console-home-user-avatar {
  width: 3.35rem;
  height: 3.35rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  font-weight: 800;
  color: #ffffff;
  background: linear-gradient(145deg, #5b7cff 0%, #4060e6 100%);
  box-shadow: 0 6px 16px rgba(91, 124, 255, 0.28);
  flex-shrink: 0;
}

.console-home-user-points-value {
  font-size: clamp(1.55rem, 2.4vw, 1.95rem);
  font-weight: 800;
  color: #1a2b3d;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.console-home-user-metrics {
  margin-top: 1rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(230, 236, 245, 0.95);
}

.console-home-metric {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
  padding: 0.35rem 0.4rem;
  text-align: center;
  text-decoration: none;
  color: inherit;
  border-right: 1px solid rgba(230, 236, 245, 0.95);
  transition: background-color var(--app-motion-duration-fast, 0.2s) var(--app-motion-ease, ease);
}

.console-home-metric:last-child {
  border-right: none;
}

.console-home-metric:hover {
  background: rgba(249, 251, 255, 0.95);
  color: inherit;
}

.console-home-metric-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #6d7f94;
  line-height: 1.35;
}

.console-home-metric-value {
  font-size: 1.35rem;
  font-weight: 800;
  color: #1a2b3d;
  line-height: 1;
}

.console-home-quicknav-add-btn {
  background: rgba(255, 255, 255, 0.88);
  border: 1px dashed rgba(225, 232, 243, 1);
  color: #22344a;
  border-radius: 0.65rem;
  padding: 0.6rem 0.8rem;
}

.console-home-quicknav-add-btn:hover {
  background: #ffffff;
  border-color: rgba(91, 124, 255, 0.35);
}

.console-home-quicknav-add-plus {
  font-size: 1.25rem;
  line-height: 1;
  margin-right: 0.5rem;
  font-weight: 900;
}

@media (max-width: 575.98px) {
  .console-home-quicknav-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .console-home-metric {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    border-right: none;
    border-bottom: 1px solid rgba(230, 236, 245, 0.95);
    padding: 0.55rem 0.25rem;
  }

  .console-home-user-metrics .console-home-metric:last-child {
    border-bottom: none;
  }
}

/* 控制台首页 · 五卡媒体能力（整图 + 底部白色半透明叠层 + 大圆角） */
.console-home-media-row .row {
  --bs-gutter-x: 1rem;
  --bs-gutter-y: 1rem;
}

.console-home-media-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 9.5rem;
  aspect-ratio: 10 / 7;
  border-radius: 1rem;
  overflow: hidden;
  background: #e8edf5;
  border: 1px solid rgba(220, 228, 240, 0.95);
  box-shadow: 0 6px 24px rgba(28, 42, 66, 0.08);
  color: #1a2332;
  isolation: isolate;
  transition:
    border-color var(--app-motion-duration-base, 0.24s) var(--app-motion-ease, ease),
    box-shadow var(--app-motion-duration-base, 0.24s) var(--app-motion-ease, ease),
    transform var(--app-motion-duration-base, 0.24s) var(--app-motion-ease, ease);
}

.console-home-media-card:hover {
  border-color: rgba(91, 124, 255, 0.32);
  box-shadow: 0 14px 36px rgba(28, 42, 66, 0.12);
  transform: translateY(-3px);
  color: #1a2332;
}

.console-home-media-thumb {
  position: relative;
  width: 100%;
  height: 58%;
  background-position: 50% 40%;
  background-size: cover;
  background-repeat: no-repeat;
  flex: 0 0 auto;
  /* 提升封面图观感：轻微增强清晰度与对比度 */
  image-rendering: -webkit-optimize-contrast;
  transform: translateZ(0);
  backface-visibility: hidden;
  filter: saturate(1.06) contrast(1.05) brightness(1.02);
}

.console-home-media-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* 文字区域是独立底色，这里不再用半透明渐变影响整体分层 */
  background: transparent;
  z-index: 1;
}

/* 与官方模板库同一套封面图（由 PHP 内联 background-image） */
.console-home-media-thumb--cover {
  background-position: center center;
}

.console-home-media-overlay {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-height: 0;
  /* 保持现有文字区位置不变，只在与图片衔接处增加极轻透明过渡 */
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.9) 0%,
    rgba(255, 255, 255, 0.96) 14%,
    rgba(255, 255, 255, 0.985) 100%
  );
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-top: 1px solid rgba(240, 242, 247, 0.9);
}

.console-home-media-overlay::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -18px;
  height: 18px;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.18) 38%,
    rgba(255, 255, 255, 0.68) 78%,
    rgba(255, 255, 255, 0.9) 100%
  );
}

.console-home-media-overlay-inner {
  position: relative;
  z-index: 1;
  padding: 1rem 0.85rem 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.console-home-media-title-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.console-home-media-ico {
  flex: 0 0 auto;
  font-size: 1.2rem;
  line-height: 1;
  color: #111827;
  filter: none;
}

.console-home-media-title {
  font-size: 0.98rem;
  font-weight: 800;
  color: #111827;
  line-height: 1.35;
  letter-spacing: -0.02em;
  text-shadow: none;
}

.console-home-media-desc {
  font-size: 0.8rem;
  line-height: 1.55;
  color: #111827;
  display: block; /* 允许完整显示文字 */
  overflow: visible;
  text-shadow: none;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}

@media (max-width: 575.98px) {
  .console-home-media-card {
    aspect-ratio: 10 / 9;
    min-height: 11.5rem;
  }

  .console-home-media-thumb {
    height: 56%;
  }

  .console-home-media-overlay-inner {
    padding-top: 0.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .console-home-media-card:hover {
    transform: none;
  }

  .console-home-media-overlay {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* 控制台首页 · 创意输入区（浅色、大圆角） */
.console-ai-creative-hero {
  display: grid;
  gap: 1rem;
}

.console-ai-creative-headline {
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
  padding: 0 0.25rem;
}

.console-ai-creative-title {
  color: #1a2b3d;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.35;
}

.console-ai-creative-accent {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(91, 124, 255, 0.12), rgba(147, 112, 219, 0.12));
  color: #4d64d8;
  font-weight: 900;
}

.console-ai-creative-spark {
  font-size: 0.85em;
  opacity: 0.85;
}

.console-ai-creative-sub {
  font-size: 0.94rem;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

.console-ai-creative-shell {
  background: #ffffff;
  border: 1px solid rgba(226, 232, 241, 0.98);
  border-radius: 1.35rem;
  box-shadow:
    0 4px 24px rgba(28, 42, 66, 0.06),
    0 1px 0 rgba(255, 255, 255, 0.9) inset;
  padding: 1rem 1.1rem 0.85rem;
  max-width: 980px;
  margin: 0 auto;
}

.console-ai-creative-input-row {
  display: flex;
  align-items: stretch;
  gap: 0.85rem;
  min-height: 7.5rem;
}

.console-ai-upload-slot {
  flex: 0 0 auto;
  width: 4.5rem;
  min-height: 4.5rem;
  border-radius: 1rem;
  border: 1px dashed rgba(180, 195, 214, 0.95);
  background: linear-gradient(180deg, #fafbfd 0%, #f4f7fb 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
}

.console-ai-upload-slot:hover {
  border-color: rgba(91, 124, 255, 0.45);
  background: #f8faff;
  box-shadow: 0 0 0 3px rgba(91, 124, 255, 0.08);
}

.console-ai-upload-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.console-ai-upload-plus {
  font-size: 1.65rem;
  font-weight: 300;
  color: #8b9cb0;
  line-height: 1;
  pointer-events: none;
}

.console-ai-creative-textarea {
  flex: 1;
  min-width: 0;
  padding: 0.85rem 1rem;
  border: none;
  border-radius: 1rem;
  resize: vertical;
  min-height: 5.5rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: #22344a;
  background: #f8fafc;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.console-ai-creative-textarea::placeholder {
  color: #94a3b8;
}

.console-ai-creative-textarea:focus {
  outline: none;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(91, 124, 255, 0.15);
}

.console-ai-creative-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.15rem 0.4rem;
  margin-top: 0.35rem;
  border-top: 1px solid rgba(237, 242, 249, 0.95);
}

.console-ai-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #3d4f66;
  background: #f1f5f9;
  border: 1px solid rgba(226, 232, 241, 0.95);
  box-shadow: none;
}

.console-ai-pill-btn:hover,
.console-ai-pill-btn:focus {
  color: #2b3a4d;
  background: #e8eefc;
  border-color: rgba(91, 124, 255, 0.25);
}

.console-ai-pill-btn.dropdown-toggle::after {
  margin-left: 0.25rem;
  opacity: 0.65;
}

.console-ai-pill-icon {
  font-size: 1rem;
  color: #5b7cff;
}

.console-ai-pill-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 0.35rem;
  font-size: 0.78rem;
  font-weight: 800;
}

.console-ai-pill-mark--amazon {
  background: linear-gradient(180deg, #ff9900 0%, #ff6a00 100%);
  color: #fff;
}

.console-ai-pill-emoji {
  font-size: 1.05rem;
  line-height: 1;
}

.console-ai-creative-filters .dropdown-item.active {
  font-weight: 600;
  color: #4d64d8;
}

.console-ai-send-btn {
  flex-shrink: 0;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(145deg, #5b7cff 0%, #6a5ae0 100%);
  box-shadow: 0 8px 22px rgba(91, 124, 255, 0.35);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.console-ai-send-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
  box-shadow: 0 10px 26px rgba(91, 124, 255, 0.42);
}

.console-ai-send-btn:active {
  transform: translateY(0);
}

.console-ai-quick-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 0.6rem;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 0.25rem;
}

.console-ai-quick-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.42rem 0.82rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  background: #ffffff;
  border: 1px solid rgba(226, 232, 241, 0.98);
  box-shadow: 0 2px 10px rgba(28, 42, 66, 0.04);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.console-ai-quick-pill:hover {
  color: #334155;
  border-color: rgba(91, 124, 255, 0.35);
  background: #f8faff;
  transform: translateY(-1px);
}

.console-ai-quick-pill-arrow {
  font-size: 0.75rem;
  opacity: 0.55;
}

@media (max-width: 767.98px) {
  .console-ai-creative-input-row {
    flex-direction: column;
    min-height: 0;
  }

  .console-ai-upload-slot {
    width: 100%;
    min-height: 3.25rem;
  }

  .console-ai-creative-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .console-ai-creative-filters {
    justify-content: flex-start;
  }

  .console-ai-send-btn {
    align-self: flex-end;
  }
}

.console-alert-stack {
  display: grid;
  gap: 0.75rem;
}

.console-inline-alert {
  border-radius: 12px;
  border-width: 1px;
  box-shadow: var(--shadow-light);
}

.console-inline-alert-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.7);
  color: currentColor;
}

.console-greeting-panel,
.console-kpi-hero,
.console-kpi-mini,
.console-action-panel-v2,
.console-tool-card-v2,
.console-chart-card,
.console-help-card-v2,
.console-progress-card,
.console-recent-item,
.console-task-row {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  box-shadow: var(--shadow-light);
}

.console-greeting-panel {
  padding: 1.35rem 1.4rem;
}

.console-home-title {
  margin: 0;
  color: #22344a;
  font-size: clamp(1.6rem, 2vw, 2.25rem);
  font-weight: 800;
}

.console-home-subtitle {
  margin-top: 0.8rem;
  color: #6f8196;
  line-height: 1.7;
}

.console-progress-card {
  padding: 1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(248,250,255,0.95));
}

.console-task-progress {
  height: 10px;
  background: rgba(226, 232, 242, 0.9);
  border-radius: 999px;
}

.console-task-progress .progress-bar {
  background: linear-gradient(90deg, #5b7cff, #86a2ff);
  border-radius: 999px;
}

.console-progress-steps {
  display: grid;
  gap: 0.75rem;
}

.console-progress-step {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(225,232,243,0.92);
}

.console-progress-step.is-done {
  border-color: rgba(87, 192, 143, 0.36);
  background: rgba(239, 250, 244, 0.96);
}

.console-progress-step-copy {
  display: grid;
  gap: 0.15rem;
}

.console-progress-step-copy small {
  color: #73859b;
}

.console-kpi-hero,
.console-kpi-mini {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.15rem;
  text-decoration: none;
}

.console-kpi-hero {
  position: relative;
  overflow: hidden;
}

.console-kpi-hero::after {
  content: '';
  position: absolute;
  right: -52px;
  top: -52px;
  width: 160px;
  height: 160px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,0.26), transparent 70%);
}

.console-kpi-hero-points {
  background: linear-gradient(135deg, rgba(91,124,255,0.18), rgba(255,255,255,0.98));
  border-color: rgba(91,124,255,0.35);
}

.console-kpi-hero-membership {
  background: linear-gradient(135deg, rgba(255,204,111,0.18), rgba(255,255,255,0.98));
  border-color: rgba(255,204,111,0.4);
}

.console-kpi-hero-membership.is-diamond {
  background: linear-gradient(135deg, rgba(91,124,255,0.2), rgba(255,255,255,0.98));
  border-color: rgba(91,124,255,0.36);
}

.console-kpi-name {
  color: #6f8196;
  font-size: 0.82rem;
  font-weight: 700;
}

.console-kpi-hero-value {
  margin-top: 0.55rem;
  color: #1e2f45;
  font-size: clamp(2rem, 2.4vw, 2.8rem);
  font-weight: 800;
  line-height: 1.1;
  position: relative;
  z-index: 1;
}

.console-kpi-hero-value.is-plan {
  font-size: clamp(1.45rem, 1.9vw, 2rem);
}

.console-kpi-hero-meta,
.console-kpi-hero-sub,
.console-kpi-mini-meta,
.console-kpi-mini-sub {
  color: #72859b;
  line-height: 1.65;
}

.console-kpi-hero-meta {
  margin-top: 0.7rem;
  font-size: 0.92rem;
}

.console-kpi-hero-sub {
  margin-top: 0.35rem;
  font-size: 0.84rem;
}

.console-kpi-hero-button {
  position: relative;
  z-index: 1;
  margin-top: 1rem;
  width: 100%;
  border-radius: 999px;
}

.console-kpi-mini {
  gap: 0.45rem;
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.console-kpi-mini:hover,
.console-tool-card-v2:hover,
.console-help-card-v2:hover,
.console-recent-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 28px rgba(28, 42, 66, 0.1);
  border-color: rgba(91, 124, 255, 0.3);
}

.console-kpi-mini-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.console-kpi-link-mark {
  color: var(--primary-color);
  font-weight: 800;
}

.console-kpi-mini-value {
  color: #22344a;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.15;
}

.console-kpi-mini-meta,
.console-kpi-mini-sub {
  font-size: 0.82rem;
}

.console-action-panel-v2 {
  padding: 1.2rem;
}

.console-action-top-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.console-action-note-v2 {
  color: #74879d;
  font-size: 0.88rem;
}

.console-tool-card-v2 {
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0;
  overflow: hidden;
  text-decoration: none;
  transition:
    transform var(--app-motion-duration-base, 0.24s) var(--app-motion-ease, ease),
    box-shadow var(--app-motion-duration-base, 0.24s) var(--app-motion-ease, ease),
    border-color var(--app-motion-duration-base, 0.24s) var(--app-motion-ease, ease);
}

.console-tool-card-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  flex: 0 0 auto;
  background: #f0f4fb;
  overflow: hidden;
}

.console-tool-card-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.console-tool-card-cover--fallback {
  height: 100%;
  min-height: 100%;
  background-image:
    radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.5) 0%, transparent 45%),
    linear-gradient(145deg, #dfe9ff 0%, #c8d9ff 42%, #f4f7ff 100%);
}

.console-tool-card-body {
  flex: 1 1 auto;
  display: grid;
  align-content: start;
  gap: 0.45rem;
  padding: 0.9rem 1rem 1.05rem;
  background: #ffffff;
}

.console-tool-card-icon,
.console-help-icon {
  width: 2.6rem;
  height: 2.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(91,124,255,0.12);
  color: var(--primary-color);
  font-weight: 800;
}

.console-tool-card-v2 strong,
.console-help-card-v2 strong {
  color: #22344a;
  font-size: 0.96rem;
}

.console-tool-card-v2 span,
.console-help-card-v2 small {
  color: #708398;
  line-height: 1.65;
}

.console-task-row.is-danger {
  border-radius: 12px;
  border: 1px solid rgba(255, 160, 160, 0.52) !important;
  background: rgba(255, 246, 246, 0.9) !important;
  padding-inline: 0.9rem !important;
}

.console-recent-scroll {
  display: flex;
  gap: 0.85rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scrollbar-width: none;
}

.console-recent-scroll::-webkit-scrollbar {
  display: none;
}

.console-recent-item {
  min-width: 240px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 1rem;
}

.console-recent-item-copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.console-recent-item-copy strong {
  color: #22344a;
}

.console-recent-item-copy small {
  color: #74879d;
  line-height: 1.6;
}

.console-chart-card {
  padding: 1.2rem;
}

.console-help-card-v2 {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  min-height: 100%;
  padding: 1rem 1.05rem;
  text-decoration: none;
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

@media (max-width: 1199.98px) {
  .console-action-top-v2,
  .console-block-head {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 767.98px) {
  .console-greeting-panel,
  .console-kpi-hero,
  .console-kpi-mini,
  .console-action-panel-v2,
  .console-chart-card,
  .console-help-card-v2 {
    padding: 1rem;
  }

  .console-home-title {
    font-size: 1.45rem;
  }

  .console-kpi-hero-value {
    font-size: 2rem;
  }

  .console-chart-wrap,
  .console-funnel-wrap {
    height: 260px;
  }
}


/* 控制台顶栏 · 积分余额（单层胶囊，暖金浅蓝） */
.app-top-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.85rem;
  padding: 0.42rem 0.85rem;
  border: 1px solid rgba(253, 186, 116, 0.38);
  border-radius: 999px;
  background: linear-gradient(135deg, #fff7ed 0%, #fffbeb 42%, #eff6ff 100%);
  box-shadow: none;
  color: #9a3412;
  font-size: 0.94rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.app-top-status-pill:hover {
  transform: translateY(-1px);
  border-color: rgba(234, 88, 12, 0.42);
  box-shadow: 0 10px 24px rgba(253, 186, 116, 0.22);
}

.app-top-status-plan {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #ffffff;
  padding: 0.42rem 0.9rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff76b8 0%, #ff4e8f 52%, #ff6b9a 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 6px 16px rgba(255, 78, 143, 0.28);
  white-space: nowrap;
  max-width: 10.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-top-status-divider {
  display: none;
}

.app-top-status-pill strong {
  color: #c2410c;
  font-weight: 800;
}

.app-top-status-icon {
  font-size: 0.9rem;
  color: #ea580c;
}

/* 顶栏消息中心（浅色面板，与紫色顶栏对比） */
.app-inbox-dropdown {
  position: relative;
}

.app-inbox-trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #f4f0ff;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.app-inbox-trigger:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-1px);
}

.app-inbox-bell-icon {
  font-size: 1.15rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.app-inbox-badge {
  position: absolute;
  top: 0.15rem;
  right: 0.15rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff6b4a 0%, #ff3d6f 100%);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.1rem;
  text-align: center;
  box-shadow: 0 2px 8px rgba(255, 70, 90, 0.45);
}

.app-inbox-panel {
  width: min(100vw - 2rem, 22rem);
  max-height: min(70vh, 26rem);
  padding: 0;
  margin-top: 0.5rem !important;
  border-radius: 1rem !important;
  overflow: hidden;
  background: #ffffff !important;
  border: 1px solid rgba(52, 32, 109, 0.1) !important;
  box-shadow: 0 22px 50px rgba(52, 32, 109, 0.18) !important;
}

.app-inbox-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  background: linear-gradient(180deg, #faf9ff 0%, #ffffff 100%);
  border-bottom: 1px solid rgba(52, 32, 109, 0.08);
}

.app-inbox-panel-title {
  font-weight: 700;
  font-size: 0.98rem;
  color: #2d1f52;
}

.app-inbox-mark-all {
  font-size: 0.78rem !important;
  color: #6c5ce7 !important;
  text-decoration: none !important;
  white-space: nowrap;
}

.app-inbox-mark-all:hover {
  color: #4b3bbd !important;
}

.app-inbox-panel-body {
  max-height: 18rem;
  overflow-y: auto;
  padding: 0.35rem 0;
  background: #ffffff;
}

.app-inbox-empty,
.app-inbox-loading {
  padding: 1.75rem 1rem;
  text-align: center;
  color: #8b879e !important;
}

.app-inbox-item {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid rgba(52, 32, 109, 0.06);
  cursor: default;
}

.app-inbox-item:last-child {
  border-bottom: 0;
}

.app-inbox-item.is-unread {
  background: linear-gradient(90deg, rgba(108, 92, 231, 0.08) 0%, transparent 100%);
}

.app-inbox-item.is-danger .app-inbox-item-title {
  color: #c0392b;
}

.app-inbox-item.is-warning .app-inbox-item-title {
  color: #b7791f;
}

.app-inbox-item.is-info .app-inbox-item-title {
  color: #34206d;
}

.app-inbox-item-title {
  font-weight: 700;
  font-size: 0.88rem;
  margin-bottom: 0.25rem;
  line-height: 1.35;
}

.app-inbox-item-body {
  font-size: 0.8rem;
  color: #5c5670;
  line-height: 1.45;
  margin-bottom: 0.35rem;
}

.app-inbox-item-action {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 600;
  margin-top: 0.15rem;
}

.app-inbox-item-time {
  font-size: 0.72rem;
  color: #9b96ae;
  margin-top: 0.35rem;
}

.app-inbox-panel-foot {
  padding: 0.55rem 1rem 0.75rem;
  text-align: center;
  border-top: 1px solid rgba(52, 32, 109, 0.06);
  background: #faf9ff;
}

.app-top-account-dropdown {
  position: relative;
}

.app-top-avatar-trigger {
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

.app-top-avatar-trigger::after {
  display: none;
}

.app-top-avatar-circle,
.app-top-account-menu-avatar {
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #8678ff 0%, #9c72ff 100%);
  color: #ffffff;
  font-size: 1rem;
  font-weight: 700;
  box-shadow: 0 12px 28px rgba(112, 92, 255, 0.22);
}

.app-top-account-menu {
  width: 21.5rem;
  padding: 0.9rem;
  margin-top: 0.85rem;
  border-radius: 1.35rem;
  background: linear-gradient(180deg, #f6f9ff 0%, #ffffff 26%, #ffffff 100%);
  box-shadow: 0 24px 64px rgba(24, 37, 64, 0.16);
}

.app-top-account-menu-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.25rem 0.25rem 0.85rem;
}

.app-top-account-menu-user {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.app-top-account-menu-copy {
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
}

.app-top-account-menu-copy strong {
  font-size: 1rem;
  color: #1f2d3d;
}

.app-top-account-menu-copy span {
  font-size: 0.86rem;
  color: #6d7b92;
}

.app-top-account-menu-copy em {
  font-style: normal;
  margin-left: 0.4rem;
  padding: 0.16rem 0.45rem;
  border-radius: 999px;
  background: #eff3fb;
  color: #586b86;
}

.app-top-account-menu-switch {
  display: inline-flex;
  align-items: center;
  padding: 0.42rem 0.7rem;
  border-radius: 999px;
  background: #fff4d8;
  color: #9c6a00;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
}

.app-top-account-menu-card {
  padding: 1rem;
  border-radius: 1.15rem;
  background: linear-gradient(180deg, #eef4ff 0%, #ffffff 100%);
  border: 1px solid rgba(224, 231, 244, 0.96);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.app-top-account-menu-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.8rem;
  color: #31445d;
  font-size: 0.86rem;
  font-weight: 700;
}

.app-top-account-menu-card-head .btn-link {
  color: #6f64ff;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.app-top-account-menu-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.9rem;
}

.app-top-account-product {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.28rem;
  min-height: 6rem;
  padding: 0.7rem 0.45rem;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(226, 233, 244, 0.98);
  text-align: center;
}

.app-top-account-product-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 0.72rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #8ca8ff 0%, #a97cff 100%);
  color: #ffffff;
  font-size: 0.86rem;
  font-weight: 700;
}

.app-top-account-product strong {
  font-size: 0.79rem;
  color: #25384f;
}

.app-top-account-product small {
  font-size: 0.74rem;
  color: #78879d;
  line-height: 1.25;
}

.app-top-account-upgrade {
  min-height: 2.8rem;
  border: 0;
  border-radius: 0.95rem;
  background: linear-gradient(90deg, #69a4ff 0%, #8b76ff 52%, #d86bf2 100%);
  color: #ffffff;
  font-weight: 700;
  box-shadow: 0 14px 30px rgba(107, 116, 255, 0.2);
}

.app-top-account-menu-links {
  margin-top: 0.95rem;
  padding: 0.2rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.app-top-account-menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.78rem 0.9rem;
  border-radius: 0.95rem;
  color: #495b75;
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 600;
}

/* Mail template editor (CodeMirror) */
.CodeMirror {
  height: auto;
  min-height: 220px;
  border: 1px solid #d9e2f2;
  border-radius: 12px;
  background: #ffffff;
}

.cm-variable-valid {
  background: rgba(99, 102, 241, 0.12);
  border-bottom: 1px dashed rgba(99, 102, 241, 0.55);
}

.cm-variable-invalid {
  background: rgba(239, 68, 68, 0.16);
  border-bottom: 1px solid rgba(220, 38, 38, 0.8);
}

.app-top-account-menu-link:hover {
  background: #f5f8fd;
  color: #24364e;
}

.app-top-account-menu-footer {
  margin-top: 0.7rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(228, 234, 242, 0.96);
}

.app-top-account-menu-footer form {
  margin: 0;
}

.app-top-account-logout {
  width: 100%;
  min-height: 2.8rem;
  border: 0;
  border-radius: 0.95rem;
  background: #f6f8fc;
  color: #6a788d;
  font-weight: 700;
}

.app-top-account-logout:hover {
  background: #edf2fa;
  color: #22354b;
}

@media (max-width: 1199.98px) {
  .app-workspace-topbar-actions {
    flex-wrap: wrap;
  }

  .app-top-account-menu {
    width: min(21.5rem, calc(100vw - 2rem));
  }
}

@media (max-width: 767.98px) {
  .app-workspace-topbar-search {
    display: none;
  }

  .app-workspace-topbar-actions {
    width: 100%;
    justify-content: space-between;
    gap: 0.55rem;
  }

  .app-top-status-pill {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    padding: 0.36rem 0.6rem;
    gap: 0.35rem;
    font-size: 0.84rem;
  }

  .app-top-status-plan {
    font-size: 0.82rem;
    padding: 0.36rem 0.65rem;
    max-width: 7.5rem;
  }

  .app-top-account-menu-products {
    grid-template-columns: 1fr;
  }
}


/* payment checkout modal */
.payment-checkout-modal .modal-dialog {
  max-width: 760px;
}

.payment-checkout-content,
.payment-agreement-content {
  border-radius: 1.4rem;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,255,0.98));
  box-shadow: 0 28px 80px rgba(25, 39, 67, 0.18);
}

.payment-checkout-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 3;
  border-radius: 999px;
  background-color: rgba(255,255,255,0.88);
  box-shadow: 0 10px 24px rgba(25,39,67,0.08);
}

.payment-checkout-shell {
  padding: 1.4rem;
  background:
    radial-gradient(circle at top right, rgba(255, 157, 190, 0.22), transparent 26%),
    radial-gradient(circle at top left, rgba(112, 176, 255, 0.18), transparent 24%),
    linear-gradient(180deg, #fff8fb 0%, #ffffff 32%, #ffffff 100%);
}

.payment-checkout-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 1.1rem;
  background: rgba(255,255,255,0.76);
  border: 1px solid rgba(230,236,246,0.96);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
}

.payment-checkout-kicker {
  color: #f26986;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.payment-checkout-head h3 {
  margin: 0.28rem 0 0;
  color: #22344a;
  font-size: 1.4rem;
  font-weight: 800;
}

.payment-checkout-amount {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2rem;
  padding: 0.75rem 0.95rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #ffeff5 0%, #fff6ef 100%);
  color: #f0677d;
  font-weight: 700;
}

.payment-checkout-amount strong {
  font-size: 1.75rem;
  line-height: 1;
}

.payment-checkout-methods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1rem;
}

.payment-checkout-method {
  min-height: 3.3rem;
  border-radius: 1rem;
  border: 1px solid rgba(224,232,243,0.96);
  background: rgba(255,255,255,0.9);
  color: #43556d;
  font-size: 1rem;
  font-weight: 700;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, background-color 0.22s ease;
}

.payment-checkout-method:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(25,39,67,0.08);
  border-color: rgba(104,132,255,0.28);
}

.payment-checkout-method.is-active {
  border-color: rgba(241, 105, 127, 0.42);
  background: linear-gradient(135deg, #fff5f8 0%, #fff7f0 100%);
  color: #e85e7c;
  box-shadow: 0 16px 34px rgba(240, 114, 139, 0.14);
}

.payment-checkout-main {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
  gap: 1rem;
  margin-top: 1rem;
}

.payment-checkout-qr-card,
.payment-checkout-side {
  min-height: 100%;
  padding: 1.2rem;
  border-radius: 1.15rem;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(228,234,244,0.98);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.78);
}

.payment-checkout-qr-card {
  display: grid;
  justify-items: center;
  gap: 0.8rem;
  text-align: center;
}

.payment-checkout-qr-box {
  width: 260px;
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
  border: 1px solid rgba(226,233,243,0.98);
  box-shadow: 0 16px 36px rgba(25,39,67,0.08);
}

.payment-checkout-qr-box canvas,
.payment-checkout-qr-box img {
  max-width: 100%;
  height: auto;
  border-radius: 0.6rem;
}

.payment-checkout-empty,
.payment-checkout-tip,
.payment-checkout-countdown,
.payment-checkout-side-list dt,
.payment-checkout-agreement,
.payment-agreement-body {
  color: #6f8297;
}

.payment-checkout-tip {
  font-weight: 600;
}

.payment-checkout-countdown {
  font-size: 0.9rem;
}

.payment-checkout-side-title {
  margin-bottom: 0.95rem;
  color: #23354d;
  font-size: 1rem;
  font-weight: 800;
}

.payment-checkout-side-list {
  display: grid;
  gap: 0.85rem;
}

.payment-checkout-side-list div {
  padding: 0.85rem 0.95rem;
  border-radius: 0.95rem;
  background: rgba(248,250,255,0.96);
  border: 1px solid rgba(228,234,243,0.95);
}

.payment-checkout-side-list dt {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
}

.payment-checkout-side-list dd {
  margin: 0.3rem 0 0;
  color: #22344a;
  font-size: 0.95rem;
  font-weight: 700;
  word-break: break-all;
}

.payment-checkout-agreement {
  margin-top: 1rem;
  text-align: center;
  font-size: 0.9rem;
}

.payment-checkout-agreement .btn-link {
  color: #5b7cff;
  font-weight: 700;
  text-decoration: none;
}

.payment-agreement-content .modal-header {
  background: linear-gradient(180deg, #fff6fa 0%, #ffffff 100%);
}

.payment-agreement-content .modal-title {
  color: #22344a;
  font-weight: 800;
}

.payment-agreement-body {
  line-height: 1.9;
  white-space: normal;
}

@media (max-width: 767.98px) {
  .payment-checkout-shell {
    padding: 1rem;
  }

  .payment-checkout-head,
  .payment-checkout-main {
    grid-template-columns: 1fr;
  }

  .payment-checkout-head {
    align-items: stretch;
  }

  .payment-checkout-methods {
    grid-template-columns: 1fr;
  }

  .payment-checkout-qr-box {
    width: min(100%, 240px);
    min-height: 240px;
  }
}


/* admin settings refresh */
.admin-settings-page,
.admin-payment-settings {
  border-radius: 1rem;
}

.mail-onboarding-modal .modal-dialog {
  max-width: 920px;
}

.mail-onboarding-modal .modal-body {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.55) rgba(148, 163, 184, 0.12);
}

.mail-onboarding-modal .modal-body::-webkit-scrollbar {
  width: 10px;
}

.mail-onboarding-modal .modal-body::-webkit-scrollbar-track {
  background: rgba(148, 163, 184, 0.12);
  border-radius: 999px;
}

.mail-onboarding-modal .modal-body::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.5);
  border-radius: 999px;
  border: 2px solid rgba(148, 163, 184, 0.18);
}

.mail-onboarding-modal .modal-body::-webkit-scrollbar-thumb:hover {
  background: rgba(100, 116, 139, 0.62);
}

/* 多层弹窗时，确保二级弹窗不被遮挡 */
#growthProductAiSuggestModal {
  z-index: 1065;
}
#growthProductAiSuggestModal .modal-backdrop {
  z-index: 1060;
}

.mail-marketing-top-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.35rem;
  border-radius: 999px;
  background: rgba(240, 244, 255, 0.9);
  border: 0;
}

.mail-marketing-top-nav-panel {
  padding-top: 0;
  padding-bottom: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
  margin-top: -1.88rem;
}

.mail-marketing-top-link {
  border: 0;
  border-radius: 999px;
  padding: 0.5rem 1rem;
  background: transparent;
  color: #49586f;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
}

.mail-marketing-top-link.is-active {
  background: #ffffff;
  color: #22344a;
  box-shadow: 0 10px 24px rgba(34, 52, 74, 0.1);
}

.mail-onboarding-modal-content {
  background: #ffffff;
  color: #243449;
  border-radius: 1.6rem;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(19, 36, 58, 0.18);
}

.mail-onboarding-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  filter: none;
  opacity: 1;
  background-color: rgba(255, 255, 255, 0.96);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(19, 36, 58, 0.12);
}

.mail-onboarding-shell {
  position: relative;
  padding: 1.6rem 1.85rem 1.25rem;
  background:
    radial-gradient(circle at 16% 8%, rgba(88, 124, 255, 0.16), transparent 26%),
    radial-gradient(circle at 86% 12%, rgba(255, 154, 115, 0.18), transparent 28%),
    linear-gradient(180deg, #f6f8ff 0%, #ffffff 22%, #ffffff 100%);
}

.mail-onboarding-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.86rem;
  font-weight: 800;
  color: #5b6b86;
}

.mail-onboarding-title {
  margin: 0.5rem 0 0.4rem;
  font-weight: 900;
  font-size: 1.25rem;
  color: #22344a;
}

.mail-onboarding-stepper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.mail-onboarding-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.6rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(202, 213, 232, 0.9);
  background: rgba(255, 255, 255, 0.9);
  color: #334155;
  font-weight: 800;
}

.mail-onboarding-step.is-active {
  border-color: rgba(88, 124, 255, 0.6);
  box-shadow: 0 14px 28px rgba(88, 124, 255, 0.14);
}

.mail-onboarding-step-badge {
  width: 1.55rem;
  height: 1.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(100, 116, 139, 0.12);
  color: #334155;
  font-size: 0.82rem;
  font-weight: 900;
}

.mail-onboarding-step.is-done .mail-onboarding-step-badge {
  background: rgba(34, 197, 94, 0.14);
  color: #16a34a;
}

.mail-onboarding-pane {
  display: none;
}

.mail-onboarding-pane.is-active {
  display: block;
}

.mail-onboarding-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(226, 232, 240, 0.9);
}

@media (max-width: 575.98px) {
  .mail-onboarding-shell {
    padding: 1.15rem 1.1rem 0.95rem;
  }
  .mail-onboarding-stepper {
    grid-template-columns: 1fr;
  }
  .mail-onboarding-footer {
    flex-direction: column;
    align-items: stretch;
  }
}

/* tighten spacing between sidebar major categories */
.app-body.route-clientarea .workspace-sidebar-scroll,
.app-body.route-user .workspace-sidebar-scroll,
.app-body.route-tool .workspace-sidebar-scroll {
  gap: 0.28rem;
}

.app-body.route-clientarea .user-workspace-nav.glass-panel,
.app-body.route-user .user-workspace-nav.glass-panel,
.app-body.route-tool .user-workspace-nav.glass-panel {
  margin-bottom: 0.04rem;
}

.app-body.route-clientarea .user-workspace-nav-group-title,
.app-body.route-user .user-workspace-nav-group-title,
.app-body.route-tool .user-workspace-nav-group-title {
  margin-top: 0.28rem;
  margin-bottom: 0.1rem;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: #6f7f93;
}

.admin-config-overview-card,
.admin-config-card {
  height: 100%;
  padding: 1.15rem 1.2rem;
  border: 1px solid rgba(221, 229, 244, 0.92);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,255,0.98));
  box-shadow: 0 18px 36px rgba(18, 37, 63, 0.06);
}

.admin-config-overview-label {
  color: #7c8699;
  font-size: 0.82rem;
  font-weight: 700;
  margin-bottom: 0.45rem;
}

.admin-config-overview-value {
  color: #22344a;
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.1;
}

.admin-config-overview-meta,
.admin-config-overview-note {
  margin-top: 0.7rem;
  color: #6f8297;
  font-size: 0.88rem;
}

.admin-config-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.admin-config-card-head h3 {
  margin: 0;
  color: #22344a;
  font-size: 1.06rem;
  font-weight: 800;
}

.admin-config-card-head p {
  margin: 0.35rem 0 0;
  color: #6f8297;
  font-size: 0.9rem;
}

.admin-config-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  background: rgba(91, 124, 255, 0.09);
  color: #5b7cff;
  font-size: 0.82rem;
  font-weight: 700;
}

.admin-config-badge.is-success {
  background: rgba(38, 166, 91, 0.1);
  color: #2f8b54;
}

.admin-config-switch-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  min-height: 100%;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(228, 234, 243, 0.95);
  border-radius: 0.95rem;
  background: #fbfcff;
}

.admin-config-switch-line strong {
  display: block;
  color: #22344a;
  margin-bottom: 0.22rem;
}

.admin-config-switch-line small,
.admin-config-field-note {
  color: #6f8297;
  font-size: 0.86rem;
}

.admin-config-callout {
  padding: 1rem 1.05rem;
  border: 1px dashed rgba(154, 170, 202, 0.72);
  border-radius: 0.95rem;
  background: linear-gradient(180deg, #f9fbff 0%, #ffffff 100%);
}

.admin-config-callout-title {
  color: #22344a;
  font-size: 0.92rem;
  font-weight: 800;
  margin-bottom: 0.55rem;
}

.admin-config-callout-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.admin-config-route-chip {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(91, 124, 255, 0.08);
  color: #4d64b0;
  font-size: 0.82rem;
  font-weight: 700;
  word-break: break-all;
}

/* payment modal states */
.payment-checkout-notice {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(224, 232, 243, 0.96);
  background: #f8fbff;
  color: #5c7087;
  font-size: 0.92rem;
  font-weight: 600;
}

.payment-checkout-notice.is-info {
  background: linear-gradient(180deg, #f7fbff 0%, #f0f6ff 100%);
  border-color: rgba(123, 164, 255, 0.24);
  color: #4b69a8;
}

.payment-checkout-notice.is-success {
  background: linear-gradient(180deg, #f6fff9 0%, #eefcf3 100%);
  border-color: rgba(61, 176, 105, 0.24);
  color: #2b7f4c;
}

.payment-checkout-notice.is-warning {
  background: linear-gradient(180deg, #fffaf3 0%, #fff4e7 100%);
  border-color: rgba(245, 170, 75, 0.24);
  color: #a96817;
}

.payment-checkout-notice.is-error {
  background: linear-gradient(180deg, #fff7f7 0%, #fff0f1 100%);
  border-color: rgba(238, 97, 115, 0.28);
  color: #c6495d;
}

.payment-checkout-qr-wrap {
  display: grid;
  justify-items: center;
  gap: 0.8rem;
  text-align: center;
}

.payment-checkout-result {
  width: 100%;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 1.5rem 1.2rem;
  border-radius: 1rem;
  border: 1px solid rgba(228, 234, 243, 0.96);
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  text-align: center;
}

.payment-checkout-result-icon {
  width: 4rem;
  height: 4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #eef3ff;
  color: #5b7cff;
  font-size: 1.6rem;
  font-weight: 800;
}

.payment-checkout-result.is-success .payment-checkout-result-icon {
  background: #eefaf2;
  color: #2f8b54;
}

.payment-checkout-result.is-closed .payment-checkout-result-icon {
  background: #fff6eb;
  color: #bc7a1f;
}

.payment-checkout-result.is-error .payment-checkout-result-icon {
  background: #fff1f2;
  color: #ce5063;
}

.payment-checkout-result-badge {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: rgba(91, 124, 255, 0.08);
  color: #5b7cff;
  font-size: 0.82rem;
  font-weight: 800;
}

.payment-checkout-result-title {
  color: #22344a;
  font-size: 1.18rem;
  font-weight: 800;
}

.payment-checkout-result-text {
  max-width: 320px;
  color: #6f8297;
  font-size: 0.92rem;
  line-height: 1.8;
}

.payment-checkout-actions {
  display: grid;
  gap: 0.7rem;
  margin-top: 1rem;
}

.payment-checkout-actions .btn {
  width: 100%;
}

@media (max-width: 991.98px) {
  .admin-config-card-head {
    flex-direction: column;
  }
}


/* country selector local flag icons */
.selector-menu-country .selector-option-icon.selector-country-flag {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2rem;
  width: 2rem;
  min-width: 2rem;
  height: 1.45rem;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.selector-menu-country .selector-flag-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 0;
  pointer-events: none;
  user-select: none;
}

.selector-menu-country .selector-flag-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #2f63ca;
  pointer-events: none;
  user-select: none;
}

.selector-menu-country .selector-option:hover .selector-option-icon.selector-country-flag,
.selector-menu-country .selector-option:focus .selector-option-icon.selector-country-flag,
.selector-menu-country .selector-check-option:hover .selector-option-icon.selector-country-flag,
.selector-menu-country .selector-check-option:focus .selector-option-icon.selector-country-flag,
.selector-menu-country .selector-option.is-active .selector-option-icon.selector-country-flag,
.selector-menu-country .selector-check-option.is-active .selector-option-icon.selector-country-flag {
  background: transparent;
  box-shadow: none;
}


/* platform selector local logos */
.selector-grid-platforms .selector-option-icon.selector-platform-logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.5rem;
  width: 2.5rem;
  min-width: 2.5rem;
  height: 1.45rem;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.selector-grid-platforms .selector-platform-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 0;
  pointer-events: none;
  user-select: none;
}

.selector-grid-platforms .selector-platform-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #2f63ca;
  pointer-events: none;
  user-select: none;
}

.selector-grid-platforms .selector-option:hover .selector-option-icon.selector-platform-logo,
.selector-grid-platforms .selector-option:focus .selector-option-icon.selector-platform-logo,
.selector-grid-platforms .selector-check-option:hover .selector-option-icon.selector-platform-logo,
.selector-grid-platforms .selector-check-option:focus .selector-option-icon.selector-platform-logo,
.selector-grid-platforms .selector-option.is-active .selector-option-icon.selector-platform-logo,
.selector-grid-platforms .selector-check-option.is-active .selector-option-icon.selector-platform-logo {
  background: transparent;
  box-shadow: none;
}

/* wangEditor fullscreen: keep topbar/sidebar visible in workspace layout */
.app-body.route-tool .w-e-full-screen-container {
  position: fixed !important;
  top: var(--app-navbar-height) !important;
  left: var(--workspace-sidebar-width) !important;
  right: 0 !important;
  bottom: 0 !important;
  width: auto !important;
  height: auto !important;
  z-index: 1020 !important;
}

.app-body.route-tool.workspace-sidebar-collapsed .w-e-full-screen-container {
  left: 0 !important;
}

.app-body.route-tool .w-e-full-screen-container .w-e-text-container {
  height: calc(100vh - var(--app-navbar-height) - 50px) !important;
}

@media (max-width: 1199.98px) {
  .app-body.route-tool .w-e-full-screen-container {
    left: 0 !important;
  }
}

/* wangEditor fullscreen: keep admin topbar visible */
.app-body.route-admin .w-e-full-screen-container {
  position: fixed !important;
  top: var(--app-navbar-height) !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: auto !important;
  height: auto !important;
  z-index: 1020 !important;
}

.app-body.route-admin .w-e-full-screen-container .w-e-text-container {
  height: calc(100vh - var(--app-navbar-height) - 50px) !important;
}

.app-body.admin-console-mode.route-admin .w-e-full-screen-container {
  top: 52px !important;
}
.app-body.admin-console-mode.route-admin .w-e-full-screen-container .w-e-text-container {
  height: calc(100vh - 52px - 50px) !important;
}

/* official template cards */
.official-template-card {
  border: 1px solid #e7ecf5;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(31, 41, 55, 0.06);
  transition: transform .18s ease, box-shadow .18s ease;
}

/* mail marketing - make "my templates" area taller */
.growth-template-list-tall {
  min-height: 520px;
}

@media (max-width: 991.98px) {
  .growth-template-list-tall {
    min-height: 420px;
  }
}

.official-template-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(31, 41, 55, 0.12);
}

.official-template-cover {
  position: relative;
  min-height: 210px;
  padding: 12px 12px 10px;
  color: #fff;
}

.official-template-cover-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.official-template-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  z-index: 1;
}

.official-template-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .72rem;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.34);
  position: relative;
  z-index: 2;
}

.official-template-hot {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: .74rem;
  background: rgba(20, 24, 38, 0.28);
  border-radius: 999px;
  padding: 2px 8px;
  z-index: 2;
}

.official-template-mine-cb {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 3;
  margin: 0;
}

.official-template-mine-cb .form-check-input {
  cursor: pointer;
}

#growthTemplateList:not(.growth-mine-batch-on) .official-template-mine-cb {
  display: none;
}

.official-template-cover-title {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 10px;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
  text-shadow: 0 1px 2px rgba(17, 24, 39, 0.35);
  z-index: 2;
}

.official-template-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
}

.official-template-subject {
  font-size: .82rem;
  color: #667085;
}

.official-template-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.official-template-tag {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid #dde4f2;
  background: #f8faff;
  color: #48556a;
  font-size: .72rem;
  padding: 1px 8px;
}

.official-template-desc {
  font-size: .82rem;
  color: #616e83;
  line-height: 1.4;
  min-height: 0;
}

.official-template-footer {
  padding: 2px 10px 10px;
}

.official-template-category-wrap {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 6px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e8edf5;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
  overflow-x: auto;
  max-width: 100%;
}

.official-template-category-btn {
  border: 0;
  background: transparent;
  color: #5f6d84;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 0.82rem;
  white-space: nowrap;
}

.official-template-category-btn.is-active {
  color: #ff6c47;
  background: #fff3ee;
  font-weight: 600;
}

/* Site-wide pagination: gray blocks, magenta active, ellipsis, 下一页 > */
.app-pagination-per-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  width: 100%;
}

.app-pagination-per-toolbar .form-select.app-pagination-per-select {
  width: auto;
  min-width: 4.25rem;
  max-width: 5rem;
  border-color: rgba(234, 88, 12, 0.55);
  box-shadow: 0 0 0 1px rgba(234, 88, 12, 0.12);
}

.app-pagination-per-toolbar .form-select.app-pagination-per-select:focus {
  border-color: #ea580c;
  box-shadow: 0 0 0 0.2rem rgba(234, 88, 12, 0.22);
}

.global-company-per-toolbar {
  justify-content: flex-start;
}

.app-pagination-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

.app-pagination-summary {
  width: 100%;
}

.app-pagination-wrap,
.official-template-pager-wrap,
.global-company-pager-wrap {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.official-template-pager-wrap {
  padding: 8px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e8edf5;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
}

.app-pagination-btn,
.app-pagination-prev,
.app-pagination-next,
.official-template-page-btn,
.official-template-page-next,
.global-company-page-btn,
.global-company-page-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 6px;
  border: 0;
  background: #efefef;
  color: #5a5a5a;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1;
  box-sizing: border-box;
  text-align: center;
  cursor: pointer;
}

.official-template-page-btn,
.official-template-page-next {
  min-width: 34px;
  height: 30px;
  padding: 0 10px;
  font-size: 0.82rem;
  border: 1px solid #e6ecf6;
  background: #fff;
  color: #5f6d84;
}

.app-pagination-btn:hover,
.app-pagination-prev:hover,
.app-pagination-next:hover,
.official-template-page-btn:hover,
.global-company-page-btn:hover {
  color: #333;
  background: #e2e2e2;
}

.official-template-page-btn:hover {
  background: #f5f7fb;
}

.app-pagination-btn.is-active,
.official-template-page-btn.is-active,
.global-company-page-btn.is-active {
  background: #ff4081;
  border-color: #ff4081;
  color: #fff;
  cursor: default;
}

.official-template-page-btn.is-active {
  font-weight: 700;
}

.global-company-page-btn.is-active {
  background: #ff4081;
}

.app-pagination-prev.is-disabled,
.app-pagination-next.is-disabled,
.official-template-page-next[disabled],
.global-company-page-next[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.app-pagination-next,
.global-company-page-next,
.official-template-page-next {
  min-width: auto;
  padding: 0 16px;
}

.app-pagination-ellipsis,
.official-template-page-ellipsis,
.global-company-page-ellipsis {
  color: #707070;
  font-size: 0.95rem;
  padding: 0 4px;
  user-select: none;
}

.global-company-row-card {
  border-radius: 14px;
}

.global-company-avatar {
  width: 68px;
  height: 68px;
  border-radius: 10px;
  background: linear-gradient(135deg, #7eb0d8 0%, #93c4e8 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 28px;
  flex: 0 0 68px;
}

.global-company-status-badge {
  background: #e6faf6;
  color: #16a085;
  border: 1px solid #b9efe4;
  font-weight: 600;
}

.global-company-hero {
  border: 1px solid #e7edf5;
  border-radius: 12px;
  background: #fff;
  padding: 16px;
}

.global-company-hero-main {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.global-company-hero-avatar {
  width: 56px;
  height: 56px;
  border-radius: 8px;
  background: #7eb0d8;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 700;
  flex: 0 0 56px;
}

.global-company-hero-content {
  min-width: 0;
  flex: 1 1 auto;
}

.global-company-hero-title {
  margin: 0;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.2;
  color: #1f2937;
}

.global-company-hero-country {
  color: #4b5563;
  margin-bottom: 8px;
}

.growth-country-with-flag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1.2;
}

.growth-country-flag-inline {
  width: 18px;
  height: 12px;
  border-radius: 2px;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(17, 24, 39, 0.08);
  flex: 0 0 auto;
}

.growth-country-badge .growth-country-flag-inline {
  width: 16px;
  height: 11px;
}

.growth-country-flag-emoji-fallback {
  display: none;
  font-size: 14px;
  line-height: 1;
  flex: 0 0 auto;
}

.growth-country-with-flag.growth-country-flag-fallback-active .growth-country-flag-inline.growth-country-flag-broken {
  display: none;
}

.growth-country-with-flag.growth-country-flag-fallback-active .growth-country-flag-emoji-fallback {
  display: inline;
}

/* 海关线索 · 数据详情弹窗（分区 + 三列栅格） */
.customs-detail-section {
  border-bottom: 1px solid rgba(17, 24, 39, 0.08);
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
}

.customs-detail-section:last-child {
  border-bottom: 0;
  margin-bottom: 0;
}

.customs-detail-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.95rem;
  color: #111827;
  margin-bottom: 0.65rem;
}

.customs-detail-bar {
  display: inline-block;
  width: 3px;
  height: 1em;
  border-radius: 1px;
  background: #9ca3af;
  flex-shrink: 0;
}

.customs-detail-label {
  font-size: 0.78rem;
  color: #6b7280;
  margin-bottom: 0.1rem;
}

.customs-detail-value {
  font-size: 0.9rem;
  color: #111827;
}

.customs-card-social {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}

.customs-card-social .bi {
  font-size: 1rem;
  vertical-align: -0.125em;
  color: #0d6efd;
}

.customs-portal .customs-card-social .bi {
  color: var(--bs-primary);
}

/* 海关数据门户（与全站紫色主色：--bs-primary / --app-accent 对齐） */
.customs-portal {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  background: #fff;
}

.customs-portal-hero {
  position: relative;
  z-index: 1;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  padding: 1.75rem 1.5rem 1.25rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 8px 28px rgba(17, 24, 39, 0.05);
}

@media (min-width: 768px) {
  .customs-portal-hero {
    padding: 2rem 2.5rem 1.6rem;
  }
}

@media (min-width: 1200px) {
  .customs-portal-hero {
    padding: 2.25rem 3rem 1.75rem;
    border-radius: 18px;
  }
}

@media (min-width: 1600px) {
  .customs-portal-hero {
    padding: 2.5rem 3.5rem 1.85rem;
  }
}

.customs-portal-hero-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

/* 搜索区与主栏同宽（恢复大气横向空间） */
.customs-portal-search-stack {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.customs-portal-title {
  font-size: clamp(1.85rem, 3.2vw, 2.75rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f172a;
  margin-bottom: 0.35rem;
}

.customs-portal-subtitle {
  color: #475569;
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}

.customs-portal-stat-line {
  font-size: 0.875rem;
  color: #64748b;
  margin-bottom: 0;
  max-width: none;
  line-height: 1.55;
}

.customs-portal-stat-accent {
  color: var(--bs-primary);
  font-weight: 700;
}

.customs-portal-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.customs-portal-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.customs-portal-tab {
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  color: #334155;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.customs-portal-tab:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  color: var(--app-accent);
}

.customs-portal-tab.is-active {
  background: linear-gradient(135deg, var(--bs-primary) 0%, var(--app-accent) 100%);
  border-color: transparent;
  color: #fff;
}

.customs-portal-toolbar-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8rem;
}

.customs-portal-quota-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-weight: 600;
}

.customs-portal-link-muted {
  color: #64748b;
  text-decoration: none;
}

.customs-portal-link-muted:hover {
  color: var(--app-accent);
  text-decoration: underline;
}

.customs-portal-scope-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}

.customs-portal-scope-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.customs-portal-scope-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.customs-portal-scope {
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  color: #475569;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.35rem 0.85rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.customs-portal-scope:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
}

.customs-portal-scope.is-active {
  background: #0f172a;
  border-color: #0f172a;
  color: #fff;
}

.customs-portal-scope--ghost.is-active {
  background: #fff;
  border-color: var(--bs-primary);
  color: var(--app-accent);
}

.customs-portal-search-form {
  margin-top: 0.25rem;
}

.customs-portal-search-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
}

/* 主搜索条橙色描边 */
.customs-portal-search-stack .customs-portal-search-bar {
  border-color: rgba(255, 102, 0, 0.42);
  box-shadow: 0 4px 18px rgba(255, 102, 0, 0.07);
}

.customs-portal-field-select-wrap {
  flex: 0 0 auto;
  min-width: 7.5rem;
  border-right: 1px solid rgba(15, 23, 42, 0.08);
}

.customs-portal-field-select {
  border: 0 !important;
  border-radius: 0 !important;
  font-size: 0.875rem;
  font-weight: 600;
  color: #334155;
  height: 100%;
  min-height: 52px;
  padding-left: 1rem;
  padding-right: 1.75rem;
  background-color: #f8fafc;
}

.customs-portal-search-input-wrap {
  flex: 1 1 200px;
  min-width: 0;
}

.customs-portal-main-input {
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 52px;
  font-size: 0.95rem;
  box-shadow: none !important;
}

@media (min-width: 1200px) {
  .customs-portal-field-select {
    min-height: 56px;
    font-size: 0.9rem;
  }

  .customs-portal-main-input {
    min-height: 56px;
    font-size: 1rem;
  }

  .customs-portal-submit {
    min-height: 56px;
    min-width: 7.5rem;
    font-size: 1rem;
  }
}

.customs-portal-submit {
  flex: 0 0 auto;
  min-width: 6.5rem;
  border-radius: 0 !important;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: linear-gradient(135deg, var(--bs-primary) 0%, var(--app-accent) 100%) !important;
  border: 0 !important;
  color: #fff !important;
  padding-inline: 1.5rem;
}

.customs-portal-submit:hover {
  filter: brightness(1.05);
  color: #fff !important;
}

.customs-portal-hot {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  margin-top: 0.85rem;
  margin-bottom: 0.85rem;
}

.customs-portal-hot-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: #94a3b8;
}

.customs-portal-hot-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.customs-hot-tag {
  border: 0;
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.8125rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  cursor: pointer;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  transition: background 0.15s ease, border-color 0.15s ease;
}

.customs-hot-tag:hover {
  background: rgba(var(--bs-primary-rgb), 0.08);
  border-color: var(--bs-primary);
}

/* 正式环境提示条（灰底 + 橙色警示与 CTA） */
.customs-portal-upnotice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  padding: 0.55rem 0.9rem;
  margin-top: 0.65rem;
  margin-bottom: 0;
  background: linear-gradient(180deg, #fafafa 0%, #f0f0f0 100%);
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  font-size: 0.875rem;
  color: #1a1a1a;
}

.customs-portal-upnotice-icon {
  color: #ff6600;
  font-size: 1.05rem;
  flex-shrink: 0;
}

.customs-portal-upnotice-text {
  flex: 1 1 200px;
  min-width: 0;
  line-height: 1.45;
}

.customs-portal-upnotice-cta {
  font-weight: 700;
  color: #ff6600 !important;
  text-decoration: none;
  white-space: nowrap;
}

.customs-portal-upnotice-cta:hover {
  color: #e65c00 !important;
  text-decoration: underline;
}

.customs-portal-advanced {
  margin-top: 0.35rem;
}

/* 高级搜索：文案 → VIP 徽章 → 展开（同一行紧挨） */
.customs-portal-pro-advanced {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-top: 0.65rem;
}

.customs-portal-pro-advanced-label {
  font-weight: 700;
  color: #1f2937;
  font-size: 0.9rem;
  flex-shrink: 0;
}

/* VIP 专属：金属质感徽章（无外圈光晕） */
.customs-vip-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: middle;
  line-height: 1;
}

.customs-vip-pill-inner {
  display: inline-flex;
  align-items: baseline;
  gap: 0.12em;
  padding: 0.12rem 0.42rem 0.14rem;
  border-radius: 7px;
  background: linear-gradient(165deg, #252530 0%, #121218 48%, #1c1612 100%);
  border: 1px solid rgba(218, 181, 88, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.07),
    0 2px 8px rgba(0, 0, 0, 0.18);
}

.customs-vip-pill-vip {
  font-family: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  font-weight: 900;
  font-style: italic;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: #f0d78c;
  text-shadow:
    0 -1px 0 rgba(0, 0, 0, 0.45),
    0 1px 0 rgba(255, 245, 200, 0.35);
}

.customs-vip-pill-zh {
  font-size: 0.62rem;
  font-weight: 700;
  color: #e8dcc4;
  letter-spacing: 0.06em;
}

@media (min-width: 576px) {
  .customs-vip-pill-vip {
    font-size: 0.74rem;
  }

  .customs-vip-pill-zh {
    font-size: 0.66rem;
  }
}

.customs-portal-advanced-toggle {
  border: 0;
  background: transparent;
  color: #ff6600;
  font-size: 0.9rem;
  font-weight: 700;
  padding: 0.2rem 0;
  margin-left: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}

.customs-portal-advanced-toggle:hover {
  color: #e65c00;
}

.customs-portal-advanced-toggle .customs-portal-chevron-v {
  transition: transform 0.2s ease;
  font-size: 0.85em;
}

.customs-portal-advanced-toggle.is-expanded .customs-portal-chevron-v {
  transform: rotate(180deg);
}

.customs-portal-advanced-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.75rem 1rem;
  padding: 1rem 0 0.25rem;
}

.customs-portal-body {
  position: relative;
  z-index: 1;
  padding-bottom: 2rem;
  background: #fff;
}

.customs-portal-kpis {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

@media (min-width: 768px) {
  .customs-portal-kpis {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1200px) {
  .customs-portal-kpis {
    gap: 1.1rem;
  }
}

.customs-portal-kpi {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  text-align: center;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}

.customs-portal-kpi-num {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--bs-primary);
  margin-right: 0.15rem;
}

.customs-portal-kpi-unit {
  font-size: 0.9rem;
  font-weight: 700;
  color: #64748b;
}

.customs-portal-kpi-label {
  display: block;
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 0.25rem;
}

.customs-portal-results .card-body {
  border-radius: 12px;
}

.customs-results-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.04) 0%, #fff 100%);
}

@media (min-width: 1200px) {
  .customs-results-head {
    padding: 1.15rem 1.75rem;
  }
}

@media (min-width: 1600px) {
  .customs-results-head {
    padding: 1.25rem 2.25rem;
  }
}

.customs-results-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #0f172a;
}

.customs-results-count {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.1);
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
}

.customs-results-body {
  min-height: 120px;
}

.customs-results-empty,
.customs-results-loading {
  padding: 2rem 1.25rem;
  text-align: center;
  font-size: 0.9rem;
}

@media (min-width: 1200px) {
  .customs-results-empty,
  .customs-results-loading {
    padding: 2.25rem 2rem;
  }
}

.customs-results-table-wrap {
  max-height: min(70vh, 640px);
  overflow: auto;
}

.customs-results-table {
  font-size: 0.875rem;
}

.customs-results-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: none;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  white-space: nowrap;
}

.customs-results-table td {
  vertical-align: top;
  border-color: rgba(15, 23, 42, 0.06);
}

.customs-td-desc {
  max-width: min(720px, 42vw);
  color: #334155;
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  .customs-td-desc {
    max-width: min(480px, 88vw);
  }
}

.customs-td-company {
  font-weight: 600;
  color: #0f172a;
  line-height: 1.35;
}

.customs-td-sub {
  margin-top: 0.25rem;
  font-weight: 400;
}

.customs-td-actions {
  white-space: nowrap;
}

.customs-td-actions .btn {
  font-size: 0.75rem;
}

.growth-country-select {
  position: relative;
}

.growth-country-select-input {
  padding-left: 44px;
  padding-right: 40px;
}

.growth-country-select-flag {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 12px;
  border-radius: 2px;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(17, 24, 39, 0.08);
  pointer-events: none;
}

.growth-country-select-location-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: #b7bcc6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.growth-country-select-caret {
  position: absolute;
  right: 14px;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%) rotate(45deg);
  border-right: 2px solid rgba(107, 114, 128, 0.9);
  border-bottom: 2px solid rgba(107, 114, 128, 0.9);
  pointer-events: none;
}

.growth-country-flag-dropdown .dropdown-menu {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--app-motion-duration-base) var(--app-motion-ease),
    transform var(--app-motion-duration-base) var(--app-motion-ease);
}

.growth-country-flag-dropdown .dropdown-menu.show {
  opacity: 1;
  transform: translateY(0);
}

.growth-country-flag-dropdown .dropdown-menu.is-closing {
  opacity: 0;
  transform: translateY(6px);
}

.growth-country-flag-dropdown .dropdown-item.active,
.growth-country-flag-dropdown .dropdown-item.growth-country-menu-item.active {
  background-color: rgba(23, 78, 166, 0.1);
  color: var(--bs-primary);
}

@media (prefers-reduced-motion: reduce) {
  a,
  button,
  .btn,
  .form-control,
  .form-select,
  .nav-link,
  .dropdown-item,
  .page-link,
  .accordion-button,
  .card,
  .modal-content,
  .offcanvas,
  .alert,
  .badge,
  .fade,
  .collapsing,
  .growth-country-flag-dropdown .dropdown-menu {
    transition: none !important;
    animation: none !important;
  }
}

.global-company-hero-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.global-company-hero-tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  height: auto;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.35;
  color: #475467;
  background: #f5f7fb;
  border: 1px solid #e9edf3;
  max-width: 100%;
  word-break: break-word;
}

.global-company-detail-tabs {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  border-bottom: 1px solid #eceff4;
  padding-bottom: 0;
}

.global-company-detail-tab {
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #667085;
  border-radius: 0;
  height: 42px;
  padding: 0 22px;
  font-size: 15px;
  font-weight: 600;
}

.global-company-detail-tab.is-active {
  color: #16a085;
  border-bottom-color: #16a085;
}

.global-company-tab-pane {
  display: none;
}

.global-company-tab-pane.is-active {
  display: block;
}

.global-company-info-block {
  border: 1px solid #e9edf3;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  margin-bottom: 14px;
}

.global-company-info-title {
  margin: 0;
  padding: 12px 14px;
  font-size: 28px;
  font-weight: 700;
  color: #1f2937;
  background: #fff;
  border-bottom: 1px solid #e9edf3;
}

.global-company-info-table {
  margin: 0;
}

.global-company-info-table > tbody > tr > th,
.global-company-info-table > tbody > tr > td {
  border-color: #eef2f7;
  vertical-align: middle;
  padding: 12px 12px;
  font-size: 16px;
}

.global-company-info-table > tbody > tr > th {
  width: 16%;
  background: #f3f6f9;
  color: #4b5563;
  font-weight: 600;
  white-space: nowrap;
}

.global-company-info-table > tbody > tr > td {
  width: 32%;
  color: #111827;
  word-break: break-word;
}

.global-company-member-lock {
  display: flex;
  align-items: center;
  gap: 10px;
}

.global-company-lock-icon {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff3cd;
}

@media (max-width: 991.98px) {
  .global-company-hero-title {
    font-size: 24px;
  }
  .global-company-info-title {
    font-size: 20px;
  }
  .global-company-info-table > tbody > tr > th,
  .global-company-info-table > tbody > tr > td {
    font-size: 14px;
    padding: 10px;
  }
}

/* mail marketing editor/preview split */
.growth-editor-split-shell,
.growth-preview-split-shell {
  height: 740px;
  display: flex;
  flex-direction: column;
}

.growth-editor-split-head {
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 0;
}

.growth-preview-split-body {
  flex: 1 1 auto;
  overflow: auto;
  padding: 12px;
  border: 1px solid #eef2f7;
  border-radius: 12px;
  background: #fff;
}


.growth-wang-shell {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  border-radius: 12px;
}

.growth-wang-editor {
  flex: 1 1 auto;
  overflow: auto;
}

@media (max-width: 991.98px) {
  .growth-editor-split-shell,
  .growth-preview-split-shell {
    height: auto;
  }
  .growth-preview-split-body {
    max-height: 360px;
  }
  .growth-wang-shell {
    min-height: 320px;
  }
}

/* admin template live preview */
.admin-template-preview-shell {
  height: 560px;
  display: flex;
  flex-direction: column;
}

.admin-template-preview-body {
  flex: 1 1 auto;
  overflow: auto;
  padding: 10px;
  border: 1px solid #eef2f7;
  border-radius: 12px;
  background: #fff;
}


/* admin editor fixed height + internal scroll (match frontend behavior) */
.admin-wang-shell {
  height: 560px;
  display: flex;
  flex-direction: column;
  border-radius: 12px;
}

.admin-wang-editor {
  flex: 1 1 auto;
  overflow: auto;
  min-height: 320px; /* avoid wangEditor hoverbar positioning warnings */
}

@media (max-width: 991.98px) {
  .admin-template-preview-shell,
  .admin-wang-shell {
    height: auto;
  }
  .admin-template-preview-body {
    max-height: 360px;
  }
  .admin-wang-shell {
    min-height: 320px;
  }
}

/* 个人中心顶栏（用户信息 + 企业认证 + Tab） */
.user-center-hub-card {
  padding: 1.25rem 1.35rem;
  border-radius: 14px;
}
.user-center-hub-card-title {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--app-dark);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--app-border);
}
.user-center-hub-avatar {
  width: 72px;
  height: 72px;
  margin: 0 auto;
  border-radius: 50%;
  background: linear-gradient(135deg, #174ea6, #3b82f6);
  color: #fff;
  font-size: 1.75rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(23, 78, 166, 0.22);
}
.user-center-hub-meta li:first-child {
  border-top: none !important;
}
.user-center-hub-reg {
  padding-top: 0.5rem;
  border-top: 1px solid var(--app-border);
}
/* 企业认证弹窗：固定宽度 + 标签列与「企业证件」区对齐（与稿一致） */
.modal-dialog.user-center-enterprise-dialog {
  width: calc(100% - 1.5rem);
  max-width: 800px;
  margin: 0.75rem auto;
}

.user-center-enterprise-modal.modal-content,
.user-center-enterprise-modal .modal-content {
  --uc-ent-label: 9.5rem;
  --uc-ent-pad-x: 1.75rem;
  --uc-ent-doc-minh: 232px;
  background: #fff;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  box-shadow: 0 22px 50px rgba(16, 32, 52, 0.12);
  overflow: hidden;
}

.user-center-enterprise-modal-head {
  padding: 1.25rem var(--uc-ent-pad-x) 0.75rem;
}

.user-center-enterprise-modal-head .modal-title {
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--app-dark);
  letter-spacing: 0.01em;
}

.user-center-enterprise-head-icon {
  display: inline-flex;
  opacity: 0.9;
}

.modal-body.user-center-enterprise-body {
  padding: 0 var(--uc-ent-pad-x) 0.25rem;
}

.user-center-enterprise-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: linear-gradient(90deg, #f3efff 0%, #fafaff 50%, #f5f3ff 100%);
  border: 1px solid rgba(124, 58, 237, 0.16);
  border-radius: 12px;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: var(--app-text);
  line-height: 1.45;
  margin-bottom: 1.25rem;
  text-align: center;
}

.user-center-enterprise-banner-gift {
  flex-shrink: 0;
  font-size: 1.05rem;
  line-height: 1;
}

.user-center-enterprise-banner-text {
  text-align: center;
}

.user-center-enterprise-points {
  color: #6366f1;
  font-weight: 700;
}

/* 上排：标签 | 上传区 | 示例图 — 两栏内容区等分 */
.user-center-enterprise-doc-grid {
  display: grid;
  grid-template-columns: var(--uc-ent-label) minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.75rem 1rem;
  align-items: stretch;
  margin-bottom: 1.35rem;
}

.user-center-enterprise-doc-label {
  font-size: 0.875rem;
  color: var(--app-text);
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
  align-self: start;
  padding-top: 0.85rem;
}

.user-center-enterprise-upload {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--uc-ent-doc-minh);
  border: 1px dashed #a5b4fc;
  border-radius: 10px;
  background: #fff;
  padding: 1.15rem 1rem 1.1rem;
  transition: border-color var(--app-motion-duration-fast) var(--app-motion-ease),
    background-color var(--app-motion-duration-fast) var(--app-motion-ease);
}

.user-center-enterprise-upload:hover {
  border-color: #9ca8b8;
  background: #f5f7fa;
}

.user-center-enterprise-file-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}

.user-center-enterprise-upload-inner {
  position: relative;
  z-index: 1;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  max-width: 100%;
}

.user-center-enterprise-upload-icon {
  color: #64748b;
  margin-bottom: 0.4rem;
  display: flex;
  justify-content: center;
}

.user-center-enterprise-upload-title {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--app-dark);
  margin-bottom: 0.55rem;
}

.user-center-enterprise-upload-rules {
  margin: 0 auto;
  padding-left: 1.15rem;
  color: var(--app-muted);
  font-size: 0.8125rem;
  line-height: 1.55;
  text-align: left;
  width: 100%;
  max-width: 22rem;
  box-sizing: border-box;
}

.user-center-enterprise-sample {
  min-height: var(--uc-ent-doc-minh);
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  padding: 0.65rem 0.75rem;
  display: flex;
  flex-direction: column;
}

.user-center-enterprise-sample-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--app-muted);
  margin-bottom: 0.45rem;
}

.user-center-enterprise-sample-frame {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4f6f9;
  border-radius: 8px;
  padding: 0.45rem;
  min-height: calc(var(--uc-ent-doc-minh) - 2.25rem);
  border: 1px solid #e8ecf1;
}

.user-center-enterprise-sample-frame img {
  max-width: 100%;
  max-height: 240px;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 4px;
  vertical-align: middle;
}

.user-center-enterprise-sample-placeholder {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--app-muted);
  font-size: 0.8125rem;
  padding: 0.75rem;
  background: #f8fafc;
  border-radius: 8px;
  border: 1px dashed #d0d7e2;
  min-height: calc(var(--uc-ent-doc-minh) - 2.25rem);
}

.user-center-enterprise-sample-placeholder code {
  font-size: 0.78em;
  word-break: break-all;
}

/* 与上排同一标签列宽，输入右对齐成纵列 */
.user-center-enterprise-field-row {
  display: grid;
  grid-template-columns: var(--uc-ent-label) minmax(0, 1fr);
  gap: 0.65rem 1rem;
  align-items: center;
  margin-bottom: 0.95rem;
}

.user-center-enterprise-field-row--spaced {
  margin-bottom: 1.1rem;
}

.user-center-enterprise-field-row--last {
  margin-bottom: 0;
}

.user-center-enterprise-label {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--app-text);
  line-height: 1.35;
  text-align: right;
}

.user-center-enterprise-field {
  border-radius: 8px;
  border: 1px solid #d0d7e2;
  padding: 0.5rem 0.85rem;
  font-size: 0.9375rem;
  background: #fff;
  min-height: calc(1.5em + 1rem);
}

.user-center-enterprise-field::placeholder {
  color: #9aa5b5;
}

.user-center-enterprise-field:focus {
  border-color: rgba(124, 58, 237, 0.45);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}

.user-center-enterprise-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.35rem 0 1.05rem;
  color: var(--app-muted);
  font-size: 0.8125rem;
  font-weight: 600;
}

.user-center-enterprise-divider::before,
.user-center-enterprise-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--app-border);
}

.user-center-enterprise-modal-foot {
  padding: 1rem var(--uc-ent-pad-x) 1.35rem;
  gap: 0.75rem;
  justify-content: flex-end;
}

.user-center-enterprise-cancel {
  background: #fff !important;
  border: 1px solid #94a3b8 !important;
  color: #334155 !important;
  border-radius: 8px;
  padding: 0.45rem 1.25rem;
  font-size: 0.9375rem;
  font-weight: 500;
}

.user-center-enterprise-cancel:hover {
  background: #f8fafc !important;
  color: #1e293b !important;
}

/* 紫 → 蓝渐变，对齐高保真稿 */
.user-center-enterprise-submit {
  border: none !important;
  border-radius: 8px;
  padding: 0.45rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #fff !important;
  background: linear-gradient(95deg, #7c3aed 0%, #6366f1 52%, #2563eb 100%) !important;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.35);
}

.user-center-enterprise-submit:hover {
  filter: brightness(1.05);
  color: #fff !important;
}

@media (max-width: 767.98px) {
  .user-center-enterprise-modal.modal-content,
  .user-center-enterprise-modal .modal-content {
    --uc-ent-label: 0;
  }

  .user-center-enterprise-doc-grid {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .user-center-enterprise-doc-label {
    text-align: left;
    padding-top: 0;
  }

  .user-center-enterprise-field-row {
    grid-template-columns: 1fr;
    gap: 0.35rem;
    align-items: stretch;
  }

  .user-center-enterprise-label {
    text-align: left;
  }

  .user-center-enterprise-sample-frame img {
    max-height: 200px;
  }
}

/* 抖音新人邀请码弹窗 */
.app-promo-douyin-content {
  border-radius: 16px;
}
.app-promo-douyin-qr-wrap {
  width: 200px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f3f6;
  border-radius: 16px;
}
.app-promo-douyin-qr {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 12px;
}

/* 个人中心购买弹窗：积分/会员统一购买视觉升级 */
.points-recharge-grid--dark {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 1199.98px) {
  .points-recharge-grid--dark {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 991.98px) {
  .points-recharge-grid--dark {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575.98px) {
  .points-recharge-grid--dark {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}
.points-recharge-card--dark {
  background: linear-gradient(145deg, #ffffff 0%, #fbfdff 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.92) !important;
  color: #334155;
  box-shadow:
    10px 10px 24px rgba(148, 163, 184, 0.16),
    -8px -8px 18px rgba(255, 255, 255, 0.95),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.points-recharge-card--dark .points-recharge-card-title {
  color: #0f172a;
}
.points-recharge-card--dark .points-recharge-card-subtitle {
  color: #64748b;
  opacity: 1;
}
.points-recharge-card-bonus {
  color: #ea580c;
  font-weight: 700;
}
.points-recharge-card--dark .points-recharge-card-badge {
  background: #f8fafc;
  border: 1px solid rgba(203, 213, 225, 0.9);
  color: #475569;
}
.points-recharge-card--dark .points-recharge-card-points {
  color: #0f172a;
  letter-spacing: 0.3px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.points-recharge-card--dark .points-recharge-card-points-icon {
  color: #ea580c;
  font-size: 0.95rem;
}
.points-recharge-card--dark .points-recharge-card-price {
  color: #0f172a;
}
.points-recharge-card-buy-btn {
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #8b5cf6 0%, #6366f1 48%, #3b82f6 100%) !important;
  color: #fff !important;
  font-weight: 600;
}
.points-membership-cycle-switch {
  display: inline-flex;
  gap: 8px;
  padding: 6px;
  border: 1px solid rgba(107, 114, 128, 0.24);
  border-radius: 999px;
  background: #f8f9ff;
}
.points-membership-cycle-btn {
  border-radius: 999px !important;
  border: 0 !important;
  background: transparent !important;
  color: #667085 !important;
  padding: 0.3rem 0.85rem !important;
}
.points-membership-cycle-btn.is-active {
  background: linear-gradient(90deg, #7b5dff 0%, #5f7eff 100%) !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(102, 118, 255, 0.26);
}
.points-package-grid--membership {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.points-package-card--membership {
  border-radius: 16px;
  border: 1px solid rgba(199, 210, 254, 0.85) !important;
  background: linear-gradient(180deg, #ffffff 0%, #f8f8ff 100%);
  box-shadow: 0 10px 24px rgba(99, 102, 241, 0.08);
}
.points-package-card--membership.is-featured {
  border-color: rgba(99, 102, 241, 0.85) !important;
  box-shadow: 0 14px 28px rgba(99, 102, 241, 0.2);
}
.points-package-card--membership .points-package-card-tag {
  background: #eef2ff;
  color: #4f46e5;
}
.points-package-card-cycle-note {
  min-height: 1.1rem;
  margin-top: 0.15rem;
  margin-bottom: 0.45rem;
  font-size: 0.78rem;
  color: #475569;
}

/* —— Admin console (Bootstrap-first shell) —— */
.app-body.admin-console-mode .app-navbar {
  display: none !important;
}
.app-body.admin-console-mode .app-footer {
  display: none !important;
}
.app-body.admin-console-mode .app-main.app-main--admin-console {
  padding-top: 0.65rem !important;
  padding-bottom: 0 !important;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
}
/* 避免顶栏/侧栏 + 主区 flex 把整页撑宽（不在 html/body 上 overflow-x，以免破坏侧栏 sticky） */
.admin-console-root {
  max-width: 100%;
  min-width: 0;
}
.admin-console-body {
  min-width: 0;
  max-width: 100%;
}
.admin-console-main {
  min-width: 0;
  overflow-x: hidden;
}
header.admin-console-topnav {
  max-width: 100%;
  overflow-x: hidden;
}
header.admin-console-topnav > .container-fluid {
  max-width: 100%;
  min-width: 0;
}
.admin-min-h-0 {
  min-height: 0;
}
.letter-spacing-admin {
  letter-spacing: 0.06em;
}
.admin-console-sidebar .admin-side-heading:first-child {
  margin-top: 0 !important;
}
.admin-console-topnav.navbar-dark .navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.88);
}
.admin-console-topnav.navbar-dark .navbar-nav .nav-link:hover,
.admin-console-topnav.navbar-dark .navbar-nav .nav-link:focus {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.12);
}
.admin-console-topnav.navbar-dark .navbar-nav .nav-link.active {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.22);
}
/* 顶栏右侧：大屏单行；平板及以下允许换行，避免把整页撑出横向滚动 */
.admin-console-actions {
  flex-wrap: nowrap !important;
}
@media (min-width: 992px) {
  .admin-console-actions {
    width: auto !important;
    max-width: none;
  }
}
@media (max-width: 991.98px) {
  .admin-console-actions {
    flex-wrap: wrap !important;
    justify-content: flex-end;
    row-gap: 0.35rem;
  }
}
@media (max-width: 575.98px) {
  .admin-console-actions {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
  }
}
/* 中等宽度下顶栏分区导航过长时，仅在导航区内横向滚动，不撑宽视口 */
@media (max-width: 1199.98px) {
  .admin-console-topnav .navbar-collapse {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }
  .admin-console-topnav-scroll {
    flex-wrap: nowrap;
    padding-bottom: 0.15rem;
  }
}
.admin-console-body--dashboard .admin-console-main {
  background-color: transparent !important;
}
/* 后台：前台工作区导航配置（拖拽） */
.ws-nav-ghost {
  opacity: 0.55;
}
.ws-nav-handle,
.ws-nav-sec-handle {
  cursor: grab;
}
.ws-nav-handle:active,
.ws-nav-sec-handle:active {
  cursor: grabbing;
}
.admin-console-sidebar-inner {
  max-height: 50vh;
  overflow-y: auto;
}
@media (min-width: 992px) {
  .admin-console-sidebar {
    width: 280px;
    max-height: none;
    border-bottom: none !important;
    border-right: 1px solid var(--bs-border-color-translucent, var(--bs-border-color));
  }
  .admin-console-sidebar-inner {
    max-height: calc(100vh - 5.5rem);
    position: sticky;
    top: 4.75rem;
    overflow-y: auto;
  }
}
@media (max-width: 991.98px) {
  .admin-console-topnav-scroll {
    max-height: 50vh;
    overflow-y: auto;
  }
}
.admin-console-main > .card.border-0.shadow-sm {
  border: 1px solid var(--bs-border-color) !important;
  box-shadow: var(--bs-box-shadow-sm) !important;
}
/* 广交会采购商后台列表：避免其它层叠上下文挡住「编辑」链接 */
.admin-console-main .admin-cfb-edit-cell {
  position: relative;
  z-index: 2;
}
.admin-console-main .app-kicker {
  color: var(--bs-primary);
}
.admin-global-company-geo-nav .geo-country-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  max-width: 100%;
}

/* —— 独立会员购买页 /user/membership（贴顶通栏 + 促销横幅，主题紫） —— */
.membership-hub-shell--kling {
  --mh-accent: #ea580c;
  --mh-accent-2: #c2410c;
  --mh-accent-grad-a: #fb923c;
  --mh-accent-grad-b: #ea580c;
  --mh-accent-soft: rgba(251, 146, 60, 0.16);
  --mh-accent-border: rgba(234, 88, 12, 0.4);
  --mh-accent-shadow: rgba(234, 88, 12, 0.28);
  --mh-content-max: 1200px;
}
.membership-hub-shell--kling .membership-hub-strip-inner--wide,
.membership-hub-shell--kling .membership-hub-inner--kling-wide {
  max-width: min(var(--mh-content-max), 100%);
}
/* 商业版：不显示「会员计划 / 积分」Tab 与右侧邀请、可用积分 */
.membership-hub-shell--edition-business .membership-hub-strip--nav {
  display: none !important;
}
.app-body.route-user .app-main:has(.membership-hub-shell),
.app-body.route-tool .app-main:has(.membership-hub-shell) {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}
.app-body.route-user .app-main:has(.membership-hub-shell) > .d-grid.gap-2,
.app-body.route-tool .app-main:has(.membership-hub-shell) > .d-grid.gap-2 {
  padding-left: max(1rem, env(safe-area-inset-left));
  padding-right: max(1rem, env(safe-area-inset-right));
  padding-top: 1rem;
}
.app-body .membership-store-page.membership-hub-shell {
  display: flex;
  flex-direction: column;
  min-height: 60vh;
  margin: 0;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  background: linear-gradient(180deg, #ffffff 0%, #f1f5f9 45%, #e8eef5 100%);
}
.membership-hub-strip {
  width: 100%;
}
.membership-hub-strip-inner {
  margin-left: auto;
  margin-right: auto;
}
.membership-hub-strip-inner--wide {
  width: 100%;
  max-width: min(1320px, 100%);
  padding-left: max(1rem, env(safe-area-inset-left));
  padding-right: max(1rem, env(safe-area-inset-right));
}
/* ① 顶区：居中个人版 / 商业版（对齐 Kling membership-plan） */
.membership-hub-strip--edition {
  flex-shrink: 0;
  background: #fff;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.membership-hub-edition-rail {
  display: flex;
  justify-content: center;
  width: 100%;
}
/* ② Tab + 右侧邀请文案 */
.membership-hub-strip--nav {
  flex-shrink: 0;
  background: #fafbfc;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.membership-hub-strip--nav .membership-hub-strip-inner {
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
}
.membership-hub-nav-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}
.membership-hub-nav-aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  font-size: 0.8125rem;
  justify-content: flex-end;
}
.membership-hub-invite-copy {
  max-width: 20rem;
  line-height: 1.45;
}
@media (max-width: 767.98px) {
  .membership-hub-invite-copy {
    max-width: 100%;
  }
  .membership-hub-nav-aside {
    justify-content: flex-start;
    width: 100%;
  }
}
.membership-hub-invite-link {
  color: var(--mh-accent-2, #6d28d9) !important;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.membership-hub-invite-link:hover {
  text-decoration: underline;
  color: #5b21b6 !important;
}
.membership-hub-nav-divider {
  display: inline-block;
  width: 1px;
  height: 14px;
  background: rgba(15, 23, 42, 0.18);
  margin: 0 0.1rem;
  vertical-align: middle;
}
.membership-hub-nav-aside .membership-hub-points-pill {
  display: inline-block;
  padding: 0.12rem 0.55rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--mh-accent-border, rgba(139, 92, 246, 0.35));
  color: var(--mh-accent-2, #6d28d9);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.membership-hub-body {
  flex: 1 1 auto;
  width: 100%;
}
.membership-hub-inner {
  padding: 1.35rem max(1rem, env(safe-area-inset-left)) 2.5rem max(1rem, env(safe-area-inset-right));
  margin: 0 auto;
}
.membership-hub-inner--kling-wide {
  max-width: min(1320px, 100%);
}
.app-body.route-user .membership-hub-shell,
.app-body.route-tool .membership-hub-shell {
  color: #0f172a;
}
.membership-hub-pill-switch .membership-hub-pill-btn:not(.is-active) .membership-hub-new-tag {
  background: var(--mh-accent-soft, rgba(139, 92, 246, 0.14));
  color: var(--mh-accent-2, #6d28d9);
}
/* Kling：Tab 为文字 + 底部强调线（非胶囊） */
.membership-hub-shell--kling .membership-hub-tabs {
  display: inline-flex;
  gap: 0;
  align-items: stretch;
}
.membership-hub-shell--kling .membership-hub-tab {
  border: 0;
  background: transparent !important;
  color: #64748b;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.45rem 0;
  margin-right: 1.5rem;
  border-radius: 0 !important;
  border-bottom: 2px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.membership-hub-shell--kling .membership-hub-tab:hover {
  color: #0f172a;
}
.membership-hub-shell--kling .membership-hub-tab.is-active {
  color: var(--mh-accent-2, #6d28d9) !important;
  border-bottom-color: var(--mh-accent, #7c3aed) !important;
}
.membership-hub-center-block {
  display: flex;
  justify-content: center;
}
.membership-hub-pill-switch {
  padding: 5px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
  gap: 0;
}
.membership-hub-pill-switch .membership-hub-pill-btn {
  border-radius: 999px !important;
  border: 0 !important;
  padding: 0.45rem 1.35rem !important;
  font-weight: 600;
  color: #64748b !important;
  background: transparent !important;
}
.membership-hub-pill-switch .membership-hub-pill-btn.is-active {
  color: #fff !important;
  background: linear-gradient(135deg, var(--mh-accent-grad-a, #8b5cf6) 0%, var(--mh-accent-grad-b, #7c3aed) 100%) !important;
  box-shadow: 0 4px 14px var(--mh-accent-shadow, rgba(124, 58, 237, 0.35));
}
.membership-hub-new-tag {
  display: inline-block;
  margin-left: 0.2rem;
  padding: 0.05rem 0.35rem;
  font-size: 0.65rem;
  font-weight: 700;
  vertical-align: middle;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.25);
  color: inherit;
}
.membership-hub-cycle-rail .membership-store-cycle {
  display: inline-flex;
  gap: 6px;
  padding: 6px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
}
.membership-hub-cycle-rail .membership-store-cycle-btn {
  border-radius: 999px !important;
  border: 0 !important;
  background: transparent !important;
  color: #64748b !important;
  padding: 0.35rem 1rem !important;
  font-weight: 600;
  font-size: 0.875rem;
}
.membership-hub-cycle-rail .membership-store-cycle-btn.is-active {
  background: linear-gradient(135deg, var(--mh-accent-grad-a, #fb923c) 0%, var(--mh-accent-grad-b, #ea580c) 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px var(--mh-accent-shadow, rgba(234, 88, 12, 0.28));
}
.membership-store-card {
  height: 100%;
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  background: #fff;
  padding: 1.25rem 1.15rem 1.35rem;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  min-width: 0;
}
.membership-store-card:hover {
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.09);
  transform: translateY(-2px);
}
.membership-store-card.is-featured {
  border-color: rgba(234, 88, 12, 0.45);
  box-shadow: 0 16px 40px rgba(234, 88, 12, 0.14);
}
.membership-store-card--free-tier {
  background: #fafafa;
  border-color: rgba(15, 23, 42, 0.08);
}
.membership-store-card--free-tier:hover {
  transform: none;
}
.membership-store-card-price--free {
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #64748b;
}
.membership-store-card-note--muted {
  color: #94a3b8 !important;
  min-height: auto !important;
}
.membership-store-btn-free {
  border-radius: 999px !important;
  border: 1px solid rgba(15, 23, 42, 0.12) !important;
  background: #f1f5f9 !important;
  color: #64748b !important;
  font-weight: 600;
  padding: 0.55rem 1rem !important;
  cursor: default !important;
  opacity: 1 !important;
}
.membership-store-btn-current {
  border-radius: 999px !important;
  border: 1px solid rgba(234, 88, 12, 0.35) !important;
  background: rgba(234, 88, 12, 0.08) !important;
  color: var(--mh-accent-2, #c2410c) !important;
  font-weight: 700;
  padding: 0.55rem 1rem !important;
  cursor: default !important;
  opacity: 1 !important;
}
.membership-store-card-kicker {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
}
.membership-store-card-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0.2rem 0 0;
}
.membership-store-card-tag {
  font-size: 0.68rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: rgba(234, 88, 12, 0.12);
  color: var(--mh-accent-2, #c2410c);
  font-weight: 600;
}
.membership-store-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.membership-store-card-price {
  font-size: 1.4rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.25rem;
  letter-spacing: -0.02em;
}
.membership-store-card-price small {
  font-size: 0.88rem;
  font-weight: 600;
  color: #64748b;
}
.membership-store-card-note {
  min-height: 1rem;
  font-size: 0.8rem;
  color: #64748b;
  margin-bottom: 0.65rem;
}
.membership-store-card-list {
  margin: 0 0 1rem;
  padding-left: 0;
  list-style: none;
  font-size: 0.8125rem;
  color: #475569;
  line-height: 1.45;
}
.membership-store-benefit-list .membership-benefit-row {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem 0.5rem;
  margin-bottom: 0.55rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}
.membership-store-benefit-list .membership-benefit-row:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.membership-benefit-check {
  flex: 0 0 1rem;
  width: 1rem;
  text-align: center;
  color: var(--mh-accent, #ea580c);
  font-weight: 800;
  font-size: 0.75rem;
  line-height: 1.35;
  padding-top: 0.12rem;
}
.membership-benefit-row--off .membership-benefit-check {
  color: #cbd5e1;
}
.membership-benefit-text {
  flex: 1 1 auto;
  min-width: 0;
}
.membership-benefit-badge {
  flex: 0 0 auto;
  margin-left: auto;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.12rem 0.42rem;
  border-radius: 999px;
  background: rgba(234, 88, 12, 0.15);
  color: var(--mh-accent-2, #c2410c);
  white-space: nowrap;
  max-width: 46%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.membership-benefit-row--strike .membership-benefit-text {
  text-decoration: line-through;
  color: #94a3b8;
}
.membership-store-btn-primary {
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--mh-accent-grad-a, #fb923c) 0%, var(--mh-accent-grad-b, #ea580c) 100%) !important;
  color: #fff !important;
  font-weight: 600;
  padding: 0.55rem 1rem !important;
  box-shadow: 0 8px 20px var(--mh-accent-shadow, rgba(234, 88, 12, 0.22));
}
.membership-store-btn-outline {
  border-radius: 999px !important;
  border: 1px solid rgba(15, 23, 42, 0.12) !important;
  background: #fff !important;
  color: #334155 !important;
  font-weight: 600;
  padding: 0.55rem 1rem !important;
}
.membership-store-card .membership-store-btn-outline:disabled {
  opacity: 0.45;
}

/* 会员页 · 积分档位（Bootstrap row，对齐 Kling 4 列栅格） */
.membership-hub-points-card {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  background: #fff;
  padding: 1.1rem 1.15rem 1rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.membership-hub-points-card:hover {
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.09);
  transform: translateY(-2px);
}
.membership-hub-points-card-bg {
  position: absolute;
  right: -12px;
  bottom: -18px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--mh-accent-soft, rgba(139, 92, 246, 0.14)), transparent 70%);
  pointer-events: none;
}
.membership-hub-points-card-head {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.membership-hub-points-flame {
  color: var(--mh-accent, #7c3aed);
  font-size: 1.15rem;
  line-height: 1;
}
.membership-hub-points-card-amount {
  font-size: 1.75rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.membership-hub-points-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.15rem 0.45rem;
  border-radius: 6px;
  background: rgba(234, 179, 8, 0.18);
  color: #a16207;
}
.membership-hub-points-card-sub {
  position: relative;
  margin-top: 0.35rem;
  font-size: 0.8rem;
  color: #64748b;
}
.membership-hub-points-card-meta {
  position: relative;
  margin-top: 0.35rem;
  min-height: 2.25rem;
}
.membership-hub-points-card-foot {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.membership-hub-points-price {
  font-size: 1.1rem;
  font-weight: 800;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
.membership-hub-points-buy {
  border-radius: 999px !important;
  padding: 0.4rem 1rem !important;
  font-weight: 600;
  font-size: 0.875rem;
  border: 0 !important;
  background: linear-gradient(135deg, var(--mh-accent-grad-a, #8b5cf6) 0%, var(--mh-accent-grad-b, #7c3aed) 100%) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px var(--mh-accent-shadow, rgba(124, 58, 237, 0.25));
}
.membership-hub-points-buy:hover {
  filter: brightness(1.03);
  color: #fff !important;
}

/* 会员购买页 · 常见问题（手风琴，浅灰底 + 紫色点缀） */
.membership-hub-faq-band {
  flex-shrink: 0;
  width: 100%;
  padding: 2.75rem 0 3.25rem;
  background: #f5f5f5;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.membership-hub-faq-band .membership-hub-strip-inner {
  margin-left: auto;
  margin-right: auto;
}
.membership-faq-head {
  text-align: center;
  margin-bottom: 1.75rem;
  padding: 0 0.25rem;
}
.membership-faq-title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f172a;
}
.membership-faq-subtitle {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #64748b;
}
.membership-faq-list {
  max-width: 52rem;
  margin: 0 auto;
}
.membership-faq-item {
  border-bottom: 1px solid #eeeeee;
}
.membership-faq-item:first-of-type {
  border-top: 1px solid #eeeeee;
}
.membership-faq-summary {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem 1rem;
  padding: 1rem 0.15rem 1rem 0;
  cursor: pointer;
  list-style: none;
  font-size: 0.9375rem;
  line-height: 1.5;
}
.membership-faq-summary::-webkit-details-marker {
  display: none;
}
.membership-faq-summary::marker {
  content: '';
}
.membership-faq-q-index {
  flex: 0 0 auto;
  min-width: 2.25rem;
  font-weight: 800;
  font-size: 0.8125rem;
  color: var(--mh-accent, #7c3aed);
  padding-top: 0.12rem;
}
.membership-faq-q-text {
  flex: 1 1 auto;
  font-weight: 600;
  color: #1e293b;
  text-align: left;
}
.membership-faq-chevron {
  flex: 0 0 auto;
  margin-left: auto;
  padding-top: 0.15rem;
  color: var(--mh-accent, #7c3aed);
  transition: transform 0.2s ease, color 0.15s ease;
}
.membership-faq-item[open] .membership-faq-chevron {
  transform: rotate(180deg);
}
.membership-faq-summary:hover .membership-faq-chevron {
  color: var(--mh-accent-2, #6d28d9);
}
.membership-faq-answer {
  padding: 0 0 1.15rem;
  padding-left: 0.15rem;
}
.membership-faq-section--indexed .membership-faq-answer {
  padding-left: calc(2.25rem + 0.65rem);
}
@media (max-width: 575.98px) {
  .membership-faq-section--indexed .membership-faq-answer {
    padding-left: 0.15rem;
  }
}
.membership-faq-answer-text {
  font-size: 0.875rem;
  line-height: 1.65;
  color: #475569;
}

/* —— 广交会采购商（门户式筛选，橙色主按钮） —— */
.cfb-portal {
  --cfb-accent: #f97316;
  --cfb-accent-rgb: 249, 115, 22;
  --cfb-hero-bg: linear-gradient(135deg, #0f172a 0%, #1e293b 48%, #334155 100%);
}

.cfb-hero {
  border-radius: 16px;
  background: var(--cfb-hero-bg);
  color: #f8fafc;
  margin-bottom: 1.25rem;
  overflow: hidden;
}

.cfb-hero-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1.25rem;
  padding: 1.5rem 1.25rem;
}

@media (min-width: 992px) {
  .cfb-hero-inner {
    padding: 2rem 2.25rem;
  }
}

.cfb-hero-copy {
  flex: 1 1 280px;
  min-width: 0;
}

.cfb-title {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  margin: 0 0 0.5rem;
}

@media (min-width: 992px) {
  .cfb-title {
    font-size: 1.85rem;
  }
}

.cfb-subtitle {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  color: rgba(248, 250, 252, 0.82);
  line-height: 1.55;
}

.cfb-stat-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.45rem 1rem;
}

@media (min-width: 768px) {
  .cfb-stat-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.cfb-stat-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  font-size: 0.88rem;
  color: rgba(248, 250, 252, 0.9);
}

.cfb-stat-ico {
  color: #4ade80;
  flex-shrink: 0;
  margin-top: 0.12rem;
}

.cfb-hero-art {
  flex: 0 0 200px;
  display: none;
  align-items: center;
  justify-content: center;
}

@media (min-width: 992px) {
  .cfb-hero-art {
    display: flex;
  }
}

.cfb-hero-shelf {
  width: 180px;
  height: 120px;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.04) 100%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
  position: relative;
}

.cfb-hero-shelf::before,
.cfb-hero-shelf::after {
  content: '';
  position: absolute;
  left: 12%;
  right: 12%;
  height: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.cfb-hero-shelf::before {
  top: 38%;
}

.cfb-hero-shelf::after {
  top: 68%;
}

.cfb-panel .cfb-filter-label,
.cfb-results .cfb-filter-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  text-transform: none;
}

.cfb-selected-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.cfb-selected-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: #0f172a;
}

.cfb-selected-chips {
  flex: 1 1 200px;
  font-size: 0.82rem;
  color: #475569;
}

.cfb-selected-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.cfb-btn-primary {
  background: var(--cfb-accent);
  border-color: var(--cfb-accent);
  color: #fff;
  font-weight: 600;
}

.cfb-btn-primary:hover {
  background: #ea580c;
  border-color: #ea580c;
  color: #fff;
}

.cfb-filter-block {
  padding-top: 0.25rem;
}

.cfb-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.35rem;
}

.cfb-tag {
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  color: #334155;
  font-size: 0.8rem;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.cfb-tag:hover {
  border-color: rgba(var(--cfb-accent-rgb), 0.45);
  color: #0f172a;
}

.cfb-tag.is-active {
  background: rgba(var(--cfb-accent-rgb), 0.12);
  border-color: rgba(var(--cfb-accent-rgb), 0.55);
  color: #c2410c;
  font-weight: 600;
}

.cfb-expand {
  margin-top: 0.25rem;
  font-size: 0.8rem;
}

.cfb-source-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.cfb-pill {
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  color: #475569;
  font-size: 0.8rem;
  padding: 0.32rem 0.75rem;
  border-radius: 999px;
  cursor: pointer;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    box-shadow 0.2s ease,
    transform 0.12s ease;
}

.cfb-pill:hover:not(.is-active) {
  border-color: rgba(15, 23, 42, 0.2);
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}

.cfb-pill.is-active {
  background: rgba(var(--cfb-accent-rgb), 0.12);
  border-color: rgba(var(--cfb-accent-rgb), 0.5);
  color: #c2410c;
  font-weight: 600;
}

.cfb-results-shell {
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 920px);
  overflow: hidden;
}

.cfb-results-sticky-toolbar {
  position: sticky;
  top: 0;
  z-index: 6;
  flex-shrink: 0;
  background: #fff;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
}

.cfb-results-bulk-bar {
  border-color: rgba(15, 23, 42, 0.08) !important;
}

.cfb-results-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.cfb-results-scroll .cfb-results-body {
  transition:
    opacity var(--app-motion-duration-base, 240ms) var(--app-motion-ease, ease),
    filter var(--app-motion-duration-base, 240ms) var(--app-motion-ease, ease);
}

.cfb-results-scroll--soft-loading .cfb-results-body {
  opacity: 0.58;
  filter: saturate(0.9);
  pointer-events: none;
}

.cfb-results-inline-spinner {
  vertical-align: middle;
}

.cfb-pagination-bar {
  flex-shrink: 0;
  border-color: rgba(15, 23, 42, 0.08) !important;
}

/* 全球企业库分页：右侧为「每页条数」+ 页码同一行（每页在左），页码区可横向滚动 */
.global-company-pagination-bar-row {
  width: 100%;
}

.global-company-pagination-controls {
  width: 100%;
  min-width: 0;
}

@media (min-width: 768px) {
  .global-company-pagination-controls {
    width: auto;
    max-width: 100%;
  }
}

.global-company-pagination-controls .app-pagination-per-toolbar.global-company-per-toolbar {
  flex-shrink: 0;
  justify-content: flex-start;
}

.global-company-pagination-controls .global-company-pager-wrap {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-start;
}

#cfbPagination .btn-sm {
  min-width: 2.1rem;
}

.cfb-results-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, rgba(var(--cfb-accent-rgb), 0.06) 0%, #fff 100%);
}

.cfb-results-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}

.cfb-results-count {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--cfb-accent);
  margin-top: 0.2rem;
}

.cfb-results-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
}

.cfb-results-body {
  min-height: 100px;
}

.cfb-results-placeholder {
  padding: 2rem 1.25rem;
  text-align: center;
  font-size: 0.9rem;
}

.cfb-results-table-wrap {
  max-height: min(70vh, 640px);
  overflow: auto;
}

.cfb-results-table {
  font-size: 0.875rem;
}

.cfb-contact-hint {
  border-radius: 10px;
}

/* .cfb-buyer-list：滚动容器为 .cfb-results-scroll */
.cfb-buyer-list {
  min-height: 1px;
}

.cfb-buyer-card {
  border-bottom: 1px solid rgba(15, 23, 42, 0.07);
  background: #fff;
}

.cfb-buyer-card:last-child {
  border-bottom: 0;
}

/* —— 全球企业库「查全球」搜索区（与企业列表橙色体系统一） —— */
.gcl-portal .gcl-hero-wrap {
  --gcl-accent: var(--cfb-accent, #ea580c);
  --gcl-accent-dark: #c2410c;
  --gcl-accent-soft: #fff7ed;
  --gcl-accent-border: rgba(234, 88, 12, 0.45);
  position: relative;
  margin: -0.25rem -0.25rem 1.75rem;
  padding: 1.75rem 1.5rem 2.25rem;
  border-radius: 16px;
  background: linear-gradient(135deg, #fffaf5 0%, #fff4e8 40%, #ffedd5 100%);
  overflow: hidden;
}

.gcl-portal .gcl-hero-globe {
  position: absolute;
  right: -0.5rem;
  top: 0.25rem;
  width: min(46vw, 240px);
  height: min(46vw, 240px);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}

.gcl-portal .gcl-hero-globe svg {
  width: 100%;
  height: 100%;
  display: block;
}

.gcl-portal .gcl-hero-head {
  position: relative;
  z-index: 1;
  margin-bottom: 1.5rem;
}

.gcl-portal .gcl-hero-title {
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #0f172a;
  margin: 0 0 0.35rem;
}

.gcl-portal .gcl-hero-lead {
  font-size: 0.875rem;
  color: #64748b;
  max-width: 46rem;
  margin: 0;
  line-height: 1.55;
}

.gcl-portal .gcl-hero-card {
  position: relative;
  z-index: 1;
  border-radius: 14px !important;
}

.gcl-portal .gcl-hero-card-body {
  padding: 1.5rem 1.35rem 1.65rem;
}

@media (min-width: 992px) {
  .gcl-portal .gcl-hero-card-body {
    padding: 1.85rem 2rem 2rem;
  }
}

.gcl-portal .gcl-selected-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1rem;
  padding: 0.35rem 0 0.15rem;
  margin-bottom: 1.35rem;
  font-size: 0.8125rem;
}

.gcl-portal .gcl-selected-label {
  color: #64748b;
  flex-shrink: 0;
}

.gcl-portal .gcl-selected-text {
  flex: 1 1 12rem;
  color: #334155;
  min-width: 0;
}

.gcl-portal .gcl-selected-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  padding-top: 0.1rem;
}

.gcl-portal .gcl-btn-teal {
  background: var(--gcl-accent);
  border-color: var(--gcl-accent);
  color: #fff;
  font-weight: 600;
  border-radius: 999px;
}

.gcl-portal .gcl-btn-teal:hover {
  background: var(--gcl-accent-dark);
  border-color: var(--gcl-accent-dark);
  color: #fff;
}

.gcl-portal .gcl-mode-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 0.85rem;
  padding-top: 0.15rem;
}

.gcl-portal .gcl-mode-tab {
  position: relative;
  border: 0;
  background: transparent;
  color: #1e293b;
  font-size: 0.9375rem;
  font-weight: 500;
  padding: 0.55rem 1.1rem 0.65rem;
  margin: 0;
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  transition: background 0.15s ease, color 0.15s ease;
}

.gcl-portal .gcl-mode-tab:hover {
  background: rgba(234, 88, 12, 0.08);
  color: var(--gcl-accent-dark);
}

.gcl-portal .gcl-mode-tab.is-active {
  background: var(--gcl-accent);
  color: #fff;
  font-weight: 600;
}

.gcl-portal .gcl-mode-tab.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  margin-left: -6px;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid var(--gcl-accent);
}

.gcl-portal .gcl-search-bar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  min-height: 3.25rem;
  border: 2px solid var(--gcl-accent);
  border-radius: 12px;
  background: #fff;
  overflow: visible;
  box-shadow: 0 6px 22px rgba(234, 88, 12, 0.1);
}

.gcl-portal .gcl-search-country {
  flex: 0 0 11.5rem;
  max-width: 42%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.35rem 0.25rem 0.35rem 0.5rem;
  border-right: 1px solid rgba(234, 88, 12, 0.25);
  background: var(--gcl-accent-soft);
  border-radius: 9px 0 0 9px;
}

.gcl-portal .gcl-country-select-inner {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  min-height: 2.5rem;
  display: flex;
  align-items: center;
}

.gcl-portal .gcl-search-country .growth-country-select-input {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 0.9rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  line-height: 1.45;
}

.gcl-portal .gcl-search-input-wrap {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0 0.65rem 0 0.5rem;
  background: #fff;
}

.gcl-portal .gcl-search-input-inner {
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 1 1 auto;
  min-height: 2.75rem;
  padding: 0.2rem 0;
}

.gcl-portal .gcl-search-input-icon {
  flex-shrink: 0;
  color: #94a3b8;
  display: flex;
  align-items: center;
}

.gcl-portal .gcl-query-input {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.95rem;
  padding: 0.7rem 0.35rem;
}

.gcl-portal .gcl-search-suggest-popover,
.gcl-portal .gcl-search-history-popover {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 30;
  margin-top: 0.25rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  max-height: 240px;
  overflow: auto;
}

.gcl-portal .gcl-related-searches .btn-link {
  color: var(--gcl-accent, #ea580c);
}

.gcl-portal .gcl-search-submit {
  flex: 0 0 auto;
  align-self: stretch;
  border-radius: 0 9px 9px 0;
  margin: -2px -2px -2px 0;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  font-size: 1rem;
  background: var(--gcl-accent);
  border: none;
  color: #fff;
  min-width: 5.5rem;
}

.gcl-portal .gcl-search-submit:hover {
  background: var(--gcl-accent-dark);
  color: #fff;
}

.gcl-portal .gcl-hot-section {
  margin-top: 1.35rem;
  padding-top: 0.35rem;
}

.gcl-portal .gcl-hot-section .gcl-hot-row {
  font-size: 0.8125rem;
  line-height: 1.6;
}

.gcl-portal .gcl-hot-label {
  color: #64748b;
  margin-right: 0.25rem;
  white-space: nowrap;
}

.gcl-portal .gcl-hot-flame {
  margin-right: 0.15rem;
}

.gcl-portal .gcl-hot-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
  max-width: 100%;
}

.gcl-portal .gcl-hot-link {
  border: 0;
  background: none;
  padding: 0.15rem 0.45rem;
  margin: 0;
  color: #9a3412;
  text-decoration: none;
  font-size: inherit;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.15s ease, color 0.15s ease;
}

.gcl-portal .gcl-hot-link:hover {
  background: var(--gcl-accent);
  color: #fff;
  text-decoration: none;
}

.gcl-portal .gcl-hot-link.is-gcl-hot-selected {
  background: var(--gcl-accent);
  color: #fff;
}

.gcl-portal .gcl-hot-sep {
  display: none;
}

.gcl-portal .gcl-search-country .dropdown-menu {
  z-index: 1080;
}

.gcl-portal .gcl-selected-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.gcl-portal .gcl-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  background: #fff7ed;
  border: 1px solid rgba(234, 88, 12, 0.25);
  font-size: 0.78rem;
  color: #431407;
}

.gcl-portal .gcl-chip-label {
  color: #9a3412;
  font-weight: 600;
}

.gcl-portal .gcl-chip-remove {
  border: 0;
  background: transparent;
  color: #9a3412;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  padding: 0 0.1rem;
}

  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  z-index: 1070;
  max-height: 280px;
  overflow: auto;
}

.gcl-portal .gcl-history-item button {
  width: 100%;
}

.gcl-portal .gcl-query-clear {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  line-height: 2rem;
  text-align: center;
  font-size: 1.25rem;
  color: #94a3b8;
  text-decoration: none !important;
}

.gcl-portal .gcl-query-clear:hover {
  color: var(--gcl-accent);
}

.gcl-portal .gcl-mode-tabs-scroll {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.gcl-portal .gcl-mode-tabs-scroll .gcl-mode-tab {
  flex: 0 0 auto;
  white-space: nowrap;
}

.gcl-data-quality-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  vertical-align: middle;
}

.gcl-grade-a {
  background: #dcfce7;
  color: #166534;
}

.gcl-grade-b {
  background: #dbeafe;
  color: #1e40af;
}

.gcl-relevance-badge {
  font-size: 0.62rem;
  font-weight: 600;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  vertical-align: middle;
  white-space: nowrap;
}

.gcl-relevance-high {
  background: #dcfce7;
  color: #166534;
}

.gcl-relevance-mid {
  background: #fef3c7;
  color: #92400e;
}

.gcl-relevance-low {
  background: #f1f5f9;
  color: #64748b;
}

.gcl-grade-c {
  background: #f1f5f9;
  color: #475569;
}

.gcl-portal .gcl-footnote {
  color: #94a3b8 !important;
  margin-top: 1.25rem !important;
  line-height: 1.55;
}

.gcl-portal .gcl-message-slot {
  margin-top: 1.25rem;
}

.gcl-portal #growthGlobalCompanyListCard {
  margin-top: 1.5rem;
}

.gcl-portal .gcl-relaxed-hint,
.cfb-portal .gcl-relaxed-hint {
  color: #b45309;
  max-width: 46rem;
  line-height: 1.45;
}


@media (max-width: 767.98px) {
  .gcl-portal .gcl-search-bar {
    flex-wrap: wrap;
    border-radius: 10px;
  }

  .gcl-portal .gcl-search-country {
    flex: 1 1 100%;
    max-width: none;
    width: 100%;
    border-right: 0;
    border-bottom: 1px solid rgba(234, 88, 12, 0.25);
    border-radius: 7px 7px 0 0;
  }

  .gcl-portal .gcl-search-input-wrap {
    flex: 1 1 calc(100% - 5.75rem);
    min-width: 0;
  }

  .gcl-portal .gcl-search-submit {
    flex: 0 0 5.75rem;
    border-radius: 0;
    margin: 0;
    min-height: 2.75rem;
    align-self: stretch;
  }

  .gcl-portal .gcl-hot-section .gcl-hot-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem 0.5rem;
  }
}

/* 全球企业库：与广交会采购商卡片同系，略加强 hover 层次 */
.gcl-buyer-card {
  transition: box-shadow 0.22s ease, background-color 0.2s ease;
}

.gcl-buyer-card:hover {
  background: linear-gradient(180deg, #fffcfa 0%, #fff 42%);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.07);
}

.gcl-buyer-card-hit {
  border-radius: 10px;
}

.gcl-buyer-actions .btn {
  transition:
    transform 0.15s ease,
    box-shadow 0.2s ease,
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    filter 0.18s ease;
}

.gcl-buyer-actions .btn:hover:not(:disabled) {
  transform: translateY(-1px);
}

.gcl-buyer-actions .btn:active:not(:disabled) {
  transform: translateY(0);
}

.gcl-hot-q {
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    transform 0.12s ease;
}

.gcl-hot-q:hover {
  transform: translateY(-1px);
}

.cfb-buyer-card--clickable {
  cursor: pointer;
  outline: none;
}

.cfb-buyer-card--clickable:hover {
  background: rgba(15, 23, 42, 0.02);
}

.cfb-buyer-card--clickable:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(var(--cfb-accent-rgb), 0.35);
}

.cfb-buyer-card-inner {
  padding-bottom: 0.85rem !important;
}

.cfb-buyer-offcanvas {
  width: min(26rem, 100vw) !important;
  z-index: 1055;
}

.cfb-buyer-offcanvas.cfb-buyer-offcanvas-wide {
  width: min(720px, 92vw) !important;
}

.cfb-buyer-offcanvas .offcanvas-title {
  font-weight: 700;
  font-size: 1.05rem;
}

.cfb-buyer-country-inline .growth-country-with-flag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  color: #475569;
}

.cfb-buyer-country-inline .growth-country-flag-inline {
  width: 1.2rem;
  height: 0.8rem;
  object-fit: cover;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.cfb-badge-source {
  font-weight: 600;
  font-size: 0.72rem;
  background: rgba(34, 197, 94, 0.14);
  color: #15803d;
  border: 1px solid rgba(34, 197, 94, 0.25);
}

.cfb-badge-session {
  font-weight: 600;
  font-size: 0.72rem;
  background: rgba(244, 63, 94, 0.1);
  color: #be123c;
  border: 1px solid rgba(244, 63, 94, 0.2);
}

.cfb-badge-category {
  font-weight: 600;
  font-size: 0.72rem;
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
  border: 1px solid rgba(59, 130, 246, 0.22);
}

.cfb-buyer-row-v2 {
  background: #fff;
}

.cfb-buyer-avatar-lg,
.cfb-detail-avatar {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 0.65rem;
  background: var(--cfb-accent);
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  flex-shrink: 0;
}

.cfb-detail-avatar {
  width: 3.75rem;
  height: 3.75rem;
  font-size: 1.05rem;
  border-radius: 0.75rem;
}

.cfb-detail-contact-ico {
  color: #2563eb;
  font-size: 1.05rem;
  line-height: 1.2;
}

.cfb-detail-shell .cfb-detail-contact-icon-wrap {
  width: 1.5rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 0.1rem;
  color: #64748b;
}

.cfb-detail-shell .cfb-detail-contact-icon-wrap .bi {
  font-size: 1.12rem;
  line-height: 1.25;
}

.cfb-detail-shell .cfb-detail-verified-ico {
  font-size: 0.95rem;
  line-height: 1;
  vertical-align: -0.06em;
}

.cfb-detail-products .cfb-detail-product-line {
  padding-left: 0.05rem;
}

.cfb-detail-products .cfb-detail-product-line + .cfb-detail-product-line {
  margin-top: 0.2rem;
}

.cfb-buyer-contacts {
  /* 企业列表电话/邮箱/网址：标准蓝（与 Bootstrap primary 同级可读蓝） */
  --cfb-contact-fg: #2563eb;
  color: var(--cfb-contact-fg);
}

.cfb-buyer-contacts .cfb-list-contact-lead {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.35rem;
  color: #2563eb !important;
  opacity: 1;
}

.cfb-buyer-contacts .cfb-list-contact-lead .bi {
  font-size: 1.15rem;
  line-height: 1;
  vertical-align: -0.05em;
}

.cfb-buyer-contacts .cfb-list-contact-locked {
  font-size: 0.85rem;
  color: #94a3b8 !important;
  opacity: 1;
}

.cfb-buyer-contacts .cfb-contact-inline {
  max-width: 100%;
}

.cfb-buyer-contacts .cfb-contact-lead-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  color: inherit;
}

.cfb-buyer-contacts .cfb-contact-lead-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.cfb-buyer-contacts a:not(.cfb-detail-btn),
.cfb-buyer-contacts .btn-link.cfb-contact-gate,
.cfb-buyer-contacts a.link-dark {
  color: inherit !important;
  text-decoration: none;
}

.cfb-buyer-contacts a:not(.cfb-detail-btn):hover,
.cfb-buyer-contacts .btn-link.cfb-contact-gate:hover,
.cfb-buyer-contacts a.link-dark:hover {
  opacity: 0.88;
}

.cfb-buyer-contacts .text-muted {
  color: inherit !important;
  opacity: 0.55;
}

.cfb-buyer-contacts .cfb-detail-btn {
  color: var(--cfb-accent) !important;
}
