/* Hallmark · genre: modern-minimal · macrostructure: Operational Signal Grid · theme: custom triad (玄枢 / 天机 / 归藏) · tone: technical-mystic · nav: N9 adaptive mobile tabs · footer: none · contrast: pass (40–41) · responsive: pass (34, 49–57) · slop: pass (1–57) */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html {
  overflow-x: clip;
  background-color: var(--color-paper-2);
  background-image: var(--surface-pattern);
  background-size: var(--surface-pattern-size);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

body {
  min-width: 0;
  min-height: 100svh;
  margin: 0;
  overflow-x: clip;
  background-color: var(--color-paper-2);
  background-image: var(--surface-pattern);
  background-size: var(--surface-pattern-size);
  color: var(--color-ink);
  line-height: 1.58;
}

button, input, select, summary { font: inherit; }
button, summary, label[for] { cursor: pointer; touch-action: manipulation; }
button { border: 0; }
svg { display: block; }

:focus-visible {
  outline: var(--rule-strong) solid var(--color-focus);
  outline-offset: var(--space-2xs);
}

.skip-link {
  position: fixed;
  inset-block-start: var(--space-xs);
  inset-inline-start: var(--space-xs);
  z-index: calc(var(--z-sticky) + 1);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-control);
  background: var(--color-ink);
  color: var(--color-paper);
  font-size: var(--text-sm);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.sr-only {
  position: absolute;
  width: var(--rule-thin);
  height: var(--rule-thin);
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.app {
  width: min(100%, var(--page-width));
  min-height: 100svh;
  margin-inline: auto;
  background: var(--color-paper);
}

.appbar {
  position: sticky;
  inset-block-start: 0;
  z-index: var(--z-sticky);
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--appbar-height);
  padding-inline: max(var(--space-md), env(safe-area-inset-left), env(safe-area-inset-right));
  border-block-end: var(--rule-thin) solid var(--color-rule);
  background: var(--color-paper-94);
  backdrop-filter: blur(12px);
}

.brand { display: flex; align-items: center; min-width: 0; gap: var(--space-xs); }
.brand__sigil { width: 1.4rem; height: 1.4rem; color: var(--color-mystic); flex: 0 0 auto; }
.brand__name {
  margin: 0;
  font-family: var(--font-wordmark);
  font-size: 1.25rem;
  font-weight: 750;
  letter-spacing: -0.035em;
  line-height: 1;
}
.brand__type { color: var(--color-muted); font-size: var(--text-xs); letter-spacing: 0.06em; }

.appbar__actions { display: flex; align-items: center; flex: 0 0 auto; gap: var(--space-2xs); }

.icon-button {
  display: grid;
  place-items: center;
  width: var(--control-height);
  height: var(--control-height);
  padding: 0;
  border: var(--rule-thin) solid transparent;
  border-radius: var(--radius-round);
  background: transparent;
  color: var(--color-ink-2);
  transition: color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}
.icon-button svg { width: 1.125rem; height: 1.125rem; }
.icon-button:active { transform: translateY(1px); }
.icon-button:disabled { cursor: not-allowed; opacity: 0.48; }
.icon-button[data-state="loading"] svg { animation: spin 900ms linear infinite; }
.icon-button[data-state="success"] { color: var(--color-success); border-color: var(--color-rule); }
.icon-button[data-state="error"] { color: var(--color-error); border-color: var(--color-rule); }
@keyframes spin { to { transform: rotate(1turn); } }

/* Hallmark · component: theme switcher · genre: modern-minimal · theme: custom triad
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (40–41)
 */
.theme-picker { position: relative; }
.theme-trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: var(--control-height);
  height: var(--control-height);
  padding-inline: var(--space-sm);
  border: var(--rule-thin) solid transparent;
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--color-ink-2);
  transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
  gap: var(--space-xs);
  white-space: nowrap;
}
.theme-trigger svg { width: 1.2rem; height: 1.2rem; flex: 0 0 auto; }
.theme-trigger__label { display: none; font-size: var(--text-xs); font-weight: 650; }
.theme-picker[data-open="true"] .theme-trigger { border-color: var(--color-rule-strong); background: var(--color-paper-2); color: var(--color-accent); }
.theme-trigger:active { transform: translateY(var(--rule-thin)); }
.theme-trigger:disabled { cursor: not-allowed; opacity: 0.55; }
.theme-trigger[data-state="loading"] svg { animation: spin 900ms linear infinite; }
.theme-trigger[data-state="error"] { border-color: var(--color-error); color: var(--color-error); }
.theme-trigger[data-state="success"] { border-color: var(--color-success); color: var(--color-success); }

.theme-menu {
  position: absolute;
  inset-block-start: calc(100% + var(--space-xs));
  inset-inline-end: 0;
  z-index: var(--z-dropdown);
  width: min(20rem, calc(100vw - var(--space-xl)));
  max-height: calc(100svh - var(--appbar-height) - var(--space-xl));
  padding: var(--space-sm);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: var(--rule-thin) solid var(--color-rule-strong);
  border-radius: var(--radius-panel);
  background: var(--color-paper);
  color: var(--color-ink);
  box-shadow: var(--shadow-panel);
  animation: theme-menu-in var(--dur-short) var(--ease-out) both;
}
.theme-menu[data-closing="true"] { pointer-events: none; animation: theme-menu-out var(--dur-micro) var(--ease-in) both; }
.theme-menu__head { display: grid; padding: var(--space-xs) var(--space-xs) var(--space-sm); gap: var(--space-3xs); }
.theme-menu__head strong { font-family: var(--font-display); font-size: var(--text-base); }
.theme-menu__head span { color: var(--color-muted); font-size: var(--text-xs); }
.theme-option {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  min-height: var(--control-height);
  padding: var(--space-xs);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  background: var(--color-paper);
  color: var(--color-ink);
  text-align: start;
  transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
  gap: var(--space-sm);
}
.theme-option:active { transform: translateY(var(--rule-thin)); }
.theme-option:disabled { cursor: not-allowed; opacity: 0.55; }
.theme-option[data-state="loading"] .theme-option__preview { animation: spin 900ms linear infinite; }
.theme-option[data-state="error"] { color: var(--color-error); }
.theme-option[data-state="success"], .theme-option[aria-checked="true"] { background: var(--color-accent-soft); color: var(--color-ink); }
.theme-option__preview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 3.5rem; height: 2.25rem; overflow: hidden; border: var(--rule-thin) solid var(--color-rule-strong); background: var(--preview-paper); gap: var(--rule-thin); }
.theme-option__preview i { display: block; align-self: end; height: var(--preview-height); background: var(--preview-ink); }
.theme-option__preview i:nth-child(2) { --preview-height: 70%; background: var(--preview-accent); }
.theme-option__preview i:nth-child(3) { --preview-height: 40%; }
.theme-option__preview--xuanshu { --preview-paper: var(--theme-xuanshu-paper); --preview-ink: var(--theme-xuanshu-ink); --preview-accent: var(--theme-xuanshu-accent); --preview-height: 50%; border-radius: var(--space-2xs); }
.theme-option__preview--tianji { --preview-paper: var(--theme-tianji-paper); --preview-ink: var(--theme-tianji-ink); --preview-accent: var(--theme-tianji-accent); --preview-height: 55%; border-radius: var(--space-sm); }
.theme-option__preview--guizang { --preview-paper: var(--theme-guizang-paper); --preview-ink: var(--theme-guizang-ink); --preview-accent: var(--theme-guizang-accent); --preview-height: 80%; border-radius: 0; }
.theme-option__copy { display: grid; min-width: 0; gap: var(--space-3xs); }
.theme-option__copy strong { font-size: var(--text-sm); }
.theme-option__copy small { overflow: hidden; color: var(--color-muted); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.theme-option__mark { color: var(--color-accent); font-size: var(--text-xs); font-weight: 750; opacity: 0; }
.theme-option[aria-checked="true"] .theme-option__mark { opacity: 1; }
@keyframes theme-menu-in { from { opacity: 0; transform: translateY(calc(var(--space-2xs) * -1)); } to { opacity: 1; transform: translateY(0); } }
@keyframes theme-menu-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(calc(var(--space-2xs) * -1)); } }
@keyframes theme-settle { from { opacity: 0.72; } to { opacity: 1; } }
html[data-theme-transition="true"] .app { animation: theme-settle var(--dur-short) var(--ease-out) both; }

