@font-face{font-family:Figtree;src:url('/vendor/figtree-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Kanit;src:url('/vendor/kanit-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{
 --nav:#174f84;--nav-dark:#123b64;--accent:#1e64a5;--accent-soft:#edf4fc;
 --ink:#15334f;--muted:#536a80;--bg:#f3f6fa;--surface:#fff;--line:#dae4ef;
 --radius:10px;--ease:180ms ease-out
}
::selection{background:#c9dff4;color:#123b64}
body{color:var(--ink)}
input,textarea{caret-color:var(--accent)}
:focus-visible{outline:3px solid #2769aa;outline-offset:3px}
a{text-underline-offset:4px}
.institution-logo{display:block;width:100%;height:100%;object-fit:contain}
.sidebar{background:var(--nav);border-right:1px solid #134776}
.brand{padding:26px 22px;gap:12px;border-color:#ffffff28}
.brand-seal{width:62px;height:56px;flex:0 0 auto;padding:5px;background:white;border-radius:7px}
.brand strong{font-size:23px;letter-spacing:.2px;color:#fff}
.brand span{color:#dbeafa;font-size:11px;letter-spacing:.8px}
.nav-label{color:#d1e2f3;font-size:10px;font-weight:600}
.nav-link{color:#e4eef9;min-height:44px}
.nav-link:hover{background:#ffffff16;color:#fff}
.nav-link.active{background:#ffffff1b;color:#fff;border-left:0;padding-left:14px;box-shadow:inset 0 0 0 1px #ffffff25}
.nav-link.active .icon{color:#fff}
.sidebar-bottom{border-color:#ffffff28}
.sidebar-bottom strong{color:#e4eef9}.sidebar-bottom p{color:#c9dcef}
.sidebar-close{color:#fff}
.topbar{border-color:var(--line);height:76px}
.avatar{background:#e8f0fa;color:#205c94}
.profile-menu{box-shadow:0 8px 24px #15334f14}
.profile-menu a:hover,.profile-menu button:hover{background:var(--accent-soft)}
.panel{border-color:var(--line);border-radius:10px}
.panel-heading{padding-top:22px}
.page-heading h1{letter-spacing:-.6px}
.btn{border-radius:6px;font-size:13px}
.btn:hover{background:#f1f6fc;border-color:#c2d4e8}
.btn.primary{background:var(--accent);border-color:var(--accent)}
.btn.primary:hover{background:#164f88;border-color:#164f88}
.btn.primary:active{background:#123b64}
.btn.danger{background:#fdf5f4;color:var(--red);border-color:#ecd0ce}
.field input,.field select,.field textarea{border-color:#c4d3e3;border-radius:6px;background:#fff}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#91abc5}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#1e64a5;box-shadow:0 0 0 3px #1e64a51a}
.field input::placeholder,.field textarea::placeholder{color:#647990;opacity:1}
.field [aria-invalid=true]{border-color:var(--red)}
th{background:#f1f5fa;color:#526b82;font-size:11px;border-color:var(--line)}
td{border-color:#e7eef6}
tr:hover td{background:#f8fafd}
.table-sub{font-size:11px}
.table-footer{border-color:var(--line)}
.metric-strip{border-color:var(--line);border-radius:10px}
.metric{border-color:var(--line)}
.metric-value{color:#123b64}
.quality-strip,.technical-block{border-color:var(--line)}
.quality-strip{border-radius:10px}
.section-nav a{border-radius:6px;border-color:var(--line)}
.section-nav a.active{background:#eaf2fc;border-color:#8eb2d8;color:#174f84}
.code-chip{background:#eaf1fa;color:#345b80}
.notice{background:#f1f6fc;border-color:#d7e5f3}
.notice.error{background:#fff7f5;border-color:#eccdca}
.notice.success{background:#eef7ef;border-color:#cee1d1}
.demo-note{background:#fff9eb;border-color:#eddfba;color:#735823}
.map-canvas{border-color:#d8e4ef}
.footer{color:#60748a}
.auth-body{margin:0;background:#fff}
.auth-page{display:grid;grid-template-columns:47% 53%;min-height:100dvh}
.auth-identity{
 position:relative;isolation:isolate;overflow:hidden;background:#1d60a2;color:#fff;
 padding:3.8vw 5.4vw 24px;display:flex;flex-direction:column;align-items:center;
}
.auth-identity::before,.auth-identity::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.auth-identity::before{background:#195b9c;clip-path:polygon(0 53%,100% 6%,100% 65%,0 100%)}
.auth-identity::after{background:#175798;clip-path:polygon(0 68%,52% 82%,70% 100%,0 100%)}
.auth-seal{width:22.9vw;max-width:370px;height:18.4vw;max-height:300px;background:#fff;border-radius:12px;padding:18px 30px;flex-shrink:0}
.auth-wordmark{text-align:center;line-height:1;margin-top:19px}
.auth-wordmark>span{font-family:Kanit,'Public Sans',sans-serif;font-weight:700;font-size:6.44vw;letter-spacing:.015em;line-height:1}
.auth-wordmark>strong{display:block;font-size:2.05vw;font-weight:600;letter-spacing:.24em;margin-top:3px;line-height:1.3}
.auth-rule{width:98px;height:3px;background:#fff;border-radius:2px;margin:24px 0 23px}
.auth-purpose{width:100%;max-width:590px}
.auth-purpose h1{font-family:Figtree,'Public Sans',sans-serif;font-size:2.75vw;line-height:1.12;font-weight:700;letter-spacing:-.018em}
.auth-purpose p{color:#eff5fc;font-size:1.73vw;line-height:1.27;margin-top:21px}
.organization{width:100%;max-width:560px;margin-top:30px}
.org-root{display:flex;align-items:center;justify-content:center;gap:14px;font-size:1.25vw}
.org-root strong{font-weight:600}
.org-symbol{width:50px;height:50px;border-radius:50%;background:#e2eef9;color:#1e5e9b;display:grid;place-items:center;flex-shrink:0}
.org-symbol .icon{width:27px;height:27px;stroke-width:1.8}
.org-branches{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:38px}
.org-branches::before{content:"";position:absolute;top:-24px;left:16.666%;right:16.666%;height:1px;background:#e2edf8}
.org-branches::after{content:"";position:absolute;top:-38px;left:50%;height:15px;width:1px;background:#e2edf8}
.org-branch{position:relative;display:flex;flex-direction:column;align-items:center;font-size:1.13vw;line-height:1.2}
.org-branch::before{content:"";position:absolute;top:-24px;left:50%;height:24px;width:1px;background:#e2edf8}
.org-branch>.org-symbol{width:43px;height:43px}
.org-branch>strong{font-size:1.2vw;font-weight:600;margin-top:9px}
.org-schools{position:relative;display:flex;justify-content:space-between;gap:17px;width:100%;max-width:130px;margin-top:29px;padding-top:13px}
.org-schools::before{content:"";position:absolute;top:0;left:8px;right:8px;height:1px;background:#d5e6f7}
.org-schools::after{content:"";position:absolute;top:-19px;left:50%;width:1px;height:19px;background:#d5e6f7}
.org-schools .icon{width:25px;height:25px}
.org-branch>span:last-child{color:#eaf3fc;margin-top:9px;text-align:center}
.auth-access{position:relative;display:flex;align-items:flex-start;justify-content:center;background:#fff;padding:11.65vw 4.05vw 100px 5.5vw;min-width:0}
.auth-form{width:100%;max-width:740px}
.auth-form h2{font-family:Figtree,'Public Sans',sans-serif;font-weight:700;font-size:5.78vw;letter-spacing:-.025em;line-height:1.08;color:#08274e}
.auth-instructions{font-size:1.87vw;line-height:1.4;margin-top:9px;color:#152d4c}
.auth-form .notice{margin-top:20px;margin-bottom:0}
.auth-form form{margin-top:54px}
.auth-field{margin-bottom:27px}
.auth-field label{font-size:1.6vw;font-weight:700;color:#122c4c;margin-bottom:9px}
.auth-field input{height:5vw;min-height:54px;font-size:1.6vw;padding:14px 22px;background:#fff;border:1px solid #bbcce0;border-radius:7px;color:#12304e}
.auth-field input::placeholder{color:#65758c}
.auth-field .error{font-size:14px}
.auth-remember{display:flex;align-items:center;gap:16px;margin:32px 0 45px;font-size:1.44vw;color:#18334f;cursor:pointer;line-height:1.45}
.auth-remember input{accent-color:#2064a8;width:28px;height:28px;flex-shrink:0;margin:0}
.auth-submit{width:100%;height:5vw;min-height:54px;display:flex;font-size:1.7vw;font-weight:700;border-radius:7px}
.auth-support{font-size:1.53vw;line-height:1.45;color:#4a607b;margin-top:32px}
.auth-demo{position:absolute;bottom:20px;right:22px;font-size:12px;color:#526782}
.auth-form[aria-busy=true] .auth-submit{opacity:.75;cursor:wait}
@media(min-width:1600px){
 .auth-identity{padding-top:61px}.auth-wordmark>span{font-size:103px}.auth-wordmark>strong{font-size:33px}.auth-purpose h1{font-size:44px}.auth-purpose p{font-size:28px}
 .auth-access{padding-top:186px}.auth-form h2{font-size:92px}.auth-instructions{font-size:30px}.auth-field label,.auth-field input{font-size:25px}
 .auth-field input,.auth-submit{height:80px}.auth-submit{font-size:27px}.auth-support{font-size:24px}.auth-remember{font-size:23px}
 .org-root{font-size:20px}.org-branch{font-size:18px}.org-branch>strong{font-size:19px}
}
@media(max-width:1200px) and (min-width:901px){
 .auth-form form{margin-top:40px}.auth-field{margin-bottom:22px}.auth-remember{margin:25px 0 32px}.auth-support{margin-top:26px}
 .auth-seal{padding:16px 23px}.auth-rule{margin:20px 0}.organization{margin-top:26px}.org-symbol{width:42px;height:42px}
 .org-schools{gap:10px}.auth-identity{padding-bottom:24px}
}
@media(max-width:900px){
 .sidebar.open{box-shadow:0 0 0 100vmax #102c4c60}
 .auth-identity{padding:36px 26px 30px}.auth-access{padding:78px 30px 70px}
 .auth-seal{width:240px;height:215px;max-width:100%;max-height:none;padding:18px 23px}
 .auth-wordmark>span{font-size:64px}.auth-wordmark>strong{font-size:21px}.auth-purpose h1{font-size:28px}.auth-purpose p{font-size:18px}
 .auth-form h2{font-size:49px}.auth-instructions{font-size:18px}.auth-field label,.auth-field input{font-size:16px}.auth-field input{height:54px}
 .auth-remember{font-size:15px;gap:10px;margin:25px 0 28px}.auth-remember input{width:20px;height:20px}.auth-submit{height:54px;font-size:17px}.auth-support{font-size:15px}
 .org-root{font-size:14px}.org-branch{font-size:12px}.org-branch>strong{font-size:13px}.org-schools{gap:6px}.org-symbol{width:38px;height:38px}
 .organization{margin-top:30px}.org-branch>.org-symbol{width:34px;height:34px}.org-schools .icon{width:21px;height:21px}
}
@media(max-width:680px){
 .auth-page{display:block}.auth-identity{flex-direction:row;align-items:center;justify-content:flex-start;gap:18px;padding:24px;background:#1d60a2}
 .auth-seal{width:90px;height:80px;border-radius:8px;padding:7px;max-width:none}.auth-wordmark{text-align:left;margin:0}.auth-wordmark>span{font-size:43px}.auth-wordmark>strong{font-size:14px;letter-spacing:.16em;margin-top:2px}
 .auth-rule,.auth-purpose,.organization{display:none}.auth-identity::before,.auth-identity::after{display:none}
 .auth-access{padding:34px 24px 32px;display:block;min-height:calc(100dvh - 128px)}
 .auth-form{max-width:480px;margin:auto}.auth-form h2{font-size:43px}.auth-instructions{font-size:16px;margin-top:8px}
 .auth-form form{margin-top:27px}.auth-field{margin-bottom:21px}.auth-field label{font-size:15px;margin-bottom:8px}.auth-field input{height:52px;font-size:16px;padding:12px 15px}
 .auth-remember{margin:25px 0;font-size:14px;gap:10px;min-height:44px}.auth-submit{height:52px;font-size:17px}
 .auth-support{font-size:14px;line-height:1.6;margin-top:24px}.auth-demo{position:static;text-align:center;font-size:11px;margin:30px 0 0;color:#526782}
 .topbar{height:66px}.brand-seal{width:60px;height:54px}
}
@media(prefers-reduced-motion:reduce){.auth-body *{transition:none!important;animation:none!important}}
@media print{.auth-page{display:block}.auth-identity{display:none}.auth-access{padding:20px}.auth-form h2{font-size:32px}}

