/* product_shell.css · 产品候选页面骨架
 *
 * 设计原则：
 * - 看起来像产品，不像实验室（无版本切换、无所有风格按钮、无大抽屉）
 * - 默认深色 · 设置里可切暖色
 * - 严格遵守 visual lab 的 typography + spacing scale（复用 :root token）
 * - 卡片间节奏：section-gap 56 / card-pad 32 / radius 18
 */

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--pc-bg-hero-grad);
  color: var(--pc-fg-primary);
  font-family: var(--font-body);
  font-size: var(--t-body-size);
  line-height: var(--t-body-lh);
  font-weight: var(--w-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100vh;
  transition: background 400ms cubic-bezier(.23,1,.32,1), color 320ms cubic-bezier(.23,1,.32,1);
}

body { overflow-x: hidden; }

a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; border: none; background: transparent; padding: 0; cursor: pointer; }

::selection { background: color-mix(in srgb, var(--c-mainline_invest) 30%, transparent); color: var(--pc-fg-primary); }

/* ====================================================================
 * 顶部导航 · 产品级（固定 64px）
 * ==================================================================== */

.pc-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: color-mix(in srgb, var(--pc-bg-base) 88%, transparent);
  border-bottom: 1px solid var(--pc-line-hairline);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
}

.pc-nav__inner {
  max-width: var(--pc-shell-max-width);
  margin: 0 auto;
  height: var(--pc-nav-height);
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 28px;
}

.pc-brand {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  flex-shrink: 0;
  user-select: none;
}

.pc-brand__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 4px;
  background:
    repeating-linear-gradient(0deg, rgba(2, 6, 11, 0.16) 0 2px, transparent 2px 6px),
    linear-gradient(135deg, var(--c-mainline_invest), color-mix(in srgb, var(--c-mainline_invest) 70%, var(--c-asset_capsule)));
  color: var(--pc-bg-base);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  box-shadow: var(--pc-accent-glow);
}

.pc-brand__name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0;
  color: var(--pc-fg-primary);
}

.pc-brand__suffix {
  font: var(--w-label) 10px/1 var(--font-mono);
  letter-spacing: 0.18em;
  color: var(--pc-fg-muted);
  text-transform: uppercase;
  padding-left: 4px;
  border-left: 1px solid var(--pc-line-soft);
  margin-left: 4px;
  padding-bottom: 1px;
}

.pc-nav__tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
}

.pc-nav__tab {
  position: relative;
  padding: 8px 14px;
  border-radius: 8px;
  color: var(--pc-fg-secondary);
  font-size: 14px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: color 180ms cubic-bezier(.23,1,.32,1), background 180ms cubic-bezier(.23,1,.32,1);
}
.pc-nav__tab:hover { color: var(--pc-fg-primary); background: var(--pc-bg-surface-1); }
.pc-nav__tab--active { color: var(--pc-fg-primary); }
.pc-nav__tab--active::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px;
  bottom: -1px;
  height: 2px;
  background: var(--c-mainline_invest);
  border-radius: 1px;
}

.pc-nav__status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  border-radius: 6px;
  background: var(--pc-bg-surface-1);
  color: var(--pc-fg-secondary);
  font: var(--w-label) 10px/1 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border: 1px solid var(--pc-line-hairline);
}
.pc-nav__status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-mainline_invest);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--c-mainline_invest) 25%, transparent);
}

.pc-nav__settings {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  color: var(--pc-fg-secondary);
  border: 1px solid var(--pc-line-hairline);
  cursor: pointer;
  transition: color 180ms cubic-bezier(.23,1,.32,1), border-color 180ms cubic-bezier(.23,1,.32,1), background 180ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1);
  flex-shrink: 0;
  font-size: 16px;
}
.pc-nav__settings:hover { color: var(--pc-fg-primary); border-color: var(--pc-line-soft); background: var(--pc-bg-surface-1); }

/* ====================================================================
 * 主壳
 * ==================================================================== */

.pc-shell {
  max-width: var(--pc-shell-max-width);
  margin: 0 auto;
  padding: 48px 32px 96px;
}

.pc-page--hidden { display: none; }

/* ====================================================================
 * Hero · 今日总览
 * ==================================================================== */

.pc-hero {
  position: relative;
  padding: 16px 0 40px;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--pc-line-hairline);
}

.pc-hero__eyebrow {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.pc-hero__eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--pc-fg-muted);
}

