/* Shared typography and components. Portal layout: college.css. CMS: content.css. */
:root{
 --font-ui:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
 --font-mono:Consolas,"SFMono-Regular",monospace;
 --navy:#004ea2;--teal:#004ea2;--gold:#d0a447;--muted:#687c8d;--border:#dfe6ed;
 --text:#333333;--text-secondary:#5c7387;--surface:#fff;--surface-soft:#eef5fd;
 --radius:4px;--shadow:0 3px 16px #004ea205;
 font-family:var(--font-ui);color:var(--text);background:#eef5fd;font-synthesis:none;text-rendering:optimizeLegibility;
}
body{font-family:var(--font-ui);font-size:14px;line-height:1.65;letter-spacing:0;-webkit-font-smoothing:antialiased;color:var(--text);background:#eef5fd}
button,input,select,textarea{font-family:var(--font-ui);letter-spacing:0}
h1,h2,h3,h4,strong{font-family:var(--font-ui)}
button,a{transition:background .16s,color .16s,border-color .16s,box-shadow .16s}
a:focus-visible,button:focus-visible{outline:3px solid #9ebdd0;outline-offset:3px}
button:disabled{cursor:default}
.sidebar{background:#014da1;border-right:1px solid #ffffff0b;scrollbar-width:thin;scrollbar-color:#77a4d1 #014da1}
.brand{padding:30px 25px;gap:14px}.brand strong{font-size:20px;font-weight:600;letter-spacing:.04em}.brand small{font-size:9px;letter-spacing:.04em;white-space:nowrap;color:#aac0cf}
.crest{width:43px;height:43px;flex-shrink:0;outline:0;border:1px solid #abc0c978;color:#d5e2e9;font:600 19px/1 var(--font-ui)}
.sidebar-caption{font-size:11px;letter-spacing:.06em;color:#c0d7ee;padding:22px 25px 15px}.nav{padding:0 14px}
.nav button{font-size:14px;font-weight:400;letter-spacing:0;padding:13px 16px;margin-bottom:5px;border-radius:6px;color:#dce9f6;gap:12px}
.nav button:hover{background:#ffffff09;color:#fff}.nav button.active{background:#ffffff12;color:#fff;box-shadow:inset 3px 0 #fdd283}
.nav-icon{width:20px;height:20px;display:grid;place-items:center;color:#c9def3}.nav-icon svg{width:19px;height:19px;stroke-width:1.65}.nav button.active .nav-icon{color:#fdd283}
.sidebar-bottom{font-size:11px;line-height:1.9;color:#b7d1ea}.topbar{height:76px;border-bottom:1px solid #e2e8ee;background:#fff}
.topbar-title,.user-name small{font-size:12px;color:#6c8191}.link-button{font-size:13px;color:#456b83}.avatar{background:#edf3f7;color:#386681}
.main{padding-top:30px}.breadcrumbs{font-size:12px;color:#788c9c;margin-bottom:14px}.heading h1{font-size:28px;font-weight:600;line-height:1.4;letter-spacing:0}
.heading p{font-size:14px;line-height:1.8;color:#6a7f90}.heading-note{font-size:12px;color:#7b8e9d}
.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.card-header{padding:21px 24px;border-bottom-color:#e5ebf0}
.card-header h2{font-size:17px;font-weight:600;letter-spacing:0;line-height:1.5}.card-header small{font-size:12px;color:#7c8f9e;letter-spacing:0}.card-body{padding:24px}
.hero{background:#014da1 url('/hero-lines.svg') right center/cover no-repeat;border-radius:4px;padding:30px;min-height:180px}.hero:after{display:none}
.hero .eyebrow{font-size:11px;color:#c5c9b5;letter-spacing:.13em}.hero h2{font-size:24px;font-weight:600;line-height:1.6;letter-spacing:0}.hero p{font-size:14px;line-height:1.9;color:#c1d2de}
.hero-stat strong,.metric-value{font-family:var(--font-ui);font-size:34px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.hero-stat strong{color:#e5e2d6}
.metric{padding:22px 24px}.metric:hover{border-color:#b3cad9;box-shadow:0 5px 20px #004ea208}.metric-label{font-size:14px;color:#5d7689}.metric-icon{border-radius:6px;background:#f0f5f8;color:#527e98}
.metric-icon svg{width:19px;height:19px;stroke-width:1.6}.metric-description{font-size:12px;line-height:1.8;color:#7d8f9d}.metric-value{margin-top:12px;color:#004ea2}
.button{border-radius:6px;font-size:14px;font-weight:500;line-height:1.45;min-height:40px;padding:9px 17px;border-color:#d5e0e8;color:#345a73;background:#fff}
.button:hover{border-color:#adc4d3;background:#f5f8fa}.button.primary{background:#004ea2;border-color:#004ea2;color:#fff}.button.primary:hover{background:#00366f;border-color:#00366f}
.button.small{font-size:13px;min-height:34px;padding:7px 13px}.button.danger{color:#ac4e48;border-color:#e6c9c5}
.text-button,.record-title{font-size:14px;color:#004ea2}.record-title{font-weight:500;line-height:1.7}.record-subtitle{font-size:12px;line-height:1.7;color:#7c909f}
.badge{font-size:12px;font-weight:400;letter-spacing:0;line-height:1.5;padding:4px 9px;border-radius:4px}
.tabs{border-bottom-color:#dfe6ed;gap:5px}.tab{font-size:14px;line-height:1.5;padding:13px 16px;color:#6b8090}.tab.active{color:#004ea2;border-color:#004ea2;font-weight:600}
.toolbar{padding:20px 24px;gap:16px;flex-wrap:wrap}.control,.field input,.field select,.field textarea{font-size:14px;line-height:1.6;min-height:40px;border-radius:6px;border-color:#d5e0e8;color:#304e63}
.field label{font-size:14px;font-weight:500;color:#3e5e73}.field small{font-size:12px;line-height:1.8;color:#7a8f9f}input:focus,select:focus,textarea:focus{outline-color:#77a5c0;border-color:#77a5c0}
.table-wrap th{font-size:13px;font-weight:500;letter-spacing:0;color:#5f778a;background:#eef5fd}.table-wrap td{font-size:14px;padding-top:19px;padding-bottom:19px}
.pagination,.date-filter,.chart-caption,.notice{font-size:13px;line-height:1.8}.chart-row .label{font-size:13px}
.notice{color:#547184;background:#f1f6f9;border-color:#dce7ee;border-left-color:#5685a2}.notice.warning{color:#8a7144;background:#fcf8ed;border-color:#ece3ce;border-left-color:#b89b65}
.detail-title{font-size:26px;font-weight:600;line-height:1.6}.detail-meta{font-size:12px;line-height:1.7;color:#788e9f}.datum dt{font-size:13px;color:#748a9a}.datum dd{font-size:14px;line-height:1.9;color:#345268}
.file-row,.related-item button,.timeline li{font-size:13px;line-height:1.8}.file-row small,.timeline small,.timeline details,.footer-note{font-size:12px;color:#7b909f}
.quick-link{border-radius:6px}.quick-link:hover{background:#f3f7fa}.quick-link>span:first-child svg{width:23px;height:23px;stroke-width:1.5}.bar-fill{background:linear-gradient(90deg,#396c8b,#8daec3)}
.dialog-header{padding:22px 26px;border-bottom-color:#e2e9ef}.dialog-header h2{font-size:21px;font-weight:600;line-height:1.5}.dialog-footer{background:#f7f9fb}
.empty{font-size:14px;color:#7b8f9f}.empty p{font-size:13px}.integration-card p{font-size:14px;line-height:1.8}
.login-branding{background:#014da1 url('/hero-lines.svg') center/cover no-repeat}.login-branding h1{font-family:var(--font-ui);font-size:38px;font-weight:600;letter-spacing:.02em;line-height:1.6}
.login-branding p{font-size:15px;line-height:1.9;color:#c0d2df}.login-form h2{font-size:28px;font-weight:600}.login-form>p{font-size:14px;color:#728899}.login-links{font-size:12px}
@media(max-width:850px){.topbar{height:66px}.main{padding-top:24px}.heading h1{font-size:24px}.heading p{font-size:13px}.hero h2{font-size:21px}.hero p{font-size:13px}.card-header{padding:20px}.tab{font-size:13px}.login-branding h1{font-size:29px}.login-branding p{font-size:13px}.login-form h2{font-size:25px}}
@media(max-width:520px){.metric{padding:18px}.metric-label{font-size:13px}.metric-value{font-size:30px}.metric-description{font-size:11px}.hero h2{font-size:20px}.card-body{padding:20px}.detail-title{font-size:23px}.card-header small{font-size:11px}.button{font-size:13px}.heading .button{padding:9px 12px}.heading h1{font-size:23px}.field label{font-size:13px}}
@media(prefers-reduced-motion:reduce){a,button{transition:none}}

/* Shared original university mark, kept at its natural aspect ratio. */
.school-brand{display:block;padding:25px 24px}.school-brand .university-logo{display:block;width:100%;max-width:194px;height:auto}.login-branding .school-brand{padding:0;max-width:290px}.login-branding .school-brand .university-logo{max-width:290px}.university-wordmark{font:600 26px/1.5 var(--font-ui);color:inherit}.metric-value{color:#004ea2}.hero .eyebrow{color:#fdd283}
