:root { --ink:#172033; --muted:#69758a; --paper:#f3f6fa; --card:#fff; --navy:#102c57; --blue:#1769e0; --line:#d9e0ea; --header:#e9f1fc; --row-blue:#f2f7ff; --row-red:#fff0f1; --row-gold:#fff9e9; } * { box-sizing:border-box; } body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; } #valuation-dashboard { max-width:1540px; margin:0 auto; padding:34px 24px 64px; } .topbar { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; padding-bottom:24px; border-bottom:1px solid var(--line); } .eyebrow { margin:0 0 7px; color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.12em; } h1 { margin:0; font-size:32px; letter-spacing:-.04em; } .subheading { margin:9px 0 0; color:var(--muted); font-size:14px; } .refresh-panel { text-align:right; } .source-pill { display:inline-block; padding:5px 9px; border-radius:99px; color:#8c4b00; background:#fff1dd; font-size:12px; font-weight:700; } .refresh-panel p { margin:8px 0 12px; color:var(--muted); font-size:12px; } button { border:0; border-radius:8px; padding:11px 16px; background:var(--blue); color:#fff; font-size:14px; font-weight:700; cursor:pointer; box-shadow:0 3px 8px #1769e044; } button:hover { background:#0d55bd; } button:disabled { cursor:not-allowed; opacity:.65; } .rule-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:20px 0 12px; } .rule-summary article { min-height:78px; padding:13px 15px; border:1px solid var(--line); border-radius:9px; background:var(--card); } .rule-summary strong,.rule-summary span { display:block; } .rule-summary strong { margin-bottom:6px; font-size:12px; } .rule-summary span { color:var(--muted); font-size:12px; line-height:1.4; } .notice { margin:0 0 18px; padding:11px 13px; border-left:3px solid var(--blue); border-radius:4px; color:#314159; background:#eaf2ff; font-size:13px; } .matrix-card { overflow:hidden; border:1px solid #cbd6e5; border-radius:10px; background:var(--card); box-shadow:0 4px 15px #14284a0c; } .matrix-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 18px; border-bottom:1px solid var(--line); background:#fbfdff; } .matrix-header h2 { margin:0; color:var(--navy); font-size:19px; } .matrix-header p { margin:5px 0 0; color:var(--muted); font-size:12px; } .matrix-unit { color:#617089; font-size:12px; white-space:nowrap; } .matrix-scroll { overflow-x:auto; } .valuation-matrix { width:100%; min-width:1210px; border-collapse:collapse; table-layout:fixed; text-align:center; font-variant-numeric:tabular-nums; } .valuation-matrix th,.valuation-matrix td { border:1px solid var(--line); } .valuation-matrix thead tr:first-child th { padding:10px 5px; color:#183b69; background:#dce9f9; font-size:13px; } .valuation-matrix thead tr:last-child th { padding:8px 5px; color:#27496f; background:#edf4fd; font-size:12px; } .valuation-matrix .metric-head { width:124px; background:#d2e2f4 !important; } .valuation-matrix tbody th { padding:11px 10px; color:#263a54; background:#f6f8fb; font-size:12px; font-weight:750; white-space:nowrap; } .valuation-matrix td { min-width:108px; padding:9px 6px; background:#fff; font-size:12px; vertical-align:middle; } .valuation-matrix td strong,.valuation-matrix td small { display:block; } .valuation-matrix td strong { font-size:12px; font-weight:750; } .valuation-matrix td small { margin-top:3px; color:var(--muted); font-size:10px; line-height:1.25; } .bond-row td { background:#fbfdff; } .region-row td { background:var(--row-blue); } .yield-row td { background:var(--row-red); color:#8d2530; } .yield-row td strong { font-size:13px; } .price-row td { background:var(--row-gold); } .spread-row td { color:#614500; background:#fff8d8; } .spread-row td strong { font-size:12px; } .time-row td { color:#465771; } .reason-row th,.reason-row td { background:#f9fafc; } .reason-row td small { color:#65748c; } .tier-badge { display:inline-block; padding:3px 6px; border-radius:4px; font-size:10px; font-weight:700; white-space:nowrap; } .tier-国债 { color:#563f00; background:#fff1bd; } .tier-好地区 { color:#006152; background:#dff7ef; } .tier-中部偏上 { color:#205ea7; background:#e4efff; } .tier-中部一般 { color:#865300; background:#fff1d8; } .tier-偏弱地区 { color:#8a3f63; background:#fce9f2; } .no-data { color:#9da8b7; } .loading,.error { padding:36px; text-align:center; color:var(--muted); } .error { color:#b13b3b; } @media (max-width:800px) { #valuation-dashboard { padding:26px 14px 48px; } .topbar,.matrix-header { display:block; } .refresh-panel { margin-top:18px; text-align:left; } .matrix-unit { display:block; margin-top:9px; } .rule-summary { grid-template-columns:repeat(2,1fr); } h1 { font-size:28px; } } .target-editable { display:block; cursor:text; } .target-editable:hover { outline:1px dashed #8ca8d1; outline-offset:3px; } .override-button,.restore-button { display:inline-block; margin-top:6px; border:1px solid #b6c9e7; border-radius:4px; padding:3px 5px; background:#fff; color:#1769e0; box-shadow:none; font-size:10px; line-height:1.1; } .restore-button { margin-left:4px; color:#65748c; border-color:#d6dce5; } .manual-state { display:block; margin-top:5px; color:#007e65; font-size:10px; font-weight:800; } .override-dialog { width:min(420px, calc(100vw - 32px)); border:0; border-radius:12px; padding:0; color:var(--ink); box-shadow:0 20px 60px #13213b55; } .override-dialog::backdrop { background:#14213d66; } .override-dialog form { padding:22px; } .override-dialog h2 { margin:0; font-size:21px; } .override-dialog header p:not(.eyebrow) { margin:8px 0 18px; color:var(--muted); font-size:13px; } .override-dialog label { display:block; font-size:12px; font-weight:750; } .override-dialog input { width:100%; margin-top:7px; border:1px solid var(--line); border-radius:7px; padding:11px; color:var(--ink); font-size:15px; } .form-hint { margin:12px 0; color:var(--muted); font-size:12px; line-height:1.55; } .form-error { min-height:18px; margin:0; color:#b13b3b; font-size:12px; } .override-dialog footer { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; } .dialog-cancel { background:#eef1f5; color:#526178; box-shadow:none; } .dialog-submit { background:var(--blue); } .tier-label { display:inline-block; margin-bottom:4px; padding:2px 5px; border-radius:3px; font-size:10px; font-weight:800; line-height:1.2; } .valuation-matrix tbody th > strong { display:block; font-size:11px; font-weight:700; } @media (max-width:480px) { .rule-summary { grid-template-columns:1fr; } }
.header-actions { display:flex; justify-content:flex-end; gap:8px; } .mcp-setup-button { background:#edf4ff; color:#1754a5; box-shadow:none; border:1px solid #bed4f4; } .mcp-setup-button:hover { background:#dcecff; } .mcp-setup-dialog { width:min(620px, calc(100vw - 32px)); } .mcp-setup-dialog select { width:100%; margin-top:7px; border:1px solid var(--line); border-radius:7px; padding:11px; color:var(--ink); background:#fff; font-size:14px; } .mcp-setup-dialog label + label { margin-top:13px; } .form-success { color:#08745f; } @media (max-width:640px) { .topbar { align-items:flex-start; flex-direction:column; } .refresh-panel { width:100%; text-align:left; } .header-actions { justify-content:flex-start; flex-wrap:wrap; } }
