@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:400;font-display:swap;src:url(../media/09002b40273b9d8f-s.1ur0mtga_nw2f.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2ce526728043d90d-s.p.2ptbed-1-kdpm.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8ab1509717e9e87c-s.3--ypm_6h6ubk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e7b79b72fa390d7f-s.p.2tolh5ep4q7js.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b681d59d845cd30f-s.3sjypkx454muu.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:500;font-display:swap;src:url(../media/86ab07388496d784-s.p.2n408wo629q49.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9a136bd85a058d4d-s.113zlkumr47ij.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ef6c596754631961-s.p.0_bzs213j-3nz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:600;font-display:swap;src:url(../media/cbb54531d74fd499-s.2xvj854xq0ciy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6c8bb8836b3337fa-s.p.3a_vt60w1i6n8.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:600;font-display:swap;src:url(../media/eb7142f65a4378c5-s.2o46xbzy_08kj.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:600;font-display:swap;src:url(../media/31766de0018db2b2-s.p.1jm8ogl_hurxi.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:700;font-display:swap;src:url(../media/cf1ad709f69dd255-s.3c8v7rdmtdwuh.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:700;font-display:swap;src:url(../media/21af2bb396c563be-s.p.3j-5ok7ygoh4h.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:700;font-display:swap;src:url(../media/eafb68cd4fa4be1e-s.41vshpd9ga5he.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Thai Looped;font-style:normal;font-weight:700;font-display:swap;src:url(../media/62a3be0567d84d33-s.p.0ortugtapf-_i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai Looped Fallback;src:local(Arial);ascent-override:110.31%;descent-override:52.78%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_thai_looped_59b67f84-module__Sm85Ca__className{font-family:IBM Plex Sans Thai Looped,IBM Plex Sans Thai Looped Fallback;font-style:normal}.ibm_plex_sans_thai_looped_59b67f84-module__Sm85Ca__variable{--font-ui:"IBM Plex Sans Thai Looped", "IBM Plex Sans Thai Looped Fallback"}
:root{--bg:#fff;--surface:#fff;--surface-2:#edf1f6;--ink:#162034;--ink-2:#465169;--ink-3:#6a7489;--line:#d8dee7;--line-2:#c3cbd8;--navy:#1d2f52;--navy-ink:#fff;--gold:#94732f;--bad:#a33838;--bad-soft:#f7e3e3;--ok:#2d7552;--ok-soft:#e2f0e8;--focus:#3a63b8;--f-ui:var(--font-ui), "IBM Plex Sans Thai Looped", "Sarabun", "Leelawadee UI", "Tahoma", sans-serif;--ease:cubic-bezier(.2, .7, .2, 1);--app-bg:#f4f6fb;--accent:#4f63d6;--accent-ink:#fff;--accent-soft:#eaedfc;--card-radius:16px;--card-shadow:0 1px 2px #1018280a, 0 2px 8px #1018280d;--badge-green-bg:#e2f6ec;--badge-green-ink:#178a56;--badge-blue-bg:#e8f0fe;--badge-blue-ink:#2a5fcf;--badge-amber-bg:#fdf0da;--badge-amber-ink:#95650f}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);margin:0;font-size:15.5px;line-height:1.65}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.ribbon{color:var(--gold);text-align:center;background:#f4ecdd;padding:5px 16px;font-size:.8rem}.login{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;display:grid}@media (max-width:820px){.login{grid-template-columns:minmax(0,1fr)}}.login-side{background:var(--navy);color:#fff;flex-direction:column;justify-content:center;gap:16px;padding:clamp(28px,6vw,72px);display:flex}.login-side h1{font-size:clamp(2rem,4vw,2.8rem)}.login-side p{color:#afc0dd;max-width:40ch}.login-main{place-items:center;padding:32px 16px;display:grid}.login-card{flex-direction:column;gap:16px;width:100%;max-width:420px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field>span{color:var(--ink-3);font-size:.82rem;font-weight:500}.inp{border:1px solid var(--line-2);border-radius:4px;width:100%;padding:9px 12px;font-size:.95rem}.inp:focus{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}.btn{white-space:nowrap;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:.92rem;text-decoration:none;display:inline-flex}.btn.primary{background:var(--navy);border-color:var(--navy);color:var(--navy-ink);font-weight:500}.btn:hover{border-color:var(--navy)}.note-box{border-radius:6px;padding:10px 14px;font-size:.86rem}.note-box.info{background:var(--surface-2);color:var(--ink-2)}.note-box.bad{background:var(--bad-soft);color:var(--bad)}.note-box.warn{color:#94600f;background:#faefd9}.note-box.ok{background:var(--ok-soft);color:var(--ok)}.note{color:var(--ink-3);font-size:.82rem}.main{padding:24px clamp(16px,3vw,36px) 72px}.page-head{margin-bottom:18px}.page-head h1{font-size:1.4rem}body{background:var(--app-bg)}.app-shell{grid-template-columns:248px minmax(0,1fr);align-content:start;align-items:start;min-height:100vh;display:grid}.app-sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.app-brand{padding:4px 10px 18px}.app-brand b{font-size:1.05rem}.app-brand span{color:var(--ink-3);margin-top:2px;font-size:.78rem;display:block}.app-nav{flex-direction:column;flex:1;gap:2px;display:flex}.app-nav a{color:var(--ink-2);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:.92rem;text-decoration:none;display:flex}.app-nav a:hover{background:var(--surface-2)}.app-nav a.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.app-nav svg{opacity:.85;flex:none}.app-nav-head{color:var(--ink-3);letter-spacing:.02em;padding:14px 12px 4px;font-size:.74rem}.app-user{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.app-user-link{color:var(--ink-3);border-radius:10px;padding:8px 12px;font-size:.86rem;text-decoration:none;display:block}.app-user-link:hover{background:var(--surface-2);color:var(--ink)}.app-user .who{padding:0 12px 8px}.app-user .who b{font-size:.88rem;display:block}.app-user .who span{color:var(--ink-3);font-size:.78rem}.app-user form button{width:100%;color:var(--ink-3);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-size:.86rem;display:flex}.app-user form button:hover{background:var(--surface-2);color:var(--ink)}.app-main{min-width:0;padding:24px clamp(16px,3vw,36px) 72px}.app-topbar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:18px;display:flex}.app-topbar .date{color:var(--ink-3);font-size:.84rem}.app-topbar h1{margin-top:2px;font-size:1.5rem}.card{background:var(--surface);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:18px 20px}.stat-card{flex-direction:column;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:26px;display:grid}.stat-card .k{color:var(--ink-3);font-size:.82rem}.stat-card .v{margin-top:4px;font-size:1.8rem;font-weight:700}.stat-card .v-sm{margin-top:6px;font-size:1.05rem;font-weight:600}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:26px 0 12px;display:flex}.section-head h2{font-size:1.05rem}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;font-size:.76rem;font-weight:600;display:inline-flex}.badge.green{background:var(--badge-green-bg);color:var(--badge-green-ink)}.badge.blue{background:var(--badge-blue-bg);color:var(--badge-blue-ink)}.badge.amber{background:var(--badge-amber-bg);color:var(--badge-amber-ink)}.badge.gray{background:var(--surface-2);color:var(--ink-2)}.activity-card{background:var(--surface);border-radius:var(--card-radius);box-shadow:var(--card-shadow);align-items:center;gap:16px;margin-bottom:12px;padding:16px 18px;display:flex}.activity-card .body{flex:1;min-width:0}.activity-card .title{margin-bottom:6px;font-weight:600}.activity-card .badges{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.activity-card .meta{color:var(--ink-3);flex-wrap:wrap;gap:16px;font-size:.82rem;display:flex}.activity-card .meta span{align-items:center;gap:5px;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);border-radius:10px;font-weight:600}.btn.primary:hover{filter:brightness(.94);border-color:var(--accent)}.btn.sm{padding:5px 10px;font-size:.82rem}.btn.danger{border-color:var(--bad);color:var(--bad)}.kv{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.kv dt{color:var(--ink-3);font-size:.86rem}.kv dd{margin:0}.tbl-wrap{overflow-x:auto}.t{border-collapse:collapse;width:100%;font-size:.88rem}.t th,.t td{border-bottom:1px solid var(--line);text-align:left;padding:7px 10px}.t thead th{color:var(--ink-3);font-size:.8rem;font-weight:500}.tabs-row{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.tab-link{color:var(--ink-3);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:.88rem;text-decoration:none}.tab-link:hover{color:var(--ink)}.tab-link.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.kpi-card{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:14px 16px}.kpi-card .kpi-h{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.kpi-grid .wide{grid-column:1/-1}.rate-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (max-width:760px){.rate-layout{grid-template-columns:minmax(0,1fr)}.rate-layout>:first-child{order:2}}.itemlist{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.itemlist li.h{color:var(--ink-3);padding:10px 10px 4px;font-size:.76rem;font-weight:600}.itemlist button{text-align:left;cursor:pointer;width:100%;color:var(--ink-2);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.86rem;display:flex}.itemlist button:hover{background:var(--surface-2)}.itemlist button.cur{background:var(--accent-soft);color:var(--accent);font-weight:600}.itemlist .m{border:1px solid var(--line-2);border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:.74rem;display:inline-flex}.itemlist .m.done{background:var(--ok-soft);color:var(--ok);border-color:#0000}.scale{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.scale button{border:1px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:8px 6px;display:flex}.scale button b{font-size:1.1rem}.scale button small{color:var(--ink-3);font-size:.68rem}.scale button.on{background:var(--accent);border-color:var(--accent)}.scale button.on b,.scale button.on small{color:var(--accent-ink)}.scale button.tgt:not(.on){border-color:var(--accent)}.scale button:disabled{opacity:.4;cursor:not-allowed}.behav{background:var(--surface-2);border-radius:12px;margin-top:6px;padding:14px 16px;font-size:.86rem}.behav ul{margin:6px 0 0;padding-left:1.2em}.behav .beh-h{margin-top:8px;font-weight:600}@media (max-width:820px){.app-shell{grid-template-columns:minmax(0,1fr)}.app-sidebar{z-index:20;border-right:none;border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);background:#fffffff0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand user""nav nav";align-items:center;height:auto;padding:8px 12px 6px;display:grid;position:sticky;top:0}.app-brand{grid-area:brand;align-items:baseline;gap:8px;padding:0 4px;display:flex}.app-brand span{margin-top:0}.app-user{border-top:none;grid-area:user;align-items:center;gap:2px;margin-top:0;padding-top:0;display:flex}.app-user .who{display:none}.app-user-link,.app-user form button{width:auto;padding:6px 8px;font-size:.8rem}.app-nav{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;flex-flow:row;grid-area:nav;gap:4px;margin:4px -12px 0;padding:2px 12px 4px;overflow-x:auto}.app-nav::-webkit-scrollbar{display:none}.app-nav a{white-space:nowrap;scroll-snap-align:start;border-radius:999px;flex:none;padding:7px 12px;font-size:.86rem}.app-nav a.active{box-shadow:none}.app-nav-head{background:var(--line-2);flex:none;width:1px;margin:6px 4px;padding:0;font-size:0;overflow:hidden}.nav-pending{margin-left:6px}.app-main{padding:16px 14px 56px}.app-topbar h1{font-size:1.3rem}.tabs-row{scrollbar-width:none;flex-wrap:nowrap;margin-left:-14px;margin-right:-14px;padding:0 14px;overflow-x:auto}.tabs-row::-webkit-scrollbar{display:none}.tab-link{white-space:nowrap;flex:none}.card{padding:14px}.activity-card{flex-wrap:wrap}.activity-card .btn{margin-left:auto}.kpi-grid{grid-template-columns:minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card .v{font-size:1.45rem}}@media (max-width:640px){.tbl-wrap{-webkit-overflow-scrolling:touch}.tbl-wrap>.t{min-width:600px}.app-brand span{display:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.07)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-320px 0}to{background-position:320px 0}}@keyframes pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes ring-fill{0%{stroke-dashoffset:var(--ring-c)}}.page-enter{animation:rise .28s var(--ease) both}.page-enter .stat-grid>*,.page-enter .activity-card{animation:rise .34s var(--ease) both}.page-enter .stat-grid>:nth-child(2),.page-enter .activity-card:nth-of-type(2){animation-delay:40ms}.page-enter .stat-grid>:nth-child(3),.page-enter .activity-card:nth-of-type(3){animation-delay:80ms}.page-enter .stat-grid>:nth-child(4),.page-enter .activity-card:nth-of-type(4){animation-delay:.12s}.login-card{animation:rise .4s var(--ease) both}.note-box{animation:.25s both fade}.inp{border-radius:8px;transition:border-color .15s,box-shadow .15s}.inp:hover:not(:focus):not([readonly]){border-color:var(--ink-3)}.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.btn{border-radius:10px;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .1s,filter .15s}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary:hover:not(:disabled){box-shadow:0 4px 12px #4f63d638}.activity-card,.stat-card{transition:transform .2s var(--ease), box-shadow .2s var(--ease)}.activity-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px #1018280d,0 10px 24px #10182814}.app-nav a{transition:background-color .15s,color .15s;position:relative}.app-nav a svg{transition:transform .2s var(--ease)}.app-nav a:hover svg{transform:translate(1px)}.nav-pending{background:var(--accent);opacity:0;border-radius:50%;width:6px;height:6px;margin-left:auto}.nav-pending.on{animation:.9s ease-in-out infinite pulse}.tab-link{transition:color .15s,border-color .2s}.t tbody tr{transition:background-color .12s}.t tbody tr:hover{background:#f8f9fc}.badge{transition:background-color .2s,color .2s}.scale button{transition:background-color .15s, border-color .15s, transform .12s var(--ease), box-shadow .15s}.scale button:hover:not(:disabled):not(.on){border-color:var(--accent);transform:translateY(-1px);box-shadow:0 3px 8px #10182812}.scale button.on{animation:pop .24s var(--ease);box-shadow:0 4px 12px #4f63d640}.itemlist button{transition:background-color .15s,color .15s}.itemlist .m{transition:background-color .2s,color .2s,border-color .2s}.itemlist .m.done{animation:pop .24s var(--ease)}.ring-arc{animation:ring-fill .8s var(--ease) both}.skeleton-page{animation:.2s both fade}.sk{background:linear-gradient(90deg, var(--surface-2) 0, #f6f8fb 50%, var(--surface-2) 100%) 0 0 / 640px 100%;border-radius:6px;animation:1.2s linear infinite shimmer}@media (pointer:coarse){.btn{min-height:40px}.btn.sm{min-height:34px}.scale button{min-width:56px;min-height:52px}.app-nav a{min-height:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
