:root{--bg:#eee8e1;--card:#fffdf9;--soft:#f5eee8;--ink:#302a27;--muted:#746a65;--line:#d9cdc4;--accent:#9f2d26;--green:#2f7355;--blue:#31568a;--gold:#b5813a;--shadow:0 12px 34px rgba(79,48,38,.08);font-family:"Segoe UI","Microsoft YaHei",sans-serif;color-scheme:light}
.module-tabs{display:flex;gap:8px;margin:15px 0 0}.module-tabs a{padding:10px 17px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);font-size:11px;font-weight:800;text-decoration:none}.module-tabs a:hover{border-color:#c4a89b;color:var(--accent)}.module-tabs a.is-active{border-color:var(--accent);background:var(--accent);color:#fff}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:linear-gradient(180deg,#f7f3ee 0,var(--bg) 100%);color:var(--ink)}main{width:min(1480px,100%);margin:auto;padding:34px clamp(18px,3vw,48px) 48px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:31px 34px;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:14px;background:var(--card);box-shadow:var(--shadow)}.eyebrow{margin:0 0 8px;color:var(--accent);font-family:Georgia,serif;font-size:11px;font-weight:700;letter-spacing:.15em}.hero h1{margin:0;font-family:Georgia,"Songti SC",serif;font-size:34px}.lead{max-width:820px;margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.75}.asof{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:center;min-width:170px;padding:12px 15px;border-radius:10px;background:var(--soft)}.asof>span{grid-row:1/3;width:9px;height:9px;border-radius:50%;background:#4f9c61;box-shadow:0 0 0 5px rgba(79,156,97,.13)}.asof small{color:var(--muted);font-size:9px}.asof strong{font-family:Georgia,serif;font-size:15px}.status-bar{display:flex;align-items:center;gap:12px;margin:15px 0;padding:12px 17px;border:1px solid var(--line);border-radius:10px;background:rgba(255,253,249,.72);color:var(--muted);font-size:10px}.status-bar strong{color:var(--accent)}.status-bar i{width:4px;height:4px;border-radius:50%;background:#cbbcb2}.panel{margin-top:16px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}.section-head h2{margin:0;font-family:Georgia,"Songti SC",serif;font-size:21px}.date-badges{display:flex;flex-wrap:wrap;gap:8px}.date-badges span{padding:8px 10px;border-radius:8px;background:var(--soft);color:var(--muted);font-size:9px}.date-badges b{margin-left:4px;color:var(--ink)}.allocation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.allocation-card{position:relative;overflow:hidden;padding:22px;border:1px solid #dfd1c7;border-radius:12px;background:linear-gradient(135deg,#fffaf6,#f4ebe5)}.allocation-card::after{content:"";position:absolute;right:-28px;top:-35px;width:100px;height:100px;border-radius:50%;background:rgba(159,45,38,.08)}.allocation-card .rank{display:inline-flex;padding:5px 8px;border-radius:999px;background:#ead9d3;color:var(--accent);font-size:9px;font-weight:700}.allocation-card h3{margin:16px 0 4px;font-family:Georgia,"Songti SC",serif;font-size:22px}.allocation-card .code{color:var(--muted);font-size:10px}.allocation-card .weight{position:absolute;right:22px;bottom:20px;color:var(--accent);font-family:Georgia,serif;font-size:31px}.allocation-card .score{margin-top:14px;color:var(--muted);font-size:10px}.next-note{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding:11px 14px;border-left:4px solid var(--gold);border-radius:8px;background:#faf4e8;color:var(--muted);font-size:10px}.next-note strong{color:#795a27}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.metric-strip article{padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:var(--shadow)}.metric-strip span{display:block;color:var(--muted);font-size:10px}.metric-strip strong{display:inline-block;margin-top:8px;font-family:Georgia,serif;font-size:26px}.metric-strip strong.up{color:var(--accent)}.metric-strip strong.down{color:var(--green)}.metric-strip em{margin-left:5px;color:var(--muted);font-size:9px;font-style:normal}.inline-note{margin:0;color:var(--muted);font-size:9px}.chart-legend{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 8px;color:var(--muted);font-size:9px}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{display:block;width:22px;height:3px;border-radius:3px}.chart-legend .strategy{background:var(--accent)}.chart-legend .hs300{background:var(--blue)}.chart-legend .shcomp{background:var(--gold)}.chart-shell{position:relative;height:390px;min-height:280px}.chart-shell canvas{width:100%;height:100%}.tooltip{position:absolute;display:none;pointer-events:none;min-width:150px;padding:10px 12px;border-radius:8px;background:rgba(48,42,39,.94);box-shadow:0 8px 24px rgba(0,0,0,.18);color:#fff;font-size:9px;line-height:1.65}.chart-axis{display:flex;justify-content:space-between;margin:7px 42px 0;color:var(--muted);font-size:9px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}table{width:100%;min-width:860px;border-collapse:collapse}th{padding:12px 14px;background:#e9dfd7;color:var(--muted);font-size:10px;text-align:right;white-space:nowrap}th:nth-child(2),th:nth-child(4){text-align:left}td{padding:14px;border-top:1px solid #eadfd7;font-size:11px;text-align:right;white-space:nowrap}td:nth-child(2),td:nth-child(4){text-align:left}tbody tr.selected{background:#fbf0eb}.asset strong{display:block}.asset small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f1e7e1;color:var(--muted);font-size:9px}.chip.selected{background:#efdcd7;color:var(--accent);font-weight:700}.positive{color:var(--accent)}.negative{color:var(--green)}.note-panel{margin-top:16px;padding:16px 19px;border-left:4px solid var(--blue);border-radius:9px;background:#f8f2e8;color:var(--muted)}.note-panel strong{color:var(--ink);font-size:11px}.note-panel p{margin:6px 0 0;font-size:9px;line-height:1.7}footer{display:flex;justify-content:space-between;gap:20px;margin-top:22px;color:var(--muted);font-size:9px}.loading{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(238,232,225,.92);color:var(--muted);font-size:12px}.loading span{width:18px;height:18px;border:2px solid #dbcac2;border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.hero{display:block;padding:24px}.asof{margin-top:18px}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:flex-start;flex-direction:column}.chart-shell{height:320px}}
@media(max-width:560px){main{padding:18px 12px 36px}.hero h1{font-size:28px}.status-bar{align-items:flex-start;flex-direction:column}.status-bar i{display:none}.allocation-grid{grid-template-columns:1fr}.metric-strip{grid-template-columns:1fr 1fr}.metric-strip article{padding:14px}.metric-strip strong{font-size:21px}.panel{padding:16px}footer{display:block}footer span{display:block;margin-top:5px}}
.chart-switch{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#f5f0eb}.chart-switch button{border:0;background:transparent;color:var(--muted);padding:8px 14px;border-radius:7px;cursor:pointer}.chart-switch button.active{background:var(--accent);color:#fff}
.actual-period{margin:18px 2px -6px;font-size:12px;line-height:1.8;font-weight:700}
.preview-panel{border-top:3px solid var(--gold);background:#fffcf6;scroll-margin-top:90px}.preview-panel .eyebrow{color:#85642d}.preview-badge{display:inline-block;flex-shrink:0;padding:7px 11px;border:1px solid #d8bc86;border-radius:999px;background:#faf0da;color:#795b25;font-size:11px;font-weight:700}.preview-description{color:var(--muted);font-size:12px;line-height:1.8}.preview-dates{margin:13px 0}.preview-holdings{padding:12px 14px;border-left:3px solid var(--gold);background:#f6efdf;color:#69502a;font-size:13px;line-height:1.7}.preview-selected{background:#fcf5e6}.preview-chip{background:#f2e7cf;color:#795b25}.preview-footnote{margin-top:12px;font-size:11px;line-height:1.8}.preview-table th,.preview-table td{text-align:right;padding:12px 10px}.preview-table th:nth-child(2),.preview-table td:nth-child(2){text-align:left}