.workspace {
  min-width: 0;
  padding: var(--space-lg) max(var(--space-md), env(safe-area-inset-left), env(safe-area-inset-right)) calc(6rem + env(safe-area-inset-bottom));
}

.research-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  margin-block-end: var(--space-xl);
  border-block: var(--rule-thin) solid var(--color-rule-strong);
  gap: var(--space-xs);
}
.research-control { display: grid; min-width: 0; padding-block: var(--space-sm); gap: var(--space-2xs); }
.research-control span { color: var(--color-muted); font-size: var(--text-xs); white-space: nowrap; }
.research-control select {
  width: 100%;
  min-width: 0;
  height: var(--control-height);
  padding-inline: var(--space-xs) 1.5rem;
  overflow: hidden;
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-control);
  outline: var(--rule-strong) solid transparent;
  outline-offset: var(--rule-thin);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: var(--text-xs);
  font-weight: 600;
  text-overflow: ellipsis;
}
.research-control select:focus-visible { outline-color: var(--color-focus); }
.research-control select:active { background: var(--color-paper-2); }
.research-control select:disabled { cursor: not-allowed; opacity: 0.55; color: var(--color-muted); }
.view { min-width: 0; animation: view-in var(--dur-short) var(--ease-out) both; }
@keyframes view-in { from { opacity: 0; } to { opacity: 1; } }

.screen-head { display: grid; margin-block-end: var(--space-lg); gap: var(--space-2xs); }
.screen-head__context { margin: 0; color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }
.screen-head h1 {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: var(--text-xl);
  font-weight: 650;
  letter-spacing: -0.04em;
  line-height: 1.25;
}

.hero {
  padding: var(--space-lg);
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-card);
  background: var(--color-paper);
}
.hero__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); }
.eyebrow {
  color: var(--color-accent);
  font-size: var(--text-xs);
  font-weight: 650;
  letter-spacing: 0.12em;
}
.quiet-time { color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; text-align: end; }
.hero__main { display: flex; align-items: end; justify-content: space-between; margin-block: var(--space-lg) var(--space-sm); gap: var(--space-md); }
.hero__word {
  margin: 0;
  font-family: var(--font-wordmark);
  font-size: var(--text-display);
  font-weight: 600;
  letter-spacing: -0.08em;
  line-height: 1;
}
.hero__prior { margin: 0; color: var(--color-accent); font-size: 1.75rem; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1; }
.hero__prior small { display: block; margin-block-start: var(--space-xs); color: var(--color-muted); font-size: var(--text-xs); font-weight: 400; letter-spacing: 0.04em; text-align: end; }
.hero__summary { max-width: 45ch; margin: 0; color: var(--color-ink-2); font-size: 0.9375rem; }
.decision-hero__scope { color: var(--color-accent); font-size: var(--text-xs); font-weight: 650; letter-spacing: 0.08em; }

.metric-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: var(--space-lg) var(--space-xl);
  border-block: var(--rule-thin) solid var(--color-rule);
}
.metric { display: grid; min-width: 0; padding: var(--space-sm) var(--space-xs); gap: var(--space-3xs); }
.metric:first-child { padding-inline-start: 0; }
.metric + .metric { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.metric__label { overflow-wrap: anywhere; color: var(--color-muted); font-size: var(--text-xs); letter-spacing: 0.035em; }
.metric__value { min-width: 0; overflow-wrap: anywhere; font-size: 1rem; font-weight: 650; font-variant-numeric: tabular-nums; line-height: 1.35; }

.section { min-width: 0; padding-block: var(--space-lg); border-block-start: var(--rule-thin) solid var(--color-rule-strong); }
.section:first-of-type { border-block-start: 0; }
.section__head { display: grid; margin-block-end: var(--space-md); gap: var(--space-2xs); }
.section h2 { margin: 0; font-size: var(--text-md); font-weight: 650; letter-spacing: -0.025em; }
.icon-heading { display: flex; align-items: center; gap: var(--space-xs); }
.icon-heading svg { width: 1.15rem; height: 1.15rem; color: var(--color-mystic); flex: 0 0 auto; }
.section__meta { color: var(--color-muted); font-size: var(--text-xs); text-align: start; }
.section__lede { margin: calc(var(--space-xs) * -1) 0 var(--space-md); color: var(--color-muted); font-size: var(--text-sm); }

.ai-synthesis__headline { display: block; color: var(--color-accent); font-family: var(--font-display); font-size: 1.4rem; font-weight: 550; letter-spacing: 0.04em; }
.ai-synthesis__summary { max-width: 48ch; margin: var(--space-sm) 0 0; color: var(--color-ink-2); font-size: var(--text-sm); line-height: 1.75; }
.ai-synthesis__focus { display: flex; flex-wrap: wrap; padding: 0; margin: var(--space-md) 0 0; list-style: none; gap: var(--space-xs); }
.ai-synthesis__focus li { padding: var(--space-2xs) var(--space-sm); border: var(--rule-thin) solid var(--color-rule); border-radius: var(--radius-round); color: var(--color-muted); font-size: var(--text-xs); }

.membership-bars { display: grid; gap: var(--space-sm); }
.membership-item { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) 2rem; align-items: center; gap: var(--space-sm); }
.membership-label, .membership-value { font-size: var(--text-sm); }
.membership-value { color: var(--color-accent); font-variant-numeric: tabular-nums; text-align: end; }
.membership-track { display: block; height: var(--space-2xs); background: var(--color-paper-3); }
.membership-track span { display: block; width: var(--membership, 0%); height: 100%; background: var(--color-accent); }

