@font-face{font-family:Shop Thai;src:url(/fonts/NotoSansThai-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Shop Thai;src:url(/fonts/NotoSansThai-Bold.ttf) format("truetype");font-style:normal;font-weight:700 900;font-display:swap}@font-face{font-family:Shop Display;src:url(/fonts/NotoSansThaiLooped-Bold.ttf) format("truetype");font-style:normal;font-weight:700 900;font-display:swap}:root{--ink:#173d36;--muted:#526d62;--line:#d8e3d9;--green:#176047;--green-dark:#113f35;--paper:#fffef9;--soft:#e7f0e5;--red:#ad472e;--canvas:#f5f3ea}html{scrollbar-color:#a3b9a8 var(--canvas)}body{background:var(--canvas);color:var(--ink);font-family:Shop Thai,Tahoma,sans-serif;line-height:1.5}@media (hover:none) and (pointer:coarse){body{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}[contenteditable=true],input,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text;-webkit-touch-callout:default}}::-moz-selection{background:#d4e7d3;color:#10372e}::selection{background:#d4e7d3;color:#10372e}input,select,textarea{caret-color:var(--green-dark)}:focus-visible{outline:3px solid #c26b4d;outline-offset:2px}h1,h2,h3{font-family:Shop Display,Shop Thai,sans-serif;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}h1{font-size:clamp(27px,3vw,38px)}h2{font-size:20px}.dashboard-kicker,.eyebrow{display:none}a{text-underline-offset:3px}.site-header{background:var(--green-dark);box-shadow:none}.nav-wrap{min-height:66px}.brand{display:inline-flex;align-items:center;font-family:Shop Display,sans-serif;font-size:21px;letter-spacing:-.015em}.brand .brand-symbol{display:flex;align-items:end;justify-content:center;gap:3px;width:32px;height:32px;padding:7px 6px;margin-right:9px;border-radius:9px;background:#cde9d0}.brand-symbol i{display:block;width:5px;height:10px;border-radius:3px 3px 1px 1px;background:var(--green-dark)}.brand-symbol i:nth-child(2){height:17px}.brand-symbol i:nth-child(3){height:13px}.desktop-nav{gap:2px}.desktop-nav a{color:#d7ebdb}.desktop-nav a.active{background:#d8ead9;color:var(--green-dark)}.mobile-quick-nav{display:none}.card,.login-card,.statement-card{background:var(--paper);border-color:var(--line);border-radius:15px;box-shadow:none}.card{padding:24px}.page-head{margin:28px 0 18px}.lead{color:var(--muted)}.button,button{min-height:46px;padding:10px 16px;border-radius:10px;background:var(--green);color:#fff;transition:background-color .18s ease,transform .18s ease,box-shadow .18s ease}.button:hover,button:hover{background:var(--green-dark)}.button:active,button:active{transform:scale(.985)}.button:not(:disabled):active,button:not(:disabled):not(.attendance-name-toggle):not(.payroll-list-open):active,summary:active{filter:brightness(.94);transform:scale(.985)}.button.secondary,button.secondary{background:#fffef9;border:1px solid #b5cab9;color:var(--green-dark)}.button.secondary:hover,button.secondary:hover{background:var(--soft)}input,select,textarea{min-height:46px;border:1px solid #b6c9bb;border-radius:10px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #bdd9c0;border-color:var(--green)}label{color:#39584b}.notice{background:#e4f1e7;border-color:#b9d6bd;color:#1c543d}.notice.error{background:#fff1ed;border-color:#e7b9ab;color:#8d321f}.stat{min-height:0;padding:17px 19px;border:0;border-radius:13px;background:#e6f0e7;gap:3px}.stat span{color:#3f6050}.stat strong{color:var(--green-dark);font-family:Shop Display,sans-serif;font-size:22px}.stat a{color:#295e46;font-weight:700}.badge.pending{background:#fff0c5;color:#684b00}.badge.processed{background:#e5edef;color:#324b50}.badge.present{background:#dcecdf;color:#205c3f}.badge.absent{background:#f9dfda;color:#913d2c}.workweek-card{padding:17px 19px;background:var(--paper);border-radius:15px;margin:30px 0 14px}.workweek-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:13px}.workweek-heading strong{font-family:Shop Display,sans-serif;font-size:19px}.workweek-heading span{color:var(--muted);font-size:13px;font-weight:700}.workweek-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.workweek-day{display:grid;justify-items:center;gap:1px;min-height:60px;padding:7px 3px 5px;border-radius:10px;background:#f0f1eb;color:#657368;text-align:center}.workweek-day.is-open{background:#e1ede3;color:var(--green-dark)}.workweek-day.is-today{background:var(--green-dark);color:#fff}.workweek-day span{font-size:11px;font-weight:700}.workweek-day strong{font-size:16px;font-variant-numeric:tabular-nums}.workweek-day i{width:5px;height:5px;border-radius:50%;background:transparent}.workweek-day.is-open i{background:currentColor}.dashboard-more-stats,.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 20px}.dashboard-actions .button{display:grid;place-items:center;min-height:48px;white-space:nowrap}.dashboard-actions .button:first-child{background:var(--red)}.dashboard-actions .button:first-child:hover{background:#873721}.dashboard-table{margin-bottom:14px}.dashboard-table .section-heading{align-items:center}.dashboard-list-heading .mobile-sort-toolbar,.dashboard-table .section-heading h2{margin:0}.dashboard-more-stats{margin-bottom:30px}.employee-avatar{background:#d9e9d9;color:var(--green-dark)}.mobile-sort-menu summary{background:var(--soft)}th{background:#e8efe6;color:#405f50}td{border-color:var(--line)}tbody tr:hover{background:#f6faf5}.payroll-period-card{padding:0;overflow:hidden}.payroll-period-disclosure>summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;list-style:none}.payroll-period-disclosure>summary::-webkit-details-marker{display:none}.payroll-period-disclosure>summary>span:first-child{font-weight:700;white-space:nowrap}.payroll-period-disclosure>summary strong{flex:1;min-width:0;color:var(--muted);font-size:13px;font-weight:600}.payroll-period-edit{color:var(--green-dark);font-weight:800}.payroll-period-disclosure[open]>summary{border-bottom:1px solid var(--line)}.payroll-period-form{padding:18px 20px 20px}.payroll-period-form .summary{display:none}.payroll-reference-card{margin-bottom:14px}.payroll-reference-card h2{margin-bottom:0}.payroll-reference-inline{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--line)}.payroll-reference-inline label{width:min(290px,100%)}.settings-debt-item{background:#f7faf6}.workday-help{margin:-7px 0 15px;color:var(--muted);font-size:13px}.workday-help summary{width:-moz-max-content;width:max-content;max-width:100%;color:var(--green-dark);font-weight:700;cursor:pointer}.workday-help p{margin:8px 0 0}.navigation-loading-progress{background:#d16a4a;box-shadow:none}.navigation-loading-label{color:var(--green-dark);border-color:var(--line)}.page-loading-skeleton{background:var(--paper)}@media (max-width:1100px){.mobile-nav-panel{background:var(--green-dark)}.mobile-nav summary{border-color:#749180;background:#255247}.mobile-nav[open] summary{background:#315f51}.mobile-nav-panel nav a.active{background:#d8ead9;color:var(--green-dark)}}@media (max-width:760px){body{padding-bottom:24px}.shell{width:min(100% - 24px,1320px)}.nav-wrap{min-height:60px;padding:8px 0 0;gap:8px}.brand{font-size:18px}.brand .brand-symbol{width:28px;height:28px;padding:6px 5px}.mobile-nav summary{min-height:40px;padding:7px 11px}.mobile-quick-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:0 0 100%;width:100%;margin-top:2px;border-top:1px solid #ffffff2b}.mobile-quick-nav a{display:grid;place-items:center;min-height:42px;padding:7px 4px;border-bottom:3px solid transparent;color:#d5e9da;text-align:center;text-decoration:none;font-size:12px;font-weight:700}.mobile-quick-nav a.active{border-color:#cce7cc;color:#fff}.mobile-nav-panel{top:calc(100% - 1px)}h1{font-size:26px}h2{font-size:18px}.page-head{margin:20px 0 14px}.page-head .lead{margin-top:3px}.card{padding:16px}.workweek-card{padding:13px;margin:20px 0 10px}.workweek-heading{margin-bottom:8px}.workweek-heading strong{font-size:17px}.workweek-heading span{font-size:11px}.workweek-days{gap:5px}.workweek-day{min-height:49px;padding:4px 1px 3px;border-radius:8px}.workweek-day span{font-size:10px}.workweek-day strong{font-size:14px}.dashboard-more-stats,.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:11px}.dashboard-more-stats .stat,.dashboard-stats .stat{min-height:72px;padding:10px 12px}.dashboard-more-stats .stat span,.dashboard-stats .stat span{font-size:11px}.dashboard-more-stats .stat strong,.dashboard-stats .stat strong{font-size:17px}.dashboard-more-stats .stat a,.dashboard-stats .stat a{display:none}.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 13px}.dashboard-actions .button{width:auto;min-height:46px;padding:9px 6px;font-size:13px;white-space:normal}.dashboard-table{padding:14px 12px}.dashboard-table .section-heading{flex-direction:row;align-items:center;gap:8px;margin-bottom:8px}.dashboard-table .section-heading h2{font-size:18px}.dashboard-table .section-heading .button{min-height:38px;padding:7px 9px;font-size:12px}.dashboard-employee-list{margin:0!important;padding:0!important}.dashboard-employee-list tbody{display:grid;gap:0}.dashboard-employee-list tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 8px;padding:11px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.dashboard-employee-list tbody td:first-child{grid-column:1;grid-row:1;padding:0;border:0}.dashboard-employee-list tbody td:nth-child(2){grid-column:1;grid-row:2;color:var(--muted)}.dashboard-employee-list tbody td:nth-child(2):before{content:"ค่าแรง/วัน ";display:inline;margin:0}.dashboard-employee-list tbody td:nth-child(3){grid-column:2;grid-row:1;text-align:right;font-weight:800}.dashboard-employee-list tbody td:nth-child(3):before{content:"หนี้ ";display:inline;margin:0;font-weight:600}.dashboard-employee-list tbody td:nth-child(4){grid-column:2;grid-row:2;text-align:right}.dashboard-employee-list tbody td:nth-child(4):before{content:"เบิก ";display:inline;margin:0}.dashboard-employee-list tbody td.mobile-card-action{grid-column:1/-1;grid-row:3;padding-top:0;text-align:right}.dashboard-employee-list tbody td.mobile-card-action .button{display:inline-flex;align-items:center;justify-content:flex-end;width:auto;min-height:34px;padding:3px 0;border:0;background:transparent;color:var(--green-dark);text-decoration:underline;text-underline-offset:3px}.dashboard-employee-list .employee-avatar{width:27px;height:27px}.payroll-period-card{padding:0}.payroll-period-disclosure>summary{align-items:flex-start;padding:12px 14px;flex-wrap:wrap;gap:2px 8px}.payroll-period-disclosure>summary>span:first-child{flex:1}.payroll-period-disclosure>summary strong{order:3;flex:0 0 100%;font-size:12px}.payroll-period-form{padding:12px 14px 14px;gap:10px}.payroll-reference-card{padding:13px 14px}.payroll-reference-card h2{font-size:16px}.payroll-reference-card label{width:100%}.payroll-reference-inline{align-items:stretch;flex-direction:column;gap:10px;margin-top:18px;padding:16px 0 0}html.payroll-mobile-detail-page .payroll-reference-inline{display:none}.attendance-card>.section-heading{margin-bottom:10px}.attendance-card>.attendance-heading{flex-direction:row;align-items:center}.attendance-heading .mobile-sort-toolbar,.attendance-heading h2{margin:0}.attendance-card>.section-heading .table-hint,.payroll-form .section-heading .table-hint{display:none}.attendance-toolbar{gap:9px;margin-bottom:12px}.attendance-table tbody{gap:6px}.settings-debt-list{gap:9px}.calendar-cell{border-radius:6px}html.payroll-mobile-detail-page body{background:var(--canvas)}}@media (max-width:480px){.shell{width:min(100% - 24px,1320px)}.dashboard-actions{flex-direction:row}.dashboard-actions .button{width:auto}.dashboard-employee-list .mobile-sort-toolbar{margin:0 0 6px}.attendance-actions{flex-direction:row}.attendance-actions button{width:auto}}@media (max-width:640px){.payroll-table tbody{gap:0}.payroll-table tbody tr:not([data-mobile-detail=true]){min-height:52px;padding:3px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.payroll-table tbody tr:not([data-mobile-detail=true]) td:first-child{min-width:0}.payroll-table tbody tr:not([data-mobile-detail=true]) td:last-child{min-width:88px;padding:4px 2px;border:0;border-radius:0;background:transparent;color:var(--green-dark);font-family:Shop Display,sans-serif;font-size:16px}.payroll-table tbody tr:not([data-mobile-detail=true]) .payroll-list-open{min-height:44px;padding:4px 2px;font-size:15px}.payroll-table tbody tr:not([data-mobile-detail=true]) .payroll-chevron{color:var(--muted)}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.payroll-chevron-button{display:none}.attendance-card[data-saved=true]{order:2}.daily-secondary{order:1}.attendance-card[data-saved=false]{order:0}.attendance-card button:disabled{background:#e3e8e4;color:#596a61;border-color:#d3ddd5}.employee-deduction-item .deduction-setting-form button:disabled{background:#e3e8e4;color:#596a61;cursor:default}.employee-deduction-list{gap:6px}.employee-deduction-group{padding:0;overflow:hidden;background:var(--paper)}.employee-deduction-group>summary,.employee-deduction-item>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;cursor:pointer;list-style:none}.employee-deduction-group>summary::-webkit-details-marker,.employee-deduction-item>summary::-webkit-details-marker{display:none}.employee-deduction-group>summary strong,.employee-deduction-item>summary strong{flex:1;min-width:0;overflow-wrap:anywhere}.employee-deduction-group>summary>span:not(.deduction-chevron){color:var(--muted);font-size:13px;white-space:nowrap}.employee-deduction-item>summary>span:not(.deduction-chevron){white-space:nowrap}.deduction-chevron{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;color:var(--muted);font-size:22px;line-height:1;transition:transform .15s ease}.employee-deduction-group[open]>summary .deduction-chevron,.employee-deduction-item[open]>summary .deduction-chevron{transform:rotate(90deg)}.employee-deduction-entries{padding:0 12px 8px}.employee-deduction-item{display:block;padding:0;border-top:1px solid var(--line)}.employee-deduction-item>summary{padding:9px 0}.deduction-edit-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:4px 0 12px}.deduction-edit-actions .deduction-setting-form{display:contents}.deduction-edit-actions .deduction-setting-form>label{min-width:0}.deduction-edit-actions .deduction-setting-form>button{grid-column:1;grid-row:2;width:100%}.deduction-edit-actions>form:last-child{grid-column:2;grid-row:2}.deduction-edit-actions>form:last-child button{width:100%}.deduction-name-field{position:relative;display:grid;gap:7px;min-width:0}.deduction-name-suggestions{position:absolute;z-index:10;top:100%;left:0;right:0;max-height:220px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 8px 20px #173d3626}.deduction-name-suggestions button{display:block;width:100%;min-height:42px;padding:8px;background:transparent;color:var(--ink);text-align:left}.deduction-name-suggestions button:focus-visible,.deduction-name-suggestions button:hover{background:var(--soft)}.named-advance-details{padding:4px 0 12px}.named-advance-details .named-advance-stats{margin-top:10px}.named-advance-details .named-advance-stats>div{background:var(--soft)}.custom-select{position:relative;display:block;min-width:0;width:100%}.custom-select select.custom-select-native{position:absolute;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}.custom-select .custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:46px;padding:9px 12px;border:1px solid #b6c9bb;border-radius:10px;background:#fff;color:var(--ink);text-align:left;font-weight:500}.custom-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-trigger .custom-select-arrow{flex:none;font-size:16px;line-height:1;transition:transform .15s ease}.custom-select-trigger[aria-invalid=true]{border-color:var(--red)}.custom-select-error{display:block;margin-top:4px;color:var(--red);font-size:12px}.custom-select-trigger[aria-expanded=true] .custom-select-arrow{transform:rotate(180deg)}.custom-select-menu{z-index:2000;overflow:auto;overscroll-behavior:contain;padding:5px;border:1px solid #d5e1d8;border-radius:14px;background:#fffefc;box-shadow:0 10px 32px #173d3630;animation:popover-enter .14s ease-out both}.custom-select-menu.is-closing{animation:custom-select-exit .12s ease-in both;pointer-events:none}@keyframes custom-select-exit{to{opacity:0;transform:translateY(-4px)}}.custom-select-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:9px 11px;background:transparent;color:var(--ink);text-align:left;font-weight:500}.custom-select-menu button[aria-selected=true]{background:var(--soft);color:var(--green-dark);font-weight:700}.custom-select-menu button:focus-visible,.custom-select-menu button:hover{background:var(--soft);color:var(--green-dark)}.custom-select-menu button:focus-visible,.custom-select-trigger:focus-visible{outline:2px solid var(--green);outline-offset:-2px}@media (hover:none) and (pointer:coarse){.custom-select-menu button:focus-visible,.custom-select-trigger:focus-visible{outline:none}}.custom-select-menu button:disabled{opacity:.5}@media (max-width:760px){.custom-select .custom-select-trigger,.custom-select-menu button{font-size:16px}}@media (max-width:640px){.attendance-table tr:has(select option[value=FULL]:checked) .custom-select-trigger{background:#f6fcf8;border-color:#a7d5ba}.attendance-table tr:has(select option[value=HALF]:checked) .custom-select-trigger{background:#fffbec;border-color:#dfc875}.attendance-table tr:has(select option[value=ABSENT]:checked) .custom-select-trigger{background:#fff8f6;border-color:#e6b4a9}}.date-warning{background:#fff6d5;border-color:#b88a28}.date-warning-text{display:block;color:#755410;font-weight:700}.action-toast{position:fixed;z-index:100;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(92vw,480px);padding:12px 14px;border-radius:10px;background:#176047;color:#fff;box-shadow:0 6px 22px #173d3633}.action-toast button{min-height:40px;padding:5px 10px;border:1px solid;background:transparent;color:inherit;white-space:nowrap}.action-toast.is-warning{background:#fff1bd;color:#674a07}.action-toast.is-error{background:#963c2c}.confirm-dialog{width:min(420px,calc(100% - 32px));max-width:100%;max-height:calc(100dvh - 32px);overflow-y:auto;margin:auto;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 18px 50px #102c2440}.confirm-dialog::backdrop{background:#102c2499}.confirm-dialog[open]{animation:dialog-enter .18s ease-out both}.confirm-dialog[open].is-closing{animation:dialog-exit .12s ease-in both}.confirm-dialog.is-closing::backdrop{animation:dialog-backdrop-exit .12s ease-in both}@keyframes dialog-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes dialog-backdrop-exit{to{opacity:0}}.confirm-dialog h2{margin:0 0 10px}.confirm-dialog p{margin:0;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.confirm-dialog-warnings{margin-top:16px;padding:12px 14px;border:1px solid #e7ba83;border-radius:10px;background:#fff7e8;color:#7a3e10;line-height:1.5;overflow-wrap:anywhere}.confirm-dialog-warnings ul{margin:8px 0 0;padding-left:20px}.confirm-dialog-warnings li+li{margin-top:8px}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.confirm-dialog-actions button{min-width:92px}.confirm-dialog-actions .confirm-dialog-danger{background:#a83e30}.confirm-dialog-actions .confirm-dialog-danger:hover{background:#7d2f25}@media (hover:none) and (pointer:coarse){.confirm-dialog button:focus-visible{outline:none}}@media (max-width:480px){.confirm-dialog{padding:20px}.confirm-dialog-actions button{flex:1;min-width:0}}.view-switch{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.view-switch a{padding:8px 16px;border-radius:7px;color:var(--ink);text-decoration:none;font-weight:700}.view-switch a[aria-current=page]{background:var(--green);color:#fff}.matrix-sort{display:flex;justify-content:flex-end;margin-bottom:12px}.matrix-sort label{max-width:220px}.matrix-vertical{width:-moz-max-content;width:max-content;min-width:100%}.matrix-vertical td,.matrix-vertical th{min-width:90px;text-align:center}.matrix-vertical th:first-child{position:sticky;left:0;z-index:2;min-width:95px;background:var(--paper)}.matrix-vertical tbody th{font-weight:700}.matrix-vertical a{color:inherit;text-decoration:none}.matrix-vertical td a{display:block;padding:8px}.matrix-vertical td small{display:block}@media (max-width:640px){.payroll-chevron-button{display:inline;min-height:0;min-width:0;padding:0;border:0;border-radius:0;background:none;color:var(--ink)}.payroll-table tbody tr[data-mobile-detail=true] .payroll-chevron-button{display:none}.matrix-sort label{max-width:none;width:100%}.sortable-summary .mobile-sort-toolbar{display:flex}}.navigation-back{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;margin:0 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--green-dark);text-decoration:none;font-weight:700}.navigation-back:hover{background:var(--soft)}.action-toast{display:block;overflow:hidden;padding:0;animation:toast-enter .3s cubic-bezier(.16,1,.3,1) both}.action-toast.is-closing{animation:toast-exit .19s ease-in both;pointer-events:none}.action-toast-content{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.action-toast-actions{display:flex;align-items:center;gap:8px;flex:none}.action-toast .toast-close{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:4px;border:0;font-size:24px;line-height:1}.toast-timer{display:block;height:4px;background:currentColor;opacity:.65;transform-origin:left;animation:toast-countdown 4s linear forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(-50%,28px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-exit{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,28px)}}@keyframes toast-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes payroll-hours-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.settings-debt-history[open]>ol,.workday-help[open]>p,.workday-history[open]>:not(summary){animation:payroll-hours-enter .18s ease-out both}@media (max-width:760px){.settings-debt-editor.is-ready.is-open.is-closing .settings-debt-form{animation:dialog-exit .12s ease-in both;pointer-events:none}}@media (max-width:640px){.payroll-table tbody tr[data-mobile-detail=true][data-hours-closing=true] td:nth-child(4),.payroll-table tbody tr[data-mobile-detail=true][data-hours-closing=true] td:nth-child(5){pointer-events:none}}.navigation-back{gap:9px}.navigation-back:before{content:"";display:inline-block;width:9px;height:9px;border-left:2px solid;border-bottom:2px solid;transform:rotate(45deg);flex:none}@media (prefers-reduced-motion:reduce){.action-toast,.action-toast.is-closing,.toast-timer{animation:none}}.debt-change{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:700}.debt-change.is-up{color:#a52f24}.debt-change.is-down{color:#176047}@media (max-width:640px){.payroll-table tbody tr:not([data-mobile-detail=true]){position:relative;cursor:pointer}.payroll-table tbody tr:not([data-mobile-detail=true]):active{background:var(--soft)}.payroll-table tbody tr:not([data-mobile-detail=true]) td:first-child,.table-wrap.payroll-table table tbody tr:not([data-mobile-detail=true]):hover td:first-child{background:transparent}.payroll-table tbody tr:not([data-mobile-detail=true]) .payroll-list-open:active{background:transparent;transform:none}.payroll-table tbody tr:not([data-mobile-detail=true]):has(.payroll-list-open:focus-visible){outline:2px solid var(--green);outline-offset:2px}.payroll-table tbody tr:not([data-mobile-detail=true]) .payroll-list-open:focus-visible{outline:0}.payroll-list-open:after{content:"";position:absolute;inset:0}.payroll-chevron-button{pointer-events:none}}@media (max-width:640px) and (hover:hover){.attendance-table tbody tr:hover{box-shadow:inset 0 0 0 999px #173d3612}.payroll-table tbody tr:not([data-mobile-detail=true]):hover{background:var(--soft)}}.payroll-table .deduction-input::-moz-placeholder{color:var(--ink);opacity:1}.payroll-table .deduction-input::placeholder{color:var(--ink);opacity:1}.payroll-net-amount.is-negative{color:var(--red)}.audit-filter{margin-bottom:16px}.audit-list ol{list-style:none;padding:0;margin:0}.audit-list li{padding:16px 0;border-bottom:1px solid var(--line)}.audit-item-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}.audit-item-head time{color:var(--muted);font-size:12px}.audit-list li p{margin:4px 0;font-weight:700}.audit-list dl{display:grid;gap:4px;margin:8px 0 0}.audit-list dl div{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1fr);gap:8px}.audit-list dt{color:var(--muted)}.audit-list dd{margin:0;overflow-wrap:anywhere}.audit-pages{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:16px}.default-number-input::-moz-placeholder{color:var(--ink);opacity:1}.default-number-input::placeholder{color:var(--ink);opacity:1}.draft-save{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:10px}.button.secondary.draft-save{background:var(--green);border-color:var(--green);color:#fff}.button.secondary.draft-save:hover{background:var(--green-dark);border-color:var(--green-dark)}.draft-save-compact{min-height:44px;padding:8px 12px}.draft-status{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.draft-status.is-error{color:#a52f24}.payroll-list-controls{display:flex;align-items:center;gap:8px;flex:none}.payroll-detail-actions{display:none}@media (max-width:640px){.payroll-form .section-heading{align-items:flex-start;gap:8px}.payroll-form .payroll-list-heading{flex-direction:row;justify-content:space-between}.payroll-list-controls .mobile-sort-toolbar{margin:0}.payroll-form .section-heading .draft-save{flex:none}.payroll-table tbody tr[data-mobile-detail=true] td:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;margin-top:12px;padding:14px}html.payroll-mobile-detail-page .payroll-table tbody tr[data-mobile-detail=true] td:last-child{margin-top:12px}.payroll-table tbody tr[data-mobile-detail=true] .payroll-detail-actions{display:contents}.payroll-table tbody tr[data-mobile-detail=true] .payroll-net-amount{grid-column:1;grid-row:2;align-self:center;white-space:nowrap;overflow-wrap:normal}.payroll-table tbody tr[data-mobile-detail=true] .payroll-detail-actions .draft-status{grid-column:1/-1;grid-row:1;margin:0;text-align:left;white-space:normal;overflow-wrap:anywhere}.payroll-table tbody tr[data-mobile-detail=true] .payroll-detail-actions .draft-save{grid-column:2;grid-row:2}.payroll-table tbody tr[data-mobile-detail=true] .payroll-detail-actions .payroll-mobile-done{grid-column:3;grid-row:2}.payroll-table tbody tr[data-mobile-detail=true] td:last-child:not(:has(.draft-status)) .draft-save,.payroll-table tbody tr[data-mobile-detail=true] td:last-child:not(:has(.draft-status)) .payroll-mobile-done,.payroll-table tbody tr[data-mobile-detail=true] td:last-child:not(:has(.draft-status)) .payroll-net-amount{grid-row:1}}