body{min-width:320px;overflow-x:auto}.dashboard-layout{width:var(--pc-width);min-height:var(--pc-height);margin:0 auto;background:var(--bg-page);display:flex;flex-direction:column}.dashboard-header{height:var(--topbar-height);background:linear-gradient(135deg,#1a0a3e,#2d1b69);color:#fff;padding:0 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.dashboard-header .logo{display:flex;align-items:center;gap:10px;font-size:var(--font-md);font-weight:var(--fw-bold)}.dashboard-header .logo-icon{width:28px;height:28px;background:#7c3aed;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-header .logo-icon svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.dashboard-header .page-title{font-size:var(--font-2xl);font-weight:var(--fw-semibold);letter-spacing:.5px}.filter-section{background:var(--bg-card);padding:12px 24px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--divider);flex-wrap:wrap;flex-shrink:0}.filter-group{display:flex;align-items:center;gap:6px}.filter-group label{font-size:var(--font-md);color:var(--text-secondary);white-space:nowrap}.filter-group .form-select{min-width:170px}.filter-group .form-input{min-width:148px}.time-range{display:flex;align-items:center;gap:8px}.time-separator{color:var(--text-muted);font-size:var(--font-sm)}.dashboard-content{flex:1;padding:var(--content-padding) 24px;overflow-y:auto}.dashboard-top{display:grid;grid-template-columns:3fr 2fr;gap:20px;margin-bottom:20px;align-items:start}.report-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.card-title{font-size:var(--font-lg);font-weight:var(--fw-semibold);margin-bottom:14px;color:var(--text-primary)}.ranking-note{font-size:var(--font-sm);color:var(--text-muted);font-weight:var(--fw-regular)}.overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.overview-grid .stat-box{min-height:92px;display:flex;flex-direction:column;justify-content:center;padding:14px 12px}.overview-grid .stat-value{color:var(--brand-primary);font-size:22px;line-height:1.2;font-weight:var(--fw-bold)}.overview-grid .stat-label{color:var(--text-muted);font-size:12px;margin-top:6px}.school-rank{list-style:none;margin:0;padding:0 4px 0 0;max-height:312px;overflow-y:auto}.school-rank li{padding:10px 0;border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:10px;font-size:var(--font-md);color:var(--text-primary)}.school-rank li:last-child{border-bottom:none}.rank-num{width:24px;height:24px;border-radius:50%;background:#f0f0f0;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:var(--fw-bold);flex-shrink:0}.rank-num.top{background:var(--brand-primary);color:#fff}.rank-school-block{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.rank-school{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--fw-medium)}.rank-location{color:var(--text-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-score{margin-left:auto;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.rank-score.top-score{color:var(--success)}.knowledge-table{table-layout:fixed}.knowledge-table th,.knowledge-table td{padding:10px;vertical-align:middle}.knowledge-table td[rowspan]{vertical-align:middle;font-weight:var(--fw-semibold);background:#fafbfd}.knowledge-table .province-cell,.knowledge-table .city-cell,.knowledge-table .district-cell,.knowledge-table .school-cell{background:#fafbfd;font-weight:var(--fw-semibold);text-align:center}.knowledge-table .kp-header{color:var(--brand-primary);font-weight:var(--fw-semibold);cursor:pointer}.knowledge-table .kp-cell{font-weight:var(--fw-medium)}.knowledge-table .parent-kp-cell{color:var(--text-muted);font-size:13px}.knowledge-table .score-cell{text-align:center;font-variant-numeric:tabular-nums}.knowledge-table .score-high{color:var(--success);font-weight:var(--fw-semibold)}.knowledge-table .score-low{color:var(--danger);font-weight:var(--fw-semibold)}.knowledge-table .total-score{font-weight:var(--fw-bold)}@media(max-width:1480px){.dashboard-layout{margin:0}.dashboard-header,.filter-section,.dashboard-content{padding-left:16px;padding-right:16px}}