.decision-list { display: grid; margin: 0; }
.decision-list div { display: grid; grid-template-columns: 5rem minmax(0, 1fr); padding-block: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-md); }
.decision-list div:first-child { border-block-start: 0; }
.decision-list dt { color: var(--color-muted); font-size: var(--text-xs); }
.decision-list dd { margin: 0; overflow-wrap: anywhere; font-size: var(--text-sm); font-weight: 600; }

.layer-list, .history-list, .plain-list { padding: 0; margin: 0; list-style: none; }
.layer { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; align-items: center; min-width: 0; padding-block: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-sm); }
.layer:first-child { border-block-start: 0; }
.layer__label { color: var(--color-muted); font-size: var(--text-xs); letter-spacing: 0.06em; }
.layer__main { min-width: 0; overflow-wrap: anywhere; font-size: var(--text-sm); font-weight: 600; }
.layer__state { color: var(--color-accent); font-size: var(--text-xs); white-space: nowrap; }
.layer__state[data-muted="true"] { color: var(--color-muted); }

.notice { margin: var(--space-md) 0 0; padding-inline-start: var(--space-sm); border-inline-start: var(--rule-strong) solid var(--color-rule-strong); color: var(--color-muted); font-size: var(--text-xs); }

.temporal-brief { padding-block-end: var(--space-sm); }
.temporal-hero { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; padding-block: var(--space-sm); border-block: var(--rule-thin) solid var(--color-rule); gap: var(--space-md); }
.temporal-hero__term { color: var(--color-accent); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; letter-spacing: 0.08em; white-space: nowrap; }
.temporal-hero__copy { min-width: 0; }
.temporal-hero__copy > span { display: block; font-size: var(--text-sm); font-weight: 650; }
.temporal-hero__copy p { margin: var(--space-2xs) 0 0; color: var(--color-muted); font-size: var(--text-xs); line-height: 1.55; }
.temporal-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.temporal-facts > div { min-width: 0; padding: var(--space-sm) var(--space-xs) 0; }
.temporal-facts > div:first-child { padding-inline-start: 0; }
.temporal-facts > div + div { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.temporal-facts dt { color: var(--color-muted); font-size: var(--text-xs); }
.temporal-facts dd { min-width: 0; margin: var(--space-2xs) 0 0; overflow-wrap: anywhere; font-size: var(--text-sm); font-weight: 650; }

.pillar-grid { border-block: var(--rule-thin) solid var(--color-rule); }
.pillar-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.pillar-table th, .pillar-table td { min-width: 0; padding: var(--space-xs) var(--space-2xs); border-inline-start: var(--rule-thin) solid var(--color-rule); text-align: center; }
.pillar-table th:first-child, .pillar-table td:first-child { width: 3.25rem; border-inline-start: 0; }
.pillar-table thead th { color: var(--color-muted); font-size: var(--text-xs); font-weight: 500; }
.pillar-table tbody tr + tr { border-block-start: var(--rule-thin) solid var(--color-rule); }
.pillar-table tbody th { color: var(--color-muted); font-size: var(--text-xs); font-weight: 500; }
.pillar-table__god { font-size: var(--text-xs); font-weight: 650; }
.pillar-table__character { display: inline-block; font-family: var(--font-display); font-size: var(--text-lg); font-weight: 800; line-height: 1; }
.element-tone[data-element="木"] { color: var(--color-element-wood); }
.element-tone[data-element="火"] { color: var(--color-element-fire); }
.element-tone[data-element="土"] { color: var(--color-element-earth); }
.element-tone[data-element="金"] { color: var(--color-element-metal); }
.element-tone[data-element="水"] { color: var(--color-element-water); }
.bar-fill[data-element="木"] { background-color: var(--color-element-wood); }
.bar-fill[data-element="火"] { background-color: var(--color-element-fire); }
.bar-fill[data-element="土"] { background-color: var(--color-element-earth); }
.bar-fill[data-element="金"] { background-color: var(--color-element-metal); }
.bar-fill[data-element="水"] { background-color: var(--color-element-water); }

.time-details { padding-block: 0; }
.time-details > summary { display: flex; align-items: center; justify-content: space-between; min-height: var(--control-height); color: var(--color-ink-2); cursor: pointer; font-size: var(--text-sm); font-weight: 650; list-style: none; }
.time-details > summary::-webkit-details-marker { display: none; }
.time-details > summary::after { content: "＋"; color: var(--color-accent); font-size: var(--text-md); font-weight: 400; }
.time-details[open] > summary::after { content: "－"; }
.time-details > summary:hover { color: var(--color-accent); }
.time-details > summary:active { transform: translateY(1px); }
.time-details > summary:focus-visible { outline: var(--rule-strong) solid var(--color-focus); outline-offset: var(--space-2xs); }
.time-details__body { padding-block: var(--space-sm) var(--space-md); border-block-start: var(--rule-thin) solid var(--color-rule); }
.time-detail-block + .time-detail-block { padding-block-start: var(--space-lg); }

.term-line { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: var(--space-md); }
.term { min-width: 0; }
.term:last-child { text-align: end; }
.term__name { display: block; font-weight: 650; }
.term__time { color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.term-progress { --term-progress: 0; margin-block-start: var(--space-md); }
.term-progress__track { position: relative; display: block; height: var(--rule-strong); background: var(--color-rule); }
.term-progress__fill { display: block; width: calc(var(--term-progress) * 100%); height: 100%; background: var(--color-accent); }
.term-progress__marker { position: absolute; inset-block-start: 50%; inset-inline-start: calc(var(--term-progress) * 100%); width: 0.625rem; height: 0.625rem; border: var(--rule-strong) solid var(--color-paper); border-radius: var(--radius-round); background: var(--color-accent); transform: translate(-50%, -50%); }

.bar-list { display: grid; gap: var(--space-sm); }
.bar-row { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) 2.5rem; align-items: center; gap: var(--space-sm); font-size: var(--text-sm); }
.bar-track { height: 0.25rem; overflow: hidden; background: var(--color-paper-3); }
.bar-fill { display: block; width: calc(var(--value) * 100%); height: 100%; background: var(--color-accent); }
.bar-value { color: var(--color-muted); font-variant-numeric: tabular-nums; text-align: end; }

.dual-meter { display: grid; grid-template-columns: var(--yang, 50%) minmax(0, 1fr); height: 0.375rem; margin-block: var(--space-sm); overflow: hidden; background: var(--color-paper-3); }
.dual-meter span { background: var(--color-accent); }
.dual-copy { display: flex; justify-content: space-between; color: var(--color-muted); font-size: var(--text-xs); }

.gua-card { display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); align-items: center; padding: var(--space-md); border: var(--rule-thin) solid var(--color-rule); border-radius: var(--radius-panel); gap: var(--space-md); }
.gua-card__name { font-family: var(--font-display); font-size: 2rem; font-weight: 550; text-align: center; }
.gua-card__copy strong { display: block; font-size: var(--text-base); font-weight: 650; }
.gua-card__copy span { display: block; margin-block-start: var(--space-2xs); color: var(--color-muted); font-size: var(--text-xs); }

