.finance-ops-page {
  max-width: 1440px;
  margin: 0 auto;
  color: var(--text);
}

.finance-ops-page > header { display: none; }

.ops-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: var(--space-12);
  align-items: end;
  padding: var(--space-12) 0 var(--space-10);
  border-bottom: 1px solid var(--border-strong);
}

.ops-kicker {
  margin: 0 0 var(--space-3);
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  letter-spacing: .12em;
}

.ops-hero-copy h2 {
  max-width: 840px;
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(34px, 5vw, 64px);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.035em;
}

.ops-hero-copy > p:last-child {
  max-width: 720px;
  margin: var(--space-5) 0 0;
  color: var(--text-secondary);
  font-size: var(--text-base);
  line-height: 1.7;
}

.ops-runway {
  padding-left: var(--space-6);
  border-left: 1px solid var(--border-strong);
}

.ops-runway > div:first-child,
.ops-panel-head,
.ops-section-head,
.ops-filter-row,
.ops-inline-form > div,
.ops-creation-strip > div,
.ops-session-control > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
}

.ops-runway span,
.ops-pulse span,
.ops-panel-head span,
.ops-meta {
  color: var(--text-muted);
  font-size: var(--text-xs);
}

.ops-runway strong {
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}

.ops-runway-track {
  height: 3px;
  margin: var(--space-4) 0;
  overflow: hidden;
  background: var(--bg-surface-muted);
}

.ops-runway-track i {
  display: block;
  width: 0;
  height: 100%;
  background: var(--accent);
  transition: width var(--dur-base) var(--ease-standard);
}

.ops-runway p {
  margin: 0 0 var(--space-3);
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.ops-runway a,
.ops-panel-head a {
  color: var(--accent);
  font-size: var(--text-sm);
  text-decoration: none;
}

.ops-pulse {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: var(--space-6) 0;
  border-bottom: 1px solid var(--border);
}

.ops-pulse article {
  min-width: 0;
  padding: 0 var(--space-6);
  border-right: 1px solid var(--border);
}

.ops-pulse article:first-child { padding-left: 0; }
.ops-pulse article:last-child { border-right: 0; }
.ops-pulse span, .ops-pulse small { display: block; }
.ops-pulse strong {
  display: block;
  margin: var(--space-1) 0;
  overflow: hidden;
  color: var(--text);
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ops-pulse small { color: var(--text-muted); font-size: var(--text-xs); }

.ops-stage-rail {
  position: sticky;
  top: var(--header-height);
  z-index: var(--z-sticky);
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin: 0 0 var(--space-8);
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  border-bottom: 1px solid var(--border-strong);
  backdrop-filter: blur(14px);
}

.ops-stage-rail button {
  position: relative;
  justify-content: flex-start;
  height: auto;
  min-width: 0;
  padding: var(--space-4) var(--space-3);
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--text-secondary);
  text-align: left;
}

.ops-stage-rail button::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--accent);
  content: "";
  opacity: 0;
  transform: scaleX(.4);
  transition: opacity var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);
}

.ops-stage-rail button.active { color: var(--text); }
.ops-stage-rail button.active::after { opacity: 1; transform: scaleX(1); }
.ops-stage-rail b {
  flex: 0 0 auto;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}
.ops-stage-rail span { min-width: 0; font-size: var(--text-sm); }
.ops-stage-rail small { display: block; margin-top: 3px; overflow: hidden; color: var(--text-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.ops-message {
  min-height: 22px;
  margin-bottom: var(--space-3);
  color: var(--text-secondary);
  font-size: var(--text-sm);
}
.ops-message.is-error { color: var(--danger); }

.ops-stage-panel { animation: ops-reveal var(--dur-base) var(--ease-standard) both; }
.ops-stage-panel[hidden] { display: none; }

.ops-section-head {
  align-items: flex-end;
  margin-bottom: var(--space-6);
}
.ops-section-head > div:first-child { max-width: 800px; }
.ops-section-head h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: var(--text-3xl);
  font-weight: 400;
  letter-spacing: -.02em;
}
.ops-section-head h2 + p { margin: var(--space-2) 0 0; color: var(--text-secondary); line-height: 1.6; }

.ops-compact-field {
  display: grid;
  gap: var(--space-1);
  color: var(--text-muted);
  font-size: var(--text-xs);
}

.ops-metric-strip {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  margin-bottom: var(--space-8);
  border-top: 1px solid var(--border-strong);
  border-bottom: 1px solid var(--border-strong);
}
.ops-metric-strip article { padding: var(--space-5) var(--space-4); border-right: 1px solid var(--border); }
.ops-metric-strip article:last-child { border-right: 0; }
.ops-metric-strip span, .ops-metric-strip small { display: block; color: var(--text-muted); font-size: var(--text-xs); }
.ops-metric-strip strong { display: block; margin: var(--space-2) 0; font-family: var(--font-mono); font-size: var(--text-xl); font-weight: var(--font-medium); }

.ops-two-column,
.ops-review-layout,
.ops-cashflow-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.ops-review-layout { grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); }
.ops-cashflow-layout { grid-template-columns: minmax(260px, .38fr) minmax(0, 1fr); }

