@font-face{font-family:SchoolThai;src:local('Thonburi'),local('Noto Sans Thai'),local('Tahoma');font-display:swap}
:root{--wine:#481c2c;--wine-dark:#30121e;--gold:#b49661;--cream:#f8f6f1;--ink:#29272b;--muted:#777278;--line:#e7e2dc;--white:#fff;--green:#24745e;--danger:#a72d42;--shadow:0 18px 55px #30121e0b}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:SchoolThai,'Avenir Next',system-ui,sans-serif;font-size:15px;line-height:1.7}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--wine);text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.4}h1{font-size:clamp(30px,4.3vw,57px);font-weight:600;letter-spacing:-1.4px}h2{font-size:26px;font-weight:600;letter-spacing:-.5px}h3{font-size:18px;font-weight:600}p+p{margin-top:14px}small,.small{font-size:12px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #b4966166;border-color:var(--gold)}[hidden]{display:none!important}.wrap{max-width:1240px;padding:0 48px;margin:auto}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--gold)}.serif{font-family:Georgia,'Times New Roman',serif}.flex{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.stack{display:grid;gap:20px}.skip-link{position:fixed;top:-100px;left:10px;z-index:30;background:white;padding:12px}.skip-link:focus{top:10px}
header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand img{width:61px;height:61px;object-fit:contain}.brand strong{display:block;font-family:Georgia,serif;font-size:19px;line-height:1.35;letter-spacing:.3px;color:var(--wine)}.brand small{font-size:10px;color:var(--muted);display:block;max-width:260px}.nav{display:flex;gap:26px;align-items:center}.nav>a{font-size:13px;color:#706970;padding:34px 0;position:relative}.nav>a.active{color:var(--wine);font-weight:600}.nav>a.active:after{content:'';height:2px;background:var(--wine);position:absolute;bottom:22px;left:0;right:0}.lang{display:flex;border:1px solid var(--line);border-radius:7px;padding:3px;gap:2px}.lang button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:5px 9px;border-radius:4px;font-weight:600}.lang button.active{background:var(--wine);color:white}.admin-link{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}.mobile-nav{display:none}
.home{padding-top:52px;padding-bottom:60px}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:64px;align-items:center}.hero-copy{padding:30px 0}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:100px;background:#fff;padding:6px 13px;font-size:11px;color:#64545a}.dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.dot.closed{background:var(--gold)}.hero h1{margin:22px 0 19px;color:var(--wine)}.hero h1 em{font-family:Georgia,serif;font-style:normal;font-weight:400}.hero-desc{color:var(--muted);max-width:470px;font-size:14px;line-height:1.9}.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:45px;padding:11px 20px;border:1px solid var(--wine);border-radius:7px;background:var(--wine);color:#fff;font-size:13px;font-weight:500;line-height:1.5;transition:background .15s,transform .15s}.btn:hover{background:#60283d;transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--wine);border-color:#dcd2d4}.btn.secondary:hover{background:#f5f0ee}.btn.quiet{background:none;color:var(--muted);border-color:transparent}.btn.small{padding:8px 12px;min-height:34px;font-size:12px}.btn.full{width:100%}.btn.danger{background:var(--danger);border-color:var(--danger)}.hero-note{margin-top:22px;color:#8a8388;font-size:11px;display:flex;gap:8px;align-items:center}.hero-note svg{width:14px;height:14px}.hero-art{background:var(--wine-dark);position:relative;border-radius:14px;overflow:hidden;min-height:376px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 20px 40px #481c2c15}.hero-art:before{content:'';position:absolute;inset:16px;border:1px solid #b4966140;border-radius:6px;pointer-events:none}.hero-art img{width:282px;max-width:90%;height:282px;object-fit:contain}.hero-art .art-caption{text-align:center;color:#cdbb9e;font-size:9px;letter-spacing:2.3px;margin:0 20px 27px}.hero-bottom{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:45px;padding:25px 0;gap:24px}.hero-bottom .info{display:flex;align-items:center;gap:14px;padding-left:16px}.hero-bottom .info+.info{border-left:1px solid var(--line);padding-left:32px}.icon-box{width:42px;height:42px;display:grid;place-items:center;background:#ede6dd;border-radius:9px;color:#897044;flex-shrink:0}.info strong{display:block;font-size:13px;font-weight:600}.info small{color:var(--muted);font-size:11px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:43px 0 23px}.section-head h2{font-size:23px;margin-top:6px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step{border:1px solid var(--line);border-radius:10px;padding:23px;background:white}.step-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.step-num{font-family:Georgia,serif;font-size:29px;color:#bda987}.step-top svg{color:#b5a5ab}.step h3{font-size:15px;margin-bottom:8px}.step p{font-size:12px;color:var(--muted);line-height:1.9}.home-lower{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;margin-top:30px}.assessment{background:#eee8df;border-radius:10px;padding:26px}.assessment h3{font-size:16px}.assessment-bars{display:flex;gap:5px;margin:19px 0 16px;height:7px}.assessment-bars span:nth-child(1){width:60%;background:var(--wine);border-radius:4px 0 0 4px}.assessment-bars span:nth-child(2){width:30%;background:var(--gold)}.assessment-bars span:nth-child(3){width:10%;background:#d8c9ad;border-radius:0 4px 4px 0}.score-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.score-legend strong{font-family:Georgia,serif;font-size:25px;color:var(--wine)}.score-legend span{display:block;font-size:10px;color:#777066}.announcement{background:#fff;border:1px solid var(--line);border-radius:10px;padding:25px}.announcement h3{font-size:15px;margin-bottom:12px}.announcement p{font-size:12px;color:var(--muted);white-space:pre-line}.announcement .date{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:11px;color:var(--wine)}
.page{padding-top:35px;padding-bottom:65px}.breadcrumb{display:flex;gap:10px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:27px}.breadcrumb svg{width:13px;height:13px}.page-title{margin:7px 0 9px;font-size:33px;color:var(--wine)}.intro{font-size:13px;color:var(--muted);margin-bottom:30px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:28px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow)}.card-body{padding:28px}.card-title{padding:22px 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;font-size:16px}.card-title svg{color:var(--gold)}.form-section+.form-section{border-top:1px solid var(--line);padding-top:25px;margin-top:25px}.form-section h3{font-size:15px;color:var(--wine);margin-bottom:20px}.form-section h3 span{font-family:Georgia,serif;color:var(--gold);margin-right:10px;font-size:19px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 20px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.wide{grid-column:1/-1}.field label{font-size:12px;font-weight:600}.required{color:#a35d52;margin-left:3px}.field input,.field textarea,.field select{width:100%;min-height:44px;background:white;color:var(--ink);border:1px solid #dcd7d3;border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.6}.field textarea{resize:vertical;min-height:84px}.field input::placeholder,.field textarea::placeholder{color:#ada5aa}.field small{font-size:10px;line-height:1.6;color:var(--muted)}.field input:disabled,.field textarea:disabled,.field select:disabled{background:#f5f3f0}.consent{display:flex;gap:10px;align-items:flex-start;font-size:11px;color:var(--muted);line-height:1.9}.consent input{accent-color:var(--wine);margin-top:4px;min-width:17px;min-height:17px}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:28px;padding-top:23px;border-top:1px solid var(--line)}.form-actions small{color:var(--muted);font-size:10px}.side-card{padding:24px}.side-card h3{font-size:15px;margin-bottom:16px}.checklist{list-style:none;padding:0;margin:0}.checklist li{display:flex;gap:10px;color:var(--muted);font-size:12px;padding:8px 0}.checklist svg{width:16px;height:16px;color:var(--gold);margin-top:3px}.side-divider{height:1px;background:var(--line);margin:20px 0}.info-box{background:#f3eee6;color:#7b674c;border-radius:6px;padding:14px;font-size:11px;line-height:1.8}.error-box{background:#fff1f2;border:1px solid #f1c8ce;color:#92283d;padding:13px 16px;border-radius:7px;font-size:12px;margin:16px 0}.success-box{background:#eaf4ef;border:1px solid #b9d5c6;color:var(--green);padding:14px 17px;border-radius:7px;font-size:13px}.notice{padding:14px 18px;border:1px solid #e6dac6;background:#fffaf0;color:#7c653e;border-radius:7px;font-size:12px;margin-bottom:23px}.review-list{display:grid;grid-template-columns:1fr 1fr;gap:17px;padding:20px;background:var(--cream);border-radius:8px}.review-list dt{font-size:10px;color:var(--muted)}.review-list dd{margin:4px 0 0;font-size:13px;overflow-wrap:anywhere}.review-list .wide{grid-column:1/-1}.success-panel{max-width:680px;margin:40px auto;padding:42px;text-align:center}.success-icon{height:64px;width:64px;border-radius:50%;background:#e7f1eb;color:var(--green);display:grid;place-items:center;margin:0 auto 20px}.success-icon svg{width:30px;height:30px}.success-panel h1{font-size:27px}.application-number{font-family:monospace;font-size:25px;color:var(--wine);background:var(--cream);padding:18px;border:1px dashed #c6b8ae;border-radius:7px;margin:25px 0}.success-panel p{font-size:13px;color:var(--muted)}
.lookup-layout{display:grid;grid-template-columns:390px minmax(0,1fr);gap:28px;align-items:start}.lookup-layout .fields{grid-template-columns:1fr}.empty-result{min-height:385px;display:flex;align-items:center;justify-content:center;text-align:center;padding:35px}.empty-result .icon-box{margin:0 auto 20px;width:64px;height:64px;border-radius:50%;background:#f1ede5}.empty-result .icon-box svg{width:27px;height:27px}.empty-result h3{font-size:17px;margin-bottom:10px}.empty-result p{font-size:12px;color:var(--muted);max-width:310px}.result-heading{padding:24px 28px;background:var(--wine);color:white;border-radius:10px 10px 0 0}.result-heading .eyebrow{color:#d4b782}.result-heading h2{font-size:22px;margin:9px 0 5px}.result-heading p{font-size:12px;color:#dacbd0}.result-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:var(--cream);border:1px solid var(--line);padding:20px;border-radius:8px;margin:20px 0}.result-summary .number{font-family:Georgia,serif;font-size:43px;color:var(--wine);line-height:1.25}.result-summary small{color:var(--muted);font-size:11px}.result-summary>div+div{border-left:1px solid var(--line);padding-left:25px}.score-table{width:100%;border-collapse:collapse;font-size:12px}.score-table th{text-align:left;font-weight:500;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line);padding:12px 5px}.score-table td{padding:14px 5px;border-bottom:1px solid var(--line)}.score-table td:not(:first-child),.score-table th:not(:first-child){text-align:right}.score-table tfoot{font-weight:700;color:var(--wine)}.badge{display:inline-block;border-radius:50px;font-size:10px;padding:4px 10px;white-space:nowrap;background:#f2eee8;color:#886c41}.badge.approved,.badge.admitted{background:#e8f2eb;color:#307452}.badge.rejected,.badge.not_selected{background:#f8e9ed;color:#a04158}.badge.waitlisted{background:#edf0f7;color:#536da2}.result-foot{font-size:10px;color:var(--muted);margin-top:16px}
.login-page{display:grid;grid-template-columns:1fr 1fr;max-width:900px;margin:65px auto;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:white;box-shadow:var(--shadow)}.login-art{background:var(--wine-dark);display:flex;align-items:center;justify-content:center;padding:25px}.login-art img{width:100%;max-width:300px}.login-form{padding:40px}.login-form h1{font-size:26px;margin:8px 0 12px}.login-form .fields{grid-template-columns:1fr;margin:25px 0}.login-form p{font-size:12px;color:var(--muted)}
.admin-page{padding-top:30px;padding-bottom:55px}.admin-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.admin-top h1{font-size:30px;color:var(--wine);margin-top:5px}.admin-tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);margin-bottom:25px;overflow:auto}.admin-tabs button{border:0;border-bottom:2px solid transparent;padding:12px 0;background:none;color:var(--muted);font-size:13px;white-space:nowrap}.admin-tabs button.active{border-bottom-color:var(--wine);color:var(--wine);font-weight:600}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:19px 21px}.stat small{font-size:11px;color:var(--muted)}.stat strong{display:block;color:var(--wine);font-size:29px;font-family:Georgia,serif;margin-top:7px;line-height:1.4}.toolbar{display:flex;gap:10px;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);align-items:center;flex-wrap:wrap}.search{display:flex;gap:10px;flex:1;min-width:0}.search input,.search select{border:1px solid var(--line);border-radius:6px;padding:9px 11px;font-size:12px;min-width:0;background:white}.search input{width:260px}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.admin-table th{font-size:10px;font-weight:500;text-align:left;color:var(--muted);background:#faf9f6;padding:13px 18px;border-bottom:1px solid var(--line)}.admin-table td{padding:15px 18px;border-bottom:1px solid var(--line)}.admin-table td.name{white-space:normal;min-width:190px}.admin-table td.name strong{display:block;font-weight:500}.admin-table td.name small{display:block;font-size:10px;color:var(--muted);max-width:220px}.admin-table td.id{font:10px monospace;color:#8b7880}.table-empty{text-align:center;padding:45px;color:var(--muted);font-size:13px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;font-size:11px;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.settings-grid .wide{grid-column:1/-1}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0}.switch-row strong{display:block;font-size:13px;font-weight:500}.switch-row small{color:var(--muted);font-size:11px;display:block}.switch-row input{width:20px;height:20px;accent-color:var(--wine);flex-shrink:0}.admin-form-narrow{max-width:650px}.import-help{font-size:12px;color:var(--muted);margin:18px 0;line-height:2}.file-drop{border:1px dashed #c7b9a9;background:var(--cream);padding:25px;border-radius:8px}.file-drop input{max-width:100%;font-size:12px}.csv-preview{max-height:260px;overflow:auto;margin:20px 0}.loading{padding:70px;text-align:center;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--wine-dark);color:#fff;padding:13px 22px;border-radius:8px;z-index:50;box-shadow:var(--shadow);font-size:13px;max-width:90vw}.toast.error{background:var(--danger)}dialog{max-width:760px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:12px;padding:0;box-shadow:0 30px 90px #0003;max-height:90vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#23141b88;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:23px 28px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:20px}.dialog-body{padding:25px 28px}.icon-btn{border:0;background:#f4f0eb;border-radius:50%;width:33px;height:33px;display:grid;place-items:center;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:25px}.detail-grid dt{font-size:10px;color:var(--muted)}.detail-grid dd{margin:3px 0 0;font-size:13px;overflow-wrap:anywhere}.detail-grid .wide{grid-column:1/-1}.score-inputs{grid-template-columns:repeat(3,1fr)}.total-preview{font-size:13px;color:var(--wine);background:var(--cream);padding:12px;text-align:right;border-radius:6px;margin:14px 0}.footer-inner{border-top:1px solid var(--line);padding-top:25px;padding-bottom:25px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#8f858a;font-size:10px}.footer-links{display:flex;gap:20px}.footer-links a{color:#81747c}.privacy{max-width:800px}.privacy p,.privacy li{font-size:13px;color:var(--muted);line-height:2}.privacy h3{margin:25px 0 10px}.preline{white-space:pre-line}
@media(min-width:1500px){.wrap{max-width:1380px}.hero{gap:90px}.hero-art{min-height:410px}.hero-art img{width:315px;height:315px}}
@media(max-width:1050px){.wrap{padding-left:28px;padding-right:28px}.nav{gap:17px}.brand small{max-width:200px;font-size:9px}.hero{gap:30px}.hero-art{min-height:340px}.hero-art img{width:260px;height:260px}.hero h1{font-size:39px}.layout{grid-template-columns:1fr 255px}.lookup-layout{grid-template-columns:340px 1fr}.admin-link{display:none}}
@media(max-width:780px){.wrap{padding-left:20px;padding-right:20px}.header-inner{min-height:80px;gap:12px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.brand img{height:46px;width:46px}.brand strong{font-size:16px}.brand small{max-width:215px;font-size:8px}.nav{gap:12px}.nav>a{display:none}.lang button{padding:4px 7px}.mobile-nav{display:flex;border-top:1px solid var(--line);padding:10px 20px;gap:25px;justify-content:center;font-size:12px}.mobile-nav a{color:var(--muted)}.mobile-nav a.active{color:var(--wine);font-weight:600}.home{padding-top:25px}.hero{grid-template-columns:1fr;gap:24px}.hero-copy{padding:10px 0}.hero h1{font-size:38px}.hero-art{min-height:240px;flex-direction:row}.hero-art img{width:225px;height:225px}.hero-art .art-caption{max-width:100px;margin:0 20px 0 0;text-align:left;font-size:10px;line-height:2}.hero-bottom{margin-top:28px;gap:15px;padding:20px 0}.hero-bottom .info{padding-left:0;display:block}.hero-bottom .info+.info{padding-left:15px}.hero-bottom .icon-box{margin-bottom:10px;width:32px;height:32px}.info strong{font-size:11px}.info small{font-size:9px;line-height:1.6;display:block}.steps{gap:12px}.step{padding:17px}.step h3{font-size:13px}.step p{font-size:11px}.home-lower{grid-template-columns:1fr}.layout{grid-template-columns:1fr}.layout>aside{grid-row:1}.layout>aside .checklist{display:none}.layout>aside .side-divider{display:none}.layout>aside .side-card{padding:15px 20px}.layout>aside .side-card h3{margin-bottom:9px}.layout>aside .side-card .info-box{padding:0;background:transparent}.lookup-layout{grid-template-columns:1fr}.empty-result{min-height:250px}.page-title{font-size:28px}.settings-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:15px}.admin-top h1{font-size:24px}.admin-top{align-items:start}.admin-top .flex{flex-wrap:wrap;justify-content:flex-end}.admin-top .flex>span{display:none}.login-page{margin:35px auto;grid-template-columns:1fr;max-width:440px}.login-art{display:none}.login-form{padding:30px}.footer-inner{align-items:flex-start;font-size:9px}.footer-links{gap:12px}.search{flex-wrap:wrap}.search input{flex:1;min-width:130px}.search select{max-width:150px}.toolbar{padding:15px}.card-body{padding:22px}.card-title{padding:20px 22px}.success-panel{padding:28px}.review-list{padding:16px}.section-head{margin-top:32px}.section-head h2{font-size:21px}}
@media(max-width:480px){.brand small{max-width:180px}.brand{gap:6px}.brand strong{font-size:15px}.nav{gap:0}.hero h1{font-size:33px}.hero-desc{font-size:13px}.hero-actions .btn{flex:1;font-size:12px;padding:11px 13px}.steps{grid-template-columns:1fr}.step{display:grid;grid-template-columns:38px 1fr;gap:0 13px}.step-top{grid-row:1/3;margin:0;align-items:start}.step-top svg{display:none}.step h3{margin:2px 0 4px}.step p{grid-column:2}.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.score-inputs{grid-template-columns:repeat(3,1fr);gap:8px}.score-inputs .field label{font-size:10px}.score-inputs input{padding:8px}.form-actions{flex-wrap:wrap}.form-actions .btn{flex:1}.form-actions small{flex-basis:100%}.review-list{grid-template-columns:1fr}.review-list .wide{grid-column:auto}.detail-grid{grid-template-columns:1fr}.detail-grid .wide{grid-column:auto}.dialog-body,.dialog-head{padding:20px}.footer-inner{flex-direction:column;gap:10px}.score-legend span{font-size:9px}.result-heading,.result .card-body{padding:22px}.page{padding-top:24px}.admin-tabs{gap:20px}.admin-tabs button{font-size:12px}.hero-art{min-height:220px}.hero-art img{width:200px;height:200px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{header,footer,.no-print,.toast,.lookup-form,.breadcrumb,.intro,.page>.eyebrow,.page>.page-title{display:none!important}body{background:white;font-size:12px}.wrap{padding:0;max-width:none}.page{padding:0}.lookup-layout{display:block}.card{box-shadow:none;border-color:#aaa}.result{max-width:750px;margin:auto}.result-heading{background:white;color:var(--wine);border-bottom:1px solid #aaa}.result-heading p{color:#555}.success-panel{max-width:750px;margin:0 auto;padding:20px}.success-panel .application-number{font-size:22px}button{display:none!important}}

.lookup-form .info-box,.settings-grid .info-box{margin:20px 0}.file-drop{margin-top:20px}.form-section svg{vertical-align:middle}.form-section+.form-section{margin-top:25px}

.applicant-details{margin-bottom:25px}

/* Responsive layout: keep content in its grid track, including long names. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:16px}
img{max-width:100%}
.hero>*,.hero-bottom>*,.steps>*,.home-lower>*,.layout>*,.lookup-layout>*,.settings-grid>*,.stats>*,.result-summary>*,.header-inner>*,.brand>span,#admin-content,#applicant-table{min-width:0}
h1,h2,h3,p,.brand small,.notice,.info-box,.card-title,.field label,.stat small,.result-heading,.footer-inner,.table-empty{overflow-wrap:anywhere}
.layout{grid-template-columns:minmax(0,1fr) minmax(0,295px)}
.lookup-layout{grid-template-columns:minmax(0,390px) minmax(0,1fr)}
.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.admin-table td.name{max-width:320px;overflow-wrap:anywhere}
.pagination,.section-head,.result-heading .flex,.result .card-body>.flex,.footer-links{flex-wrap:wrap}
.pagination{gap:12px}
.pagination .flex{flex-wrap:wrap}
.btn{max-width:100%;white-space:normal;text-align:center}
.btn.small,.lang button,.icon-btn{min-height:44px}
.lang button{min-width:40px}.icon-btn{min-width:44px;width:44px;flex-shrink:0}
.breadcrumb{flex-wrap:wrap}
.field input,.field textarea,.field select,.search input,.search select{font-size:16px;max-width:100%;min-height:46px}
.field input[type=date],.field input[type=datetime-local]{min-width:0;appearance:none;-webkit-appearance:none}
.field input[type=file]{padding:8px;overflow:hidden}
.score-table{table-layout:fixed}.score-table th:first-child{width:50%}.score-table td,.score-table th{overflow-wrap:anywhere}
.score-table td:not(:first-child){font-variant-numeric:tabular-nums}
.result-summary .number{font-size:clamp(28px,4vw,43px);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.result-summary>div+div{padding-left:16px}.result-summary{gap:12px;padding:16px}
.result-summary .number small{display:inline-block}
.application-number{overflow-wrap:anywhere}
.total-preview{font-variant-numeric:tabular-nums}.total-preview.invalid{color:var(--danger);background:#fff1f2}
.score-rules{font-size:12px;color:var(--muted);margin:12px 0;line-height:1.8}
.table-help{font-size:11px;color:var(--muted);padding:10px 18px 0}
.dialog-head{gap:16px;position:sticky;top:0;background:#fff;z-index:1}
.dialog-head>div{min-width:0}.dialog-head h2{overflow-wrap:anywhere}
dialog{max-height:90dvh;overscroll-behavior:contain}
body:has(dialog[open]){overflow:hidden}
.toast{bottom:max(16px,env(safe-area-inset-bottom));overflow-wrap:anywhere}
@media screen and (max-width:1050px){.layout{grid-template-columns:minmax(0,1fr) minmax(0,255px)}.lookup-layout{grid-template-columns:minmax(0,340px) minmax(0,1fr)}}
@media screen and (max-width:900px){.lookup-layout{grid-template-columns:minmax(0,1fr)}.settings-grid{grid-template-columns:minmax(0,1fr)}}
@media screen and (max-width:780px){
 .layout{grid-template-columns:minmax(0,1fr)}
 .mobile-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px 16px}
 .mobile-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;text-align:center;padding:6px;line-height:1.5;overflow-wrap:anywhere}
 .admin-tabs{flex-wrap:wrap;gap:4px 16px;overflow:visible}.admin-tabs button{min-height:44px;white-space:normal;text-align:left}
 .hero-art img{flex-shrink:1;min-width:0}.hero-art .art-caption{flex-shrink:0}
 .search{flex-basis:100%}.search input{width:100%;flex-basis:100%}.search select{flex:1;max-width:none}
 .footer-links a{padding:8px 0;min-height:44px;display:flex;align-items:center}
}
@media screen and (max-width:600px){
 .wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .fields{grid-template-columns:minmax(0,1fr)}.fields .wide{grid-column:auto}
 .score-inputs{grid-template-columns:minmax(0,1fr)}.score-inputs .field label{font-size:12px}
 .card-body,.dialog-body{padding:20px}.card-title,.dialog-head{padding:18px 20px}
 .result-heading,.result .card-body{padding:20px}
 .form-actions{flex-wrap:wrap;gap:12px}.form-actions>small,.form-actions>span{flex-basis:100%}.form-actions .btn{flex:1}
 .admin-top{flex-wrap:wrap;gap:12px}.admin-top h1{font-size:26px}
 .applicants-table,.applicants-table tbody{display:block;white-space:normal}
 .applicants-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .applicants-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:14px;border:1px solid var(--line);border-radius:9px;overflow:hidden;padding:6px;background:#fff}
 .applicants-table td{display:block;min-width:0;padding:10px;border:0;overflow-wrap:anywhere}
 .applicants-table td:before{content:attr(data-label);display:block;font:11px/1.6 SchoolThai,system-ui,sans-serif;color:var(--muted);margin-bottom:4px}
 .applicants-table td.name{min-width:0;max-width:none;grid-column:1/-1;grid-row:1}
 .applicants-table td.name strong{font-size:16px}.applicants-table td.name small{max-width:none;font-size:12px}
 .applicants-table td.id,.applicants-table td.manage{grid-column:1/-1}
 .applicants-table td.manage:before{display:none}.applicants-table td.manage .btn{width:100%}
 .applicants-table .badge{white-space:normal}.pagination{padding:14px}
 .table-empty{padding:30px 18px}.table-help{padding:12px 14px 0}
 .review-list{grid-template-columns:minmax(0,1fr)}.review-list .wide{grid-column:auto}
 dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}
 .dialog-body .form-actions{padding-bottom:env(safe-area-inset-bottom)}
}
@media screen and (max-width:480px){
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
 .brand{gap:8px}.brand img{width:38px;height:44px;flex-shrink:0}.brand strong{font-size:15px;overflow-wrap:anywhere}
 .brand small{font-size:9px;max-width:none;line-height:1.5}.nav{justify-self:end}
 .hero h1{font-size:clamp(28px,8.2vw,36px)}.hero-art{min-height:200px}.hero-art img{width:60%;height:auto}.hero-art .art-caption{width:26%;margin-right:16px;font-size:8px}
 .hero-actions .btn{flex-basis:100%}.hero-note{align-items:flex-start}
 .hero-bottom{grid-template-columns:minmax(0,1fr);gap:14px}.hero-bottom .info,.hero-bottom .info+.info{display:flex;padding:0;border:0}.hero-bottom .icon-box{margin:0}
 .info strong{font-size:13px}.info small{font-size:11px}
 .section-head{align-items:flex-start}.section-head>span{flex-basis:100%}
 .assessment,.announcement{padding:20px}.assessment .flex{flex-wrap:wrap}
 .score-legend{gap:8px}.score-legend span{font-size:11px;overflow-wrap:anywhere}
 .success-panel{padding:22px}.application-number{font-size:21px;padding:12px}
 .result-summary .number{font-size:29px}.score-table{font-size:12px}.score-table th{font-size:11px}
 .login-form{padding:24px}.loading{padding:35px 16px}
}
@media screen and (max-height:500px){dialog{max-height:calc(100dvh - 12px)}.dialog-head{padding-top:10px;padding-bottom:10px}}
@media screen and (max-width:600px), screen and (max-height:500px){.dialog-head{position:static}.dialog-head h2{font-size:18px}}

/* Score statistics and the personal student ranking. */
.stats-toolbar{padding:24px;display:grid;gap:20px}.stats-toolbar h2{font-size:24px;color:var(--wine)}
.stats-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.stats-controls .field{flex:1;min-width:200px;max-width:360px}
.stats-updated{margin:16px 0}.metric-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric-stats .stat strong{font-size:30px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.statistics-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}
.statistics-columns>*{min-width:0}.stats-note{padding:16px 22px;font-size:11px;color:var(--muted)}
.statistics-table td{font-variant-numeric:tabular-nums}.statistics-table tbody th{font-size:12px;color:var(--wine)}
.stats-empty{padding:24px;margin:20px 0}.stats-empty p{margin-top:8px;font-size:13px;color:var(--muted)}
.distribution{display:grid;gap:16px}.distribution-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px}
.distribution-row strong{font-weight:500;font-variant-numeric:tabular-nums}.distribution-row small{font-size:10px;color:var(--muted)}
.distribution progress{width:100%;height:14px;accent-color:var(--wine);border:0;border-radius:5px;overflow:hidden;background:var(--cream)}
.distribution progress::-webkit-progress-bar{background:var(--cream)}.distribution progress::-webkit-progress-value{background:var(--wine)}.distribution progress::-moz-progress-bar{background:var(--wine)}
.decision-counts{margin:20px 0}.decision-counts>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.decision-counts dd{margin:0;font-size:20px;color:var(--wine);font-variant-numeric:tabular-nums}
.personal-rank p{font-size:11px;color:var(--muted);line-height:1.7}.personal-rank .badge{white-space:normal;margin-top:8px}.personal-rank .number{font-size:48px;font-weight:600}
@media screen and (max-width:900px){.statistics-columns{grid-template-columns:minmax(0,1fr)}}
@media screen and (max-width:600px){.stats-toolbar{padding:20px}.stats-controls{align-items:stretch}.stats-controls .field{flex-basis:100%;max-width:none;min-width:0}.stats-controls .btn{flex:1}.metric-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-stats .stat strong{font-size:25px}.distribution-row{grid-template-columns:54px minmax(0,1fr) auto;gap:8px}.distribution-row strong small{display:block}.personal-rank .number{font-size:40px}.stats-note{padding:14px 18px}}
@media print{.stats-toolbar .stats-controls,.stats-updated,.admin-tabs,.admin-top{display:none!important}.statistics-columns{grid-template-columns:1fr 1fr}.statistics-page .card,.statistics-page .stat{break-inside:avoid}}