.method { border-block-start: var(--rule-thin) solid var(--color-rule); }
.method summary { min-height: var(--control-height); padding-block: var(--space-sm); color: var(--color-ink-2); font-size: var(--text-sm); font-weight: 600; }
.method summary:active { color: var(--color-accent); }
.method p, .method ul { margin: 0 0 var(--space-md); color: var(--color-muted); font-size: var(--text-xs); }
.method ul { padding-inline-start: 1.1rem; }

.section--first { padding-block-start: 0; border-block-start: 0; }
.method-list { border-block-end: var(--rule-thin) solid var(--color-rule); }
.method-filters { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-block-end: var(--space-md); border-block: var(--rule-thin) solid var(--color-rule); }
.method-filters button {
  min-width: 0;
  min-height: var(--control-height);
  padding-inline: var(--space-2xs);
  border-inline-start: var(--rule-thin) solid var(--color-rule);
  background: transparent;
  color: var(--color-muted);
  font-size: var(--text-xs);
  white-space: nowrap;
}
.method-filters button:first-child { border-inline-start: 0; }
.method-filters button[aria-pressed="true"] { background: var(--color-accent-soft); color: var(--color-ink); font-weight: 650; }
.method-filters button:active { color: var(--color-accent); }
.method-filters button:disabled { cursor: not-allowed; opacity: 0.55; }
.method-card { padding-block: var(--space-md); border-block-start: var(--rule-thin) solid var(--color-rule); }
.method-card:first-child { border-block-start-color: var(--color-rule-strong); }
.method-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-md); }
.method-card h3 { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: var(--text-base); font-weight: 650; }
.method-card__title { display: grid; grid-template-columns: auto minmax(0, 1fr); min-width: 0; gap: var(--space-3xs) var(--space-xs); }
.method-card__icon { grid-row: 1 / span 2; align-self: center; width: 1.35rem; height: 1.35rem; color: var(--color-mystic); }
.method-card__title h3, .method-card__group { grid-column: 2; }
.method-card__group { color: var(--color-muted); font-size: var(--text-xs); }
.method-card__state { flex: 0 0 auto; color: var(--color-accent); font-size: var(--text-xs); font-weight: 650; white-space: nowrap; }
.method-card__state[data-status="not_connected"],
.method-card__state[data-status="stale"] { color: var(--color-muted); }
.method-card__state[data-status="error"] { color: var(--color-error); }
.method-card__empty { margin: var(--space-sm) 0 0; color: var(--color-muted); font-size: var(--text-sm); }
.method-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: var(--space-md) 0 0; border-block-start: var(--rule-thin) solid var(--color-rule); }
.method-result { min-width: 0; padding-block: var(--space-sm); border-block-end: var(--rule-thin) solid var(--color-rule); }
.method-result:nth-child(odd) { padding-inline-end: var(--space-sm); }
.method-result:nth-child(even) { padding-inline-start: var(--space-sm); border-inline-start: var(--rule-thin) solid var(--color-rule); }
.method-result:last-child { grid-column: auto; }
.method-result dt { color: var(--color-muted); font-size: var(--text-xs); }
.method-result dd { min-width: 0; margin: var(--space-2xs) 0 0; overflow-wrap: anywhere; font-size: var(--text-sm); font-weight: 600; }

.detail-list { display: grid; margin: var(--space-md) 0 0; }
.detail-row { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); padding-block: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-md); }
.detail-row:first-child { border-block-start: 0; }
.detail-row dt { color: var(--color-muted); font-size: var(--text-xs); }
.detail-row dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: var(--text-sm); font-weight: 550; }

.data-status { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; padding: var(--space-md) 0; border-block: var(--rule-thin) solid var(--color-rule); gap: var(--space-md); }
.data-status strong { display: block; font-size: var(--text-sm); font-weight: 650; }
.data-status span { display: block; margin-block-start: var(--space-2xs); color: var(--color-muted); font-size: var(--text-xs); }
.status-word { color: var(--color-accent) !important; font-weight: 650; white-space: nowrap; }
.status-word[data-status="not_connected"], .status-word[data-status="stale"] { color: var(--color-muted) !important; }
.status-word[data-status="error"] { color: var(--color-error) !important; }

.chaos-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: var(--rule-thin) solid var(--color-rule); }
.chaos-item { display: grid; min-width: 0; padding: var(--space-sm); gap: var(--space-2xs); }
.chaos-item:nth-child(even) { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.chaos-item:nth-child(n + 3) { border-block-start: var(--rule-thin) solid var(--color-rule); }
.chaos-item__label { color: var(--color-muted); font-size: var(--text-xs); }
.chaos-item__value { font-size: var(--text-lg); font-variant-numeric: tabular-nums; line-height: 1.2; }
.chaos-item__state { color: var(--color-accent); font-size: var(--text-xs); }

.protocol-list { display: grid; margin: 0; }
.protocol-row { display: grid; grid-template-columns: minmax(0, 1fr); align-items: baseline; padding-block: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-3xs); }
.protocol-row:first-child { border-block-start: 0; }
.protocol-row dt { color: var(--color-muted); font-size: var(--text-sm); }
.protocol-row dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: var(--text-sm); font-weight: 650; text-align: start; }
.protocol-row dd[data-status="ready"] { color: var(--color-accent); }
.protocol-row dd[data-status="not_connected"], .protocol-row dd[data-status="stale"] { color: var(--color-muted); }
.protocol-row dd[data-status="error"] { color: var(--color-error); }