.ops-paper-panel {
  min-width: 0;
  padding: var(--space-6);
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}

.ops-panel-head { align-items: flex-start; padding-bottom: var(--space-4); border-bottom: 1px solid var(--border); }
.ops-panel-head h3 { margin: var(--space-1) 0 0; font-size: var(--text-lg); }
.ops-panel-head strong { font-family: var(--font-mono); color: var(--accent); }

.ops-ledger-list:empty::after,
.ops-goal-list:empty::after,
.ops-search-results:empty::after {
  display: block;
  padding: var(--space-8) var(--space-3);
  color: var(--text-muted);
  font-size: var(--text-sm);
  text-align: center;
  content: "暂无可显示的数据";
}

.ops-ledger-row,
.ops-review-row,
.ops-search-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-4);
  align-items: start;
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--border);
}
.ops-ledger-row:last-child, .ops-review-row:last-child { border-bottom: 0; }
.ops-ledger-row h4, .ops-review-row h4, .ops-search-item h4 { margin: 0; font-size: var(--text-sm); }
.ops-ledger-row p, .ops-review-row p, .ops-search-item p { margin: var(--space-1) 0 0; color: var(--text-secondary); font-size: var(--text-xs); line-height: 1.55; }
.ops-ledger-row small, .ops-review-row small { color: var(--text-muted); }
.ops-row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.ops-row-actions button { height: 32px; padding: 0 10px; font-size: var(--text-xs); }
.ops-confidence { display: inline-flex; margin-top: var(--space-2); color: var(--accent); font-family: var(--font-mono); font-size: 11px; }
.ops-status-good { color: var(--success); }
.ops-status-warn { color: var(--warning); }
.ops-status-bad { color: var(--danger); }

.ops-boundary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-6);
  padding: var(--space-4) 0;
  border-top: 1px solid var(--border-strong);
  border-bottom: 1px solid var(--border-strong);
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: 1.6;
}
.ops-boundary strong { color: var(--accent); }

.ops-filter-row { flex-wrap: wrap; justify-content: flex-end; }
.ops-inline-form,
.ops-creation-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  margin: var(--space-4) 0;
  padding: var(--space-4);
  background: var(--bg-surface-muted);
  border-radius: var(--radius-md);
}
.ops-inline-form label, .ops-creation-strip label, .ops-mini-form label {
  display: grid;
  gap: var(--space-1);
  color: var(--text-secondary);
  font-size: var(--text-xs);
}
.ops-inline-form > div, .ops-creation-strip > div { grid-column: 1 / -1; justify-content: flex-end; }

.ops-creation-strip { grid-template-columns: repeat(5, minmax(130px, 1fr)); margin-bottom: var(--space-6); }

.ops-goal-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.ops-goal-card {
  padding: var(--space-5);
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.ops-goal-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.ops-goal-card h3 { margin: 0; font-size: var(--text-base); }
.ops-goal-card header span { color: var(--text-muted); font-size: var(--text-xs); }
.ops-goal-amount { display: flex; justify-content: space-between; margin: var(--space-5) 0 var(--space-2); font-family: var(--font-mono); font-size: var(--text-sm); }
.ops-goal-track { height: 4px; overflow: hidden; background: var(--bg-surface-muted); border-radius: var(--radius-full); }
.ops-goal-track i { display: block; height: 100%; background: var(--accent); }
.ops-goal-card footer { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2); margin-top: var(--space-4); color: var(--text-muted); font-size: var(--text-xs); }

.ops-scenario-lab { margin-top: var(--space-6); }
.ops-scenario-lab form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: var(--space-3); align-items: end; padding: var(--space-4) 0; }
.ops-scenario-lab label { display: grid; gap: var(--space-1); color: var(--text-secondary); font-size: var(--text-xs); }
.ops-scenario-result { padding: var(--space-4); background: var(--bg-surface-muted); border-left: 2px solid var(--accent); color: var(--text-secondary); font-size: var(--text-sm); line-height: 1.6; }

