@font-face{font-family:Kanit;font-weight:500;src:url(/fonts/kanit-thai-500-normal.woff2) format("woff2");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-weight:500;src:url(/fonts/kanit-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Kanit;font-weight:600;src:url(/fonts/kanit-thai-600-normal.woff2) format("woff2");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-weight:600;src:url(/fonts/kanit-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Sarabun;font-weight:400;src:url(/fonts/sarabun-thai-400-normal.woff2) format("woff2");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-weight:400;src:url(/fonts/sarabun-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Sarabun;font-weight:600;src:url(/fonts/sarabun-thai-600-normal.woff2) format("woff2");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-weight:600;src:url(/fonts/sarabun-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Sarabun;font-weight:700;src:url(/fonts/sarabun-thai-700-normal.woff2) format("woff2");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Sarabun;font-weight:700;src:url(/fonts/sarabun-latin-700-normal.woff2) format("woff2")}:root{--gold-d:#8B6914;--gold:#D4AF37;--gold-l:#FFF9E6;--ink:#1A1A1A;--char:#333;--muted:#757575;--bg:#F5F5F0;--card:#fff;--line:#E7E5DF;--pink:#EC7DB0;--g-bg:#DCFCE7;--g:#16A34A;--y-bg:#FEF9C3;--y:#A16207;--o-bg:#FFEDD5;--o:#C2410C;--r-bg:#FEE2E2;--r:#DC2626}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Sarabun,sans-serif;color:var(--char);background:var(--bg);font-size:15px;line-height:1.45}.k,h1,h2,h3{font-family:Kanit,Sarabun,sans-serif;font-weight:500;color:var(--ink)}a{color:var(--gold-d);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);height:100vh}.side{background:#1A1A1A;color:#E8E3D3;padding:20px 14px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:0 6px}.logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#8B6914,#D4AF37);display:grid;place-items:center;font:600 15px Kanit;color:#fff;flex:none}.brand b{font:600 18px Kanit;color:#fff}.brand small{display:block;font-size:11px;color:#B9B2A0}.nav{padding:9px 12px;border-radius:8px;font-size:14.5px;color:#CFC8B6;display:flex;gap:10px;align-items:center;cursor:pointer;text-decoration:none!important}.nav:hover{background:rgba(255,255,255,.07);color:#fff}.nav:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.nav:active{background:rgba(255,255,255,.12)}.nav.on{background:rgba(212,175,55,.18);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--gold)}.nbadge{margin-left:auto;background:var(--r);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 7px;line-height:1.5}.nav-sec{font-size:11px;color:#8F8878;padding:12px 12px 4px;text-transform:none}.side .foot{margin-top:auto;font-size:12px;color:#8F8878;padding:8px 6px 0}.main{flex-direction:column;min-width:0;min-height:0;overflow:hidden}.main,.top{display:flex}.top{height:60px;min-height:60px;background:#fff;border-bottom:1px solid var(--line);align-items:center;padding:0 24px;gap:16px}.top h1{font-size:20px;white-space:nowrap}.sp,.top .sp{flex:1 1}.chip{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;background:#fff;color:var(--char);display:inline-flex;align-items:center;gap:6px;cursor:default}.chip.gold{background:var(--gold-l);border-color:#EAD9A2;color:var(--gold-d);font-weight:600}a.chip,button.chip{cursor:pointer}a.chip:hover,button.chip:hover{border-color:var(--gold);text-decoration:none}.avatar{width:32px;height:32px;border-radius:50%;background:#E9E2CC;display:grid;place-items:center;font:600 13px Kanit;color:var(--gold-d);flex:none}.who{display:inline-flex;align-items:center;gap:8px;min-width:0}.who-t{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.hl td{background:var(--gold-l)!important}.smallcount,tr.smallbill td,tr.smallbill td .linkbtn,tr.smallbill td .muted{color:var(--r)}.grp td,.smallcount{font-weight:600}.grp td{background:#FAFAF7}.body{padding:20px 24px;flex-direction:column;min-height:0;flex:1 1;overflow:auto}.body,.row{display:flex;gap:16px}.row{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:16px}.card,.col{min-width:0}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.card h3{font-size:15px;margin-bottom:10px;display:flex;align-items:center;gap:8px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.tile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.tile .n{font:600 26px Kanit;color:var(--ink);line-height:1.2}.tile .n small{font-size:14px;color:var(--muted);font-weight:500}.tile .t{font-size:13px;color:var(--muted)}.tile .d{font-size:12px;margin-top:2px}.up{color:var(--g)}.down{color:var(--r)}tr.late td{background:var(--r-bg)}.tbox{overflow:auto;max-width:100%;border-radius:8px}table{border-collapse:collapse;width:100%;font-size:13.5px}th{text-align:left;font-weight:600;color:var(--muted);font-size:12.5px;border-bottom:1px solid var(--line);background:#FAFAF7;position:-webkit-sticky;position:sticky;top:0}td,th{padding:8px 10px;white-space:nowrap}td{border-bottom:1px solid #f0eee8;vertical-align:middle}table.wrap td{white-space:normal}tbody tr:hover td{background:#FCFBF6}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar{height:8px;background:#EFEDE6;overflow:hidden;min-width:90px}.bar,.bar>span{border-radius:6px}.bar>span{display:block;height:100%;background:var(--gold)}.bar.lo>span{background:#E0A93A}.bar.vlo>span{background:#D97757}.pill{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}.p-g{background:var(--g-bg);color:var(--g)}.p-y{background:var(--y-bg);color:var(--y)}.p-o{background:var(--o-bg);color:var(--o)}.p-r{background:var(--r-bg);color:var(--r)}.p-n{background:#EFEDE6;color:#555}.btn{border-radius:9px;padding:9px 16px;font:600 14px Sarabun;border:1px solid var(--gold-d);background:var(--gold-d);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none!important}.btn:hover{background:#7a5c10}.btn:active{transform:translateY(1px)}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.btn.sec{background:#fff;color:var(--gold-d)}.btn.sec:hover{background:var(--gold-l)}.btn.dan{background:#fff;border-color:var(--r);color:var(--r)}.btn.dan:hover{background:var(--r-bg)}.btn.sm{padding:5px 11px;font-size:13px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed}.muted{color:var(--muted)}.small{font-size:12.5px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{padding:6px 12px;border-radius:8px;font-size:13px;background:#fff;border:1px solid var(--line);cursor:pointer;color:var(--char);text-decoration:none!important}.tab.on,.tab:hover{border-color:var(--gold)}.tab.on{background:var(--gold-l);color:var(--gold-d);font-weight:600}.flag{border-left:3px solid var(--o);background:#FFFBF6;border-radius:8px;padding:8px 10px;font-size:13px}.flag.r{border-left-color:var(--r);background:#FFF8F8}.flag.g{border-left-color:var(--g);background:#F6FFF9}.flag.gold{border-left-color:var(--gold);background:var(--gold-l)}label.f{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}input,select,textarea{font:400 14px Sarabun;color:var(--ink);border:1px solid #d9d5cb;border-radius:9px;padding:9px 11px;background:#fff;min-width:0}input:hover,select:hover,textarea:hover{border-color:#BDB7A6}input:focus,select:focus,textarea:focus{border-color:var(--gold)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.err{color:var(--r);font-size:13px}.selbar{gap:8px;flex-wrap:wrap;background:var(--gold-l);border:1px solid var(--gold);padding:8px 10px;margin-bottom:10px}.selbar,.toast{display:flex;align-items:center;border-radius:10px}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:60;background:var(--ink);color:#fff;padding:10px 14px;gap:12px;font-size:14px;max-width:calc(100vw - 24px);box-shadow:0 6px 24px rgba(0,0,0,.18);animation:toastIn .18s ease-out}.toast .btn.sm{background:transparent;border-color:var(--gold);color:var(--gold)}.toast .btn.sm:hover{background:rgba(212,175,55,.15)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.ok{color:var(--g);font-size:13px}.modal-bg{position:fixed;inset:0;background:rgba(26,26,26,.45);display:grid;place-items:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:14px;padding:22px;max-width:760px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 10px 40px rgba(0,0,0,.25)}.modal h2{font-size:20px;margin-bottom:12px}.dept-chip{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}.drop{border:2px dashed #d9d5cb;border-radius:12px;padding:16px;background:#FCFBF8;transition:opacity .15s}.drop.over{border-color:var(--gold);background:var(--gold-l)}.empty{padding:40px 16px;text-align:center;color:var(--muted)}.maplibregl-map{font-family:Sarabun,sans-serif}@media (max-width:860px){.shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:auto;min-height:100vh}.side{flex-direction:row;flex-wrap:wrap;padding:10px;gap:2px;overflow:visible}.side .brand{margin:0 8px 0 0}.nav{padding:6px 9px;font-size:13px}.nav-sec,.side .foot{display:none}.top{flex-wrap:wrap;height:auto;padding:8px 12px}.body{padding:12px}.main{overflow:visible}}@media print{.noprint,.side,.top{display:none!important}.shell{display:block;height:auto}.body{overflow:visible;padding:0}body{background:#fff}}.dday{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:Kanit,sans-serif;font-weight:600;font-size:20px;color:var(--ink,#1A1A1A)}.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--gold-d,#8B6914);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.linkbtn:hover{color:var(--ink)}.linkbtn:focus-visible{outline:2px solid var(--gold,#D4AF37);outline-offset:2px;border-radius:3px}