@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--series-1: #2a78d6;--series-2: #eb6834;--chart-surface: #fcfcfb;--ink-muted: #898781;--day-saturday: #ddebf7;--day-sunday: #fce4d6;--day-holiday: #f8cbad;--cell-hover: rgba(42, 120, 214, .08);--cell-selected: rgba(42, 120, 214, .16);--chart-offday: rgba(20, 20, 19, .05);--cell-locked: rgba(20, 20, 19, .07);--grid-head: #f4f6f9;--page-bg: #f6f7f9}[data-mantine-color-scheme=dark]{--series-1: #3987e5;--series-2: #d95926;--chart-surface: #1a1a19;--day-saturday: #1d2a3a;--day-sunday: #3a2a20;--day-holiday: #4a2e1c;--cell-hover: rgba(57, 135, 229, .14);--cell-selected: rgba(57, 135, 229, .28);--chart-offday: rgba(255, 255, 255, .06);--cell-locked: rgba(255, 255, 255, .07);--grid-head: #25262b;--page-bg: #141517}html,body{background:var(--page-bg)}body{-webkit-font-smoothing:antialiased}.tabular{font-variant-numeric:tabular-nums}.grid-scroll{overflow:auto;max-height:calc(100dvh - 250px);min-height:240px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-lg);background:var(--mantine-color-body);outline:none}.entry-grid{border-collapse:separate;border-spacing:0;font-size:var(--mantine-font-size-sm);-webkit-user-select:none;user-select:none;min-width:100%;outline:none}.entry-grid:focus-visible{outline:2px solid var(--mantine-color-brand-6);outline-offset:-2px}.entry-grid th,.entry-grid td{border-right:1px solid var(--mantine-color-default-border);border-bottom:1px solid var(--mantine-color-default-border)}.entry-grid thead th{position:sticky;top:0;z-index:2;background:var(--grid-head);font-weight:600;padding:6px 2px;text-align:center;line-height:1.2}.entry-grid .emp-col{position:sticky;left:0;z-index:1;background:var(--mantine-color-body);text-align:left;min-width:170px;max-width:210px;padding:6px 10px;font-weight:500}.entry-grid thead .emp-col{z-index:3;background:var(--grid-head)}.entry-grid td.cell{position:relative;height:46px;min-width:38px;text-align:center;vertical-align:middle;cursor:pointer;padding:2px;transition:background-color 80ms ease}.entry-grid.week td.cell{min-width:112px}.entry-grid td.cell:hover{background-color:var(--cell-hover)}.entry-grid .sat{background-color:var(--day-saturday)}.entry-grid .sun{background-color:var(--day-sunday)}.entry-grid .hol{background-color:var(--day-holiday)}.entry-grid td.cell.selected{background-color:var(--cell-selected);box-shadow:inset 0 0 0 2px var(--mantine-color-brand-6)}.entry-grid td.cell.inactive{background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .entry-grid td.cell.inactive{background-color:var(--mantine-color-dark-6)}.entry-grid td.cell.inactive{cursor:not-allowed;opacity:.6}.entry-grid td.cell.locked{position:relative;cursor:not-allowed;background-image:repeating-linear-gradient(135deg,transparent 0 7px,var(--cell-locked) 7px 8px)}.entry-grid .cell-lock{position:absolute;top:3px;right:3px;color:var(--mantine-color-dimmed)}.entry-grid th.today{box-shadow:inset 0 -3px 0 var(--mantine-color-brand-6)}.entry-grid .total-col{position:sticky;right:0;background:var(--grid-head);min-width:56px;padding:4px 8px;text-align:right;font-weight:600}.cell-leave{position:absolute;top:2px;left:3px;font-size:10px;font-weight:700;line-height:1;color:var(--mantine-color-grape-8)}[data-mantine-color-scheme=dark] .cell-leave,[data-mantine-color-scheme=dark] .month-day-leave{color:var(--mantine-color-grape-3)}.cell-chips{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;align-items:center}.cell-hours{font-size:10px;color:var(--mantine-color-dimmed);line-height:1;margin-top:2px}.action-bar{position:fixed;left:calc(50% + var(--app-shell-navbar-offset, 0px) / 2);bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:200;width:max-content;max-width:calc(100vw - var(--app-shell-navbar-offset, 0px) - 24px)}.action-bar-spacer{height:72px}.action-bar .mantine-Button-root{flex-shrink:0}@media(max-width:47.99em){.action-bar{bottom:calc(76px + env(safe-area-inset-bottom));left:12px;right:12px;width:auto;max-width:none;transform:none;overflow-x:auto;scrollbar-width:none}.action-bar-spacer{height:64px}.action-bar .mantine-Button-root,.action-bar .mantine-ActionIcon-root,.action-bar .mantine-Text-root{flex-shrink:0;white-space:nowrap}}.month-cal{display:flex;flex-direction:column;gap:4px;user-select:none;-webkit-user-select:none}.month-cal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.month-cal-head{text-align:center;font-size:12px;font-weight:600;color:var(--mantine-color-dimmed);padding:2px 0}.month-day{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:88px;min-width:0;padding:6px;border:1px solid var(--mantine-color-default-border);border-radius:8px;background:var(--mantine-color-body);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color 80ms ease,box-shadow 80ms ease}.month-day.blank{border-color:transparent;background:transparent;cursor:default}.month-day:not(.blank):not(.inactive):not(.locked):hover{background-color:var(--cell-hover)}.month-day:focus-visible{outline:2px solid var(--mantine-color-brand-6);outline-offset:1px}.month-day.sat{background-color:var(--day-saturday)}.month-day.sun{background-color:var(--day-sunday)}.month-day.hol{background-color:var(--day-holiday)}.month-day.selected,.month-day.selected:hover{background-color:var(--cell-selected);box-shadow:inset 0 0 0 2px var(--mantine-color-brand-6)}.month-day.inactive{cursor:not-allowed;opacity:.5}.month-day.locked{cursor:not-allowed;background-image:repeating-linear-gradient(135deg,transparent 0 7px,var(--cell-locked) 7px 8px)}.month-day-top{display:flex;align-items:center;gap:6px}.month-day-num{font-size:14px;font-weight:650;line-height:22px;min-width:22px;text-align:center;border-radius:11px}.month-day.today .month-day-num{background:var(--mantine-color-brand-6);color:var(--mantine-color-white)}.month-day-missing{width:8px;height:8px;border-radius:4px;background:var(--mantine-color-orange-6)}.month-day-leave{font-size:11px;font-weight:700;white-space:nowrap;color:var(--mantine-color-grape-8)}@media(max-width:36em){.month-day-leave-unit{display:none}}.month-day-lock{margin-left:auto;color:var(--mantine-color-dimmed)}.month-day-holiday{font-size:11px;line-height:1.2;color:var(--mantine-color-dimmed)}.month-day-chips{display:flex;flex-wrap:wrap;gap:3px}.month-day-hours{margin-top:auto;font-size:12px;font-weight:600;text-align:right;color:var(--mantine-color-dimmed)}.month-day.skeleton-day{cursor:default}@media(max-width:36em){.month-cal,.month-cal-row{gap:3px}.month-day{min-height:62px;padding:3px;gap:2px;border-radius:6px}.month-day-num{font-size:12px;line-height:18px;min-width:18px}.month-day-holiday,.month-day-hours{display:none}.month-day-chips .mantine-Badge-root{padding-inline:3px;font-size:10px}}.ts-table th,.ts-table td{white-space:nowrap;text-align:center}.ts-table td.left,.ts-table th.left{text-align:left}.ts-table tr.sat td{background-color:var(--day-saturday)}.ts-table tr.sun td{background-color:var(--day-sunday)}.ts-table tr.hol td{background-color:var(--day-holiday)}.ts-table tfoot td{font-weight:700;background:var(--grid-head)}.ts-table tr.not-employed td{color:var(--mantine-color-dimmed)}.ts-table .sticky-col{position:sticky;left:0;z-index:1;background-color:var(--mantine-color-body);box-shadow:inset -1px 0 0 var(--table-border-color)}.ts-table .sticky-total{position:sticky;right:0;z-index:1;background-color:var(--mantine-color-body);box-shadow:inset 1px 0 0 var(--table-border-color)}.ts-table thead .sticky-total,.ts-table tfoot .sticky-total{background-color:var(--grid-head)}.ts-table tr[data-striped=odd]:nth-of-type(odd)>.sticky-col{background-color:var(--table-striped-color)}.ts-table tfoot .sticky-col{background-color:var(--grid-head)}.ts-table .sticky-end{background-color:var(--mantine-color-body);box-shadow:inset 1px 0 0 var(--table-border-color)}@media(min-width:100em){.ts-table .sticky-end{position:sticky;right:0;z-index:1}}.payroll-status .mantine-Badge-root{flex-shrink:0;max-width:none}.ts-table tr[data-striped=odd]:nth-of-type(odd)>.sticky-end{background-color:var(--table-striped-color)}.ts-table tfoot .sticky-end,.payroll-table tr.unit-total .sticky-end{background-color:var(--grid-head)}@media(hover:hover){.ts-table tr[data-hover]:hover>.sticky-end{background-color:var(--tr-hover-bg)}}@media(hover:hover){.ts-table tr[data-hover]:hover>.sticky-col{background-color:var(--tr-hover-bg)}}.payroll-table tr.unit-row td{background:var(--grid-head);border-top:2px solid var(--mantine-color-brand-5)}.payroll-table tr.unit-total td{font-weight:700;border-bottom:2px solid var(--table-border-color)}.payroll-table tr.unit-total+tr.unit-row td{border-top-width:2px}.day-chart{--day-chart-grid: rgba(173, 181, 189, .6);--day-chart-text: var(--mantine-color-gray-7)}[data-mantine-color-scheme=dark] .day-chart{--day-chart-grid: rgba(105, 105, 105, .6);--day-chart-text: var(--mantine-color-dark-1)}.day-chart svg{overflow:visible}.day-chart text{font-family:var(--mantine-font-family)}.line-key{display:inline-block;flex:none;width:12px;height:3px;border-radius:2px}.code-bar-track{position:relative;height:12px;border-radius:0 4px 4px 0}.code-bar{height:12px;background:var(--series-1);border-radius:0 4px 4px 0;min-width:2px}.bottom-nav a{text-decoration:none}.sidebar{--nav-ease: cubic-bezier(.22, .61, .36, 1);--nav-bg: #131f33;--nav-line: #1a2941;--nav-hover: #223453;--nav-text: #b6c6e3;--nav-muted: #8ea5cb;--nav-active: #2563eb}.mantine-AppShell-navbar.sidebar{background-color:var(--nav-bg);border-inline-end:1px solid var(--nav-line);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;color:var(--nav-text);transition-property:transform,top,height,width}.sidebar-toggle{position:absolute;top:24px;inset-inline-end:-12px;z-index:1;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--nav-hover);border-radius:50%;background-color:var(--nav-line);color:var(--nav-text);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1)}.sidebar-toggle:hover{transform:scale(1.1);background-color:var(--nav-active);color:#fff}.sidebar-scroll{display:flex;flex-direction:column;height:100%;overflow:hidden auto;overscroll-behavior:contain;padding-block:16px}.sidebar-brand{display:flex;flex:none;align-items:center;margin:0 8px 16px;padding:2px 12px}.sidebar-stack{display:flex;flex-direction:column;min-width:0}.sidebar-brand-name{color:#fff;font-size:15px;font-weight:700;letter-spacing:.02em;line-height:1.3}.sidebar-sub,.sidebar-user-name{overflow:hidden;text-overflow:ellipsis;line-height:1.3}.sidebar-sub{color:var(--nav-muted);font-size:12px}.sidebar-user-name{color:#fff;font-size:13px;font-weight:500}.sidebar-nav{display:flex;flex:1;flex-direction:column;gap:4px;padding-inline:8px}.sidebar-item{display:flex;align-items:center;width:100%;padding:9px 18px;border-radius:8px;color:var(--nav-text);font-size:14px;font-weight:500;line-height:20px;text-decoration:none;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.sidebar-item:hover{background-color:var(--nav-hover);color:#fff}.sidebar-item[data-active]{background-color:var(--nav-active);color:#fff;box-shadow:0 4px 6px -1px #1e3a8a4d,0 2px 4px -2px #1e3a8a4d}.sidebar-item:focus-visible,.sidebar-toggle:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.sidebar-item>svg{flex:none}.sidebar-action{font-weight:400}.sidebar-user{padding-inline:16px}.sidebar-label{overflow:hidden;max-width:152px;margin-inline-start:12px;white-space:nowrap;opacity:1;transition-property:max-width,margin-inline-start,opacity;transition-duration:.3s;transition-timing-function:var(--nav-ease)}.sidebar-foot{display:flex;flex:none;flex-direction:column;gap:4px;padding:8px 8px 0}.sidebar-divider{height:1px;margin:0 4px 4px;background-color:var(--nav-line)}@media(min-width:48em){.sidebar[data-collapsed] .sidebar-label{max-width:0;margin-inline-start:0;opacity:0}}@media(max-width:47.99em){.sidebar-toggle,.sidebar-brand{display:none}}.sidebar-tip{--tooltip-bg: #1a2941;--tooltip-color: #fff;padding:4px 10px;border:1px solid #2c4368;border-radius:8px;font-size:12px;font-weight:500;box-shadow:0 4px 12px #0a122059}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar *,.sidebar-tip{transition-duration:.01ms!important}}.plate{display:inline-block;padding:1px 8px;border:1.5px solid var(--mantine-color-default-border);border-radius:4px;background:var(--mantine-color-body);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.visit-card{display:flex;flex-direction:column;border-left:4px solid var(--mantine-color-yellow-5)}.visit-card[data-done]{border-left-color:var(--mantine-color-teal-5)}.visit-card[data-left]{border-left-color:var(--mantine-color-gray-4);opacity:.85}.dim-icon{flex:none;color:var(--mantine-color-dimmed)}.notice-item{display:flex;gap:12px;align-items:flex-start;width:100%;padding:10px 14px;border-bottom:1px solid var(--mantine-color-default-border);transition:background-color .15s ease}.notice-item:hover{background:var(--mantine-color-default-hover)}.notice-item[data-unread]{background:var(--mantine-color-brand-light)}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:8px 14px;border-radius:8px;background:var(--mantine-color-body);color:var(--mantine-color-text);font-weight:600;transform:translateY(-150%);transition:transform .15s ease}.skip-link:focus{transform:none;outline:2px solid var(--mantine-color-brand-5)}.bottom-nav a{min-height:48px;display:flex;align-items:center;justify-content:center}@media(min-width:48em){.grid-span-2{grid-column:span 2}}.wh-tile{display:flex;flex-direction:column;gap:4px;min-height:104px;padding:14px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-lg);background-color:var(--mantine-color-body);transition:border-color .12s ease,box-shadow .12s ease}.wh-tile:hover,.wh-tile:focus-visible{border-color:var(--mantine-color-brand-5);box-shadow:var(--mantine-shadow-sm)}.wh-tile[data-color=green] svg{color:var(--mantine-color-green-7)}.wh-tile[data-color=blue] svg{color:var(--mantine-color-blue-7)}.wh-tile[data-color=violet] svg{color:var(--mantine-color-violet-7)}.wh-tile[data-color=red] svg{color:var(--mantine-color-red-7)}.wh-tile[data-color=orange] svg{color:var(--mantine-color-orange-7)}@media(pointer:coarse){.mantine-Table-td .mantine-ActionIcon-root,.mantine-Card-root .mantine-ActionIcon-root{min-width:40px;min-height:40px}.mantine-Table-td .mantine-Button-root{min-height:36px}}.gchip{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 6px;border:1px solid transparent;border-radius:var(--mantine-radius-sm);font-size:11px;font-weight:700;letter-spacing:.25px;line-height:1;white-space:nowrap}.gchip[data-size=sm]{height:18px;padding:0 5px;font-size:10px}.gchip[data-v=filled]{background-color:var(--c-filled);color:var(--c-text, var(--mantine-color-white))}.gchip[data-v=light]{background-color:var(--c-light);color:var(--c-light-color)}.gchip[data-v=outline]{border-color:var(--c-outline);color:var(--c-outline)}