.ops-safe-spend {
  padding: var(--space-8);
  background: var(--text);
  border-radius: var(--radius-lg);
  color: var(--text-inverse);
}
.ops-safe-spend > span { font-size: var(--text-xs); opacity: .68; }
.ops-safe-spend > strong { display: block; margin: var(--space-4) 0; font-family: var(--font-serif); font-size: clamp(34px, 4vw, 52px); font-weight: 400; }
.ops-safe-spend > p { color: currentColor; font-size: var(--text-sm); line-height: 1.6; opacity: .72; }
.ops-safe-spend dl { margin: var(--space-8) 0 0; }
.ops-safe-spend dl div { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.ops-safe-spend dt { opacity: .65; }
.ops-safe-spend dd { margin: 0; font-family: var(--font-mono); }
:root[data-theme="dark"] .ops-safe-spend { background: var(--bg-elevated); color: var(--text); border: 1px solid var(--border-strong); }

.ops-cashflow-rows { max-height: 520px; overflow: auto; }
.ops-cashflow-row { display: grid; grid-template-columns: 100px minmax(0, 1fr) repeat(3, minmax(90px, .35fr)); gap: var(--space-3); align-items: center; padding: var(--space-3) 0; border-bottom: 1px solid var(--border); font-size: var(--text-sm); }
.ops-cashflow-row:first-child { position: sticky; top: 0; z-index: 1; background: var(--bg-surface); color: var(--text-muted); font-size: var(--text-xs); }
.ops-cashflow-row span:nth-last-child(-n+3) { font-family: var(--font-mono); text-align: right; }

.ops-comparison-sheet { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.ops-comparison-sheet article { padding: var(--space-6); background: var(--bg-surface-muted); border-top: 2px solid var(--accent); }
.ops-comparison-sheet h3 { margin-top: 0; }
.ops-comparison-sheet dl div { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) 0; border-bottom: 1px solid var(--border); }
.ops-comparison-sheet dd { margin: 0; font-family: var(--font-mono); }

.ops-command-bar { margin-bottom: var(--space-6); padding: var(--space-6); background: var(--text); border-radius: var(--radius-lg); color: var(--text-inverse); }
.ops-command-bar > label { display: block; margin-bottom: var(--space-3); font-family: var(--font-serif); font-size: var(--text-xl); }
.ops-command-bar > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); }
.ops-command-bar input { background: color-mix(in srgb, var(--bg-surface) 96%, transparent); color: var(--text); }
.ops-command-bar small { display: block; margin-top: var(--space-3); opacity: .66; }
:root[data-theme="dark"] .ops-command-bar { background: var(--bg-elevated); color: var(--text); border: 1px solid var(--border-strong); }

.ops-search-results { margin-bottom: var(--space-6); }
.ops-search-results:not(:empty) { padding: 0 var(--space-5); background: var(--accent-soft); border-left: 2px solid var(--accent); }
.ops-organize-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.ops-mini-form { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--space-2); margin: var(--space-4) 0; }

.ops-privacy-switch { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; cursor: pointer; }
.ops-privacy-switch input { width: 42px; height: 24px; margin: 0; accent-color: var(--accent); }
body.ops-privacy .num,
body.ops-privacy [data-private] { filter: blur(7px); user-select: none; }

.ops-session-control { margin-top: var(--space-6); padding: var(--space-4) 0; border-top: 1px solid var(--border-strong); border-bottom: 1px solid var(--border-strong); }
.ops-session-control summary { color: var(--text); cursor: pointer; font-weight: var(--font-semibold); }
.ops-session-control > div { margin-top: var(--space-4); }
.ops-session-control p { max-width: 760px; margin: 0 auto 0 0; color: var(--text-secondary); font-size: var(--text-sm); line-height: 1.6; }