.history-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-width: 0; padding-block: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-md); }
.history-item:first-child { border-block-start: 0; }
.history-item__main { min-width: 0; }
.history-item__main strong { display: block; font-size: var(--text-sm); font-weight: 650; }
.history-item__main span { display: block; overflow-wrap: anywhere; color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.history-item__value { color: var(--color-accent); font-size: var(--text-sm); font-weight: 600; }

.tabbar {
  position: fixed;
  inset-inline: 0;
  inset-block-end: 0;
  z-index: var(--z-sticky);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  width: min(100%, var(--page-width));
  min-height: calc(4.25rem + env(safe-area-inset-bottom));
  margin-inline: auto;
  padding: 0 max(var(--space-xs), env(safe-area-inset-left), env(safe-area-inset-right)) env(safe-area-inset-bottom);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  background: var(--color-paper-96);
  backdrop-filter: blur(14px);
}
.tab {
  position: relative;
  display: grid;
  place-content: center;
  justify-items: center;
  min-width: 0;
  min-height: 3.75rem;
  padding: var(--space-xs) var(--space-2xs);
  background: transparent;
  color: var(--color-muted);
  gap: var(--space-2xs);
}
.tab::before { content: ""; position: absolute; inset-block-start: -1px; width: 1.5rem; height: var(--rule-strong); background: transparent; }
.tab svg { width: 1.15rem; height: 1.15rem; }
.tab span { overflow: hidden; font-size: var(--text-xs); font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.tab[aria-selected="true"] { color: var(--color-mystic); }
.tab[aria-selected="true"]::before { background: var(--color-seal); }
.tab:active { color: var(--color-accent); }
.tab:disabled { cursor: not-allowed; opacity: 0.55; color: var(--color-muted); }

.market-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  margin-block-end: var(--space-xs);
  border-block: var(--rule-thin) solid var(--color-rule-strong);
  gap: var(--space-md);
}
.universe-control { min-width: 0; flex: 1 1 auto; }
.universe-control select {
  width: 100%;
  min-width: 0;
  height: var(--control-height);
  padding: 0 1.75rem 0 0;
  overflow: hidden;
  border: var(--rule-thin) solid transparent;
  outline: var(--rule-strong) solid transparent;
  outline-offset: var(--rule-thin);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: var(--text-md);
  font-weight: 700;
  text-overflow: ellipsis;
}
.universe-control select:focus-visible { outline-color: var(--color-focus); }
.universe-control select:active { background: var(--color-paper-2); }
.universe-control select:disabled { cursor: not-allowed; opacity: 0.55; }
.universe-control select[data-state="loading"] { color: var(--color-muted); }
.universe-control select[data-state="error"] { border-color: var(--color-error); }
.universe-control select[data-state="success"] { border-color: var(--color-success); }
.session-state {
  flex: 0 0 auto;
  color: var(--color-muted);
  font-size: var(--text-sm);
  font-weight: 700;
  white-space: nowrap;
}
.session-state[data-session="open"] { color: var(--color-accent); }
.freshness-line {
  margin: 0 0 var(--space-lg);
  overflow-wrap: anywhere;
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
}
.screen-head--compact { margin-block-end: var(--space-md); }

.strategy-hero { padding: var(--space-lg) 0 var(--space-xl); border-inline: 0; border-radius: 0; border-color: var(--color-rule-strong); }
.strategy-hero .hero__word { margin: var(--space-lg) 0 var(--space-sm); }
.strategy-action { margin: 0; color: var(--color-ink-2); font-size: var(--text-base); }
.strategy-action strong { color: var(--color-accent); font-weight: 700; }
.strategy-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block-start: var(--space-lg);
  border-block: var(--rule-thin) solid var(--color-rule);
}
.strategy-kpis div { display: grid; min-width: 0; padding: var(--space-sm) var(--space-xs); gap: var(--space-3xs); }
.strategy-kpis div:first-child { padding-inline-start: 0; }
.strategy-kpis div + div { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.strategy-kpis span { color: var(--color-muted); font-size: var(--text-xs); }
.strategy-kpis strong { min-width: 0; overflow-wrap: anywhere; font-size: var(--text-base); font-variant-numeric: tabular-nums; }
.strategy-change { display: flex; flex-wrap: wrap; justify-content: space-between; margin-block-start: var(--space-md); color: var(--color-muted); font-size: var(--text-xs); gap: var(--space-xs) var(--space-md); }
.strategy-layers { display: grid; border-block: var(--rule-thin) solid var(--color-rule); }
.strategy-layer { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding-block: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-md); }
.strategy-layer:first-child { border-block-start: 0; }
.strategy-layer__name { color: var(--color-muted); font-size: var(--text-sm); }
.strategy-layer__value { font-size: var(--text-sm); white-space: nowrap; }
.strategy-explanation .section__lede { max-width: 52ch; margin-block: 0 var(--space-md); color: var(--color-ink-2); line-height: 1.75; }

.quote-list { display: grid; border-block: var(--rule-thin) solid var(--color-rule); }
.quote-row {
  display: grid;
  grid-template-columns: minmax(5.25rem, 1.2fr) minmax(4.25rem, 0.8fr) minmax(3.75rem, 0.7fr);
  align-items: baseline;
  min-width: 0;
  padding-block: var(--space-sm);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  gap: var(--space-xs);
}
.quote-row:first-child { border-block-start: 0; }
.quote-row__name { min-width: 0; overflow-wrap: anywhere; font-size: var(--text-sm); }
.quote-row__price, .quote-row__change { font-variant-numeric: tabular-nums; text-align: end; }
.quote-row__price { font-size: var(--text-sm); }
.quote-row__change { font-size: var(--text-sm); font-weight: 700; }
.quote-row[data-direction="up"] .quote-row__change { color: var(--color-error); }
.quote-row[data-direction="down"] .quote-row__change { color: var(--color-success); }
.quote-row__average { grid-column: 1 / -1; color: var(--color-muted); font-size: var(--text-xs); }

.market-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-block: var(--rule-thin) solid var(--color-rule); }
.market-data-grid > div { display: grid; min-width: 0; padding: var(--space-sm); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-2xs); }
.market-data-grid > div:nth-child(-n + 2) { border-block-start: 0; }
.market-data-grid > div:nth-child(even) { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.market-data-grid dt { color: var(--color-muted); font-size: var(--text-xs); }
.market-data-grid dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: var(--text-base); font-weight: 700; font-variant-numeric: tabular-nums; }
.market-data-detail { overflow-wrap: anywhere; color: var(--color-muted); font-size: var(--text-xs); }

.signal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: var(--rule-thin) solid var(--color-rule); }
.signal-item { display: grid; min-width: 0; padding: var(--space-sm); gap: var(--space-2xs); }
.signal-item:nth-child(even) { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.signal-item:nth-child(n + 3) { border-block-start: var(--rule-thin) solid var(--color-rule); }
.signal-item__label { color: var(--color-muted); font-size: var(--text-xs); }
.signal-item__value { min-width: 0; overflow-wrap: anywhere; font-size: var(--text-md); font-variant-numeric: tabular-nums; line-height: 1.25; }
.signal-item__state { color: var(--color-accent); font-size: var(--text-xs); }

.history-item { grid-template-columns: 3.5rem minmax(0, 1fr); align-items: baseline; gap: var(--space-2xs) var(--space-md); }
.history-item__time { grid-row: 1 / span 2; color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.history-item__transition { min-width: 0; overflow-wrap: anywhere; font-size: var(--text-sm); }
.history-item__reason { min-width: 0; overflow-wrap: anywhere; color: var(--color-muted); font-size: var(--text-xs); }
.history-item--empty { display: block; color: var(--color-muted); font-size: var(--text-sm); }

@media (hover: hover) and (pointer: fine) {
  .icon-button:hover, .tab:hover, .method-filters button:hover { color: var(--color-accent); }
  .research-control select:hover { background: var(--color-paper-2); }
  .universe-control select:hover { background: var(--color-paper-2); }
}

@media (min-width: 36rem) {
  .appbar, .workspace { padding-inline: var(--space-xl); }
  .workspace { padding-block-start: var(--space-xl); }
  .hero { padding: var(--space-xl); }
  .strategy-hero { padding: var(--space-xl) 0 var(--space-2xl); }
  .section__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-md); }
  .section__meta { text-align: end; }
  .protocol-row { grid-template-columns: minmax(7rem, 1fr) minmax(0, auto); gap: var(--space-md); }
  .protocol-row dd { text-align: end; }
  .quote-row { grid-template-columns: minmax(6rem, 1.2fr) minmax(5rem, 0.8fr) minmax(4rem, 0.7fr) minmax(7rem, 1fr); }
  .quote-row__average { grid-column: auto; text-align: end; }
  .signal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .signal-item:nth-child(even) { border-inline-start: 0; }
  .signal-item + .signal-item { border-inline-start: var(--rule-thin) solid var(--color-rule); }
  .signal-item:nth-child(4) { border-inline-start: 0; }
  .signal-item:nth-child(n + 3) { border-block-start: 0; }
  .signal-item:nth-child(n + 4) { border-block-start: var(--rule-thin) solid var(--color-rule); }
}

