@font-face{font-family:Sarabun;src:url('../fonts/Sarabun-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Sarabun;src:url('../fonts/Sarabun-SemiBold.ttf') format('truetype');font-weight:600 800;font-style:normal;font-display:swap}
:root{--portal-primary:#087b43;--portal-primary-hover:#066736;--portal-brand:#00a94f;--portal-accent:#ed2028;--portal-soft:#edf8f1;--portal-ink:#203329;--portal-muted:#65736b;--portal-border:#dee9e2;--portal-background:#f4f8f5}
*{box-sizing:border-box}
body{margin:0;font-family:Sarabun,system-ui,sans-serif;color:var(--portal-ink);background:var(--portal-background);font-size:14px;line-height:1.65;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--portal-primary);text-underline-offset:3px}
a:hover{color:var(--portal-primary-hover)}
button,input{font:inherit}
.btn{border-radius:8px;font-weight:600;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:var(--portal-primary);--bs-btn-border-color:var(--portal-primary);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--portal-primary-hover);--bs-btn-hover-border-color:var(--portal-primary-hover);--bs-btn-active-color:#fff;--bs-btn-active-bg:var(--portal-primary-hover);--bs-btn-active-border-color:var(--portal-primary-hover);--bs-btn-disabled-bg:var(--portal-primary);--bs-btn-disabled-border-color:var(--portal-primary);--bs-btn-focus-shadow-rgb:8,123,67}
.btn-outline-primary{--bs-btn-color:var(--portal-primary);--bs-btn-border-color:#c6dfcf;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--portal-primary);--bs-btn-hover-border-color:var(--portal-primary);--bs-btn-active-color:#fff;--bs-btn-active-bg:var(--portal-primary-hover);--bs-btn-active-border-color:var(--portal-primary-hover);--bs-btn-disabled-color:var(--portal-primary);--bs-btn-disabled-border-color:#c6dfcf;--bs-btn-focus-shadow-rgb:8,123,67}
.btn-outline-secondary{--bs-btn-color:#536b5b;--bs-btn-border-color:#d5e2d9}
.form-control{border-color:#d5e2d9;border-radius:9px;font-size:15px;min-height:48px}
.form-control:focus{border-color:#64b988;box-shadow:0 0 0 3px rgba(8,123,67,.12)}
.form-label{font-weight:600}
.form-check-input:checked{background-color:var(--portal-primary);border-color:var(--portal-primary)}
.form-check-input:checked[type=checkbox]{background-image:url('../images/check-white.svg')}
.form-check-input:focus{border-color:#64b988;box-shadow:0 0 0 3px rgba(8,123,67,.12)}
.pagination{--bs-pagination-color:var(--portal-primary);--bs-pagination-hover-color:var(--portal-primary-hover);--bs-pagination-hover-bg:var(--portal-soft);--bs-pagination-hover-border-color:#c6dfcf;--bs-pagination-focus-color:var(--portal-primary-hover);--bs-pagination-focus-bg:var(--portal-soft);--bs-pagination-focus-box-shadow:0 0 0 3px rgba(8,123,67,.12);--bs-pagination-active-bg:var(--portal-primary);--bs-pagination-active-border-color:var(--portal-primary);--bs-pagination-border-color:var(--portal-border)}
:focus-visible{outline:3px solid var(--portal-primary);outline-offset:3px}
.skip-link{position:absolute;top:-100px;left:16px;z-index:2000;background:white;padding:12px;border-radius:8px}
.skip-link:focus{top:8px}
.portal-main{flex:1;padding:34px 0 24px}
.portal-main>.container-fluid,.portal-nav{max-width:1800px;padding-right:32px;padding-left:32px}
.portal-footer{width:100%;max-width:1800px;margin:0 auto;padding:18px 32px;display:flex;justify-content:space-between;gap:16px;color:var(--portal-muted);font-size:12px}
.login-shell{max-width:430px;margin:30px auto 50px}
.login-intro{text-align:center;margin-bottom:26px}
.login-logo{object-fit:contain;width:160px;height:auto;margin-bottom:20px}
.login-intro h1{font-size:26px;font-weight:600;margin-bottom:8px}
.login-intro p,.login-help{color:var(--portal-muted)}
.login-card{background:#fff;border:1px solid var(--portal-border);border-radius:16px;padding:30px;box-shadow:0 6px 30px rgba(26,70,43,.04)}
.login-card h2{font-size:22px;font-weight:600;margin-bottom:6px}
.login-help{text-align:center;font-size:13px;margin-top:24px}
.field-validation{font-size:13px}
.validation-summary ul{padding-left:20px;margin-bottom:20px}
.validation-summary-valid{display:none}
.error-card{max-width:650px;margin:60px auto;text-align:center;padding:32px;background:white;border-radius:16px;border:1px solid var(--portal-border)}
.error-card h1{font-size:26px}.error-card p{color:var(--portal-muted)}
.error-number{font-size:60px;font-weight:600;color:var(--portal-primary)}
.request-id{font-size:12px;overflow-wrap:anywhere;margin-top:24px}
@media(max-width:575.98px){.portal-main{padding-top:24px}.portal-main>.container-fluid,.portal-nav{padding-right:16px;padding-left:16px}.portal-footer{padding:16px;flex-direction:column;gap:2px}.login-shell{margin:12px auto 24px}.login-card{padding:22px}.login-intro h1{font-size:24px}.login-intro p{font-size:13px}}