.ops-preview-dialog {
  width: min(680px, calc(100vw - 32px));
  max-height: 90vh;
  padding: 0;
  overflow: auto;
  background: var(--bg-elevated);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  color: var(--text);
  box-shadow: var(--shadow-xl);
}
.ops-preview-dialog::backdrop { background: color-mix(in srgb, var(--text) 52%, transparent); }
.ops-preview-dialog form > header { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); padding: var(--space-6); border-bottom: 1px solid var(--border); }
.ops-preview-dialog header span { color: var(--accent); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .1em; }
.ops-preview-dialog h2 { margin: var(--space-1) 0 0; font-family: var(--font-serif); font-weight: 400; }
.ops-preview-dialog header button { width: 34px; height: 34px; padding: 0; }
.ops-preview-warning { display: grid; gap: var(--space-1); margin: var(--space-6) var(--space-6) 0; padding: var(--space-4); background: var(--warning-soft); color: var(--text-secondary); font-size: var(--text-sm); }
.ops-preview-warning strong { color: var(--warning); }
.ops-preview-body { margin: var(--space-5) var(--space-6); }
.ops-preview-body div { display: grid; grid-template-columns: minmax(100px, .35fr) minmax(0, 1fr); gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--border); }
.ops-preview-body dt { color: var(--text-muted); }
.ops-preview-body dd { margin: 0; overflow-wrap: anywhere; }
.ops-confirm-check { display: flex; align-items: center; gap: var(--space-2); margin: 0 var(--space-6); color: var(--text-secondary); font-size: var(--text-sm); }
.ops-confirm-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }
.ops-preview-message { min-height: 22px; margin: var(--space-3) var(--space-6); color: var(--danger); font-size: var(--text-sm); }
.ops-preview-dialog footer { display: flex; justify-content: flex-end; gap: var(--space-2); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--border); }

@keyframes ops-reveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 768px) {
  .ops-hero { grid-template-columns: 1fr; gap: var(--space-6); padding-top: var(--space-8); }
  .ops-runway { padding: var(--space-4) 0 0; border-top: 1px solid var(--border); border-left: 0; }
  .ops-pulse { grid-template-columns: repeat(2, 1fr); }
  .ops-pulse article { padding: var(--space-4); border-bottom: 1px solid var(--border); }
  .ops-pulse article:nth-child(2) { border-right: 0; }
  .ops-pulse article:nth-last-child(-n+2) { border-bottom: 0; }
  .ops-pulse article:nth-child(odd) { padding-left: 0; }
  .ops-stage-rail { top: var(--header-height); display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .ops-stage-rail button { flex: 0 0 150px; min-height: 58px; scroll-snap-align: start; }
  .ops-stage-rail small { display: none; }
  .ops-section-head { align-items: flex-start; flex-direction: column; }
  .ops-metric-strip { grid-template-columns: repeat(3, 1fr); }
  .ops-metric-strip article:nth-child(3) { border-right: 0; }
  .ops-metric-strip article:nth-child(-n+3) { border-bottom: 1px solid var(--border); }
  .ops-two-column, .ops-review-layout, .ops-cashflow-layout, .ops-organize-grid { grid-template-columns: 1fr; }
  .ops-creation-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-goal-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-scenario-lab form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-scenario-lab form button { align-self: end; }
  .ops-cashflow-row { grid-template-columns: 78px minmax(110px, 1fr) repeat(3, minmax(86px, .5fr)); min-width: 620px; }
  .ops-cashflow-rows { overflow-x: auto; }
  .ops-session-control > div { align-items: flex-start; flex-wrap: wrap; }
}

@media (max-width: 480px) {
  .ops-hero-copy h2 { font-size: 36px; }
  .ops-pulse strong { font-size: var(--text-xl); }
  .ops-stage-rail { margin-right: calc(var(--space-4) * -1); margin-left: calc(var(--space-4) * -1); padding-left: var(--space-4); }
  .ops-metric-strip { grid-template-columns: repeat(2, 1fr); }
  .ops-metric-strip article:nth-child(3) { border-right: 1px solid var(--border); }
  .ops-metric-strip article:nth-child(2n) { border-right: 0; }
  .ops-metric-strip article:nth-child(-n+4) { border-bottom: 1px solid var(--border); }
  .ops-paper-panel { padding: var(--space-4); }
  .ops-filter-row, .ops-filter-row select { width: 100%; }
  .ops-inline-form, .ops-creation-strip, .ops-goal-list, .ops-scenario-lab form, .ops-comparison-sheet { grid-template-columns: 1fr; }
  .ops-panel-head { align-items: flex-start; flex-direction: column; }
  .ops-row-actions { justify-content: flex-start; }
  .ops-ledger-row, .ops-review-row, .ops-search-item { grid-template-columns: 1fr; }
  .ops-safe-spend { padding: var(--space-6); }
  .ops-command-bar { padding: var(--space-4); }
  .ops-command-bar > div, .ops-mini-form { grid-template-columns: 1fr; }
  .ops-preview-body div { grid-template-columns: 1fr; gap: var(--space-1); }
  .ops-preview-dialog footer { position: sticky; bottom: 0; background: var(--bg-elevated); }
}

@media (prefers-reduced-motion: reduce) {
  .ops-stage-panel { animation: none; }
  .ops-runway-track i, .ops-stage-rail button::after { transition: none; }
}