@media (pointer: coarse) {
  .icon-button, .tab, .method summary { min-height: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
  .icon-button[data-state="loading"] svg { animation: none; }
}

/* Hallmark · component: dropdown · genre: analytical-tool · theme: Signal Grid custom
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (40–41)
 */
.market-toolbar { position: relative; }
.universe-picker { position: relative; min-width: 0; flex: 1 1 auto; }
.universe-trigger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: var(--control-height);
  padding: 0;
  border-block-end: var(--rule-strong) solid transparent;
  background: var(--color-paper);
  color: var(--color-ink);
  text-align: start;
  transition: background-color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);
  gap: var(--space-xs);
}
.universe-trigger__label {
  min-width: 0;
  overflow: hidden;
  font-size: var(--text-md);
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.universe-trigger__chevron { width: 1rem; height: 1rem; color: var(--color-muted); transition: transform var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out); }
.universe-trigger__status { display: none; width: 1rem; height: 1rem; place-items: center; font-size: var(--text-xs); font-weight: 800; line-height: 1; }
.universe-picker[data-open="true"] .universe-trigger { border-block-end-color: var(--color-accent); }
.universe-picker[data-open="true"] .universe-trigger__chevron { color: var(--color-accent); transform: rotate(180deg); }
.universe-trigger:focus-visible, .universe-trigger.is-focus { outline: var(--rule-strong) solid var(--color-focus); outline-offset: var(--space-2xs); }
.universe-trigger:active, .universe-trigger.is-active { background: var(--color-paper-2); transform: translateY(1px); }
.universe-trigger:disabled, .universe-trigger.is-disabled { cursor: not-allowed; opacity: 0.55; color: var(--color-muted); }
.universe-trigger[data-state="loading"] .universe-trigger__status, .universe-trigger.is-loading .universe-trigger__status {
  display: block;
  border: var(--rule-strong) solid var(--color-rule);
  border-block-start-color: var(--color-accent);
  border-radius: var(--radius-round);
  animation: spin 900ms linear infinite;
}
.universe-trigger[data-state="error"], .universe-trigger.is-error { border-block-end-color: var(--color-error); }
.universe-trigger[data-state="error"] .universe-trigger__status, .universe-trigger.is-error .universe-trigger__status { display: grid; color: var(--color-error); }
.universe-trigger[data-state="error"] .universe-trigger__status::before, .universe-trigger.is-error .universe-trigger__status::before { content: "!"; }
.universe-trigger[data-state="success"], .universe-trigger.is-success { border-block-end-color: var(--color-success); }
.universe-trigger[data-state="success"] .universe-trigger__status, .universe-trigger.is-success .universe-trigger__status { display: grid; color: var(--color-success); }
.universe-trigger[data-state="success"] .universe-trigger__status::before, .universe-trigger.is-success .universe-trigger__status::before { content: "✓"; }

.universe-menu {
  position: absolute;
  inset-block-start: calc(100% + var(--space-xs));
  inset-inline-start: 0;
  z-index: calc(var(--z-sticky) - 1);
  width: min(22rem, calc(100vw - var(--space-xl)));
  max-height: min(24rem, calc(100svh - 10rem));
  padding: var(--space-2xs) var(--space-sm);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: var(--rule-thin) solid var(--color-rule-strong);
  border-radius: var(--radius-control);
  outline: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  animation: universe-menu-in 160ms var(--ease-out) both;
}
.universe-menu[data-closing="true"] { pointer-events: none; animation: universe-menu-out 120ms var(--ease-in) both; }
.universe-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: var(--control-height);
  padding-inline: var(--space-xs);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  cursor: pointer;
  user-select: none;
  gap: var(--space-md);
}
.universe-option:first-child { border-block-start: 0; }
.universe-option__label { overflow: hidden; font-size: var(--text-base); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.universe-option__mark { color: var(--color-accent); font-size: var(--text-sm); font-weight: 800; opacity: 0; }
.universe-option[aria-selected="true"] { background: var(--color-accent-soft); }
.universe-option[aria-selected="true"] .universe-option__mark { opacity: 1; }
.universe-menu:focus .universe-option[data-active="true"] { outline: var(--rule-strong) solid var(--color-focus); outline-offset: calc(var(--rule-strong) * -1); }
@keyframes universe-menu-in { from { opacity: 0; transform: translateY(calc(var(--space-2xs) * -1)); } to { opacity: 1; transform: translateY(0); } }
@keyframes universe-menu-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(calc(var(--space-2xs) * -1)); } }

@media (hover: hover) and (pointer: fine) {
  .universe-trigger:hover, .universe-trigger.is-hover { background: var(--color-paper-2); }
  .universe-option:hover { background: var(--color-paper-2); }
  .universe-option[aria-selected="true"]:hover { background: var(--color-accent-soft); }
}
@media (pointer: coarse) {
  .universe-trigger, .universe-option { min-height: 3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .universe-trigger__chevron { transition: none; }
  .universe-trigger[data-state="loading"] .universe-trigger__status, .universe-trigger.is-loading .universe-trigger__status { animation: none; }
}

/* 实盘账户：资金结果优先，策略依据后置。 */
.paper-account-hero { padding-block-start: var(--space-md); }
.paper-equity {
  min-width: 0;
  margin: var(--space-lg) 0 var(--space-xs);
  overflow-wrap: anywhere;
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 11vw, 3.25rem);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.055em;
  line-height: 1;
}
.paper-pnl { margin: 0; color: var(--color-muted); font-size: var(--text-sm); }
.paper-pnl strong { margin-inline-start: var(--space-xs); color: var(--color-ink); font-size: var(--text-base); font-variant-numeric: tabular-nums; }
[data-direction="up"] { color: var(--color-error) !important; }
[data-direction="down"] { color: var(--color-success) !important; }
[data-direction="flat"] { color: var(--color-ink) !important; }
#paper-status[data-status="running"], #paper-status[data-status="filled"] { color: var(--color-accent); }
#paper-status[data-status="blocked"], #paper-status[data-status="quote_error"], #paper-status[data-status="stale"] { color: var(--color-error); }

