
:root { --ink:#30383f; --muted:#667078; --green:#d31145; --mint:#f6cfda; --cream:#fff7f8; --paper:#ffffff; --gold:#ff7a85; --line:#ead9de; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif; }
button,input,select { font:inherit; }
button { cursor:pointer; }
.site-header { height:76px; padding:0 clamp(24px,5vw,72px); display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,.94); border-bottom:3px solid var(--green); backdrop-filter:blur(14px); position:sticky; top:0; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; font-weight:750; letter-spacing:.04em; }
.brand-mark { width:40px; height:34px; display:grid; place-items:center; color:white; background:var(--green); clip-path:polygon(0 0,82% 0,100% 28%,86% 100%,0 100%); font:800 14px Arial,sans-serif; letter-spacing:-.06em; }
.header-note { color:var(--muted); font-size:13px; letter-spacing:.08em; }
.developer-credit { padding:18px 24px 22px; color:#8b6974; background:var(--cream); border-top:1px solid var(--line); text-align:center; font-size:12px; letter-spacing:.04em; }
.developer-credit strong { color:var(--ink); font-weight:700; }
.intro { min-height:calc(100vh - 76px); display:grid; grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr); gap:clamp(48px,8vw,120px); align-items:center; padding:64px clamp(24px,7vw,110px); position:relative; overflow:hidden; }
.intro::before { content:""; width:540px; height:390px; position:absolute; right:-180px; top:-100px; background:linear-gradient(145deg,var(--green) 0 42%,var(--gold) 42% 69%,var(--mint) 69%); clip-path:polygon(18% 0,100% 0,100% 100%,68% 78%,47% 100%,0 55%); opacity:.96; }
.intro::after { content:""; width:360px; height:220px; position:absolute; left:-110px; bottom:-85px; background:linear-gradient(145deg,var(--mint),var(--gold)); clip-path:polygon(0 30%,55% 0,100% 55%,75% 100%,0 82%); opacity:.75; }
.intro-copy,.start-card { position:relative; z-index:1; }
.eyebrow { margin:0 0 20px; color:#c8194b; font-size:12px; font-weight:750; letter-spacing:.18em; text-transform:uppercase; }
.intro h1 { margin:0; max-width:760px; font-family:"Songti SC","Noto Serif SC",serif; font-weight:500; font-size:clamp(48px,6vw,82px); line-height:1.08; letter-spacing:-.045em; }
.lead { max-width:680px; margin:28px 0; color:#735a63; font-size:18px; line-height:1.9; }
.trust-row { display:flex; gap:40px; margin-top:34px; }
.trust-row div { display:grid; gap:3px; }
.trust-row strong { font-family:Georgia,serif; font-size:29px; color:var(--green); }
.trust-row span { color:var(--muted); font-size:12px; }
.source-proof { max-width:680px; margin-top:28px; padding:18px 20px; color:#725862; background:rgba(255,255,255,.72); border:1px solid rgba(211,17,69,.14); border-top:4px solid var(--green); }
.source-proof-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.source-proof-heading span { color:#9d1640; font-size:10px; font-weight:800; letter-spacing:.1em; }
.source-proof-heading small { color:var(--muted); font-size:9px; }
.source-proof-grid { margin-top:13px; display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.source-proof-grid>div { padding:10px 8px; display:grid; gap:3px; background:#fff7f8; }
.source-proof-grid strong { color:var(--ink); font:600 20px Georgia,serif; }
.source-proof-grid span { color:var(--muted); font-size:9px; }
.source-proof>p { margin:12px 0 0; font-size:10px; line-height:1.65; }
.privacy-note { max-width:650px; margin-top:38px; padding:16px 18px; color:#735a63; background:rgba(255,255,255,.62); border-left:3px solid var(--gold); font-size:13px; line-height:1.7; }
.privacy-note span { color:var(--ink); font-weight:700; margin-right:8px; }
.start-card { padding:38px; background:var(--paper); border:1px solid rgba(211,17,69,.14); border-top:8px solid var(--green); border-radius:0 32px 0 0; box-shadow:0 28px 70px rgba(124,18,49,.13); }
.step-kicker { display:inline-block; margin-bottom:12px; padding:6px 10px; color:var(--green); background:var(--mint); font-size:11px; font-weight:750; letter-spacing:.1em; }
.start-card h2 { margin:0 0 26px; font-family:"Songti SC",serif; font-size:30px; font-weight:600; }
.start-card>label:not(.consent) { display:grid; gap:8px; margin:18px 0; font-size:13px; font-weight:700; }
.start-card label small { color:var(--muted); font-size:10px; font-weight:400; line-height:1.55; }
.preference-guidance { min-height:31px; padding:8px 10px; color:#7d1737 !important; background:#fff1f4; border-left:3px solid #e5cbd3; transition:.2s ease; }
.preference-guidance.active { background:#f9e1e7; border-left-color:var(--green); }
.start-card input[type="text"],.start-card input:not([type]),.start-card select { width:100%; height:48px; padding:0 14px; color:var(--ink); background:white; border:1px solid #e5cbd3; border-radius:6px; outline:none; }
.start-card input:focus,.start-card select:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(211,17,69,.10); }
.consent { display:flex; gap:10px; margin:24px 0 20px; color:var(--muted); font-size:12px; line-height:1.65; }
.consent input { width:17px; height:17px; accent-color:var(--green); flex:none; margin-top:2px; }
.primary,.secondary { min-height:48px; padding:0 20px; border-radius:5px; border:1px solid var(--green); font-weight:700; transition:.2s ease; }
.primary { color:white; background:var(--green); }
.primary:hover:not(:disabled) { background:#ad0d37; transform:translateY(-1px); box-shadow:0 8px 20px rgba(211,17,69,.20); }
.primary:disabled { opacity:.38; cursor:not-allowed; }
.start-card .primary { width:100%; display:flex; align-items:center; justify-content:space-between; }
.secondary { color:var(--green); background:transparent; }
.secondary:disabled { opacity:.25; cursor:not-allowed; }
.microcopy { margin:13px 0 0; color:#82908b; text-align:center; font-size:11px; }
.quiz-shell { max-width:1240px; margin:0 auto; padding:54px 28px 90px; display:grid; grid-template-columns:260px minmax(0,760px); justify-content:center; gap:68px; }
.progress-panel { position:sticky; top:116px; align-self:start; }
.progress-panel h2 { margin:0 0 4px; font:600 28px "Songti SC",serif; }
.progress-panel>p:not(.eyebrow) { margin:0; color:var(--muted); font-size:13px; }
.progress-track { height:4px; margin:26px 0 8px; background:#efd7de; border-radius:4px; overflow:hidden; }
.progress-track span { display:block; height:100%; background:var(--gold); transition:width .3s ease; }
.progress-panel small { color:var(--muted); }
.progress-panel ol { list-style:none; padding:0; margin:32px 0; display:grid; gap:18px; }
.progress-panel li { display:flex; align-items:center; gap:12px; color:#9b818a; font-size:13px; }
.progress-panel li span { width:28px; height:28px; display:grid; place-items:center; border:1px solid #dfbec8; border-radius:50%; font-size:11px; }
.progress-panel li.active { color:var(--ink); font-weight:750; }
.progress-panel li.active span { color:white; background:var(--green); border-color:var(--green); }
.progress-panel li.done span { color:var(--green); background:var(--mint); border-color:transparent; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; padding-bottom:26px; border-bottom:1px solid var(--line); }
.section-heading p { margin:0 0 5px; color:#c8194b; font-size:12px; font-weight:700; }
.section-heading h1 { margin:0; font:600 42px "Songti SC",serif; }
.section-heading>span { color:var(--muted); font-size:12px; }
.question-card { margin:0; padding:36px 0; border:0; border-bottom:1px solid var(--line); }
.question-card legend { width:100%; display:flex; gap:16px; font-size:18px; font-weight:750; line-height:1.55; }
.question-card legend>span { flex:none; width:30px; height:30px; display:grid; place-items:center; color:#c8194b; border:1px solid #e29aac; border-radius:50%; font:700 12px Georgia,serif; }
.helper { margin:8px 0 0 46px; color:var(--muted); font-size:12px; }
.option-list { margin:22px 0 0 46px; display:grid; gap:9px; }
.option-list label { min-height:66px; padding:13px 16px; display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.72); border:1px solid transparent; border-radius:3px; cursor:pointer; transition:.15s; }
.option-list label:hover { background:white; border-color:#e0b8c4; }
.option-list label.selected { background:white; border-color:var(--green); box-shadow:0 6px 18px rgba(211,17,69,.08); }
.option-list input { position:absolute; opacity:0; pointer-events:none; }
.radio-dot { width:18px; height:18px; flex:none; border:1.5px solid #b99ca5; border-radius:50%; }
.selected .radio-dot { border:5px solid var(--green); }
.option-copy { display:grid; gap:3px; }
.option-copy strong { font-size:14px; }
.option-copy small { color:var(--muted); font-size:12px; }
.quiz-actions { display:flex; justify-content:space-between; margin-top:32px; }
.quiz-actions .primary { min-width:180px; display:flex; justify-content:space-between; gap:20px; align-items:center; }
.report { min-height:100vh; padding:38px 24px 100px; background:#f3e8eb; }
.report-toolbar { max-width:1020px; margin:0 auto 18px; display:flex; justify-content:space-between; }
.text-button { color:var(--green); background:none; border:0; font-weight:700; }
.report-paper { max-width:1120px; margin:auto; padding:58px 64px; background:var(--paper); box-shadow:0 18px 60px rgba(92,21,43,.12); }
.report-cover { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; padding-bottom:44px; border-bottom:1px solid var(--line); }
.report-cover h1 { margin:0 0 18px; font:500 52px/1.12 "Songti SC",serif; }
.report-cover>div>p:last-child { color:var(--muted); }
.cover-source { max-width:690px; margin-top:18px; padding:12px 14px; display:grid; gap:4px; color:#725862; background:#fff1f4; border-left:3px solid var(--green); }
.cover-source strong { color:var(--ink); font-size:10px; }
.cover-source span { font-size:11px; font-weight:700; line-height:1.55; }
.cover-source small { color:var(--muted); font-size:9px; line-height:1.55; }
.score-seal { width:150px; height:150px; display:grid; place-content:center; text-align:center; border:2px solid; border-radius:50%; box-shadow:inset 0 0 0 8px var(--paper),inset 0 0 0 9px #edd6dd; }
.score-seal span { font-size:12px; letter-spacing:.18em; }
.score-seal strong { font:600 48px Georgia,serif; line-height:1; }
.score-seal small { margin-top:5px; color:var(--muted); font-size:10px; }
.profile-banner { margin:34px 0 44px; padding:23px 26px; display:grid; grid-template-columns:190px 1fr; align-items:center; gap:30px; background:#f9e1e7; border-left:7px solid; }
.profile-banner span { color:var(--muted); font-size:11px; letter-spacing:.1em; }
.profile-banner h2 { margin:4px 0 0; font:600 29px "Songti SC",serif; }
.profile-banner p { margin:0; color:#725862; line-height:1.8; }
.report-grid { display:grid; grid-template-columns:1fr 1.12fr; gap:52px; }
.report-section { position:relative; }
.report-section.full { margin-top:54px; padding-top:38px; border-top:1px solid var(--line); }
.section-number { color:#cc2d58; font:700 11px Georgia,serif; letter-spacing:.15em; }
.report-section h2 { margin:6px 0 8px; font:600 25px "Songti SC",serif; }
.section-intro { min-height:62px; margin:0 0 25px; color:var(--muted); font-size:12px; line-height:1.7; }
.dimension-list { display:grid; gap:17px; }
.dimension>div:first-child { display:flex; justify-content:space-between; margin-bottom:6px; font-size:12px; }
.dimension strong { font:600 13px Georgia,serif; }
.dimension-track { height:7px; background:#f0dce2; overflow:hidden; }
.dimension-track i { display:block; height:100%; }
.pathway-list { display:grid; gap:8px; }
.pathway { padding:17px 0; display:grid; grid-template-columns:34px 1fr; gap:12px; border-top:1px solid var(--line); }
.pathway>span { color:#a47946; font:600 11px Georgia,serif; }
.pathway-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pathway h3 { margin:0; font-size:15px; }
.pathway em { flex:none; padding:3px 7px; color:var(--green); background:var(--mint); font-size:10px; font-style:normal; }
.pathway p { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.65; }
.review-grid { margin-top:22px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.review-grid>div { padding:17px; display:flex; gap:12px; background:#fff1f4; }
.review-grid>div>span { color:#cf315d; font-size:18px; }
.review-grid p { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.review-grid strong { display:block; margin-bottom:4px; color:var(--ink); font-size:13px; }
.flag-box { margin-top:30px; padding:20px 22px; color:#694135; background:#f7eae2; border-left:4px solid #b76445; }
.flag-box strong { font-size:13px; }
.flag-box p { margin:8px 0 0; font-size:12px; line-height:1.6; }
.report-footer { margin-top:44px; padding-top:22px; color:#6b7672; border-top:1px solid var(--line); font-size:10px; line-height:1.7; }
.report-footer>strong { color:var(--ink); }
.report-footer>p { margin:5px 0 20px; }
.report-footer>div { display:flex; justify-content:space-between; gap:18px; color:var(--ink); }
.report-v2 .report-toolbar { max-width:1120px; }
.report-v2 .profile-banner { grid-template-columns:210px 1fr; }
.report-v2 .profile-banner>div:last-child>strong { display:block; margin-bottom:6px; font-size:15px; }
.report-v2 .profile-banner>div:last-child>p { margin:0; }
.radar-section { display:grid; grid-template-columns:minmax(380px,.9fr) minmax(360px,1.1fr); gap:54px; align-items:center; }
.radar-section canvas { display:block; margin:8px auto 0; }
.dimension-list.rich { gap:10px; }
.dimension-card { padding:14px 16px; background:#fff1f4; break-inside:avoid; }
.dimension-card>div:first-child { display:flex; align-items:center; gap:9px; margin-bottom:8px; }
.dimension-card span { font-size:13px; font-weight:700; }
.dimension-card strong { margin-left:auto; font:600 16px Georgia,serif; }
.dimension-card em { padding:2px 6px; color:var(--green); background:var(--mint); font-size:9px; font-style:normal; }
.dimension-card p { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.55; }
.profile-columns { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:20px; }
.profile-columns>div { padding:22px; background:#fff1f4; }
.profile-columns span { color:#c62854; font-size:10px; font-weight:750; letter-spacing:.12em; }
.profile-columns p { margin:8px 0 0; color:#725862; font-size:13px; line-height:1.8; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:22px 0 14px; }
.metric-grid>div { min-height:138px; padding:20px 18px; display:flex; flex-direction:column; background:#fff1f4; border-top:4px solid var(--green); }
.metric-grid span { color:#8b6974; font-size:10px; font-weight:750; letter-spacing:.06em; }
.metric-grid strong { margin:13px 0 8px; color:var(--ink); font:600 27px Georgia,"Noto Sans SC",sans-serif; }
.metric-grid small { margin-top:auto; color:var(--muted); font-size:10px; line-height:1.55; }
.data-note { padding:15px 18px; color:var(--muted); background:#faf4f6; border-left:3px solid var(--gold); font-size:11px; line-height:1.7; }
.data-note strong { color:var(--ink); }
.allocation-intro { min-height:0; max-width:760px; }
.allocation-bar { height:48px; display:flex; overflow:hidden; border-radius:4px; box-shadow:inset 0 0 0 1px rgba(23,48,45,.08); }
.allocation-bar span { display:grid; place-items:center; color:white; font:700 11px Georgia,serif; text-shadow:0 1px 2px rgba(0,0,0,.25); }
.allocation-legend { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin:14px 0 26px; }
.allocation-legend>div { display:grid; grid-template-columns:8px 1fr auto; gap:7px; align-items:center; color:var(--muted); font-size:9px; }
.allocation-legend i { width:8px; height:8px; border-radius:50%; }
.allocation-legend strong { color:var(--ink); font:600 11px Georgia,serif; }
.asset-cards { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }
.asset-cards>div { min-height:148px; padding:17px 14px; border:1px solid var(--line); }
.asset-cards strong { font-size:12px; }
.asset-cards p { margin:8px 0 0; color:var(--muted); font-size:10px; line-height:1.65; }
.signal-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.signal-list>div { display:flex; gap:12px; padding:20px; background:#fff1f4; }
.signal-list>div>span { color:#cf315d; font-size:18px; }
.signal-list p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.signal-list strong { display:block; margin-bottom:4px; color:var(--ink); font-size:13px; }
.self-check .review-grid>div>span { font:600 13px Georgia,serif; }
.source-note a { color:var(--green); text-underline-offset:2px; }
.fund-match-section { scroll-margin-top:96px; }
.fund-match-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; }
.fund-match-heading>div:first-child { flex:1; }
.fund-match-heading .section-intro { max-width:720px; min-height:0; margin-bottom:22px; }
.database-seal { flex:none; min-width:174px; padding:14px 16px; display:grid; gap:2px; color:#7d1737; background:#fff1f4; border-top:4px solid var(--green); }
.database-seal span { color:#9b6e7c; font-size:9px; font-weight:750; letter-spacing:.12em; }
.database-seal strong { font:600 25px Georgia,serif; }
.database-seal small { color:var(--muted); font-size:9px; }
.match-summary { display:grid; grid-template-columns:150px 150px 1fr; gap:12px; margin:6px 0 20px; }
.match-summary>div { min-height:98px; padding:15px; display:grid; align-content:start; background:#f9e1e7; }
.match-summary span { color:#8b6974; font-size:9px; font-weight:750; }
.match-summary strong { margin:5px 0 2px; font:600 26px Georgia,serif; }
.match-summary small { color:var(--muted); font-size:9px; }
.match-summary>p { margin:0; padding:16px 18px; color:var(--muted); background:#faf4f6; font-size:11px; line-height:1.75; }
.match-summary>p strong { display:inline; margin:0; color:var(--ink); font:700 11px inherit; }
.fund-list { display:grid; gap:14px; }
.fund-card { display:grid; grid-template-columns:150px 1fr; border:1px solid var(--line); background:white; break-inside:avoid; }
.fund-card.preferred-fund { border-color:#d31145; box-shadow:0 8px 24px rgba(211,17,69,.08); }
.fund-card.portfolio-fund { border-left:5px solid var(--green); }
.fund-rank { padding:22px 18px; display:flex; flex-direction:column; align-items:flex-start; background:#fff1f4; border-right:1px solid var(--line); }
.fund-rank span { color:#c62854; font:700 10px Georgia,serif; letter-spacing:.12em; }
.fund-rank strong { margin:9px 0 4px; font:600 18px "Songti SC",serif; line-height:1.35; }
.fund-rank b { margin-top:8px; padding:4px 7px; color:white; background:var(--green); font-size:8px; font-weight:700; }
.fund-rank .portfolio-badge { background:#356138; }
.fund-rank .reserve-badge { color:#7d1737; background:#f4dbe2; }
.fund-rank em { margin-top:auto; padding-top:26px; color:#8b6974; font-size:9px; font-style:normal; }
.fund-card-main { padding:22px 24px; min-width:0; }
.fund-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.fund-heading h3 { margin:0; font-size:17px; line-height:1.5; }
.fund-heading p { margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.risk-pill { flex:none; padding:5px 9px; font-size:9px; font-weight:750; border-radius:999px; }
.risk-low { color:#356138; background:#e7f1e4; }
.risk-medium { color:#8b5b00; background:#fff0c9; }
.risk-high { color:#a80d36; background:#f8dce4; }
.fund-meta { display:flex; flex-wrap:wrap; gap:7px 18px; margin:15px 0; color:#8b6974; font-size:9px; }
.fund-meta strong { color:var(--ink); font-size:10px; }
.star-rating { margin-left:auto; color:#c58b21; letter-spacing:.05em; }
.fund-metrics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #efdce2; }
.fund-metrics>div { min-height:68px; padding:11px 12px; display:grid; gap:5px; border-right:1px solid #efdce2; }
.fund-metrics>div:last-child { border-right:0; }
.fund-metrics span { color:var(--muted); font-size:8px; }
.fund-metrics strong { font:600 16px Georgia,"Noto Sans SC",sans-serif; }
.fund-reason,.fund-caution { margin:14px 0 0; font-size:10px; line-height:1.7; }
.fund-reason { color:#68545b; }
.fund-caution { padding:10px 12px; color:#7b5f2d; background:#fff9e9; }
.fund-reason strong,.fund-caution strong { color:var(--ink); }
.preliminary-notice { margin-top:18px; padding:18px 20px; color:#725862; background:#f9e1e7; border-left:4px solid var(--green); }
.preliminary-notice>strong { font-size:12px; }
.preliminary-notice p { margin:6px 0 0; font-size:10px; line-height:1.75; }
.portfolio-panel { margin:22px 0 28px; border:1px solid #d9c0c8; background:#fff; }
.portfolio-title { padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:white; background:#7d1737; }
.portfolio-title span { font:700 9px Georgia,serif; letter-spacing:.16em; opacity:.75; }
.portfolio-title h3 { margin:4px 0 0; font:600 23px "Songti SC",serif; }
.portfolio-title>div:last-child { display:grid; text-align:right; }
.portfolio-title>div:last-child strong { font:600 30px Georgia,serif; }
.portfolio-title>div:last-child small { font-size:9px; opacity:.8; }
.portfolio-row { padding:15px 20px; display:grid; grid-template-columns:32px 1fr 70px 120px; gap:14px; align-items:center; border-top:1px solid var(--line); }
.portfolio-row>span { color:#c62854; font:700 10px Georgia,serif; }
.portfolio-row>div { display:grid; gap:3px; min-width:0; }
.portfolio-row>div strong { font-size:11px; line-height:1.45; }
.portfolio-row>div small { color:var(--muted); font-size:9px; }
.portfolio-row>b { color:var(--green); font:600 22px Georgia,serif; text-align:right; }
.portfolio-row>em { color:#356138; font-size:10px; font-style:normal; font-weight:700; text-align:right; }
.portfolio-total { padding:16px 20px; display:grid; grid-template-columns:1fr auto; gap:4px 16px; align-items:center; background:#eff7eb; border-top:1px solid #d4e7d0; }
.portfolio-total span { color:#58705a; font-size:9px; }
.portfolio-total strong { color:#264c2b; font-size:14px; }
.portfolio-total small { grid-column:1/-1; color:#667a68; font-size:8px; line-height:1.55; }
.portfolio-analytics { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #d4e7d0; }
.portfolio-analytics>div { min-height:118px; padding:16px 14px; display:flex; flex-direction:column; gap:7px; background:#eff7eb; border-right:1px solid #d4e7d0; }
.portfolio-analytics>div:last-child { border-right:0; }
.portfolio-analytics span { color:#58705a; font-size:9px; font-weight:750; }
.portfolio-analytics strong { color:#264c2b; font:600 18px Georgia,"Noto Sans SC",sans-serif; line-height:1.35; }
.portfolio-analytics small { margin-top:auto; color:#667a68; font-size:8px; line-height:1.55; }
.portfolio-analytics .positive { background:#fff0f3; }
.portfolio-analytics .positive span,.portfolio-analytics .positive small { color:#8e5264; }
.portfolio-analytics .positive strong { color:#a80d36; }
.portfolio-analytics .negative { background:#edf6f2; }
.portfolio-analytics .negative span,.portfolio-analytics .negative small { color:#55736a; }
.portfolio-analytics .negative strong { color:#1F6B57; }
.portfolio-analysis-note { padding:14px 18px; color:#725862; background:#fff9e9; border-top:1px solid #eadfbc; font-size:9px; line-height:1.75; }
.portfolio-analysis-note strong { color:var(--ink); }
.candidate-divider { margin:30px 0 14px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.candidate-divider span { padding-bottom:8px; color:var(--ink); font-size:14px; font-weight:750; }
.candidate-divider small { padding-bottom:8px; color:var(--muted); font-size:9px; }
.fund-loading,.fund-unavailable { padding:28px; color:var(--muted); background:#faf4f6; border-left:4px solid var(--gold); font-size:12px; line-height:1.8; }
.watchlist-review { margin:4px 0 18px; border:1px solid var(--line); }
.watchlist-heading { padding:12px 15px; display:flex; align-items:center; justify-content:space-between; gap:18px; color:white; background:#7d1737; }
.watchlist-heading span { font-size:11px; font-weight:750; }
.watchlist-heading small { font-size:9px; opacity:.8; }
.watch-row { padding:12px 15px; display:grid; grid-template-columns:54px minmax(180px,.9fr) 1.4fr; gap:14px; align-items:center; border-top:1px solid var(--line); }
.watch-row:first-of-type { border-top:0; }
.watch-row>strong { font:700 13px Georgia,serif; }
.watch-row>span { font-size:10px; line-height:1.45; }
.watch-row>em { font-size:9px; font-style:normal; line-height:1.55; }
.watch-selected { background:#eff7eb; }
.watch-selected>em { color:#356138; }
.watch-outside-risk { background:#fff0f3; }
.watch-outside-risk>em { color:#a80d36; font-weight:700; }
.watch-review { background:#fff9e9; }
.watch-review>em { color:#7b5f2d; }
.answer-review { scroll-margin-top:96px; }
.answer-overview { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:18px 0 26px; }
.answer-overview>div { min-height:108px; padding:16px; display:flex; flex-direction:column; gap:6px; background:#fff1f4; border-top:3px solid var(--green); }
.answer-overview span { color:#8b6974; font-size:9px; font-weight:750; letter-spacing:.06em; }
.answer-overview strong { font-size:13px; line-height:1.5; }
.answer-overview small { margin-top:auto; color:var(--muted); font-size:9px; line-height:1.55; }
.answer-list { border:1px solid var(--line); }
.answer-row { min-height:88px; padding:15px 18px; display:grid; grid-template-columns:38px minmax(260px,1.25fr) minmax(260px,1fr); gap:16px; align-items:start; border-top:1px solid var(--line); break-inside:avoid; }
.answer-row:first-child { border-top:0; }
.answer-row>span { color:#c62854; font:700 11px Georgia,serif; }
.answer-row>div { display:grid; gap:4px; }
.answer-row>div small { color:#9b6e7c; font-size:8px; font-weight:750; letter-spacing:.08em; }
.answer-row>div strong { font-size:11px; line-height:1.55; }
.answer-row>p { margin:0; display:grid; gap:5px; color:#725862; font-size:10px; line-height:1.55; }
.answer-row>p b { color:var(--ink); font-size:11px; }
.answer-row>p em { color:var(--muted); font-style:normal; }

.monthly-entry { max-width:680px; margin:30px 0 4px; padding:20px 22px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; color:white; background:linear-gradient(120deg,#7d1737,#d31145); border-left:5px solid var(--gold); box-shadow:0 14px 34px rgba(125,23,55,.16); }
.monthly-entry span { color:#f6ced9; font-size:10px; font-weight:800; letter-spacing:.12em; }
.monthly-entry h2 { margin:5px 0 6px; font:600 25px "Songti SC",serif; }
.monthly-entry p { margin:0; color:#fff3f6; font-size:12px; line-height:1.65; }
.monthly-button { min-width:146px; min-height:46px; padding:0 16px; display:flex; justify-content:space-between; align-items:center; gap:16px; color:#7d1737; background:white; border:0; border-radius:4px; font-size:12px; font-weight:750; }
.monthly-button:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(0,0,0,.16); }
.monthly-page { min-height:100vh; padding:28px 24px 90px; background:#f3e8eb; }
.monthly-toolbar { max-width:1160px; margin:0 auto 18px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.monthly-toolbar>div { display:flex; gap:10px; }
.monthly-period-picker { min-width:250px; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:12px; color:#66726f; font-size:10px; font-weight:800; }
.monthly-period-control { min-width:320px; position:relative; }
#monthly-period-trigger { width:100%; min-height:52px; padding:0 9px 0 16px; display:grid; grid-template-columns:minmax(0,1fr) 42px; align-items:center; color:var(--ink); background:white; border:1px solid #cbd4d2; cursor:pointer; text-align:left; }
#monthly-period-trigger strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
#monthly-period-trigger i { width:42px; height:34px; display:grid; place-items:center; border-left:1px solid var(--line); position:relative; }
#monthly-period-trigger i::before { content:""; width:8px; height:8px; border-right:2px solid #3c4a47; border-bottom:2px solid #3c4a47; transform:translateY(-2px) rotate(45deg); }
#monthly-period-trigger:hover { border-color:#9eaaa7; background:#fbfcfc; }
#monthly-period-trigger:focus-visible { outline:2px solid #8e9b98; outline-offset:2px; }
.monthly-period-menu { width:100%; padding:6px; position:absolute; left:0; top:calc(100% + 7px); z-index:30; background:white; border:1px solid #cbd4d2; box-shadow:0 12px 28px rgba(29,41,45,.14); }
.monthly-period-menu button { width:100%; min-height:46px; padding:8px 10px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; align-items:center; color:var(--ink); background:white; border:0; cursor:pointer; text-align:left; }
.monthly-period-menu button+button { border-top:1px solid #edf0ef; }
.monthly-period-menu button:hover,.monthly-period-menu button[aria-selected="true"] { background:#f1f4f3; }
.monthly-period-menu button:focus-visible { outline:2px solid #8e9b98; outline-offset:-2px; }
.monthly-period-menu span { font-size:10px; font-weight:850; }
.monthly-period-menu small { color:var(--muted); font-size:8px; }
.monthly-period-menu b { padding:2px 5px; color:#52615d; background:#e7ecea; font-size:7px; }
.monthly-loading { max-width:1160px; margin:auto; padding:70px; color:var(--muted); background:white; text-align:center; }
.monthly-paper { max-width:1160px; margin:auto; padding:64px 68px; background:var(--paper); box-shadow:0 18px 60px rgba(92,21,43,.12); }
.monthly-cover { min-height:360px; padding:20px 0 54px; display:flex; align-items:center; justify-content:space-between; gap:60px; border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.monthly-cover::after { content:""; width:330px; height:270px; position:absolute; right:80px; bottom:-165px; background:linear-gradient(135deg,var(--mint),var(--gold)); clip-path:polygon(50% 0,100% 40%,84% 100%,13% 90%,0 28%); opacity:.55; }
.monthly-cover h1 { margin:0 0 22px; font:500 clamp(50px,7vw,78px)/1.05 "Songti SC",serif; letter-spacing:-.045em; }
.monthly-cover>div>p:last-child { color:var(--muted); font-size:15px; }
.monthly-cover-data { width:280px; padding:24px; display:grid; gap:8px; color:white; background:#7d1737; border-top:7px solid var(--gold); position:relative; z-index:1; }
.monthly-cover-data span { color:#f3c6d2; font-size:10px; font-weight:800; letter-spacing:.12em; }
.monthly-cover-data strong { margin:3px 0 5px; font:600 30px Georgia,"Noto Sans SC",sans-serif; }
.monthly-cover-data small { color:#fcebf0; font-size:11px; line-height:1.45; }
.monthly-disclaimer { margin:30px 0 54px; padding:18px 22px; display:grid; grid-template-columns:100px 1fr; gap:24px; align-items:start; color:#725862; background:#fff1f4; border-left:4px solid var(--green); }
.monthly-disclaimer strong { color:var(--ink); font-size:12px; }
.monthly-disclaimer p { margin:0; font-size:12px; line-height:1.75; }
.monthly-section { margin-top:58px; padding-top:42px; border-top:1px solid var(--line); }
.monthly-section-title { max-width:820px; margin-bottom:24px; }
.monthly-section-title>span { color:#cc2d58; font:700 11px Georgia,serif; letter-spacing:.15em; }
.monthly-section-title h2 { margin:7px 0 9px; font:600 29px "Songti SC",serif; }
.monthly-section-title p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.monthly-insights { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.monthly-insights article { min-height:210px; padding:24px 22px; background:#fff1f4; border-top:5px solid var(--green); }
.monthly-insights article>span { color:#bd7e38; font:700 12px Georgia,serif; }
.monthly-insights h3 { margin:20px 0 9px; font-size:16px; }
.monthly-insights p { margin:0; color:var(--muted); font-size:12px; line-height:1.75; }
.market-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.market-card { padding:22px; border:1px solid var(--line); background:white; }
.market-card>div:first-child { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.market-card>div:first-child span { font-size:14px; font-weight:750; }
.market-card>div:first-child b { color:var(--muted); font-size:10px; }
.market-card>strong { display:block; margin:15px 0 2px; color:var(--green); font:600 31px Georgia,serif; }
.market-card>small { color:var(--muted); font-size:9px; }
.market-card ol { list-style:none; margin:20px 0 0; padding:0; border-top:1px solid var(--line); }
.market-card li { min-height:58px; padding:11px 0; display:grid; grid-template-columns:25px 1fr; gap:10px; align-items:start; border-bottom:1px solid #f2e4e8; }
.market-card li>em { width:23px; height:23px; display:grid; place-items:center; color:#9d1640; background:#fff1f4; font:700 9px Georgia,serif; font-style:normal; border-radius:50%; }
.market-card li div { min-width:0; display:grid; gap:3px; }
.market-card li b { overflow:hidden; color:var(--ink); font-size:11px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.market-card li small { color:var(--muted); font-size:9px; }
.monthly-fund-list { display:grid; gap:12px; }
.monthly-fund-card { display:grid; grid-template-columns:150px 1fr; border:1px solid var(--line); background:white; break-inside:avoid; }
.monthly-fund-code { padding:22px 18px; display:flex; flex-direction:column; justify-content:center; color:white; background:#7d1737; }
.monthly-fund-code span { font:600 30px Georgia,serif; }
.monthly-fund-code small { margin-top:8px; color:#f4dbe2; font-size:9px; line-height:1.45; }
.monthly-fund-card>div:last-child { padding:20px 22px; }
.monthly-fund-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.monthly-fund-heading h3 { margin:0; font-size:15px; line-height:1.5; }
.monthly-fund-card p { margin:7px 0 14px; color:var(--muted); font-size:11px; line-height:1.65; }
.monthly-fund-metrics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #efdce2; }
.monthly-fund-metrics>div { min-height:64px; padding:10px; display:grid; gap:5px; border-right:1px solid #efdce2; }
.monthly-fund-metrics>div:last-child { border-right:0; }
.monthly-fund-metrics span { color:var(--muted); font-size:8px; }
.monthly-fund-metrics strong { font:600 13px Georgia,"Noto Sans SC",sans-serif; }
.monthly-fund-note { margin-top:10px; display:flex; flex-wrap:wrap; gap:8px 18px; color:#8b6974; font-size:9px; }
.monthly-risk-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.monthly-risk-grid>div { min-height:130px; padding:20px; background:#faf4f6; border-left:3px solid var(--gold); }
.monthly-risk-grid strong { font-size:13px; }
.monthly-risk-grid p { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.7; }
.monthly-method { margin-top:58px; padding:24px; color:#6f5b62; background:#f6eef0; border-top:4px solid #7d1737; }
.monthly-method strong { color:var(--ink); font-size:12px; }
.monthly-method p { margin:8px 0 0; font-size:10px; line-height:1.75; }
.monthly-cta { margin-top:24px; padding:28px 30px; display:flex; justify-content:space-between; align-items:center; gap:34px; color:white; background:linear-gradient(120deg,#7d1737,#d31145); }
.monthly-cta span { color:#f5cbd6; font-size:9px; font-weight:800; letter-spacing:.12em; }
.monthly-cta h2 { margin:6px 0; font:600 22px "Songti SC",serif; }
.monthly-cta p { max-width:680px; margin:0; color:#fff0f4; font-size:11px; line-height:1.65; }
.monthly-cta .primary { flex:none; color:#7d1737; background:white; border-color:white; }

@media screen and (max-width:900px) {
  .intro { grid-template-columns:1fr; padding-top:46px; }
  .intro-copy { text-align:center; }
  .intro h1,.lead,.privacy-note { margin-left:auto; margin-right:auto; }
  .trust-row { justify-content:center; }
  .quiz-shell { grid-template-columns:1fr; gap:28px; }
  .progress-panel { position:static; }
  .progress-panel ol { grid-template-columns:repeat(5,1fr); gap:5px; }
  .progress-panel li { font-size:0; justify-content:center; }
  .report-grid { grid-template-columns:1fr; }
  .radar-section { grid-template-columns:1fr; }
  .asset-cards { grid-template-columns:repeat(2,1fr); }
  .metric-grid { grid-template-columns:repeat(2,1fr); }
  .allocation-legend { grid-template-columns:repeat(2,1fr); }
  .section-intro { min-height:auto; }
  .match-summary { grid-template-columns:1fr 1fr; }
  .match-summary>p { grid-column:1/-1; }
  .fund-card { grid-template-columns:125px 1fr; }
  .fund-metrics { grid-template-columns:repeat(2,1fr); }
  .fund-metrics>div:nth-child(2) { border-right:0; }
  .fund-metrics>div:nth-child(-n+2) { border-bottom:1px solid #efdce2; }
  .watch-row { grid-template-columns:54px 1fr; }
  .watch-row>em { grid-column:1/-1; }
  .portfolio-analytics { grid-template-columns:repeat(2,1fr); }
  .portfolio-analytics>div:nth-child(2) { border-right:0; }
  .portfolio-analytics>div:nth-child(-n+2) { border-bottom:1px solid #d4e7d0; }
  .answer-overview { grid-template-columns:repeat(2,1fr); }
  .answer-row { grid-template-columns:32px 1fr; }
  .answer-row>p { grid-column:2; }
  .monthly-insights { grid-template-columns:1fr; }
  .monthly-insights article { min-height:0; }
  .monthly-cover { gap:30px; }
  .monthly-paper { padding:52px 42px; }
}
@media screen and (max-width:620px) {
  .site-header { height:64px; padding:0 18px; }
  .header-note { display:none; }
  .intro { min-height:auto; padding:46px 18px 70px; gap:42px; }
  .intro h1 { font-size:43px; }
  .lead { font-size:15px; }
  .trust-row { gap:24px; }
  .source-proof-grid { grid-template-columns:repeat(2,1fr); }
  .start-card { padding:26px 20px; border-radius:4px 24px 4px 4px; }
  .quiz-shell { padding:34px 18px 70px; }
  .section-heading h1 { font-size:34px; }
  .question-card { padding:30px 0; }
  .question-card legend { font-size:16px; }
  .helper,.option-list { margin-left:0; }
  .option-list label { padding:12px; }
  .quiz-actions { gap:10px; }
  .quiz-actions button { min-width:0; flex:1; }
  .report { padding:18px 8px 60px; }
  .report-paper { padding:34px 22px; }
  .report-cover { display:grid; }
  .report-cover h1 { font-size:38px; }
  .score-seal { width:118px; height:118px; }
  .score-seal strong { font-size:38px; }
  .profile-banner { grid-template-columns:1fr; gap:10px; }
  .report-v2 .profile-banner { grid-template-columns:1fr; }
  .profile-columns,.signal-list { grid-template-columns:1fr; }
  .asset-cards { grid-template-columns:1fr; }
  .metric-grid { grid-template-columns:1fr; }
  .radar-section { gap:24px; }
  .review-grid { grid-template-columns:1fr; }
  .report-footer>div { display:grid; }
  .fund-match-heading { display:grid; }
  .database-seal { width:100%; }
  .match-summary { grid-template-columns:1fr 1fr; }
  .fund-card { grid-template-columns:1fr; }
  .fund-rank { min-height:0; display:grid; grid-template-columns:auto 1fr; gap:3px 12px; border-right:0; border-bottom:1px solid var(--line); }
  .fund-rank strong { margin:0; }
  .fund-rank b { margin:2px 0 0; width:max-content; }
  .fund-rank em { grid-column:1/-1; margin:0; padding-top:5px; }
  .fund-card-main { padding:18px 16px; }
  .fund-heading { display:grid; gap:10px; }
  .risk-pill { width:max-content; }
  .star-rating { margin-left:0; }
  .fund-metrics { grid-template-columns:1fr 1fr; }
  .portfolio-row { grid-template-columns:28px 1fr 55px; gap:9px; }
  .portfolio-row>em { grid-column:2/-1; text-align:left; }
  .portfolio-total { grid-template-columns:1fr; }
  .portfolio-total small { grid-column:1; }
  .portfolio-analytics { grid-template-columns:1fr; }
  .portfolio-analytics>div { border-right:0; border-bottom:1px solid #d4e7d0; }
  .portfolio-analytics>div:last-child { border-bottom:0; }
  .candidate-divider { display:grid; gap:2px; }
  .answer-overview { grid-template-columns:1fr; }
  .answer-row { grid-template-columns:26px 1fr; padding:14px 12px; }
  .monthly-entry { grid-template-columns:1fr; text-align:left; }
  .monthly-button { width:100%; }
  .monthly-page { padding:14px 8px 60px; }
  .monthly-toolbar { padding:0 8px; display:grid; }
  .monthly-toolbar>div { display:grid; grid-template-columns:1fr 1fr; }
  .monthly-period-picker { width:100%; grid-template-columns:auto minmax(0,1fr); }
  .monthly-toolbar .primary,.monthly-toolbar .secondary { padding:0 10px; }
  .monthly-paper { padding:36px 20px; }
  .monthly-cover { min-height:0; display:grid; padding-top:0; }
  .monthly-cover h1 { font-size:45px; }
  .monthly-cover-data { width:auto; }
  .monthly-disclaimer { grid-template-columns:1fr; gap:6px; }
  .market-grid { grid-template-columns:1fr; }
  .monthly-fund-card { grid-template-columns:1fr; }
  .monthly-fund-code { padding:14px 16px; display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; }
  .monthly-fund-code span { font-size:22px; }
  .monthly-fund-code small { margin:0; }
  .monthly-fund-metrics { grid-template-columns:1fr 1fr; }
  .monthly-fund-metrics>div:nth-child(2) { border-right:0; }
  .monthly-fund-metrics>div:nth-child(-n+2) { border-bottom:1px solid #efdce2; }
  .monthly-risk-grid { grid-template-columns:1fr; }
  .monthly-cta { display:grid; }
  .monthly-cta .primary { width:100%; }
  .monthly-period-picker { grid-template-columns:1fr; }
  .monthly-period-control { width:100%; min-width:0; }
}


@media screen and (max-width:720px) {
  .ranking-podium { grid-template-columns:1fr; }
  .ranking-podium article { border-right:0; border-bottom:1px solid var(--line); }
  .ranking-podium article:last-child { border-bottom:0; }
  .ranking-table { overflow-x:auto; }
  .ranking-head,.ranking-row { min-width:850px; }
  .research-ranking>header { align-items:flex-start; }
  .ranking-boundary { grid-template-columns:1fr; gap:5px; }
}
@media print {
  @page {
    size:A4 landscape;
    margin:9mm 10mm 13mm;
    @bottom-center {
      content:counter(page) " / " counter(pages);
      color:#697573;
      font:8pt "PingFang SC","Microsoft YaHei",sans-serif;
    }
  }
  body,.report { background:white; }
  .site-header,.report-toolbar,.monthly-toolbar,.developer-credit { display:none !important; }
  .report { padding:0; }
  .report-paper { max-width:none; padding:0; box-shadow:none; }
  .report-cover h1 { font-size:38px; }
  .score-seal { width:120px; height:120px; }
  .report-section,.profile-banner,.flag-box,.allocation-bar,.profile-columns,.metric-grid,.fund-card,.match-summary { break-inside:avoid; }
  .answer-review { break-before:page; page-break-before:always; }
  .answer-overview { grid-template-columns:repeat(4,1fr); }
  .answer-row { min-height:0; padding:10px 12px; }
  .radar-section { grid-template-columns:1fr 1fr; gap:28px; }
  .asset-cards { grid-template-columns:repeat(5,1fr); }
  .report-footer { margin-top:28px; }
  .monthly-page { padding:0; background:white; }
  .monthly-paper { max-width:none; padding:0; box-shadow:none; }
  .monthly-cover { min-height:250px; }
  .monthly-entry,.monthly-cta { break-inside:avoid; }
  .monthly-section,.monthly-fund-card,.market-card,.monthly-insights article { break-inside:avoid; }
}

/* 客户投资研究台·独立视觉优化版 */
:root {
  --brand:#C8102E; --brand-dark:#920b22; --ink:#1D292D; --muted:#61706f;
  --cream:#F4F6F5; --paper:#fff; --line:#D7DEDC; --green:#1F6B57; --gold:#9B5C18;
  --soft-red:#f8ecef; --soft-green:#e8f1ee; --soft-gold:#f6efe5;
}
[hidden] { display:none!important; }
html { scroll-padding-top:82px; }
body { color:var(--ink); background:var(--cream); font-variant-numeric:tabular-nums; }
button,input,select,summary { font:inherit; }
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible { outline:3px solid rgba(200,16,46,.28); outline-offset:3px; }
.site-header { height:82px; padding:0 clamp(20px,4vw,64px); gap:28px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.97); }
.brand { flex:none; color:var(--ink); }
.brand-mark { width:48px; height:48px; clip-path:polygon(0 0,82% 0,100% 27%,86% 100%,0 100%); border-radius:0; background:#d5003d; font-family:Arial,Helvetica,sans-serif; font-size:16px; font-weight:800; letter-spacing:-.04em; }
.brand-copy { display:grid; gap:5px; line-height:1.05; }
.brand-copy>strong { color:#343b40; font-size:18px; font-weight:800; letter-spacing:.02em; }
.brand-copy>small { display:flex; align-items:center; gap:11px; color:#8b7d82; font-family:Georgia,"Times New Roman",serif; font-size:10px; font-weight:700; letter-spacing:.08em; }
.brand-copy>small span+span { padding-left:11px; color:#a76878; border-left:1px solid #d9bcc4; font-family:"PingFang SC","Microsoft YaHei",sans-serif; letter-spacing:0; }
.site-nav { display:flex; align-items:center; justify-content:center; gap:5px; margin-left:auto; }
.site-nav button { min-height:40px; padding:0 13px; color:#4b5958; background:transparent; border:0; border-bottom:2px solid transparent; font-size:13px; }
.site-nav button:hover { color:var(--brand); border-bottom-color:var(--brand); }
.header-note { flex:none; padding-left:18px; border-left:1px solid var(--line); color:var(--muted); font-size:11px; letter-spacing:0; }
.primary,.secondary { min-height:48px; border-radius:3px; border-color:var(--brand); }
.primary { color:white; background:var(--brand); }
.primary:hover:not(:disabled) { background:var(--brand-dark); box-shadow:0 8px 20px rgba(200,16,46,.18); }
.secondary,.text-button { color:var(--brand); }
.research-home { min-height:calc(100vh - 72px); padding:48px clamp(22px,5vw,76px) 34px; background:var(--cream); }
.home-main { max-width:1440px; margin:auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(340px,.7fr); gap:clamp(38px,5vw,80px); align-items:start; }
.home-kicker { margin:0 0 13px; color:var(--brand); font-size:13px; font-weight:800; }
.home-copy h1 { max-width:820px; margin:0; font-size:clamp(39px,4.4vw,64px); line-height:1.14; letter-spacing:-.045em; font-weight:760; }
.home-copy .lead { max-width:780px; margin:21px 0 16px; color:#536160; font-size:16px; line-height:1.78; }
.research-path { display:flex; align-items:center; gap:12px; color:#485554; font-size:12px; font-weight:750; }
.research-path i { width:32px; height:1px; background:var(--brand); position:relative; }
.research-path i::after { content:""; width:5px; height:5px; position:absolute; right:0; top:-2px; background:var(--brand); border-radius:50%; }
.research-home .start-card { position:sticky; top:98px; padding:29px; border:1px solid var(--line); border-top:6px solid var(--brand); border-radius:0; box-shadow:0 18px 50px rgba(29,41,45,.09); }
.research-home .step-kicker { color:var(--brand); background:var(--soft-red); letter-spacing:0; }
.research-home .start-card h2 { margin-bottom:7px; color:var(--ink); font-family:inherit; font-size:28px; }
.start-intro { margin:0 0 18px; color:var(--muted); font-size:12px; line-height:1.65; }
.research-home .start-card>label { margin:14px 0; }
.research-home .start-card input,.research-home .start-card select { border-color:var(--line); }
.research-home .start-card input:focus,.research-home .start-card select:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(200,16,46,.1); }
.preference-guidance { color:#765122!important; background:var(--soft-gold); border-left-color:#d7b783; }
.preference-guidance.active { color:#36584f!important; background:var(--soft-green); border-left-color:var(--green); }
.fund-universe { max-width:880px; margin-top:27px; padding:22px; color:white; background:#172326; }
.universe-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.universe-heading>div:first-child>span { color:#b8c4c1; font-size:11px; }
.universe-heading h2 { margin:4px 0 0; font-size:21px; }
.universe-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; color:#d6dfdd; font-size:10px; }
.universe-legend span { display:flex; align-items:center; gap:5px; }
.risk-dot { width:7px; height:7px; display:inline-block; border-radius:50%; }
.risk-dot-low { background:#77baa7; }
.risk-dot-medium { background:#d0a367; }
.risk-dot-high { background:#e64f67; }
.universe-groups { margin-top:19px; display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.universe-group { min-height:92px; padding:11px; color:white; background:#213034; border:1px solid #344448; text-align:left; }
.universe-group:hover,.universe-group[aria-pressed="true"] { border-color:#fff; background:#293b3f; }
.universe-group-name { display:flex; justify-content:space-between; gap:8px; color:#dfe6e4; font-size:10px; }
.universe-group-name b { color:white; }
.universe-dots { margin-top:10px; display:flex; flex-wrap:wrap; gap:4px; }
.universe-detail { min-height:42px; margin:14px 0 0; padding-top:12px; display:grid; grid-template-columns:auto auto 1fr; gap:9px 15px; align-items:center; border-top:1px solid #405054; color:#dae3e1; font-size:11px; }
.universe-detail strong { color:white; font-size:13px; }
.universe-detail small { color:#aebcba; text-align:right; }
.evidence-strip { max-width:1440px; margin:28px auto 0; padding:14px 0; display:flex; flex-wrap:wrap; gap:11px 27px; align-items:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:11px; }
.evidence-strip strong { color:var(--brand); }
.evidence-strip span { color:#495654; }
.evidence-strip small { margin-left:auto; color:var(--muted); }
.research-summary { max-width:1440px; margin:24px auto 0; display:grid; grid-template-columns:240px 1fr auto; gap:28px; align-items:center; }
.research-summary>div span { color:var(--brand); font-size:11px; font-weight:800; }
.research-summary h2 { margin:4px 0 0; font-size:20px; line-height:1.4; }
.research-summary ol { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-left:1px solid var(--line); }
.research-summary li { padding:0 20px; display:grid; gap:5px; border-right:1px solid var(--line); }
.research-summary li strong { font-size:12px; line-height:1.5; }
.research-summary li span { color:var(--muted); font-size:10px; line-height:1.55; }
.research-summary button { white-space:nowrap; }
.developer-credit { color:#7d8886; background:var(--cream); border-color:var(--line); }

/* 账号、客户档案与管理后台 */
.account-tools { display:flex; align-items:center; gap:6px; padding-left:12px; border-left:1px solid var(--line); }
.account-tools>button { min-height:36px; padding:0 9px; color:#52605e; background:transparent; border:1px solid transparent; font-size:11px; white-space:nowrap; }
.account-tools>button:hover { color:var(--brand); border-color:var(--line); background:white; }
.advisor-chip { min-width:86px; display:grid; padding:0 7px 0 10px; border-left:1px solid var(--line); line-height:1.25; }
.advisor-chip b { font-size:11px; }
.advisor-chip small { color:var(--muted); font-size:9px; }
.account-tools .logout-button { color:var(--brand); }
.boot-screen { min-height:100vh; display:grid; place-content:center; gap:14px; color:var(--muted); text-align:center; }
.boot-screen span { width:36px; height:36px; margin:auto; border:3px solid var(--line); border-top-color:var(--brand); border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(390px,.6fr); background:#172326; }
.login-story { min-height:100vh; padding:clamp(48px,7vw,100px); display:flex; flex-direction:column; justify-content:center; color:white; position:relative; overflow:hidden; }
.login-story::after { content:""; width:430px; height:430px; position:absolute; right:-215px; bottom:-180px; border:70px solid rgba(200,16,46,.78); border-radius:50%; }
.login-story>* { position:relative; z-index:1; }
.login-story::after { z-index:0; pointer-events:none; }
.login-brand { position:absolute; left:clamp(48px,7vw,100px); top:45px; display:flex; align-items:center; gap:12px; color:white; text-decoration:none; }
.login-brand .brand-copy>strong { color:#343b40; }
.login-brand .brand-copy>small { color:#8b7d82; }
.login-brand .brand-copy>small span+span { color:#a76878; border-left-color:#d9bcc4; }
.login-story>p { margin:0 0 16px; color:#ec9cac; font-size:12px; font-weight:800; letter-spacing:.12em; }
.login-story h1 { max-width:800px; margin:0; font-size:clamp(42px,5.2vw,74px); line-height:1.17; letter-spacing:-.045em; }
.login-capabilities { max-width:800px; margin-top:52px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #425054; border-bottom:1px solid #425054; }
.login-capabilities div { min-height:114px; padding:20px; display:grid; align-content:center; gap:10px; border-right:1px solid #425054; }
.login-capabilities div:last-child { border-right:0; }
.login-capabilities strong { color:#ec9cac; font-size:11px; }
.login-capabilities span { font-size:13px; line-height:1.6; }
.login-story>small { max-width:720px; margin-top:23px; color:#aebbb8; font-size:11px; line-height:1.75; }
.login-card { width:100%; min-height:100vh; padding:clamp(42px,5vw,72px); display:flex; flex-direction:column; justify-content:center; background:white; }
.login-card>span { color:var(--brand); font-size:11px; font-weight:800; }
.login-card h2 { margin:10px 0 8px; font-size:30px; line-height:1.35; }
.login-card>p { margin:0 0 22px; color:var(--muted); font-size:12px; line-height:1.7; }
.login-card label { margin:13px 0 0; display:grid; gap:8px; font-size:12px; font-weight:700; }
.login-card input { width:100%; height:50px; padding:0 14px; border:1px solid var(--line); border-radius:3px; }
.login-card .primary { margin-top:24px; }
.login-card .login-error { margin:13px 0 0; padding:10px 12px; color:#8b251d; background:#fff0ed; border-left:3px solid #b83a2c; }
.login-card>small { margin-top:14px; color:#87918f; font-size:10px; line-height:1.6; }
.editing-record { max-width:1440px; margin:0 auto 25px; padding:12px 16px; display:grid; grid-template-columns:auto auto 1fr auto; gap:12px 18px; align-items:center; color:#36584f; background:var(--soft-green); border-left:4px solid var(--green); font-size:11px; }
.editing-record span { font-weight:800; }
.editing-record strong { color:var(--ink); }
.editing-record small { color:#55716a; }
.editing-record button { color:var(--green); background:transparent; border:0; font-weight:800; }
.toast { max-width:min(520px,calc(100vw - 32px)); position:fixed; z-index:100; right:24px; bottom:24px; padding:13px 16px; color:white; background:#172326; box-shadow:0 15px 45px rgba(0,0,0,.2); font-size:12px; line-height:1.6; }
.management-overlay { position:fixed; inset:0; z-index:80; display:grid; justify-items:end; }
.overlay-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(17,29,31,.54); backdrop-filter:blur(3px); }
.management-panel { width:min(940px,94vw); height:100vh; position:relative; z-index:1; padding:34px; overflow:auto; background:var(--cream); box-shadow:-22px 0 70px rgba(0,0,0,.16); }
.management-panel>header { display:flex; justify-content:space-between; gap:20px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.management-panel>header span { color:var(--brand); font-size:11px; font-weight:800; }
.management-panel>header h2 { margin:7px 0 5px; font-size:28px; }
.management-panel>header p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.overlay-close { width:42px; height:42px; flex:none; color:var(--ink); background:white; border:1px solid var(--line); font-size:23px; }
.management-toolbar { margin:24px 0 15px; display:grid; grid-template-columns:1fr 220px auto; gap:10px; align-items:end; }
.management-toolbar label,.admin-create label { display:grid; gap:6px; color:#596765; font-size:10px; font-weight:800; }
.management-toolbar input,.management-toolbar select,.admin-create input { width:100%; height:45px; padding:0 12px; color:var(--ink); background:white; border:1px solid var(--line); }
.management-toolbar .secondary { min-height:45px; }
.management-summary { min-height:42px; padding:10px 13px; display:flex; justify-content:space-between; color:var(--muted); background:white; border:1px solid var(--line); font-size:11px; }
.management-summary strong { color:var(--ink); }
.record-list,.advisor-list { margin-top:10px; display:grid; gap:8px; }
.record-row { padding:15px; display:grid; grid-template-columns:54px minmax(0,1fr) 170px auto; gap:15px; align-items:center; background:white; border:1px solid var(--line); }
.record-profile { width:48px; height:48px; display:grid; place-content:center; color:white; background:#263538; text-align:center; }
.record-profile span { font-size:9px; }
.record-profile b { font-size:17px; }
.record-row h3,.advisor-list h3 { margin:0 0 4px; font-size:14px; }
.record-row p,.advisor-list p { margin:0; color:#53615f; font-size:10px; }
.record-row small { color:#84908e; font-size:9px; }
.record-metrics { display:grid; gap:5px; color:var(--muted); font-size:10px; }
.record-metrics strong { color:var(--green); font-size:11px; }
.record-actions { min-width:178px; display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.record-actions button,.advisor-list button { min-height:36px; padding:0 11px; color:var(--brand); background:white; border:1px solid #e3bdc5; font-size:10px; font-weight:800; }
.record-actions .record-view { color:white; background:var(--brand); border-color:var(--brand); }
.management-empty { padding:70px 20px; display:grid; gap:8px; color:var(--muted); background:white; text-align:center; }
.management-empty strong { color:var(--ink); }
.admin-create { margin:24px 0; padding:18px; display:grid; grid-template-columns:1fr 1.2fr 1.2fr auto; gap:10px; align-items:end; background:white; border:1px solid var(--line); }
.admin-create .primary { min-height:45px; }
.advisor-list article { padding:14px; display:grid; grid-template-columns:46px minmax(0,1fr) 78px auto auto; gap:12px; align-items:center; background:white; border:1px solid var(--line); }
.advisor-avatar { width:42px; height:42px; display:grid; place-items:center; color:white; background:#263538; font-size:11px; font-weight:800; }
.account-status { font-size:10px; font-weight:800; }
.account-status.active { color:var(--green); }
.account-status.inactive { color:#8b251d; }
.report-toolbar-managed { align-items:center; gap:16px; }
.report-toolbar-managed>span { color:var(--green); font-size:10px; text-align:center; }
.report-toolbar-managed>div { display:flex; gap:8px; }
.report-toolbar-managed .secondary,.report-toolbar-managed .primary { min-height:42px; }

/* 逐题问卷 */
.quiz-one { max-width:1280px; min-height:calc(100vh - 72px); grid-template-columns:245px minmax(0,820px); gap:56px; padding-top:48px; }
.quiz-one .progress-panel { top:104px; padding:22px; background:#fff; border-top:4px solid var(--brand); }
.quiz-one .progress-panel>div>p { margin:0 0 8px; color:var(--brand); font-size:11px; font-weight:800; }
.quiz-one .progress-panel h2 { margin:0 0 5px; font-family:inherit; font-size:23px; }
.quiz-one .progress-panel>div>span { color:var(--muted); font-size:11px; line-height:1.6; }
.quiz-one .progress-panel ol { margin:25px 0; gap:13px; }
.quiz-one .progress-panel li { align-items:center; }
.quiz-one .progress-panel li b { font-weight:600; }
.quiz-one .progress-panel li.active span { background:var(--brand); border-color:var(--brand); }
.quiz-one .progress-panel li.done span { color:var(--green); background:var(--soft-green); }
.question-progress { padding:0 0 22px; border-bottom:1px solid var(--line); }
.quiz-one .question-panel { contain:layout paint; }
.quiz-one .question-panel * { animation:none!important; transition:none!important; }
.question-progress>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.question-progress span { color:var(--brand); font-size:13px; font-weight:800; }
.question-progress strong { color:var(--muted); font-size:12px; }
.question-progress .progress-track { height:6px; margin:16px 0 0; background:#e3e8e6; }
.question-progress .progress-track i { display:block; height:100%; background:var(--brand); transition:width .22s ease; }
.quiz-one .question-card { min-height:540px; padding:39px 0 24px; }
.quiz-one .question-card legend { max-width:760px; font-size:24px; line-height:1.52; }
.quiz-one .helper { margin:12px 0 0; padding:11px 13px; color:#73562f; background:var(--soft-gold); border-left:3px solid var(--gold); font-size:12px; }
.quiz-one .option-list { margin:28px 0 0; gap:10px; }
.quiz-one .option-list label { min-height:72px; padding:13px 16px; border:1px solid var(--line); background:white; }
.quiz-one .option-list label:hover { border-color:#adbbb8; }
.quiz-one .option-list label.selected { border-color:var(--brand); box-shadow:inset 4px 0 0 var(--brand); }
.option-letter { width:30px; height:30px; flex:none; display:grid; place-items:center; color:#5e6d6a; background:#eef1f0; border-radius:50%; font-weight:800; font-size:12px; }
.selected .option-letter { color:white; background:var(--brand); }
.quiz-one .option-copy strong { font-size:15px; }
.quiz-one .option-copy small { margin-top:3px; font-size:12px; }
.quiz-one .quiz-actions { margin-top:24px; }
.quiz-note { margin:14px 0 0; color:var(--muted); text-align:center; font-size:10px; }

/* 月度研究 */
.monthly-redesign { background:#e9edeb; }
.monthly-redesign .monthly-paper { color:var(--ink); }
.monthly-redesign .monthly-cover { min-height:360px; padding:18px 0 55px; align-items:end; border-bottom:1px solid var(--line); }
.monthly-redesign .monthly-cover p { margin:0 0 13px; color:var(--brand); font-size:13px; font-weight:800; }
.monthly-redesign .monthly-cover h1 { margin:0; color:var(--ink); font-size:56px; }
.monthly-redesign .monthly-cover>div>span { display:block; margin-top:20px; color:var(--muted); font-size:12px; }
.monthly-redesign .monthly-cover-data { width:260px; color:white; background:#172326; border-top:6px solid var(--brand); }
.monthly-conclusions { margin-top:34px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.monthly-conclusions article { padding:24px; border-right:1px solid var(--line); }
.monthly-conclusions article:last-child { border-right:0; }
.monthly-conclusions span,.monthly-section-title>span { color:var(--brand); font-size:11px; font-weight:800; }
.monthly-conclusions h2 { margin:12px 0 8px; font-size:17px; line-height:1.45; }
.monthly-conclusions p { margin:0; color:var(--muted); font-size:11px; line-height:1.7; }
.monthly-directions { padding:34px 0 4px; border-bottom:1px solid var(--line); }
.direction-group { margin-top:24px; }
.direction-group>header { display:flex; justify-content:space-between; gap:24px; align-items:end; padding:0 0 11px; border-bottom:2px solid #ead9dd; }
.direction-group>header h3 { margin:0; color:var(--ink); font-size:16px; }
.direction-group>header p { max-width:620px; margin:0; color:var(--muted); font-size:10px; line-height:1.6; text-align:right; }
.direction-grid { margin-top:22px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.direction-group .direction-grid { margin-top:0; }
.direction-grid>article { min-width:0; padding:24px; background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.direction-grid article>header { display:flex; justify-content:space-between; align-items:center; }
.direction-grid article>header span { color:#a76a31; font:700 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.direction-grid article>header b { padding:5px 8px; color:var(--brand); background:#f8edf0; font-size:9px; }
.direction-grid h3 { margin:16px 0 8px; font-size:19px; }
.direction-grid article>p { min-height:56px; margin:0; color:var(--muted); font-size:11px; line-height:1.7; }
.direction-funds { margin:18px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.direction-funds span { padding:9px; display:grid; gap:3px; background:#f4f6f5; border-left:3px solid #d7b8bf; }
.direction-funds strong { color:var(--ink); font-size:11px; }
.direction-funds small { color:#63706d; font-size:9px; font-variant-numeric:tabular-nums; }
.direction-grid footer { padding-top:13px; border-top:1px solid var(--line); }
.direction-grid footer strong { color:#9b5c18; font-size:10px; }
.direction-grid footer p { margin:5px 0 0; color:#6b6259; font-size:10px; line-height:1.6; }

/* 基金配比核算 */
.allocation-page { min-height:calc(100vh - 82px); padding:34px clamp(22px,5vw,72px) 56px; background:#f4f6f5; }
.allocation-page>* { max-width:1440px; margin-left:auto; margin-right:auto; }
.allocation-intro { display:grid; grid-template-columns:minmax(0,1fr) 190px; gap:48px; align-items:end; }
.allocation-intro>div>span { color:var(--brand); font-size:12px; font-weight:850; }
.allocation-intro h1 { max-width:940px; margin:8px 0 10px; font:650 clamp(28px,3.2vw,46px)/1.2 "Songti SC","Noto Serif SC",serif; letter-spacing:-.035em; }
.allocation-intro p { max-width:900px; margin:0; color:#596665; font-size:13px; line-height:1.75; }
.allocation-intro aside { padding:16px 18px; display:grid; grid-template-columns:auto 1fr; gap:2px 10px; align-items:end; background:#fff; border-left:5px solid var(--brand); box-shadow:0 10px 26px rgba(64,45,49,.06); }
.allocation-intro aside strong { grid-row:1/3; color:var(--brand); font-size:42px; line-height:1; }
.allocation-intro aside span { font-size:12px; font-weight:800; }
.allocation-intro aside small { grid-column:1/-1; margin-top:8px; color:var(--muted); font-size:9px; }
.allocation-controls { margin-top:26px; padding:17px 18px; display:grid; grid-template-columns:150px minmax(190px,.8fr) 190px 1fr; gap:13px; align-items:end; background:#fff; border:1px solid var(--line); }
.allocation-controls label { display:grid; gap:6px; }
.allocation-controls label>span { color:#5c6867; font-size:10px; font-weight:800; }
.allocation-controls input,.allocation-controls select { width:100%; height:42px; padding:0 11px; color:var(--ink); background:#fff; border:1px solid #cfd8d6; border-radius:2px; }
.allocation-controls input:disabled { color:#8a9492; background:#f1f3f2; }
.allocation-actions { display:flex; justify-content:flex-end; gap:9px; }
.allocation-actions button { min-height:42px; padding:0 18px; }
.allocation-status { margin-top:13px; padding:12px 15px; display:grid; grid-template-columns:auto 180px; gap:20px; align-items:center; background:#fff; border:1px solid var(--line); }
.allocation-status>div { display:flex; gap:13px; align-items:center; }
.allocation-status strong { font-size:12px; }
.allocation-status span { color:var(--muted); font-size:10px; }
.allocation-status i { height:7px; display:block; background:#e5eae8; position:relative; overflow:hidden; }
.allocation-status i::after { content:""; width:var(--allocation-total); height:100%; display:block; background:var(--brand); }
.allocation-status.valid { border-left:5px solid var(--green); }
.allocation-status.valid strong { color:var(--green); }
.allocation-status.invalid { border-left:5px solid var(--gold); }
.allocation-status.invalid strong { color:var(--gold); }
.allocation-table { margin-top:15px; background:#fff; border:1px solid var(--line); }
.allocation-head { min-height:36px; padding:0 56px 0 47px; display:grid; grid-template-columns:minmax(290px,1.45fr) 100px minmax(165px,.75fr) minmax(180px,.8fr); gap:16px; align-items:center; color:#75807e; background:#f0f3f2; border-bottom:1px solid var(--line); font-size:9px; font-weight:800; }
.allocation-row { min-height:98px; padding:14px 14px 12px; display:grid; grid-template-columns:30px minmax(270px,1.45fr) 100px minmax(165px,.75fr) minmax(180px,.8fr) 28px; gap:16px; align-items:start; border-bottom:1px solid #e1e6e4; position:relative; }
.allocation-row:last-child { border-bottom:0; }
.allocation-row.minimum-fail { background:#fffaf2; }
.allocation-index { width:28px; height:28px; display:grid; place-items:center; color:#fff; background:#6e7977; font-size:10px; font-weight:850; }
.allocation-row label { display:grid; gap:6px; }
.allocation-row label>span,.allocation-amount>span,.allocation-income>span { color:#77817f; font-size:9px; font-weight:750; }
.allocation-row select,.allocation-row input { width:100%; height:38px; padding:0 10px; color:var(--ink); background:#fff; border:1px solid #cfd8d6; border-radius:2px; font-size:11px; }
.allocation-fund-picker { min-width:0; }
.allocation-fund-picker input { border-color:#b9c9c5; }
.allocation-fund-picker select { color:#54635f; }
.allocation-search-feedback { min-height:0; color:#9b5c18; font-size:10px; line-height:1.35; }
.allocation-search-feedback:empty { display:none; }
.allocation-percent>div { display:grid; grid-template-columns:1fr 27px; }
.allocation-percent input { border-right:0; text-align:right; font-weight:800; }
.allocation-percent b { display:grid; place-items:center; color:var(--brand); background:#faeef1; border:1px solid #cfd8d6; font-size:11px; }
.allocation-amount,.allocation-income { display:grid; gap:6px; }
.allocation-amount strong,.allocation-income strong { font-size:14px; font-variant-numeric:tabular-nums; }
.allocation-amount small,.allocation-income small { color:#6c7775; font-size:9px; line-height:1.45; }
.minimum-fail .allocation-amount small { color:#9b5c18; font-weight:800; }
.allocation-remove { width:28px; height:28px; color:#9f4257; background:#fff; border:1px solid #dfc7cd; font-size:17px; }
.allocation-remove:disabled { opacity:.3; cursor:not-allowed; }
.allocation-fund-name { grid-column:2/-2; margin:0; display:flex; gap:10px; align-items:center; color:#5e6967; font-size:9px; }
.allocation-fund-name b { color:var(--brand); font-size:10px; }
.allocation-fund-name em { margin-left:auto; color:#8b6b3d; font-style:normal; }
.allocation-summary { margin-top:15px; display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border:1px solid var(--line); }
.allocation-summary article { min-height:110px; padding:18px; display:grid; align-content:center; gap:7px; border-right:1px solid var(--line); }
.allocation-summary article:last-child { border-right:0; }
.allocation-summary span { color:#697573; font-size:10px; }
.allocation-summary strong { color:var(--ink); font-size:22px; font-variant-numeric:tabular-nums; }
.allocation-summary small { color:#89928f; font-size:9px; }
.allocation-problems { margin-top:14px; padding:14px 17px; color:#754818; background:#fff9ef; border-left:5px solid var(--gold); }
.allocation-problems strong { font-size:11px; }
.allocation-problems ul { margin:7px 0 0; padding-left:18px; color:#765f45; font-size:10px; line-height:1.7; }
.allocation-note { margin-top:22px; padding:15px 18px; color:#5f6b69; background:#fff; border-top:3px solid var(--brand); }
.allocation-note strong { color:var(--ink); font-size:11px; }
.allocation-note p { margin:6px 0 0; font-size:9px; line-height:1.7; }

@media screen and (max-width:1050px) {
  .allocation-controls { grid-template-columns:repeat(3,1fr); }
  .allocation-actions { grid-column:1/-1; }
  .allocation-head { display:none; }
  .allocation-row { grid-template-columns:30px minmax(240px,1fr) 90px 1fr 1fr 28px; gap:10px; }
  .allocation-summary { grid-template-columns:1fr 1fr; }
  .allocation-summary article:nth-child(2) { border-right:0; }
  .allocation-summary article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
}
@media screen and (max-width:720px) {
  .ranking-podium { grid-template-columns:1fr; }
  .ranking-podium article { border-right:0; border-bottom:1px solid var(--line); }
  .ranking-podium article:last-child { border-bottom:0; }
  .ranking-table { overflow-x:auto; }
  .ranking-head,.ranking-row { min-width:850px; }
  .research-ranking>header { align-items:flex-start; }
  .ranking-boundary { grid-template-columns:1fr; gap:5px; }
  .allocation-page { min-height:calc(100vh - 58px); padding:22px 14px 40px; }
  .allocation-intro { grid-template-columns:1fr; gap:14px; }
  .allocation-intro h1 { font-size:29px; }
  .allocation-intro aside { grid-template-columns:auto 1fr; }
  .allocation-controls { grid-template-columns:1fr 1fr; }
  .allocation-controls .rate-field { grid-column:1/-1; }
  .allocation-row { grid-template-columns:28px minmax(0,1fr) 78px 28px; }
  .allocation-row label:nth-of-type(1) { grid-column:2/4; }
  .allocation-row .allocation-percent { grid-column:2; }
  .allocation-amount,.allocation-income { grid-column:2/-1; padding-top:7px; border-top:1px solid #edf0ef; }
  .allocation-remove { grid-column:4; grid-row:1; }
  .allocation-fund-name { grid-column:2/-1; display:grid; }
  .allocation-fund-name em { margin-left:0; }
  .allocation-status { grid-template-columns:1fr; }
  .allocation-summary { grid-template-columns:1fr; }
  .allocation-summary article,.allocation-summary article:nth-child(2) { border-right:0; border-bottom:1px solid var(--line); }
}
.direction-empty { grid-column:1/-1; }
.monthly-redesign .monthly-section { margin-top:58px; }
.monthly-redesign .monthly-section-title { display:grid; grid-template-columns:170px 1fr; gap:4px 26px; align-items:end; }
.monthly-redesign .monthly-section-title h2 { margin:0; font-family:inherit; font-size:28px; }
.monthly-redesign .monthly-section-title p { grid-column:2; max-width:760px; margin-top:7px; }
.comparison-matrix { margin-top:23px; border:1px solid var(--line); background:white; overflow:hidden; }
.matrix-head,.matrix-row { display:grid; grid-template-columns:1.15fr 1fr .72fr 1.55fr 1fr; align-items:center; }
.matrix-head { min-height:42px; color:#d9e1df; background:#1d292d; font-size:10px; font-weight:750; }
.matrix-head span,.matrix-row>div { padding:10px 13px; }
.matrix-row { min-height:78px; border-bottom:1px solid var(--line); }
.matrix-row:last-child { border-bottom:0; }
.matrix-category,.matrix-metric,.matrix-leader { display:grid; gap:5px; }
.matrix-category strong,.matrix-leader strong { font-size:11px; line-height:1.35; }
.matrix-category span,.matrix-leader span,.matrix-metric small { color:var(--muted); font-size:9px; }
.matrix-metric b { font-size:14px; }
.matrix-metric i { width:100%; height:5px; display:block; background:#e9edeb; }
.matrix-metric i span { height:100%; display:block; background:var(--brand); }
.matrix-risk { display:flex; flex-wrap:wrap; gap:4px; font-size:9px; }
.matrix-risk span { padding:3px 5px; }
.risk-low-text { color:var(--green); background:var(--soft-green); }
.risk-medium-text { color:var(--gold); background:var(--soft-gold); }
.risk-high-text { color:var(--brand); background:var(--soft-red); }
.ranking-tabs { margin-top:24px; display:grid; gap:28px; }
.research-ranking { border:1px solid var(--line); background:#fff; }
.research-ranking>header { min-height:78px; padding:16px 18px; display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid var(--line); }
.research-ranking>header span { color:var(--ink); font-size:16px; font-weight:850; }
.research-ranking>header p { max-width:720px; margin:5px 0 0; color:var(--muted); font-size:10px; line-height:1.6; }
.research-ranking>header>strong { flex:none; color:var(--brand); font-size:11px; }
.ranking-podium { display:grid; grid-template-columns:repeat(3,1fr); background:#f7f9f8; border-bottom:1px solid var(--line); }
.ranking-podium article { min-width:0; padding:17px 16px; display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:5px 10px; align-items:start; border-right:1px solid var(--line); }
.ranking-podium article:last-child { border-right:0; }
.ranking-place { width:26px; height:26px; display:grid; place-items:center; color:#fff; background:var(--brand); font-size:11px; font-weight:850; }
.ranking-podium article>div { min-width:0; }
.ranking-podium article>div strong { display:block; font-size:10px; line-height:1.45; }
.ranking-podium article>div small { display:block; margin-top:3px; color:var(--muted); font-size:8px; line-height:1.4; }
.ranking-podium article>b { color:var(--brand); font-size:23px; font-variant-numeric:tabular-nums; }
.ranking-podium article>b small { margin-left:2px; font-size:8px; }
.ranking-podium article>p { grid-column:2/-1; margin:2px 0 0; color:#5f6c69; font-size:9px; line-height:1.55; }
.ranking-podium article>.rank-movement { grid-column:2/-1; justify-self:start; }
.rank-average-inline { grid-column:2/-1; color:#596864; font-size:8px; font-weight:800; }
.ranking-head,.ranking-row { display:grid; grid-template-columns:48px minmax(190px,1.35fr) 102px minmax(180px,1.2fr) 78px 76px 60px 64px; align-items:center; }
.ranking-head { min-height:38px; color:#e6ecea; background:#394649; font-size:9px; font-weight:800; }
.ranking-head>* ,.ranking-row>* { padding:9px 11px; }
.ranking-row { min-height:60px; border-top:1px solid var(--line); color:#586461; font-size:9px; }
.ranking-row>span:first-child { color:var(--brand); font:650 17px Georgia,serif; text-align:center; }
.ranking-row>div { min-width:0; display:grid; gap:3px; }
.ranking-row>div strong { color:var(--ink); font-size:10px; line-height:1.45; }
.ranking-row>div small { color:#9b5c18; font-size:8px; }
.fund-income-tag { display:inline-flex; margin-left:5px; padding:2px 5px; vertical-align:1px; font-size:7px; line-height:1.2; font-weight:850; white-space:nowrap; }
.fund-income-tag.is-income { color:#7b4300; background:#f6dfad; box-shadow:inset 0 0 0 1px rgba(123,67,0,.28); }
.fund-income-tag.is-accumulation { color:#155b88; background:#e5f2fb; box-shadow:inset 0 0 0 1px rgba(21,91,136,.24); }
.ranking-row>b { color:var(--brand); font-size:16px; text-align:center; }
.ranking-row>i { width:max-content; min-width:42px; padding:4px 7px; text-align:center; font-size:8px; font-style:normal; font-weight:800; }
.rank-movement { width:max-content; padding:4px 7px; font-size:8px; font-style:normal; font-weight:850; white-space:nowrap; }
.rank-up { color:var(--brand); background:var(--soft-red); }
.rank-down { color:var(--green); background:var(--soft-green); }
.rank-flat,.rank-baseline { color:#687471; background:#edf1ef; }
.rank-new { color:var(--gold); background:var(--soft-gold); }
.rank-average { display:grid; gap:2px; color:var(--ink); font-size:9px; font-weight:850; text-align:center; }
.rank-average small { color:var(--muted)!important; font-size:7px!important; font-weight:650; }
.ranking-month-summary { padding:10px 16px; display:grid; grid-template-columns:auto 1fr; gap:5px 12px; align-items:center; border-top:1px solid var(--line); background:#f7f9f8; color:var(--muted); font-size:9px; }
.ranking-month-summary strong { color:var(--ink); }
.ranking-month-summary small { grid-column:2; color:#788481; font-size:8px; line-height:1.5; }
.confidence-high { color:var(--green); background:var(--soft-green); }
.confidence-medium { color:var(--gold); background:var(--soft-gold); }
.confidence-pending { color:#687471; background:#edf1ef; }
.ranking-boundary { margin-top:14px; padding:14px 17px; display:grid; grid-template-columns:90px 1fr; gap:16px; color:var(--gold); background:var(--soft-gold); }
.ranking-boundary strong { font-size:10px; }
.ranking-boundary p { margin:0; color:var(--muted); font-size:9px; line-height:1.7; }
.capital-ranking-summary { margin:22px 0 12px; display:grid; grid-template-columns:220px 1fr; border:1px solid var(--line); background:#f7f9f8; }
.capital-ranking-summary>div { padding:16px 18px; display:flex; align-items:baseline; gap:10px; border-right:1px solid var(--line); }
.capital-ranking-summary strong { color:var(--brand); font-size:28px; font-variant-numeric:tabular-nums; }
.capital-ranking-summary span,.capital-ranking-summary p { color:var(--muted); font-size:10px; line-height:1.6; }
.capital-ranking-summary p { margin:0; padding:15px 18px; }
.capital-ranking-scroll { overflow-x:auto; border:1px solid var(--line); background:white; }
.capital-ranking-table { min-width:960px; }
.capital-rank-head,.capital-rank-row { display:grid; grid-template-columns:48px minmax(240px,1.65fr) repeat(6,minmax(88px,.72fr)); align-items:center; }
.capital-rank-head { min-height:43px; color:#f3f6f5; background:#394649; font-size:9px; font-weight:750; }
.capital-rank-head span,.capital-rank-row>* { padding:9px 11px; }
.capital-rank-head span:first-child { text-align:center; }
.capital-rank-head span:nth-child(n+3),.capital-rank-row>b,.capital-rank-row>span:not(.capital-rank-number) { text-align:right; }
.capital-rank-row { min-height:66px; border-top:1px solid var(--line); font-size:10px; font-variant-numeric:tabular-nums; }
.capital-rank-row:nth-child(-n+4) { background:#fff9fa; }
.capital-rank-number { color:var(--muted); font:600 18px Georgia,serif; text-align:center; }
.capital-rank-row:nth-child(-n+4) .capital-rank-number,.capital-rank-core { color:var(--brand); }
.capital-rank-fund { min-width:0; display:grid; gap:5px; }
.capital-rank-fund strong { font-size:10px; line-height:1.4; }
.capital-rank-fund small { color:var(--muted); font-size:9px; }
.capital-rank-core { font-size:13px; }
.capital-buffer { font-weight:800; }
.capital-rank-row .positive { color:var(--brand); }
.capital-rank-row .negative { color:var(--green); }
.capital-ranking>footer { margin-top:11px; padding:13px 16px; display:grid; grid-template-columns:90px 1fr; gap:14px; color:var(--gold); background:var(--soft-gold); }
.capital-ranking>footer strong { font-size:10px; }
.capital-ranking>footer p { margin:0; color:var(--muted); font-size:9px; line-height:1.6; }
.capital-ranking-empty { padding:28px; color:var(--muted); font-size:11px; }
.capital-reading-example { margin:0 0 12px; padding:14px 17px; display:grid; grid-template-columns:150px 1fr; gap:16px; color:var(--green); background:var(--soft-green); border-left:3px solid var(--green); }
.capital-reading-example strong { font-size:10px; }
.capital-reading-example p { margin:0; color:var(--muted); font-size:10px; line-height:1.7; }
.capital-ranking-more { border-top:1px solid var(--line); }
.capital-ranking-more>summary { min-height:54px; padding:0 18px; display:flex; align-items:center; justify-content:space-between; color:var(--brand); background:#faf4f6; cursor:pointer; font-size:11px; font-weight:800; list-style:none; }
.capital-ranking-more>summary::-webkit-details-marker { display:none; }
.capital-ranking-more>summary::after { content:"+"; margin-left:16px; font-size:18px; }
.capital-ranking-more[open]>summary::after { content:"−"; }
.capital-ranking-more>summary span { margin-left:auto; color:var(--muted); font-size:9px; font-weight:500; }
.capital-ranking-more .capital-rank-row:nth-child(-n+4) { background:white; }
.focus-groups { margin-top:24px; display:grid; gap:22px; }
.focus-role { border:1px solid var(--line); background:white; }
.focus-role>header { min-height:46px; padding:0 16px; display:flex; align-items:center; justify-content:space-between; color:white; background:#263437; }
.focus-role>header span { font-size:13px; font-weight:800; }
.focus-role>header small { color:#cbd5d2; font-size:9px; }
.focus-table-head,.focus-fund summary { display:grid; grid-template-columns:62px minmax(170px,1.7fr) 68px .7fr .7fr .85fr .85fr; gap:10px; align-items:center; }
.focus-table-head { min-height:36px; padding:0 14px; color:var(--muted); background:#f5f7f6; font-size:9px; }
.focus-fund { border-top:1px solid var(--line); }
.focus-fund:first-of-type { border-top:0; }
.focus-fund summary { min-height:64px; padding:10px 14px; cursor:pointer; list-style:none; }
.focus-fund summary::-webkit-details-marker { display:none; }
.focus-fund summary::after { content:"+"; color:var(--brand); font-size:18px; grid-column:7; justify-self:end; }
.focus-fund[open] summary::after { content:"−"; }
.focus-code { color:var(--brand); font-weight:850; }
.focus-name { min-width:0; font-size:11px; font-weight:700; line-height:1.45; }
.focus-fund summary b { font-size:11px; }
.focus-detail { padding:14px 76px; display:flex; flex-wrap:wrap; gap:8px 22px; color:var(--muted); background:#f7f9f8; font-size:10px; }
.focus-detail p { width:100%; margin:0; line-height:1.6; }
.monthly-redesign .monthly-risk-grid>div { background:var(--soft-gold); border-left-color:var(--gold); }
.monthly-method { margin-top:58px; padding:0; color:var(--ink); background:white; border:1px solid var(--line); border-top:4px solid var(--brand); }
.monthly-method summary { padding:18px 20px; display:flex; justify-content:space-between; cursor:pointer; font-size:13px; font-weight:800; }
.monthly-method summary span { color:var(--brand); font-size:10px; }
.monthly-method>div { padding:0 20px 20px; color:var(--muted); font-size:11px; line-height:1.75; }
.monthly-redesign .monthly-cta { background:#172326; }

/* 摘要先行的客户报告 */
.report-redesign { background:#e9edeb; }
.report-redesign .report-paper { max-width:1180px; padding:0; overflow:hidden; }
.report-summary { padding:52px 58px 40px; background:white; }
.summary-heading { display:flex; justify-content:space-between; align-items:start; gap:35px; padding-bottom:30px; border-bottom:1px solid var(--line); }
.summary-heading p { margin:0 0 9px; color:var(--brand); font-size:11px; font-weight:800; }
.summary-heading h1 { margin:0 0 12px; font:600 42px/1.18 "Songti SC","Noto Serif SC",serif; }
.summary-heading>div>span { color:var(--muted); font-size:11px; }
.report-redesign .score-seal { width:128px; height:128px; box-shadow:inset 0 0 0 7px white,inset 0 0 0 8px var(--line); }
.summary-grid { margin-top:28px; display:grid; grid-template-columns:1fr 1.45fr; gap:32px; }
.summary-profile { padding:23px; color:white; background:#1d292d; }
.summary-profile span { color:#b7c4c1; font-size:10px; }
.summary-profile h2 { margin:8px 0 12px; font-size:24px; }
.summary-profile p { margin:0; color:#d6dfdd; font-size:12px; line-height:1.75; }
.summary-metrics { display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line); }
.summary-metrics>div { padding:19px; display:grid; gap:8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.summary-metrics>div:nth-child(2n) { border-right:0; }
.summary-metrics>div:nth-child(n+3) { border-bottom:0; }
.summary-metrics span { color:var(--muted); font-size:10px; }
.summary-metrics strong { font-size:21px; }
.summary-portfolio { margin-top:28px; border-top:1px solid var(--line); }
.summary-portfolio header { min-height:42px; display:flex; align-items:center; justify-content:space-between; }
.summary-portfolio header span { font-size:13px; font-weight:850; }
.summary-portfolio header small { color:var(--muted); font-size:9px; }
.summary-fund { min-height:50px; display:grid; grid-template-columns:60px minmax(220px,1fr) 150px 64px; align-items:center; border-top:1px solid #e8ecea; }
.summary-fund>span { color:var(--brand); font-weight:850; }
.summary-fund>strong { font-size:11px; }
.summary-fund>small { color:var(--muted); }
.summary-fund>b { text-align:right; font-size:16px; }
.summary-waiting { padding:18px; background:var(--soft-gold); }
.summary-risks { margin-top:26px; padding:20px 22px; background:var(--soft-gold); border-left:4px solid var(--gold); }
.summary-risks strong { font-size:12px; }
.summary-risks ol { margin:10px 0 0; padding-left:18px; display:grid; gap:7px; color:#614c32; font-size:11px; line-height:1.55; }
.summary-source { margin-top:22px; color:var(--muted); font-size:9px; }
.report-topics { background:#f4f6f5; border-top:1px solid var(--line); }
.report-disclosure { background:white; border-bottom:1px solid var(--line); }
.report-disclosure>summary { min-height:78px; padding:0 58px; display:grid; grid-template-columns:1fr auto 22px; gap:22px; align-items:center; cursor:pointer; list-style:none; }
.report-disclosure>summary::-webkit-details-marker { display:none; }
.report-disclosure>summary span { font-size:17px; font-weight:820; }
.report-disclosure>summary b { color:var(--muted); font-size:12px; }
.report-disclosure>summary i::before { content:"+"; color:var(--brand); font-style:normal; font-size:23px; }
.report-disclosure[open]>summary { border-bottom:1px solid var(--line); }
.report-disclosure[open]>summary i::before { content:"−"; }
.disclosure-body { padding:38px 58px 48px; }
.disclosure-body>.report-section { margin:0; padding:0; border:0; }
.disclosure-body .section-number { display:none; }
.radar-layout { display:grid; grid-template-columns:minmax(300px,.85fr) 1.25fr; gap:38px; align-items:center; }
.distribution-compare { margin-top:25px; border:1px solid var(--line); }
.distribution-row { min-height:68px; padding:10px 13px; display:grid; grid-template-columns:54px minmax(170px,1.4fr) 52px repeat(3,1fr); gap:13px; align-items:center; border-bottom:1px solid var(--line); }
.distribution-row:last-child { border-bottom:0; }
.distribution-row>span { color:var(--brand); font-weight:850; }
.distribution-row>strong { font-size:10px; }
.distribution-row>div { display:grid; gap:4px; }
.distribution-row small { color:var(--muted); font-size:8px; }
.distribution-row em { font-style:normal; font-weight:750; font-size:11px; }
.report-redesign .report-footer { margin:0; padding:34px 58px 46px; color:#53615f; background:#eef1f0; }
.report-redesign .answer-review { margin:0; padding:0; border:0; }

@media screen and (max-width:1050px) {
  .site-header { padding:0 24px; }
  .header-note { display:none; }
  .home-main { grid-template-columns:minmax(0,1fr) 345px; gap:30px; }
  .research-home { padding:38px 28px 30px; }
  .home-copy h1 { font-size:42px; }
  .universe-groups { grid-template-columns:repeat(2,1fr); }
  .research-summary { grid-template-columns:190px 1fr; }
  .research-summary button { grid-column:1/-1; width:max-content; }
  .matrix-head,.matrix-row { grid-template-columns:1fr .9fr .65fr 1.25fr .85fr; }
  .focus-table-head,.focus-fund summary { grid-template-columns:52px minmax(130px,1.5fr) 60px repeat(4,.75fr); }
}
@media screen and (max-width:820px) {
  .site-nav { overflow-x:auto; justify-content:flex-start; }
  .site-nav button { padding:0 9px; white-space:nowrap; font-size:11px; }
  .home-main { grid-template-columns:1fr; }
  .research-home .start-card { position:static; }
  .research-summary { grid-template-columns:1fr; }
  .research-summary ol { grid-template-columns:1fr; border-top:1px solid var(--line); border-left:0; }
  .research-summary li { padding:14px 0; border-right:0; border-bottom:1px solid var(--line); }
  .evidence-strip small { width:100%; margin-left:0; }
  .quiz-one { grid-template-columns:1fr; gap:23px; padding:28px; }
  .quiz-one .progress-panel { position:static; padding:17px; }
  .quiz-one .progress-panel>div { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; }
  .quiz-one .progress-panel>div>p { width:100%; }
  .quiz-one .progress-panel h2 { margin:0; font-size:18px; }
  .quiz-one .progress-panel ol { grid-template-columns:repeat(5,minmax(0,1fr)); margin:16px 0 8px; gap:5px; }
  .quiz-one .progress-panel li { display:grid; justify-items:center; gap:5px; text-align:center; font-size:9px; }
  .quiz-one .progress-panel li b { display:block; font-size:9px; line-height:1.2; }
  .quiz-one .question-card { min-height:0; }
  .monthly-redesign .monthly-paper { padding:44px 32px; }
  .monthly-conclusions { grid-template-columns:1fr; }
  .monthly-conclusions article { border-right:0; border-bottom:1px solid var(--line); }
  .direction-grid { grid-template-columns:1fr; }
  .direction-group>header { display:block; }
  .direction-group>header p { margin-top:6px; text-align:left; }
  .direction-funds { grid-template-columns:1fr; }
  .direction-grid article>p { min-height:0; }
  .matrix-head { display:none; }
  .matrix-row { grid-template-columns:1fr 1fr; padding:15px; }
  .matrix-row>div { padding:7px; }
  .matrix-category,.matrix-leader { grid-column:1/-1; }
  .focus-table-head { display:none; }
  .focus-fund summary { grid-template-columns:52px 1fr auto; gap:8px; padding:13px; }
  .focus-fund summary .focus-name { grid-column:2; }
  .focus-fund summary .risk-pill { grid-column:3; grid-row:1; }
  .focus-fund summary b { display:grid; gap:2px; }
  .focus-fund summary b:nth-of-type(1)::before { content:"近1年"; color:var(--muted); font-size:8px; }
  .focus-fund summary b:nth-of-type(2)::before { content:"近3个月"; color:var(--muted); font-size:8px; }
  .focus-fund summary b:nth-of-type(3)::before { content:"年化派息"; color:var(--muted); font-size:8px; }
  .focus-fund summary b:nth-of-type(4)::before { content:"资本来源"; color:var(--muted); font-size:8px; }
  .focus-fund summary::after { grid-column:3; grid-row:3; }
  .focus-detail { padding:13px; }
  .report-summary,.disclosure-body { padding-left:34px; padding-right:34px; }
  .report-disclosure>summary { padding:0 34px; }
  .summary-grid,.radar-layout { grid-template-columns:1fr; }
  .summary-fund { grid-template-columns:50px minmax(0,1fr) 65px; }
  .summary-fund small { display:none; }
  .distribution-row { grid-template-columns:48px 1fr 48px; }
  .distribution-row>div { grid-column:2/-1; grid-template-columns:1fr auto; }
}
@media screen and (max-width:560px) {
  .site-header { height:auto; min-height:66px; padding:10px 16px; flex-wrap:wrap; gap:5px 14px; }
  .brand { width:100%; }
  .site-nav { width:100%; order:2; }
  .research-home { padding:34px 17px 28px; }
  .home-copy h1 { font-size:34px; }
  .home-copy .lead { font-size:14px; }
  .research-path { gap:7px; font-size:10px; }
  .research-path i { width:14px; }
  .fund-universe { padding:16px; }
  .universe-heading { display:grid; }
  .universe-legend { justify-content:flex-start; }
  .universe-groups { grid-template-columns:1fr; }
  .universe-group { min-height:75px; }
  .universe-detail { grid-template-columns:1fr; }
  .universe-detail small { text-align:left; }
  .research-home .start-card { padding:23px 18px; }
  .evidence-strip { gap:8px 15px; }
  .quiz-one { padding:22px 16px 54px; grid-template-columns:minmax(0,1fr); }
  .quiz-one .progress-panel,.quiz-one .question-panel { min-width:0; width:100%; }
  .quiz-one .progress-panel ol { width:100%; max-width:100%; overflow-x:auto; grid-template-columns:repeat(5,88px); }
  .question-progress>div:first-child { display:grid; }
  .quiz-one .question-card { padding-top:28px; }
  .quiz-one .question-card legend { font-size:20px; }
  .quiz-one .option-list label { min-height:77px; padding:12px; }
  .monthly-redesign .monthly-paper { padding:32px 18px; }
  .monthly-redesign .monthly-cover { min-height:0; }
  .monthly-redesign .monthly-cover h1 { font-size:39px; }
  .monthly-redesign .monthly-section-title { grid-template-columns:1fr; }
  .monthly-redesign .monthly-section-title p { grid-column:1; }
  .matrix-row { grid-template-columns:1fr; }
  .matrix-category,.matrix-leader { grid-column:1; }
  .capital-ranking-summary { grid-template-columns:1fr; }
  .capital-ranking-summary>div { border-right:0; border-bottom:1px solid var(--line); }
  .capital-ranking>footer { grid-template-columns:1fr; gap:5px; }
  .capital-reading-example { grid-template-columns:1fr; gap:5px; }
  .focus-fund summary { grid-template-columns:46px 1fr auto; }
  .focus-fund summary b { font-size:10px; }
  .report { padding:12px 6px 50px; }
  .report-summary,.disclosure-body { padding-left:20px; padding-right:20px; }
  .summary-heading { display:grid; }
  .summary-heading h1 { font-size:31px; }
  .report-redesign .score-seal { width:104px; height:104px; }
  .summary-metrics { grid-template-columns:1fr; }
  .summary-metrics>div { border-right:0; }
  .summary-metrics>div:nth-child(3) { border-bottom:1px solid var(--line); }
  .summary-fund { grid-template-columns:45px 1fr 50px; }
  .summary-portfolio header { display:grid; padding:9px 0; gap:3px; }
  .report-disclosure>summary { min-height:74px; padding:0 20px; grid-template-columns:1fr 18px; gap:10px; }
  .report-disclosure>summary b { grid-column:1; grid-row:2; padding-bottom:12px; }
  .report-disclosure>summary i { grid-column:2; grid-row:1/3; }
  .report-redesign .report-footer { padding:28px 20px 36px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
@media print {
  @page { size:A4 landscape; margin:9mm 10mm 13mm; }
  html,body { overflow:visible!important; }
  body { color:#111; background:white; }
  * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  p,li { orphans:3; widows:3; }
  .site-header,.report-toolbar,.monthly-toolbar,.developer-credit,.monthly-cta { display:none!important; }
  .monthly-redesign .monthly-paper,.report-redesign .report-paper { max-width:none; padding:0; box-shadow:none; }
  .monthly-redesign .monthly-cover { min-height:105mm; }
  .monthly-conclusions { margin-top:4mm; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .monthly-conclusions article { padding:4mm; }
  .monthly-conclusions h2 { margin:2mm 0 1mm; font-size:14px; }
  .monthly-conclusions p { font-size:8.5px; line-height:1.5; }
  .monthly-redesign .monthly-section { margin-top:6mm; padding-top:4mm; }
  .monthly-redesign .monthly-section-title { margin-bottom:3mm; }
  .monthly-directions { padding-top:5mm; }
  .direction-group { margin-top:4mm; }
  /* Paginated CSS grids fragment differently in Safari and Chromium. The print
     version therefore uses independent inline blocks: a card owns its entire
     border and the parent never leaves an empty frame on the preceding page. */
  .direction-grid { margin-top:2mm; display:block; border:0; font-size:0; }
  .direction-grid>article { width:25%; display:inline-block; box-sizing:border-box; vertical-align:top; padding:3mm; border:1px solid var(--line); font-size:initial; break-inside:avoid; page-break-inside:avoid; -webkit-column-break-inside:avoid; }
  .direction-grid h3 { margin:2mm 0 1mm; font-size:15px; }
  .direction-grid article>p { min-height:0; font-size:8.5px; line-height:1.45; break-after:avoid-page; page-break-after:avoid; }
  .direction-funds { margin:2mm 0; gap:1mm; }
  .direction-funds>span { padding:1.2mm; }
  .direction-funds small,.direction-grid footer p { font-size:8px; line-height:1.35; }
  .direction-grid footer { padding-top:2mm; }
  .monthly-redesign .monthly-section,.research-ranking,.ranking-table,.capital-ranking-table,
  .focus-groups,.direction-group,.monthly-method { break-inside:auto; page-break-inside:auto; }
  .monthly-redesign .monthly-cover,.monthly-conclusions,.monthly-section-title,
  .direction-group>header,.direction-grid article>header,.direction-grid h3,.direction-funds>span,.direction-grid footer,
  .research-ranking>header,.ranking-podium,
  .ranking-head,.ranking-row,.ranking-month-summary,.ranking-boundary,
  .matrix-head,.matrix-row,.capital-ranking-summary,.capital-reading-example,
  .capital-rank-head,.capital-rank-row,.capital-ranking-more>summary,.capital-ranking>footer,
  .focus-role>header,.focus-table-head,.focus-fund,.monthly-risk-grid>div,
  .monthly-method>summary,.monthly-method>div>p {
    break-inside:avoid; page-break-inside:avoid;
  }
  .monthly-section-title,.direction-group>header,.direction-grid article>header,.direction-grid h3,
  .research-ranking>header,.ranking-head,
  .matrix-head,.capital-rank-head,.focus-role>header,.focus-table-head,.monthly-method>summary {
    break-after:avoid-page; page-break-after:avoid;
  }
  .direction-grid footer,.ranking-month-summary,.ranking-boundary {
    break-before:avoid-page; page-break-before:avoid;
  }
  .ranking-table { break-after:avoid-page; page-break-after:avoid; }
  .research-ranking,.ranking-table,.capital-ranking-scroll,.capital-ranking-table,.comparison-matrix { border:0; overflow:visible; }
  .comparison-matrix { break-inside:auto; page-break-inside:auto; }
  .ranking-head,.ranking-row,.capital-rank-head,.capital-rank-row,
  .comparison-matrix .matrix-head,.comparison-matrix .matrix-row {
    border:0!important;
    box-shadow:inset 1px 0 0 var(--line),inset -1px 0 0 var(--line),inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line);
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .ranking-row,.matrix-row,.capital-rank-row,.focus-fund,.direction-grid>article { overflow:visible; }
  .ranking-table,.capital-ranking-scroll { overflow:visible; }
  .ranking-head,.ranking-row { min-width:0; grid-template-columns:30px minmax(130px,1.3fr) 70px minmax(125px,1.1fr) 55px 55px 40px 42px; }
  .ranking-head { min-height:30px; }
  .ranking-row { min-height:47px; }
  .ranking-row,.capital-rank-row { border:0; }
  .ranking-head>* ,.ranking-row>* { padding:5px 4px; }
  .ranking-podium article { min-height:96px; padding:12px; }
  .comparison-matrix .matrix-head { min-height:30px; }
  .comparison-matrix .matrix-head,.comparison-matrix .matrix-row { grid-template-columns:1.15fr 1fr .72fr 1.55fr 1fr; }
  .comparison-matrix .matrix-category,.comparison-matrix .matrix-leader { grid-column:auto; }
  .comparison-matrix .matrix-row { min-height:0; }
  .comparison-matrix .matrix-head span,.comparison-matrix .matrix-row>div { padding:5px 8px; }
  .comparison-matrix .matrix-bar { margin-top:3px; }
  .capital-ranking-table { min-width:0; }
  .capital-rank-head,.capital-rank-row { grid-template-columns:32px minmax(150px,1.55fr) repeat(6,minmax(58px,.7fr)); }
  .capital-rank-head span,.capital-rank-row>* { padding:7px 5px; }
  .monthly-risk-grid { display:block; font-size:0; }
  .monthly-risk-grid>div { width:50%; display:inline-block; box-sizing:border-box; vertical-align:top; font-size:initial; break-inside:avoid; page-break-inside:avoid; }
  .report-summary { padding:0 0 8mm; }
  .report-topics { background:white; }
  .report-disclosure { break-inside:auto; }
  .report-disclosure>summary { min-height:13mm; padding:0; break-inside:avoid; break-after:avoid-page; page-break-after:avoid; }
  .report-disclosure>summary i { display:none; }
  .disclosure-body { padding:5mm 0 7mm; }
  .report-summary,.summary-heading,.summary-grid,.summary-profile,.summary-metrics,.summary-portfolio,.summary-risks,
  .radar-layout canvas,.dimension-card,.profile-columns>div,.summary-fund,.fund-card,.distribution-row,
  .portfolio-analytics>div,.focus-fund,.monthly-risk-grid>div,.metric-grid>div,.signal-list>div,.answer-row,
  .portfolio-analysis-note,.report-footer { break-inside:avoid; page-break-inside:avoid; }
  .fund-list,.distribution-compare,.answer-review { break-inside:auto; page-break-inside:auto; }
  .fund-card,.distribution-row,.answer-row { break-before:auto; break-after:auto; }
  .report-redesign .report-footer { margin-top:4mm; padding:6mm 0 0; border-top:1px solid var(--line); background:white; }
  .report-redesign .answer-review { break-before:auto; page-break-before:auto; }
  .monthly-method>div,.report-disclosure>.disclosure-body { display:block!important; }
  .focus-detail { display:flex!important; }
}

@media screen and (max-width:1120px) {
  .site-header { gap:10px; }
  .header-note { display:none; }
  .account-tools { margin-left:auto; }
  .advisor-chip { display:none; }
  .login-shell { grid-template-columns:1fr 390px; }
  .login-story { padding:64px 48px; }
  .login-brand { left:48px; }
  .record-row { grid-template-columns:54px minmax(0,1fr) auto; }
  .record-metrics { grid-column:2; }
  .record-actions { grid-column:3; grid-row:1/3; }
}
@media screen and (max-width:820px) {
  .login-shell { grid-template-columns:1fr; }
  .login-story { min-height:auto; padding:110px 30px 55px; }
  .login-brand { left:30px; top:30px; }
  .login-story h1 { font-size:42px; }
  .login-capabilities { margin-top:35px; }
  .login-card { min-height:auto; padding:50px 30px 65px; }
  .management-panel { width:100vw; padding:24px 18px; }
  .management-toolbar { grid-template-columns:1fr 1fr; }
  .management-toolbar .secondary { grid-column:1/-1; }
  .admin-create { grid-template-columns:1fr 1fr; }
  .admin-create .primary { grid-column:1/-1; }
  .advisor-list article { grid-template-columns:42px 1fr auto; }
  .advisor-list article>button { grid-row:2; }
  .editing-record { grid-template-columns:1fr auto; }
  .editing-record small { grid-column:1/-1; }
  .site-header .account-tools { width:100%; order:3; padding:7px 0 0; border-left:0; border-top:1px solid var(--line); justify-content:flex-end; }
}
@media screen and (max-width:520px) {
  .login-story { padding-left:22px; padding-right:22px; }
  .login-brand { left:22px; }
  .login-story h1 { font-size:35px; }
  .login-capabilities { grid-template-columns:1fr; }
  .login-capabilities div { min-height:74px; grid-template-columns:32px 1fr; align-items:center; border-right:0; border-bottom:1px solid #425054; }
  .login-capabilities div:last-child { border-bottom:0; }
  .login-card { padding:42px 22px 55px; }
  .login-card h2 { font-size:25px; }
  .management-panel>header h2 { font-size:23px; }
  .management-toolbar,.admin-create { grid-template-columns:1fr; }
  .management-toolbar .secondary,.admin-create .primary { grid-column:auto; }
  .record-row { grid-template-columns:46px 1fr; }
  .record-profile { width:42px; height:42px; }
  .record-metrics,.record-actions { grid-column:2; grid-row:auto; }
  .record-actions { min-width:0; }
  .advisor-list article { grid-template-columns:42px 1fr; }
  .advisor-list article .account-status,.advisor-list article>button { grid-column:2; grid-row:auto; }
  .report-toolbar-managed { display:grid; grid-template-columns:1fr; }
  .report-toolbar-managed>span { text-align:left; }
  .report-toolbar-managed>div { display:grid; grid-template-columns:1fr 1fr; }
}

/* 明亮品牌色修正：深色只用于文字，不作大面积底色 */
:root {
  --workspace:#F7F8F7;
  --panel:#FFFFFF;
  --panel-gray:#EEF1F0;
  --panel-rose:#FFF3F5;
  --rose-line:#EBCBD2;
}
.fund-universe { color:var(--ink); background:var(--panel); border:1px solid var(--line); border-top:5px solid var(--brand); box-shadow:0 12px 34px rgba(69,45,50,.07); }
.universe-heading>div:first-child>span { color:var(--brand); }
.universe-heading h2 { color:var(--ink); }
.universe-legend { color:#5d6967; }
.universe-group { color:var(--ink); background:#F7F8F7; border-color:var(--line); }
.universe-group:hover,.universe-group[aria-pressed="true"] { color:var(--ink); border-color:var(--brand); background:var(--panel-rose); box-shadow:inset 3px 0 0 var(--brand); }
.universe-group-name { color:#52605e; }
.universe-group-name b { color:var(--brand); }
.universe-detail { color:#4f5e5b; border-top-color:var(--line); }
.universe-detail strong { color:var(--ink); }
.universe-detail small { color:#7b8885; }

.login-shell { background:var(--workspace); }
.login-story { color:var(--ink); background:linear-gradient(145deg,#FFF8F9 0%,#F7F8F7 72%); border-right:1px solid var(--rose-line); }
.login-story::after { border-color:rgba(200,16,46,.11); }
.login-brand { color:var(--ink); }
.login-story>p { color:var(--brand); }
.login-capabilities { border-color:var(--rose-line); }
.login-capabilities div { border-color:var(--rose-line); }
.login-capabilities strong { color:var(--brand); }
.login-capabilities span { color:#394744; }
.login-story>small { color:#687572; }
.login-card { background:white; }
.toast { background:var(--brand); box-shadow:0 15px 40px rgba(149,20,43,.22); }
.overlay-backdrop { background:rgba(72,64,66,.22); backdrop-filter:blur(2px); }
.management-panel { background:var(--workspace); box-shadow:-18px 0 54px rgba(67,52,56,.13); }
.record-profile,.advisor-avatar { color:white; background:var(--brand); }

.monthly-redesign .monthly-cover-data { color:var(--ink); background:var(--panel-rose); border:1px solid var(--rose-line); border-top:6px solid var(--brand); }
.monthly-redesign .monthly-cover-data span { color:var(--brand); }
.monthly-redesign .monthly-cover-data small { color:#687572; }
.matrix-head { color:#4c5957; background:var(--panel-gray); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.focus-role>header { color:var(--ink); background:var(--panel-rose); border-left:4px solid var(--brand); border-bottom:1px solid var(--rose-line); }
.focus-role>header span { color:var(--brand); }
.monthly-redesign .monthly-cta { color:var(--ink); background:var(--panel-rose); border:1px solid var(--rose-line); border-left:5px solid var(--brand); }
.monthly-redesign .monthly-cta span { color:var(--brand); }
.monthly-redesign .monthly-cta p { color:#5d6a68; }
.summary-profile { color:var(--ink); background:var(--panel-rose); border-left:5px solid var(--brand); }
.summary-profile span { color:var(--brand); }
.summary-profile p { color:#5e6967; }

@media screen and (max-width:520px) {
  .login-capabilities div { border-color:var(--rose-line); }
}

/* 2026-09-27 一屏工作台：操作页不滚动，报告页保留纵向阅读 */
:root {
  --workspace:#FBFAFA;
  --panel-gray:#F5F6F5;
  --panel-rose:#FFF6F7;
  --rose-line:#E9D8DC;
  --ink:#273336;
  --muted:#687472;
}

body:has(.login-shell),
body:has(.research-home),
body:has(.quiz-one) { height:100dvh; overflow:hidden; }

.login-shell { height:100dvh; min-height:0; overflow:hidden; }
.login-story,.login-card { height:100dvh; min-height:0; }
.login-story { padding:clamp(42px,6vh,72px) clamp(40px,6vw,88px); background:linear-gradient(145deg,#FFF9FA 0%,#F7F8F7 76%); }
.login-story h1 { font-size:clamp(39px,4.8vw,68px); }
.login-capabilities { margin-top:clamp(28px,5vh,48px); }
.login-capabilities div { min-height:96px; padding:16px 18px; }
.login-story>small { margin-top:18px; }
.login-card { padding:clamp(32px,5vw,64px); }

.research-home { height:calc(100dvh - 72px); min-height:0; padding:clamp(20px,3.6vh,38px) clamp(22px,5vw,76px) 18px; overflow:hidden; }
.home-main { height:100%; align-items:center; }
.home-copy { min-height:0; }
.home-copy h1 { font-size:clamp(37px,4vw,58px); }
.home-copy .lead { margin:14px 0 12px; font-size:14px; line-height:1.62; }
.fund-universe { margin-top:18px; padding:16px 18px; }
.universe-heading h2 { font-size:18px; }
.universe-groups { margin-top:12px; gap:7px; }
.universe-group { min-height:66px; padding:9px 10px; }
.universe-dots { margin-top:7px; gap:3px; }
.risk-dot { width:6px; height:6px; }
.universe-detail { min-height:32px; margin-top:10px; padding-top:8px; }
.research-home .start-card { top:auto; padding:22px 24px; box-shadow:0 14px 38px rgba(99,50,60,.08); }
.research-home .start-card h2 { font-size:24px; }
.start-intro { margin-bottom:10px; line-height:1.45; }
.research-home .start-card>label { margin:10px 0; }
.research-home .start-card input,.research-home .start-card select { height:42px; }
.research-home .consent { margin:14px 0 12px; line-height:1.45; }
.research-home .primary { min-height:44px; }
.research-home .microcopy { margin-top:8px; }
.test-outcome { max-width:760px; margin-top:24px; padding:18px 20px; background:#fff; border:1px solid var(--line); border-left:5px solid var(--brand); }
.test-outcome>strong { color:var(--brand); font-size:12px; }
.test-outcome>div { margin-top:11px; display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.test-outcome>div span { padding-right:14px; color:var(--ink); font-size:12px; font-weight:700; line-height:1.5; }
.test-outcome>div span+span { padding-left:14px; border-left:1px solid var(--line); }
.test-outcome small { display:block; margin-top:12px; color:var(--muted); font-size:10px; }
.evidence-strip { margin-top:12px; padding:9px 0; }
.research-summary { margin-top:12px; gap:20px; }
.research-summary h2 { font-size:17px; }
.research-summary li { padding:0 14px; }
.developer-credit { padding:9px 20px; }

.quiz-one { height:calc(100dvh - 72px); min-height:0; padding:24px 28px 20px; align-items:stretch; overflow:hidden; }
.quiz-one .progress-panel { position:static; height:fit-content; padding:17px 18px; }
.quiz-one .progress-panel ol { margin:17px 0 13px; gap:9px; }
.quiz-one .progress-panel li span { width:24px; height:24px; }
.quiz-one .question-panel { min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto auto; }
.question-progress { padding-bottom:14px; }
.question-progress .progress-track { margin-top:11px; }
.quiz-one .question-card { min-height:0; padding:22px 0 10px; overflow:hidden; }
.quiz-one .question-card legend { font-size:21px; line-height:1.4; }
.quiz-one .helper { margin-top:8px; padding:8px 11px; line-height:1.45; }
.quiz-one .option-list { margin-top:16px; gap:7px; }
.quiz-one .option-list label { min-height:54px; padding:9px 14px; }
.quiz-one .option-copy strong { font-size:14px; }
.quiz-one .option-copy small { margin-top:1px; font-size:11px; line-height:1.35; }
.quiz-one .quiz-actions { margin-top:10px; }
.quiz-one .quiz-actions .primary,.quiz-one .quiz-actions .secondary { min-height:42px; }
.quiz-note { margin-top:7px; }

@media (max-height:760px) and (min-width:821px) {
  .login-brand { top:28px; }
  .login-capabilities { margin-top:24px; }
  .login-capabilities div { min-height:78px; }
  .login-story>small { margin-top:12px; }
  .login-card label { margin-top:9px; }
  .login-card input { height:44px; }
  .login-card .primary { margin-top:18px; }
  .home-copy h1 { font-size:42px; }
  .home-kicker { margin-bottom:8px; }
  .fund-universe { margin-top:12px; }
  .test-outcome { margin-top:14px; padding:13px 15px; }
  .universe-group { min-height:58px; }
  .evidence-strip { margin-top:8px; }
  .research-summary { margin-top:8px; }
  .quiz-one { padding-top:17px; padding-bottom:14px; }
  .quiz-one .question-card { padding-top:15px; }
  .quiz-one .option-list { margin-top:12px; gap:5px; }
  .quiz-one .option-list label { min-height:49px; padding-top:7px; padding-bottom:7px; }
}

@media screen and (max-width:820px) {
  .login-shell { grid-template-columns:minmax(180px,.72fr) minmax(330px,1fr); }
  .login-story { padding:82px 24px 28px; justify-content:flex-start; }
  .login-brand { left:24px; top:24px; }
  .login-story h1 { font-size:31px; line-height:1.22; }
  .login-story>p { margin-top:auto; }
  .login-capabilities { margin-top:24px; grid-template-columns:1fr; border-bottom:0; }
  .login-capabilities div { min-height:55px; padding:10px 0; grid-template-columns:28px 1fr; align-items:center; border-right:0; border-bottom:1px solid var(--rose-line); }
  .login-story>small { display:none; }
  .login-card { padding:36px 28px; }

  .site-header { height:64px; padding:0 18px; }
  .site-nav,.header-note,.advisor-chip { display:none; }
  .account-tools { margin-left:auto; }
  .research-home { height:calc(100dvh - 64px); padding:18px; }
  .home-main { grid-template-columns:minmax(0,.9fr) minmax(310px,1.1fr); gap:22px; }
  .home-copy h1 { font-size:34px; }
  .home-copy .lead { font-size:13px; }
  .fund-universe { padding:13px; }
  .test-outcome { margin-top:14px; padding:14px; }
  .test-outcome>div { grid-template-columns:1fr; gap:5px; }
  .test-outcome>div span,.test-outcome>div span+span { padding:0; border-left:0; }
  .universe-heading { display:grid; gap:5px; }
  .universe-legend { justify-content:flex-start; }
  .universe-groups { grid-template-columns:repeat(2,1fr); }
  .universe-group { min-height:53px; }
  .universe-detail { display:none; }
  .evidence-strip,.research-summary { display:none; }
  .research-home .start-card { position:static; padding:19px; }
  .quiz-one { height:calc(100dvh - 64px); padding:14px 18px 12px; grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); gap:12px; }
  .quiz-one .progress-panel { padding:10px 13px; display:grid; grid-template-columns:150px 1fr auto; gap:12px; align-items:center; border-top-width:3px; }
  .quiz-one .progress-panel>div>p { margin-bottom:3px; }
  .quiz-one .progress-panel h2 { font-size:17px; }
  .quiz-one .progress-panel ol { margin:0; display:grid; grid-template-columns:repeat(5,1fr); gap:4px; }
  .quiz-one .progress-panel li { justify-content:center; }
  .quiz-one .progress-panel li b { display:none; }
  .quiz-one .progress-panel>small { white-space:nowrap; }
  .quiz-one .question-card legend { font-size:19px; }
}

@media screen and (max-width:620px) {
  .login-shell { grid-template-columns:1fr; }
  .login-story { height:auto; min-height:0; padding:18px 22px; display:block; border-right:0; border-bottom:1px solid var(--rose-line); }
  .login-brand { position:static; }
  .login-story>p { margin:15px 0 5px; }
  .login-story h1 { font-size:26px; }
  .login-story h1 br { display:none; }
  .login-capabilities,.login-story>small { display:none; }
  .login-card { height:auto; min-height:0; padding:24px 22px; justify-content:flex-start; }
  .login-card h2 { font-size:24px; }
  .login-card>p { margin-bottom:10px; }
  .login-card label { margin-top:9px; }
  .login-card input { height:44px; }
  .login-card .primary { margin-top:17px; }

  .site-header { height:58px; }
  .brand-copy small { display:none; }
  .account-tools>button { padding:0 6px; }
  .research-home { height:calc(100dvh - 58px); padding:12px 14px; }
  .home-main { grid-template-columns:1fr; gap:10px; align-content:start; }
  .home-copy { display:grid; grid-template-columns:1fr auto; align-items:end; gap:5px 10px; }
  .home-kicker { grid-column:1/-1; margin:0; font-size:10px; }
  .home-copy h1 { font-size:25px; line-height:1.16; }
  .home-copy .lead { margin:0; font-size:11px; line-height:1.42; }
  .research-path,.fund-universe,.test-outcome { display:none; }
  .research-home .start-card { padding:15px 16px; }
  .research-home .step-kicker { margin-bottom:6px; padding:4px 7px; }
  .research-home .start-card h2 { font-size:20px; }
  .start-intro { margin-bottom:5px; font-size:10px; }
  .research-home .start-card>label { margin:7px 0; gap:4px; }
  .research-home .start-card input,.research-home .start-card select { height:38px; }
  .preference-guidance { min-height:0; padding:6px 8px; }
  .research-home .consent { margin:9px 0 8px; font-size:10px; }
  .research-home .primary { min-height:40px; }
  .research-home .microcopy { display:none; }

  .quiz-one { height:calc(100dvh - 58px); padding:8px 12px; gap:7px; }
  .quiz-one .progress-panel { grid-template-columns:1fr auto; padding:7px 10px; }
  .quiz-one .progress-panel>div>span,.quiz-one .progress-panel ol { display:none; }
  .question-progress { padding-bottom:8px; }
  .question-progress .progress-track { height:4px; margin-top:7px; }
  .quiz-one .question-card { padding-top:9px; }
  .quiz-one .question-card legend { font-size:17px; }
  .quiz-one .helper { font-size:10px; }
  .quiz-one .option-list { margin-top:9px; gap:5px; }
  .quiz-one .option-list label { min-height:47px; padding:6px 9px; }
  .option-letter { width:25px; height:25px; }
  .quiz-one .option-copy strong { font-size:12px; }
  .quiz-one .option-copy small { font-size:10px; }
  .quiz-one .quiz-actions { margin-top:6px; }
  .quiz-one .quiz-actions .primary,.quiz-one .quiz-actions .secondary { min-height:38px; }
  .quiz-note { display:none; }
}

/* 聚焦状态：取消点击后扩张到控件外侧的品牌粉红边框。 */
button:focus,
input:focus,
select:focus,
summary:focus,
a:focus,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible,
a:focus-visible {
  outline:none;
  outline-offset:0;
}

input:focus,
input:focus-visible,
select:focus,
select:focus-visible,
.start-card input:focus,
.start-card select:focus,
.research-home .start-card input:focus,
.research-home .start-card select:focus,
.login-card input:focus,
.login-card input:focus-visible {
  border-color:#aeb8b6;
  box-shadow:none;
}

button:focus-visible,
summary:focus-visible,
a:focus-visible {
  text-decoration:underline;
  text-decoration-color:#8d9997;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}

.print-data-table { display:none; }
/* iPad screen breakpoints must not alter the landscape print layout. A row
   owns all four borders so a page break never leaves an open table edge. */
@media print {
  .monthly-redesign .monthly-cover { min-height:70mm; padding-bottom:6mm; }
  .monthly-redesign .monthly-section { break-inside:auto; page-break-inside:auto; }
  .monthly-redesign .monthly-section-title { break-inside:avoid; page-break-inside:avoid; }
  .ranking-table,.capital-ranking-table,.comparison-matrix { display:block; border:0; box-shadow:none; }
  .ranking-head,.ranking-row,.capital-rank-head,.capital-rank-row,
  .comparison-matrix .matrix-head,.comparison-matrix .matrix-row {
    box-shadow:none!important;
    border:1px solid var(--line)!important;
    margin-top:0;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .ranking-table,.capital-ranking-table,.comparison-matrix,
  .research-ranking,.capital-ranking-scroll { overflow:visible!important; }
  .ranking-table,.focus-groups,.direction-group,.monthly-method { break-after:auto; page-break-after:auto; }
  .ranking-month-summary,.ranking-boundary,.direction-grid footer { break-before:auto; page-break-before:auto; }
  .print-source-table { display:none!important; }
  .print-data-table { display:table!important; width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:9px; line-height:1.45; break-inside:auto; page-break-inside:auto; }
  .print-data-table thead { display:table-header-group; }
  .print-data-table tbody { display:table-row-group; }
  .print-data-table tr { break-inside:avoid!important; page-break-inside:avoid!important; }
  .print-data-table th,.print-data-table td { padding:7px 5px; vertical-align:middle; text-align:left; overflow-wrap:anywhere; border:1px solid var(--line); }
  .print-data-table th { color:var(--ink); background:#eef1f0; font-size:8px; font-weight:800; }
  .print-data-table td>div { min-width:0; }
  .print-data-table td strong { font-size:9px; line-height:1.4; }
  .print-data-table td small { display:block; color:var(--muted); font-size:7px; }
  .print-data-table td>b,.print-data-table td:first-child { color:var(--brand); font-weight:800; }
  .print-data-table td:first-child { text-align:center; font-size:14px; }
  .print-data-table td>i,.print-data-table td>em { display:inline-block; font-style:normal; }
  .print-data-table .matrix-risk { display:flex; }
  .print-data-table .matrix-metric b { font-size:12px; }
  .focus-groups { display:block; }
  .focus-role { border:0; margin-top:4mm; break-inside:auto; page-break-inside:auto; }
  .focus-fund { border:1px solid var(--line); break-inside:avoid; page-break-inside:avoid; }
  .print-data-table:has(.matrix-risk) td:first-child { text-align:left; color:var(--ink); font-size:9px; }
}
