@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/sarabun-thai-400-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/sarabun-latin-400-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/sarabun-thai-500-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/sarabun-latin-500-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sarabun;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/sarabun-thai-600-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/sarabun-latin-600-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Sarabun;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/sarabun-thai-700-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/sarabun-latin-700-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--c-navy:#0e2a5c;--c-navy-2:#14347a;--c-blue:#1b3f8f;--c-blue-soft:#eef2fb;--c-yellow:#f6c431;--c-yellow-soft:#fef6d8;--c-bg:#f4f6fb;--c-card:#fff;--c-line:#e2e8f0;--c-line-soft:#eef2f7;--c-line-strong:#cbd5e1;--c-text:#0f172a;--c-text-2:#475569;--c-text-3:#64748b;--c-text-body:#334155;--c-muted-bg:#f8fafc;--c-disabled:#94a3b8;--c-nav-text:#dce5f7;--c-nav-sub:#b7c6e6;--c-nav-icon:#9fb3dd;--c-nav-header:#8fa4d3;--c-ok-bg:#e6f6f4;--c-ok:#0f766e;--c-warn-bg:#fef3e2;--c-warn:#92400e;--c-info-bg:#eaf0fe;--c-info:#1d4ed8;--c-leave-bg:#f3e8ff;--c-leave:#6b21a8;--c-danger-bg:#fdecec;--c-danger:#b91c1c;--c-mute-bg:#f1f5f9;--c-mute:#475569;--c-pending-bg:#fef6d8;--c-pending:#5c4400;--c-error-field-bg:#fff8f8;--font:"Sarabun", "TH Sarabun New", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, Menlo, monospace;--fs-xs:13px;--fs-sm:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-h3:17px;--fs-h2:20px;--fs-page:26px;--fs-page-m:20px;--lh:1.55;--h-control:48px;--h-control-sm:44px;--h-control-lg:56px;--radius-sm:10px;--radius:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:99px;--focus-ring:0 0 0 3px var(--c-yellow);--shadow-card:0 1px 2px rgba(15,23,42,.04);--shadow-pop:0 10px 30px rgba(14,42,92,.08);--shadow-modal:0 24px 60px rgba(15,23,42,.35);--shadow-toast:0 12px 32px rgba(15,23,42,.35);--backdrop:rgba(15,23,42,.55);--sidebar-w:264px;--tabs-h:76px;--topnav-h:72px;--content-max:1280px;--gutter:32px;--gutter-m:16px;--safe-bottom:env(safe-area-inset-bottom, 0px);--z-sticky:20;--z-nav:40;--z-modal:90;--z-toast:100}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-md);line-height:var(--lh);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}body,h1,h2,h3,h4,p{margin:0}h1{font-size:var(--fs-page);line-height:1.3}h1,h2{font-weight:700}h2{font-size:var(--fs-h2);line-height:1.35}h3{font-size:var(--fs-h3);font-weight:700;line-height:1.4}@media(max-width:860px){h1{font-size:var(--fs-page-m)}}a{color:var(--c-blue);text-decoration:none}a:hover{color:var(--c-navy)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[aria-disabled=true],button:disabled{cursor:not-allowed}img,svg{display:block;max-width:100%}:focus{outline:none}:focus-visible{outline:3px solid var(--c-yellow);outline-offset:2px}::-moz-selection{background:var(--c-yellow-soft)}::selection{background:var(--c-yellow-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.u-muted{color:var(--c-text-2)}.u-hint{color:var(--c-text-3);font-size:var(--fs-xs)}.u-num{font-variant-numeric:tabular-nums}.u-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.u-stack{display:flex;flex-direction:column;gap:16px}.u-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.u-grid-2,.u-grid-3{display:grid;gap:16px}.u-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:899px){.u-grid-2,.u-grid-3{grid-template-columns:minmax(0,1fr)}}@media(max-width:860px){.only-pc{display:none!important}}@media(min-width:861px){.only-mobile{display:none!important}}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:24px var(--gutter) 40px;display:flex;flex-direction:column;gap:20px}@media(max-width:860px){.page{padding:16px var(--gutter-m) 24px;gap:16px}}@keyframes sww-spin{to{transform:rotate(1turn)}}@keyframes sww-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--font-doc:var(--font)}@page{size:A4 landscape;margin:10mm 10mm 12mm}@page portrait{size:A4 portrait}.print-only{display:none!important}@media print{body,html{background:#fff!important;color:#000;font-size:11pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-only{display:block!important}.app-mobile-header,.app-mobile-tabs,.app-sidebar,.app-topnav,.no-print,.ui-modal,.ui-toast-host{display:none!important}.shell-main,.shell-staff,.shell-student{display:block!important;min-height:0!important;padding:0!important;margin:0!important}.page{max-width:none!important;padding:0!important}.print-page{-moz-column-break-after:page;break-after:page;page-break-after:always;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.print-page:last-child{-moz-column-break-after:auto;break-after:auto;page-break-after:auto}.print-portrait{page:portrait}table{border-collapse:collapse;width:100%}td,th,tr{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}thead{display:table-header-group}a{color:inherit;text-decoration:none}}.ui-icon[data-v-031ce3d7]{flex-shrink:0}.ui-toast-host[data-v-6a47b192]{position:fixed;left:16px;right:16px;bottom:calc(20px + var(--safe-bottom));z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}body.has-mobile-tabs{bottom:calc(var(--tabs-h) + 12px + var(--safe-bottom))}@media(min-width:861px){body.has-mobile-tabs{bottom:calc(20px + var(--safe-bottom))}}@media(max-width:600px){body.has-modal{top:calc(10px + env(safe-area-inset-top,0px));bottom:auto}}.toast[data-v-6a47b192]{pointer-events:auto;width:100%;max-width:560px;gap:12px;padding:12px 12px 12px 16px;border-radius:14px;background:var(--c-navy);color:#fff;box-shadow:var(--shadow-toast);font-size:var(--fs-md);line-height:1.5}.ico[data-v-6a47b192],.toast[data-v-6a47b192]{display:flex;align-items:center}.ico[data-v-6a47b192]{width:28px;height:28px;flex-shrink:0;border-radius:99px;background:var(--c-yellow);color:var(--c-navy);justify-content:center}.t-error .ico[data-v-6a47b192]{background:#fca5a5;color:#7f1d1d}.txt[data-v-6a47b192]{flex:1;min-width:0}.btn[data-v-6a47b192]{min-height:40px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:var(--c-navy-2);color:#fff;font-size:var(--fs-sm);font-weight:700;flex-shrink:0}.btn.undo[data-v-6a47b192]{background:var(--c-yellow);color:var(--c-navy)}.toast-enter-active[data-v-6a47b192],.toast-leave-active[data-v-6a47b192]{transition:opacity .2s,transform .2s}.toast-enter-from[data-v-6a47b192],.toast-leave-to[data-v-6a47b192]{opacity:0;transform:translateY(12px)}.impact[data-v-8ce0094d]{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--radius);background:var(--c-muted-bg);border:1px solid var(--c-line)}.label[data-v-8ce0094d]{font-size:var(--fs-md);font-weight:700}ul[data-v-8ce0094d]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}li[data-v-8ce0094d],ul li[data-v-8ce0094d-s]{display:flex;gap:10px;font-size:var(--fs-md);line-height:1.55;color:var(--c-text-body)}.tick[data-v-8ce0094d]{color:var(--c-ok);margin-top:3px}.note[data-v-01e42328]{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius);font-size:var(--fs-md);line-height:1.55}.ico[data-v-01e42328]{margin-top:2px}.txt[data-v-01e42328]{flex:1;min-width:0}.t-info[data-v-01e42328]{background:var(--c-info-bg);color:#1e3a8a}.t-info .ico[data-v-01e42328]{color:var(--c-info)}.t-warn[data-v-01e42328]{background:var(--c-warn-bg);color:#7c2d12}.t-warn .ico[data-v-01e42328]{color:var(--c-warn)}.t-ok[data-v-01e42328]{background:var(--c-ok-bg);color:#134e4a}.t-ok .ico[data-v-01e42328]{color:var(--c-ok)}.t-danger[data-v-01e42328]{background:var(--c-danger-bg);color:#7f1d1d}.t-danger .ico[data-v-01e42328]{color:var(--c-danger)}.ui-spinner[data-v-6aff362a]{display:inline-block;flex-shrink:0;border-radius:99px;border:3px solid hsla(0,0%,100%,.35);border-top-color:#fff;animation:sww-spin .8s linear infinite}.ui-spinner.is-dark[data-v-6aff362a]{border-color:#0e2a5c2e;border-top-color:var(--c-blue)}.ui-btn[data-v-ab6e9b93]{justify-content:center;gap:8px;min-height:var(--h-control);padding:0 20px;border:1.5px solid transparent;border-radius:var(--radius);font-size:var(--fs-lg);font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s,opacity .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ui-btn[data-v-ab6e9b93],.ui-btn .label[data-v-ab6e9b93]{display:inline-flex;align-items:center}.ui-btn.block[data-v-ab6e9b93]{display:flex;width:100%}.ui-btn.s-sm[data-v-ab6e9b93]{min-height:var(--h-control-sm);padding:0 14px;font-size:var(--fs-md);border-radius:var(--radius-sm)}.ui-btn.s-lg[data-v-ab6e9b93]{min-height:var(--h-control-lg);padding:0 24px;font-size:var(--fs-xl);border-radius:14px}.v-primary[data-v-ab6e9b93]{background:var(--c-blue);color:#fff}.v-primary[data-v-ab6e9b93]:hover{background:var(--c-navy);color:#fff}.v-secondary[data-v-ab6e9b93]{background:#fff;color:var(--c-text);border-color:var(--c-line-strong);font-weight:600}.v-secondary[data-v-ab6e9b93]:hover{border-color:var(--c-blue);color:var(--c-blue)}.v-ok[data-v-ab6e9b93]{background:var(--c-ok);color:#fff}.v-ok[data-v-ab6e9b93]:hover{background:#0b5e58;color:#fff}.v-danger[data-v-ab6e9b93]{background:#fff;color:var(--c-danger);border-color:var(--c-danger)}.v-danger[data-v-ab6e9b93]:hover{background:var(--c-danger-bg);color:var(--c-danger)}.v-warn[data-v-ab6e9b93]{background:#fff;color:var(--c-warn);border-color:#d97706}.v-warn[data-v-ab6e9b93]:hover{background:var(--c-warn-bg);color:var(--c-warn)}.v-accent[data-v-ab6e9b93]{background:var(--c-yellow);color:var(--c-navy)}.v-accent[data-v-ab6e9b93]:hover{background:#edb817;color:var(--c-navy)}.v-ghost[data-v-ab6e9b93]{background:transparent;color:var(--c-blue);font-weight:600;padding:0 10px}.v-ghost[data-v-ab6e9b93]:hover{background:var(--c-blue-soft);color:var(--c-navy)}.ui-btn[data-v-ab6e9b93]:disabled,.ui-btn[aria-disabled=true][data-v-ab6e9b93]{opacity:.55}.ui-btn.is-loading[data-v-ab6e9b93]{opacity:.85;cursor:progress}.ui-modal[data-v-2fc6351a]{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:24px;font-family:var(--font);color:var(--c-text)}.backdrop[data-v-2fc6351a]{position:absolute;inset:0;border:0;padding:0;background:var(--backdrop);cursor:default}.sheet[data-v-2fc6351a]{position:relative;width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);overflow:hidden;animation:md-in-2fc6351a .18s ease-out}.grip[data-v-2fc6351a]{display:none;padding-top:10px}.grip span[data-v-2fc6351a]{display:block;width:44px;height:5px;border-radius:99px;background:var(--c-line-strong);margin:0 auto}.pad[data-v-2fc6351a]{padding-left:24px;padding-right:24px}.md-head[data-v-2fc6351a]{display:flex;align-items:flex-start;gap:14px;padding-top:20px;padding-bottom:14px}.ico[data-v-2fc6351a]{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.ico.t-primary[data-v-2fc6351a]{background:var(--c-yellow-soft);color:var(--c-navy)}.ico.t-ok[data-v-2fc6351a]{background:var(--c-ok-bg);color:var(--c-ok)}.ico.t-danger[data-v-2fc6351a]{background:var(--c-danger-bg);color:var(--c-danger)}.ico.t-warn[data-v-2fc6351a]{background:var(--c-warn-bg);color:var(--c-warn)}.ico.t-info[data-v-2fc6351a]{background:var(--c-info-bg);color:var(--c-info)}.titles[data-v-2fc6351a]{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.titles h2[data-v-2fc6351a]{font-size:var(--fs-h2);line-height:1.35}.titles p[data-v-2fc6351a]{font-size:var(--fs-md);line-height:1.55;color:var(--c-text-2)}.md-close[data-v-2fc6351a]{width:44px;height:44px;flex-shrink:0;margin:-6px -10px 0 0;border:0;border-radius:var(--radius-sm);background:var(--c-mute-bg);color:var(--c-text-body);display:flex;align-items:center;justify-content:center}.md-body[data-v-2fc6351a]{flex:1 1 auto;overflow-y:auto;padding-top:18px;padding-bottom:20px;flex-direction:column;gap:18px}.md-body[data-v-2fc6351a],.md-foot[data-v-2fc6351a]{display:flex;border-top:1px solid var(--c-line-soft)}.md-foot[data-v-2fc6351a]{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:14px;padding-bottom:18px;background:#fff}.ok-danger[data-v-2fc6351a]{background:var(--c-danger)!important;border-color:var(--c-danger)!important}.ok-danger[data-v-2fc6351a],.ok-ok[data-v-2fc6351a]{color:#fff!important}.ok-ok[data-v-2fc6351a]{background:var(--c-ok)!important;border-color:var(--c-ok)!important}@media(max-width:600px){.ui-modal[data-v-2fc6351a]{align-items:flex-end;padding:0}.sheet[data-v-2fc6351a]{max-width:none!important;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:92vh;animation:md-up-2fc6351a .22s ease-out}.grip[data-v-2fc6351a]{display:block}.pad[data-v-2fc6351a]{padding-left:18px;padding-right:18px}.md-foot[data-v-2fc6351a]{flex-wrap:nowrap;padding-bottom:calc(18px + var(--safe-bottom))}.md-foot[data-v-2fc6351a]>.ui-btn{flex:1 1 0;min-width:0}}@keyframes md-in-2fc6351a{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes md-up-2fc6351a{0%{opacity:.4;transform:translateY(48px)}to{opacity:1;transform:none}}.text[data-v-86566e7e]{font-size:var(--fs-md);line-height:1.65;color:var(--c-text-body)}.app-logo[data-v-0db16ae4]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.app-logo.tile[data-v-0db16ae4]{background:#fff;border-radius:22%;box-shadow:0 1px 2px #0f172a2e}img[data-v-0db16ae4]{display:block;-o-object-fit:contain;object-fit:contain}.err-page[data-v-a7adc727]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:var(--c-bg)}p[data-v-a7adc727]{color:var(--c-text-2)}
