:root{color:#1f2328;font-synthesis:none;text-rendering:optimizelegibility;background:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:#fff}body{color:#1f2328;background:#fff;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,select{cursor:pointer}.page{min-height:100vh}.topbar{background:#fff;border-bottom:1px solid #dfe2e5}.topbar-inner,.content,.footer>div{width:min(1440px,100% - 48px);margin:0 auto}.topbar-inner{justify-content:space-between;align-items:center;min-height:64px;display:flex}.site-name{color:#1f2328;font-size:18px;font-weight:650;text-decoration:none}.topbar-note{color:#66707a;font-size:13px}.content{padding:34px 0 48px}.page-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:28px;display:flex}.page-heading h1{letter-spacing:-.02em;margin:0 0 8px;font-size:28px;font-weight:650}.page-heading p{color:#66707a;margin:0;font-size:14px}.update-info{color:#66707a;text-align:right;gap:4px;font-size:12px;display:grid}.maintenance-notice{border-top:1px solid #dfe2e5;border-bottom:1px solid #dfe2e5;margin-top:28px;padding:28px 0}.maintenance-notice h2{margin:0 0 8px;font-size:18px;font-weight:650}.maintenance-notice p{color:#66707a;margin:0;font-size:14px}.filters{border-top:1px solid #dfe2e5;border-bottom:1px solid #dfe2e5;grid-template-columns:minmax(220px,1.1fr) minmax(240px,1.2fr) minmax(180px,.9fr) auto;align-items:end;gap:16px;padding:20px 0 24px;display:grid}.field{gap:7px;display:grid}.field>span{color:#4b5560;font-size:13px;font-weight:600}input,select{color:#1f2328;background:#fff;border:1px solid #b8bec5;border-radius:3px;outline:none;height:40px}input{width:100%;padding:0 11px}select{width:100%;padding:0 30px 0 10px}input:focus,select:focus{border-color:#2f6f9f;box-shadow:0 0 0 2px #2f6f9f21}.filter-actions{align-items:center;gap:14px;min-height:40px;display:flex}.primary-button{color:#fff;background:#2f6f9f;border:1px solid #2f6f9f;border-radius:3px;height:40px;padding:0 22px;font-weight:600}.primary-button:hover{background:#285f88}.text-button{color:#4f5b66;background:0 0;border:0;padding:4px 0}.text-button:hover{color:#1f2328;text-decoration:underline}.table-section{margin-top:30px}.table-summary{justify-content:space-between;align-items:center;gap:24px;margin-bottom:14px;display:flex}.table-summary>div{align-items:baseline;gap:12px;display:flex}.table-summary h2{margin:0;font-size:18px;font-weight:650}.table-summary span,.table-summary label{color:#66707a;font-size:13px}.table-summary label{align-items:center;gap:8px;display:flex}.table-summary select{width:auto;height:34px}.table-wrap{border:1px solid #dfe2e5;overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;min-width:1080px;font-size:13px}th,td{text-align:left;border-bottom:1px solid #e7e9eb;border-right:1px solid #e7e9eb;height:45px;padding:0 14px}th:last-child,td:last-child{border-right:0}thead th{color:#38404a;background:#f6f7f8;font-weight:600}th button{width:100%;color:inherit;font-weight:inherit;text-align:left;white-space:nowrap;background:0 0;border:0;padding:0}th button:hover{color:#1f5f8f}.sort-state{color:#2f6f9f;font-size:11px;font-weight:400}tbody tr:hover{background:#fafbfc}.column-displayIndex,.column-averageGpa,.column-academicRank,.column-creditSum,.column-gradePointSum,.column-participationHours,.column-secondClassPoints,.column-secondClassRank{font-variant-numeric:tabular-nums}.column-name{font-weight:600}.column-studentId{color:#4f5b66}.status-message{border:1px solid #dfe2e5;border-bottom:0;padding:16px;font-size:13px}.error-message{color:#9b2c2c;background:snow}.empty-cell{color:#66707a;text-align:center;height:150px}.loading-row td{height:45px}.loading-row span{background:#eceef0;width:42%;height:10px;display:block}.pagination{color:#66707a;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;font-size:13px;display:flex}.pagination-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pagination button{color:#303740;background:#fff;border:1px solid #b8bec5;border-radius:3px;height:34px;padding:0 14px}.pagination button:hover:not(:disabled){border-color:#77818b}.pagination button:disabled{cursor:default;opacity:.45}.pagination .page-button{min-width:34px;padding:0 9px}.pagination .page-button.active{color:#fff;background:#2f6f9f;border-color:#2f6f9f}.pagination-ellipsis{color:#66707a;text-align:center;min-width:20px}.page-jump,.page-jump label{align-items:center;gap:7px;display:flex}.page-jump{margin-left:8px}.page-jump input{text-align:center;width:62px;height:34px;padding:0 7px}.footer{color:#66707a;border-top:1px solid #dfe2e5;font-size:12px}.footer>div{padding:22px 0 30px}@media (width<=920px){.filters{grid-template-columns:1fr 1fr}.filter-actions{align-self:end}}@media (width<=640px){.topbar-inner,.content,.footer>div{width:min(100% - 28px,1440px)}.topbar-note{display:none}.content{padding-top:24px}.page-heading{display:block}.update-info{text-align:left;margin-top:16px}.filters{grid-template-columns:1fr}.table-summary{align-items:flex-end}.table-summary>div{gap:4px;display:grid}.pagination{flex-direction:column;align-items:flex-start}.page-jump{margin-left:0}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
