@font-face{font-family:Noto;src:url(noto-sans-thai-thai-wght-normal.woff2) format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0E00-0E7F}@font-face{font-family:Noto;src:url(noto-sans-thai-latin-wght-normal.woff2) format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}
:root{--ink:#233a39;--muted:#6f807e;--accent:#285b52;--accent-soft:#e8f1ed;--line:#e2e8e4;--bg:#f5f6f2;--white:#fff;--amber:#986820;--red:#af4d4b;--shadow:0 6px 22px #233a3905}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.65 Noto,system-ui,sans-serif;color:var(--ink)}a{color:var(--accent);text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:29px;line-height:1.4;letter-spacing:-.7px;font-weight:700}h2{font-size:18px;font-weight:650;margin-bottom:16px}h3{font-size:15px;font-weight:650;margin:14px 0 10px}p+p{margin-top:8px}small{font-size:12px}strong{font-weight:650}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin:12px 0;line-height:1.8}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.tiny{font-size:9px;letter-spacing:1.3px;color:var(--muted)}.icon{width:19px;height:19px;flex:0 0 auto;vertical-align:middle}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-weight:550;line-height:1.5;transition:background .15s,border-color .15s;text-align:center}.btn:hover{border-color:#9fb7ac;background:#f6faf7}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:#1e4b43}.btn.light{background:#f7f4e9;border-color:#f7f4e9;color:#254d43}.btn.danger{color:var(--red);background:#fff9f8;border-color:#edd5d2}.btn.small{padding:6px 10px;min-height:34px;font-size:12px}.btn.icon-only{width:38px;height:38px;min-height:38px;padding:8px}.btn.full{display:flex;width:100%;margin-top:12px}.btn:disabled{opacity:.5;cursor:wait}.text-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.text-link .icon{width:15px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.actions form{margin:0}.split{display:flex;align-items:center;justify-content:space-between;gap:12px}.divider{border-top:1px solid var(--line);margin:22px 0}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:28px 18px 16px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:18px;font-weight:750;line-height:1.5}.brand small{display:block;color:var(--muted);font-size:10px;font-weight:400}.brand img{flex-shrink:0}.nav-caption{font-size:10px;color:#8e9b96;letter-spacing:1.2px;margin:40px 14px 12px}.sidebar nav{display:grid;gap:5px;overflow-y:auto}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#637671;border-radius:8px;font-size:13px}.nav-link.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.nav-link:hover{background:#f4f7f2}.nav-count{margin-left:auto;background:#d9e8de;font-size:10px;padding:0 6px;border-radius:5px}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom>.tiny{display:block;text-align:center;margin-bottom:16px;font-size:8px}.account{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink)}.account small{display:block;color:var(--muted);font-size:10px}.avatar{background:#edf1eb;color:var(--accent);border-radius:50%;width:35px;height:35px;display:grid;place-items:center;flex-shrink:0}.workspace{margin-left:248px}.topbar{height:72px;background:#ffffffd9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:15px}.school-name{font-size:12px;color:#62736d}.top-date{font-size:11px;color:var(--muted)}.menu-toggle{display:none}.sidebar-backdrop{display:none}.skip-link{position:fixed;left:20px;top:-70px;z-index:80;padding:10px;background:#fff}.skip-link:focus{top:12px}main#main{max-width:1610px;margin:auto;padding:34px 36px 24px;min-height:calc(100vh - 132px);outline:none}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 26px}.pagehead .muted{font-size:13px;margin-top:7px}.pagehead>.btn{flex-shrink:0}.welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#244b47;color:#fff;border-radius:12px;padding:30px 34px;margin-bottom:24px;overflow:hidden}.welcome h2{font-size:26px;letter-spacing:-.5px;margin-bottom:10px}.welcome .eyebrow{color:#e0c38d;letter-spacing:1px}.welcome p{color:#c0d3c9;font-size:13px;margin-bottom:20px}.welcome-mark{display:flex;gap:22px;align-items:center;color:#c8d5c9;margin:0 30px}.welcome-mark .icon{width:86px;height:86px;stroke-width:1}.welcome-mark span{font-size:11px;letter-spacing:4px;line-height:2}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}.stat{border:1px solid var(--line);background:#fff;padding:22px 24px;border-radius:11px;box-shadow:var(--shadow)}.stat>span{font-size:12px;color:#61736e}.stat strong{display:block;font-size:36px;letter-spacing:-1px;margin:8px 0 1px;font-weight:600;line-height:1.4}.stat small{color:#87948e;font-size:11px}.green{color:#347c65}.amber{color:var(--amber)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:24px;margin-bottom:22px;box-shadow:var(--shadow);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-head h2{margin:0}.panel-head>.muted{font-size:11px}.recent-list{margin:0 -24px -12px}.recent-row{display:flex;align-items:center;gap:13px;padding:16px 24px;border-top:1px solid #eff2ee;color:var(--ink)}.recent-row:hover{background:#fbfcf9}.recent-text{flex:1;min-width:0}.recent-text>.row-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-text small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.row-title{font-size:13px;color:#315e53;font-weight:600}.document-icon{display:grid;place-items:center;width:35px;height:41px;border-radius:6px;background:#eff3ee;color:#6e8975;flex-shrink:0}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:5px;font-size:10px;white-space:nowrap;line-height:1.8;background:#eef1ef;color:#77827e}.badge.approved,.badge.finalized{color:#2d715e;background:#e7f2eb}.badge.submitted{color:#9e712b;background:#fcf2df}.badge.returned{color:#b76743;background:#fcf0e7}.badge.draft{background:#edf1f6;color:#698091}.badge.archived{background:#eeedef;color:#87828b}.tag{background:#f3f5f0;padding:4px 10px;border-radius:5px;font-size:11px;color:#677d6d}.difficulty{font-size:11px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.difficulty:before{content:'';width:6px;height:6px;background:#adbd9f;border-radius:50%}.difficulty.medium:before{background:#d2ac68}.difficulty.hard:before{background:#ba7b73}.distribution{display:grid;gap:24px;margin:24px 0}.distribution .split{font-size:12px;margin-bottom:9px}progress{width:100%;height:7px;display:block;appearance:none;border:0;background:#eef2ec;border-radius:10px;overflow:hidden}progress::-webkit-progress-bar{background:#eef2ec}progress::-webkit-progress-value{background:#7d9d89;border-radius:10px}progress::-moz-progress-bar{background:#7d9d89}.coverage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.coverage-item{border:1px solid var(--line);padding:18px;border-radius:8px}.coverage-item h3{margin:5px 0 16px}.coverage-item .split{font-size:11px;margin-bottom:8px}.coverage-item .eyebrow{color:#809087}.footer{display:flex;justify-content:space-between;color:#8d9893;font-size:10px;padding:16px 36px 24px}.notice{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#edf3ed;border:1px solid #d8e5d7;border-radius:8px;padding:18px 20px;font-size:12px;margin-bottom:22px}.notice p{color:#6c7f6e;margin-top:4px}.notice.compact{display:block;padding:14px 17px;font-size:12px;line-height:1.9}.notice.compact strong{display:block}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.empty>.icon{width:36px;height:36px;color:#8ca598}.empty h3{font-size:17px;color:var(--ink);margin:15px 0 5px}.empty p{font-size:12px;margin-bottom:18px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;margin-bottom:18px}.field>span{font-size:12px;font-weight:550;color:#4b625b}input:not([type=checkbox]),select,textarea{background:#fff;border:1px solid #d6dfd6;border-radius:7px;padding:10px 12px;width:100%;min-width:0;color:var(--ink);outline:none;min-height:43px;line-height:1.5}input::placeholder,textarea::placeholder{color:#a2aca5}input:focus,textarea:focus,select:focus{border-color:#689985;box-shadow:0 0 0 3px #62957c17}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;flex-shrink:0}input[type=file]{font-size:12px;padding:9px}input[type=file]::file-selector-button{border:0;padding:5px 10px;border-radius:4px;background:#eef2eb;color:#405a4b;margin-right:12px}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled{opacity:.75}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px}.filter-grid .field{margin-bottom:16px}.filter-actions{display:flex;gap:9px;align-items:center;grid-column:1/-1;flex-wrap:wrap}.filter-actions .check-label{margin:0 auto 0 0}.filter-grid.short{grid-template-columns:2fr 1fr 1fr}.filter-grid.short .filter-actions{grid-column:auto;align-self:end;margin-bottom:16px}.check-label{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:12px}.table-panel{padding:0;overflow:hidden}.table-panel>.panel-head{padding:22px 24px 0}.table-wrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f8f9f5;color:#7c897e;font-size:11px;font-weight:550;white-space:nowrap;border-top:1px solid #edf0e9}td,th{padding:17px 18px;border-bottom:1px solid #eaf0e8;vertical-align:middle}td{white-space:nowrap}td:first-child,th:first-child{padding-left:24px}td:last-child,th:last-child{padding-right:24px}tbody tr:hover{background:#fcfdf9}td small{display:block;color:#8b978d;margin-top:5px;font-size:10px}.wide-cell{min-width:250px;width:46%;white-space:normal;max-width:600px}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.count-pill{display:inline-block;background:#eef2eb;color:#738471;padding:1px 8px;border-radius:5px;font-size:11px;vertical-align:middle;margin-left:8px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;gap:12px;font-size:11px}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.editor-grid>div,.editor-grid>aside{min-width:0}.sticky{position:sticky;top:24px}.image-upload{border:1px dashed #cfdccf;background:#fbfcf8;border-radius:8px;padding:16px;margin:16px 0 24px}.image-upload .field,.image-upload .hint{margin-bottom:0}.question-image{display:block;max-width:100%;max-height:400px;object-fit:contain;margin:20px auto}.question-image.thumb{max-height:150px}.question-stem{font-size:18px;line-height:1.95;white-space:normal;overflow-wrap:anywhere;margin:10px 0 24px}.choices{padding:0;list-style:none;margin:0 0 25px;display:grid;gap:10px}.choices li{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:8px;padding:13px 15px;overflow-wrap:anywhere}.choices li.correct{background:#edf5ed;border-color:#b4cbb6}.choice-letter{border:1px solid #d3ddcf;border-radius:50%;width:25px;height:25px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px}.choices li>.icon{margin-left:auto;color:#3b7855}.answer-box{padding:19px 20px;background:#f6f8f2;border-radius:8px;border-left:3px solid #9bb48e;overflow-wrap:anywhere}.answer-box .eyebrow{font-size:10px;letter-spacing:.4px}.answer-box p{margin-top:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:22px}.toolbar .muted{font-size:12px}.meta-list{margin:0;display:grid;grid-template-columns:100px minmax(0,1fr);gap:14px 12px;font-size:12px;overflow-wrap:anywhere}.meta-list dt{color:var(--muted)}.meta-list dd{margin:0}.stack-form{margin-top:20px}.stack-form:first-of-type{margin-top:0}.timeline>div{position:relative;border-left:1px solid #dce5d7;padding:0 0 22px 22px;font-size:12px}.timeline-dot{position:absolute;left:-5px;top:5px;width:9px;height:9px;border-radius:50%;background:#93aa8f}.timeline p{margin-top:5px}.quota-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.quota{background:#fafbf7;border:1px solid var(--line);border-radius:8px;padding:18px}.quota>strong{display:block;font-size:27px;margin:16px 0}.quota small{font-size:10px;font-weight:400;color:var(--muted)}.quota .field>span{font-size:11px}.quota .field{margin-bottom:14px}.quota-grid+.notice{margin-top:20px;margin-bottom:0}.step-note{font-size:11px;color:var(--muted)}.builder-total{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:20px 0;display:flex;align-items:baseline;gap:12px}.builder-total strong{font-size:42px}.builder-total span{font-size:12px;color:var(--muted)}.selection-toolbar{display:flex;align-items:center;gap:18px;margin:18px 0}.selection-toolbar>input{max-width:320px}.selection-toolbar>.muted{font-size:11px}.candidate-list{max-height:650px;overflow:auto}.candidate{display:flex;align-items:flex-start;gap:14px;padding:17px 5px;border-top:1px solid var(--line);cursor:pointer}.candidate:has(input:checked){background:#f4f8f0}.candidate>input{margin-top:5px}.candidate strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.candidate small{display:block;color:var(--muted);margin-top:6px;font-size:11px}.print-options{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.order-table .score-input{width:80px;min-height:36px;padding:6px 8px}.order-table .wide-cell{width:60%}.order-table details summary{cursor:pointer}.order-table summary .clamp{display:inline;font-weight:550;color:#345f51}.detail-content{padding:16px 0;max-width:680px}.detail-content .question-stem{font-size:15px}.panel-foot{padding:20px 24px}.instructions-list{padding-left:20px;color:#6a7d71;font-size:12px}.instructions-list li{margin:12px 0}.inline-form{display:flex;align-items:end;gap:18px}.inline-form .field{flex:1;margin:0}.subject-checks{display:flex;gap:8px 28px;flex-wrap:wrap;margin:12px 0 20px}.error-page{max-width:620px;padding:45px;margin:12vh auto;background:#fff;border:1px solid var(--line);border-radius:12px}.error-page p{margin:15px 0 24px}.auth-body{min-height:100vh;display:grid;place-items:center;padding:40px;background:#f0f2ec}.auth-card{width:100%;max-width:1100px;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 22px 80px #244b4709;min-height:660px}.auth-intro{padding:40px;background:#244b47;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:50px}.auth-intro .brand{color:#fff}.auth-intro .brand small{color:#b2c7b8;font-size:8px;letter-spacing:1.5px}.auth-intro .eyebrow{color:#d9c492;letter-spacing:1px}.auth-intro h1{font-size:35px;line-height:1.65;letter-spacing:-.5px}.auth-intro h1 span{color:#daba7b}.auth-intro>div>p:not(.eyebrow){color:#b8cdbf;margin-top:18px;font-size:13px;line-height:1.9}.auth-intro .tiny{color:#a8bdb2;letter-spacing:1px}.auth-features{display:flex;flex-direction:column;gap:12px;margin-top:30px;font-size:12px;color:#d4dfd2}.auth-features .icon{margin-right:9px;width:17px}.auth-form{padding:65px 50px;align-self:center}.auth-form h2{font-size:25px;letter-spacing:-.6px;margin-bottom:10px}.auth-form>.muted{font-size:12px;margin-bottom:32px}.auth-form form .btn{margin-top:24px}.auth-form>.hint{margin-top:25px}.install-card{background:#fff;padding:36px;border:1px solid var(--line);border-radius:16px;max-width:570px;width:100%}.install-card h1{font-size:23px;margin:18px 0 10px}.install-card>.muted{font-size:12px;margin-bottom:24px}.swal2-popup{font-family:Noto,system-ui,sans-serif!important;border-radius:14px!important}.swal2-title{font-size:21px!important}.swal2-html-container{font-size:14px!important}.swal2-confirm{background:#285b52!important}.swal2-toast{font-size:12px!important}[hidden]{display:none!important}:focus-visible{outline:3px solid #96b6a0;outline-offset:3px}
@media(min-width:1700px){.editor-grid{grid-template-columns:minmax(0,1fr) 350px}.dashboard-grid{grid-template-columns:1.6fr 1fr}}
@media(max-width:1200px){.sidebar{width:216px;padding:24px 12px}.brand{font-size:16px}.brand small{font-size:9px}.workspace{margin-left:216px}main#main{padding:26px 24px}.topbar{padding:0 24px}.editor-grid{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.welcome-mark{margin:0}.dashboard-grid{grid-template-columns:1fr 1fr;gap:18px}.recent-row .badge{display:none}.quota{padding:12px}.quota-grid{gap:8px}.welcome h2{font-size:22px}.stat{padding:18px}.panel{padding:20px}.table-panel{padding:0}.recent-list{margin:0 -20px -10px}.recent-row{padding:16px 20px}.coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-intro h1{font-size:30px}}
@media(max-width:1000px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.sidebar-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:25;border:0;background:#102f2b66}.workspace{margin-left:0}.menu-toggle{display:inline-flex!important}.editor-grid{grid-template-columns:minmax(0,1fr) 280px}.auth-card{max-width:850px}.auth-intro{padding:32px}.auth-form{padding:40px 32px}.auth-intro h1{font-size:27px}}
@media(max-width:760px){main#main{padding:22px 16px}.topbar{padding:0 16px;height:62px}.pagehead{align-items:flex-start;gap:12px}.pagehead h1{font-size:24px}.pagehead>.btn{font-size:12px;padding:9px 11px}.pagehead>.btn .icon{width:16px}.pagehead .muted{font-size:11px}.welcome{padding:24px;margin-bottom:18px}.welcome-mark{display:none}.welcome h2{font-size:22px}.welcome p{font-size:12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat strong{font-size:31px}.dashboard-grid,.editor-grid{display:block}.sticky{position:static}.panel{margin-bottom:18px}.recent-row .badge{display:inline-flex}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.filter-grid.short{grid-template-columns:1fr 1fr}.filter-grid.short .filter-actions{grid-column:1/-1;margin-bottom:0}.filter-grid>.field:first-of-type{grid-column:1/-1}.footer{padding:12px 16px 24px}.footer span{display:none}.notice{flex-direction:column;align-items:flex-start}.school-name{font-size:11px}.top-date{display:none}.auth-body{padding:20px}.auth-card{display:block;max-width:480px;min-height:0}.auth-intro{padding:25px;gap:25px}.auth-intro h1{font-size:25px;line-height:1.55}.auth-intro .auth-features,.auth-intro>.tiny{display:none}.auth-intro>div>p:not(.eyebrow){font-size:11px;margin-top:12px}.auth-form{padding:30px 25px}.auth-form h2{font-size:22px}.inline-form{align-items:stretch;flex-direction:column}.inline-form .btn{align-self:flex-start}.table-panel>.panel-head{padding:20px 18px 0}.toolbar{align-items:flex-start}.question-stem{font-size:16px}.selection-toolbar{align-items:stretch;flex-direction:column;gap:8px}.selection-toolbar>input{max-width:none}.quota-grid{gap:9px}.quota{padding:12px}.quota>strong{font-size:25px}.step-note{display:none}.panel-head h2{font-size:16px}.question-image{max-height:300px}}
@media(max-width:400px){.pagehead{flex-direction:column}.pagehead>.btn{align-self:flex-start}.form-grid{grid-template-columns:1fr}.quota-grid{grid-template-columns:1fr}.quota{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px 16px}.quota>strong{margin:0;text-align:right;font-size:22px}.quota .field{margin:0}.quota>progress{margin-top:15px}.coverage-grid{grid-template-columns:1fr}.recent-row .badge{display:none}.panel-head{flex-wrap:wrap}.stat{padding:16px}.stat>span{font-size:11px}.pagination{padding:16px;flex-wrap:wrap}.topbar .school-name{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-body{padding:12px}.print-options .btn{flex:1;font-size:12px}.notice .actions{width:100%}.auth-intro{padding:22px}.auth-form{padding:26px 22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