.paper-position-grid,
.paper-performance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-block: var(--rule-thin) solid var(--color-rule);
}
.paper-position-grid > div,
.paper-performance-grid > div {
  display: grid;
  min-width: 0;
  padding: var(--space-sm);
  border-block-start: var(--rule-thin) solid var(--color-rule);
  gap: var(--space-2xs);
}
.paper-position-grid > div:nth-child(-n + 2),
.paper-performance-grid > div:nth-child(-n + 2) { border-block-start: 0; }
.paper-position-grid > div:nth-child(even),
.paper-performance-grid > div:nth-child(even) { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.paper-position-grid dt,
.paper-performance-grid dt { color: var(--color-muted); font-size: var(--text-xs); }
.paper-position-grid dd,
.paper-performance-grid dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: var(--text-base);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.paper-strategy-status { margin-block-end: var(--space-md); }
.paper-strategy .strategy-kpis { margin-block-start: 0; }

.paper-trade-list { padding: 0; margin: 0; border-block-end: var(--rule-thin) solid var(--color-rule); list-style: none; }
.paper-trade { display: grid; padding-block: var(--space-md); border-block-start: var(--rule-thin) solid var(--color-rule); gap: var(--space-2xs); }
.paper-trade:first-child { border-block-start-color: var(--color-rule-strong); }
.paper-trade__head { display: flex; align-items: baseline; justify-content: space-between; min-width: 0; gap: var(--space-md); }
.paper-trade__side { font-size: var(--text-sm); white-space: nowrap; }
.paper-trade[data-side="buy"] .paper-trade__side { color: var(--color-error); }
.paper-trade[data-side="sell"] .paper-trade__side { color: var(--color-success); }
.paper-trade__time { flex: 0 0 auto; color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.paper-trade__detail,
.paper-trade__reason { min-width: 0; overflow-wrap: anywhere; color: var(--color-muted); font-size: var(--text-xs); }
.paper-trade__reason { color: var(--color-ink-2); }
.paper-trade--empty { color: var(--color-muted); font-size: var(--text-sm); }

.pnl-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  border-block: var(--rule-thin) solid var(--color-rule-strong);
}
.pnl-summary > div { min-width: 0; padding: var(--space-sm) var(--space-xs); }
.pnl-summary > div + div { border-inline-start: var(--rule-thin) solid var(--color-rule); }
.pnl-summary dt { overflow-wrap: anywhere; color: var(--color-muted); font-size: var(--text-xs); }
.pnl-summary dd { min-width: 0; margin: var(--space-2xs) 0 0; overflow-wrap: anywhere; font-size: var(--text-md); font-weight: 750; font-variant-numeric: tabular-nums; line-height: 1.15; }
.pnl-chart { margin: var(--space-md) 0 0; }
.pnl-chart svg { display: block; width: 100%; height: 15rem; overflow: visible; }
.pnl-gridline { stroke: var(--color-rule); stroke-width: var(--rule-thin); vector-effect: non-scaling-stroke; }
.pnl-zero-line { stroke: var(--color-rule-strong); stroke-width: var(--rule-thin); vector-effect: non-scaling-stroke; }
.pnl-axis-label { fill: var(--color-muted); font-family: var(--font-body); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.pnl-line { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: var(--rule-strong); vector-effect: non-scaling-stroke; }
.pnl-line--account, .pnl-dot--account { stroke: var(--color-accent); }
.pnl-line--benchmark, .pnl-dot--benchmark { stroke: var(--color-benchmark); }
.pnl-line--benchmark { stroke-dasharray: var(--space-xs) var(--space-2xs); }
.pnl-dot { fill: var(--color-paper); stroke-width: var(--rule-strong); vector-effect: non-scaling-stroke; }
.pnl-legend { display: flex; align-items: center; gap: var(--space-md); margin-block-start: var(--space-xs); color: var(--color-muted); font-size: var(--text-xs); }
.pnl-legend span { display: inline-flex; align-items: center; white-space: nowrap; gap: var(--space-xs); }
.pnl-legend span::before { width: var(--space-lg); height: var(--rule-strong); background: var(--color-accent); content: ""; }
.pnl-legend .pnl-legend__benchmark::before { background: repeating-linear-gradient(90deg, var(--color-benchmark) 0 var(--space-xs), transparent var(--space-xs) var(--space-sm)); }
.pnl-chart figcaption { margin-block-start: var(--space-xs); color: var(--color-muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }

@media (min-width: 36rem) {
  .paper-position-grid,
  .paper-performance-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .paper-position-grid > div:nth-child(-n + 3),
  .paper-performance-grid > div:nth-child(-n + 3) { border-block-start: 0; }
  .paper-position-grid > div:nth-child(even),
  .paper-performance-grid > div:nth-child(even) { border-inline-start: 0; }
  .paper-position-grid > div + div,
  .paper-performance-grid > div + div { border-inline-start: var(--rule-thin) solid var(--color-rule); }
  .paper-position-grid > div:nth-child(4),
  .paper-performance-grid > div:nth-child(4) { border-inline-start: 0; }
}

/* 玄枢：连续数据轨道，低圆角，信息边界依赖规则线。 */
[data-theme="xuanshu"] .app { background-color: var(--color-paper); color: var(--color-ink); }
[data-theme="xuanshu"] .screen-head h1 { font-weight: 750; }
[data-theme="xuanshu"] .section { position: relative; }
[data-theme="xuanshu"] .section::after {
  position: absolute;
  inset-block-start: calc(var(--rule-thin) * -1);
  inset-inline-start: 0;
  width: var(--space-lg);
  height: var(--rule-strong);
  background: var(--color-mystic);
  content: "";
}
[data-theme="xuanshu"] .section:first-of-type::after { display: none; }

/* 天机：深靛观测台，模块漂浮，星盘点阵作为空间坐标。 */
[data-theme="tianji"] .app {
  background-color: var(--color-paper-2);
  background-image: var(--surface-pattern);
  background-size: var(--surface-pattern-size);
  color: var(--color-ink);
}
[data-theme="tianji"] .appbar {
  border-block-end-color: var(--color-rule-strong);
  background: var(--color-paper-94);
  color: var(--color-ink);
}
[data-theme="tianji"] .brand__sigil {
  width: 1.65rem;
  height: 1.65rem;
  padding: var(--space-3xs);
  border: var(--rule-thin) solid var(--color-rule-strong);
  border-radius: var(--radius-round);
  color: var(--color-accent);
}
[data-theme="tianji"] .brand__name { font-weight: 700; letter-spacing: 0.04em; }
[data-theme="tianji"] .workspace { padding-block-start: var(--space-md); }
[data-theme="tianji"] .market-toolbar {
  padding: var(--space-xs) var(--space-sm);
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-panel);
  background: var(--color-paper);
  color: var(--color-ink);
  box-shadow: var(--shadow-panel);
}
[data-theme="tianji"] .universe-trigger { background: transparent; color: var(--color-ink); }
[data-theme="tianji"] .freshness-line { padding-inline: var(--space-sm); }
[data-theme="tianji"] .screen-head { padding-inline: var(--space-xs); }
[data-theme="tianji"] .screen-head h1 { font-family: var(--font-display); font-weight: 700; letter-spacing: 0.06em; }
[data-theme="tianji"] .hero,
[data-theme="tianji"] .section {
  margin-block: var(--space-md);
  padding: var(--space-md);
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-card);
  background: var(--color-paper);
  color: var(--color-ink);
  box-shadow: var(--shadow-panel);
}
[data-theme="tianji"] .section:first-of-type { border-block-start: var(--rule-thin) solid var(--color-rule); }
[data-theme="tianji"] .strategy-hero { padding: var(--space-lg) var(--space-md); border-inline: var(--rule-thin) solid var(--color-rule); }
[data-theme="tianji"] .section__head {
  padding-block-end: var(--space-sm);
  border-block-end: var(--rule-thin) solid var(--color-rule);
}
[data-theme="tianji"] .section h2,
[data-theme="tianji"] .temporal-hero__term,
[data-theme="tianji"] .gua-card__name,
[data-theme="tianji"] .paper-equity { font-family: var(--font-display); }
[data-theme="tianji"] .temporal-hero,
[data-theme="tianji"] .pillar-grid,
[data-theme="tianji"] .gua-card {
  overflow: hidden;
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-panel);
  background: var(--color-paper-2);
  color: var(--color-ink);
}
[data-theme="tianji"] .temporal-hero { padding: var(--space-md); }
[data-theme="tianji"] .pillar-table thead { background: var(--color-paper-3); color: var(--color-ink); }
[data-theme="tianji"] .method-filters {
  overflow: hidden;
  border: var(--rule-thin) solid var(--color-rule);
  border-radius: var(--radius-control);
}
[data-theme="tianji"] .method-card { padding-inline: var(--space-xs); }
[data-theme="tianji"] .tabbar {
  inset-inline: var(--space-sm);
  inset-block-end: max(var(--space-xs), env(safe-area-inset-bottom));
  width: auto;
  border: var(--rule-thin) solid var(--color-rule-strong);
  border-radius: var(--radius-card);
  background: var(--color-paper-96);
  box-shadow: var(--shadow-panel);
}
[data-theme="tianji"] .tab::before { inset-block-start: var(--space-2xs); border-radius: var(--radius-round); }
[data-theme="tianji"] .tab[aria-selected="true"] { color: var(--color-accent); }
[data-theme="tianji"] .tab[aria-selected="true"]::before { background: var(--color-accent); }