.pc-hero__verdict {
  font-family: var(--font-display);
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.18;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--pc-fg-primary);
  max-width: 900px;
  margin: 0 0 12px;
}
.pc-hero__verdict strong {
  background: linear-gradient(120deg, var(--c-mainline_invest), var(--c-asset_capsule));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 600;
}

.pc-hero__sub {
  font-size: 15px;
  color: var(--pc-fg-secondary);
  max-width: 720px;
  margin: 0 0 32px;
  line-height: 1.65;
}

.pc-hero__kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--pc-line-hairline);
  border: 1px solid var(--pc-line-hairline);
  border-radius: 8px;
  overflow: hidden;
}

.pc-kpi {
  background: var(--pc-bg-base);
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  transition: background 220ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1);
}
.pc-kpi:hover { background: var(--pc-bg-surface-1); }
.pc-kpi__label {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
}
.pc-kpi__value {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: var(--pc-fg-primary);
}
.pc-kpi__value--positive { color: var(--c-net-positive); }
.pc-kpi__value--negative { color: var(--c-net-negative); }
.pc-kpi__unit {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--pc-fg-muted);
  font-weight: 400;
  margin-left: 4px;
  letter-spacing: 0.05em;
}
.pc-kpi__hint {
  font-size: 12px;
  color: var(--pc-fg-muted);
  line-height: 1.5;
}

@media (max-width: 880px) {
  .pc-hero__kpis { grid-template-columns: repeat(2, 1fr); }
}

/* ====================================================================
 * 模块 section
 * ==================================================================== */

.pc-section {
  margin-top: var(--pc-section-gap);
}
.pc-section:first-of-type { margin-top: 24px; }

.pc-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--pc-line-hairline);
}

.pc-section__title-wrap { flex: 1; min-width: 0; }

.pc-section__eyebrow {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
  margin-bottom: 10px;
}

.pc-section__title {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.25;
  color: var(--pc-fg-primary);
  margin: 0;
}

.pc-section__desc {
  font-size: 13.5px;
  color: var(--pc-fg-secondary);
  margin: 6px 0 0;
  line-height: 1.6;
  max-width: 680px;
}

.pc-section__meta {
  font: var(--w-label) 10px/1.4 var(--font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
  flex-shrink: 0;
  text-align: right;
}

.pc-card {
  background: var(--pc-bg-surface-1);
  border: 1px solid var(--pc-line-hairline);
  border-radius: var(--pc-card-radius);
  padding: var(--pc-card-pad);
  box-shadow: var(--pc-shadow-card);
  transition: border-color 220ms cubic-bezier(.23,1,.32,1), box-shadow 240ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1);
}
.pc-card:hover {
  border-color: var(--pc-line-soft);
  box-shadow: var(--pc-shadow-hover);
}

/* 内置变体容器（让 visual lab 组件在 product card 内自适应） */
.pc-mount {
  width: 100%;
}

/* ====================================================================
 * 主视觉 section（S1 仪器风 + 环层切换 右侧）
 * ==================================================================== */

.pc-main-visual {
  display: grid;
  grid-template-columns: minmax(440px, 1.6fr) minmax(240px, 1fr);
  gap: 32px;
  align-items: start;
}
@media (max-width: 1080px) {
  .pc-main-visual { grid-template-columns: 1fr; }
}

.pc-clock-wrap { display: flex; justify-content: center; align-items: center; padding: 8px; }
.pc-clock-svg { width: 100%; height: auto; max-width: 540px; }

