:root{font-family:"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;color:#313745;background:#f5f7f9;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,select{font:inherit}[hidden]{display:none!important}
.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.sidebar{background:#313745;color:#fff;padding:34px 24px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{color:#fff;font-size:17px;font-weight:700;text-decoration:none;line-height:1.35;letter-spacing:-.02em}.brand span{display:block;color:#b8c2ce;font-size:11px;font-weight:400;letter-spacing:.08em;margin-top:7px}
.nav-links{display:grid;gap:5px;margin-top:55px}.nav-link{color:#d7dee6;text-decoration:none;border-radius:8px;padding:12px 14px;font-size:14px}.nav-link:hover,.nav-link:focus-visible{background:#45505e;color:#fff}.nav-link.active{background:#424e5c;color:#50c4d6;font-weight:700}.nav-link:focus-visible,.brand:focus-visible,.reset-button:focus-visible,select:focus-visible{outline:3px solid #6dab01;outline-offset:2px}.sidebar-note{margin:auto 0 0;color:#aab8c6;font-size:11px;line-height:1.8}
.content{width:100%;max-width:1460px;margin:0 auto;padding:40px clamp(24px,4vw,68px) 32px;min-width:0}
.eyebrow{font-size:11px;color:#2aa9bd;font-weight:700;letter-spacing:.14em;margin-bottom:20px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-header h1{font-size:28px;line-height:1.2;letter-spacing:-.03em;margin:0 0 10px}.page-description{margin:0;color:#667482;font-size:12px;line-height:1.7}.filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.filter-field{display:grid;gap:5px;background:#edf1f4;border:1px solid #e3e9ed;border-radius:9px;padding:9px 12px;min-width:152px}.filter-field span{color:#667482;font-size:11px}.filter-field select{appearance:auto;border:0;background:transparent;color:#313745;min-width:125px;font-size:14px;font-weight:600;cursor:pointer}.reset-button{border:1px solid #d9e2e8;border-radius:9px;background:#fff;color:#516070;padding:13px 15px;cursor:pointer}.reset-button:hover{background:#eaf5f7;color:#167d8e}
.data-state{padding:22px;border-radius:9px;background:#eaf5f7;color:#247889;font-size:14px}.data-state.error{background:#fff1f0;color:#a33329;border:1px solid #e9b6b1}
.data-state.error p{margin:0 0 12px;line-height:1.6}.retry-button{border:1px solid #c87870;border-radius:7px;background:#fff;color:#8f2f28;padding:8px 14px;cursor:pointer}.retry-button:hover{background:#ffe6e3}.retry-button:focus-visible{outline:3px solid #6dab01;outline-offset:2px}
.scope-line{font-size:12px;color:#667482;margin:0 0 16px}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.kpi-card{background:#edf1f4;border:1px solid #e9eef1;border-radius:10px;min-height:125px;padding:18px 18px 15px;display:flex;flex-direction:column}.kpi-card span{color:#667482;font-size:12px}.kpi-card strong{font-size:clamp(17px,1.65vw,23px);line-height:1.2;margin:16px 0 8px;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-card small{color:#7e8d9b;font-size:10px;margin-top:auto}.frequency-kpis{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px}.frequency-kpis .kpi-card strong{font-size:30px}
#kpi-amount{font-size:clamp(15px,1.25vw,19px)}
.panel{background:#edf1f4;border:1px solid #e9eef1;border-radius:10px;padding:19px 22px 18px;min-width:0}.trend-panel,.frequency-panel{margin-top:22px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel-heading h2{font-size:16px;margin:0 0 5px;line-height:1.4}.panel-heading p{font-size:11px;color:#667482;margin:0;line-height:1.5}.panel-tag{font-size:10px;font-weight:700;color:#2b96a9;white-space:nowrap;border:1px solid #c7e6eb;background:#e2f5f7;padding:5px 8px;border-radius:99px}.chart-wrap{margin-top:15px;width:100%;min-height:230px}.chart-wrap svg{display:block;width:100%;height:auto;max-height:320px;overflow:visible}.grid-line{stroke:#d8e0e6;stroke-width:1}.grid-line.vertical{stroke:#e0e6eb}.axis-label{fill:#667482;font-family:inherit;font-size:10px}.trend-path{fill:none;stroke:#2aa9bd;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.trend-dot{fill:#fff;stroke:#2aa9bd;stroke-width:2}.trend-dot.selected,.frequency-dot{fill:#6dab01;stroke:#fff;stroke-width:1}.selection-line{stroke:#6dab01;stroke-width:1;stroke-dasharray:4 4}.frequency-stem{stroke:#2aa9bd;stroke-width:2;opacity:.85}.frequency-stem.highlighted{stroke:#6dab01;stroke-width:2.4;opacity:1}
.scroll-hint{display:none;color:#667482;font-size:11px;margin:4px 0 0}
.rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.ranking{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:15px}.ranking li{min-width:0}.rank-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px}.rank-row strong{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.rank-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-track{height:4px;background:#dbe5e9;border-radius:99px;margin-top:7px}.rank-bar{height:4px;background:#2aa9bd;border-radius:99px}.empty-rank{font-size:13px;color:#667482;padding:16px 0}
.table-panel{margin-top:22px}.table-scroll{overflow-x:auto;margin-top:16px}table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums;text-align:left}th{font-size:11px;color:#667482;font-weight:600;border-bottom:1px solid #d8e0e6;padding:10px 12px}td{border-bottom:1px solid #e1e7eb;padding:10px 12px}tr:last-child td{border-bottom:0}th:nth-child(n+2),td:nth-child(n+2){text-align:right}.method-note{color:#667482;font-size:11px;line-height:1.8;margin-top:23px;padding:2px 0 0}
.context-panel{margin-top:22px;background:#fff}.context-panel h2{font-size:16px;margin:0 0 10px}.context-panel p{color:#516070;font-size:12px;line-height:1.7;margin:0 0 16px}.context-panel a{color:#167d8e;text-underline-offset:2px}.context-panel a:focus-visible{outline:3px solid #6dab01;outline-offset:2px}.context-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0}.context-list div{min-width:0}.context-list dt{font-size:11px;font-weight:700;color:#313745;margin-bottom:5px}.context-list dd{margin:0;color:#667482;font-size:11px;line-height:1.7}
@media(max-width:1120px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-header{align-items:flex-start;flex-direction:column}.filters{width:100%}.filter-field{flex:1}}
@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:static;padding:18px 20px;display:block}.brand{font-size:15px}.brand span,.sidebar-note{display:none}.nav-links{display:flex;margin-top:14px;gap:8px}.nav-link{font-size:12px;padding:9px 10px}.content{padding:25px 16px 35px}.page-header h1{font-size:24px}.filters{display:grid;grid-template-columns:1fr 1fr}.filter-field{min-width:0}.filter-field select{min-width:0;width:100%}.reset-button{grid-column:1/-1;padding:10px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi-card{min-height:108px;padding:14px}.kpi-card strong{font-size:18px;white-space:normal}#kpi-amount{font-size:18px}.kpi-card small{font-size:9px}.rank-grid{grid-template-columns:1fr;gap:13px}.panel{padding:16px}.chart-wrap{overflow-x:auto;min-height:190px}.chart-wrap svg{min-width:560px}.scroll-hint{display:block}.frequency-kpis .kpi-card strong{font-size:24px}.panel-heading h2{font-size:14px}.panel-tag{display:none}.context-list{grid-template-columns:1fr;gap:13px}}
@media(max-width:340px){#kpi-amount{font-size:15px}}
