@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sarabun-thai-400-normal-C2DaJlKK.woff2)format("woff2"),url(/assets/sarabun-thai-400-normal-CH-UbWgg.woff)format("woff");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sarabun-vietnamese-400-normal-igdrzAGY.woff2)format("woff2"),url(/assets/sarabun-vietnamese-400-normal-DPfkSCMy.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sarabun-latin-ext-400-normal-BbP7GpLL.woff2)format("woff2"),url(/assets/sarabun-latin-ext-400-normal-BsmTn0SS.woff)format("woff");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:Sarabun;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sarabun-latin-400-normal-URPBxl-K.woff2)format("woff2"),url(/assets/sarabun-latin-400-normal-DmguIS-7.woff)format("woff");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:Sarabun;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sarabun-thai-600-normal-3dIAQ-_s.woff2)format("woff2"),url(/assets/sarabun-thai-600-normal-DWKeTe6a.woff)format("woff");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sarabun-vietnamese-600-normal-DkxrOlLB.woff2)format("woff2"),url(/assets/sarabun-vietnamese-600-normal-BMbOgAW-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sarabun-latin-ext-600-normal-BRxjKUQ6.woff2)format("woff2"),url(/assets/sarabun-latin-ext-600-normal-0tXu9x_i.woff)format("woff");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:Sarabun;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sarabun-latin-600-normal-DMD3TROr.woff2)format("woff2"),url(/assets/sarabun-latin-600-normal-9FonlkKx.woff)format("woff");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:Sarabun;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sarabun-thai-700-normal-CbuDipM3.woff2)format("woff2"),url(/assets/sarabun-thai-700-normal-CP2-p8e-.woff)format("woff");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sarabun-vietnamese-700-normal-DrMy3BMX.woff2)format("woff2"),url(/assets/sarabun-vietnamese-700-normal-lN6N8XBT.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Sarabun;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sarabun-latin-ext-700-normal-CnQtP196.woff2)format("woff2"),url(/assets/sarabun-latin-ext-700-normal-ykw7DJpk.woff)format("woff");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:Sarabun;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sarabun-latin-700-normal-DQKyWxHq.woff2)format("woff2"),url(/assets/sarabun-latin-700-normal-DUuqj4Ju.woff)format("woff");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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:#1f2fc9;--brand-dark:#1622a0;--brand-soft:#e8ebff;--accent:#38d4e0;--bg:#f4f6fb;--surface:#fff;--text:#1b1f2a;--muted:#5f6677;--line:#dde1ea;--danger:#c62828;--danger-soft:#fdecec;--warn:#9a6200;--warn-soft:#fff4dc;--ok:#2e7d32;--ok-soft:#e7f5e8;--radius:12px;--shadow:0 1px 2px #141e3c0f, 0 2px 8px #141e3c0d;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Sarabun,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}h1,h2,h3{margin:0 0 .5rem;line-height:1.3}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--brand)}.topbar{z-index:20;background:var(--brand);color:#fff;padding:env(safe-area-inset-top) 0 0;position:sticky;top:0}.topbar-inner{align-items:center;gap:.75rem;max-width:1100px;min-height:52px;margin:0 auto;padding:.6rem 1rem;display:flex}.topbar a{color:#fff;text-decoration:none}.brand{white-space:nowrap;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;display:flex}.brand img{background:#fff;border-radius:7px;width:30px;height:30px}.topnav{flex-wrap:wrap;gap:.25rem;margin-left:1rem;display:flex}.topnav a{opacity:.9;border-radius:8px;padding:.35rem .7rem;font-size:.95rem}.topnav a.active,.topnav a:hover{opacity:1;background:#ffffff29}.spacer{flex:1}.menu-button{color:#fff;font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #ffffff73;border-radius:8px;max-width:45vw;padding:.35rem .7rem;overflow:hidden}.menu{background:var(--surface);color:var(--text);border-radius:var(--radius);min-width:220px;position:absolute;top:calc(100% + 4px);right:1rem;overflow:hidden;box-shadow:0 8px 24px #141e3c2e}.menu a,.menu button{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;padding:.75rem 1rem;text-decoration:none;display:block}.menu a:hover,.menu button:hover{background:var(--brand-soft)}.menu .menu-head{border-bottom:1px solid var(--line);color:var(--muted);padding:.75rem 1rem;font-size:.9rem}.page{max-width:1100px;padding:1rem 1rem calc(2rem + env(safe-area-inset-bottom));margin:0 auto}.page.narrow{max-width:720px}.page-head{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.page-head h1{flex:1;min-width:12rem;margin:0}@media (width<=760px){.topnav{display:none}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1rem}.card>:last-child{margin-bottom:0}.card-link{color:inherit;text-decoration:none;display:block}.card-link:hover{outline:2px solid var(--brand-soft)}.section-title{color:var(--muted);margin:1.25rem 0 .5rem;font-size:.95rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.875rem}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.between{justify-content:space-between}.grid-2{grid-template-columns:1fr;gap:0 1rem;display:grid}@media (width>=640px){.grid-2{grid-template-columns:1fr 1fr}}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}dl.details{margin:0}dl.details dt{color:var(--muted);margin-top:.85rem;font-size:.85rem;font-weight:600}dl.details dd{margin:.15rem 0 0}.field{margin-bottom:1rem}.field>label,.field>.label{margin-bottom:.35rem;font-weight:600;display:block}.field .hint{color:var(--muted);margin-top:.25rem;font-size:.85rem}.required:after{content:" *";color:var(--danger)}input[type=text],input[type=password],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;font:inherit;color:var(--text);border:1px solid var(--line);background:#fff;border-radius:10px;min-height:44px;padding:.65rem .75rem;font-size:16px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}textarea{resize:vertical;min-height:6rem}input[type=date]{appearance:none}.checkbox{cursor:pointer;align-items:center;gap:.6rem;min-height:44px;display:flex}.checkbox input{width:22px;height:22px;accent-color:var(--brand);flex-shrink:0}.btn{font:inherit;cursor:pointer;white-space:nowrap;background:var(--brand);color:#fff;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{color:var(--brand);border-color:var(--line);background:#fff}.btn.secondary:hover{background:var(--brand-soft)}.btn.danger{color:var(--danger);background:#fff;border-color:#f0c4c4}.btn.danger:hover{background:var(--danger-soft)}.btn.small{min-height:36px;padding:.3rem .7rem;font-size:.9rem}.btn.block{width:100%}.btn.big{min-height:56px;font-size:1.1rem}.link-button{font:inherit;color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.form-actions{background:linear-gradient(to bottom, #f4f6fb00, var(--bg) 30%);padding:1rem 0 calc(.5rem + env(safe-area-inset-bottom));gap:.5rem;display:flex;position:sticky;bottom:0}.form-actions .btn{flex:1}.alert{background:var(--brand-soft);border-radius:10px;margin-bottom:1rem;padding:.75rem 1rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.badge{white-space:nowrap;color:var(--muted);background:#eef0f4;border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.badge.NOT_STARTED{color:#4f5666;background:#eef0f4}.badge.IN_PROGRESS{background:var(--warn-soft);color:var(--warn)}.badge.DONE,.badge.OPEN{background:var(--ok-soft);color:var(--ok)}.badge.CLOSED{color:#6b7280;background:#eceef2}.chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.chip{background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .4rem .25rem .75rem;font-size:.9rem;display:inline-flex}.chip.fixed{padding-right:.75rem}.chip button{color:var(--brand-dark);cursor:pointer;background:#1f2fc91f;border:0;border-radius:50%;width:24px;height:24px;font-size:1rem;line-height:1}.pick-list{border:1px solid var(--line);-webkit-overflow-scrolling:touch;background:#fff;border-radius:10px;max-height:280px;margin-top:.4rem;overflow-y:auto}.pick-list>*{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;padding:.6rem .75rem;display:block}.pick-list>label.checkbox{display:flex}.pick-list>:last-child{border-bottom:0}.pick-list>button:hover,.pick-list>label:hover{background:var(--brand-soft)}.pick-list .sub{color:var(--muted);font-size:.85rem;display:block}.selected-box{border:1px solid var(--brand);background:var(--brand-soft);border-radius:10px;align-items:flex-start;gap:.5rem;padding:.65rem .75rem;display:flex}.selected-box>div{overflow-wrap:anywhere;flex:1;min-width:0}.subjob{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:.5rem;padding:.25rem .75rem .5rem}.subjob.on{border-color:var(--brand)}.segmented{grid-template-columns:repeat(3,1fr);gap:.35rem;margin:.25rem 0 .25rem 2rem;display:grid}.segmented button{font:inherit;border:1px solid var(--line);min-height:40px;color:var(--text);cursor:pointer;background:#fff;border-radius:8px;padding:.2rem;font-size:.9rem}.segmented button.on.NOT_STARTED{color:#fff;background:#4f5666;border-color:#4f5666}.segmented button.on.IN_PROGRESS{color:#fff;background:#c98200;border-color:#c98200}.segmented button.on.DONE{background:var(--ok);border-color:var(--ok);color:#fff}.photos{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;display:grid}.photo{aspect-ratio:1;background:#e9ecf2;border-radius:10px;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;display:block}.photo button.remove{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;width:30px;height:30px;font-size:1.1rem;position:absolute;top:4px;right:4px}.photo.removed img{opacity:.3}.photo .tag{color:#fff;background:#0009;border-radius:6px;padding:0 .4rem;font-size:.75rem;position:absolute;bottom:4px;left:4px}.add-photo{aspect-ratio:1;border:2px dashed var(--line);color:var(--brand);cursor:pointer;text-align:center;background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;font-size:.9rem;display:flex}.add-photo input{display:none}.lightbox{z-index:50;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:100%;max-height:100%}.lightbox button{top:calc(12px + env(safe-area-inset-top));color:#fff;cursor:pointer;background:#fff3;border:0;border-radius:50%;width:44px;height:44px;font-size:1.4rem;position:absolute;right:12px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.95rem}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.55rem .6rem}.table th{color:var(--muted);white-space:nowrap;background:#f8f9fc;font-size:.85rem;font-weight:600}.table tr.dim td{color:var(--muted)}.tabs{background:#e7eaf2;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.tabs button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:8px;min-height:38px;padding:.4rem .85rem}.tabs button.on{color:var(--text);box-shadow:var(--shadow);background:#fff;font-weight:600}.filters{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-items:end;gap:.5rem .75rem;margin-bottom:1rem;display:grid}.filters .field{margin-bottom:0}.stats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:.75rem 1rem}.stat .value{font-size:1.4rem;font-weight:700}.stat .label{color:var(--muted);font-size:.85rem}.dialog-backdrop{z-index:40;background:#0f142873;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);width:100%;max-width:560px;max-height:92vh;padding:1.25rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overflow-y:auto}@media (width>=640px){.dialog-backdrop{align-items:center}.dialog{border-radius:16px}}.login{max-width:400px;padding:calc(2rem + env(safe-area-inset-top)) 1rem 2rem;margin:0 auto}.login-logo{width:88px;height:88px;box-shadow:var(--shadow);border-radius:20px;margin:0 auto .75rem;display:block}.spinner{color:var(--muted);justify-content:center;padding:3rem 1rem;display:flex}.tabs.full{grid-template-columns:1fr 1fr;width:100%;display:grid}.tabs.full button{min-height:44px;font-size:1rem}.password-field{position:relative}.password-field input{padding-right:3rem}.password-field button{width:3rem;height:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}