.pc-ring-controls {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.pc-ring-controls__title {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
}

.pc-ring-toggles {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pc-ring-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: var(--pc-bg-surface-2);
  border: 1px solid var(--pc-line-hairline);
  border-radius: 12px;
  cursor: pointer;
  transition: background 180ms cubic-bezier(.23,1,.32,1), border-color 180ms cubic-bezier(.23,1,.32,1), color 180ms cubic-bezier(.23,1,.32,1);
  text-align: left;
  font-family: var(--font-body);
}
.pc-ring-toggle:hover { border-color: var(--pc-line-soft); }
.pc-ring-toggle__left { display: flex; align-items: center; gap: 12px; }
.pc-ring-toggle__marker {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--pc-line-soft);
  position: relative;
  flex-shrink: 0;
}
.pc-ring-toggle__marker--outer::before { content: ""; position: absolute; inset: -2px; border: 1.5px solid var(--c-mainline_invest); border-radius: 50%; opacity: 0.7; }
.pc-ring-toggle__marker--mid::before { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--c-asset_capsule); opacity: 0.55; }
.pc-ring-toggle__marker--inner::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--c-evidence-exact); }
.pc-ring-toggle__text { display: flex; flex-direction: column; gap: 2px; }
.pc-ring-toggle__name { font-size: 14px; font-weight: 500; color: var(--pc-fg-primary); }
.pc-ring-toggle__sub { font: var(--w-label) 10px/1 var(--font-mono); letter-spacing: 0.12em; color: var(--pc-fg-muted); text-transform: uppercase; }
.pc-ring-toggle__switch {
  width: 32px; height: 20px;
  border-radius: 999px;
  background: var(--pc-bg-base);
  border: 1px solid var(--pc-line-soft);
  position: relative;
  transition: transform 220ms cubic-bezier(.23,1,.32,1), background 200ms cubic-bezier(.23,1,.32,1);
  flex-shrink: 0;
}
.pc-ring-toggle__switch::after {
  content: ""; position: absolute;
  left: 2px; top: 1px;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--pc-fg-muted);
  transition: transform 220ms cubic-bezier(.23,1,.32,1), background 200ms cubic-bezier(.23,1,.32,1);
}
.pc-ring-toggle--on .pc-ring-toggle__switch { background: color-mix(in srgb, var(--c-mainline_invest) 30%, transparent); border-color: var(--c-mainline_invest); }
.pc-ring-toggle--on .pc-ring-toggle__switch::after { transform: translateX(12px); background: var(--c-mainline_invest); }

.pc-ring-helper {
  font-size: 12px;
  color: var(--pc-fg-muted);
  line-height: 1.65;
  padding: 14px;
  background: var(--pc-bg-surface-2);
  border-left: 2px solid var(--c-asset_capsule);
  border-radius: 0 8px 8px 0;
}

/* ====================================================================
 * 模块通用：复用 visual lab 组件的容器
 * ==================================================================== */

.pc-module-card {
  background: var(--pc-bg-surface-1);
  border: 1px solid var(--pc-line-hairline);
  border-radius: var(--pc-card-radius);
  padding: var(--pc-card-pad);
  box-shadow: var(--pc-shadow-card);
  transition: border-color 220ms cubic-bezier(.23,1,.32,1), box-shadow 240ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1);
}
.pc-module-card:hover {
  border-color: var(--pc-line-soft);
  box-shadow: var(--pc-shadow-hover);
}

/* 让嵌入的 visual lab 组件不再多套一层卡片 */
.pc-module-card .avl-s3v4-svg-wrap,
.pc-module-card .avl-s56v4-coverage,
.pc-module-card .avl-s7v4-tabs,
.pc-module-card .avl-s9v4-summary,
.pc-module-card .avl-s10v3-svg-wrap {
  background: transparent;
  border: none;
}

/* ====================================================================
 * 周复盘入口卡（S11 预览）
 * ==================================================================== */

.pc-weekly-entry {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 32px;
  align-items: center;
  background: linear-gradient(135deg, var(--pc-bg-surface-2), var(--pc-bg-surface-1));
  border: 1px solid var(--pc-line-hairline);
  border-radius: var(--pc-card-radius);
  padding: 36px 40px;
  box-shadow: var(--pc-shadow-card);
  transition: border-color 220ms cubic-bezier(.23,1,.32,1), box-shadow 240ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1);
  cursor: pointer;
}
.pc-weekly-entry:hover { border-color: var(--pc-line-soft); box-shadow: var(--pc-shadow-hover); transform: translateY(-1px); }
@media (max-width: 880px) { .pc-weekly-entry { grid-template-columns: 1fr; padding: 28px; } }

.pc-weekly-entry__text { display: flex; flex-direction: column; gap: 12px; }
.pc-weekly-entry__eyebrow {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-asset_capsule);
}
.pc-weekly-entry__title {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0;
  margin: 0;
}
.pc-weekly-entry__desc {
  color: var(--pc-fg-secondary);
  font-size: 13.5px;
  line-height: 1.65;
  margin: 0;
}
.pc-weekly-entry__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: var(--w-label) 11px/1 var(--font-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-mainline_invest);
  margin-top: 8px;
}