/* 归藏：石墨朱砂，标题带与矩阵分格形成碑录式阅读。 */
[data-theme="guizang"] .app { background-color: var(--color-paper); color: var(--color-ink); }
[data-theme="guizang"] .appbar {
  border-block-end: var(--rule-strong) double var(--color-ink);
  background: var(--color-paper-94);
  color: var(--color-ink);
}
[data-theme="guizang"] .brand__sigil {
  width: 1.7rem;
  height: 1.7rem;
  padding: var(--space-2xs);
  border-radius: 0;
  background: var(--color-accent);
  color: var(--color-accent-ink);
}
[data-theme="guizang"] .brand__name { font-weight: 800; letter-spacing: 0.08em; }
[data-theme="guizang"] .screen-head {
  padding-block-end: var(--space-sm);
  border-block-end: var(--rule-strong) double var(--color-rule-strong);
}
[data-theme="guizang"] .screen-head h1 { font-family: var(--font-display); font-weight: 800; letter-spacing: 0.08em; }
[data-theme="guizang"] .hero {
  border: var(--rule-strong) double var(--color-rule-strong);
  border-radius: 0;
  background: var(--color-paper);
  color: var(--color-ink);
}
[data-theme="guizang"] .strategy-hero { padding-inline: var(--space-md); }
[data-theme="guizang"] .section { border-block-start: var(--rule-strong) double var(--color-rule-strong); }
[data-theme="guizang"] .section__head {
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-ink);
  color: var(--color-paper);
}
[data-theme="guizang"] .section__head h2 { color: var(--color-paper); font-family: var(--font-display); font-weight: 800; letter-spacing: 0.05em; }
[data-theme="guizang"] .section__head .icon-heading svg { color: var(--color-seal); }
[data-theme="guizang"] .section__meta { color: var(--color-paper-3); }
[data-theme="guizang"] .temporal-hero {
  padding: var(--space-md) var(--space-sm);
  border-block: var(--rule-strong) double var(--color-rule-strong);
}
[data-theme="guizang"] .pillar-grid { border: var(--rule-thin) solid var(--color-rule-strong); }
[data-theme="guizang"] .pillar-table thead { background: var(--color-ink); color: var(--color-paper); }
[data-theme="guizang"] .pillar-table thead th { color: var(--color-paper); }
[data-theme="guizang"] .method-filters { border: var(--rule-thin) solid var(--color-rule-strong); }
[data-theme="guizang"] .method-filters button[aria-pressed="true"] { background: var(--color-accent); color: var(--color-accent-ink); }
[data-theme="guizang"] .method-card { border-block-start: var(--rule-strong) solid var(--color-ink); }
[data-theme="guizang"] .method-card__head {
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-paper-2);
  color: var(--color-ink);
}
[data-theme="guizang"] .method-results,
[data-theme="guizang"] .paper-position-grid,
[data-theme="guizang"] .paper-performance-grid,
[data-theme="guizang"] .market-data-grid,
[data-theme="guizang"] .signal-grid,
[data-theme="guizang"] .chaos-grid {
  gap: var(--rule-thin);
  border: var(--rule-thin) solid var(--color-rule-strong);
  background: var(--color-rule);
}
[data-theme="guizang"] .method-result,
[data-theme="guizang"] .paper-position-grid > div,
[data-theme="guizang"] .paper-performance-grid > div,
[data-theme="guizang"] .market-data-grid > div,
[data-theme="guizang"] .signal-item,
[data-theme="guizang"] .chaos-item {
  border: 0;
  background: var(--color-paper);
  color: var(--color-ink);
}
[data-theme="guizang"] .data-status {
  padding-inline: var(--space-sm);
  background: var(--color-paper-2);
  color: var(--color-ink);
}
[data-theme="guizang"] .tabbar { border-block-start: var(--rule-strong) solid var(--color-ink); background: var(--color-paper-96); }
[data-theme="guizang"] .tab::before { display: none; }
[data-theme="guizang"] .tab[aria-selected="true"] { background: var(--color-accent); color: var(--color-accent-ink); }

@media (hover: hover) and (pointer: fine) {
  .theme-trigger:hover { background: var(--color-paper-2); color: var(--color-accent); }
  .theme-option:hover { background: var(--color-paper-2); }
  .theme-option[aria-checked="true"]:hover { background: var(--color-accent-soft); }
}

@media (max-width: 35.999rem) {
  .theme-menu { inset-inline-end: calc((var(--control-height) + var(--space-2xs)) * -1); }
}

@media (min-width: 36rem) {
  .theme-trigger__label { display: inline; }
  [data-theme="tianji"] .hero,
  [data-theme="tianji"] .section { padding: var(--space-lg); }
  [data-theme="tianji"] .strategy-hero { padding: var(--space-xl); }
  [data-theme="guizang"] .method-results { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [data-theme="guizang"] .method-result:nth-child(odd),
  [data-theme="guizang"] .method-result:nth-child(even) { padding-inline: var(--space-sm); border: 0; }
}

@media (pointer: coarse) {
  .theme-trigger, .theme-option { min-height: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .theme-trigger[data-state="loading"] svg,
  .theme-option[data-state="loading"] .theme-option__preview { animation: none; }
}
