@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/kanit-thai-500-normal-BB8gri04.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/kanit-latin-500-normal-CX_4XcKi.woff2)format("woff2");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:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/kanit-thai-600-normal-Bj6oiaDc.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/kanit-latin-600-normal-0lS78yAd.woff2)format("woff2");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:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-sans-thai-thai-400-normal-Bt1rR4gi.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-sans-thai-latin-400-normal-CwmoKdEh.woff2)format("woff2");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:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-sans-thai-thai-500-normal-BrMc1XKn.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-sans-thai-latin-500-normal-DQcnnbdd.woff2)format("woff2");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:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-sans-thai-thai-600-normal-DvfsyWAn.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-sans-thai-latin-600-normal-BR-dhaTH.woff2)format("woff2");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{--color-primary:#111;--color-on-primary:#fff;--color-primary-hover:#2a2a2e;--color-accent:#4a2be8;--color-accent-hover:#3a1fc4;--color-accent-pressed:#2e179e;--color-on-accent:#fff;--color-accent-soft:#eeeafe;--color-accent-text:#3a1fc4;--color-canvas:#f4f4f5;--color-surface:#fff;--color-surface-hover:#f4f4f5;--color-surface-disabled:#e4e4e7;--color-text:#111;--color-text-muted:#5b5b66;--color-text-disabled:#5b5b66;--color-border:#e4e4e7;--color-border-strong:#8b8b95;--color-skeleton:#e9e9ec;--color-danger:#b3261e;--color-danger-hover:#8f1d17;--color-on-danger:#fff;--color-scrim:#111;--color-status-complete-bg:#e7f6ec;--color-status-complete-fg:#13693a;--color-status-working-bg:#e6f0fd;--color-status-working-fg:#1655b8;--color-status-not-in-bg:#f1f1f3;--color-status-not-in-fg:#4a4a55;--color-status-queued-bg:#fff3d6;--color-status-queued-fg:#8a5300;--color-status-review-bg:#e3f5f8;--color-status-review-fg:#0b6274;--color-status-incomplete-bg:#ffede0;--color-status-incomplete-fg:#9a3b00;--color-status-absent-bg:#fde8e8;--color-status-absent-fg:#b3261e;--color-status-leave-bg:#f8e8f6;--color-status-leave-fg:#8a2382;--color-status-holiday-bg:#f1f1f3;--color-status-holiday-fg:#4a4a55;--color-status-stale-bg:#f1f1f3;--color-status-stale-fg:#62626c;--color-status-failed-bg:#fde8e8;--color-status-failed-fg:#b3261e;--color-status-emergency-bg:#b3261e;--color-status-emergency-fg:#fff;--color-pwa-theme:#111;--color-pwa-background:#111;--color-pwa-on-background:#fff;--color-dark-primary:#fff;--color-dark-on-primary:#0e0e10;--color-dark-primary-hover:#e4e4e7;--color-dark-accent:#9d8cff;--color-dark-accent-hover:#b4a7ff;--color-dark-accent-pressed:#8571ff;--color-dark-on-accent:#0e0e10;--color-dark-accent-soft:#262046;--color-dark-accent-text:#c3b8ff;--color-dark-canvas:#0e0e10;--color-dark-surface:#18181b;--color-dark-surface-hover:#222226;--color-dark-surface-disabled:#2a2a2f;--color-dark-text:#f4f4f5;--color-dark-text-muted:#a6a6b0;--color-dark-text-disabled:#a6a6b0;--color-dark-border:#2e2e33;--color-dark-border-strong:#6e6e78;--color-dark-skeleton:#26262b;--color-dark-danger:#ff6b60;--color-dark-danger-hover:#ff8a80;--color-dark-on-danger:#1a0505;--color-dark-scrim:#000;--color-dark-status-complete-bg:#0f2a1a;--color-dark-status-complete-fg:#6fdd9a;--color-dark-status-working-bg:#0e2240;--color-dark-status-working-fg:#8db8ff;--color-dark-status-not-in-bg:#242428;--color-dark-status-not-in-fg:#c4c4cc;--color-dark-status-queued-bg:#33250a;--color-dark-status-queued-fg:#ffc857;--color-dark-status-review-bg:#0a2a31;--color-dark-status-review-fg:#6cd3e6;--color-dark-status-incomplete-bg:#36200f;--color-dark-status-incomplete-fg:#ffa36b;--color-dark-status-absent-bg:#3a1414;--color-dark-status-absent-fg:#ff8a80;--color-dark-status-leave-bg:#331530;--color-dark-status-leave-fg:#f29be8;--color-dark-status-holiday-bg:#242428;--color-dark-status-holiday-fg:#c4c4cc;--color-dark-status-stale-bg:#242428;--color-dark-status-stale-fg:#a6a6b0;--color-dark-status-failed-bg:#3a1414;--color-dark-status-failed-fg:#ff8a80;--color-dark-status-emergency-bg:#ff6b60;--color-dark-status-emergency-fg:#1a0505;--spacing-unit:4px;--spacing-xxs:2px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-2xl:32px;--spacing-3xl:48px;--spacing-4xl:64px;--spacing-tap-min:44px;--spacing-tap-comfy:48px;--spacing-punch-size:200px;--spacing-content-max-employee:560px;--spacing-sidebar-width:248px;--spacing-side-panel-width:420px;--spacing-bottom-nav-height:64px;--spacing-gutter-mobile:16px;--spacing-gutter-desktop:32px;--rounded-none:0px;--rounded-sm:6px;--rounded-md:10px;--rounded-lg:16px;--rounded-xl:24px;--rounded-full:9999px;--type-display-clock-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-display-clock-size:56px;--type-display-clock-weight:600;--type-display-clock-line:1.1;--type-display-clock-feature:"tnum" 1;--type-metric-lg-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-metric-lg-size:32px;--type-metric-lg-weight:600;--type-metric-lg-line:1.2;--type-metric-lg-feature:"tnum" 1;--type-time-md-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-time-md-size:16px;--type-time-md-weight:600;--type-time-md-line:1.5;--type-time-md-feature:"tnum" 1;--type-headline-lg-family:"Kanit", "IBM Plex Sans Thai", system-ui, sans-serif;--type-headline-lg-size:28px;--type-headline-lg-weight:600;--type-headline-lg-line:1.5;--type-headline-lg-feature:normal;--type-headline-md-family:"Kanit", "IBM Plex Sans Thai", system-ui, sans-serif;--type-headline-md-size:22px;--type-headline-md-weight:600;--type-headline-md-line:1.5;--type-headline-md-feature:normal;--type-title-md-family:"Kanit", "IBM Plex Sans Thai", system-ui, sans-serif;--type-title-md-size:18px;--type-title-md-weight:500;--type-title-md-line:1.5;--type-title-md-feature:normal;--type-punch-label-family:"Kanit", "IBM Plex Sans Thai", system-ui, sans-serif;--type-punch-label-size:24px;--type-punch-label-weight:600;--type-punch-label-line:1.5;--type-punch-label-feature:normal;--type-body-lg-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-body-lg-size:17px;--type-body-lg-weight:400;--type-body-lg-line:1.65;--type-body-lg-feature:normal;--type-body-md-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-body-md-size:16px;--type-body-md-weight:400;--type-body-md-line:1.6;--type-body-md-feature:normal;--type-body-sm-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-body-sm-size:14px;--type-body-sm-weight:400;--type-body-sm-line:1.6;--type-body-sm-feature:normal;--type-label-lg-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-label-lg-size:16px;--type-label-lg-weight:600;--type-label-lg-line:1.5;--type-label-lg-feature:normal;--type-label-md-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-label-md-size:14px;--type-label-md-weight:500;--type-label-md-line:1.5;--type-label-md-feature:normal;--type-label-sm-family:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, sans-serif;--type-label-sm-size:12px;--type-label-sm-weight:500;--type-label-sm-line:1.5;--type-label-sm-feature:normal;--elevation-overlay:0 8px 24px #0000001f;--elevation-punch:0 10px 30px color-mix(in srgb, var(--color-accent) 30%, transparent);--motion-fast:.12s ease-out;--motion-base:.2s ease-out;--motion-slow:.32s ease-out;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:var(--color-primary);--on-primary:var(--color-on-primary);--primary-hover:var(--color-primary-hover);--accent:var(--color-accent);--accent-hover:var(--color-accent-hover);--accent-pressed:var(--color-accent-pressed);--on-accent:var(--color-on-accent);--accent-soft:var(--color-accent-soft);--accent-text:var(--color-accent-text);--canvas:var(--color-canvas);--surface:var(--color-surface);--surface-hover:var(--color-surface-hover);--surface-disabled:var(--color-surface-disabled);--text:var(--color-text);--text-muted:var(--color-text-muted);--text-disabled:var(--color-text-disabled);--border:var(--color-border);--border-strong:var(--color-border-strong);--skeleton:var(--color-skeleton);--danger:var(--color-danger);--danger-hover:var(--color-danger-hover);--on-danger:var(--color-on-danger);--scrim:var(--color-scrim);--status-complete-bg:var(--color-status-complete-bg);--status-complete-fg:var(--color-status-complete-fg);--status-working-bg:var(--color-status-working-bg);--status-working-fg:var(--color-status-working-fg);--status-not-in-bg:var(--color-status-not-in-bg);--status-not-in-fg:var(--color-status-not-in-fg);--status-queued-bg:var(--color-status-queued-bg);--status-queued-fg:var(--color-status-queued-fg);--status-review-bg:var(--color-status-review-bg);--status-review-fg:var(--color-status-review-fg);--status-incomplete-bg:var(--color-status-incomplete-bg);--status-incomplete-fg:var(--color-status-incomplete-fg);--status-absent-bg:var(--color-status-absent-bg);--status-absent-fg:var(--color-status-absent-fg);--status-leave-bg:var(--color-status-leave-bg);--status-leave-fg:var(--color-status-leave-fg);--status-holiday-bg:var(--color-status-holiday-bg);--status-holiday-fg:var(--color-status-holiday-fg);--status-stale-bg:var(--color-status-stale-bg);--status-stale-fg:var(--color-status-stale-fg);--status-failed-bg:var(--color-status-failed-bg);--status-failed-fg:var(--color-status-failed-fg);--status-emergency-bg:var(--color-status-emergency-bg);--status-emergency-fg:var(--color-status-emergency-fg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--primary:var(--color-dark-primary);--on-primary:var(--color-dark-on-primary);--primary-hover:var(--color-dark-primary-hover);--accent:var(--color-dark-accent);--accent-hover:var(--color-dark-accent-hover);--accent-pressed:var(--color-dark-accent-pressed);--on-accent:var(--color-dark-on-accent);--accent-soft:var(--color-dark-accent-soft);--accent-text:var(--color-dark-accent-text);--canvas:var(--color-dark-canvas);--surface:var(--color-dark-surface);--surface-hover:var(--color-dark-surface-hover);--surface-disabled:var(--color-dark-surface-disabled);--text:var(--color-dark-text);--text-muted:var(--color-dark-text-muted);--text-disabled:var(--color-dark-text-disabled);--border:var(--color-dark-border);--border-strong:var(--color-dark-border-strong);--skeleton:var(--color-dark-skeleton);--danger:var(--color-dark-danger);--danger-hover:var(--color-dark-danger-hover);--on-danger:var(--color-dark-on-danger);--scrim:var(--color-dark-scrim);--status-complete-bg:var(--color-dark-status-complete-bg);--status-complete-fg:var(--color-dark-status-complete-fg);--status-working-bg:var(--color-dark-status-working-bg);--status-working-fg:var(--color-dark-status-working-fg);--status-not-in-bg:var(--color-dark-status-not-in-bg);--status-not-in-fg:var(--color-dark-status-not-in-fg);--status-queued-bg:var(--color-dark-status-queued-bg);--status-queued-fg:var(--color-dark-status-queued-fg);--status-review-bg:var(--color-dark-status-review-bg);--status-review-fg:var(--color-dark-status-review-fg);--status-incomplete-bg:var(--color-dark-status-incomplete-bg);--status-incomplete-fg:var(--color-dark-status-incomplete-fg);--status-absent-bg:var(--color-dark-status-absent-bg);--status-absent-fg:var(--color-dark-status-absent-fg);--status-leave-bg:var(--color-dark-status-leave-bg);--status-leave-fg:var(--color-dark-status-leave-fg);--status-holiday-bg:var(--color-dark-status-holiday-bg);--status-holiday-fg:var(--color-dark-status-holiday-fg);--status-stale-bg:var(--color-dark-status-stale-bg);--status-stale-fg:var(--color-dark-status-stale-fg);--status-failed-bg:var(--color-dark-status-failed-bg);--status-failed-fg:var(--color-dark-status-failed-fg);--status-emergency-bg:var(--color-dark-status-emergency-bg);--status-emergency-fg:var(--color-dark-status-emergency-fg);--elevation-overlay:0 8px 24px #00000080;--elevation-punch:0 10px 30px color-mix(in srgb, var(--color-dark-accent) 25%, transparent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--primary:var(--color-dark-primary);--on-primary:var(--color-dark-on-primary);--primary-hover:var(--color-dark-primary-hover);--accent:var(--color-dark-accent);--accent-hover:var(--color-dark-accent-hover);--accent-pressed:var(--color-dark-accent-pressed);--on-accent:var(--color-dark-on-accent);--accent-soft:var(--color-dark-accent-soft);--accent-text:var(--color-dark-accent-text);--canvas:var(--color-dark-canvas);--surface:var(--color-dark-surface);--surface-hover:var(--color-dark-surface-hover);--surface-disabled:var(--color-dark-surface-disabled);--text:var(--color-dark-text);--text-muted:var(--color-dark-text-muted);--text-disabled:var(--color-dark-text-disabled);--border:var(--color-dark-border);--border-strong:var(--color-dark-border-strong);--skeleton:var(--color-dark-skeleton);--danger:var(--color-dark-danger);--danger-hover:var(--color-dark-danger-hover);--on-danger:var(--color-dark-on-danger);--scrim:var(--color-dark-scrim);--status-complete-bg:var(--color-dark-status-complete-bg);--status-complete-fg:var(--color-dark-status-complete-fg);--status-working-bg:var(--color-dark-status-working-bg);--status-working-fg:var(--color-dark-status-working-fg);--status-not-in-bg:var(--color-dark-status-not-in-bg);--status-not-in-fg:var(--color-dark-status-not-in-fg);--status-queued-bg:var(--color-dark-status-queued-bg);--status-queued-fg:var(--color-dark-status-queued-fg);--status-review-bg:var(--color-dark-status-review-bg);--status-review-fg:var(--color-dark-status-review-fg);--status-incomplete-bg:var(--color-dark-status-incomplete-bg);--status-incomplete-fg:var(--color-dark-status-incomplete-fg);--status-absent-bg:var(--color-dark-status-absent-bg);--status-absent-fg:var(--color-dark-status-absent-fg);--status-leave-bg:var(--color-dark-status-leave-bg);--status-leave-fg:var(--color-dark-status-leave-fg);--status-holiday-bg:var(--color-dark-status-holiday-bg);--status-holiday-fg:var(--color-dark-status-holiday-fg);--status-stale-bg:var(--color-dark-status-stale-bg);--status-stale-fg:var(--color-dark-status-stale-fg);--status-failed-bg:var(--color-dark-status-failed-bg);--status-failed-fg:var(--color-dark-status-failed-fg);--status-emergency-bg:var(--color-dark-status-emergency-bg);--status-emergency-fg:var(--color-dark-status-emergency-fg);--elevation-overlay:0 8px 24px #00000080;--elevation-punch:0 10px 30px color-mix(in srgb, var(--color-dark-accent) 25%, transparent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-base:0s;--motion-slow:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--canvas);min-height:100dvh;color:var(--text);font:var(--type-body-md-weight) var(--type-body-md-size)/var(--type-body-md-line) var(--type-body-md-family);margin:0}h1,h2,h3,h4,p{margin:0}h1,h2{font:var(--type-headline-lg-weight) var(--type-headline-md-size)/var(--type-headline-md-line) var(--type-headline-md-family)}h3{font:var(--type-title-md-weight) var(--type-title-md-size)/var(--type-title-md-line) var(--type-title-md-family)}.page-title{font:var(--type-headline-lg-weight) var(--type-headline-lg-size)/var(--type-headline-lg-line) var(--type-headline-lg-family)}@media (width<=599px){.page-title{font-size:var(--type-headline-md-size)}}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent-text);text-underline-offset:3px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--text-muted)}.sm{font:var(--type-body-sm-weight) var(--type-body-sm-size)/var(--type-body-sm-line) var(--type-body-sm-family)}.label{font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family)}.label-lg{font:var(--type-label-lg-weight) var(--type-label-lg-size)/var(--type-label-lg-line) var(--type-label-lg-family)}.tnum,.time{font-feature-settings:"tnum" 1}.time{font:var(--type-time-md-weight) var(--type-time-md-size)/var(--type-time-md-line) var(--type-time-md-family);font-feature-settings:var(--type-time-md-feature)}.line{display:block}.stack{gap:var(--spacing-lg);flex-direction:column;min-width:0;display:flex}.stack-sm{gap:var(--spacing-sm);flex-direction:column;min-width:0;display:flex}.cluster{gap:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.pre-line{white-space:pre-line}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.icon--sm{width:16px;height:16px}.icon--lg{width:28px;height:28px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.logo{color:var(--primary);display:inline-flex}.logo svg{width:auto;height:100%;display:block}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);min-height:var(--spacing-tap-comfy);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--rounded-md);cursor:pointer;text-align:center;max-width:100%;font:var(--type-label-lg-weight) var(--type-label-lg-size)/var(--type-label-lg-line) var(--type-label-lg-family);transition:background var(--motion-fast), transform var(--motion-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:active:not(:disabled){background:var(--accent-pressed)}.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface-hover)}.btn--ink{background:var(--primary);color:var(--on-primary)}.btn--ink:hover:not(:disabled){background:var(--primary-hover)}.btn--danger{background:var(--danger);color:var(--on-danger)}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn--ghost{color:var(--text);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{background:var(--surface-disabled);color:var(--text-disabled);cursor:not-allowed;border-color:#0000}.btn--sm{min-height:var(--spacing-tap-min);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--type-label-md-size)}.btn--block{width:100%}.iconbtn{width:var(--spacing-tap-min);height:var(--spacing-tap-min);border-radius:var(--rounded-md);cursor:pointer;color:var(--text-muted);background:0 0;border:0;flex:none;place-items:center;display:grid}.iconbtn:hover{background:var(--surface-hover);color:var(--text)}.punch{width:var(--spacing-punch-size);height:var(--spacing-punch-size);border-radius:var(--rounded-full);cursor:pointer;justify-content:center;align-items:center;gap:var(--spacing-xs);font:var(--type-punch-label-weight) var(--type-punch-label-size)/var(--type-punch-label-line) var(--type-punch-label-family);transition:transform var(--motion-fast), background var(--motion-fast);border:0;flex-direction:column;display:flex}.punch:active:not(:disabled){transform:scale(.97)}.punch small{font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family);opacity:.9}.punch--in{background:var(--accent);color:var(--on-accent);box-shadow:var(--elevation-punch)}@supports not (color:color-mix(in srgb, red, blue)){.punch--in{box-shadow:var(--elevation-overlay)}}.punch--in:hover:not(:disabled){background:var(--accent-hover)}.punch--in:active:not(:disabled){background:var(--accent-pressed)}.punch--out{background:var(--primary);color:var(--on-primary);box-shadow:var(--elevation-overlay)}.punch--out:hover:not(:disabled){background:var(--primary-hover)}.punch:disabled{background:var(--surface-disabled);color:var(--text-muted);box-shadow:none;cursor:progress}.badge{align-items:center;gap:var(--spacing-xs);max-width:100%;min-height:28px;padding:var(--spacing-xxs) var(--spacing-md) var(--spacing-xxs) var(--spacing-sm);border-radius:var(--rounded-full);font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family);display:inline-flex}.badge .icon{width:16px;height:16px}.badge--complete{background:var(--status-complete-bg);color:var(--status-complete-fg)}.badge--working{background:var(--status-working-bg);color:var(--status-working-fg)}.badge--not-in{background:var(--status-not-in-bg);color:var(--status-not-in-fg)}.badge--queued{background:var(--status-queued-bg);color:var(--status-queued-fg)}.badge--review{background:var(--status-review-bg);color:var(--status-review-fg)}.badge--incomplete{background:var(--status-incomplete-bg);color:var(--status-incomplete-fg)}.badge--absent{background:var(--status-absent-bg);color:var(--status-absent-fg)}.badge--leave{background:var(--status-leave-bg);color:var(--status-leave-fg)}.badge--holiday{background:var(--status-holiday-bg);color:var(--status-holiday-fg)}.badge--stale{background:var(--status-stale-bg);color:var(--status-stale-fg);outline-offset:-1px;outline:1px dashed}.badge--failed{background:var(--status-failed-bg);color:var(--status-failed-fg)}.badge--emergency{background:var(--status-emergency-bg);color:var(--status-emergency-fg)}.note-warn{color:var(--status-incomplete-fg)}.note-bad{color:var(--status-absent-fg)}.card{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--rounded-lg);padding:var(--spacing-lg);min-width:0}.metrics{gap:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}@media (width>=900px){.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}.metric{gap:var(--spacing-xs);flex-direction:column;margin:0;display:flex}.metric dt{color:var(--text-muted);font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family)}.metric dd{font:var(--type-metric-lg-weight) var(--type-metric-lg-size)/var(--type-metric-lg-line) var(--type-metric-lg-family);font-feature-settings:var(--type-metric-lg-feature);margin:0}.metric__sub{color:var(--text-muted);font:var(--type-body-sm-weight) var(--type-body-sm-size)/var(--type-body-sm-line) var(--type-body-sm-family)}.metric--alert{border-color:var(--status-review-fg)}.metric--bad{border-color:var(--status-absent-fg)}.rows{gap:var(--spacing-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.row{gap:var(--spacing-sm) var(--spacing-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);min-width:0;padding:var(--spacing-md) var(--spacing-lg);overflow-wrap:anywhere;align-items:start;display:grid}.row>*{min-width:0}.row__name{font-weight:var(--type-label-lg-weight)}.row__actions{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}@media (width>=768px){.rows--table{background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);gap:0;overflow:hidden}.rows--table .row{border:0;border-bottom:1px solid var(--border);min-height:56px;transition:background var(--motion-fast);border-radius:0;grid-template-columns:minmax(0,2fr) minmax(0,3fr) 112px;align-items:center}.rows--table .row:last-child{border-bottom:0}.rows--table .row:hover{background:var(--surface-hover)}.rows--table .row[aria-current=true]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.rows--status .row{grid-template-columns:220px minmax(0,2fr) minmax(0,3fr) 112px}.rows--days .row{grid-template-columns:170px 150px minmax(0,1fr) 176px}.row__actions{justify-content:flex-end}}.row[aria-current=true]{border-color:var(--accent)}.banner{gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--rounded-md);overflow-wrap:anywhere;align-items:flex-start;min-width:0;display:flex}.banner>.icon{margin-top:2px}.banner__body{gap:var(--spacing-xxs);flex-direction:column;flex:1;min-width:0;display:flex}.banner__title{font:var(--type-label-lg-weight) var(--type-label-lg-size)/var(--type-label-lg-line) var(--type-label-lg-family)}.banner__actions{gap:var(--spacing-sm);margin-top:var(--spacing-xs);flex-wrap:wrap;display:flex}.banner--info{background:var(--status-working-bg);color:var(--status-working-fg)}.banner--warning{background:var(--status-queued-bg);color:var(--status-queued-fg)}.banner--stale{background:var(--status-stale-bg);color:var(--status-stale-fg);outline-offset:-1px;outline:1px dashed}.banner--failed{background:var(--status-failed-bg);color:var(--status-failed-fg)}.banner--success{background:var(--status-complete-bg);color:var(--status-complete-fg)}.banner--critical{background:var(--status-emergency-bg);color:var(--status-emergency-fg)}.banner--critical .banner__title{font-size:var(--type-label-lg-size)}.banners{gap:var(--spacing-sm);flex-direction:column;display:flex}.banners .banner:not(.banner--critical):not(.banner--failed){padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}.banners .banner:not(.banner--critical):not(.banner--failed) .banner__title{font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family)}.banners .banner:not(.banner--critical):not(.banner--failed)>.icon{width:16px;height:16px;margin-top:3px}.install{align-items:center;gap:var(--spacing-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--rounded-lg);padding:var(--spacing-md);box-shadow:var(--elevation-overlay);display:flex}.install__icon{border-radius:var(--rounded-md);flex:none;width:44px;height:44px}.install__body{flex:1;min-width:0}.kbd{align-items:center;gap:var(--spacing-xxs);font-weight:var(--type-label-lg-weight);color:var(--text);white-space:nowrap;display:inline-flex}.kbd .icon{vertical-align:-3px}.field{gap:var(--spacing-xs);flex-direction:column;min-width:0;display:flex}.field>label{gap:var(--spacing-xs);font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family);flex-direction:column;display:flex}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:var(--spacing-tap-comfy);padding:var(--spacing-sm) var(--spacing-md);background:var(--surface);width:100%;max-width:100%;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--rounded-md);font:var(--type-body-md-weight) var(--type-body-md-size)/var(--type-body-md-line) var(--type-body-md-family)}input[type=time],input[type=date]{font-family:var(--type-time-md-family);font-feature-settings:"tnum" 1}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid var(--accent);outline-offset:0;border-color:var(--accent)}input[readonly]{background:var(--canvas)}input[aria-invalid=true]{border-color:var(--danger);border-width:2px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:2px 0 0}.hint{color:var(--text-muted);font:var(--type-body-sm-weight) var(--type-body-sm-size)/var(--type-body-sm-line) var(--type-body-sm-family)}.err{color:var(--danger);gap:var(--spacing-xs);font:var(--type-body-sm-weight) var(--type-body-sm-size)/var(--type-body-sm-line) var(--type-body-sm-family);align-items:flex-start;display:flex}.err .icon{margin-top:3px}.check{gap:var(--spacing-sm);min-height:var(--spacing-tap-min);padding:var(--spacing-sm) 0;cursor:pointer;align-items:flex-start;display:flex}.pair{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));display:grid}.form{gap:var(--spacing-lg);flex-direction:column;min-width:0;max-width:640px;display:flex}.form-actions{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}fieldset{border:1px solid var(--border);border-radius:var(--rounded-md);padding:var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;min-width:0;margin:0;display:flex}legend{padding:0 var(--spacing-xs);font:var(--type-label-md-weight) var(--type-label-md-size)/var(--type-label-md-line) var(--type-label-md-family)}.days-pick{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.days-pick label{position:relative}.days-pick input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.days-pick span{min-width:var(--spacing-tap-min);height:var(--spacing-tap-min);padding:0 var(--spacing-sm);border:1px solid var(--border-strong);border-radius:var(--rounded-full);font:var(--type-label-md-weight) var(--type-label-md-size)/1 var(--type-label-md-family);place-items:center;display:grid}.days-pick input:checked+span{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.days-pick input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.pick-list{gap:0;max-height:320px;overflow:auto}.pick-list .check{border-bottom:1px solid var(--border);flex:none}.pick-list .check:last-child{border-bottom:0}.state{text-align:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-2xl) var(--spacing-xl);border-radius:var(--rounded-lg);flex-direction:column;display:flex}.state--empty{background:var(--canvas);color:var(--text-muted);border:1px dashed var(--border-strong)}.state--error{background:var(--status-failed-bg);color:var(--status-failed-fg)}.state__title{font:var(--type-title-md-weight) var(--type-title-md-size)/var(--type-title-md-line) var(--type-title-md-family);color:var(--text)}.state--error .state__title{color:inherit}.skel{background:var(--skeleton);border-radius:var(--rounded-sm);height:14px}.loading{gap:var(--spacing-md);flex-direction:column;display:flex}.loading__row{gap:var(--spacing-md);align-items:center;display:flex}.scrim{z-index:20;background:var(--scrim);opacity:.4;position:fixed;inset:0}.panel{z-index:21;background:var(--surface);overflow-wrap:anywhere;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px);flex-direction:column;display:flex;position:fixed;inset:0}.panel__head{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md) var(--spacing-xl);border-bottom:1px solid var(--border);display:flex}.panel__head>div{flex:1;min-width:0}.panel__body{padding:var(--spacing-xl);padding-bottom:calc(var(--spacing-xl) + env(safe-area-inset-bottom,0px));gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}@media (width>=768px){.panel{width:var(--spacing-side-panel-width);border-left:1px solid var(--border);box-shadow:var(--elevation-overlay);left:auto}}@media (width>=1280px){body.panel-open .shell .content{padding-right:calc(var(--spacing-side-panel-width) + var(--spacing-xl))}}.timeline{padding:0 0 0 var(--spacing-md);border-left:2px solid var(--border);gap:var(--spacing-md);flex-direction:column;margin:0;list-style:none;display:flex}.timeline li{gap:var(--spacing-xxs);flex-direction:column;display:flex}.shell{min-height:100dvh}.side{display:none}.topbar{align-items:center;gap:var(--spacing-md);background:var(--canvas);padding:calc(env(safe-area-inset-top,0px) + var(--spacing-sm)) calc(env(safe-area-inset-right,0px) + var(--spacing-gutter-mobile)) var(--spacing-sm) calc(env(safe-area-inset-left,0px) + var(--spacing-gutter-mobile));min-height:56px;display:flex}.topbar .logo{height:28px}.topbar__title{font:var(--type-title-md-weight) var(--type-title-md-size)/var(--type-title-md-line) var(--type-title-md-family);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar__who{align-items:center;gap:var(--spacing-sm);min-width:0;margin-left:auto;display:flex}.avatar{border-radius:var(--rounded-full);background:var(--primary);width:36px;height:36px;color:var(--on-primary);font:var(--type-label-md-weight) var(--type-label-md-size)/1 var(--type-label-md-family);flex:none;place-items:center;display:grid}.avatar-btn{border-radius:var(--rounded-full);cursor:pointer;align-items:center;gap:var(--spacing-sm);min-height:var(--spacing-tap-min);background:0 0;border:0;padding:0;display:flex}.content{gap:var(--spacing-xl);overflow-wrap:anywhere;min-width:0;max-width:1200px;padding:var(--spacing-sm) calc(env(safe-area-inset-right,0px) + var(--spacing-gutter-mobile)) calc(var(--spacing-3xl) + env(safe-area-inset-bottom,0px)) calc(env(safe-area-inset-left,0px) + var(--spacing-gutter-mobile));flex-direction:column;margin:0 auto;display:flex}.shell--nav .content{padding-bottom:calc(var(--spacing-bottom-nav-height) + var(--spacing-xl) + env(safe-area-inset-bottom,0px))}.bnav{z-index:10;background:var(--surface);border-top:1px solid var(--border);padding:0 calc(env(safe-area-inset-right,0px) + var(--spacing-sm)) env(safe-area-inset-bottom,0px) calc(env(safe-area-inset-left,0px) + var(--spacing-sm));grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bnav a{justify-content:center;align-items:center;gap:var(--spacing-xxs);height:var(--spacing-bottom-nav-height);color:var(--text-muted);text-align:center;font:var(--type-label-sm-weight) var(--type-label-sm-size)/var(--type-label-sm-line) var(--type-label-sm-family);flex-direction:column;text-decoration:none;display:flex;position:relative}.bnav a[aria-current=page]{color:var(--accent-text)}.bnav a[aria-current=page]:before{content:"";border-radius:0 0 var(--rounded-sm) var(--rounded-sm);background:var(--accent);height:3px;position:absolute;top:0;left:30%;right:30%}.menu-list{gap:var(--spacing-xxs);flex-direction:column;display:flex}.navlink{align-items:center;gap:var(--spacing-md);min-height:var(--spacing-tap-min);padding:0 var(--spacing-md);border-radius:var(--rounded-md);color:var(--text);font:var(--type-label-lg-weight) var(--type-label-md-size)/var(--type-label-lg-line) var(--type-label-lg-family);text-decoration:none;display:flex}.navlink:hover{background:var(--surface-hover)}.navlink[aria-current=page]{background:var(--accent-soft);color:var(--accent-text)}.side__foot{border-top:1px solid var(--border);padding-top:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;margin-top:auto;display:flex}.who{align-items:center;gap:var(--spacing-sm);min-width:0;display:flex}.who>div{min-width:0}@media (width>=1024px){.shell--nav{grid-template-columns:var(--spacing-sidebar-width) minmax(0, 1fr);display:grid}.shell--nav .side{gap:var(--spacing-xs);background:var(--surface);border-right:1px solid var(--border);height:100dvh;padding:var(--spacing-lg);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.side .logo{height:34px;margin:var(--spacing-xs) var(--spacing-sm) var(--spacing-xl)}.shell--nav .topbar,.shell--nav .bnav{display:none}.shell--nav .content{padding:var(--spacing-xl) var(--spacing-gutter-desktop) var(--spacing-3xl);margin:0}}@media (width>=720px){.shell:not(.shell--nav) .content{padding-top:var(--spacing-2xl)}.shell:not(.shell--nav) .topbar{padding-inline:var(--spacing-gutter-desktop);background:var(--surface);border-bottom:1px solid var(--border)}}.seg{background:var(--canvas);border:1px solid var(--border);border-radius:var(--rounded-full);padding:var(--spacing-xxs);max-width:100%;display:inline-flex}.seg button{border-radius:var(--rounded-full);min-height:36px;padding:0 var(--spacing-sm);cursor:pointer;color:var(--text-muted);white-space:nowrap;justify-content:center;align-items:center;gap:var(--spacing-xs);font:var(--type-label-md-weight) var(--type-label-sm-size)/var(--type-label-md-line) var(--type-label-md-family);background:0 0;border:0;flex:auto;display:inline-flex}.side .seg,.panel .seg{width:100%}.seg button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.page-head{align-items:flex-end;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.page-head>div:first-child{flex:260px;min-width:0}.section{gap:var(--spacing-md);flex-direction:column;min-width:0;display:flex}.section-head{align-items:baseline;gap:var(--spacing-xs) var(--spacing-md);flex-wrap:wrap;display:flex}.auth{gap:var(--spacing-xl);max-width:440px;padding:calc(env(safe-area-inset-top,0px) + var(--spacing-2xl)) calc(env(safe-area-inset-right,0px) + var(--spacing-gutter-mobile)) calc(env(safe-area-inset-bottom,0px) + var(--spacing-3xl)) calc(env(safe-area-inset-left,0px) + var(--spacing-gutter-mobile));overflow-wrap:anywhere;flex-direction:column;margin:0 auto;display:flex}.auth__brand{align-items:center;gap:var(--spacing-sm);text-align:center;flex-direction:column;display:flex}.auth__brand .logo{height:48px}.notice{background:var(--canvas);border:1px solid var(--border);border-radius:var(--rounded-md);padding:var(--spacing-md);max-height:200px;overflow:auto}.today-grid{gap:var(--spacing-xl);grid-template-columns:minmax(0, var(--spacing-content-max-employee));justify-content:center;width:100%;display:grid}@media (width>=1000px){.today-grid{grid-template-columns:minmax(0, var(--spacing-content-max-employee)) minmax(0, 360px);align-items:start}}.today{text-align:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl) var(--spacing-lg);flex-direction:column;display:flex}@media (width>=720px){.today{padding:var(--spacing-2xl)}}.clock{font:var(--type-display-clock-weight) var(--type-display-clock-size)/var(--type-display-clock-line) var(--type-display-clock-family);font-feature-settings:var(--type-display-clock-feature)}.receipt{gap:var(--spacing-xs) var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.receipt:last-child{border-bottom:0}.receipt__ico{border-radius:var(--rounded-full);place-items:center;width:40px;height:40px;display:grid}.receipt__ref{color:var(--text-muted);font:var(--type-body-sm-weight) var(--type-body-sm-size)/var(--type-body-sm-line) var(--type-body-sm-family);font-feature-settings:"tnum" 1}@media (width<=420px){.receipt{grid-template-columns:auto minmax(0,1fr)}.receipt>.badge{grid-column:2;justify-self:start}}.only-desktop{display:none!important}@media (width>=720px){.only-desktop{display:inline-flex!important}.only-mobile{display:none!important}}.inline-icon{vertical-align:-3px}.inline-form{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.inline-form>input:not([type=checkbox]),.inline-form>select{flex:160px;width:auto;min-width:0}.two-col{gap:var(--spacing-xl);display:grid}@media (width>=900px){.two-col{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}.kv{gap:var(--spacing-md);background:var(--canvas);border-radius:var(--rounded-md);padding:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.kv dt{color:var(--text-muted);font:var(--type-label-sm-weight) var(--type-label-sm-size)/var(--type-label-sm-line) var(--type-label-sm-family)}.kv dd{font:var(--type-time-md-weight) var(--type-title-md-size)/var(--type-time-md-line) var(--type-time-md-family);font-feature-settings:"tnum" 1;margin:0}.pager{align-items:center;gap:var(--spacing-md);justify-content:center;display:flex}