.pc-weekly-mini-heatmap {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.pc-weekly-mini-day {
  display: flex; flex-direction: column;
  gap: 3px;
  align-items: stretch;
}
.pc-weekly-mini-day__label {
  text-align: center;
  font: var(--w-label) 9.5px/1 var(--font-mono);
  letter-spacing: 0.10em;
  color: var(--pc-fg-muted);
  margin-bottom: 4px;
  text-transform: uppercase;
}
.pc-weekly-mini-cell {
  height: 18px;
  border-radius: 3px;
  background: var(--pc-bg-surface-3);
}

/* ====================================================================
 * 占位 / 轻量 S9（如果预算不清）
 * ==================================================================== */

.pc-budget-light {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.pc-budget-row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(140px, 0.6fr) auto;
  gap: 24px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--pc-line-hairline);
}
.pc-budget-row:last-child { border-bottom: none; }

.pc-budget-row__name { display: flex; flex-direction: column; gap: 6px; }
.pc-budget-row__title { font-family: var(--font-display); font-size: 16px; font-weight: 500; }
.pc-budget-row__source { font: var(--w-label) 10px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--pc-fg-muted); display: inline-flex; align-items: center; gap: 6px; }
.pc-budget-row__source-icon { color: var(--c-mainline_invest); font-size: 12px; }

.pc-budget-row__bar {
  height: 24px;
  background: var(--pc-bg-surface-2);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--pc-line-hairline);
}
.pc-budget-row__bar-actual {
  height: 100%;
  background: linear-gradient(90deg, var(--c-mainline_invest), color-mix(in srgb, var(--c-mainline_invest) 75%, var(--c-asset_capsule)));
  position: relative;
}
.pc-budget-row__bar-marker {
  position: absolute;
  top: -2px; bottom: -2px;
  width: 2px;
  background: var(--pc-fg-primary);
  border-radius: 1px;
  z-index: 2;
}
.pc-budget-row__bar-marker::after {
  content: attr(data-budget) "分";
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  font: var(--w-label) 9.5px/1 var(--font-mono);
  letter-spacing: 0.10em;
  color: var(--pc-fg-secondary);
  white-space: nowrap;
}

.pc-budget-row__status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 999px;
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.pc-budget-row__status--hit {
  background: color-mix(in srgb, var(--c-mainline_invest) 14%, transparent);
  color: var(--c-mainline_invest);
  border: 1px solid color-mix(in srgb, var(--c-mainline_invest) 30%, transparent);
}
.pc-budget-row__status--miss {
  background: color-mix(in srgb, var(--c-drift_binding) 14%, transparent);
  color: var(--c-drift_binding);
  border: 1px solid color-mix(in srgb, var(--c-drift_binding) 30%, transparent);
}

