:root{--brand-50:#f1f7f4;--brand-100:#dcebe3;--brand-200:#bbd8c8;--brand-300:#8fbfa7;--brand-400:#5e9f83;--brand-500:#3f8266;--brand-600:#2f6b58;--brand-700:#275748;--brand-800:#20463b;--brand-900:#183530;--n-50:#f6f8f6;--n-100:#edf2ee;--n-200:#dce5df;--n-300:#c6d2ca;--n-400:#93a29b;--n-500:#61736c;--n-600:#4c5d56;--n-700:#3b4a44;--n-800:#26332e;--n-900:#1c2a25;--canvas:#f2f7f4;--surface:#fff;--sunken:#e9f0eb;--line:#dce5df;--r-card:16px;--r-control:12px;--r-pill:9999px;--fs-display:1.75rem;--lh-display:2.125rem;--fs-title:1.25rem;--lh-title:1.75rem;--fs-section:1.0625rem;--lh-section:1.5rem;--fs-body:0.9375rem;--lh-body:1.5rem;--fs-body-sm:0.8125rem;--lh-body-sm:1.25rem;--fs-label:0.75rem;--lh-label:1rem;--ls-label:.04em;--shadow-soft:0 8px 32px -8px #1f3a3024;--shadow-lifted:0 16px 48px -12px #1f3a3033;--ease:cubic-bezier(.32,.72,0,1);--header-h:56px;--bottomnav-h:64px;--safe-b:env(safe-area-inset-bottom,0px)}@media (max-width:767px){:root{--r-card:24px}}@media print{:root{--canvas:#fff;--surface:#fff;--sunken:#fff;--line:#999;--shadow-soft:none;--shadow-lifted:none}}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f3f4f6;font-family:Sarabun,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0;padding:0}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}input,select,textarea{font-family:Sarabun,sans-serif}.modal-content input,.modal-content select,.modal-content textarea{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;font-size:.875rem;line-height:1.25rem;padding:.5rem .75rem;width:100%}.modal-content input:focus,.modal-content select:focus,.modal-content textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 2px #3f826633;outline:none}.modal-content textarea{min-height:80px;resize:vertical}.modal-content button{border:none;cursor:pointer;font-weight:500;transition:all .2s}.modal-content button:disabled{cursor:not-allowed;opacity:.5}.modal-content button.bg-green-600{align-items:center;background-color:#16a34a!important;border-radius:.5rem;color:#fff!important;cursor:pointer;display:inline-flex;gap:.5rem;padding:.5rem 1rem;pointer-events:auto}.modal-content button.bg-green-600:hover:not(:disabled){background-color:#15803d!important}.modal-content button.bg-green-600:disabled{background-color:#9ca3af!important;cursor:not-allowed;opacity:.6}.modal-content button.bg-gray-100{background-color:#f3f4f6;border-radius:.5rem;color:#374151;padding:.5rem 1rem}.modal-content button.bg-gray-100:hover:not(:disabled){background-color:#e5e7eb}.modal-content button.bg-blue-600{align-items:center;background-color:var(--brand-600);border-radius:.5rem;color:#fff;display:flex;gap:.5rem;padding:.5rem 1rem}.modal-content button.bg-blue-600:hover:not(:disabled){background-color:var(--brand-700)}.btn{align-items:center;background-color:#f3f4f6;border:none;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:15px;font-weight:500;justify-content:center;min-height:44px;min-width:44px;padding:8px 16px;transition:all .2s}.btn-primary{background-color:var(--brand-600);color:#fff}.btn-primary:hover{background-color:var(--brand-700)}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563}.btn-success{background-color:#10b981;color:#fff}.btn-success:hover{background-color:#059669}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover{background-color:#dc2626}.btn:active:not(:disabled){filter:brightness(.92)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-sm{font-size:13px;padding:4px 12px}.btn-group{border-radius:6px;display:inline-flex;overflow:hidden}.btn-group .btn{border-radius:0;border-right:1px solid #fff3}.btn-group .btn:first-child{border-radius:6px 0 0 6px}.btn-group .btn:last-child{border-radius:0 6px 6px 0;border-right:none}.modal-overlay{align-items:center!important;background-color:#00000080!important;bottom:0!important;display:flex!important;height:100vh!important;height:100dvh!important;justify-content:center!important;left:0!important;padding:1rem;pointer-events:auto!important;position:fixed!important;right:0!important;top:0!important;width:100vw!important;z-index:99999!important}.modal-content{background:#fff!important;border-radius:.5rem;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;overflow-y:auto;pointer-events:auto!important;position:relative!important;z-index:100000!important}.modal-content *{pointer-events:auto}.modal-content input[type=checkbox]{accent-color:var(--brand-600);cursor:pointer;height:1rem;width:1rem}.modal-content .cursor-pointer{cursor:pointer}.modal-content .border-b{border-bottom:1px solid #e5e7eb}.modal-content .hover\:bg-gray-50:hover{background-color:#f9fafb}.modal-content .bg-blue-50{background-color:var(--brand-50)}.modal-content .border-l-4{border-left-width:4px}.modal-content .border-l-blue-500{border-left-color:var(--brand-500)}.modal-content .text-blue-600{color:var(--brand-600)}.modal-content .bg-blue-50.rounded-lg{background-color:var(--brand-50);border-radius:.5rem}.modal-content .text-blue-800{color:var(--brand-800)}.modal-content .text-blue-900{color:var(--brand-900)}.modal-content .border-blue-200{border-color:var(--brand-200)}.dhx_cal_container{font-family:Sarabun,sans-serif!important}.dhx_cal_container table,.dhx_cal_container td,.dhx_cal_container th,.dhx_cal_container tr{border-collapse:initial;border-spacing:0}.dhx_cal_light{font-family:Sarabun,sans-serif!important}.dhx_cal_light input,.dhx_cal_light select,.dhx_cal_light textarea{border-radius:4px;font-family:Sarabun,sans-serif!important}.dhx_cal_light .dhx_btn_set{border-radius:4px}.branch-color-1{background-color:var(--brand-600)!important}.branch-color-2{background-color:#10b981!important}.branch-color-3{background-color:#f59e0b!important}.branch-color-4{background-color:#8b5cf6!important}.branch-color-5{background-color:#ec4899!important}.day-off-event{background-color:#9ca3af!important;border-left:3px solid #6b7280!important}.readonly-event{cursor:default!important;opacity:.8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .2s ease-out}.animate-slideUp{animation:slideUp .3s ease-out}.spinner{animation:spin 1s linear infinite;border:3px solid #f3f4f6;border-radius:50%;border-top:3px solid var(--brand-600);height:24px;width:24px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:12px;font-weight:500;padding:2px 8px}.badge-pending{background-color:#fef3c7;color:#92400e}.badge-approved{background-color:#d1fae5;color:#065f46}.badge-rejected{background-color:#fee2e2;color:#991b1b}.card-hover{transition:box-shadow .2s ease,transform .2s ease}.card-hover:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #e5e7eb;padding:12px;text-align:left}th{color:#374151;font-weight:600}th,tr:hover{background-color:#f9fafb}.tooth-svg{cursor:pointer;transition:transform .1s ease}.tooth-svg:hover{transform:scale(1.05)}.modal-overlay>div{animation:slideUp .2s ease-out}.lang-toggle{align-items:center;background-color:initial;border:1px solid var(--brand-700);border-radius:var(--r-control);color:var(--brand-100);cursor:pointer;display:flex;font-family:inherit;font-size:var(--fs-body-sm);font-weight:500;gap:.5rem;padding:.5rem .75rem;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.lang-toggle:hover{background-color:var(--brand-800);color:#fff}.lang-toggle-muted{opacity:.5}@media (max-width:767px){.mobile-header{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffffd1;border-bottom:1px solid var(--line);display:flex;gap:.75rem;height:var(--header-h);left:0;padding:0 .75rem;position:fixed;right:0;top:0;z-index:40}.mobile-header-menu{align-items:center;background:none;border:none;color:var(--n-700);cursor:pointer;display:flex;height:44px;justify-content:center;width:44px}.mobile-header-title{color:var(--n-900);flex:1 1;font-size:var(--fs-section);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-header-right{align-items:center;display:flex;gap:.5rem}.mobile-header .lang-toggle{border-color:var(--line);color:var(--n-700);padding:.4375rem .625rem}.mobile-header .lang-toggle:hover{background-color:var(--n-100);color:var(--n-900)}.mobile-header-avatar{align-items:center;background:var(--brand-600);border-radius:var(--r-pill);color:#fff;display:flex;flex:none;font-size:var(--fs-body-sm);font-weight:600;height:32px;justify-content:center;width:32px}.more-sheet-scrim,.nav-drawer-scrim{background:#18353073;inset:0;position:fixed;z-index:50}.nav-drawer{animation:drawer-in .28s var(--ease);background:var(--brand-900);bottom:0;color:#fff;display:flex;flex-direction:column;left:0;overflow-y:auto;position:fixed;top:0;width:min(84vw,300px);z-index:51}@keyframes drawer-in{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.nav-drawer-header{align-items:center;border-bottom:1px solid var(--brand-800);display:flex;gap:.5rem;justify-content:space-between;padding:1rem}.nav-drawer-title{font-size:var(--fs-section);font-weight:600}.nav-drawer-close{align-items:center;background:none;border:none;color:var(--brand-200);cursor:pointer;display:flex;flex:none;height:44px;justify-content:center;width:44px}.nav-drawer-branch{border-bottom:1px solid var(--brand-800);padding:.75rem 1rem}.nav-drawer-branch-static,.nav-drawer-branch-toggle{align-items:center;background:var(--brand-800);border:none;border-radius:var(--r-control);color:#fff;display:flex;font-family:inherit;font-size:var(--fs-body-sm);gap:.5rem;justify-content:space-between;min-height:44px;padding:.5rem .75rem;text-align:left;width:100%}.nav-drawer-branch-toggle{cursor:pointer}.nav-drawer-branch-static{cursor:default}.nav-drawer-branch-list{background:var(--surface);border-radius:var(--r-control);list-style:none;margin-top:.375rem;overflow:hidden}.nav-drawer-branch-option{background:none;border:none;color:var(--n-800);cursor:pointer;font-family:inherit;font-size:var(--fs-body-sm);min-height:44px;padding:.625rem .75rem;text-align:left;width:100%}.nav-drawer-branch-option.active{background:var(--brand-50);color:var(--brand-700);font-weight:600}.nav-drawer-list{flex:1 1;list-style:none;padding:.5rem 0}.nav-drawer-item{align-items:center;background:none;border:none;border-left:3px solid #0000;color:var(--brand-100);cursor:pointer;display:flex;font-family:inherit;font-size:var(--fs-body);gap:.75rem;min-height:48px;padding:.75rem 1rem;text-align:left;width:100%}.nav-drawer-item.active{background:var(--brand-800);border-left-color:var(--brand-400);color:var(--brand-300)}.nav-drawer-item-danger{color:#fca5a5}.nav-drawer-footer{align-items:center;border-top:1px solid var(--brand-800);display:flex;gap:.75rem;justify-content:space-between;padding:1rem}.nav-drawer-user{color:var(--brand-200);font-size:var(--fs-body-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav{align-items:stretch;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffffd1;border-radius:var(--r-pill);bottom:calc(12px + var(--safe-b));box-shadow:var(--shadow-lifted);display:flex;height:var(--bottomnav-h);left:12px;overflow:hidden;position:fixed;right:12px;z-index:45}.bottom-nav-item{align-items:center;background:none;border:none;color:var(--n-500);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:3px;justify-content:center;min-height:44px;min-width:0}.bottom-nav-item.active{color:var(--brand-700)}.bottom-nav-icon{height:22px;width:22px}.bottom-nav-label{font-size:.6875rem;font-weight:500;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-sheet{animation:sheet-in .28s var(--ease);background:var(--surface);border-radius:var(--r-card) var(--r-card) 0 0;bottom:0;box-shadow:var(--shadow-lifted);left:0;max-height:80vh;max-height:80dvh;overflow-y:auto;padding:.5rem 0 calc(var(--safe-b) + .75rem);position:fixed;right:0;z-index:51}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.more-sheet-handle{background:var(--n-300);border-radius:var(--r-pill);height:4px;margin:.5rem auto .75rem;width:40px}.more-sheet-list{list-style:none}.more-sheet-item{align-items:center;background:none;border:none;color:var(--n-800);cursor:pointer;display:flex;font-family:inherit;font-size:var(--fs-body);gap:.875rem;min-height:52px;padding:.875rem 1.25rem;text-align:left;width:100%}.more-sheet-item.active{background:var(--brand-50);color:var(--brand-700);font-weight:600}.more-sheet-item-danger{color:#b91c1c}.more-sheet-icon{flex:none;height:20px;width:20px}main{padding-bottom:88px;padding-bottom:calc(var(--bottomnav-h) + var(--safe-b) + 1.5rem);padding-top:var(--header-h)}.modal-content input,.modal-content select,.modal-content textarea,input,select,textarea{font-size:16px}.btn{min-height:44px}.btn-sm{min-height:36px}.modal-overlay:has(.modal-content){align-items:flex-end!important;padding:0!important}.modal-content{-webkit-overflow-scrolling:touch;border-radius:var(--r-card) var(--r-card) 0 0!important;margin:0!important;max-height:90vh!important;max-height:90dvh!important;max-width:none!important;overflow-y:auto!important;padding-bottom:calc(1.5rem + var(--safe-b))!important;width:100%!important}.modal-content:before{background:var(--n-300);border-radius:var(--r-pill);content:"";display:block;height:4px;margin:0 auto .75rem;position:static;width:40px}.min-h-screen.flex.items-center.justify-center{align-items:flex-start;padding:1.5rem 1rem calc(1.5rem + var(--safe-b))}.dhx_cal_container .dhx_cal_header .dhx_scale_bar{font-size:12px}.dhx_cal_container .dhx_cal_navline .dhx_cal_next_button,.dhx_cal_container .dhx_cal_navline .dhx_cal_prev_button,.dhx_cal_container .dhx_cal_navline .dhx_cal_today_button{display:none}.dhx_cal_container .dhx_cal_navline .dhx_cal_date{font-size:16px;left:8px;right:8px;text-align:center;width:auto}}
/*# sourceMappingURL=main.1a1e45fe.css.map*/