@font-face{font-family:brandFont;src:url(../media/Outfit_SemiBold-s.p.2sljvja-pikhy.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:brandFont;src:url(../media/Outfit_Bold-s.p.2_rvd2v566qoy.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:brandFont Fallback;src:local(Arial);ascent-override:97.97%;descent-override:25.47%;line-gap-override:0.0%;size-adjust:102.07%}.HFetTa_className{font-family:brandFont,brandFont Fallback,Be Vietnam Pro,Segoe UI,Roboto,system-ui,sans-serif}.HFetTa_variable{--font-brand:"brandFont", "brandFont Fallback", Be Vietnam Pro, Segoe UI, Roboto, system-ui, sans-serif}
@font-face{font-family:uiFont;src:url(../media/BeVietnamPro_Regular-s.p.1mmv0gqaoiwyq.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:uiFont;src:url(../media/BeVietnamPro_Medium-s.p.23heobj5rq_gm.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:uiFont;src:url(../media/BeVietnamPro_SemiBold-s.p.1w51ya64ageq1.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:uiFont;src:url(../media/BeVietnamPro_Bold-s.p.3puce8uuw1x7p.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:uiFont Fallback;src:local(Arial);ascent-override:90.08%;descent-override:23.87%;line-gap-override:0.0%;size-adjust:111.01%}.C73DJW_className{font-family:uiFont,uiFont Fallback,Be Vietnam Pro,Segoe UI,Roboto,system-ui,sans-serif}.C73DJW_variable{--font-ui:"uiFont", "uiFont Fallback", Be Vietnam Pro, Segoe UI, Roboto, system-ui, sans-serif}
@font-face{font-family:monoFont;src:url(../media/JetBrainsMono_Regular-s.p.0uemvs-4yueot.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:monoFont;src:url(../media/JetBrainsMono_Medium-s.p.18ofnjptiz2d5.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:monoFont;src:url(../media/JetBrainsMono_Bold-s.p.0az4o1ow87u8b.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:monoFont Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.fbq9bG_className{font-family:monoFont,monoFont Fallback,JetBrains Mono,SF Mono,Consolas,monospace}.fbq9bG_variable{--font-mono-ui:"monoFont", "monoFont Fallback", JetBrains Mono, SF Mono, Consolas, monospace}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-page:#f3faf6;--color-bg-surface:#fff;--color-bg-subtle:#edeff3;--color-bg-inverse:#151a23;--color-text-default:#151a23;--color-text-muted:#4e5768;--color-text-placeholder:#6b7688;--color-text-inverse:#fff;--color-border-subtle:#dde1e8;--color-border-default:#6b7688;--color-border-strong:#151a23;--color-focus-ring:#047857;--color-action-primary-bg:#065f46;--color-action-primary-bg-pressed:#064e3b;--color-action-primary-fg:#fff;--color-action-danger-bg:#c93526;--color-action-danger-fg:#fff;--color-status-success-bg:#dcfce7;--color-status-success-fg:#064e3b;--color-status-warning-bg:#fff8e6;--color-status-warning-fg:#7e5507;--color-status-danger-bg:#fdedec;--color-status-danger-fg:#87231a;--color-status-info-bg:#ecfdf5;--color-status-info-fg:#065f46;--color-status-leave-bg:#f4f1fe;--color-status-leave-fg:#46318c;--color-status-neutral-bg:#edeff3;--color-status-neutral-fg:#3a4152;--status-complete-bg:#eaf7ee;--status-complete-fg:#135a33;--status-late-bg:#fff8e6;--status-late-fg:#7e5507;--status-early-leave-bg:#fff8e6;--status-early-leave-fg:#7e5507;--status-missing-bg:#fff8e6;--status-missing-fg:#7e5507;--status-absent-bg:#fdedec;--status-absent-fg:#87231a;--status-leave-bg:#f4f1fe;--status-leave-fg:#46318c;--status-pending-bg:#eef4ff;--status-pending-fg:#17409f;--status-overtime-bg:#eef4ff;--status-overtime-fg:#17409f;--status-non-working-bg:#edeff3;--status-non-working-fg:#3a4152;--font-family-sans:var(--font-ui), "Be Vietnam Pro", "Segoe UI", Roboto, system-ui, sans-serif;--font-family-mono:var(--font-mono-ui), "JetBrains Mono", "SF Mono", Consolas, monospace;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-size-xs:12px;--font-size-xs-line:18px;--font-size-sm:14px;--font-size-sm-line:21px;--font-size-base:16px;--font-size-base-line:26px;--font-size-lg:18px;--font-size-lg-line:28px;--font-size-xl:20px;--font-size-xl-line:30px;--font-size-2xl:24px;--font-size-2xl-line:34px;--font-size-3xl:30px;--font-size-3xl-line:40px;--font-size-4xl:36px;--font-size-4xl-line:44px;--font-size-display:48px;--font-size-display-line:56px;--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--size-touch-min:48px;--size-touch-comfort:56px;--size-touch-hero:200px;--radius-none:0px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--border-hairline:1px;--border-default:1px;--border-strong:2px;--border-focus:3px;--shadow-sm:0 1px 2px #151a2314;--shadow-md:0 4px 12px #151a231a;--shadow-lg:0 12px 32px #151a2329;--motion-duration-fast:.12s;--motion-duration-base:.2s;--motion-duration-slow:.3s;--motion-easing-standard:cubic-bezier(.2,0,0,1);--motion-easing-exit:cubic-bezier(.4,0,1,1);--z-base:0;--z-sticky:100;--z-dropdown:200;--z-overlay:300;--z-modal:400;--z-toast:500;--z-critical:600;--brand-green-900:#04140e;--brand-green-850:#08361f;--brand-green-800:#064e3b;--brand-green-700:#065f46;--brand-green-600:#047857;--brand-green-500:#059669;--brand-green-400:#10b981;--brand-green-300:#34d399;--brand-green-100:#dcfce7;--brand-green-50:#ecfdf5;--brand-teal-500:#059669;--brand-teal-400:#10b981;--brand-teal-700:#065f46;--brand-emerald-500:#059669;--brand-cyan-400:#34d399;--brand-cyan-600:#047857;--brand-blue-500:#047857;--brand-ink-900:#04140e;--brand-ink-800:#08361f;--brand-ink-700:#123d2c;--brand-surface:#fff;--brand-surface-soft:#f3faf6;--brand-on-dark:#e6f4ec;--gradient-primary:linear-gradient(135deg, #04140e 0%, #08361f 45%, #065f46 100%);--gradient-accent:linear-gradient(135deg, #064e3b 0%, #047857 100%);--gradient-accent-hover:linear-gradient(135deg, #047857 0%, #065f46 100%)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-page:#0d1512;--color-bg-surface:#18211c;--color-bg-subtle:#18211c;--color-text-default:#f2f7f4;--color-text-muted:#b9c9c0;--color-border-subtle:#2c3b33;--color-border-default:#5c7268;--color-focus-ring:#6ee7b7;--color-action-primary-bg:#10b981;--color-action-primary-fg:#04140e;--color-status-success-fg:#6ee7b7;--color-status-warning-fg:#f7c64c;--color-status-danger-fg:#f0857c;--color-status-info-fg:#5eead4;--color-status-leave-fg:#b09cf5;--color-action-primary-bg-pressed:#34d399;--gradient-accent:linear-gradient(135deg, #10b981 0%, #34d399 100%);--gradient-accent-hover:linear-gradient(135deg, #34d399 0%, #6ee7b7 100%)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-page:#0d1512;--color-bg-surface:#18211c;--color-bg-subtle:#18211c;--color-text-default:#f2f7f4;--color-text-muted:#b9c9c0;--color-border-subtle:#2c3b33;--color-border-default:#5c7268;--color-focus-ring:#6ee7b7;--color-action-primary-bg:#10b981;--color-action-primary-fg:#04140e;--color-status-success-fg:#6ee7b7;--color-status-warning-fg:#f7c64c;--color-status-danger-fg:#f0857c;--color-status-info-fg:#5eead4;--color-status-leave-fg:#b09cf5;--color-action-primary-bg-pressed:#34d399;--gradient-accent:linear-gradient(135deg, #10b981 0%, #34d399 100%);--gradient-accent-hover:linear-gradient(135deg, #34d399 0%, #6ee7b7 100%)}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg-page);color:var(--color-text-default);font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--font-size-base-line);min-height:100vh;margin:0}h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}h1{font-size:var(--font-size-2xl);line-height:var(--font-size-2xl-line);font-weight:var(--font-weight-semibold)}h2{font-size:var(--font-size-xl);line-height:var(--font-size-xl-line);font-weight:var(--font-weight-semibold)}h3{font-size:var(--font-size-lg);line-height:var(--font-size-lg-line);font-weight:var(--font-weight-semibold)}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--color-action-primary-bg);text-underline-offset:2px;text-decoration:underline}img,svg{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--border-focus) solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-4);top:calc(var(--space-4) * -4);z-index:var(--z-critical);background:var(--color-bg-surface);border:var(--border-strong) solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:top var(--motion-duration-fast) var(--motion-easing-standard);position:absolute}.skip-link:focus{top:var(--space-4)}.numeric{font-variant-numeric:tabular-nums;text-align:right}.muted{color:var(--color-text-muted)}.text-sm{font-size:var(--font-size-sm);line-height:var(--font-size-sm-line)}.text-xs{font-size:var(--font-size-xs);line-height:var(--font-size-xs-line)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.grid-2{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.grid-4{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--size-touch-min);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-default) solid transparent;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-standard), border-color var(--motion-duration-fast) var(--motion-easing-standard);text-decoration:none;display:inline-flex}.btn[disabled],.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--color-action-primary-bg);color:var(--color-action-primary-fg)}.btn-secondary{background:var(--color-bg-surface);color:var(--color-text-default);border-color:var(--color-border-default)}.btn-secondary:hover:not([disabled]){background:var(--color-bg-subtle)}.btn-ghost{color:var(--color-text-default);background:0 0}.btn-ghost:hover:not([disabled]){background:var(--color-bg-subtle)}.btn-danger{background:var(--color-action-danger-bg);color:var(--color-action-danger-fg)}.btn-sm{min-height:var(--size-touch-min);padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.btn-busy{position:relative}.btn-spinner{border-radius:var(--radius-full);border:2px solid;border-right-color:#0000;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{min-width:var(--size-touch-min);min-height:var(--size-touch-min);border-radius:var(--radius-md);border:var(--border-default) solid transparent;cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-bg-subtle)}.card{background:var(--color-bg-surface);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.card-header{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card-title{font-size:var(--font-size-lg);line-height:var(--font-size-lg-line);font-weight:var(--font-weight-semibold)}.stat-card{background:var(--color-bg-surface);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.stat-value{font-size:var(--font-size-3xl);line-height:var(--font-size-3xl-line);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.stat-label{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--font-size-sm-line)}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-label{font-size:var(--font-size-sm);line-height:var(--font-size-sm-line);font-weight:var(--font-weight-medium)}.field-hint{font-size:var(--font-size-xs);line-height:var(--font-size-xs-line);color:var(--color-text-muted)}.field-error{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);line-height:var(--font-size-sm-line);color:var(--color-status-danger-fg);display:flex}.input,.select,.textarea{min-height:var(--size-touch-min);padding:var(--space-2) var(--space-3);border:var(--border-default) solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-default);width:100%}.textarea{min-height:calc(var(--size-touch-min) * 2);resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--color-text-placeholder)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--color-action-danger-bg);border-width:var(--border-strong)}.input-numeric{font-variant-numeric:tabular-nums}.checkbox-row{align-items:center;gap:var(--space-2);min-height:var(--size-touch-min);cursor:pointer;display:flex}.checkbox-row input{width:20px;height:20px}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-sm);line-height:var(--font-size-sm-line);font-weight:var(--font-weight-medium);border:var(--border-hairline) solid currentColor;display:inline-flex}.badge-compact{border-radius:var(--radius-sm);justify-content:center;min-width:28px;min-height:28px;padding:0}.badge-neutral{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg)}.badge-success{background:var(--color-status-success-bg);color:var(--color-status-success-fg)}.badge-warning{background:var(--color-status-warning-bg);color:var(--color-status-warning-fg)}.badge-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg)}.badge-info{background:var(--color-status-info-bg);color:var(--color-status-info-fg)}.badge-leave{background:var(--color-status-leave-bg);color:var(--color-status-leave-fg)}.alert{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:var(--border-default) solid currentColor;display:flex}.alert-body{gap:var(--space-1);color:var(--color-text-default);flex-direction:column;display:flex}.alert-title{font-weight:var(--font-weight-semibold)}.alert-info{background:var(--color-status-info-bg);color:var(--color-status-info-fg)}.alert-success{background:var(--color-status-success-bg);color:var(--color-status-success-fg)}.alert-warning{background:var(--color-status-warning-bg);color:var(--color-status-warning-fg)}.alert-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg)}.table-wrap{border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:640px}.table caption{text-align:left;padding:var(--space-3) var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:var(--border-hairline) solid var(--color-border-subtle);vertical-align:top}.table thead th{z-index:var(--z-sticky);background:var(--color-bg-subtle);font-size:var(--font-size-sm);line-height:var(--font-size-sm-line);font-weight:var(--font-weight-semibold);position:sticky;top:0}.table tbody tr:last-child td{border-bottom:none}.table td.numeric,.table th.numeric{text-align:right;font-variant-numeric:tabular-nums}.timesheet-scroll{border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);max-height:70vh;overflow:auto}.timesheet{border-collapse:separate;border-spacing:0}.timesheet th,.timesheet td{border-bottom:var(--border-hairline) solid var(--color-border-subtle);border-right:var(--border-hairline) solid var(--color-border-subtle);padding:var(--space-1);text-align:center;white-space:nowrap}.timesheet thead th{z-index:var(--z-sticky);background:var(--color-bg-subtle);font-size:var(--font-size-xs);line-height:var(--font-size-xs-line);position:sticky;top:0}.timesheet .col-employee{z-index:calc(var(--z-sticky) + 1);background:var(--color-bg-surface);text-align:left;min-width:220px;padding:var(--space-2) var(--space-3);position:sticky;left:0}.timesheet thead .col-employee{z-index:calc(var(--z-sticky) + 2);background:var(--color-bg-subtle)}.timesheet td.non-working{background:var(--color-bg-subtle)}.timesheet td.cell-missing{background:repeating-linear-gradient(45deg, var(--color-bg-subtle), var(--color-bg-subtle) 4px, var(--color-bg-surface) 4px, var(--color-bg-surface) 8px)}.timesheet-cell-button{cursor:pointer;min-width:32px;min-height:32px;padding:var(--space-1);background:0 0;border:none}.timeline{gap:var(--space-3);border-left:var(--border-strong) solid var(--color-border-subtle);padding-left:var(--space-4);flex-direction:column;display:flex}.timeline-item{gap:var(--space-3);grid-template-columns:72px 1fr;align-items:start;display:grid}.timeline-time{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium)}.timeline-correction{color:var(--color-status-info-fg)}.evidence-card{gap:var(--space-3);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-bg-surface);flex-direction:column;display:flex}.evidence-signal{gap:var(--space-2);grid-template-columns:24px 120px 1fr;align-items:center;display:grid}.evidence-photo{border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-md);object-fit:contain;background:var(--color-bg-subtle);max-height:320px}.modal-backdrop{background:var(--color-bg-inverse);opacity:.45;z-index:var(--z-overlay);position:fixed;inset:0}.modal{z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-bg-surface);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-5);gap:var(--space-4);flex-direction:column;width:min(560px,100%);max-height:90vh;display:flex;overflow:auto}.modal-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.tabs{gap:var(--space-1);border-bottom:var(--border-default) solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.tab{min-height:var(--size-touch-min);padding:var(--space-2) var(--space-4);border:none;border-bottom:var(--border-strong) solid transparent;cursor:pointer;color:var(--color-text-muted);background:0 0;text-decoration:none}.tab[aria-current=page],.tab[aria-selected=true]{color:var(--color-text-default);border-bottom-color:var(--color-action-primary-bg);font-weight:var(--font-weight-medium)}.breadcrumb{gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;display:flex}.pagination{gap:var(--space-2);padding:var(--space-3);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-bg-subtle) 0%, var(--brand-surface-soft) 50%, var(--color-bg-subtle) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.empty-state,.error-state{align-items:flex-start;gap:var(--space-3);padding:var(--space-8);border:var(--border-default) dashed var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);flex-direction:column;display:flex}.error-state{border-style:solid;border-color:var(--color-status-danger-fg)}.empty-illustration{color:var(--brand-accent,var(--color-text-muted));opacity:.4;margin-bottom:calc(var(--space-1) * -1)}.impersonation-banner{z-index:var(--z-critical);justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-status-warning-bg);color:var(--color-status-warning-fg);border-bottom:var(--border-strong) solid var(--color-status-warning-fg);flex-wrap:wrap;display:flex;position:sticky;top:0}.impersonation-banner strong{font-weight:var(--font-weight-bold)}.btn{transition:background var(--motion-duration-fast) var(--motion-easing-standard), border-color var(--motion-duration-fast) var(--motion-easing-standard), transform var(--motion-duration-fast) var(--motion-easing-standard), box-shadow var(--motion-duration-fast) var(--motion-easing-standard)}.btn:hover:not([disabled]){transform:translateY(-1px)}.btn:active:not([disabled]){transform:scale(.97)}.btn-primary{background:var(--gradient-accent);color:var(--color-action-primary-fg);transition:background-position var(--motion-duration-base) var(--motion-easing-standard), transform var(--motion-duration-fast) var(--motion-easing-standard), box-shadow var(--motion-duration-fast) var(--motion-easing-standard);background-position:0%;background-size:160% 160%;border-color:#0000}.btn-primary:hover:not([disabled]){box-shadow:0 6px 18px -6px var(--brand-teal-500);background-position:100%}.card,.stat-card{transition:transform var(--motion-duration-fast) var(--motion-easing-standard), box-shadow var(--motion-duration-fast) var(--motion-easing-standard)}.card:hover,.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card{border-left:var(--border-strong) solid var(--brand-teal-500)}.stat-value{color:var(--brand-teal-700)}.app-content>*{animation:rise-in var(--motion-duration-base) var(--motion-easing-standard) both}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.setup-step{padding:var(--space-3);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-surface);transition:border-color var(--motion-duration-fast) var(--motion-easing-standard)}.setup-step[data-done=false]{border-color:var(--brand-teal-500)}.setup-step-done{color:var(--brand-teal-700)}.setup-step-todo{color:var(--color-text-placeholder)}.auth-brand{animation:brand-in var(--motion-duration-slow) var(--motion-easing-standard) both;justify-content:center;display:flex}.brand-logo{height:auto;filter:drop-shadow(0 0 18px color-mix(in srgb, var(--brand-teal-400) 45%, transparent))}.brand-mark{transition:transform var(--motion-duration-base) var(--motion-easing-standard)}.brand:hover .brand-mark{transform:rotate(90deg)scale(1.06)}@keyframes brand-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:none}}.brand{font-family:var(--font-brand), var(--font-family-sans);font-weight:var(--font-weight-bold);letter-spacing:-.02em}.brand-name{color:var(--brand-surface);background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.brand-name{-webkit-text-fill-color:currentColor}}.radius-preview{gap:var(--space-4);padding:var(--space-4);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-bg-surface);flex-wrap:wrap;align-items:center;margin:0;display:flex}.radius-preview-canvas{flex:none;width:180px;height:180px}.radius-preview figcaption{gap:var(--space-2);flex-direction:column;flex:14rem;min-width:14rem;display:flex}.radius-bound{fill:none;stroke:var(--color-border-subtle);stroke-width:1.5px}.radius-current{fill:var(--brand-surface-soft);fill-opacity:.55;stroke:var(--brand-accent,var(--color-text-muted));stroke-width:2px}.radius-spoke{stroke:var(--brand-accent,var(--color-text-muted));stroke-width:1.5px;stroke-dasharray:3 3}.radius-centre{fill:var(--brand-accent,var(--color-text-muted))}.table tbody tr:hover,.table tbody tr:focus-within{background:var(--brand-surface-soft)}.punch-shell{align-items:center;gap:var(--space-6);min-height:100dvh;padding:var(--space-6) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom));background:var(--gradient-primary);color:var(--color-text-inverse);flex-direction:column;display:flex}.punch-header{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.punch-greeting{font-size:var(--font-size-lg);opacity:.9;margin:0}.punch{align-items:center;gap:var(--space-4);flex-direction:column;width:100%;max-width:26rem;display:flex}.punch-button{border-radius:var(--radius-lg);background:var(--gradient-accent);width:100%;min-height:5.5rem;color:var(--color-action-primary-fg);letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 30px -12px var(--brand-green-500);border:none;font-size:1.5rem;font-weight:700}.punch-button[disabled]{opacity:.75;cursor:progress}.punch-hint{opacity:.75;font-size:var(--font-size-sm);margin:0}.punch-today{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--teal-100,#cdfaf3);font-size:var(--font-size-sm);background:#ffffff1a}.punch-video{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.punch-preview{object-fit:cover;border:2px solid var(--brand-teal-500);border-radius:50%;width:6rem;height:6rem}.punch-done{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;width:100%;display:flex}.punch-done-title{margin:0;font-size:1.75rem;font-weight:700}.punch-done-time{font-size:var(--font-size-lg);opacity:.9;margin:0}.punch-review{color:var(--color-status-warning-fg,#f5c451);margin:0}.punch-signals{gap:var(--space-2);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.punch-signals li{justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:#ffffff14;display:flex}.punch-signals li[data-decision=PASS]{border-left:4px solid var(--brand-teal-500)}.punch-signals li[data-decision=WARNING]{border-left:4px solid var(--color-status-warning-fg,#f5c451)}.punch-signals li[data-decision=FAIL]{border-left:4px solid var(--color-status-danger-fg,#e5484d)}.punch-signals li[data-decision=NOT_AVAILABLE]{border-left:4px solid #ffffff59}.punch-again{min-height:3rem;padding:0 var(--space-5);border-radius:var(--radius-md);color:inherit;font-size:var(--font-size-md);cursor:pointer;background:0 0;border:1px solid #ffffff73}.punch-problem{max-width:26rem;padding:var(--space-4);border-radius:var(--radius-md);text-align:center;background:#ffffff1a;margin:0;line-height:1.5}.punch-note{max-width:26rem;padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid var(--brand-teal-500);text-align:center;background:#ffffff1a;margin:0;line-height:1.5}.mine-title{margin:0;font-size:1.5rem;font-weight:700}.mine-months{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;max-width:26rem;font-size:var(--font-size-sm);display:flex}.mine-months a{color:inherit;opacity:.85;padding:var(--space-2);text-decoration:none}.mine-days{gap:var(--space-2);flex-direction:column;width:100%;max-width:26rem;margin:0;padding:0;list-style:none;display:flex}.mine-days li{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:#ffffff14}.mine-days li[data-today=true]{border-left:4px solid var(--brand-teal-500);background:#ffffff24}.mine-day-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.mine-date{font-size:1.125rem;font-weight:700}.mine-status{font-size:var(--font-size-sm);opacity:.85}.mine-day-body{gap:var(--space-4);margin-top:var(--space-2);font-size:var(--font-size-sm);opacity:.92;flex-wrap:wrap;display:flex}.mine-late{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-status-warning-fg,#f5c451)}.mine-hint{max-width:26rem;font-size:var(--font-size-sm);opacity:.75;text-align:center;margin:0;line-height:1.5}.nav-group-summary{cursor:pointer;align-items:center;gap:var(--space-2);-webkit-user-select:none;user-select:none;list-style:none;display:flex}.nav-group-summary::-webkit-details-marker{display:none}.nav-group-summary:after{content:"";opacity:.7;width:.4rem;height:.4rem;transition:transform var(--motion-duration-fast) var(--motion-easing-standard);border-bottom:2px solid;border-right:2px solid;margin-left:auto;transform:rotate(-45deg)}.nav-group-fold[open]>.nav-group-summary:after{transform:rotate(45deg)}.nav-group-summary:focus-visible{outline:var(--border-strong) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.home-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));display:grid}.home-big{align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);font-size:1.0625rem;font-weight:600;line-height:1.3;display:flex}.home-big svg{color:var(--brand-teal-700);flex:none}.home-list{margin:0 0 var(--space-3);gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.home-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-bg-subtle);display:flex}.home-list li[data-in=true]{border-left:3px solid var(--brand-teal-500)}.home-list li[data-in=false] .home-tag{color:var(--color-text-muted)}.home-list li[data-late=true]{border-left:3px solid var(--color-status-warning-fg,#f5c451)}.home-tag{font-weight:600;font-size:var(--font-size-sm)}.home-more{font-size:var(--font-size-sm)}.form-advanced{border:var(--border-default) dashed var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.form-advanced>summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.form-advanced[open]>summary{margin-bottom:var(--space-3)}.form-advanced>summary:focus-visible{outline:var(--border-strong) solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}.title-icon,.page-icon{vertical-align:middle;color:var(--color-action-primary-bg);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.page-icon{border-radius:var(--radius-md);background:var(--color-status-success-bg);width:44px;height:44px;margin-right:var(--space-3)}.title-icon{margin-right:var(--space-2)}.card-title,.stat-label{align-items:center;display:inline-flex}.page-title h1{align-items:center;display:flex}.punch-button,.punch-today,.punch-again{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.punch-button{display:flex}
.app-shell{grid-template-columns:264px 1fr;min-height:100vh;display:grid}@media (max-width:1024px){.app-shell{grid-template-columns:1fr}}.app-sidebar{border-right:var(--border-default) solid var(--color-border-subtle);background:var(--color-bg-surface);padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}@media (max-width:1024px){.app-sidebar{border-right:none;border-bottom:var(--border-default) solid var(--color-border-subtle)}}.brand{align-items:center;gap:var(--space-2);font-weight:var(--font-weight-bold);color:var(--color-text-default);min-height:var(--size-touch-min);text-decoration:none;display:flex}.nav-group-label{font-size:var(--font-size-xs);line-height:var(--font-size-xs-line);text-transform:none;color:var(--color-text-muted);font-weight:var(--font-weight-semibold);padding:var(--space-2) var(--space-2) var(--space-1)}.nav-link{align-items:center;gap:var(--space-2);min-height:var(--size-touch-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-default);border:var(--border-hairline) solid transparent;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-bg-subtle)}.nav-link[aria-current=page]{background:var(--color-status-info-bg);color:var(--color-status-info-fg);font-weight:var(--font-weight-medium);border-color:currentColor}.app-main{flex-direction:column;min-width:0;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:var(--border-default) solid var(--color-border-subtle);background:var(--color-bg-surface);flex-wrap:wrap;display:flex}.app-content{padding:var(--space-5);gap:var(--space-5);flex-direction:column;min-width:0;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-title{gap:var(--space-1);flex-direction:column;display:flex}.auth-shell{justify-content:center;align-items:center;gap:var(--space-6);min-height:100vh;padding:var(--space-5);background:var(--color-bg-page);flex-direction:column;display:flex}.auth-card{background:var(--color-bg-surface);border:var(--border-default) solid var(--color-border-subtle);border-radius:var(--radius-xl);width:min(440px,100%);padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.platform-shell{background:var(--color-bg-page);min-height:100vh}.platform-topbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-bg-inverse);color:var(--color-text-inverse);flex-wrap:wrap;display:flex}.platform-topbar a{color:var(--color-text-inverse)}.app-sidebar{background:var(--gradient-primary);color:var(--brand-on-dark);border-right:none}.brand{color:var(--brand-surface);font-size:var(--font-size-lg)}.nav-group-label{color:var(--brand-teal-400);letter-spacing:.02em}.app-sidebar .nav-link{color:var(--brand-on-dark);transition:background var(--motion-duration-fast) var(--motion-easing-standard), transform var(--motion-duration-fast) var(--motion-easing-standard)}.app-sidebar .nav-link:hover{background:color-mix(in srgb, var(--brand-teal-400) 18%, transparent);transform:translate(2px)}.app-sidebar .nav-link[aria-current=page]{background:var(--gradient-accent);color:var(--color-action-primary-fg);font-weight:var(--font-weight-semibold);border-color:#0000}.app-header{background:var(--brand-surface);border-bottom:var(--border-default) solid var(--color-border-subtle)}.platform-topbar{background:var(--gradient-primary);color:var(--brand-on-dark)}.auth-shell{background:var(--gradient-primary)}.auth-card{box-shadow:var(--shadow-lg);border-color:#0000}.nav-toggle{color:var(--brand-on-dark);display:none}@media (max-width:1024px){.nav-toggle{display:inline-flex}.app-sidebar[data-open=false] .nav-groups{display:none}.app-sidebar{z-index:var(--z-sticky);position:sticky;top:0}}