.pc-budget-future {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 22px;
  background: var(--pc-bg-surface-2);
  border: 1px dashed var(--pc-line-soft);
  border-radius: 12px;
  margin-top: 12px;
}
.pc-budget-future__text { display: flex; flex-direction: column; gap: 4px; }
.pc-budget-future__label { font: var(--w-label) 10.5px/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-asset_capsule); }
.pc-budget-future__detail { font-size: 13px; color: var(--pc-fg-secondary); }
.pc-budget-future__cta {
  padding: 9px 18px;
  border: 1px solid var(--c-mainline_invest);
  color: var(--c-mainline_invest);
  border-radius: 8px;
  font: var(--w-label) 11px/1 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.pc-budget-future__cta:hover { background: color-mix(in srgb, var(--c-mainline_invest) 10%, transparent); }

/* ====================================================================
 * 设置抽屉（极简）
 * ==================================================================== */

.pc-settings-mask {
  position: fixed; inset: 0;
  background: rgba(4, 6, 10, 0.65);
  opacity: 0;
  pointer-events: none;
  transition: opacity 280ms cubic-bezier(.23,1,.32,1);
  z-index: 199;
}
.pc-settings-mask.is-open { opacity: 1; pointer-events: auto; }

.pc-settings {
  position: fixed;
  top: 0; right: 0;
  width: min(420px, 92vw);
  height: 100vh;
  background: var(--pc-bg-surface-1);
  border-left: 1px solid var(--pc-line-soft);
  box-shadow: -16px 0 48px rgba(0, 0, 0, 0.5);
  transform: translateX(100%);
  transition: transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
  z-index: 200;
  display: flex;
  flex-direction: column;
}
.pc-settings.is-open { transform: translateX(0); }

.pc-settings__head {
  padding: 28px 32px 20px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 1px solid var(--pc-line-hairline);
}
.pc-settings__title { font-family: var(--font-display); font-weight: 500; font-size: 18px; letter-spacing: 0; margin: 0; }
.pc-settings__sub { font: var(--w-label) 10px/1.4 var(--font-mono); letter-spacing: 0.18em; text-transform: uppercase; color: var(--pc-fg-muted); margin-top: 4px; }
.pc-settings__close {
  width: 32px; height: 32px;
  border-radius: 8px;
  border: 1px solid var(--pc-line-hairline);
  color: var(--pc-fg-secondary);
  font-size: 14px;
}
.pc-settings__close:hover { color: var(--pc-fg-primary); border-color: var(--pc-line-soft); }

.pc-settings__body {
  padding: 24px 32px 32px;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.pc-settings__group { display: flex; flex-direction: column; gap: 14px; }
.pc-settings__label {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
}

.pc-settings__style-picker {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.pc-settings__style-card {
  padding: 18px;
  border-radius: 12px;
  border: 1px solid var(--pc-line-hairline);
  background: var(--pc-bg-surface-2);
  cursor: pointer;
  text-align: left;
  transition: border-color 220ms cubic-bezier(.23,1,.32,1), box-shadow 240ms cubic-bezier(.23,1,.32,1), background 220ms cubic-bezier(.23,1,.32,1);
}
.pc-settings__style-card:hover { border-color: var(--pc-line-soft); }
.pc-settings__style-card--active { border-color: var(--c-mainline_invest); box-shadow: 0 0 0 1px var(--c-mainline_invest), 0 0 24px -8px var(--c-mainline_invest); }
.pc-settings__style-preview {
  width: 100%; height: 56px;
  border-radius: 8px;
  margin-bottom: 12px;
  position: relative;
  overflow: hidden;
}
.pc-settings__style-preview--dark {
  background: linear-gradient(135deg, #04060A, #131822);
}
.pc-settings__style-preview--dark::after { content: ""; position: absolute; left: 12px; top: 12px; width: 32px; height: 32px; border-radius: 50%; background: radial-gradient(circle, #E8A838 0%, transparent 70%); }
.pc-settings__style-preview--warm {
  background: linear-gradient(135deg, #F0EADA, #FCF8EC);
}
.pc-settings__style-preview--warm::after { content: ""; position: absolute; left: 12px; top: 12px; width: 32px; height: 32px; border-radius: 50%; background: radial-gradient(circle, #A85F4C 0%, transparent 70%); opacity: 0.5; }
.pc-settings__style-name { font-family: var(--font-display); font-weight: 500; font-size: 14px; color: var(--pc-fg-primary); }
.pc-settings__style-sub { font-size: 11.5px; color: var(--pc-fg-muted); margin-top: 2px; }

.pc-settings__info {
  background: var(--pc-bg-surface-2);
  border: 1px solid var(--pc-line-hairline);
  border-radius: 12px;
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 10px;
}
.pc-settings__info-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}
.pc-settings__info-key { color: var(--pc-fg-muted); font: var(--w-label) 10.5px/1.4 var(--font-mono); letter-spacing: 0.10em; text-transform: uppercase; flex-shrink: 0; }
.pc-settings__info-val { color: var(--pc-fg-primary); text-align: right; }

/* ====================================================================
 * 页脚
 * ==================================================================== */

.pc-footer {
  margin-top: 96px;
  padding: 32px 0 24px;
  border-top: 1px solid var(--pc-line-hairline);
  max-width: var(--pc-shell-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}

.pc-footer__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-bottom: 28px;
}
@media (max-width: 760px) { .pc-footer__inner { grid-template-columns: 1fr; } }

.pc-footer__group { display: flex; flex-direction: column; gap: 10px; }
.pc-footer__title { font: var(--w-label) 10px/1 var(--font-mono); letter-spacing: 0.18em; text-transform: uppercase; color: var(--pc-fg-muted); }
.pc-footer__body { font-size: 12.5px; color: var(--pc-fg-secondary); line-height: 1.7; }
.pc-footer__body strong { color: var(--pc-fg-primary); font-weight: 500; }

.pc-footer__legal {
  padding-top: 20px;
  border-top: 1px solid var(--pc-line-hairline);
  display: flex; justify-content: space-between;
  font: var(--w-label) 10px/1.4 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
}
@media (max-width: 540px) { .pc-footer__legal { flex-direction: column; gap: 6px; } }

/* ====================================================================
 * 隐私 / 数据来源 / 设置 详情页（次级 tab）
 * ==================================================================== */

.pc-info-page {
  max-width: 720px;
  margin: 16px auto 0;
  padding: 32px 0;
}
.pc-info-page__eyebrow {
  font: var(--w-label) 10.5px/1 var(--font-mono);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pc-fg-muted);
  margin-bottom: 16px;
}
.pc-info-page__title {
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  margin: 0 0 16px;
}
.pc-info-page__lead {
  font-size: 16px;
  color: var(--pc-fg-secondary);
  line-height: 1.65;
  margin: 0 0 32px;
  max-width: 600px;
}

.pc-info-block {
  padding: 24px 28px;
  background: var(--pc-bg-surface-1);
  border: 1px solid var(--pc-line-hairline);
  border-radius: 8px;
  margin-bottom: 16px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.pc-info-block__title {
  display: flex; align-items: baseline; gap: 14px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 16px;
  margin: 0 0 12px;
}
.pc-info-block__title::before {
  content: ""; display: inline-block;
  width: 16px; height: 1px;
  background: var(--c-mainline_invest);
  vertical-align: middle;
}
.pc-info-block__body {
  font-size: 13.5px;
  color: var(--pc-fg-secondary);
  line-height: 1.75;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.pc-info-block__body ul { padding-left: 20px; margin: 8px 0; }
.pc-info-block__body li { padding: 3px 0; overflow-wrap: anywhere; }
.pc-info-block__body code {
  font-family: var(--font-mono);
  background: var(--pc-bg-surface-2);
  padding: 1px 5px;
  border-radius: 3px;
  font-size: 11.5px;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ====================================================================
 * 复用 visual lab 组件覆盖 · 让它们融入 product 主题
 * ==================================================================== */

.pc-module-card .avl-svg text { font-family: var(--font-body); }

/* S3 V4 在 product card 内的覆盖 */
.pc-module-card .avl-s3v4-svg-wrap { padding: 0; }
.pc-module-card .avl-s3v4-insights { background: var(--pc-bg-surface-2); border-color: var(--pc-line-hairline); }

/* S5S6 V4 */
.pc-module-card .avl-s56v4-coverage { background: var(--pc-bg-surface-2); border-color: var(--pc-line-hairline); }
.pc-module-card .avl-s56v4-control { background: transparent; border-color: var(--pc-line-hairline); }
.pc-module-card .avl-s56v4-detail { background: var(--pc-bg-surface-2); border-color: var(--pc-line-hairline); }

/* S10 V3 在 product card 内的覆盖 */
.pc-module-card .avl-s10v3-stat,
.pc-module-card .avl-s10v3-svg-wrap,
.pc-module-card .avl-s10v3-report { background: var(--pc-bg-surface-2); border-color: var(--pc-line-hairline); }

/* S7 V4 */
.pc-module-card .avl-s7v4-summary,
.pc-module-card .avl-s7v4-state-card { background: var(--pc-bg-surface-2); border-color: var(--pc-line-hairline); }

/* PC 页面下隐藏 S7 V4 的 sub-tab 切换条 + 描述行 ·
 * 防止用户在 PC 切 A/B/C 时往 visual lab 的 localStorage key
 * 'avl.s7v4.variant' 写值，污染 visual lab 默认子变体。
 * PC 端 S7 已锁定为 C 阈值状态，sub tab 在产品页里也不需要。 */
.pc-module-card .avl-s7v4-tabs,
.pc-module-card .avl-s7v4-desc { display: none; }

/* 滚动条 · 暗色模式产品级 */
[data-style="dark-lab"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-style="dark-lab"] ::-webkit-scrollbar-track { background: transparent; }
[data-style="dark-lab"] ::-webkit-scrollbar-thumb { background: var(--pc-line-soft); border-radius: 999px; border: 2px solid var(--pc-bg-base); }
[data-style="dark-lab"] ::-webkit-scrollbar-thumb:hover { background: var(--pc-line-strong); }

/* tooltip 复用 visual lab 的，但确保在 product 主题下不出戏 */
.avl-tooltip { background: var(--pc-fg-primary); color: var(--pc-bg-base); border: 1px solid var(--pc-line-strong); }
