/* Workbook: quiet surfaces, readable numbers, progressive disclosure. */
@font-face {
    font-family: "Hongli Serif";
    src: url("/static/fonts/hongli-serif-bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}
/* Scale text with data-size while preserving the standard desktop/mobile sizes. */
.workbook { --font-unit: calc(1rem / 15); }
@media (max-width: 767px) {
    .workbook { --font-unit: calc(1rem / 14); }
}
.workbook [class~="text-[9px]"] { font-size: calc(9 * var(--font-unit)); }
.workbook [class~="text-[10px]"] { font-size: calc(10 * var(--font-unit)); }
.workbook [class~="text-[11px]"] { font-size: calc(11 * var(--font-unit)); }
:root[data-theme="light"] {
    color-scheme: light;
    --bg-body: #fff; --bg-card: #fff; --bg-header: #fff;
    --bg-input: #fff; --text-main: #242424; --text-muted: #6d6d6d;
    --text-input: #242424; --border-card: #dedede; --border-input: #d4d4d4;
    --table-border: #dedede; --table-th-bg: #f7f7f7; --table-th-text: #555;
    --table-hover: #f5f3f2; --rail-bg: #f8f8f8; --accent: #b72f28;
    --accent-soft: #f8edeb; --bg-badge: #f8edeb; --text-badge: #b72f28;
    --market-green: #277253; --market-red: #b72f28;
}
:root[data-theme="dark"] {
    color-scheme: dark;
    --bg-body: #282b2e; --bg-card: #2e3235; --bg-header: #2b2e31;
    --bg-input: #35393d; --text-main: #eeeeeb; --text-muted: #b5b8b8;
    --text-input: #eeeeeb; --border-card: #454b50; --border-input: #596168;
    --table-border: #454b50; --table-th-bg: #33373b; --table-th-text: #c5c8c8;
    --table-hover: #383d41; --rail-bg: #303437; --accent: #ef8c7e;
    --accent-soft: #42322f; --bg-badge: #42322f; --text-badge: #ef8c7e;
    --market-green: #86c9a6; --market-red: #ef9287;
}
.workbook { font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; font-size: calc(15 * var(--font-unit)); line-height: 1.6; overflow-x: clip; }
.workbook .font-num, .workbook .font-mono { font-family: inherit !important; font-variant-numeric: tabular-nums; }
.workbook [hidden] { display: none !important; }
.workbook button, .workbook summary, .workbook input, .workbook select { min-height: 44px; touch-action: manipulation; }
.workbook :where(button, a, input, select, summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.workbook button:disabled { cursor: wait; opacity: .6; }
.workbook summary { list-style: none; cursor: pointer; }
.workbook summary::-webkit-details-marker { display: none; }
.workbook summary .fa-angle-down { font-size: calc(12 * var(--font-unit)); color: var(--text-muted); }
.workbook details[open] > summary .fa-angle-down { transform: rotate(180deg); }
.workbook .card-box { border-radius: 3px !important; box-shadow: none; }
.workbook .custom-input { border-radius: 3px !important; }
.workbook .table-responsive { border-radius: 0; border-width: 0 0 1px; }
.workbook table { font-size: calc(13 * var(--font-unit)); }
.workbook th, .workbook td { padding-top: 13px; padding-bottom: 13px; }
.workbook .table-stripe tr, .workbook .table-stripe tr:nth-child(even) { background: transparent; }
.workbook .table-stripe tr:hover { background: var(--table-hover); }
.workbook [class*="text-blue-"], .workbook [class*="text-indigo-"], .workbook [class*="text-amber-"] { color: var(--accent) !important; }
.workbook [class*="bg-blue-"], .workbook [class*="bg-indigo-"], .workbook [class*="bg-emerald-"] { background: var(--accent-soft); }
.workbook button.bg-blue-600, .workbook button.bg-blue-500 { background: var(--accent); color: var(--bg-body) !important; }
.workbook [class*="text-slate-"] { color: var(--text-muted); }
.workbook [class*="text-emerald-"], .workbook [class*="text-green-"] { color: var(--market-green); }
.workbook [class*="text-rose-"], .workbook [class*="text-red-"] { color: var(--market-red); }
.workbook .workbook-header { min-height: 80px; display: flex; align-items: center; gap: 28px; padding: 12px 32px; }
.workbook-brand { font-family: "Hongli Serif", "Noto Serif SC", "Songti SC", SimSun, serif; font-size: calc(30 * var(--font-unit)); font-weight: 700; line-height: 1.3; letter-spacing: .04em; color: var(--accent); white-space: nowrap; padding-right: 28px; border-right: 1px solid var(--border-card); }
.workbook .site-header-actions { display: flex; align-items: center; flex: 1; min-width: 0; gap: 20px; }
.workbook .primary-tabs { display: flex; align-items: center; gap: 8px; }
.workbook .nav-tab { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; font-size: calc(15 * var(--font-unit)); font-weight: 400; line-height: 1.5; min-height: 48px; padding: 0 18px; border: 0; border-left: 3px solid transparent; border-radius: 4px; color: var(--text-main); }
.workbook .nav-tab:hover { background: var(--table-hover); }
.workbook .nav-tab.active { background: var(--accent-soft); color: var(--text-main) !important; border-left-color: var(--accent); }
.more-menu { position: relative; margin-left: auto; }
.more-menu > summary { display: flex; gap: 8px; align-items: center; padding: 0 8px; font-size: calc(14 * var(--font-unit)); white-space: nowrap; color: var(--text-main); }
.more-menu > summary:hover, .more-menu[open] > summary { color: var(--accent); }
.more-menu-content { position: absolute; right: 0; top: calc(100% + 12px); width: 304px; max-width: calc(100vw - 32px); z-index: 60; padding: 16px; background: var(--bg-card); border: 1px solid var(--border-card); border-radius: 6px; box-shadow: 0 4px 14px #0000000a; }
.font-settings { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.font-settings button { min-width: 0; min-height: 68px; border: 1px solid transparent; border-radius: 4px; font-size: calc(14 * var(--font-unit)); line-height: 1.5; white-space: nowrap; color: var(--text-main); }
.font-settings button:hover { background: var(--table-hover); }
.font-settings button[aria-pressed="true"] { color: var(--accent); border-color: var(--accent); }
.workbook .theme-switch { display: flex; align-items: center; gap: 8px; margin-left: 0; }
.workbook .theme-option { display: inline-flex; align-items: center; justify-content: center; gap: 7px; width: auto; min-width: 44px; height: 44px; border-radius: 0; padding: 0 8px; color: var(--text-muted); font-size: calc(14 * var(--font-unit)); white-space: nowrap; }
.workbook .theme-option + .theme-option { border-left: 1px solid var(--border-card); padding-left: 16px; }
.workbook .theme-option.active { background: transparent; color: var(--accent); }
.workbook .workbook-main { padding: 0 !important; max-width: none; width: 100%; }
.workbook-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: calc(100dvh - 64px); }
.workbook-layout.hidden { display: none; }
.workbook .parameter-panel { background: var(--rail-bg); border-right: 1px solid var(--border-card); padding: 28px 20px; min-width: 0; }
.parameter-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.parameter-heading h2 { font-weight: 650; font-size: calc(15 * var(--font-unit)); }
.rail-close { width: 44px; margin-right: -12px; color: var(--text-muted); }
.workbook .parameter-controls { display: flex !important; flex-direction: column; gap: 16px !important; align-items: stretch; }
.parameter-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.parameter-field label, .parameter-group-body label { color: var(--text-muted); font-size: calc(13 * var(--font-unit)); }
.workbook .parameter-controls input, .workbook .parameter-controls select { font-size: calc(13 * var(--font-unit)); padding: 9px 10px; min-width: 0; max-width: 100%; }
.workbook .parameter-field input, .workbook .parameter-field select { width: 100%; }
.parameter-group { border: 1px solid var(--border-card); border-radius: 2px; background: var(--bg-card); }
.parameter-group > summary { padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: calc(14 * var(--font-unit)); font-weight: 600; }
.parameter-group small { display: block; margin-top: 5px; font-size: calc(12 * var(--font-unit)); font-weight: 400; color: var(--text-muted); }
.parameter-group-body { padding: 0 12px 16px; display: flex; flex-direction: column; gap: 14px; }
.parameter-group-body > .flex { flex-wrap: wrap; }
.parameter-group-body > .flex label { width: 100%; }
.parameter-hint { color: var(--text-muted); font-size: calc(12 * var(--font-unit)); text-align: center; margin: -12px 0 0; }
.parameter-hint:empty { display: none; }
.workbook .primary-button { background: var(--accent); color: var(--bg-body); border-radius: 3px; padding: 12px 16px; font-size: calc(15 * var(--font-unit)); font-weight: 600; }
.workbook .primary-button:hover { filter: brightness(.92); }
.workbook-results { container-type: inline-size; min-width: 0; padding: 36px 42px 48px; max-width: 1400px; width: 100%; margin: 0 auto; }
.results-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.results-heading > div { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.results-heading h1 { font-size: calc(28 * var(--font-unit)); letter-spacing: -.04em; font-weight: 700; line-height: 1.3; }
#backtest-data-date { font-size: calc(12 * var(--font-unit)); color: var(--text-muted); }
.text-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: var(--text-muted); font-size: calc(13 * var(--font-unit)); padding: 0 8px; }
.result-tabs { display: flex; gap: 24px; margin-top: 12px; }
.result-tabs button { border-bottom: 2px solid transparent; padding: 12px 0; color: var(--text-muted); font-size: calc(15 * var(--font-unit)); font-weight: 600; }
.result-tabs button[aria-selected="true"] { border-color: var(--accent); color: var(--accent); }
.performance-metrics { display: grid; grid-template-columns: 1.35fr .9fr 1fr; gap: 24px; align-items: start; padding: 28px 0 32px; border-bottom: 1px solid var(--border-card); }
.workbook .performance-metrics > .card-box { padding: 0; background: none; border: 0; min-width: 0; }
.metric-card { display: flex; flex-direction: column; gap: 8px; }
.metric-label, .metric-note, .metric-unit { font-family: inherit; font-size: calc(14 * var(--font-unit)); line-height: 1.5; font-weight: 400; letter-spacing: normal; color: var(--text-muted); }
.metric-value { font-size: calc(25 * var(--font-unit)); line-height: 1.2; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--text-main); }
.workbook #kpi-final-wealth-box { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 14px; font-size: calc(50 * var(--font-unit)); color: var(--accent); letter-spacing: normal; }
.workbook #kpi-final-wealth-box > span { flex-shrink: 0; }
.performance-metrics .card-box:nth-child(3) { border-left: 1px solid var(--border-card); padding-left: 22px; }
.chart-section { padding: 30px 0 26px; }
.chart-section h3 { font-size: calc(15 * var(--font-unit)); font-weight: 600; }
.chart-section h3 .fa-solid { display: none; }
.chart-section p { color: var(--text-muted); font-size: calc(12 * var(--font-unit)); margin-top: 6px; }
.chart-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.chart-tools label { display: inline-flex; align-items: center; gap: 7px; font-size: calc(12 * var(--font-unit)); min-height: 44px; color: var(--text-muted); cursor: pointer; }
.workbook .chart-tools input { min-height: 0; width: 16px; height: 16px; accent-color: var(--accent); }
.chart-frame { height: clamp(320px, 48vw, 530px); width: 100%; position: relative; margin-top: 22px; }
.cash-metric { margin-bottom: 20px; }
.comparison-section { padding: 30px 0; }
.section-disclosure { border-top: 1px solid var(--border-card); }
.section-disclosure > summary { display: flex; align-items: center; justify-content: space-between; padding: 23px 0; gap: 18px; font-size: calc(15 * var(--font-unit)); font-weight: 600; }
.disclosure-hint { color: var(--text-muted); font-size: calc(12 * var(--font-unit)); font-weight: 400; }
.disclosure-hint .fa-solid { margin-left: 12px; }
.disclosure-body { padding: 0 0 24px; min-width: 0; }
.disclosure-body > .flex h3 { font-weight: 500; }
.research-note { font-size: calc(12 * var(--font-unit)); color: var(--text-muted); border-top: 1px solid var(--border-card); padding-top: 24px; }
.workbook-layout.rail-collapsed { grid-template-columns: minmax(0, 1fr); }
.rail-collapsed .parameter-panel { display: none; }
.workbook-layout:not(.rail-collapsed) #parameter-toggle { display: none; }
.workbook #tab-decision { max-width: 1400px; margin: auto; padding: 36px 42px; }
.workbook #tab-decision > .card-box { border: 0; padding: 0; }
.workbook #decision-action-box { border: 0; border-top: 1px solid var(--border-card) !important; border-radius: 0; padding: 0; background: transparent !important; }
.workbook #decision-summary-text { font-size: calc(14 * var(--font-unit)); }
.workbook #decision-update-time { color: var(--text-muted); font-size: calc(12 * var(--font-unit)); }
.workbook #tab-decision h2 { font-size: calc(28 * var(--font-unit)); }
.workbook #tab-decision .decision-toolbar { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.workbook #tab-decision .decision-info { margin: 0; border-top: 1px solid var(--border-card); }
.workbook #tab-decision .decision-info > h3 { padding: 10px 0; font-size: calc(15 * var(--font-unit)); font-weight: 600; }
.workbook #tab-decision .disclosure-body { padding-bottom: 12px; line-height: 1.5; }
.workbook #tab-decision .ranking-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.workbook #tab-decision .ranking-grid > div { min-width: 0; }
.workbook #tab-decision .ranking-grid > div > .flex { flex-wrap: wrap; gap: 8px; }
.workbook .stock-open { text-align: left; min-height: 44px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 2px; line-height: 1.3; }
.workbook .rank-recommendation { display: block; line-height: 1.2; margin-top: 2px; }
.workbook #tab-decision .ranking-grid { margin-top: 16px; }
.workbook #tab-decision .ranking-grid td { padding-top: 6px; padding-bottom: 6px; line-height: 1.35; }
.workbook #tab-decision .ranking-grid th { padding-top: 8px; padding-bottom: 8px; }
.workbook #tab-decision .ranking-grid tbody tr { border-color: var(--table-border); }
.workbook .ranking-toggle { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; margin-top: 0; color: var(--text-muted); font-size: calc(12 * var(--font-unit)); }
.workbook .ranking-toggle:hover { color: var(--accent); background: var(--table-hover); }
.workbook .ranking-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.workbook #tab-decision .ranking-grid thead { position: sticky; top: 0; z-index: 1; }
.workbook #tab-decision td:nth-child(2) { white-space: normal; }
.workbook #tab-decision td:nth-child(3) > span { display: block; }
.workbook .decision-method .custom-input { border: 0; }
.workbook #kline-modal .kline-panel { border: 1px solid var(--border-card); }
@media (min-width: 701px) and (max-width: 1000px) {
    .workbook-layout { grid-template-columns: 198px minmax(0, 1fr); }
    .workbook .parameter-panel { padding: 20px 16px; }
    .workbook-results { padding: 28px 36px 40px 44px; }
    .performance-metrics { gap: 16px; }
    .performance-metrics .card-box:nth-child(3) { padding-left: 16px; }
    .workbook #kpi-final-wealth-box { font-size: calc(48 * var(--font-unit)); }
    .chart-frame { height: 490px; }
}
@media (min-width: 701px) and (max-width: 1100px) {
    .workbook .workbook-header { gap: 14px; padding: 12px 20px; }
    .workbook-brand { padding-right: 16px; }
    .workbook .site-header-actions { gap: 12px; }
    .workbook .primary-tabs { gap: 4px; }
    .workbook .nav-tab { padding: 0 10px; }
    .workbook .theme-switch { gap: 0; }
    .workbook .theme-option + .theme-option { padding-left: 8px; }
}
@media (min-width: 701px) and (max-width: 820px) {
    .workbook .theme-label { display: none; }
}
@media (max-width: 700px) {
    .workbook { font-size: calc(14 * var(--font-unit)); }
    .workbook > header { position: sticky !important; }
    .workbook .workbook-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; padding: 8px 16px 0; min-height: 104px; gap: 8px 4px; align-items: center !important; }
    .workbook-brand { font-size: calc(24 * var(--font-unit)); padding-right: 0; border: 0; }
    .workbook .site-header-actions { display: contents; }
    .workbook .primary-tabs { width: auto; gap: 8px; grid-row: 2; grid-column: 1 / -1; justify-content: space-between; border-top: 1px solid var(--border-card); }
    .workbook .primary-tabs .nav-tab { flex: 1; min-height: 44px; padding: 0 4px; font-size: calc(14 * var(--font-unit)); border: 0; border-bottom: 2px solid transparent; border-radius: 0; }
    .workbook .primary-tabs .nav-tab.active { background: transparent; color: var(--accent) !important; border-bottom-color: var(--accent); }
    .workbook .more-menu { position: static; grid-row: 1; grid-column: 2; justify-self: end; }
    .more-menu > summary { font-size: calc(13 * var(--font-unit)); gap: 6px; padding: 0 4px; }
    .more-menu-content { right: 16px; top: 60px; }
    .workbook .theme-switch { grid-row: 1; grid-column: 3; gap: 0; }
    .workbook .theme-option { font-size: calc(14 * var(--font-unit)); min-width: 44px; padding: 0 4px; }
    .workbook .theme-option + .theme-option { padding-left: 4px; }
    .workbook .theme-label { display: none; }
    .workbook-layout { display: block; min-height: calc(100dvh - 58px); }
    .workbook .parameter-panel { display: none; position: fixed; inset: auto 0 0; z-index: 80; max-height: 85dvh; overflow-y: auto; overscroll-behavior: contain; padding: 12px 22px max(24px, env(safe-area-inset-bottom)); border: 1px solid var(--border-card); border-radius: 12px 12px 0 0; }
    .workbook-layout.parameters-open .parameter-panel { display: block; }
    .parameter-heading { position: sticky; top: -12px; background: var(--rail-bg); padding: 10px 0; z-index: 1; }
    .rail-close { transform: rotate(-90deg); }
    .workbook .parameter-controls { display: flex !important; gap: 18px !important; }
    .workbook .parameter-controls input, .workbook .parameter-controls select { font-size: calc(16 * var(--font-unit)); }
    .workbook .parameter-controls > .primary-button { position: sticky; bottom: 0; }
    .parameter-backdrop { position: fixed; inset: 0; z-index: 70; background: #0008; width: 100%; height: 100%; }
    .workbook-results { padding: 24px 20px 32px; }
    .results-heading { align-items: flex-start; }
    .results-heading > div { flex-direction: column; gap: 6px; }
    .results-heading h1 { font-size: calc(26 * var(--font-unit)); }
    .text-button { border: 1px solid var(--border-card); border-radius: 3px; padding: 0 12px; }
    .workbook-layout:not(.rail-collapsed) #parameter-toggle { display: inline-flex; }
    .result-tabs { gap: 26px; margin-top: 16px; }
    .result-tabs button { font-size: calc(14 * var(--font-unit)); }
    .performance-metrics { grid-template-columns: 1fr 1fr; gap: 24px; padding: 24px 0; }
    .performance-metrics > .card-box:first-child { grid-column: 1 / -1; }
    .workbook #kpi-final-wealth-box { font-size: calc(48 * var(--font-unit)); }
    .performance-metrics .card-box:nth-child(3) { padding-left: 24px; }
    .chart-section { padding-top: 22px; }
    .chart-frame { height: 310px; margin-top: 16px; }
    .section-disclosure > summary { padding: 20px 0; }
    .workbook #tab-decision { padding: 24px 20px; }
    .workbook #tab-decision h2 { font-size: calc(26 * var(--font-unit)); }
    .workbook #decision-action-box { padding: 0; }
    .workbook #tab-decision .ranking-grid td:first-child, .workbook #tab-decision .ranking-grid th:first-child { position: sticky; left: 0; background: var(--bg-body); }
    .workbook #kline-modal .kline-panel { inset: 8px; }
    .workbook #kline-modal select, .workbook #kline-modal button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .workbook *, .workbook *::before, .workbook *::after { transition: none !important; animation: none !important; } }
/* Use the result area's width, including the user's font size and sidebar. */
@container (max-width: 44rem) {
    .performance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; align-items: start; }
    .performance-metrics > .card-box:first-child { grid-column: 1 / -1; }
    .performance-metrics .card-box:nth-child(3) { border-left: 0; padding-left: 0; }
}
.workbook-doc main { padding-bottom: 32px; }
.workbook-doc main > .card-box { border-width: 0 0 1px; border-radius: 0 !important; padding-left: 0; padding-right: 0; }
.workbook-doc .text-sm { font-size: calc(14 * var(--font-unit)); }
.workbook-doc main { max-width: 900px; }
.workbook-doc .custom-input { background: var(--rail-bg) !important; border: 0; }
.workbook-doc .doc-h2 { font-size: calc(21 * var(--font-unit)); border-left-color: var(--accent); }
.workbook-doc .doc-header-inner { min-height: 64px; }
@media (max-width: 700px) {
    .workbook-doc > header { position: relative !important; }
    .workbook-doc main { padding-left: 20px; padding-right: 20px; }
    .workbook-doc .doc-h2 { font-size: calc(19 * var(--font-unit)); }
}
