@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@300;400;500;600;700;800&display=swap";@font-face{font-family:Chulabhorn Likhit Text;src:url(/fonts/chulabhorn-likhit/chulabhornlikittext-light.woff2)format("woff2");font-style:normal;font-weight:300;font-display:swap}@font-face{font-family:Chulabhorn Likhit Text;src:url(/fonts/chulabhorn-likhit/chulabhornlikittext-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Chulabhorn Likhit Text;src:url(/fonts/chulabhorn-likhit/chulabhornlikittext-medium.woff2)format("woff2");font-style:normal;font-weight:500 600;font-display:swap}@font-face{font-family:Chulabhorn Likhit Text;src:url(/fonts/chulabhorn-likhit/chulabhornlikittext-bold.woff2)format("woff2");font-style:normal;font-weight:700 800;font-display:swap}@font-face{font-family:Chulabhorn Likhit Display;src:url(/fonts/chulabhorn-likhit/chulabhornlikitdisplay-medium.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}:root{color:#2d2540;font-synthesis:none;--ink:#3f216f;--ink-2:#5b358a;--gold:#7c4dbe;--cream:#faf8ff;--line:#e7e0f1;--muted:#746f7d;--white:#fff;--danger:#b94e4e;--shadow:0 18px 50px #3f216f1a;background:#f7f5fb;font-family:Chulabhorn Likhit Text,Noto Sans Thai,system-ui,sans-serif}*{box-sizing:border-box}body{background:#f7f5fb;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--ink);color:#fff;z-index:30;flex-direction:column;width:280px;padding:16px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#f2cf80;background:#ffffff1a;border:1px solid #ffffff38;border-radius:15px;place-items:center;width:46px;height:46px;display:grid}.brand strong{letter-spacing:.2px;font-size:1.05rem;display:block}.brand span{color:#ffffff9e;font-size:.75rem}.role-panel{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:6px;margin:6px 0;padding:6px 8px;display:flex}.role-panel small,.role-panel strong,.role-panel>div>span{line-height:1.2;display:block}.role-panel small{color:#ffffff8c;font-size:.55rem}.role-panel strong{margin-top:1px;font-size:.68rem}.role-panel>div>span{color:#ffffffad;margin-top:1px;font-size:.58rem}.role-dot{background:#75c8a7;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #75c8a721}.role-dot.director{background:#f1c670}.role-dot.academic{background:#76aee6}.role-dot.admin{background:#b29ce6}.main-nav{align-content:start;gap:5px;display:grid}.nav-item-wrap{display:grid}.nav-section-label{color:#ffffff6b;letter-spacing:.08em;margin:14px 12px 5px;font-size:.61rem;font-weight:800}.grouped-nav .nav-item-wrap:first-child .nav-section-label{margin-top:0}.grouped-nav{gap:1px;padding-bottom:18px}.grouped-nav button{padding-block:9px;font-size:.79rem}.main-nav button{color:#ffffffb8;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;width:100%;padding:8px 11px;font-size:.79rem;transition:all .2s;display:flex}.main-nav button:hover,.main-nav button.active{color:#fff;background:#ffffff1a}.sidebar-footer{gap:10px;margin-top:auto;display:grid}.prototype-note{color:#ffdc78d9;background:#d8a94a1a;border-radius:12px;align-items:center;gap:9px;padding:10px 11px;font-size:.65rem;line-height:1.4;display:flex}.prototype-note span:last-child{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.footer-logo{background:#fff;border-radius:7px;flex:0 0 26px;place-items:center;width:26px;height:26px;display:grid;overflow:hidden}.footer-logo img{object-fit:contain;width:100%;height:100%}.logout-btn{color:#ffffffb8;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;width:100%;padding:6px 10px;font-size:.72rem;transition:all .2s;display:flex}.logout-btn:hover{color:#fff;background:#ffffff1a}.topbar-identity{align-items:center;gap:12px;min-width:0;display:flex}.topbar-school-mark{background:#fff;border:1px solid #e2d7ef;border-radius:13px;flex:none;place-items:center;width:42px;height:42px;display:grid;overflow:hidden;box-shadow:0 5px 16px #3f216f1a}.topbar-school-mark img{object-fit:contain;width:100%;height:100%}.topbar-identity p{align-items:center;gap:7px;display:flex}.topbar-identity p strong{color:#4b267c;font-size:.75rem}.topbar-identity p span{color:var(--muted)}.main-area{width:calc(100% - 280px);min-height:100vh;margin-left:280px}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;background:#ffffffc7;border-bottom:1px solid #e3e8e4;justify-content:space-between;align-items:center;height:90px;padding:0 36px;display:flex;position:sticky;top:0}.topbar p,.topbar h1{margin:0}.topbar p{color:var(--muted);font-size:.72rem}.topbar h1{margin-top:2px;font-size:1.18rem}.top-actions{align-items:center;gap:13px;display:flex}.mode-badge{color:#27735f;background:#e8f4ee;border-radius:999px;padding:7px 12px;font-size:.75rem;font-weight:600}.mode-badge span{background:#3aae83;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.avatar{background:var(--ink);color:#fff;border-radius:12px;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.page-wrap{max-width:1440px;margin:0 auto;padding:34px}.mobile-only{display:none!important}.icon-btn{color:inherit;background:0 0;border:0}.hero-card{color:#fff;box-shadow:var(--shadow);background:linear-gradient(125deg,#173f3a,#275f55);border-radius:26px;justify-content:space-between;align-items:center;padding:42px 48px;display:flex;position:relative;overflow:hidden}.hero-card:before{content:"";border:1px solid #ffffff14;border-radius:50%;width:430px;height:430px;position:absolute;top:-200px;right:-150px;box-shadow:0 0 0 55px #ffffff06,0 0 0 110px #ffffff05}.hero-card h2,.management-hero h2{letter-spacing:-.8px;margin:16px 0 12px;font-size:clamp(2rem,4vw,3.2rem);line-height:1.17}.hero-card p{color:#ffffffad;max-width:610px;margin-bottom:24px}.teacher-hero{background:linear-gradient(128deg,#35175f 0%,#512886 50%,#754ab2 100%);border:1px solid #ffffff26;min-height:355px;box-shadow:0 26px 65px #3f216f33}.teacher-hero:after{content:"";background:radial-gradient(circle,#ffffff24,#fff0 67%);border-radius:50%;width:430px;height:430px;position:absolute;inset:auto -80px -180px auto}.teacher-hero-content{z-index:2;position:relative}.teacher-hero h2{max-width:720px;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:clamp(2.35rem,4.2vw,4rem)}.teacher-hero p{color:#ffffffc2;max-width:700px;line-height:1.8}.teacher-hero-emblem{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;background:#ffffff17;border:1px solid #fff3;border-radius:26px;flex:0 0 210px;align-content:center;place-items:center;min-height:225px;display:grid;position:relative;box-shadow:inset 0 1px #ffffff1f}.teacher-hero-emblem>span{background:#fff;border-radius:22%;width:92px;height:92px;padding:5px;box-shadow:0 15px 35px #0003}.teacher-hero-emblem img{object-fit:contain;border-radius:18%;width:100%;height:100%}.pill{background:#ffffff1a;border:1px solid #ffffff26;border-radius:99px;align-items:center;gap:7px;padding:7px 11px;font-size:.73rem;display:inline-flex}.progress-orbit{background:conic-gradient(#e7bd68 var(--progress), #ffffff1f 0);z-index:2;border-radius:50%;flex:0 0 205px;width:205px;height:205px;padding:12px;position:relative}.progress-orbit>div{text-align:center;background:#24554d;border-radius:50%;place-content:center;height:100%;display:grid;box-shadow:inset 0 0 50px #00000021}.progress-orbit strong{font-size:2.3rem}.progress-orbit span{color:#fff9;font-size:.75rem}.primary-btn,.secondary-btn,.ghost-btn{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:700;transition:all .2s;display:inline-flex}.primary-btn{background:var(--gold);color:#fff;box-shadow:0 8px 24px #7c4dbe38}.primary-btn:hover{background:#6c3fac;transform:translateY(-1px)}.secondary-btn{border-color:var(--line);color:var(--ink);background:#fff}.secondary-btn:hover{border-color:#9ab3aa}.ghost-btn{color:var(--ink);background:0 0}.full-btn{width:100%}.button-stack{gap:9px;display:grid}.button-stack.horizontal{flex-wrap:wrap;display:flex}.mini-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border-radius:9px;align-items:center;gap:5px;padding:7px 10px;font:700 .68rem inherit;transition:all .15s;display:inline-flex}.mini-btn:hover{background:#faf7fe;border-color:#9672c1}.mini-btn svg{width:14px;height:14px}.mini-btn.pass{color:#42205f;background:#eee5f6;border-color:#75419f}.mini-btn.pass:hover{color:#fff;background:#42205f}.mini-btn.fail{color:#8f1820;background:#fff5f5;border-color:#c97979}.mini-btn.fail:hover{color:#fff;background:#8f1820}.metric-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0;display:grid}.metric-card{border:1px solid var(--line);background:#fff;border-radius:17px;align-items:center;gap:13px;padding:18px;display:flex}.metric-card>div span,.metric-card>div strong{display:block}.metric-card>div span{color:var(--muted);font-size:.73rem}.metric-card>div strong{margin-top:3px;font-size:.9rem}.metric-icon,.setting-icon{border-radius:12px;place-items:center;width:43px;height:43px;display:grid}.metric-icon svg{width:20px}.metric-icon.green{color:#328168;background:#e4f2ec}.metric-icon.gold{color:#a87516;background:#fbf1dc}.metric-icon.blue{color:#3376ab;background:#e6f0fa}.metric-icon.purple{color:#6f58aa;background:#eee9f8}.section-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:25px;box-shadow:0 7px 28px #1f413b09}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.section-heading h3{margin:2px 0 3px;font-size:1.25rem}.section-heading p{color:var(--muted);margin:0;font-size:.82rem}.overline{letter-spacing:1.7px;color:#9b7a38;font-size:.66rem;font-weight:800;display:block}.next-action{background:#f7f8f5;border-radius:15px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:16px;display:grid}.stage-number{background:var(--ink);color:#f2d58d;border-radius:14px;place-items:center;width:48px;height:48px;font-weight:800;display:grid}.next-action h4,.next-action p{margin:0}.next-action p{color:var(--muted);margin-top:3px;font-size:.8rem}.status-badge{white-space:nowrap;border-radius:99px;align-items:center;padding:5px 9px;font-size:.69rem;font-weight:700;display:inline-flex}.status-badge.available{color:#26755f;background:#e6f4ee}.status-badge.passed{color:#26755f;background:#daf0e6}.status-badge.locked{color:#71807d;background:#edf0ee}.status-badge.needs_revision{color:#a04444;background:#f8e4e4}.queue-notice{color:#573274;background:#f7f1fc;border:1px solid #dbc8eb;border-radius:13px;align-items:center;gap:12px;margin-top:16px;padding:13px 15px;display:flex}.queue-notice strong,.queue-notice span{display:block}.queue-notice span{color:#776680;margin-top:3px;font-size:.72rem}.queue-notice.saved{color:#246c54;background:#edf8f3;border-color:#b9dfcf}.queue-notice.saved>svg{flex:none}.management-hero{color:var(--ink);background:#f1e9d9;border:1px solid #e6dcc6;border-radius:23px;justify-content:space-between;align-items:center;padding:30px 36px;display:flex}.management-hero h2{font-size:2.1rem}.management-hero .pill{background:#ffffff80;border-color:#173f3a1f}.management-hero p{color:#65736f}.management-hero.compact{margin-bottom:20px}.management-hero.compact h2{margin-bottom:4px}.simple-hero{min-height:auto}.simple-hero h2{font-size:2.35rem}.action-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.action-card{border:1px solid var(--line);background:#fff;border-radius:20px;padding:23px;position:relative;box-shadow:0 7px 28px #1f413b09}.action-number{color:#edf1ee;font-size:3.4rem;font-weight:800;position:absolute;top:12px;right:18px}.action-icon{color:#2f7b64;background:#e6f2ed;border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.action-card h3{margin:16px 0 5px}.action-card p{color:var(--muted);min-height:58px;font-size:.78rem;line-height:1.65}.compact-metrics{margin:0}.role-teacher .page-wrap{padding-top:28px;padding-bottom:60px}.role-teacher .section-card,.role-teacher .action-card{border-color:#e7deef;box-shadow:0 12px 36px #3f216f12}.role-teacher .section-card{position:relative;overflow:hidden}.role-teacher .section-card:before{content:"";opacity:.75;background:linear-gradient(#7d4bb7,#d5bee9);width:3px;position:absolute;top:0;bottom:0;left:0}.teacher-action-grid{margin:22px 0}.teacher-action-grid .action-card{border-radius:22px;min-height:250px;padding:26px;transition:transform .2s,box-shadow .2s,border-color .2s}.teacher-action-grid .action-card:hover{border-color:#c9b2df;transform:translateY(-4px);box-shadow:0 20px 44px #3f216f1f}.teacher-action-grid .action-icon{color:#7040a2;background:linear-gradient(145deg,#f3ebfb,#e7daf5);border-radius:16px;width:54px;height:54px}.teacher-action-grid .action-number{color:#eee7f6;font-family:ui-sans-serif,system-ui,sans-serif}.teacher-action-grid .secondary-btn{color:#5b2d89;background:#fbf9fd;border-color:#dacbe8;margin-top:auto}.teacher-work-summary{margin-top:22px}.teacher-work-summary .metric-card{background:linear-gradient(#fff,#fcfaff);border-color:#ebe3f2}.role-teacher .field label{color:#4c3860;font-size:.72rem;font-weight:800}.role-teacher .field input,.role-teacher .field textarea,.role-teacher .field select{background:#fff;border-color:#ded4e7;box-shadow:0 2px #3f216f05}.role-teacher .field input:focus,.role-teacher .field textarea:focus,.role-teacher .field select:focus{border-color:#8a5abb;outline:3px solid #7e4bb71f}.role-teacher .primary-btn{background:linear-gradient(135deg,#6d38a5,#8956bd);box-shadow:0 9px 24px #63329138}.role-teacher .overline{color:#8250b3;letter-spacing:.1em}.health-list{gap:3px;display:grid}.health-list>div{border-bottom:1px solid #eef1ee;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px;display:grid}.health-list svg{color:#3c9b78;width:19px}.health-list strong{color:#3c806b;font-size:.75rem}.form-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.field{gap:7px;display:grid}.field.full{grid-column:1/-1}.field label,.select-label{color:#405451;font-size:.76rem;font-weight:700}.field input,.field textarea,select,.document-input{color:#273a37;resize:vertical;background:#fbfcfa;border:1px solid #d8e1dc;border-radius:11px;outline:none;padding:11px 12px}.form-actions{justify-content:flex-end;margin-top:22px;display:flex}.stage-layout{grid-template-columns:380px 1fr;gap:20px;display:grid}.stage-list-card{padding-right:14px}.stage-list{gap:6px;display:grid}.stage-list button{text-align:left;color:#344743;background:0 0;border:0;border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;padding:10px;display:grid}.stage-list button:hover,.stage-list button.selected{background:#f1f5f1}.stage-list button:disabled{opacity:.48}.stage-list button strong,.stage-list button small{display:block}.stage-list button strong{font-size:.83rem}.stage-list button small{color:var(--muted);margin-top:2px;font-size:.66rem}.stage-code{color:#536a65;background:#e9eeea;border-radius:10px;place-items:center;width:34px;height:34px;font-size:.72rem;font-weight:800;display:grid}.stage-list button.passed .stage-code{color:#2a8066;background:#dff1e8}.stage-list button.available .stage-code,.stage-list button.needs_revision .stage-code{background:var(--ink);color:#f0ca79}.stage-detail{min-height:600px;padding:38px}.stage-detail-head{justify-content:space-between;align-items:center;display:flex}.big-code{color:#d3dfd9;font-size:3.6rem;font-weight:800;line-height:1}.stage-detail h2{max-width:650px;margin:25px 0 10px;font-size:2rem}.lead{color:var(--muted);max-width:700px}.output-box{background:var(--cream);border:1px solid #eadfc9;border-radius:14px;align-items:center;gap:12px;margin:25px 0;padding:17px;display:flex}.output-box svg{color:#a27622}.output-box small,.output-box strong{display:block}.output-box small{color:#897552;font-size:.68rem}.check-list{gap:9px;padding:0;list-style:none;display:grid}.check-list li{color:#445753;align-items:flex-start;gap:9px;font-size:.85rem;display:flex}.check-list svg{color:#3c9b78;flex:none;width:19px}.revision-box{color:#914747;background:#fff1f1;border-radius:12px;margin:18px 0;padding:14px}.revision-box p{margin:4px 0;font-size:.78rem}.studio-layout{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:20px;display:grid}.studio-controls{position:sticky;top:124px}.studio-controls h2{margin:8px 0;font-size:1.65rem}.studio-controls>p{color:var(--muted);font-size:.82rem}.studio-controls select{width:100%;margin:6px 0 18px}.context-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:18px;padding:16px 0}.context-summary h4{margin:0 0 10px}.context-summary div{padding:6px 0}.context-summary span,.context-summary strong{display:block}.context-summary span{color:var(--muted);font-size:.65rem}.context-summary strong{margin-top:2px;font-size:.77rem}.selected-prompt-name{background:#f2f5f2;border-radius:9px;margin:-11px 0 15px;padding:8px 10px;font-weight:700;color:#49605b!important}.curriculum-match{color:#8b6421;background:#fff2dd;border-radius:12px;align-items:center;gap:10px;margin:18px 0;padding:12px;display:flex}.curriculum-match.ready{color:#276f5b;background:#e6f4ee}.curriculum-match svg{width:20px}.curriculum-match strong,.curriculum-match span{display:block}.curriculum-match strong{font-size:.76rem}.curriculum-match span{opacity:.8;font-size:.65rem}.course-entry{border:1px solid #0000;border-radius:12px;align-items:center;gap:6px;margin-bottom:6px;display:flex}.course-entry.selected{background:#f4effa;border-color:#d8c6e8}.course-entry-main{text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:11px;padding:13px 12px;display:flex}.course-entry-main svg{color:#79549b}.course-entry-main strong,.course-entry-main small{display:block}.course-entry-main small{color:var(--muted);margin-top:3px;font-size:.68rem}.course-delete-btn{color:#a35b67;margin-right:7px}.course-delete-btn:hover{color:#8c3445;background:#fbeaec}.teacher-progress{background:#fbf9fe;border:1px solid #e6dcef;border-radius:16px;margin:4px 0 22px;padding:16px}.teacher-progress-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.teacher-progress-head strong,.teacher-progress-head span{display:block}.teacher-progress-head strong{color:#51306e}.teacher-progress-head span{color:var(--muted);margin-top:4px;font-size:.76rem}.teacher-progress-head em{color:#7b5796;text-align:right;font-size:.72rem;font-style:normal}.teacher-progress-bar{background:#e9e2f0;border-radius:99px;height:9px;margin:14px 0;overflow:hidden}.teacher-progress-bar span{border-radius:inherit;background:linear-gradient(90deg,#8c5eb0,#c18cdb);height:100%;display:block}.stage-progress-grid{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px;display:grid}.stage-progress-item{text-align:center;background:#fff;border:1px solid #e5e0e9;border-radius:10px;min-width:0;padding:9px 5px}.stage-progress-item strong,.stage-progress-item span,.stage-progress-item small{display:block}.stage-progress-item strong{color:#6a6172;font-size:.78rem}.stage-progress-item span{color:var(--muted);white-space:nowrap;margin-top:4px;font-size:.58rem}.stage-progress-item small{color:#5f5366;margin-top:3px;font-size:.58rem}.stage-progress-item.passed,.stage-progress-item.certified{background:#f0faf4;border-color:#9bd1b9}.stage-progress-item.passed strong,.stage-progress-item.certified strong{color:#267653}.stage-progress-item.needs_revision{background:#fff5f5;border-color:#edb8b8}.stage-progress-item.needs_revision strong{color:#a44848}.stage-progress-item.checking{background:#fffaf0;border-color:#e5cd91}.ai-review-summary{background:#faf7fd;border-left:3px solid #8660a5;border-radius:8px;margin-top:10px;padding:11px 12px}.ai-review-summary>strong,.ai-review-summary>p{display:block}.ai-review-summary>strong{color:#5d3d77;font-size:.72rem}.ai-review-summary>p{color:#4e4655;margin:5px 0 8px;font-size:.74rem;line-height:1.6}.ai-category-scores{flex-wrap:wrap;gap:5px;display:flex}.ai-category-scores span{color:#65457e;background:#eee5f6;border-radius:99px;padding:3px 7px;font-size:.62rem}.ai-category-scores b{font-weight:700}.ai-priority-fixes{border-top:1px solid #e8def0;margin-top:8px;padding-top:8px}.ai-priority-fixes strong{color:#9b4f4f;font-size:.68rem}.ai-priority-fixes p{color:#554b58;margin:3px 0 0;font-size:.7rem;line-height:1.5}.prompt-task-card{background:#faf7ff;border:1px solid #dfd5ed;border-radius:14px;margin:4px 0 16px;padding:14px}.prompt-task-heading{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.prompt-task-heading strong,.prompt-task-heading span{display:block}.prompt-task-heading strong{color:#5c357f;font-size:.82rem}.prompt-task-heading span{color:var(--muted);margin-top:3px;font-size:.66rem}.prompt-task-grid{gap:11px;display:grid}.prompt-task-grid .field textarea{min-height:105px}.prompt-task-card.review-only{color:#5c357f;gap:12px;display:flex}.prompt-task-card.review-only svg{flex:none}.prompt-task-card.review-only strong,.prompt-task-card.review-only span{display:block}.prompt-task-card.review-only span{color:var(--muted);margin:5px 0 10px;font-size:.72rem}.prompt-task-card .mini-btn{white-space:nowrap}.integration-match,.evidence-policy{border-radius:12px;align-items:flex-start;gap:10px;padding:12px;display:flex}.integration-match{margin:-9px 0 18px}.integration-match.has-evidence{color:#2e6998;background:#e9f2fb}.integration-match.no-evidence{color:#64736f;background:#f1f3f2}.integration-match svg,.evidence-policy svg{flex:none;width:19px}.integration-match strong,.integration-match span,.evidence-policy strong,.evidence-policy span{display:block}.integration-match strong,.evidence-policy strong{font-size:.75rem}.integration-match span,.evidence-policy span{opacity:.86;margin-top:2px;font-size:.65rem;line-height:1.55}.evidence-policy{color:#386b5d;background:#f0f6f3;border:1px solid #d7e7e0;margin-top:20px}.lookup-header{grid-template-columns:1fr 1fr;align-items:end;gap:30px;display:grid}.lookup-header h2{margin:5px 0}.lookup-header p{color:var(--muted);font-size:.78rem}.lookup-selects{grid-template-columns:1fr 1fr;gap:12px;display:grid}.curriculum-tabs{gap:7px;margin:18px 0 10px;display:flex}.curriculum-tabs button{border:1px solid var(--line);color:#50635f;background:#fff;border-radius:11px;padding:10px 15px;font-weight:700}.curriculum-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.inline-actions{gap:8px;display:flex}.curriculum-content{white-space:pre-wrap;background:#f8faf8;border:1px solid #e5ebe7;border-radius:13px;max-height:620px;padding:22px;font-family:Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:.82rem;line-height:1.75;overflow:auto}.supplementary-document{margin-top:18px}.supplementary-section{border-top:1px solid var(--line);padding:18px 0}.supplementary-section h4{color:var(--ink);margin:0 0 8px}.supplementary-section p,.supplementary-section li{color:#4e625d;font-size:.82rem;line-height:1.75}.supplementary-section ol{margin:0;padding-left:24px}.local-framework{background:#f8f3e7;border:1px solid #eadfc7;border-radius:14px;padding:18px}.unit-list{gap:7px;margin-top:12px;display:grid}.unit-list>div{background:#ffffffb8;border-radius:9px;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:9px 11px;display:grid}.unit-list span{background:var(--ink);color:#f2cf7c;border-radius:8px;place-items:center;width:25px;height:25px;font-size:.68rem;font-weight:800;display:grid}.unit-list strong{font-size:.76rem}.unit-list ul{margin:5px 0 0;padding-left:17px}.unit-list li{color:#5f665e;margin:2px 0;font-size:.68rem;line-height:1.55}.unit-list em{color:#826520;white-space:nowrap;font-size:.68rem;font-style:normal}.source-note{color:#4b6c63;background:#eef4f1;border-radius:10px;align-items:center;gap:8px;margin-top:15px;padding:11px;font-size:.7rem;display:flex}.source-note svg{width:17px}.director-groups{gap:18px;display:grid}.director-group{background:#fdfbfe;border:1px solid #e3d9ea;border-radius:16px;padding:16px}.director-group-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.director-group-head strong,.director-group-head span,.director-group-status b,.director-group-status small{display:block}.director-group-head strong{color:#4f2e6a;font-size:.95rem}.director-group-head span{color:var(--muted);margin-top:3px;font-size:.72rem}.director-group-status{text-align:center;color:#6f4291;background:#f1e8f8;border-radius:10px;min-width:64px;padding:7px 10px}.director-group-status b{font-size:1.05rem}.director-group-status small{font-size:.6rem}.director-stage-strip{grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:7px;margin:14px 0;display:grid}.director-stage-strip span{color:#83798b;text-align:center;background:#fff;border:1px solid #ddd5e3;border-radius:7px;padding:6px 3px;font-size:.62rem}.director-stage-strip .passed{color:#6f4291;background:#f3ecfa;border-color:#cdb6e2;font-weight:800}.director-stage-strip .needs_revision{color:#b32626;background:#fff0f0;border-color:#d74747;font-weight:800}.prompt-preview{color:#d5e3de;box-shadow:var(--shadow);background:#14221f;border-radius:20px;overflow:hidden}.preview-toolbar{color:#78958d;border-bottom:1px solid #ffffff1a;grid-template-columns:1fr auto 1fr;gap:10px;padding:13px 16px;font-size:.7rem;display:grid}.preview-toolbar>span:last-child{text-align:right}.dot{border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.dot.red{background:#d86c68}.dot.amber{background:#d7aa55}.dot.green{background:#67b786}.prompt-preview pre{white-space:pre-wrap;max-height:calc(100vh - 180px);margin:0;padding:27px;font-family:Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:.78rem;line-height:1.75;overflow:auto}.document-layout{grid-template-columns:430px minmax(0,1fr);align-items:start;gap:20px;display:grid}.document-controls{position:sticky;top:124px}.document-controls h2{margin-bottom:5px}.document-controls>p{color:var(--muted);font-size:.8rem}.document-input{width:100%;min-height:390px;margin:14px 0;line-height:1.6}.prototype-warning{color:#886721;background:#f8f0dc;border-radius:11px;align-items:flex-start;gap:9px;margin-top:16px;padding:11px;font-size:.72rem;display:flex}.prototype-warning svg{flex:none;width:17px}.paper-wrap{background:#dfe4e0;border-radius:20px;min-height:900px;padding:35px}.paper{color:#242c2a;background:#fff;width:min(100%,210mm);min-height:297mm;margin:auto;padding:24mm 20mm;position:relative;box-shadow:0 8px 30px #0000001f}.paper header{text-align:center;border-bottom:2px solid #213d38;padding-bottom:15px}.paper header h1{margin:8px 0 2px;font-size:1.5rem}.paper header p{color:#67736f;margin:0}.paper article{padding:15px 0 45px;font-family:Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;line-height:1.7}.paper article h2{font-size:1.25rem}.paper article h3{margin-top:20px;font-size:1rem}.paper article p{margin:4px 0;font-size:.83rem}.paper footer{text-align:center;color:#89938f;border-top:1px solid #dfe5e1;padding-top:8px;font-size:.65rem;position:absolute;bottom:15mm;left:20mm;right:20mm}.empty-paper{color:#9aa5a1;text-align:center;place-content:center;justify-items:center;min-height:500px;display:grid}.empty-paper svg{width:45px;height:45px;margin-bottom:10px}.empty-paper span{font-size:.75rem}.spinner{border:2px solid #0003;border-top-color:#1f3f38;border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:#87938f;place-content:center;justify-items:center;min-height:320px;display:grid}.empty-state svg{color:#b2beb9;width:52px;height:52px}.empty-state h3{color:#465954;margin-bottom:0}.empty-state p{max-width:430px;font-size:.8rem}.result-list{gap:16px;display:grid}.result-card{border:1px solid var(--line);border-radius:16px;overflow:hidden}.result-card.pass{border-color:#c7e2d7}.result-card.fail{border-color:#edcccc}.result-card header{background:#f8faf8;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:16px;display:grid}.result-card header h4,.result-card header span,.result-card header small{margin:0;display:block}.result-card header>div:nth-child(2)>span{color:#977630;font-size:.65rem;font-weight:800}.result-card header small{color:var(--muted);font-size:.65rem}.result-score{background:var(--ink);color:#fff;text-align:center;border-radius:50%;place-content:center;width:50px;height:50px;line-height:1;display:grid}.result-score strong{font-size:1.2rem}.result-score span{opacity:.6;font-size:.55rem}.result-checks{padding:15px}.result-checks>div{border-bottom:1px solid #eef1ef;gap:10px;padding:10px 0;display:flex}.result-checks>div:last-child{border:0}.result-checks .ok,.result-checks .bad{border-radius:8px;flex:none;place-items:center;width:25px;height:25px;display:grid}.result-checks .ok{color:#2c8a6b;background:#e3f3eb}.result-checks .bad{color:#b94e4e;background:#f8e5e5}.result-checks svg{width:15px}.result-checks strong{font-size:.78rem}.result-checks p{color:var(--muted);margin:2px 0 0;font-size:.7rem}.result-card>.secondary-btn{margin:0 15px 15px}.audit-strip{background:#f6f8f6;border-radius:13px;align-items:center;gap:7px;margin-top:22px;padding:12px;display:flex}.audit-strip svg{color:#65817a;width:18px}.audit-strip>span{color:var(--muted);margin-right:auto;font-size:.73rem}.audit-strip i{color:#84908d;background:#e5e9e6;border-radius:7px;place-items:center;width:26px;height:26px;font-size:.62rem;font-style:normal;display:grid}.audit-strip i.passed{color:#28775f;background:#daf0e6}.audit-strip i.available{background:var(--ink);color:#f2cc78}.audit-strip i.needs_revision{color:#a94747;background:#f6dede}.certificate-layout{grid-template-columns:360px 1fr;gap:20px;display:grid}.certificate-status h2{font-size:1.7rem}.certificate-status>p{color:var(--muted);font-size:.82rem}.certificate-progress{background:#e5eae7;border-radius:99px;height:8px;margin-top:22px;overflow:hidden}.certificate-progress span{background:linear-gradient(90deg,var(--ink),var(--gold));height:100%;display:block}.certificate-status>strong{text-align:right;margin:6px 0 22px;font-size:.73rem;display:block}.certificate-preview{background:#f6efdf;border-radius:20px;place-items:center;min-height:590px;padding:24px;display:grid;position:relative;overflow:hidden}.certificate-inner{outline-offset:8px;text-align:center;background:#fffdf7;border:5px double #b78d38;outline:1px solid #b78d38;width:100%;min-height:500px;padding:48px}.certificate-inner>svg{color:#a57b27;width:45px;height:45px}.certificate-inner>span{color:#a57b27;letter-spacing:3px;margin:9px 0 35px;font-size:.7rem;display:block}.certificate-inner h2{font-size:1rem;font-weight:400}.certificate-inner h1{color:var(--ink);border-bottom:1px solid #dcc58f;padding:0 28px 8px;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:2.2rem;display:inline-block}.certificate-inner p{color:#5f6d69;line-height:1.8}.signature-row{justify-content:space-around;align-items:end;margin-top:55px;display:flex}.signature-row div span,.signature-row div small{display:block}.qr-placeholder{border:2px dashed #9c8d6a;place-items:center;width:65px;height:65px;display:grid}.certificate-preview.locked .certificate-inner{filter:blur(3px);opacity:.43}.certificate-lock{color:#fff;background:#152f2b52;place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.certificate-lock svg{width:42px;height:42px}.certificate-lock strong{margin-top:8px;font-size:1.5rem}.certificate-lock span{opacity:.8;font-size:.8rem}.data-table{border:1px solid var(--line);border-radius:14px;overflow:hidden}.table-row{border-bottom:1px solid #edf0ee;grid-template-columns:1.5fr .6fr .8fr;align-items:center;gap:15px;padding:14px;font-size:.79rem;display:grid}.table-row:last-child{border:0}.table-head{color:var(--muted);background:#f3f6f3;font-size:.67rem;font-weight:700}.template-grid{grid-template-columns:repeat(2,1fr);gap:11px;display:grid}.template-grid article{border:1px solid var(--line);border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.template-grid article>span:first-child{background:var(--ink);color:#f0cb79;border-radius:10px;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.template-grid strong{font-size:.78rem}.template-grid p{color:var(--muted);margin:2px 0 0;font-size:.67rem}.version-chip{background:#edf1ee;border-radius:99px;padding:4px 7px;font-size:.6rem}.user-list{gap:8px;display:grid}.user-list article{border:1px solid var(--line);border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.user-list strong,.user-list span{display:block}.user-list span{color:var(--muted);font-size:.7rem}.role-chip{background:#e4f2ed;border-radius:99px;padding:5px 9px;color:#245c4f!important;font-size:.65rem!important}.role-chip.director{background:#faedcf;color:#875f12!important}.role-chip.academic{background:#e4effa;color:#2d6999!important}.role-chip.admin{background:#eee7fa;color:#6a4fa0!important}.settings-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.setting-icon{color:#317a65;background:#e5f0eb}.settings-grid h3{margin-bottom:5px}.settings-grid>section>p{min-height:60px;color:var(--muted);font-size:.75rem}.setting-value{border-top:1px solid #edf0ee;justify-content:space-between;padding:12px 0;font-size:.75rem;display:flex}.setting-value span{color:var(--muted)}.amber-text{color:#a4761d}.login-page{background:#faf9ff;grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.login-intro{color:#fff;background:linear-gradient(145deg,#35205d 0%,#57308d 50%,#7b4fbf 100%);flex-direction:column;justify-content:center;padding:clamp(40px,5vw,72px);display:flex;position:relative;overflow:hidden}.login-intro:after{content:"";pointer-events:none;border:1px solid #ffffff0a;border-radius:50%;width:600px;height:600px;position:absolute;bottom:-200px;right:-200px;box-shadow:0 0 0 80px #ffffff05,0 0 0 160px #ffffff03}.login-version-badge{color:#ffffffe6;letter-spacing:1.5px;z-index:2;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:99px;width:fit-content;padding:8px 18px;font-size:.7rem;font-weight:700;display:inline-block;position:relative}.login-hero-logo{z-index:2;background:#fff;border-radius:22%;width:88px;height:88px;margin:28px 0 22px;padding:5px;position:relative;box-shadow:0 12px 35px #00000040}.login-hero-logo img{object-fit:contain;border-radius:18%;width:100%;height:100%}.login-intro h1{z-index:2;margin:0 0 14px;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:500;line-height:1.25;position:relative}.login-intro>p{color:#ffffffb8;z-index:2;max-width:480px;font-size:.82rem;line-height:1.75;position:relative}.login-feature-grid{z-index:2;grid-template-columns:1fr 1fr;gap:10px;margin-top:32px;display:grid;position:relative}.login-feature{background:#ffffff14;border:1px solid #ffffff1a;border-radius:14px;align-items:flex-start;gap:10px;padding:14px;display:flex}.login-feature svg{color:#ffffffb3;flex:none;margin-top:2px}.login-feature strong{margin-bottom:3px;font-size:.72rem;display:block}.login-feature span{color:#ffffff8c;font-size:.64rem;line-height:1.5;display:block}.developer-credit{z-index:2;color:#ffffff80;border-top:1px solid #ffffff1f;margin-top:28px;padding-top:16px;font-size:.68rem;position:relative}.login-card{flex-direction:column;justify-content:center;width:100%;max-width:520px;margin:auto;padding:clamp(35px,6vw,80px);display:flex}.login-role-badge{color:#623c91;letter-spacing:.5px;background:#f3eefb;border-radius:99px;width:fit-content;margin-bottom:16px;padding:6px 16px;font-size:.7rem;font-weight:700;display:inline-block}.login-card h2{color:#1a1a1a;margin:0 0 10px;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500}.login-card>p{color:#666;margin-bottom:28px;font-size:.8rem;line-height:1.7}.google-login-btn{color:#333;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:12px;justify-content:center;align-items:center;gap:12px;width:100%;padding:11px 16px;transition:all .2s;display:flex;box-shadow:0 2px 6px #0000000a}.google-login-btn:hover:not(:disabled){border-color:#c8c8c8;transform:translateY(-1px);box-shadow:0 4px 14px #00000014}.google-login-btn:disabled{opacity:.55;cursor:not-allowed}.google-logo{flex:none;width:23px;height:23px}.google-login-copy{text-align:center;flex-direction:column;align-items:center;line-height:1.25;display:flex}.google-login-copy strong{color:#303030;font-size:.86rem;font-weight:700}.google-login-copy small{color:#777;margin-top:3px;font-size:.66rem;font-weight:500}.login-divider{color:#999;align-items:center;gap:10px;margin:22px 0;font-size:.68rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:#e5e5e5;flex:1;height:1px}.login-fields{gap:16px;margin-bottom:22px;display:grid}.login-fields .field label{color:#333;margin-bottom:5px;font-size:.78rem;font-weight:600}.login-fields .field input{background:#fff;border:1.5px solid #dcdcdc;border-radius:12px;padding:13px 15px;font-size:.88rem;transition:all .2s}.login-fields .field input:focus{border-color:#7c4dbe;outline:none;box-shadow:0 0 0 4px #7c4dbe1a}.login-fields .field input::placeholder{color:#b0b0b0}.login-submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#5b2d8e,#7c4dbe);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:.92rem;font-weight:700;transition:all .3s;display:flex;box-shadow:0 6px 20px #623c9140}.login-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px #623c9159}.login-submit-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.link-btn{color:#7c4dbe;text-align:center;cursor:pointer;background:0 0;border:none;width:100%;margin-top:14px;font-size:.78rem;font-weight:600;transition:all .2s}.link-btn:hover:not(:disabled){color:#4a287c;text-decoration:underline}.link-btn:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}.demo-login{text-align:center;background:#f8f6fc;border:1px dashed #d1c4e9;border-radius:12px;margin-top:28px;padding:16px}.demo-login>span{color:#623c91;margin-bottom:10px;font-size:.68rem;font-weight:600;display:block}.demo-login>div{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.demo-login button{color:#4a287c;cursor:pointer;background:#fff;border:1px solid #d1c4e9;border-radius:99px;padding:7px 14px;font-size:.75rem;font-weight:500;transition:all .2s}.demo-login button:hover{color:#fff;background:#7c4dbe;border-color:#7c4dbe}.auth-warning{color:#785818;text-align:center;background:#fff8e5;border:1px solid #ecd9a5;border-radius:10px;margin-bottom:20px;padding:12px 16px;font-size:.8rem;font-weight:500}.auth-error{color:#d32f2f;background:#fff0f0;border-left:4px solid #d32f2f;border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:.8rem;font-weight:500}.template-notice{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:.8rem;font-weight:500;display:flex}.template-notice svg{color:#22c55e}.setup-page{background:#f7f5fb;min-height:100vh}.setup-topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:82px;padding:0 clamp(22px,4vw,64px);display:flex}.setup-topbar .brand strong{color:var(--ink)}.setup-topbar .brand span{color:var(--muted)}.setup-layout{grid-template-columns:minmax(310px,.72fr) minmax(650px,1.28fr);min-height:calc(100vh - 82px);display:grid}.setup-guide{background:var(--ink);color:#fff;padding:clamp(38px,5vw,78px);position:relative;overflow:hidden}.setup-guide:after{content:"";border:1px solid #ffffff12;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-170px;right:-240px;box-shadow:0 0 0 65px #ffffff06,0 0 0 130px #ffffff04}.setup-guide h1{letter-spacing:-1.5px;z-index:1;margin:25px 0 18px;font-size:clamp(2.2rem,4vw,4.1rem);line-height:1.08;position:relative}.setup-guide h1 em{color:#ddd0ff;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif}.setup-guide>p{color:#ffffffb8;z-index:1;max-width:530px;line-height:1.75;position:relative}.setup-steps{z-index:1;gap:18px;margin-top:42px;display:grid;position:relative}.setup-steps>div{color:#ffffff8a;grid-template-columns:38px 1fr;align-items:center;gap:12px;display:grid}.setup-steps>div>span{border:1px solid #fff3;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.setup-steps .active{color:#fff}.setup-steps .active>span{color:var(--ink);background:#fff;border-color:#fff}.setup-steps strong,.setup-steps small{display:block}.setup-steps small{color:inherit;margin-top:3px}.setup-form-wrap{padding:clamp(22px,4vw,58px);overflow:auto}.setup-form-wrap .section-card{max-width:980px;margin:auto}.auto-course-note{color:#5b358a;background:#f7f2fd;border:1px solid #d9caee;border-radius:13px;align-items:center;gap:11px;margin-top:18px;padding:13px 15px;display:flex}.auto-course-note svg{flex:none}.auto-course-note strong,.auto-course-note span{display:block}.auto-course-note span{color:#76668c;margin-top:2px;font-size:.73rem}.field input.auto-filled{color:#5b358a;cursor:not-allowed;background:#f7f2fd;border-color:#ded2ee;font-weight:800}.required-hint{color:#6f4a99;background:#faf6ff;border:1px solid #e4d8f1;border-radius:10px;margin:14px 0 0;padding:10px 12px;font-size:.73rem}.sidebar{background:linear-gradient(#35205d 0%,#4a287c 100%)}.brand-mark{color:#e6dcff;background:#ffffff1a;border-color:#ffffff38}.main-nav button:hover,.main-nav button.active{background:#ffffff1c}.main-nav button.active{box-shadow:inset 3px 0 #cdb8ff}.prototype-note{color:#ede6ff;background:#ffffff17;border:1px solid #ffffff17}.topbar{border-color:var(--line);background:#ffffffe0}.mode-badge{color:#623c91;background:#f1ebfb}.mode-badge span{background:#8055bd}.hero-card{background:linear-gradient(125deg,#3f216f,#6540a0)}.management-hero{background:#f3eefb;border-color:#e4daf3}.overline,.eyebrow{color:#7c4dbe}.action-number{color:#f0ebf7}.action-icon,.setting-icon{color:#7045a9;background:#f0eafb}.curriculum-tabs button.active{background:var(--ink);border-color:var(--ink)}.prompt-preview{color:#ede7f5;background:#241b31}.preview-toolbar{color:#ab9bbf}.role-grid button:hover{border-color:#a98bcd}.role-icon{color:#7045a9;background:#f0eafb}.section-card,.action-card,.metric-card{box-shadow:0 8px 30px #3f216f0b}.field input:focus,.field textarea:focus,select:focus,.document-input:focus{border-color:#9672c1;box-shadow:0 0 0 3px #7c4dbe1c}.stage-list button.selected{box-shadow:inset 3px 0 #8b5fc4}.stage-list button.available .stage-code,.stage-list button.needs_revision .stage-code,.template-grid article>span:first-child{background:var(--ink);color:#eee6ff}.wide-progress span,.certificate-progress span{background:linear-gradient(90deg,#4c287e,#9367c7)}.login-intro h1,.login-intro h1 em,.setup-guide h1,.setup-guide h1 em,.hero-card h2,.management-hero h2,.certificate-inner h1{font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-weight:500}.brand-mark{background:#fff;border:1px solid #ffffff73;border-radius:22%;flex:0 0 54px;width:54px;height:54px;padding:3px;overflow:hidden;box-shadow:0 5px 18px #140c2229}.brand-mark img{object-fit:contain;border-radius:18%;width:100%;height:100%;display:block}.sidebar .brand>div:nth-child(2){min-width:0}.sidebar .brand strong{font-size:.82rem;line-height:1.35}.sidebar .brand span{margin-top:3px;display:block}.login-brand .brand-mark{background:#fff;flex-basis:64px;width:64px;height:64px}.login-brand strong{max-width:340px;line-height:1.35}.setup-topbar .brand-mark{border-color:var(--line);background:#fff}@media (width<=1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.stage-layout,.studio-layout,.document-layout,.certificate-layout{grid-template-columns:1fr}.studio-controls,.document-controls{position:static}.settings-grid{grid-template-columns:1fr}.paper-wrap{min-height:600px}.prompt-preview pre{max-height:680px}.action-grid{grid-template-columns:1fr}.action-card p{min-height:0}.submission-row{grid-template-columns:auto 1fr auto}.row-actions{grid-column:2/-1;max-width:none}}@media (width<=780px){.mobile-only{display:inline-flex!important}.sidebar{transition:all .25s;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.scrim{z-index:25;background:#0a19167a;border:0;position:fixed;inset:0}.main-area{width:100%;margin-left:0}.topbar{height:76px;padding:0 17px}.page-wrap{padding:18px}.hero-card{padding:28px;display:block}.progress-orbit{width:170px;height:170px;margin:25px auto 0}.metric-grid{grid-template-columns:1fr}.next-action{grid-template-columns:auto 1fr}.next-action .secondary-btn{grid-column:1/-1}.form-grid,.template-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.stage-list-card{padding:18px}.stage-detail{min-height:auto;padding:24px}.document-layout{display:block}.document-controls{margin-bottom:16px}.paper-wrap{padding:12px;overflow:auto}.paper{min-width:620px;padding:18mm 12mm}.certificate-preview{overflow:auto}.certificate-inner{min-width:620px}.login-page{grid-template-columns:1fr}.login-intro{padding:35px 22px}.login-intro h1{font-size:1.5rem}.login-feature-grid{grid-template-columns:1fr}.login-card{padding:30px 20px}.setup-layout{grid-template-columns:1fr}.setup-guide{padding:40px 24px}.setup-guide h1{font-size:2.6rem}.setup-form-wrap{padding:18px}.setup-topbar{padding:0 16px}.setup-topbar .ghost-btn{font-size:0}.setup-topbar .ghost-btn svg{margin:0}.mode-badge{display:none}.button-stack.horizontal{display:grid}.result-card header{grid-template-columns:auto 1fr}.result-card header>.status-badge{grid-column:1/-1}.audit-strip{overflow:auto}.audit-strip>span{min-width:100px}.lookup-header,.lookup-selects,.submit-grid{grid-template-columns:1fr}.inline-actions{margin-top:8px}.submission-row{grid-template-columns:auto 1fr}.submission-score{grid-column:1}.row-actions{grid-column:2}}.certificate-admin-layout{grid-template-columns:440px minmax(0,1fr);align-items:start;gap:20px;display:grid}.certificate-template-form{grid-row:span 2}.certificate-settings-grid{margin-top:18px}.certificate-background-upload{text-align:center;color:#6a4597;cursor:pointer;background:#faf7fe;border:2px dashed #c7b5df;border-radius:16px;place-content:center;justify-items:center;min-height:125px;padding:20px;display:grid}.certificate-background-upload:hover{background:#f5effc;border-color:#7c4dbe}.certificate-background-upload svg{width:31px;height:31px;margin-bottom:7px}.certificate-background-upload strong,.certificate-background-upload span{display:block}.certificate-background-upload span{color:var(--muted);margin-top:3px;font-size:.68rem}.certificate-background-upload input{opacity:0;pointer-events:none;position:absolute}.range-field{grid-column:1/-1}.range-field input{accent-color:var(--gold);background:0 0;padding:0}.approval-switch{border:1px solid var(--line);cursor:pointer;background:#fbf9fe;border-radius:13px;align-items:flex-start;gap:10px;margin-top:18px;padding:13px;display:flex}.approval-switch input{width:18px;height:18px;accent-color:var(--gold)}.approval-switch strong,.approval-switch small{display:block}.approval-switch small{color:var(--muted);margin-top:3px;font-size:.68rem}.template-notice{color:#2e745e;background:#e9f5ef;border-radius:10px;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;font-size:.72rem;display:flex}.template-notice svg{width:18px}.certificate-preview-panel{box-shadow:var(--shadow);background:#241b31;border-radius:20px;overflow:hidden}.certificate-preview-panel>.certificate-render{margin:28px auto}.certificate-version-list{grid-column:2}.certificate-version-list article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:12px 0;display:flex}.certificate-version-list article:last-child{border-bottom:0}.certificate-version-list strong,.certificate-version-list span{display:block}.certificate-version-list article>div span{color:var(--muted);margin-top:3px;font-size:.68rem}.certificate-center{gap:20px;display:grid}.certificate-issue-form,.approval-queue{margin-bottom:0}.certificate-candidate-toolbar{background:#f8f4fc;border:1px solid #e5d9f1;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;padding:11px 13px;display:flex}.certificate-candidate-toolbar label{align-items:center;gap:8px;display:flex}.certificate-candidate-toolbar input,.certificate-candidate input{accent-color:#7041a5;width:18px;height:18px}.certificate-candidate-toolbar span{color:var(--muted);font-size:.72rem}.certificate-candidate-list{gap:8px;max-height:390px;display:grid;overflow:auto}.certificate-candidate{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.certificate-candidate strong,.certificate-candidate small{display:block}.certificate-candidate small{color:var(--muted);margin-top:2px;font-size:.68rem}.certificate-candidate b{white-space:nowrap;color:#ac3030;background:#feecec;border-radius:999px;padding:6px 10px;font-size:.68rem}.certificate-candidate.eligible{background:#fbf8fe;border-color:#cfb8e7}.certificate-candidate.eligible b{color:#65378f;background:#eee4f8}.certificate-candidate.issued{opacity:.68}.certificate-candidate.issued b{color:#2e745e;background:#e9f5ef}.approval-queue article{border:1px solid var(--line);border-radius:13px;justify-content:space-between;align-items:center;gap:18px;margin-top:9px;padding:13px;display:flex}.approval-queue strong,.approval-queue span{display:block}.approval-queue span{color:var(--muted);font-size:.7rem}.certificate-record-layout{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;display:grid}.certificate-record-list{gap:7px;display:grid}.certificate-record-list .section-heading{margin-bottom:8px}.certificate-record-list>button{border:1px solid var(--line);text-align:left;color:var(--ink);background:#fff;border-radius:12px;grid-template-columns:auto 1fr;gap:10px;padding:11px;display:grid}.certificate-record-list>button:hover,.certificate-record-list>button.selected{background:#f8f3fd;border-color:#9b78c4}.certificate-record-list>button svg{color:#7c4dbe;width:27px}.certificate-record-list>button strong,.certificate-record-list>button small{display:block}.certificate-record-list>button small{color:var(--muted);margin-top:2px;font-size:.65rem}.compact-empty{text-align:center;min-height:120px;color:var(--muted);place-content:center;justify-items:center;gap:7px;display:grid}.certificate-output{min-width:0}.certificate-actions{border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:9px;padding:14px;display:flex}.danger-text{color:var(--danger)}.certificate-render{--certificate-accent:#69409a;--certificate-ink:#2d2540;width:calc(100% - 56px);max-width:980px;color:var(--certificate-ink);isolation:isolate;background-color:#fffaf1;background-position:50%;background-size:cover;position:relative;overflow:hidden;box-shadow:0 18px 45px #09031147}.certificate-render.landscape{aspect-ratio:1.414}.certificate-render.portrait{aspect-ratio:1/1.414;max-width:620px}.certificate-render.default-background{background:radial-gradient(circle at 50% 44%,#fffffff5 0 34%,#fffbf3f2 66%,#f8ecda 100%)}.certificate-render.default-background:before{content:"";z-index:-2;background-image:linear-gradient(120deg,#0000 0 46%,#7a4e9906 46% 54%,#0000 54%);background-size:34px 34px;position:absolute;inset:0}.certificate-frame{border:3px solid var(--certificate-accent);pointer-events:none;z-index:5;position:absolute;inset:2.7%;box-shadow:inset 0 0 0 1px #d8bc7a,inset 0 0 0 8px #fffaf0,inset 0 0 0 10px #69409ab8}.certificate-frame i:first-child{border:1px solid #b4934fb3;position:absolute;inset:12px}.certificate-frame i:last-child{border:1px solid #69409a3d;position:absolute;inset:18px}.certificate-corner{aspect-ratio:1;z-index:6;pointer-events:none;width:10.5%;position:absolute}.certificate-corner:before,.certificate-corner:after{content:"";border-style:solid;border-color:#b4934f;position:absolute;inset:0}.certificate-corner:before{border-width:3px 0 0 3px;border-radius:100% 0 0}.certificate-corner:after{opacity:.75;border-width:1px 0 0 1px;border-radius:100% 0 0;inset:11%}.certificate-corner.top-left{top:4%;left:3.6%}.certificate-corner.top-right{top:4%;right:3.6%;transform:rotate(90deg)}.certificate-corner.bottom-right{bottom:4%;right:3.6%;transform:rotate(180deg)}.certificate-corner.bottom-left{bottom:4%;left:3.6%;transform:rotate(270deg)}.certificate-watermark{opacity:.025;filter:grayscale();z-index:-1;border-radius:22%;width:35%;position:absolute;top:50%;left:50%;transform:translate(-50%,-46%)}.certificate-brand{text-align:left;z-index:2;justify-content:center;align-items:center;gap:1.5%;display:flex;position:absolute;top:6.8%;left:7%;right:7%}.certificate-logo-medallion{aspect-ratio:1;background:#fff;border:2px solid #c4a45f;border-radius:22%;place-items:center;width:7.2%;padding:.45%;display:grid;overflow:hidden;box-shadow:0 0 0 4px #69409a17}.certificate-logo-medallion img{object-fit:cover;border-radius:18%;width:100%;height:100%}.certificate-brand strong,.certificate-brand small{display:block}.certificate-brand strong{color:var(--certificate-accent);font-size:clamp(.72rem,1.35vw,1.12rem);line-height:1.15}.certificate-brand small{color:#746981;letter-spacing:.03em;margin-top:2px;font-size:clamp(.48rem,.75vw,.68rem)}.certificate-content{text-align:center;z-index:2;flex-direction:column;align-items:center;display:flex;position:absolute;inset:18% 9% 30%}.certificate-kicker{color:#a17c34;letter-spacing:.28em;margin:0;font-family:ui-serif,Georgia,serif;font-size:clamp(.42rem,.74vw,.68rem);font-weight:700}.certificate-formal-title{color:var(--certificate-accent);margin:.1% 0 0;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,sans-serif;font-size:clamp(2.3rem,5.2vw,4.6rem);font-weight:500;line-height:1}.certificate-ornament{color:#b4934f;align-items:center;gap:8%;width:30%;margin:.6% 0 1.3%;display:flex}.certificate-ornament span{background:linear-gradient(90deg,#0000,currentColor);flex:1;height:1px}.certificate-ornament span:last-child{background:linear-gradient(90deg,currentColor,#0000)}.certificate-ornament i{background:currentColor;width:8px;height:8px;transform:rotate(45deg);box-shadow:0 0 0 3px #fffaf1,0 0 0 4px #b4934f80}.certificate-formal-lead{color:#6f6678;margin:0;font-size:clamp(.58rem,1.1vw,.94rem);line-height:1.2}.certificate-formal-recipient{max-width:95%;color:var(--certificate-ink);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #b4934f99;margin:.5% 0 .4%;padding:0 4% .6%;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,sans-serif;font-weight:500;line-height:1.05;overflow:hidden}.certificate-formal-detail{justify-items:center;gap:0;max-width:92%;font-size:clamp(.53rem,1vw,.86rem);line-height:1.22;display:grid}.certificate-formal-detail p,.certificate-formal-detail strong{margin:0}.certificate-formal-detail strong{color:var(--certificate-accent);font-size:1.18em;font-weight:700}.certificate-signatures{z-index:2;text-align:center;grid-template-columns:1fr 1fr;gap:17%;font-size:clamp(.47rem,.82vw,.72rem);display:grid;position:absolute;bottom:12.7%;left:18%;right:10%}.certificate-signatures>div{justify-items:center;display:grid}.certificate-signatures strong,.certificate-signatures small{line-height:1.15;display:block}.certificate-signatures strong{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:700;overflow:hidden}.certificate-signatures small{color:#756c7c;font-size:.88em}.signature-space{border-bottom:1px solid #2d254099;width:75%;height:clamp(18px,3.2vw,34px);margin-bottom:3px}.certificate-footer{z-index:7;justify-content:space-between;align-items:end;font-size:clamp(.42rem,.68vw,.62rem);display:flex;position:absolute;bottom:5.4%;left:6.4%;right:6.4%}.certificate-footer small,.certificate-footer strong{line-height:1.12;display:block}.certificate-footer small{color:#817889;font-size:.88em}.certificate-footer strong{color:var(--certificate-accent);letter-spacing:.04em}.certificate-verified{text-align:left;background:#ffffffc2;border:1px solid #69409a33;border-radius:7px;align-items:center;gap:6px;padding:4px 7px;display:flex}.certificate-verified>svg{color:#9a7934;width:clamp(12px,1.6vw,18px);height:auto}.certificate-layer{text-align:center;z-index:2;position:absolute;left:7%;right:7%;transform:translateY(-50%)}.certificate-title{color:var(--certificate-accent);font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,sans-serif;font-size:clamp(2rem,5vw,4.6rem);font-weight:500}.certificate-lead{font-size:clamp(.75rem,1.5vw,1.25rem)}.certificate-lead,.certificate-recipient,.certificate-detail,.certificate-signature,.certificate-number{color:var(--certificate-ink)}.certificate-recipient{white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #7c4dbe47;margin:auto;padding-bottom:1%;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,sans-serif;font-weight:500;line-height:1;overflow:hidden}.certificate-detail{gap:2px;font-size:clamp(.68rem,1.35vw,1.1rem);line-height:1.35;display:grid}.certificate-detail strong{font-size:1.12em}.certificate-signature{text-align:center;gap:2px;width:34%;font-size:clamp(.62rem,1.1vw,.95rem);display:grid;position:absolute;top:71%;right:8%}.certificate-signature strong{margin-top:5px}.certificate-signature small{font-size:.85em}.signature-line{border-bottom:1px solid;height:clamp(18px,3vw,32px)}.certificate-number{justify-content:space-between;font-size:clamp(.55rem,.95vw,.8rem);display:flex;position:absolute;left:7%;right:7%;transform:translateY(-50%)}.certificate-render.has-background{background-color:#fff}.certificate-render.portrait.default-background .certificate-brand{top:5.5%}.certificate-render.portrait.default-background .certificate-logo-medallion{width:13%}.certificate-render.portrait.default-background .certificate-content{inset:17% 11% 35%}.certificate-render.portrait.default-background .certificate-formal-recipient{white-space:normal}.certificate-render.portrait.default-background .certificate-signatures{gap:8%;bottom:15%;left:13%;right:13%}.certificate-render.portrait.default-background .certificate-footer{bottom:4.8%}.certificate-render.canva-certificate{isolation:auto;background-color:#f4f0f8;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;container-type:inline-size}.certificate-render.canva-certificate:before{display:none}.certificate-name-only{z-index:2;text-align:center;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 1px #ffffff26;width:max-content;max-width:92%;padding:0 1%;font-family:Chulabhorn Likhit Display,Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-weight:500;line-height:1.15;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.certificate-background-empty{text-align:center;color:#7c6794;background:linear-gradient(135deg,#faf8fc,#f2edf7);border:2px dashed #b9a9cc;border-radius:14px;place-content:center;justify-items:center;gap:5px;display:grid;position:absolute;inset:7%}.certificate-background-empty svg{width:clamp(24px,4cqw,42px);height:auto}.certificate-background-empty strong{font-size:clamp(.65rem,2cqw,1.1rem)}.certificate-background-empty span{color:#8c8098;font-size:clamp(.48rem,1.3cqw,.75rem)}.auth-loading{color:#3b2754;background:#f8f6fb;place-content:center;justify-items:center;gap:14px;min-height:100vh;display:grid}.auth-loading .spinner{border-width:3px;width:30px;height:30px}.mode-badge.production{color:#2f745f;background:#e8f5ef}.file-inspection{color:#675b73;background:#faf8fd;border:1px solid #d7cae5;border-radius:12px;gap:3px;margin-top:12px;padding:12px;font-size:.69rem;display:grid}.file-inspection strong{color:#4f2f75;font-size:.78rem}.file-inspection span,.file-inspection em{display:block}.file-inspection em{color:#9a6528;font-style:normal}.course-manager{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;display:grid}.course-profile-list>div:last-child{gap:8px;display:grid}.course-profile-list>div:last-child>button{text-align:left;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:11px;font-family:inherit;display:grid}.course-profile-list>div:last-child>button.selected{background:#f8f3fd;border-color:#8a63b5}.course-profile-list>div:last-child>button svg{color:#7c4dbe}.course-profile-list strong,.course-profile-list small{display:block}.course-profile-list small{color:var(--muted);font-size:.66rem}.new-course-chip{color:#72499c;text-align:center;background:#f5effc;border-radius:10px;padding:10px;font-size:.7rem}@media (width<=1100px){.course-manager{grid-template-columns:1fr}}.admin-stack{gap:20px;display:grid}.admin-editor-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.admin-editor-grid textarea{font-family:Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;line-height:1.55}.managed-user-list,.source-version-list,.audit-list{gap:8px;display:grid}.managed-user-list article,.source-version-list article{border:1px solid var(--line);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:11px;display:grid}.managed-user-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex!important}.managed-user-actions .mini-btn{align-items:center;gap:4px;display:inline-flex}.managed-user-actions svg{width:14px;height:14px}.heading-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bulk-user-card{background:#fbf9fe;border:1px dashed #cdb9df;border-radius:14px;margin:4px 0 18px;padding:16px}.bulk-example{color:var(--muted);background:#f5f1fb;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;font-size:.7rem;display:flex}.bulk-example code{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;padding:5px 8px}.bulk-user-input{border:1px solid var(--line);resize:vertical;width:100%;font:inherit;border-radius:12px;padding:13px;line-height:1.65}.bulk-results{gap:5px;max-height:220px;margin-top:10px;display:grid;overflow:auto}.bulk-results>div{border-radius:8px;grid-template-columns:80px 1fr;gap:8px;padding:7px 10px;font-size:.68rem;display:grid}.bulk-results .ok{color:#286b57;background:#e8f5ef}.bulk-results .error{color:#a53535;background:#fdeaea}.managed-user-list article>div strong,.managed-user-list article>div span,.source-version-list article>div strong,.source-version-list article>div span{display:block}.managed-user-list article>div span,.source-version-list article>div span{color:var(--muted);font-size:.68rem}.source-version-list article>svg{color:#7c4dbe}.audit-list article{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:9px 0;font-size:.72rem;display:flex}.audit-list article span{color:var(--muted)}@media (width<=780px){.admin-editor-grid{grid-template-columns:1fr}.managed-user-list article,.source-version-list article{grid-template-columns:auto 1fr}.managed-user-list article button,.source-version-list article>.status-badge{grid-column:2}.stage-progress-grid{grid-template-columns:repeat(3,1fr)}.teacher-progress-head{flex-direction:column}.teacher-progress-head em{text-align:left}}.generated-document-editor{resize:vertical;color:#2d2540;background:#fff;border:0;outline:0;width:100%;min-height:620px;padding:28px;font-family:Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:.82rem;line-height:1.7}.generated-document-actions{border-top:1px solid var(--line);background:#faf9fc;justify-content:flex-end;padding:14px;display:flex}.calendar-layout{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;display:grid}.calendar-list{gap:8px;display:grid}.calendar-list>button{text-align:left;border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:11px;font-family:inherit;display:grid}.calendar-list>button.selected{background:#f8f3fd;border-color:#8a63b5}.calendar-list svg{color:#7c4dbe}.calendar-list strong,.calendar-list small{display:block}.calendar-list small{color:var(--muted);margin-top:2px;font-size:.66rem}.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.subsection-title{border-top:1px solid var(--line);margin:22px 0 10px;padding-top:18px}.subsection-title h4,.subsection-title p{margin:0}.subsection-title p{color:var(--muted);font-size:.7rem}.holiday-add-row,.slot-add{grid-template-columns:130px minmax(150px,1fr) 170px auto;align-items:end;gap:10px;display:grid}.icon-action{white-space:nowrap;height:42px}.holiday-list{gap:7px;margin:14px 0;display:grid}.holiday-list>div:not(.empty-inline){border:1px solid var(--line);border-radius:10px;grid-template-columns:150px 120px 1fr auto;align-items:center;gap:10px;padding:9px 10px;font-size:.72rem;display:grid}.holiday-list button,.slot-chips button{color:#9f4d56;cursor:pointer;background:0 0;border:0;padding:2px}.holiday-list button svg,.slot-chips button svg{width:15px;height:15px}.holiday-type{text-align:center;color:#6a438f;background:#f1ecf7;border-radius:999px;padding:4px 8px;font-size:.62rem}.holiday-type.religious{color:#2d7157;background:#eaf6ef}.holiday-type.school{color:#8a6121;background:#fff3dc}.holiday-type.exam{color:#315f9b;background:#eaf1ff}.empty-inline{color:var(--muted);text-align:center;border:1px dashed #d7cae5;border-radius:10px;padding:16px;font-size:.7rem}.bulk-import{border:1px solid var(--line);background:#faf8fd;border-radius:12px;margin:12px 0;padding:12px}.bulk-import summary{cursor:pointer;color:#68438e;font-weight:700}.bulk-import p{color:var(--muted);font-size:.68rem}.bulk-import textarea{border:1px solid var(--line);resize:vertical;border-radius:9px;width:100%;margin-bottom:8px;padding:10px;font-family:inherit}.save-message{color:#2f745f;background:#e8f5ef;border:1px solid #bfe1d2;border-radius:11px;margin:12px 0;padding:11px 13px;font-size:.72rem}.syllabus-page{gap:20px;display:grid}.syllabus-hero{justify-content:space-between;align-items:center;min-height:190px;display:flex}.syllabus-hero .pill svg{width:16px}.syllabus-hero-metric{text-align:center;border-left:1px solid #ffffff40;min-width:170px;padding-left:30px}.syllabus-hero-metric strong{font-size:3rem;line-height:1;display:block}.syllabus-hero-metric span{opacity:.8;font-size:.72rem}.syllabus-workspace{grid-template-columns:390px minmax(0,1fr);align-items:start;gap:20px;display:grid}.syllabus-controls{position:sticky;top:88px}.section-gap{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;display:block}.warning-box,.calendar-summary{border-radius:10px;align-items:center;gap:9px;margin-top:10px;padding:10px;font-size:.7rem;display:flex}.warning-box{color:#8a6121;background:#fff7e6;border:1px solid #ecd8a6}.calendar-summary{color:#2f745f;background:#edf8f2;border:1px solid #c6e7d6}.calendar-summary strong,.calendar-summary span{display:block}.calendar-summary span{opacity:.8;font-size:.64rem}.warning-box svg,.calendar-summary svg{flex:none;width:18px}.slot-add{grid-template-columns:100px 1fr 90px auto}.slot-chips{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.slot-chips>span{color:#68438e;background:#faf7fe;border:1px solid #d7cae5;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:.64rem;display:flex}.capacity-note{color:var(--muted);background:#f5f2f8;border-radius:9px;padding:9px;font-size:.68rem}.field-help{color:var(--muted);margin:7px 0;font-size:.67rem}.plan-import{border:1px solid var(--line);resize:vertical;border-radius:10px;width:100%;padding:10px;font-family:inherit;font-size:.7rem;line-height:1.5}.syllabus-controls .full-btn{margin-top:8px}.syllabus-result{min-width:0}.syllabus-table-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto}.syllabus-table{border-collapse:collapse;width:100%;min-width:1000px;font-size:.67rem}.syllabus-table th{color:#50326f;text-align:center;background:#f1ebf7;border:1px solid #d8cce4;padding:9px;position:sticky;top:0}.syllabus-table td{vertical-align:top;border:1px solid #e5deeb;padding:8px}.syllabus-table td:first-child,.syllabus-table td:nth-child(3),.syllabus-table td:nth-child(7){text-align:center}.syllabus-table td span,.syllabus-table td small{color:var(--muted);font-size:.61rem;display:block}@media (width<=1320px){.calendar-layout,.syllabus-workspace{grid-template-columns:1fr}.syllabus-controls{position:static}.compact-grid{grid-template-columns:1fr 1fr!important}}@media (width<=720px){.holiday-add-row,.slot-add,.compact-grid{grid-template-columns:1fr!important}.holiday-list>div:not(.empty-inline){grid-template-columns:1fr auto}.holiday-list>div:not(.empty-inline) span:last-of-type{grid-column:1/-1}.syllabus-hero{flex-direction:column;align-items:flex-start}.syllabus-hero-metric{text-align:left;border-top:1px solid #ffffff40;border-left:0;min-width:0;padding:18px 0 0}}@media (width<=1100px){.certificate-admin-layout,.certificate-record-layout{grid-template-columns:1fr}.certificate-template-form{grid-row:auto}.certificate-version-list{grid-column:1}.certificate-template-form{order:1}.certificate-preview-panel{order:2}.certificate-version-list{order:3}}@media (width<=780px){.certificate-render{width:calc(100% - 24px);min-width:620px}.certificate-preview-panel{overflow:auto}.certificate-template-form .form-grid{grid-template-columns:1fr}.certificate-actions{justify-content:stretch;display:grid}.approval-queue article{flex-direction:column;align-items:stretch}}.stage-progress-item.passed{box-shadow:inset 0 0 0 1px #ffffff73;background:#d9c2eb!important;border:2px solid #75419f!important}.stage-progress-item.passed strong,.stage-progress-item.passed span,.stage-progress-item.passed small{font-weight:800;color:#42205f!important}.stage-progress-item.needs_revision{box-shadow:inset 0 0 0 1px #fff6;background:#f3b8bb!important;border:2px solid #be2f36!important}.stage-progress-item.needs_revision strong,.stage-progress-item.needs_revision span,.stage-progress-item.needs_revision small{font-weight:800;color:#75151a!important}.stage-progress-item.not_started{background:#e2e5e9!important;border:2px solid #aeb3ba!important}.stage-progress-item.not_started strong,.stage-progress-item.not_started span{font-weight:700;color:#505861!important}.stage-progress-item.checking{background:#f4d795!important;border:2px solid #c18316!important}.stage-progress-item.checking strong,.stage-progress-item.checking span,.stage-progress-item.checking small{font-weight:800;color:#6f4908!important}.progress-card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:4px;display:grid}.progress-card{background:#fff;border:2px solid #e2dbe9;border-radius:16px;padding:16px 18px}.progress-card.complete{background:#f6f0fc;border-color:#75419f}.progress-card-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.progress-card-head .avatar{flex-shrink:0}.progress-card-head>div{flex:1;min-width:0}.progress-card-head strong{color:#42205f;font-size:.88rem;display:block}.progress-card-head span{color:var(--muted);margin-top:2px;font-size:.72rem;display:block}.progress-card-head em{flex-shrink:0}.progress-card-bar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.progress-card-bar>span{background:#e9e2f0;border-radius:99px;flex:1;height:8px;overflow:hidden}.progress-card-bar>span>span{border-radius:inherit;background:linear-gradient(90deg,#8c5eb0,#c18cdb);height:100%;transition:width .3s;display:block}.progress-card-bar small{color:#7b5796;text-align:right;flex-shrink:0;min-width:30px;font-size:.72rem;font-weight:700}.progress-card-stages{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:5px;display:grid}.progress-stage-dot{text-align:center;background:#e2e5e9;border:2px solid #aeb3ba;border-radius:8px;place-items:center;padding:6px 2px;display:grid}.progress-stage-dot span{color:#505861;font-size:.68rem;font-weight:800}.progress-stage-dot.passed,.progress-stage-dot.certified{background:#d9c2eb;border-color:#75419f}.progress-stage-dot.passed span,.progress-stage-dot.certified span{color:#42205f}.progress-stage-dot.needs_revision{background:#f3b8bb;border-color:#be2f36}.progress-stage-dot.needs_revision span{color:#75151a}.progress-stage-dot.checking{background:#f4d795;border-color:#c18316}.progress-stage-dot.checking span{color:#6f4908}@media (width<=600px){.progress-card-grid{grid-template-columns:1fr}}.director-stage-strip button{color:#505861;text-align:center;cursor:pointer;background:#e2e5e9;border:2px solid #aeb3ba;border-radius:9px;min-width:0;padding:9px 4px;font-family:inherit;transition:all .15s}.director-stage-strip button strong,.director-stage-strip button small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.director-stage-strip button strong{font-size:.72rem}.director-stage-strip button small{margin-top:3px;font-size:.52rem;font-weight:700}.director-stage-strip button:hover,.director-stage-strip button.active{outline-offset:2px;outline:3px solid #382050;transform:translateY(-1px)}.director-stage-strip button.passed{color:#42205f;background:#d9c2eb;border-color:#75419f;font-weight:800}.director-stage-strip button.needs_revision{color:#75151a;background:#f3b8bb;border-color:#be2f36;font-weight:800}.director-stage-strip button.not_started{color:#505861;background:#e2e5e9;border-color:#aeb3ba}.director-stage-strip button.checking{color:#6f4908;background:#f4d795;border-color:#c18316}.director-empty-selection{text-align:center;color:var(--muted);background:#fff;border:1px dashed #d9cde3;border-radius:12px;margin-top:12px;padding:16px;font-size:.72rem}.director-empty-selection.unsent{color:#716978;background:#f7f6f8;border-color:#cfc8d5;justify-items:center;gap:4px;display:grid}.director-empty-selection.unsent svg{width:22px}.director-empty-selection.unsent strong,.director-empty-selection.unsent span{display:block}.director-selected-submission{margin-top:12px}.structure-unit-entry{background:#fff;border:1px dashed #cdb9df;border-radius:12px;margin-top:12px;padding:12px}.structure-unit-entry summary{cursor:pointer;color:#633887;font-size:.74rem;font-weight:800}.structure-unit-entry[open] summary{margin-bottom:12px}.structure-unit-entry .prompt-task-grid{grid-template-columns:2fr 1fr;margin-bottom:10px}.structure-unit-entry .secondary-btn{width:100%}.structure-unit-choices{gap:7px;margin-top:10px;display:grid}.structure-unit-choices button{color:#53316f;text-align:left;cursor:pointer;background:#fff;border:1px solid #d9cbe5;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 11px;font-family:inherit;display:flex}.structure-unit-choices button span{color:#786b82;white-space:nowrap;font-size:.68rem}.structure-unit-choices button.selected{background:#eadcf5;border-color:#7a48a2;box-shadow:0 0 0 2px #7a48a21f}.submission-row{background:#f3f4f6;border:2px solid #aeb3ba;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:13px;padding:14px;display:grid}.submission-row.passed{background:#eee5f6;border-color:#75419f}.submission-row.needs_revision{background:#fde7e8!important;border-color:#be2f36!important}.submission-row.checking{background:#fff2cf;border-color:#c18316}.submission-state{color:#505861;background:#d9dde1;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.submission-state.passed{color:#fff;background:#75419f}.submission-state.needs_revision{color:#fff;background:#be2f36}.submission-state.checking{color:#fff;background:#d09223}.submission-state .spinner{border-color:#fff #ffffff59 #ffffff59;width:16px;height:16px}.submission-stage-heading{gap:3px;margin-bottom:13px;display:grid}.submission-stage-heading>strong{color:#42205f;font-size:.88rem;line-height:1.45}.submission-stage-heading>span{color:#6f4291;font-size:.7rem;font-weight:700}.submission-stage-heading>p{color:#54495d;background:#ffffffa6;border-left:3px solid #8b5caf;border-radius:0 8px 8px 0;margin:5px 0 0;padding:8px 10px;font-size:.68rem;line-height:1.55}.submission-stage-heading>p b{color:#42205f}.submission-main>h4{margin:0 0 5px}.submission-main>small{color:#716978}.status-badge.passed{border:1px solid #75419f;color:#42205f!important;background:#d9c2eb!important}.status-badge.needs_revision{border:1px solid #be2f36;color:#75151a!important;background:#f3b8bb!important}.status-badge.checking{color:#6f4908;background:#f4d795;border:1px solid #c18316}.status-badge.not_started{color:#505861;background:#e2e5e9;border:1px solid #aeb3ba}.submit-grid{grid-template-columns:1fr 1fr;gap:24px;margin-top:8px;display:grid}.submit-grid>div:first-child{align-content:start;gap:18px;display:grid}.submit-file-section{border-top:1px solid var(--line);padding-top:18px}.submit-file-section>.overline{margin-bottom:10px}.submit-grid .upload-zone{margin-top:0}.submit-grid .field>label{color:#4c3860;margin-bottom:2px;font-size:.78rem;font-weight:800}.submission-text{min-height:380px;font-family:Chulabhorn Likhit Text,Noto Sans Thai,sans-serif;font-size:.8rem;line-height:1.65}.review-notes{background:#fdf5f5;border-left:3px solid #c97979;border-radius:0 10px 10px 0;margin-top:10px;padding:10px 12px;font-size:.72rem;line-height:1.6}.review-notes strong{color:#8f3030;margin-bottom:4px;font-size:.7rem;display:block}.review-notes p{color:#5b3a3a;margin:2px 0}.submission-row.passed .review-notes{background:#f8f3fd;border-left-color:#75419f}.submission-row.passed .review-notes strong{color:#42205f}.submission-row.passed .review-notes p{color:#4c3060}.academic-note{color:#553180;background:#f5effc;border-radius:9px;margin:8px 0 0;padding:8px 10px;font-size:.7rem;font-weight:600}.review-download-hint{color:#a73333;background:#fff0f0;border-radius:9px;margin-top:9px;padding:8px 10px;font-size:.68rem;font-weight:700}@media (width>=1101px){.row-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px;margin-top:4px;display:flex}}.row-actions .review-report-btn{color:#fff;background:#b63b3b;border-color:#b63b3b;font-weight:800}.director-group-tools{align-items:center;gap:10px;display:flex}.delete-subject-btn{color:#8f1820;cursor:pointer;background:#fff;border:1px solid #a9232b;border-radius:9px;align-items:center;gap:6px;padding:8px 10px;font:700 .66rem inherit;display:inline-flex}.delete-subject-btn svg{width:15px;height:15px}.delete-subject-btn:hover{color:#fff;background:#a9232b}.row-actions .delete-stage-btn{color:#8f1820;background:#fff1f2;border-color:#a9232b;font-weight:800}.row-actions .delete-stage-btn:hover{color:#fff;background:#a9232b}.quota-saving-notice{color:#55317f;background:#f5effc;border:1px solid #d8c8ef;border-radius:11px;align-items:flex-start;gap:9px;padding:11px 13px;font-size:.7rem;line-height:1.55;display:flex}.quota-saving-notice svg{flex:none;width:18px}.quota-saving-notice strong,.quota-saving-notice span{display:block}.ai-feature-control{border-width:2px}.ai-feature-control.enabled{background:#f5fcf9;border-color:#8cc9b2}.ai-feature-control.disabled{background:#fbf9fe;border-color:#d8c8ef}.ai-feature-control-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding-top:15px;display:flex}.ai-feature-control-row strong,.ai-feature-control-row span{display:block}.ai-feature-control-row span{color:var(--muted);margin-top:4px;font-size:.72rem}.danger-toggle{color:#8f1820!important;border-color:#a9232b!important}@media print{@page{size:auto;margin:0}body *{visibility:hidden!important}.certificate-render,.certificate-render *{visibility:visible!important}.certificate-render{-webkit-print-color-adjust:exact;print-color-adjust:exact;position:fixed;inset:0;width:297mm!important;max-width:none!important;height:210mm!important;box-shadow:none!important;margin:0!important}.certificate-render.portrait{width:210mm!important;height:297mm!important}}.toast-stack{z-index:60;pointer-events:none;gap:10px;width:min(380px,100vw - 36px);display:grid;position:fixed;top:18px;right:18px}.toast{pointer-events:auto;border:1px solid var(--line);background:#fff;border-left-width:5px;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:start;gap:11px;padding:14px 14px 14px 15px;animation:.22s ease-out toast-in;display:grid;box-shadow:0 12px 32px #140c2229}.toast>svg{width:20px;height:20px;margin-top:1px}.toast strong{font-size:.82rem;line-height:1.35;display:block}.toast span{color:var(--muted);margin-top:3px;font-size:.72rem;line-height:1.5;display:block}.toast.success{border-left-color:#2c8a6b}.toast.success>svg{color:#2c8a6b}.toast.error{border-left-color:#b94e4e}.toast.error>svg{color:#b94e4e}.toast.info{border-left-color:#6a4597}.toast.info>svg{color:#6a4597}.toast-close{color:#9aa4a1;cursor:pointer;background:0 0;border:0;padding:2px;line-height:0}.toast-close:hover{color:var(--ink)}.toast-close svg{width:15px;height:15px}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.toast-stack{width:auto;top:12px;left:12px;right:12px}}.top-user{background:#f4f1f9;border:1px solid #e4dcf0;border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;display:flex}.top-user-text{min-width:0;line-height:1.25;display:grid}.top-user-text strong{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:190px;font-size:.78rem;overflow:hidden}.top-user-text span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:190px;font-size:.66rem;overflow:hidden}.top-role{white-space:nowrap;color:#5b3391;background:#e9e2f5;border-radius:999px;padding:3px 9px;font-size:.62rem;font-weight:800}.top-role.teacher{color:#2c7d61;background:#e3f3eb}.top-role.academic{color:#2f5ea8;background:#e6eefb}.top-role.director{color:#8a6216;background:#fdf0d9}.top-role.admin{color:#7a3f9d;background:#f0e4f7}.top-logout{color:#a94747;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #edd3d3;border-radius:11px;align-items:center;gap:7px;padding:9px 15px;font-family:inherit;font-size:.76rem;font-weight:700;transition:all .18s;display:inline-flex}.top-logout:hover{color:#fff;background:#a94747;border-color:#a94747}.sidebar{overflow:hidden}.main-nav{scrollbar-width:thin;flex:1;min-height:0;padding-bottom:10px;padding-right:4px;overflow-y:auto}.main-nav::-webkit-scrollbar{width:6px}.main-nav::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:3px}.sidebar-footer{border-top:1px solid #ffffff24;flex-shrink:0;padding-top:12px}@media (width<=1100px){.top-user-text,.top-logout span{display:none}.top-logout{padding:9px 11px}}@media (width<=780px){.topbar{gap:10px}.topbar>div:nth-child(2){flex:1;min-width:0}.topbar h1,.topbar p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-role{display:none}.top-user{gap:0;padding:4px}.submission-row{grid-template-columns:auto 1fr}.submission-main{grid-column:1/-1}.submission-score{grid-column:1/-1;align-items:baseline;gap:6px;display:flex}.row-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}}.role-teacher{background:linear-gradient(#f8f5fb 0,#f4f0f8 100%)}.role-teacher .simple-hero h2{font-size:clamp(2.35rem,4.2vw,4rem)}.role-teacher .section-heading{border-bottom:1px solid #eee6f4;padding-bottom:15px}.role-teacher .section-heading h3{color:#39204f;font-size:1.18rem}.role-teacher .section-heading p{margin-top:5px;line-height:1.65}.role-teacher .metric-card{background:linear-gradient(145deg,#fff,#fbf8fd);border-color:#e8dfef}.role-teacher .metric-icon{border:1px solid #5c308714}.role-teacher .prompt-preview{border:1px solid #d9cce5;box-shadow:0 16px 45px #26113a24}.role-teacher .preview-toolbar{background:linear-gradient(90deg,#261633,#3d2352);border-bottom-color:#ffffff14}.role-teacher .lookup-header{background:linear-gradient(135deg,#fff,#fbf7fe);border-top:4px solid #7950a4}.role-teacher .upload-zone{background:linear-gradient(145deg,#fcf9ff,#f4eef9);border:2px dashed #b99dce}.role-teacher .upload-zone:hover{background:#f3e9fb;border-color:#7544a2}.role-teacher .course-profile-list{border-top:4px solid #7950a4}.role-teacher .form-card{border-top:4px solid #9a70bd}.role-teacher .status-badge{font-weight:800}.role-teacher .main-nav button.active{background:linear-gradient(90deg,#ffffff29,#ffffff12);box-shadow:inset 3px 0 #d9bdf2}@media (width<=900px){.teacher-hero{min-height:auto;display:block}.teacher-hero-emblem{display:none}.teacher-hero-content{width:100%}}@media (width<=780px){.topbar-school-mark{border-radius:11px;width:36px;height:36px}.topbar-identity{gap:9px}.topbar-identity p span{display:none}.topbar-identity p strong{text-overflow:ellipsis;white-space:nowrap;max-width:190px;overflow:hidden}.role-teacher .page-wrap{padding:16px}.teacher-hero{border-radius:22px;padding:25px 22px}.institution-line{margin-bottom:20px}.institution-line>span{width:43px;height:43px}.role-teacher .simple-hero h2{font-size:2.25rem;line-height:1.16}.teacher-action-grid .action-card{min-height:0}}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#180c2899;place-items:center;padding:24px;animation:.18s ease-out modal-fade-in;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:20px;width:min(520px,100%);max-height:calc(100dvh - 48px);padding:0 26px 22px;animation:.22s ease-out modal-slide-up;overflow-y:auto;box-shadow:0 24px 70px #180c2859}.modal-header{color:#fff;z-index:1;background:linear-gradient(135deg,#42205f,#7a48a2);border-radius:20px 20px 0 0;align-items:center;gap:14px;margin:0 -26px 20px;padding:20px 22px;display:flex;position:sticky;top:0}.modal-icon{background:#ffffff29;border-radius:13px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid;box-shadow:inset 0 0 0 1px #ffffff38}.modal-icon svg{width:21px;height:21px}.modal-header>div{flex:1;min-width:0}.modal-header h3{color:#fff;margin:0;font-size:1.05rem}.modal-header p{color:#ffffffbf;margin:4px 0 0;font-size:.72rem;line-height:1.5}.modal-header .icon-btn{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;transition:all .15s;display:grid}.modal-header .icon-btn:hover{background:#ffffff47}.modal-header .icon-btn svg{width:17px;height:17px}.modal-card .form-grid{margin-bottom:14px}.modal-card .form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;display:flex}.modal-card .template-notice{margin-top:10px}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.upload-zone,.certificate-background-upload{position:relative;overflow:hidden}.upload-zone input[type=file],.certificate-background-upload input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;font-size:0;position:absolute;inset:0}.upload-zone{text-align:center;color:#5d3f80;cursor:pointer;border-radius:16px;place-content:center;justify-items:center;gap:6px;min-height:150px;padding:22px;transition:all .18s;display:grid}.upload-zone>svg{color:#7544a2;width:30px;height:30px}.upload-zone>strong{color:#3f2560;word-break:break-word;max-width:100%;font-size:.86rem}.upload-zone>span{color:#7c6a90;font-size:.72rem;line-height:1.5}.main-nav{padding-bottom:22px;-webkit-mask-image:linear-gradient(#000 calc(100% - 26px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 26px),#0000 100%)}.sidebar-footer{margin-top:4px}.toast-stack{top:104px}@media (width<=780px){.toast-stack{top:88px}}.studio-layout .studio-controls,.document-layout .document-controls{position:sticky;top:104px;overflow:visible}@media (width<=1100px){.studio-layout .studio-controls,.document-layout .document-controls{position:static;top:auto}}
