@charset "UTF-8";
:root{--brand:#144b8b;--brand-dark:#103a6c;--accent:#71c8f5;--ink:#213b58;--muted:#6c7f94;--line:#dce7f2;--bg:#f3f8fd;--white:#fff;--soft:#e8f3fd;--radius:16px}*{box-sizing:border-box}body{margin:0;font:15px/1.65 "Leelawadee UI","Tahoma",system-ui,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #56b4eb;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.4;margin-bottom:8px;letter-spacing:-.6px}h2{font-size:20px;line-height:1.5;margin-bottom:18px}h3{font-size:16px;margin-bottom:10px}p{margin-bottom:14px}small{font-size:12px}b,strong{font-weight:650}[hidden]{display:none!important}.muted,.fine{color:var(--muted)}.fine{font-size:12px}.brand-text{color:var(--brand)}.sky{color:var(--accent)}.eyebrow{display:block;font-size:11px;letter-spacing:1.6px;font-weight:700;margin-bottom:12px}.preline{white-space:pre-line;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:var(--brand);color:#e6f2ff;padding:34px 22px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:inherit;font-size:22px;font-weight:650;line-height:1.3}.brand:hover{text-decoration:none}.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:2px;margin-top:6px;opacity:.7}.brand-icon{height:48px;width:48px;border:1px solid #ffffff50;border-radius:14px;display:grid;place-items:center;color:#9fdcff;font-size:20px}.nav-caption{font-size:11px;color:#aac9e9;letter-spacing:1px;margin:45px 14px 15px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#c9dff6;padding:12px 14px;border-radius:10px;display:flex;gap:14px;align-items:center;font-size:14px}.sidebar nav a>span{font-size:22px;line-height:1;width:22px;text-align:center}.sidebar nav a.active,.sidebar nav a:hover{background:#ffffff12;color:white;text-decoration:none}.sidebar nav a.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-bottom{margin-top:auto;padding:24px 12px 0;border-top:1px solid #ffffff20;display:grid;gap:10px;font-size:13px}.sidebar-bottom a,.logout{color:#dfedfc}.logout{background:transparent;border:0;padding:0}.school-label{margin-top:18px;color:#adcce9;font-size:11px}.shell{margin-left:244px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 42px;border-bottom:1px solid var(--line);background:#fff;font-size:12px;gap:15px}.user-chip{display:flex;align-items:center;gap:9px;font-size:13px}.user-chip small{color:var(--muted);border-left:1px solid var(--line);padding-left:10px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--soft);font-weight:bold;color:var(--brand)}main{max-width:1500px;margin:auto;padding:38px 42px 50px}footer{color:#8495a8;font-size:11px;text-align:center;padding:10px 24px 24px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-heading p{margin-bottom:0}.date-label{font-size:13px;color:var(--muted);white-space:nowrap}.btn{border:1px solid transparent;border-radius:9px;padding:10px 19px;display:inline-flex;align-items:center;justify-content:center;gap:16px;font-weight:600;font-size:13px;line-height:1.6;white-space:nowrap}.btn:hover{text-decoration:none;filter:brightness(.96)}.primary{background:var(--brand);color:white}.secondary{background:white;border-color:#cddded;color:var(--brand)}.full{width:100%;justify-content:space-between}.text-link{font-size:13px}.card,.table-card,.document-card{background:white;border:1px solid var(--line);border-radius:var(--radius)}.card{padding:27px}.narrow{max-width:580px}.spaced{margin-top:24px}.stack{display:grid;gap:20px}.alert{padding:16px 20px;border:1px solid #cfe2f4;background:#eaf5ff;border-radius:12px;margin-bottom:22px;font-size:14px}.alert p:last-child{margin-bottom:0}.alert.error{background:#fff0ed;border-color:#f1d2cc;color:#9f3c2c}.alert.warning{background:#fff5e1;border-color:#e9d9b6;color:#795726}.alert a{font-weight:650;margin-left:10px}.error-page{max-width:650px;margin:60px auto}.welcome-banner{background:var(--brand);border-radius:18px;color:white;padding:30px 36px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;margin-bottom:24px}.welcome-banner h2{font-size:26px;margin-bottom:9px}.welcome-banner p{color:#c4e2fc;margin-bottom:0;font-size:14px}.welcome-banner .eyebrow{color:#a8dfff}.banner-symbol{font-size:85px;line-height:1;color:#c4e2fc;transform:rotate(-10deg)}.document-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:34px}.document-card{padding:26px;display:block;transition:transform .2s,border-color .2s}.document-card:hover{transform:translateY(-3px);border-color:#a2c8ed;text-decoration:none}.document-card h2{margin:15px 0 4px;font-size:25px}.document-card p{font-size:13px;color:var(--muted);margin-bottom:23px}.doc-icon{background:#e8f3fd;color:var(--brand);border-radius:11px;display:grid;place-items:center;width:44px;height:44px;font-size:18px;font-weight:bold}.sky-bg{background:#e3f3ff;color:#2871ac}.card-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:16px;font-size:13px;font-weight:600}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px}.section-heading h2{margin:0}.section-heading a,.section-heading .muted{font-size:12px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:11px;letter-spacing:.2px;color:var(--muted);background:#f7faff;font-weight:600;padding:15px 20px;white-space:nowrap}td{padding:18px 20px;border-top:1px solid var(--line);vertical-align:middle}td small{display:block;color:var(--muted);margin-top:4px}td .row-title{font-weight:650;white-space:nowrap}.table-card{overflow:hidden}.badge{display:inline-block;border-radius:7px;padding:5px 10px;font-size:11px;white-space:nowrap;font-weight:600}.badge.large{padding:9px 14px;font-size:13px}.pending{background:#edf2f8;color:#61748a}.processing{background:#eaf0fb;color:#4f70ab}.needs_correction{background:#fff1d7;color:#9c7026}.ready{background:#e0f4ff;color:#166b9c}.collected{background:#e5edfc;color:#244f94}.arrow-link{font-size:22px;color:#6e88a3}.empty-state{text-align:center;padding:35px 20px;color:var(--muted)}.empty-state>span{font-size:34px;color:#adc4db}.empty-state h3{margin-top:8px;color:var(--ink)}.empty-state p{font-size:13px;margin-bottom:0}.filter-card{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:22px;background:white;border:1px solid var(--line);border-radius:14px;margin-bottom:22px}.filter-card label{min-width:110px;flex:1;font-size:11px}.filter-card .search-label{flex:2;min-width:210px}.filter-card input,.filter-card select{padding:9px 11px}.filter-card .text-link{align-self:center}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:22px;color:var(--muted);font-size:12px}.pagination>div{display:flex;gap:10px}.field-grid,.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}label{display:block;font-size:13px;font-weight:600}label small{display:block;color:var(--muted);font-weight:400;margin-top:5px}input:not([type=radio]),select,textarea{width:100%;border:1px solid #cedfed;border-radius:8px;padding:11px 13px;color:var(--ink);background:white;margin-top:7px;min-width:0}input::placeholder,textarea::placeholder{color:#91a4b8;font-size:12px}textarea{resize:vertical}.required{color:#ac6c43}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:13px;font-weight:600;margin-bottom:12px}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.choice{border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:11px;padding:14px;cursor:pointer;margin-bottom:10px;font-size:13px}.choice:has(input:checked){border-color:#438ac9;background:#ecf6ff}.choice input{accent-color:var(--brand);width:16px;height:16px;flex-shrink:0}.choice small{font-size:11px}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:25px;align-items:start}.form-aside{display:grid;gap:20px}.section-title{display:flex;align-items:center;gap:13px}.section-title>span{font-size:11px;color:#7b9ab7;border:1px solid var(--line);border-radius:50%;width:28px;height:28px;display:grid;place-items:center}.section-title h2{margin:0;font-size:17px}.profile-box{padding:20px;background:#f2f7fd;border-radius:10px;font-size:14px}.profile-box p{font-size:12px;margin:7px 0;color:var(--muted)}.profile-box small{font-size:11px;color:var(--muted);display:block}.note-card{padding:25px;background:#eaf4fe;border:1px solid #cfe3f7;border-radius:14px}.note-card h2{font-size:17px}.note-card h3{font-size:13px;margin-top:20px}.note-card p{font-size:13px;color:#466785}.note-card .validity{color:#28659b;background:#dcedfd;padding:10px 12px;border-radius:8px;font-size:12px}.note-card p:last-child{margin-bottom:0}.contact-card{border:1px dashed #c9dced;border-radius:12px;padding:22px;margin-top:3px}.contact-card h3{font-size:13px}.contact-card p{font-size:12px;color:var(--muted);margin-bottom:0}.form-actions{display:flex;justify-content:space-between;gap:14px;padding-top:20px;border-top:1px solid var(--line);margin-top:10px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px;align-items:start}.correction-box{padding:26px;background:#fff4db;border:1px solid #e8d4a4;border-radius:14px;margin-bottom:24px}.correction-box .eyebrow{color:#9c7026}.correction-box h2{margin-bottom:10px}.data-grid{margin:0}.data-grid dt{color:var(--muted);font-size:12px;margin-bottom:6px}.data-grid dd{margin:0;font-size:14px}.wide{grid-column:1/-1}.message{padding:18px 0;border-top:1px solid var(--line)}.message p{margin:10px 0 0;font-size:13px}.message-meta{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted)}.student-message{padding-left:15px;border-left:3px solid #c6e1f9}.timeline{list-style:none;margin:0;padding:0 0 0 12px}.timeline li{position:relative;padding:0 0 26px 20px;border-left:1px solid #c9ddf0;font-size:13px}.timeline li:before{content:"";position:absolute;left:-5px;top:6px;width:9px;height:9px;border-radius:50%;background:#4c8cc5}.timeline li:last-child{padding-bottom:0}.timeline small{display:block;color:var(--muted);font-size:11px}.timeline p{margin:9px 0 0;font-size:12px}.internal-note{background:#f1f5fa;padding:10px;border-radius:8px;margin-top:10px}.internal-note small{color:#9b6f3e}.period-nav{display:flex;gap:4px;background:#e5eff8;border-radius:10px;padding:4px;width:fit-content;margin-bottom:16px}.period-nav a{font-size:12px;padding:8px 22px;border-radius:7px;color:#607f9d}.period-nav a.selected{background:white;color:var(--brand);box-shadow:0 2px 5px #00000005}.report-range{font-size:12px;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0 28px}.metric{border:1px solid var(--line);border-radius:14px;padding:22px;background:white}.metric>span{font-size:12px;color:var(--muted)}.metric strong{display:block;font-size:36px;line-height:1.3;margin:15px 0 10px;font-weight:600;letter-spacing:-1px}.metric strong small{margin-left:9px;font-size:11px;font-weight:400;letter-spacing:0}.metric p,.metric a{font-size:10px;color:var(--muted);margin:0}.metric.accent{background:var(--brand);color:white;border-color:var(--brand)}.metric.accent>span,.metric.accent a{color:#c5e1fb}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.status-list a{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.status-list a:last-child{border-bottom:0}.status-list strong{font-size:18px}.status-list strong small{color:var(--muted);font-size:11px;font-weight:400}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px}.dot.pending{background:#99adc3}.dot.processing{background:#7a9bd1}.dot.needs_correction{background:#d1a152}.dot.ready{background:#48a9d5}.dot.collected{background:#315fa8}.trend-list{max-height:300px;overflow:auto}.trend-row{display:grid;grid-template-columns:95px 1fr 30px;gap:12px;font-size:11px;align-items:center;padding:9px 0}.trend-row meter{width:100%;height:17px;accent-color:var(--brand)}.quick-links{display:flex;flex-wrap:wrap;gap:30px;margin-top:10px;font-size:12px}.table-actions{display:flex;flex-wrap:wrap;gap:13px;align-items:center;font-size:12px}.text-button{border:0;background:transparent;color:var(--brand);font-size:12px;padding:0}.danger{color:#ab5040}details{border-top:1px solid var(--line);padding:14px 0}summary{font-size:12px;cursor:pointer;color:var(--muted)}details dl{margin-top:16px}code{font:18px/1.6 Consolas,monospace;background:white;padding:5px 10px;border-radius:5px;user-select:all}.guest-shell main{padding:0;max-width:none}.guest-shell footer{display:none}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-intro{background:var(--brand);color:white;min-height:100vh;padding:50px 12% 30px;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-intro .brand{margin-bottom:75px}.login-intro>.eyebrow{color:#a8dfff;letter-spacing:1px}.login-intro h1{font-size:42px;line-height:1.5;letter-spacing:-1px;margin:0 0 20px}.login-intro>p{color:#c2dff9;font-size:14px}.login-intro>small{color:#abceef;margin-top:auto;z-index:1}.login-panel{width:100%;max-width:500px;padding:50px;align-self:center;justify-self:center}.login-panel h2{font-size:30px;margin:0 0 8px}.login-panel>.muted{font-size:13px;margin-bottom:30px}.login-panel .stack{gap:22px}.login-panel .btn{margin-top:8px}.login-help{margin-top:30px;padding:20px;background:#eaf3fc;border-radius:12px;font-size:12px}.login-help p{margin:8px 0 0;color:#5d7d9b;font-size:12px}.login-panel>.fine{margin-top:20px}.paper-art{position:relative;height:260px;width:100%;max-width:350px;margin:12px auto 25px;display:grid;place-items:center}.art-sheet{width:185px;height:213px;background:#e8f3ff;transform:rotate(-8deg);border-radius:7px;padding:25px 20px;box-shadow:18px 16px 0 #ffffff0d;color:#37648e;font-size:11px}.art-rule{display:block;height:5px;background:#b0cde7;margin-top:15px;border-radius:2px}.art-rule.short{width:60%}.art-seal{display:grid;place-items:center;width:45px;height:45px;border:2px solid #78b8e5;border-radius:50%;margin:18px auto 8px;font-size:24px;color:#3d87bd}.art-tag{position:absolute;bottom:28px;right:0;background:#91d4fc;color:#194b76;padding:11px 18px;border-radius:9px;font-size:11px;transform:rotate(4deg);box-shadow:0 5px 20px #0002}
@media(min-width:1600px){.login-intro{padding-left:18%;padding-right:15%}.login-panel{max-width:550px}}@media(max-width:1150px){.sidebar{width:210px;padding:28px 17px}.shell{margin-left:210px}main{padding:30px 26px}.topbar{padding:0 26px}.form-layout{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.metric-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.login-intro{padding:40px 9%}.login-intro h1{font-size:34px}.login-panel{padding:38px}.login-intro .brand{margin-bottom:65px}}@media(max-width:800px){.sidebar{position:static;width:100%;padding:18px 20px;display:block}.brand{font-size:19px}.brand-icon{height:39px;width:39px}.sidebar .nav-caption,.sidebar-bottom .school-label{display:none}.sidebar nav{display:flex;flex-wrap:wrap;gap:3px;margin-top:20px}.sidebar nav a{font-size:12px;padding:8px 12px}.sidebar nav a>span{font-size:17px;width:16px}.sidebar-bottom{display:flex;gap:20px;justify-content:flex-end;padding:12px 0 0;margin-top:12px;font-size:11px}.shell{margin:0}.topbar{height:65px;padding:0 20px}.topbar .muted{display:none}.user-chip small{display:none}main{padding:25px 20px}.page-heading{align-items:flex-start;gap:15px;flex-wrap:wrap}h1{font-size:25px}.page-heading .muted{font-size:12px}.form-layout{grid-template-columns:1fr}.form-aside{grid-row:1}.note-card h3{margin-top:12px}.note-card{padding:20px}.contact-card{padding:18px}.form-aside .contact-card{display:none}.document-grid{gap:15px}.document-card{padding:20px}.welcome-banner{padding:25px}.welcome-banner h2{font-size:22px}.banner-symbol{font-size:60px}.dashboard-grid{grid-template-columns:1fr}.card{padding:22px}.login-layout{grid-template-columns:1fr}.login-intro{min-height:auto;padding:25px 30px 35px}.login-intro .brand{margin-bottom:30px}.login-intro h1{font-size:30px}.login-intro>p,.paper-art,.login-intro>small{display:none}.login-panel{padding:35px 28px;max-width:500px}.login-panel h2{font-size:26px}.login-intro>.eyebrow{font-size:10px}.metric strong{font-size:30px}.metric{padding:18px}.choice-row{grid-template-columns:1fr 1fr}.report-range{font-size:11px}.period-nav a{padding:8px 16px}}@media(max-width:480px){main{padding:22px 15px}.field-grid,.data-grid{grid-template-columns:1fr}.wide{grid-column:auto}.document-grid{grid-template-columns:1fr}.document-card{padding:22px}.document-card p{margin-bottom:16px}.metric-grid{gap:12px}.metric strong small{display:block;margin:5px 0 0}.metric strong{font-size:31px}.metric>span{font-size:10px}.metric p,.metric a{font-size:9px}.choice-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.filter-card{padding:17px}.filter-card label{min-width:120px}.period-nav a{padding:8px 12px}.message-meta{flex-direction:column;gap:3px}.card{padding:20px}.date-label{font-size:11px}.topbar{font-size:11px}.pagination .btn{font-size:11px;padding:8px 11px}}

/* School identity remains visible on compact screens. */
.topbar-title{display:grid;gap:3px;min-width:0}.topbar-title>strong{font-size:14px;color:var(--brand)}.topbar-title>span{font-size:11px;color:var(--muted)}.login-intro>.login-school{color:#d4ebff;font-size:16px;line-height:1.7;margin:-45px 0 35px}.trend-row meter::-webkit-meter-optimum-value{background:#3c8ed3}.trend-row meter::-moz-meter-bar{background:#3c8ed3}@media(max-width:800px){.topbar-title>strong{font-size:13px}.topbar-title>span{font-size:10px}.login-intro>.login-school{display:block;margin:-12px 0 24px;font-size:15px}}@media(max-width:480px){.topbar{gap:8px}.topbar-title>strong{font-size:12px}.user-chip{font-size:11px;gap:6px}.avatar{width:28px;height:28px}}
/* Student guide */
.guide-callout{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;border:1px solid var(--line);border-radius:14px;background:#eaf4fe;margin:0 0 30px}.guide-callout h2{font-size:17px;margin-bottom:5px}.guide-callout p{font-size:13px;color:var(--muted);margin:0}.guide-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}.guide-nav a{padding:8px 14px;background:#e8f3fd;border:1px solid #cfe3f7;border-radius:9px;font-size:12px}.guide-content{max-width:1050px}.guide-content section[id]{scroll-margin-top:20px}.guide-content .section-title{margin-bottom:18px}.guide-content p{font-size:14px}.guide-steps{margin:0 0 18px;padding-left:25px}.guide-steps li{padding-left:5px;margin-bottom:13px;font-size:14px}.guide-steps li::marker{color:var(--brand);font-weight:700}.guide-section-intro{margin-top:18px}.guide-documents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.guide-documents .note-card{padding:20px}.guide-documents h3{margin-top:0}.guide-documents p{font-size:13px}.guide-statuses{margin:20px 0}.guide-statuses>div{display:grid;grid-template-columns:170px 1fr;gap:18px;border-bottom:1px solid var(--line);padding:15px 0}.guide-statuses dd{font-size:13px;margin:0}.guide-content details{padding:16px 0}.guide-content summary{font-size:14px;color:var(--ink);font-weight:600}.guide-content details p{margin:12px 0 0;color:var(--muted)}@media(max-width:1050px){.guide-documents{grid-template-columns:1fr}}@media(max-width:600px){.guide-callout{align-items:flex-start;flex-direction:column;padding:20px}.guide-nav{gap:8px}.guide-nav a{font-size:11px;padding:7px 10px}.guide-statuses>div{grid-template-columns:1fr;gap:9px}.guide-content p,.guide-steps li{font-size:13px}}
