:root{--fluent-color-brand-background:#0078d4;--fluent-color-brand-background-hover:#106ebe;--fluent-color-brand-background-pressed:#005a9e;--fluent-color-brand-background-selected:#106ebe;--fluent-color-brand-foreground-1:#0078d4;--fluent-color-brand-foreground-2:#115ea3;--fluent-color-brand-stroke-1:#0078d4;--fluent-color-brand-stroke-2:#115ea3;--fluent-color-neutral-background-1:light-dark(#fff,#292929);--fluent-color-neutral-background-1-hover:light-dark(#f5f5f5,#3d3d3d);--fluent-color-neutral-background-1-pressed:light-dark(#e0e0e0,#1f1f1f);--fluent-color-neutral-background-2:light-dark(#fafafa,#1f1f1f);--fluent-color-neutral-background-3:light-dark(#f5f5f5,#141414);--fluent-color-neutral-background-4:light-dark(#f0f0f0,#0a0a0a);--fluent-color-neutral-background-5:light-dark(#ebebeb,#000);--fluent-color-neutral-background-6:light-dark(#e6e6e6,#0a0a0a);--fluent-color-neutral-background-subtle:transparent;--fluent-color-neutral-background-inverted:light-dark(#292929,#fff);--fluent-color-neutral-foreground-1:light-dark(#242424,#fff);--fluent-color-neutral-foreground-2:light-dark(#424242,#d6d6d6);--fluent-color-neutral-foreground-3:light-dark(#616161,#adadad);--fluent-color-neutral-foreground-4:light-dark(#707070,#999);--fluent-color-neutral-foreground-disabled:light-dark(#bdbdbd,#5c5c5c);--fluent-color-neutral-foreground-inverted:light-dark(#fff,#242424);--fluent-color-neutral-foreground-on-brand:#fff;--fluent-color-neutral-stroke-1:light-dark(#d1d1d1,#666);--fluent-color-neutral-stroke-1-hover:light-dark(#c7c7c7,#757575);--fluent-color-neutral-stroke-1-pressed:light-dark(#b3b3b3,#6b6b6b);--fluent-color-neutral-stroke-2:light-dark(#e0e0e0,#525252);--fluent-color-neutral-stroke-3:light-dark(#f0f0f0,#3d3d3d);--fluent-color-neutral-stroke-accessible:light-dark(#616161,#adadad);--fluent-color-neutral-stroke-focus-1:light-dark(#fff,#000);--fluent-color-neutral-stroke-focus-2:light-dark(#000,#fff);--fluent-color-status-success-background-1:light-dark(#dff6dd,#052505);--fluent-color-status-success-background-2:light-dark(#c3eac0,#0a3d0a);--fluent-color-status-success-foreground-1:light-dark(#107c10,#54b054);--fluent-color-status-success-foreground-2:light-dark(#0e6a0e,#9fd89f);--fluent-color-status-success-foreground-3:light-dark(#094509,#b7e0b7);--fluent-color-status-success-stroke-1:light-dark(#9fd89f,#107c10);--fluent-color-status-warning-background-1:light-dark(#fff4ce,#4a1e04);--fluent-color-status-warning-background-2:light-dark(#fdecb5,#6e3206);--fluent-color-status-warning-foreground-1:light-dark(#8a6116,#fde300);--fluent-color-status-warning-foreground-2:light-dark(#6c4c0d,#fdea6d);--fluent-color-status-warning-foreground-3:light-dark(#4c3508,#fdf181);--fluent-color-status-warning-stroke-1:light-dark(#fde300,#8a6116);--fluent-color-status-danger-background-1:light-dark(#fde7e9,#3b0509);--fluent-color-status-danger-background-2:light-dark(#f9d9dc,#5c0a0f);--fluent-color-status-danger-foreground-1:light-dark(#bc2f32,#dc626d);--fluent-color-status-danger-foreground-2:light-dark(#a42427,#eeacb2);--fluent-color-status-danger-foreground-3:light-dark(#751d1f,#f4bfc3);--fluent-color-status-danger-stroke-1:light-dark(#dc626d,#bc2f32);--fluent-spacing-none:0;--fluent-spacing-xxs:2px;--fluent-spacing-xs:4px;--fluent-spacing-s-nudge:6px;--fluent-spacing-s:8px;--fluent-spacing-m-nudge:10px;--fluent-spacing-m:12px;--fluent-spacing-l:16px;--fluent-spacing-xl:20px;--fluent-spacing-xxl:24px;--fluent-spacing-xxxl:32px;--fluent-border-radius-none:0;--fluent-border-radius-small:2px;--fluent-border-radius-medium:4px;--fluent-border-radius-large:6px;--fluent-border-radius-xlarge:8px;--fluent-border-radius-circular:10000px;--fluent-font-family-base:"Segoe UI","Segoe UI Web (West European)",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif;--fluent-font-family-monospace:Consolas,"Courier New",Courier,monospace;--fluent-font-family-numeric:Bahnschrift,"Segoe UI","Segoe UI Web (West European)",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif;--fluent-font-size-base-100:10px;--fluent-font-size-base-200:12px;--fluent-font-size-base-300:14px;--fluent-font-size-base-400:16px;--fluent-font-size-base-500:20px;--fluent-font-size-base-600:24px;--fluent-font-size-hero-700:28px;--fluent-font-size-hero-800:32px;--fluent-font-size-hero-900:40px;--fluent-font-size-hero-1000:68px;--fluent-font-weight-regular:400;--fluent-font-weight-medium:500;--fluent-font-weight-semibold:600;--fluent-font-weight-bold:700;--fluent-line-height-base-100:14px;--fluent-line-height-base-200:16px;--fluent-line-height-base-300:20px;--fluent-line-height-base-400:22px;--fluent-line-height-base-500:28px;--fluent-line-height-base-600:32px;--fluent-line-height-hero-700:36px;--fluent-line-height-hero-800:40px;--fluent-line-height-hero-900:52px;--fluent-line-height-hero-1000:92px;--fluent-shadow-2:0 1px 2px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--fluent-shadow-4:0 2px 4px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--fluent-shadow-8:0 4px 8px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--fluent-shadow-16:0 8px 16px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--fluent-shadow-28:0 14px 28px rgba(0,0,0,.24),0 0 8px rgba(0,0,0,.12);--fluent-shadow-64:0 32px 64px rgba(0,0,0,.24),0 0 8px rgba(0,0,0,.12);--fluent-shadow-2-dark:0 1px 2px rgba(0,0,0,.28),0 0 2px rgba(0,0,0,.24);--fluent-shadow-4-dark:0 2px 4px rgba(0,0,0,.28),0 0 2px rgba(0,0,0,.24);--fluent-shadow-8-dark:0 4px 8px rgba(0,0,0,.28),0 0 2px rgba(0,0,0,.24);--fluent-shadow-16-dark:0 8px 16px rgba(0,0,0,.28),0 0 2px rgba(0,0,0,.24);--fluent-duration-ultra-fast:50ms;--fluent-duration-faster:100ms;--fluent-duration-fast:150ms;--fluent-duration-normal:200ms;--fluent-duration-gentle:250ms;--fluent-duration-slow:300ms;--fluent-duration-slower:400ms;--fluent-duration-ultra-slow:500ms;--fluent-easing-accelerate-max:cubic-bezier(0.9,0.1,1,0.2);--fluent-easing-accelerate-mid:cubic-bezier(1,0,1,1);--fluent-easing-accelerate-min:cubic-bezier(0.8,0,0.78,1);--fluent-easing-decelerate-max:cubic-bezier(0.1,0.9,0.2,1);--fluent-easing-decelerate-mid:cubic-bezier(0,0,0,1);--fluent-easing-decelerate-min:cubic-bezier(0.33,0,0.1,1);--fluent-easing-ease:cubic-bezier(0.33,0,0.67,1);--fluent-easing-linear:linear;--fluent-stroke-width-thin:1px;--fluent-stroke-width-thick:2px;--fluent-stroke-width-thicker:3px;--fluent-stroke-width-thickest:4px;--fluent-animation-fade-in:var(--fluent-duration-normal) var(--fluent-easing-decelerate-mid);--fluent-animation-fade-out:var(--fluent-duration-fast) var(--fluent-easing-accelerate-mid);--fluent-animation-slide-in:var(--fluent-duration-normal) var(--fluent-easing-decelerate-max);--fluent-animation-slide-out:var(--fluent-duration-fast) var(--fluent-easing-accelerate-max);--fluent-animation-scale-in:var(--fluent-duration-normal) var(--fluent-easing-decelerate-mid);--fluent-animation-scale-out:var(--fluent-duration-fast) var(--fluent-easing-accelerate-mid);--fluent-animation-spin:var(--fluent-duration-ultra-slow) var(--fluent-easing-linear) infinite;--fluent-animation-fill-none:none;--fluent-animation-fill-forwards:forwards;--fluent-animation-fill-backwards:backwards;--fluent-animation-fill-both:both;--fluent-animation-direction-normal:normal;--fluent-animation-direction-reverse:reverse;--fluent-animation-direction-alternate:alternate;--fluent-animation-iteration-once:1;--fluent-animation-iteration-infinite:infinite;--fluent-skeleton-background:light-dark(#e0e0e0,#3d3d3d);--fluent-skeleton-background-subtle:light-dark(#f0f0f0,#2d2d2d);--fluent-skeleton-shimmer-start:light-dark(hsla(0,0%,100%,0),hsla(0,0%,100%,0));--fluent-skeleton-shimmer-middle:light-dark(hsla(0,0%,100%,.5),hsla(0,0%,100%,.08));--fluent-skeleton-shimmer-end:light-dark(hsla(0,0%,100%,0),hsla(0,0%,100%,0));--fluent-skeleton-shimmer-gradient:linear-gradient(90deg,var(--fluent-skeleton-shimmer-start) 0%,var(--fluent-skeleton-shimmer-middle) 50%,var(--fluent-skeleton-shimmer-end) 100%);--fluent-skeleton-animation-duration:1.5s;--fluent-skeleton-animation-timing:var(--fluent-easing-linear);--fluent-skeleton-animation-delay:0s;--fluent-skeleton-border-radius:var(--fluent-border-radius-medium);--fluent-skeleton-height-text:1em;--fluent-skeleton-height-heading:1.5em;--fluent-skeleton-height-avatar-small:24px;--fluent-skeleton-height-avatar-medium:32px;--fluent-skeleton-height-avatar-large:48px}.fluent-button{align-items:center;border:var(--fluent-stroke-width-thin) solid transparent;border-radius:var(--fluent-border-radius-medium);box-sizing:border-box;cursor:pointer;display:inline-flex;font-family:var(--fluent-font-family-base);font-size:var(--fluent-font-size-base-300);font-weight:var(--fluent-font-weight-semibold);gap:var(--fluent-spacing-xs);justify-content:center;line-height:var(--fluent-line-height-base-300);min-height:32px;padding:5px 12px;text-decoration:none;transition:background-color var(--fluent-duration-faster) var(--fluent-easing-ease),border-color var(--fluent-duration-faster) var(--fluent-easing-ease),color var(--fluent-duration-faster) var(--fluent-easing-ease);vertical-align:middle}.fluent-button-primary{background-color:var(--fluent-color-brand-background);border-color:transparent;color:var(--fluent-color-neutral-foreground-on-brand)}.fluent-button-primary:hover{background-color:var(--fluent-color-brand-background-hover)}.fluent-button-primary:active{background-color:var(--fluent-color-brand-background-pressed)}.fluent-button-primary:disabled{background-color:var(--fluent-color-neutral-background-5);color:var(--fluent-color-neutral-foreground-disabled);cursor:not-allowed}.fluent-button-secondary{background-color:var(--fluent-color-neutral-background-1);border-color:var(--fluent-color-neutral-stroke-1);color:var(--fluent-color-neutral-foreground-1)}.fluent-button-secondary:hover{background-color:var(--fluent-color-neutral-background-1-hover);border-color:var(--fluent-color-neutral-stroke-1-hover)}.fluent-button-secondary:active{background-color:var(--fluent-color-neutral-background-1-pressed);border-color:var(--fluent-color-neutral-stroke-1-pressed)}.fluent-button-subtle{background-color:transparent;border-color:transparent;color:var(--fluent-color-neutral-foreground-2)}.fluent-button-subtle:hover{background-color:var(--fluent-color-neutral-background-1-hover)}.fluent-button-subtle:hover,.fluent-input{color:var(--fluent-color-neutral-foreground-1)}.fluent-input{background-color:var(--fluent-color-neutral-background-1);border:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-1);border-bottom-width:var(--fluent-stroke-width-thick);border-radius:var(--fluent-border-radius-medium);box-sizing:border-box;font-family:var(--fluent-font-family-base);font-size:var(--fluent-font-size-base-300);line-height:var(--fluent-line-height-base-300);min-height:32px;padding:5px 12px 7px;transition:border-color var(--fluent-duration-faster) var(--fluent-easing-ease)}.fluent-input::placeholder{color:var(--fluent-color-neutral-foreground-4)}.fluent-input:hover{border-color:var(--fluent-color-neutral-stroke-1-hover)}.fluent-input:focus{border-bottom-color:var(--fluent-color-brand-stroke-1);outline:none}.fluent-input:disabled{background-color:var(--fluent-color-neutral-background-5);border-color:var(--fluent-color-neutral-stroke-2);color:var(--fluent-color-neutral-foreground-disabled);cursor:not-allowed}.fluent-card{background-color:var(--fluent-color-neutral-background-1);border:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);border-radius:var(--fluent-border-radius-xlarge);box-shadow:var(--fluent-shadow-4);padding:var(--fluent-spacing-m)}.fluent-focus-visible:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}:root{color-scheme:light dark;--md-sys-color-primary:light-dark(#1a73e8,#005a9e);--md-sys-color-primary-text:light-dark(#1a73e8,#569cd6);--md-sys-color-primary-container:light-dark(#a8c7fa,#004a77);--md-sys-color-on-primary:#fff;--md-sys-color-on-primary-container:light-dark(#041e49,#a8c7fa);--md-sys-color-secondary:light-dark(#5f6368,#bdc1c6);--md-sys-color-secondary-container:light-dark(#e8eaed,#3c4043);--md-sys-color-on-secondary:light-dark(#fff,#303030);--md-sys-color-on-secondary-container:light-dark(#1f1f1f,#e8eaed);--md-sys-color-tertiary:#22c55e;--md-sys-color-tertiary-container:light-dark(#ceead6,#0d5223);--md-sys-color-on-tertiary:light-dark(#fff,#003914);--md-sys-color-on-tertiary-container:light-dark(#0d3f1a,#ceead6);--md-sys-color-error:light-dark(#d42314,#f04438);--md-sys-color-error-container:light-dark(#fce8e6,#8c1d18);--md-sys-color-on-error:light-dark(#fff,#601410);--md-sys-color-on-error-container:light-dark(#5c0011,#fce8e6);--md-sys-color-surface:light-dark(#fff,#1f1f1f);--md-sys-color-surface-dim:light-dark(#e0e0e0,#141414);--md-sys-color-surface-bright:light-dark(#fafafa,#3c3c3c);--md-sys-color-surface-container-lowest:light-dark(#fff,#0e0e0e);--md-sys-color-surface-container-low:light-dark(#f5f5f5,#1c1c1c);--md-sys-color-surface-container:light-dark(#eee,#242424);--md-sys-color-surface-container-high:light-dark(#e8e8e8,#2e2e2e);--md-sys-color-surface-container-highest:light-dark(#e0e0e0,#393939);--md-sys-color-on-surface:light-dark(#1f2937,#e3e3e3);--md-sys-color-on-surface-variant:light-dark(#44474e,#c4c7c5);--md-sys-color-outline:light-dark(#74777f,#8e918f);--md-sys-color-outline-variant:light-dark(#c4c7c5,#44474e);--md-sys-color-inverse-surface:light-dark(#2f3033,#e3e3e3);--md-sys-color-inverse-on-surface:light-dark(#f2f2f2,#303030);--md-sys-color-inverse-primary:light-dark(#005a9e,#0b57d0);--color-primary:var(--md-sys-color-primary);--color-primary-text:var(--md-sys-color-primary-text);--color-primary-hover:light-dark(#1557b0,#3380c4);--color-primary-active:light-dark(#0d47a1,#4d94d0);--color-success:var(--md-sys-color-tertiary);--color-danger:var(--md-sys-color-error);--color-danger-hover:light-dark(#b3261e,#f5a9a4);--color-warning:light-dark(#e37400,#fdd663);--color-text:var(--md-sys-color-on-surface);--color-text-muted:var(--md-sys-color-on-surface-variant);--color-border:var(--md-sys-color-outline-variant);--color-background:var(--md-sys-color-surface);--color-surface:var(--md-sys-color-surface-container-low);--color-surface-hover:var(--md-sys-color-surface-container);--color-info-bg:var(--md-sys-color-primary-container);--color-success-bg:var(--md-sys-color-tertiary-container);--color-warning-bg:light-dark(#fef7e0,#3d3200);--color-danger-bg:var(--md-sys-color-error-container);--color-accent:light-dark(#7c4dff,#b388ff);--color-accent-hover:light-dark(#651fff,#d1b3ff);--color-error:var(--md-sys-color-error);--color-below-target:light-dark(#b45309,#fbbf24);--color-button-hover:var(--md-sys-color-surface-container-high);--color-overlay-light:light-dark(rgba(0,0,0,.08),hsla(0,0%,100%,.08));--color-danger-overlay:light-dark(rgba(217,48,37,.12),hsla(5,81%,73%,.16));--space-xs:4px;--space-sm:8px;--space-sm-md:10px;--space-md:12px;--space-lg:16px;--space-lg-xl:20px;--space-xl:24px;--space-2xl:32px;--space-3xl:40px;--radius-xs:2px;--radius-sm:4px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--radius-2xl:8px;--radius-full:4px;--elevation-1:0 1px 2px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--elevation-2:0 2px 4px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--elevation-3:0 4px 8px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--elevation-4:0 8px 16px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);--elevation-5:0 14px 28px rgba(0,0,0,.24),0 0 8px rgba(0,0,0,.12);--shadow-sm:var(--elevation-1);--shadow-md:var(--elevation-2);--shadow-lg:var(--elevation-3);--shadow-focus-color:light-dark(rgba(26,115,232,.38),rgba(168,199,250,.38));--shadow-focus:0 0 0 3px var(--shadow-focus-color);--shadow-card:light-dark(0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.3));--shadow-card-hover:light-dark(0 4px 6px rgba(0,0,0,.1),0 2px 4px rgba(0,0,0,.06),0 4px 6px rgba(0,0,0,.4));--state-hover-opacity:0.08;--state-focus-opacity:0.12;--state-pressed-opacity:0.12;--state-dragged-opacity:0.16;--motion-easing-standard:cubic-bezier(0.2,0,0,1);--motion-easing-emphasized:cubic-bezier(0.2,0,0,1);--motion-easing-emphasized-decelerate:cubic-bezier(0.05,0.7,0.1,1);--motion-easing-emphasized-accelerate:cubic-bezier(0.3,0,0.8,0.15);--motion-duration-short1:50ms;--motion-duration-short2:100ms;--motion-duration-short3:150ms;--motion-duration-short4:200ms;--motion-duration-medium1:250ms;--motion-duration-medium2:300ms;--motion-duration-medium3:350ms;--motion-duration-medium4:400ms;--motion-duration-long1:450ms;--motion-duration-long2:500ms;--transition-fast:var(--motion-duration-short3) var(--motion-easing-standard);--transition-normal:var(--motion-duration-short4) var(--motion-easing-standard);--transition-slow:var(--motion-duration-medium2) var(--motion-easing-emphasized);--font-family:"Segoe UI","Segoe UI Web (West European)",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:700;--font-size-xs:10px;--font-size-sm:11px;--font-size-md:12px;--font-size-md-lg:13px;--font-size-base:14px;--font-size-base-lg:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:22px;--font-size-3xl:24px;--font-size-icon:40px;--size-input-min-height:48px;--size-button-min-height:40px;--size-button-sm-min-height:36px;--size-icon-sm:14px;--size-icon-md:20px;--size-icon-lg:30px;--size-spinner:30px;--size-max-width-container:500px;--size-max-width-modal:700px;--spinner-track:hsla(0,0%,100%,.3);--spinner-head:#fff;--overlay-bg:light-dark(rgba(0,0,0,.32),rgba(0,0,0,.56))}:root.dark-mode{color-scheme:dark}:root.light-mode{color-scheme:light}html{transition:background-color .2s ease,color .2s ease}.btn,.btn-icon,.btn-tertiary,.card,.quick-access-item,.timesheet-entry{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}body{background-color:var(--md-sys-color-surface-container-low);color:var(--color-text);font-family:var(--font-family);line-height:1.5;margin:0;min-height:100vh;transition:background-color var(--transition-normal),color var(--transition-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container,body{box-sizing:border-box;padding:var(--space-xl)}.container{background:var(--md-sys-color-surface);border-radius:var(--radius-xl);box-shadow:var(--elevation-2);margin-left:auto;margin-right:auto;max-width:var(--size-max-width-container);transition:background-color var(--transition-normal),box-shadow var(--transition-normal)}h1{color:var(--color-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);letter-spacing:-.02em;margin:0 0 var(--space-xs) 0}.tagline,h1{text-align:center}.tagline{color:#569cd6;font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-regular);margin:0 0 var(--space-lg) 0}.tagline,label{letter-spacing:.01em}label{color:var(--color-text);display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-bottom:var(--space-sm)}.login-section{padding:40px 20px;text-align:center}.login-section h2{color:var(--color-text);font-size:var(--font-size-xl);margin-bottom:10px}.login-section p{color:var(--color-text-muted);font-size:var(--font-size-base);margin-bottom:20px}.user-info{background-color:var(--color-surface);border-radius:var(--radius-xs);display:none;margin-bottom:10px;margin-top:5px;padding:5px 10px;text-align:center}.user-info p{color:var(--color-text-muted);font-size:var(--font-size-md);margin:2px 0}.main-form{display:none}.form-group{margin-bottom:var(--space-lg)}input,select,textarea{background:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline);border-radius:var(--radius-sm);box-sizing:border-box;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-lg);padding:var(--space-md) var(--space-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}input:hover,select:hover,textarea:hover{border-color:var(--color-text)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}textarea{min-height:80px;resize:vertical}input:disabled,select:disabled,textarea:disabled{background-color:var(--md-sys-color-surface-container);border-color:var(--md-sys-color-outline-variant);color:var(--color-text-muted);cursor:not-allowed;opacity:.5;-webkit-text-fill-color:var(--color-text-muted)}input[type=date]{color-scheme:light}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;height:var(--space-xl);opacity:1;width:var(--space-xl)}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.7}@media (prefers-color-scheme:dark){:root:not(.light-mode) input[type=date]{color-scheme:dark}}:root.dark-mode input[type=date]{color-scheme:dark}.autocomplete-wrapper{position:relative}.autocomplete-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 4px 4px;border-top:none;box-shadow:var(--shadow-md);display:none;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.autocomplete-dropdown.show{display:block}.autocomplete-item{border-bottom:1px solid var(--color-border);cursor:pointer;padding:var(--space-sm-md)}.autocomplete-item:hover{background-color:var(--color-surface)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item.selected{background-color:var(--color-info-bg)}.autocomplete-item.autocomplete-active{background-color:var(--color-surface-hover);outline:2px solid var(--color-primary);outline-offset:-2px}.autocomplete-no-results{color:var(--color-text-muted);font-style:italic;padding:var(--space-sm-md);text-align:center}.job-title-setup{background:var(--color-info-bg);border:2px solid var(--color-primary);border-radius:var(--radius-sm);margin-bottom:20px;padding:var(--space-lg-xl)}.job-title-setup h3{color:var(--color-primary);font-size:var(--font-size-xl);margin-bottom:15px;margin-top:0}.form-group.has-error{animation:field-shake .4s ease-out}.form-group.field-error .form-label,.form-group.has-error .form-label{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error))}.form-group.field-valid .form-label,.form-group.has-success .form-label{color:var(--fluent-color-status-success-foreground-1)}input.field-error,input.invalid,select.field-error,select.invalid,textarea.field-error,textarea.invalid{background-color:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-color:var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}input.field-error:focus,input.invalid:focus,select.field-error:focus,select.invalid:focus,textarea.field-error:focus,textarea.invalid:focus{border-color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));box-shadow:0 0 0 1px var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));outline:none}input.field-error:focus-visible,input.invalid:focus-visible,select.field-error:focus-visible,select.invalid:focus-visible,textarea.field-error:focus-visible,textarea.invalid:focus-visible{outline:2px solid var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));outline-offset:2px}input.field-valid,input.valid,select.field-valid,select.valid,textarea.field-valid,textarea.valid{border-color:var(--fluent-color-status-success-stroke-1)}input.field-valid:focus,input.valid:focus,select.field-valid:focus,select.valid:focus,textarea.field-valid:focus,textarea.valid:focus{border-color:var(--fluent-color-status-success-foreground-1);box-shadow:0 0 0 1px var(--fluent-color-status-success-stroke-1)}input:invalid:not(:placeholder-shown):not(:focus),select:invalid:not(:placeholder-shown):not(:focus),textarea:invalid:not(:placeholder-shown):not(:focus){border-color:var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}input.field-warning,input.warning,select.field-warning,select.warning,textarea.field-warning,textarea.warning{background-color:var(--fluent-color-status-warning-background-1);border-color:var(--fluent-color-status-warning-stroke-1)}.field-error-message,.form-error-message,.validation-message{animation:validation-message-appear .2s ease-out;color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));display:block;font-size:var(--fluent-font-size-base-200,12px);line-height:var(--fluent-line-height-base-200,16px);margin-top:var(--fluent-spacing-xs,4px);padding-left:var(--fluent-spacing-xxs,2px)}.field-success-message,.validation-message.success{color:var(--fluent-color-status-success-foreground-1)}.field-warning-message,.validation-message.warning{color:var(--fluent-color-status-warning-foreground-1)}.field-validation-icon{font-size:16px;pointer-events:none;position:absolute;right:var(--fluent-spacing-m,12px);top:50%;transform:translateY(-50%)}.field-validation-icon.error{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error))}.field-validation-icon.success{color:var(--fluent-color-status-success-foreground-1)}.field-validation-icon.warning{color:var(--fluent-color-status-warning-foreground-1)}.field-wrapper,.input-wrapper{display:block;position:relative}.field-wrapper.has-icon input,.field-wrapper.has-icon select,.input-wrapper.has-icon input,.input-wrapper.has-icon select{padding-right:36px}.field-error-box,.validation-error-box{animation:validation-message-appear .2s ease-out;background:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-left:3px solid var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-on-error-container))}.field-error-box,.field-success-box,.validation-error-box,.validation-success-box{border-radius:var(--fluent-border-radius-medium,4px);font-size:var(--fluent-font-size-base-300,14px);margin-top:var(--fluent-spacing-s,8px);padding:var(--fluent-spacing-s,8px) var(--fluent-spacing-m,12px)}.field-success-box,.validation-success-box{background:var(--fluent-color-status-success-background-1);border-left:3px solid var(--fluent-color-status-success-stroke-1);color:var(--fluent-color-status-success-foreground-1)}.field-warning-box,.validation-warning-box{background:var(--fluent-color-status-warning-background-1);border-left:3px solid var(--fluent-color-status-warning-stroke-1);border-radius:var(--fluent-border-radius-medium,4px);color:var(--fluent-color-status-warning-foreground-1);font-size:var(--fluent-font-size-base-300,14px);margin-top:var(--fluent-spacing-s,8px);padding:var(--fluent-spacing-s,8px) var(--fluent-spacing-m,12px)}.form-label.required:after,label.required:after{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));content:" *";font-weight:var(--fluent-font-weight-semibold,600)}@keyframes field-shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}@keyframes validation-message-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.field-shake,.shake{animation:field-shake .4s ease-out}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{background-color:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-color:var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}input[aria-invalid=true]:focus,select[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus{box-shadow:0 0 0 1px var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}.field-helper-text,.form-helper-text{color:var(--fluent-color-neutral-foreground-3,var(--color-text-muted));display:block;font-size:var(--fluent-font-size-base-200,12px);line-height:var(--fluent-line-height-base-200,16px);margin-top:var(--fluent-spacing-xs,4px);padding-left:var(--fluent-spacing-xxs,2px)}.form-group.has-error .field-helper-text,.form-group.has-error .form-helper-text{display:none}.char-count,.field-char-count{color:var(--fluent-color-neutral-foreground-4,var(--color-text-muted));display:block;font-size:var(--fluent-font-size-base-100,10px);margin-top:var(--fluent-spacing-xxs,2px);text-align:right}.char-count.near-limit,.field-char-count.near-limit{color:var(--fluent-color-status-warning-foreground-1)}.char-count.at-limit,.field-char-count.at-limit{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));font-weight:var(--fluent-font-weight-semibold,600)}@media (prefers-reduced-motion:reduce){.field-error-box,.field-error-message,.field-shake,.field-success-box,.field-warning-box,.form-error-message,.form-group.has-error,.shake,.validation-error-box,.validation-message,.validation-success-box,.validation-warning-box{animation:none}input,select,textarea{transition:none}}button{background-color:var(--color-primary);border:1px solid transparent;border-radius:var(--radius-md);color:var(--md-sys-color-on-primary);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);letter-spacing:.01em;margin-top:var(--space-md);min-height:var(--size-button-min-height);overflow:hidden;padding:var(--space-sm) var(--space-lg);position:relative;text-transform:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-decelerate-min,cubic-bezier(.33,0,.1,1));width:100%}button:hover:not(:disabled){background-color:var(--color-primary-hover)}button:active:not(:disabled){background-color:var(--color-primary-active);transform:scale(.98)}button:disabled{background-color:var(--fluent-color-neutral-background-5,#ebebeb);border-color:transparent;color:var(--fluent-color-neutral-foreground-disabled,#bdbdbd);cursor:not-allowed}.login-btn{background-color:var(--color-primary);border:none;border-radius:var(--radius-xs);color:#fff;cursor:pointer;display:inline-block;font-size:var(--font-size-lg);font-weight:600;padding:12px 24px;transition:all var(--transition-fast)}.login-btn:hover{background-color:var(--color-primary-hover)}.login-btn:active{background-color:var(--color-primary-active);transform:scale(.98)}.logout-btn{background-color:var(--fluent-color-neutral-background-1,#fff);border:1px solid var(--fluent-color-neutral-stroke-1,#d1d1d1);border-radius:var(--radius-md);color:var(--fluent-color-neutral-foreground-1,#242424);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin-top:var(--space-sm);min-height:var(--size-button-sm-min-height);padding:var(--space-sm) var(--space-lg);transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-decelerate-min,cubic-bezier(.33,0,.1,1))}.logout-btn:hover{background-color:var(--fluent-color-neutral-background-1-hover,#f5f5f5);border-color:var(--fluent-color-neutral-stroke-1-hover,#c7c7c7)}.logout-btn:active{background-color:var(--fluent-color-neutral-background-1-pressed,#e0e0e0);transform:scale(.98)}.timesheet-action-btn{align-items:center;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:inline-flex;flex-direction:column;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:4px;justify-content:center;padding:8px 16px;transition:all var(--transition-fast)}.timesheet-action-btn:hover:not(:disabled){background:var(--color-primary-hover)}.timesheet-action-btn:active:not(:disabled){background:var(--color-primary-active);transform:scale(.97)}.timesheet-action-btn:disabled{background:var(--color-border);cursor:not-allowed}.timesheet-action-btn svg{height:16px;width:16px}.btn-tertiary{background:transparent;border:none;border-radius:var(--radius-sm);color:var(--md-sys-color-primary);cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin:0;min-height:auto;padding:var(--space-xs) var(--space-sm);transition:background-color var(--transition-fast),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-decelerate-min,cubic-bezier(.33,0,.1,1));width:auto}.btn-tertiary:hover:not(:disabled){background:var(--md-sys-color-primary-container)}.btn-tertiary:active:not(:disabled){background:var(--md-sys-color-surface-container-high);transform:scale(.97)}.btn-tertiary:disabled{cursor:not-allowed;opacity:.5}.btn-icon,.btn-tertiary:disabled{color:var(--md-sys-color-on-surface-variant)}.btn-icon{align-items:center;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;display:flex;justify-content:center;margin:0;min-height:auto;padding:var(--space-xs);transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-decelerate-min,cubic-bezier(.33,0,.1,1));width:auto}.btn-icon:hover:not(:disabled){background:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface)}.btn-icon:active:not(:disabled){background:var(--md-sys-color-surface-container-highest);transform:scale(.92)}.btn-icon:disabled{cursor:not-allowed;opacity:.5}.icon-btn{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:flex;justify-content:center;margin:0;min-height:auto;padding:4px;transition:background-color var(--transition-fast),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-decelerate-min,cubic-bezier(.33,0,.1,1));width:auto}.icon-btn:hover{background:var(--md-sys-color-surface-container-high)}.icon-btn:active{background:var(--md-sys-color-surface-container-highest);transform:scale(.92)}.icon-btn .material-icons{font-size:18px}@media (prefers-reduced-motion:reduce){.btn-icon,.btn-tertiary,.icon-btn,.login-btn,.logout-btn,.timesheet-action-btn,button{transition:none}.btn-icon:active:not(:disabled),.btn-tertiary:active:not(:disabled),.icon-btn:active,.login-btn:active,.logout-btn:active,.timesheet-action-btn:active:not(:disabled),button:active:not(:disabled){transform:none}}.card{background-color:var(--fluent-color-neutral-background-1);border:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);border-radius:var(--fluent-border-radius-xlarge);box-shadow:var(--fluent-shadow-4);padding:var(--fluent-spacing-l);transition:box-shadow var(--fluent-duration-normal) var(--fluent-easing-ease),border-color var(--fluent-duration-normal) var(--fluent-easing-ease),transform var(--fluent-duration-normal) var(--fluent-easing-ease)}.card:hover{border-color:var(--fluent-color-neutral-stroke-1-hover);box-shadow:var(--fluent-shadow-8)}.card:active{border-color:var(--fluent-color-neutral-stroke-1-pressed);box-shadow:var(--fluent-shadow-2)}.card--interactive{cursor:pointer}.card--interactive:hover{transform:translateY(-1px)}.card--interactive:active{transform:translateY(0)}.card--elevated{box-shadow:var(--fluent-shadow-8)}.card--elevated:hover{box-shadow:var(--fluent-shadow-16)}.card--flat{box-shadow:var(--fluent-shadow-2)}.card--flat:hover{box-shadow:var(--fluent-shadow-4)}.card--outlined{border-color:var(--fluent-color-neutral-stroke-1);box-shadow:none}.card--outlined:hover{background-color:var(--fluent-color-neutral-background-1-hover);box-shadow:var(--fluent-shadow-4)}.info-box{background-color:var(--md-sys-color-surface-container-low);border-left:none;border:1px solid var(--md-sys-color-outline-variant);border-radius:var(--radius-md);box-shadow:var(--fluent-shadow-2);margin:var(--space-lg) 0;padding:var(--space-lg);transition:box-shadow var(--fluent-duration-normal) var(--fluent-easing-ease),border-color var(--fluent-duration-normal) var(--fluent-easing-ease),background-color var(--fluent-duration-normal) var(--fluent-easing-ease)}.info-box:hover{border-color:var(--md-sys-color-outline);box-shadow:var(--fluent-shadow-4)}.info-box p{font-size:var(--font-size-base);line-height:1.5;margin:0}.info-box p,.info-box strong{color:var(--md-sys-color-on-primary-container)}.info-box strong{font-weight:var(--font-weight-medium)}.card--small{border-radius:var(--fluent-border-radius-medium);padding:var(--fluent-spacing-s)}.card--large{border-radius:var(--fluent-border-radius-xlarge);padding:var(--fluent-spacing-xxl)}.card--success{background-color:var(--fluent-color-status-success-background-1);border-left:var(--fluent-stroke-width-thicker) solid var(--fluent-color-status-success-stroke-1)}.card--success:hover{background-color:var(--fluent-color-status-success-background-2)}.card--warning{background-color:var(--fluent-color-status-warning-background-1);border-left:var(--fluent-stroke-width-thicker) solid var(--fluent-color-status-warning-stroke-1)}.card--warning:hover{background-color:var(--fluent-color-status-warning-background-2)}.card--danger{background-color:var(--fluent-color-status-danger-background-1);border-left:var(--fluent-stroke-width-thicker) solid var(--fluent-color-status-danger-stroke-1)}.card--danger:hover{background-color:var(--fluent-color-status-danger-background-2)}.card__header{border-bottom:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);margin-bottom:var(--fluent-spacing-m);padding-bottom:var(--fluent-spacing-m)}.card__title{color:var(--fluent-color-neutral-foreground-1);font-family:var(--fluent-font-family-base);font-size:var(--fluent-font-size-base-400);font-weight:var(--fluent-font-weight-semibold);line-height:var(--fluent-line-height-base-400);margin:0}.card__subtitle{color:var(--fluent-color-neutral-foreground-3);font-size:var(--fluent-font-size-base-200);margin:var(--fluent-spacing-xs) 0 0 0}.card__body{color:var(--fluent-color-neutral-foreground-2);font-size:var(--fluent-font-size-base-300);line-height:var(--fluent-line-height-base-300)}.card__footer{border-top:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);margin-top:var(--fluent-spacing-m);padding-top:var(--fluent-spacing-m)}.card--interactive:focus-visible,.card:focus-visible{box-shadow:var(--fluent-shadow-4),inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}@media (prefers-reduced-motion:reduce){.card,.card--interactive,.info-box{transition:none}.card--interactive:hover{transform:none}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalScaleOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(10px)}}.modal-header.modal-header-danger{background-color:var(--color-danger)}.modal-header.modal-header-warning{background-color:var(--color-warning);color:#1a1a00}.modal-header.modal-header-info{background-color:var(--color-primary)}.modal-header.modal-header-success{background-color:var(--color-success)}button.modal-btn-danger{background-color:var(--color-danger)}button.modal-btn-warning{background-color:var(--color-warning);color:#1a1a00}button.modal-btn-info{background-color:var(--color-primary)}button.modal-btn-success{background-color:var(--color-success)}.modal-overlay{align-items:center;background-color:var(--overlay-bg);bottom:0;display:none;justify-content:center;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity var(--fluent-duration-normal,.2s) var(--fluent-easing-decelerate-mid,cubic-bezier(0,0,0,1));z-index:10001}.modal-overlay.show{animation:modalFadeIn var(--fluent-duration-normal,.2s) var(--fluent-easing-decelerate-mid,cubic-bezier(0,0,0,1)) forwards;display:flex;opacity:1;pointer-events:auto;touch-action:none}.modal-overlay.hiding{animation:modalFadeOut var(--fluent-duration-fast,.15s) var(--fluent-easing-accelerate-mid,cubic-bezier(1,0,1,1)) forwards;pointer-events:none}#confirmModal.modal-overlay,#errorModal.modal-overlay,#hoursConfirmModal.modal-overlay,#successModal.modal-overlay{z-index:10003}.modal-dialog{background:var(--md-sys-color-surface);border-radius:var(--radius-2xl);box-shadow:var(--elevation-3);max-height:80vh;max-width:var(--size-max-width-container);opacity:0;overflow-y:auto;transform:scale(.9) translateY(20px);transition:transform var(--fluent-duration-slow,.3s) var(--fluent-easing-decelerate-max,cubic-bezier(.1,.9,.2,1)),opacity var(--fluent-duration-normal,.2s) var(--fluent-easing-decelerate-mid,cubic-bezier(0,0,0,1)),box-shadow var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1));width:90%;will-change:transform,opacity}.modal-overlay.show .modal-dialog{animation:modalScaleIn var(--fluent-duration-slow,.3s) var(--fluent-easing-decelerate-max,cubic-bezier(.1,.9,.2,1)) forwards;opacity:1;transform:scale(1) translateY(0)}.modal-overlay.hiding .modal-dialog{animation:modalScaleOut var(--fluent-duration-fast,.15s) var(--fluent-easing-accelerate-max,cubic-bezier(.9,.1,1,.2)) forwards}.modal-header{align-items:center;background-color:var(--color-success);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;color:#fff;display:flex;padding:var(--space-lg) var(--space-xl);transition:background-color var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1))}.modal-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);letter-spacing:.01em;margin:0}.modal-header .success-icon{font-size:var(--font-size-3xl);margin-right:var(--space-md)}.modal-body{padding:var(--space-xl) var(--space-xl);transition:background-color var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),color var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1))}.modal-summary-item{border-bottom:1px solid var(--md-sys-color-outline-variant);padding:var(--space-md) 0;transition:border-color var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1))}.modal-summary-item:last-child{border-bottom:none}.modal-summary-label{color:var(--color-text-muted);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);letter-spacing:.02em;margin-bottom:var(--space-xs)}.modal-summary-value{color:var(--color-text);font-size:var(--font-size-base)}.modal-footer{border-top:none;display:flex;gap:var(--space-sm);justify-content:flex-end;padding:var(--space-lg) var(--space-xl);text-align:right}.modal-footer button{margin:0;min-height:var(--size-button-min-height);padding:var(--space-md) var(--space-xl);width:auto}.modal-content{background:var(--md-sys-color-surface);border-radius:var(--radius-xl);box-shadow:var(--elevation-3);opacity:0;overscroll-behavior:contain;touch-action:auto;transform:scale(.9) translateY(20px);transition:transform var(--fluent-duration-slow,.3s) var(--fluent-easing-decelerate-max,cubic-bezier(.1,.9,.2,1)),opacity var(--fluent-duration-normal,.2s) var(--fluent-easing-decelerate-mid,cubic-bezier(0,0,0,1)),background-color var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),box-shadow var(--fluent-duration-normal,.2s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1));will-change:transform,opacity}.modal-overlay.show .modal-content{animation:modalScaleIn var(--fluent-duration-slow,.3s) var(--fluent-easing-decelerate-max,cubic-bezier(.1,.9,.2,1)) forwards;opacity:1;transform:scale(1) translateY(0)}.modal-overlay.hiding .modal-content{animation:modalScaleOut var(--fluent-duration-fast,.15s) var(--fluent-easing-accelerate-max,cubic-bezier(.9,.1,1,.2)) forwards}.modal-close{background:none;border:none;color:#fff;cursor:pointer;font-size:24px;line-height:1;margin:0 0 0 auto;min-height:auto;padding:0;transition:opacity var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1));width:auto}.modal-close:hover{opacity:.8;transform:scale(1.1)}.modal-close:active{transform:scale(.95)}.modal-close:focus-visible{box-shadow:0 0 0 var(--fluent-stroke-width-thin,1px) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick,3px) var(--fluent-color-neutral-stroke-focus-2);opacity:1;outline:none}.modal-subtitle{font-size:14px;margin-left:12px;opacity:.9}.modal-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;margin:0;min-height:36px;padding:8px 16px;transition:background-color var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),border-color var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),color var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),transform var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1)),box-shadow var(--fluent-duration-faster,.1s) var(--fluent-easing-ease,cubic-bezier(.33,0,.67,1));width:auto}.modal-btn:active:not(:disabled){transform:scale(.98)}.modal-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.modal-btn-primary{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}.modal-btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.modal-btn-primary:disabled{cursor:not-allowed;opacity:.5}.modal-btn-secondary{background:#9e9e9e;border:1px solid var(--md-sys-color-outline);color:#1a1a1a}.modal-btn-secondary:hover{background:#b0b0b0;color:#1a1a1a}.modal-btn-warning,.modal-btn-warning:hover{background:var(--color-warning);color:#1a1a00}.modal-btn-warning:hover{filter:brightness(.9)}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal-overlay.hiding,.modal-overlay.show{animation:none;transition:none}.modal-content,.modal-dialog,.modal-overlay.hiding .modal-content,.modal-overlay.hiding .modal-dialog,.modal-overlay.show .modal-content,.modal-overlay.show .modal-dialog{animation:none;transform:none;transition:none}.modal-body,.modal-btn,.modal-close,.modal-header,.modal-summary-item{transition:none}.modal-btn:active:not(:disabled),.modal-close:active,.modal-close:hover{transform:none}}#toast-container{align-items:center;bottom:var(--fluent-spacing-xl);display:flex;flex-direction:column;gap:var(--fluent-spacing-s);left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);z-index:9999}.toast{animation:toastSlideIn var(--fluent-animation-slide-in) var(--fluent-animation-fill-both);background:var(--color-text);border-radius:var(--fluent-border-radius-medium);box-shadow:var(--fluent-shadow-16);color:var(--color-background);cursor:pointer;padding:var(--fluent-spacing-m) var(--fluent-spacing-l);pointer-events:auto;transition:transform var(--fluent-duration-fast) var(--fluent-easing-ease),box-shadow var(--fluent-duration-fast) var(--fluent-easing-ease)}.toast:hover{box-shadow:var(--fluent-shadow-28);transform:scale(1.02)}.toast-success{background:var(--fluent-color-status-success-foreground-1);color:#fff}.toast-error{background:var(--fluent-color-status-danger-foreground-1);color:#fff}.toast-warning{background:var(--fluent-color-status-warning-foreground-1);color:var(--fluent-color-neutral-foreground-1)}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(var(--fluent-spacing-xxl))}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(calc(var(--fluent-spacing-l)*-1))}}@keyframes toastFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes toastShake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.toast.fading{animation:toastSlideOut var(--fluent-animation-slide-out) var(--fluent-animation-fill-forwards)}.toast-error.shake{animation:toastSlideIn var(--fluent-animation-slide-in) var(--fluent-animation-fill-both),toastShake var(--fluent-duration-slow) var(--fluent-easing-ease) .2s}@media (prefers-reduced-motion:reduce){.toast{animation:toastFadeIn var(--fluent-duration-fast) var(--fluent-easing-ease) var(--fluent-animation-fill-both)}.toast.fading{animation:toastFadeOut var(--fluent-duration-fast) var(--fluent-easing-ease) var(--fluent-animation-fill-forwards)}.toast:hover{transform:none}.toast-error.shake{animation:toastFadeIn var(--fluent-duration-fast) var(--fluent-easing-ease) var(--fluent-animation-fill-both)}@keyframes toastFadeIn{0%{opacity:0}to{opacity:1}}}.spinner-inline{animation:spin .8s linear infinite;border:2px solid var(--spinner-track);border-radius:50%;border-top-color:var(--spinner-head);display:inline-block;height:14px;margin-right:6px;vertical-align:middle;width:14px}.spinner{animation:spin 1s linear infinite;border-top:3px solid var(--color-border);border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:30px;margin:0 auto 10px;width:30px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#loading{align-items:center;background-color:hsla(0,0%,100%,.9);bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10004}.dark-mode #loading,:root[data-theme=dark] #loading{background-color:rgba(32,33,36,.9)}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background-color:var(--fluent-skeleton-background);border-radius:var(--fluent-skeleton-border-radius);overflow:hidden;position:relative}.skeleton-shimmer,.skeleton.animated{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-pulse{animation:skeleton-pulse var(--fluent-skeleton-animation-duration) var(--fluent-easing-ease) infinite;background-color:var(--fluent-skeleton-background);border-radius:var(--fluent-skeleton-border-radius)}.skeleton-line{height:var(--fluent-skeleton-height-text);width:100%}.skeleton-line,.skeleton-line-heading{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-skeleton-border-radius)}.skeleton-line-heading{height:var(--fluent-skeleton-height-heading);width:60%}.skeleton-line-short{width:40%}.skeleton-line-medium,.skeleton-line-short{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-skeleton-border-radius);height:var(--fluent-skeleton-height-text)}.skeleton-line-medium{width:70%}.skeleton-card{background-color:var(--fluent-skeleton-background-subtle);border-radius:var(--fluent-border-radius-xlarge);flex-direction:column;gap:var(--fluent-spacing-s)}.skeleton-card,.skeleton-entry{display:flex;padding:var(--fluent-spacing-m)}.skeleton-entry{align-items:center;background-color:var(--fluent-color-neutral-background-1);border:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);border-radius:var(--fluent-border-radius-large);gap:var(--fluent-spacing-m)}.skeleton-entry-content{display:flex;flex:1;flex-direction:column;gap:var(--fluent-spacing-xs)}.skeleton-entry-hours{border-radius:var(--fluent-skeleton-border-radius);height:24px;width:48px}.skeleton-avatar,.skeleton-entry-hours{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%}.skeleton-avatar{border-radius:var(--fluent-border-radius-circular);flex-shrink:0}.skeleton-avatar-small{height:var(--fluent-skeleton-height-avatar-small);width:var(--fluent-skeleton-height-avatar-small)}.skeleton-avatar-medium{height:var(--fluent-skeleton-height-avatar-medium);width:var(--fluent-skeleton-height-avatar-medium)}.skeleton-avatar-large{height:var(--fluent-skeleton-height-avatar-large);width:var(--fluent-skeleton-height-avatar-large)}.skeleton-button{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-border-radius-medium);height:32px;width:80px}.skeleton-day-group{margin-bottom:var(--fluent-spacing-l)}.skeleton-day-header{align-items:center;border-bottom:1px solid var(--fluent-color-neutral-stroke-2);display:flex;justify-content:space-between;margin-bottom:var(--fluent-spacing-s);padding:var(--fluent-spacing-s) 0}.skeleton-day-header .skeleton-line{height:16px;width:120px}.skeleton-day-header .skeleton-line-short{height:14px;width:40px}.skeleton-entries{display:flex;flex-direction:column;gap:var(--fluent-spacing-s)}@media (prefers-reduced-motion:reduce){.skeleton-avatar,.skeleton-button,.skeleton-entry-hours,.skeleton-line,.skeleton-line-heading,.skeleton-line-medium,.skeleton-line-short,.skeleton-shimmer,.skeleton.animated{animation:none;background-image:none}.skeleton-pulse{animation:none}}.skeleton-container{display:flex;flex-direction:column;gap:var(--fluent-spacing-m);padding:var(--fluent-spacing-m)}.skeleton-timesheet{display:flex;flex-direction:column;gap:var(--fluent-spacing-l);padding:var(--fluent-spacing-m) 0}.skeleton-week-header{align-items:center;background-color:var(--fluent-skeleton-background-subtle);border-radius:var(--fluent-border-radius-large);display:flex;justify-content:space-between;padding:var(--fluent-spacing-s) var(--fluent-spacing-m)}.skeleton-week-header .skeleton-line{height:20px;width:180px}.skeleton-week-header .skeleton-button{height:32px;width:32px}.week-preview-skeleton{align-items:center;display:inline-flex;gap:var(--fluent-spacing-xs);padding:var(--fluent-spacing-xs) var(--fluent-spacing-s)}.copy-week-entries-skeleton{padding:var(--fluent-spacing-m) 0}.skeleton-form{display:flex;flex-direction:column;gap:var(--fluent-spacing-m);padding:var(--fluent-spacing-m) 0}.skeleton-form-group{display:flex;flex-direction:column;gap:var(--fluent-spacing-xs)}.skeleton-label{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-skeleton-border-radius);height:14px;width:80px}.skeleton-input{height:36px}.skeleton-input,.skeleton-textarea{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-border-radius-medium);width:100%}.skeleton-textarea{height:72px}.skeleton-checkbox-row{align-items:center;display:flex;gap:var(--fluent-spacing-s)}.skeleton-checkbox{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-skeleton-border-radius);flex-shrink:0;height:18px;width:18px}.skeleton-hours-box{background-color:var(--fluent-skeleton-background-subtle);border-radius:var(--fluent-border-radius-large);display:flex;flex-direction:column;gap:var(--fluent-spacing-xs);padding:var(--fluent-spacing-m)}.skeleton-hours-box .skeleton-line{height:14px}.skeleton-hours-box .skeleton-line:first-child{width:60%}.skeleton-hours-box .skeleton-line:last-child{width:40%}.skeleton-form-row{display:flex;gap:var(--fluent-spacing-m)}.skeleton-form-row .skeleton-form-group{flex:1}.skeleton-submit-btn{animation:skeleton-shimmer var(--fluent-skeleton-animation-duration) var(--fluent-skeleton-animation-timing) infinite;background-color:var(--fluent-skeleton-background);background-image:var(--fluent-skeleton-shimmer-gradient);background-size:200% 100%;border-radius:var(--fluent-border-radius-medium);height:40px;margin-top:var(--fluent-spacing-m);width:100%}@media (prefers-reduced-motion:reduce){.skeleton-checkbox,.skeleton-input,.skeleton-label,.skeleton-submit-btn,.skeleton-textarea{animation:none;background-image:none}}.skeleton-hidden{display:none!important}.quick-access-section{display:none;margin-bottom:var(--space-lg)}.quick-access-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-sm)}.quick-access-header-left{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:var(--space-sm);margin:calc(var(--space-xs)*-1);padding:var(--space-xs);transition:background-color var(--transition-fast)}.quick-access-header-left:hover{background-color:var(--color-overlay-light)}.quick-access-header-left:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.quick-access-header-left:hover h3{color:var(--color-primary)}.quick-access-header h3{color:var(--color-text-muted);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);letter-spacing:.02em;margin:0}.quick-access-toggle{color:var(--color-text-muted);font-size:var(--font-size-xs);transition:transform var(--transition-fast)}.quick-access-section.collapsed .quick-access-toggle{transform:rotate(-90deg)}.quick-access-section.collapsed .quick-access-list{display:none}.quick-access-section.collapsed .quick-access-header{margin-bottom:0}.quick-access-clear-btn{background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-sm);margin:0;padding:var(--space-xs) var(--space-sm);transition:all var(--transition-fast);width:auto}.quick-access-clear-btn:hover{background-color:var(--color-danger-overlay);color:var(--color-danger)}.quick-access-clear-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.quick-access-list{display:flex;flex-direction:column;gap:var(--space-sm)}.quick-access-item{align-items:center;background:var(--md-sys-color-surface-container);border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;padding:var(--space-md);position:relative;transition:all var(--transition-fast)}.quick-access-item:hover{background:var(--md-sys-color-surface-container-high)}.quick-access-item:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.quick-access-item.pinned,.quick-access-item.pinned:hover{background:var(--color-warning-bg)}.quick-access-item.pinned:hover{filter:brightness(.95)}.quick-access-item-content{cursor:pointer;flex:1;margin-right:var(--space-sm);min-width:0;-webkit-user-select:none;user-select:none}.quick-access-item-title{color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.quick-access-item-subtitle,.quick-access-item-title{overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.quick-access-item-subtitle{color:var(--color-text-muted);font-size:var(--font-size-md);margin-top:var(--space-xs)}.quick-access-item-actions{display:flex;flex-shrink:0;gap:var(--space-xs)}.quick-access-action-btn{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;display:flex;font-size:var(--font-size-base);justify-content:center;line-height:1;margin:0;min-height:32px;min-width:32px;padding:var(--space-sm);transition:all var(--transition-fast);width:auto}.quick-access-action-btn:hover{background:var(--color-overlay-light)}.quick-access-action-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.quick-access-action-btn.pin-btn,.quick-access-action-btn.pin-btn.active{color:var(--color-warning)}.quick-access-action-btn.delete-btn:hover{background:var(--color-danger-overlay);color:var(--color-danger)}@media (prefers-reduced-motion:reduce){.quick-access-action-btn,.quick-access-clear-btn,.quick-access-header-left,.quick-access-item,.quick-access-toggle{transition:none}}.timesheet-btn{align-items:center;background:var(--color-accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--space-sm);justify-content:center;margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-lg);transition:background-color var(--transition-fast);width:100%}.timesheet-btn:hover{background:var(--color-accent-hover)}.timesheet-modal{border-radius:var(--radius-xl);max-height:90vh;max-width:95%;width:700px}.timesheet-container{display:none}.timesheet-container.show{display:block}.timesheet-container .timesheet-modal{background:var(--md-sys-color-surface);border:none;border-radius:var(--radius-xl);box-shadow:var(--elevation-2);max-width:none;opacity:1;transform:none;width:100%}.timesheet-add-btn{align-items:center;align-self:center;background:var(--color-primary);color:#fff;display:flex;justify-content:center;transition:all var(--transition-fast)}.timesheet-add-btn:hover{background:var(--color-primary-hover)}.timesheet-entry-edit{background:none;border:none;border-radius:var(--fluent-border-radius-small);color:var(--fluent-color-brand-foreground-1);cursor:pointer;font-size:var(--font-size-md);line-height:1;margin:0;padding:4px 8px;transition:background-color var(--fluent-duration-faster) var(--fluent-easing-ease),color var(--fluent-duration-faster) var(--fluent-easing-ease);width:auto}.timesheet-entry-edit:hover{background:var(--fluent-color-neutral-background-1-hover);color:var(--fluent-color-brand-foreground-2)}.timesheet-entry-edit:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.timesheet-entry-edit:active{background:var(--fluent-color-neutral-background-1-pressed)}.timesheet-entry-delete{background:none;border:none;border-radius:var(--fluent-border-radius-small);color:var(--fluent-color-status-danger-foreground-1);cursor:pointer;font-size:var(--font-size-md);line-height:1;margin:0;padding:4px 8px;transition:background-color var(--fluent-duration-faster) var(--fluent-easing-ease),color var(--fluent-duration-faster) var(--fluent-easing-ease);width:auto}.timesheet-entry-delete:hover{background:var(--fluent-color-status-danger-background-1);color:var(--fluent-color-status-danger-foreground-2)}.timesheet-entry-delete:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.timesheet-entry-delete:active{background:var(--fluent-color-status-danger-background-2)}.timesheet-header{background:var(--color-primary);border-radius:8px 8px 0 0;color:#fff;padding:16px 20px}.timesheet-header h2{font-size:var(--font-size-xl);font-weight:600;margin:0;text-align:center}.timesheet-week-nav{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:12px 20px}.timesheet-week-nav button{background:var(--fluent-color-brand-background);border:none;border-radius:var(--fluent-border-radius-medium);color:var(--fluent-color-neutral-foreground-on-brand);cursor:pointer;font-size:var(--font-size-base);margin:0;padding:8px 12px;transition:background-color var(--fluent-duration-faster) var(--fluent-easing-ease),box-shadow var(--fluent-duration-faster) var(--fluent-easing-ease);width:auto}.timesheet-week-nav button:hover:not(:disabled){background:var(--fluent-color-brand-background-hover)}.timesheet-week-nav button:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.timesheet-week-nav button:active:not(:disabled){background:var(--fluent-color-brand-background-pressed)}.timesheet-week-nav button:disabled{background:var(--fluent-color-neutral-background-5);color:var(--fluent-color-neutral-foreground-disabled);cursor:not-allowed}.timesheet-week-picker{flex:1;position:relative;text-align:center}.timesheet-week-label{border-radius:var(--fluent-border-radius-medium);color:var(--fluent-color-neutral-foreground-1);cursor:pointer;display:inline-block;font-size:var(--font-size-base-lg);font-weight:600;padding:4px 8px;transition:background-color var(--fluent-duration-fast) var(--fluent-easing-ease),color var(--fluent-duration-fast) var(--fluent-easing-ease)}.timesheet-week-label:hover{background:var(--fluent-color-neutral-background-1-hover);color:var(--fluent-color-brand-foreground-1)}.timesheet-week-label:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.timesheet-week-label:active{background:var(--fluent-color-neutral-background-1-pressed)}.timesheet-week-label:after{content:" 📅";font-size:var(--font-size-md);opacity:0;transition:opacity var(--transition-fast)}.timesheet-week-label:hover:after{opacity:1}.timesheet-date-picker-input{border:none;height:0;opacity:0;padding:0;pointer-events:none;position:absolute;width:0}.timesheet-body{padding:15px 20px}.timesheet-loading{padding:var(--space-3xl)}.timesheet-empty,.timesheet-loading{color:var(--color-text-muted);text-align:center}.timesheet-empty{padding:var(--space-3xl) var(--space-xl)}.timesheet-empty-icon{font-size:48px;margin-bottom:var(--space-md);opacity:.5}.timesheet-empty-text{color:var(--color-text);font-size:var(--font-size-base);margin-bottom:var(--space-sm)}.timesheet-empty-hint{font-size:var(--font-size-md);opacity:.7}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:200px;padding:var(--space-3xl) var(--space-xl);text-align:center}.empty-state__icon{font-size:48px;margin-bottom:var(--space-md);opacity:.6;transition:opacity var(--fluent-duration-fast) var(--fluent-easing-ease)}.empty-state__title{color:var(--color-text);font-size:var(--font-size-base);font-weight:500;margin:0 0 var(--space-sm) 0}.empty-state__hint{color:var(--color-text-muted);font-size:var(--font-size-md);margin:0;max-width:280px;opacity:.8}.empty-state--no-entries .empty-state__icon{opacity:.5}.empty-state--error,.empty-state--error .empty-state__title{color:var(--fluent-color-status-danger-foreground-1,var(--color-error,#dc3545))}.empty-state--error .empty-state__icon{animation:emptyStateShake .5s ease-in-out;opacity:.8}.empty-state--no-results .empty-state__icon{opacity:.4}.empty-state--no-results .empty-state__hint{font-style:italic}.empty-state__inline{padding:10px;text-align:left}.empty-state__inline,.timesheet-day-empty{color:var(--color-text-muted);font-size:var(--font-size-md);font-style:italic}.timesheet-day-empty{padding:var(--space-sm) var(--space-md)}@keyframes emptyStateShake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-2px)}20%,40%,60%,80%{transform:translateX(2px)}}@media (prefers-reduced-motion:reduce){.empty-state__icon{transition:none}.empty-state--error .empty-state__icon{animation:none}}.timesheet-day-group{border-radius:var(--fluent-border-radius-large);margin-bottom:15px;transition:box-shadow var(--fluent-duration-fast) var(--fluent-easing-ease)}.timesheet-day-group:hover{box-shadow:var(--fluent-shadow-2)}.timesheet-day-group:focus-within{box-shadow:var(--fluent-shadow-4)}.timesheet-day-header{align-items:center;background:var(--fluent-color-neutral-background-2);border:var(--fluent-stroke-width-thin) solid transparent;border-radius:var(--fluent-border-radius-medium);display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin-bottom:8px;padding:8px 12px;transition:background-color var(--fluent-duration-fast) var(--fluent-easing-ease),border-color var(--fluent-duration-fast) var(--fluent-easing-ease)}.timesheet-day-header:hover{background:var(--fluent-color-neutral-background-1-hover);border-color:var(--fluent-color-neutral-stroke-2)}.timesheet-day-name{color:var(--color-text);flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.timesheet-day-name,.timesheet-day-total{font-size:var(--font-size-base);font-weight:600;white-space:nowrap}.timesheet-day-total{color:var(--color-primary-text);flex-shrink:0}.timesheet-day-actions{display:flex!important;flex-direction:row!important;flex-shrink:0;flex-wrap:nowrap!important;gap:6px;margin-left:auto;margin-right:8px}.timesheet-day-add-btn,.timesheet-day-copy-btn{align-items:center;border:none;border-radius:var(--fluent-border-radius-medium);cursor:pointer;display:inline-flex!important;flex-direction:row!important;font-size:var(--font-size-sm);font-weight:500;justify-content:center;margin:0!important;min-height:auto!important;padding:4px 10px!important;transition:background-color var(--fluent-duration-fast) var(--fluent-easing-ease),transform var(--fluent-duration-fast) var(--fluent-easing-ease);white-space:nowrap;width:auto!important}@media (max-width:480px){.timesheet-day-actions{gap:4px;margin-right:8px}.timesheet-day-add-btn,.timesheet-day-copy-btn{font-size:11px;padding:3px 6px}}.timesheet-day-add-btn{background:var(--color-primary);color:#fff}.timesheet-day-add-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.timesheet-day-copy-btn{background:var(--color-primary);color:#fff}.timesheet-day-copy-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.timesheet-day-add-btn:active,.timesheet-day-copy-btn:active{transform:translateY(0)}.timesheet-entry{align-items:flex-start;background:var(--fluent-color-neutral-background-1);border:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);border-radius:var(--fluent-border-radius-medium);cursor:pointer;display:flex;gap:12px;margin-bottom:6px;padding:10px 12px;transition:background-color var(--fluent-duration-fast) var(--fluent-easing-ease),border-color var(--fluent-duration-fast) var(--fluent-easing-ease),box-shadow var(--fluent-duration-fast) var(--fluent-easing-ease),transform var(--fluent-duration-fast) var(--fluent-easing-ease);-webkit-user-select:none;user-select:none}.timesheet-entry:hover{background:var(--fluent-color-neutral-background-1-hover);border-color:var(--fluent-color-neutral-stroke-1-hover);box-shadow:var(--fluent-shadow-4);transform:translateY(-1px)}.timesheet-entry:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.timesheet-entry:active{background:var(--fluent-color-neutral-background-1-pressed);box-shadow:var(--fluent-shadow-2);transform:translateY(0)}.timesheet-entry-info{flex:1;min-width:0;-webkit-user-select:none;user-select:none}.timesheet-entry-project{color:var(--color-text);font-size:var(--font-size-md-lg);font-weight:600}.timesheet-entry-project,.timesheet-entry-task{overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.timesheet-entry-task{color:var(--color-text-muted);font-size:var(--font-size-md);margin-top:2px}.timesheet-entry-memo{color:var(--color-text-muted);display:-webkit-box;font-size:var(--font-size-sm);-webkit-line-clamp:2;margin-top:4px;-webkit-box-orient:vertical;overflow:hidden;-webkit-user-select:none;user-select:none}.timesheet-entry-hours{align-items:center;display:flex;flex-shrink:0;gap:6px}.timesheet-entry-hours-display{color:var(--color-text);font-size:var(--font-size-md-lg);font-weight:500;min-width:50px;padding:6px 8px;text-align:center}.timesheet-entry-hours-stack{align-items:center;display:flex;flex-direction:column;gap:2px}.timesheet-entry-billable{color:var(--color-text-muted);font-size:var(--font-size-sm)}.timesheet-entry-billable.billable{color:var(--color-success)}.timesheet-entry-billable.unbillable{color:var(--color-error)}.hours-below-target{color:var(--color-below-target)}.timesheet-entry-status{border-radius:3px;font-size:var(--font-size-xs);font-weight:600;padding:2px 6px;text-transform:uppercase}.timesheet-entry-status.status-pending{background-color:rgba(255,152,0,.2);color:#ff9800}.timesheet-entry-status.status-approved{background-color:rgba(76,175,80,.2);color:#4caf50}.timesheet-entry.status-pending{background-color:rgba(255,152,0,.05);border-left:3px solid #ff9800}.timesheet-entry.status-approved{background-color:rgba(76,175,80,.05);border-left:3px solid #4caf50}.timesheet-entry-status.status-rejected{background-color:rgba(212,35,20,.2);color:#d42314}.timesheet-entry.status-rejected{background-color:rgba(212,35,20,.05);border-left:3px solid #d42314}.timesheet-entry-status.status-open{background-color:rgba(26,115,232,.2);color:#1a73e8}.timesheet-entry.status-open{background-color:rgba(26,115,232,.05);border-left:3px solid #1a73e8}.timesheet-entry-status.status-unknown{background-color:rgba(156,39,176,.2);color:#9c27b0}.timesheet-entry.status-unknown{background-color:rgba(156,39,176,.05);border-left:3px solid #9c27b0}.timesheet-entry-actions{display:flex;flex-direction:column;flex-shrink:0;gap:4px}.timesheet-summary{align-items:center;background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;justify-content:space-between;padding:12px 20px}.timesheet-total{color:var(--color-text);font-size:var(--font-size-base);font-weight:600}.timesheet-total-hours{color:var(--color-primary)}.timesheet-totals-row{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;justify-content:center}.timesheet-total-item{font-size:var(--font-size-base);font-weight:500}.timesheet-total-item .hours{font-weight:700}.timesheet-total-item.total .hours{color:var(--color-primary-text)}.timesheet-total-item.billable .hours{color:var(--color-success)}.timesheet-total-item.unbillable .hours{color:var(--color-error)}.timesheet-total-item.utilization .hours{color:var(--color-primary-text)}.timesheet-actions{align-items:center;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:12px 20px}.timesheet-actions button{margin:0;padding:10px 20px;width:auto}.timesheet-submit-btn{align-items:center;align-self:center;background:var(--color-primary);display:flex;justify-content:center;transition:all var(--transition-fast)}.timesheet-submit-btn:hover:not(:disabled){background:var(--color-primary-hover)}.timesheet-submit-btn:disabled{background:var(--color-border)}.timesheet-retract-btn{background:var(--color-danger);color:#fff;transition:all var(--transition-fast)}.timesheet-retract-btn:hover:not(:disabled){background:var(--color-danger-hover)}.timesheet-retract-btn:disabled{background:var(--color-border)}.timesheet-status{background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-md-lg);padding:8px 20px;text-align:center}.timesheet-status.submitted{background:var(--color-success-bg);color:var(--color-success);font-weight:600}.time-entry-overlay{align-items:flex-start;background-color:var(--overlay-bg);bottom:0;display:none;justify-content:center;left:0;opacity:0;overflow-y:auto;padding:var(--space-lg-xl);pointer-events:none;position:fixed;right:0;top:0;transition:opacity var(--transition-normal);z-index:10002}.time-entry-overlay.show{display:flex;opacity:1;pointer-events:auto}.time-entry-dialog{background:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:0 auto;max-width:var(--size-max-width-container);opacity:0;transform:scale(.95) translateY(-10px);transition:transform var(--transition-normal),opacity var(--transition-normal);width:100%}.time-entry-overlay.show .time-entry-dialog{opacity:1;transform:scale(1) translateY(0)}.time-entry-header{align-items:center;background:var(--color-primary);border-bottom:1px solid var(--color-border);border-radius:8px 8px 0 0;color:#fff;display:flex;justify-content:space-between;padding:15px 20px}.time-entry-header h3{font-size:var(--font-size-xl);font-weight:600;margin:0}.time-entry-close{background:none;border:none;color:#fff;cursor:pointer;font-size:var(--font-size-3xl);line-height:1;margin:0;padding:0;width:auto}.time-entry-close:hover{opacity:.8}.time-entry-close:focus-visible{box-shadow:0 0 0 var(--fluent-stroke-width-thin,1px) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick,3px) var(--fluent-color-neutral-stroke-focus-2);opacity:1;outline:none}.time-entry-body{max-height:calc(100vh - 150px);overflow-y:auto;padding:var(--space-lg-xl)}.time-entry-body .form-group.has-error{animation:field-shake .4s ease-out}.time-entry-body .form-group.field-error label,.time-entry-body .form-group.has-error label{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error))}.time-entry-body .form-group.field-valid label,.time-entry-body .form-group.has-success label{color:var(--fluent-color-status-success-foreground-1)}.time-entry-body input.field-error,.time-entry-body input.invalid,.time-entry-body select.field-error,.time-entry-body select.invalid,.time-entry-body textarea.field-error,.time-entry-body textarea.invalid{background-color:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-color:var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}.time-entry-body input.field-error:focus,.time-entry-body input.invalid:focus,.time-entry-body select.field-error:focus,.time-entry-body select.invalid:focus,.time-entry-body textarea.field-error:focus,.time-entry-body textarea.invalid:focus{border-color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));box-shadow:0 0 0 1px var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));outline:none}.time-entry-body input.field-error:focus-visible,.time-entry-body input.invalid:focus-visible,.time-entry-body select.field-error:focus-visible,.time-entry-body select.invalid:focus-visible,.time-entry-body textarea.field-error:focus-visible,.time-entry-body textarea.invalid:focus-visible{outline:2px solid var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));outline-offset:2px}.time-entry-body input.field-valid,.time-entry-body input.valid,.time-entry-body select.field-valid,.time-entry-body select.valid,.time-entry-body textarea.field-valid,.time-entry-body textarea.valid{border-color:var(--fluent-color-status-success-stroke-1)}.time-entry-body input.field-valid:focus,.time-entry-body input.valid:focus,.time-entry-body select.field-valid:focus,.time-entry-body select.valid:focus,.time-entry-body textarea.field-valid:focus,.time-entry-body textarea.valid:focus{border-color:var(--fluent-color-status-success-foreground-1);box-shadow:0 0 0 1px var(--fluent-color-status-success-stroke-1)}.time-entry-body input.field-warning,.time-entry-body input.warning,.time-entry-body select.field-warning,.time-entry-body select.warning,.time-entry-body textarea.field-warning,.time-entry-body textarea.warning{background-color:var(--fluent-color-status-warning-background-1);border-color:var(--fluent-color-status-warning-stroke-1)}.time-entry-body .field-error-message,.time-entry-body .validation-message{animation:validation-message-appear .2s ease-out;color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));display:block;font-size:var(--fluent-font-size-base-200,12px);line-height:var(--fluent-line-height-base-200,16px);margin-top:var(--fluent-spacing-xs,4px);padding-left:var(--fluent-spacing-xxs,2px)}.time-entry-body .field-success-message,.time-entry-body .validation-message.success{color:var(--fluent-color-status-success-foreground-1)}.time-entry-body .field-warning-message,.time-entry-body .validation-message.warning{color:var(--fluent-color-status-warning-foreground-1)}.time-entry-body .field-error-box,.time-entry-body .validation-error-box{animation:validation-message-appear .2s ease-out;background:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-left:3px solid var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));border-radius:var(--fluent-border-radius-medium,4px);color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-on-error-container));font-size:var(--fluent-font-size-base-300,14px);margin-top:var(--fluent-spacing-s,8px);padding:var(--fluent-spacing-s,8px) var(--fluent-spacing-m,12px)}.time-entry-body .field-validation-icon{font-size:16px;pointer-events:none;position:absolute;right:var(--fluent-spacing-m,12px);top:50%;transform:translateY(-50%)}.time-entry-body .field-validation-icon.error{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error))}.time-entry-body .field-validation-icon.success{color:var(--fluent-color-status-success-foreground-1)}.time-entry-body .field-validation-icon.warning{color:var(--fluent-color-status-warning-foreground-1)}.time-entry-body .field-wrapper,.time-entry-body .input-wrapper{display:block;position:relative}.time-entry-body .field-wrapper.has-icon input,.time-entry-body .field-wrapper.has-icon select,.time-entry-body .input-wrapper.has-icon input,.time-entry-body .input-wrapper.has-icon select{padding-right:36px}.time-entry-body label.required:after{color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-error));content:" *";font-weight:var(--fluent-font-weight-semibold,600)}.time-entry-body input[aria-invalid=true],.time-entry-body select[aria-invalid=true],.time-entry-body textarea[aria-invalid=true]{background-color:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-color:var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}.time-entry-body input[aria-invalid=true]:focus,.time-entry-body select[aria-invalid=true]:focus,.time-entry-body textarea[aria-invalid=true]:focus{box-shadow:0 0 0 1px var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error))}.time-entry-body .field-helper-text{color:var(--fluent-color-neutral-foreground-3,var(--color-text-muted));display:block;font-size:var(--fluent-font-size-base-200,12px);line-height:var(--fluent-line-height-base-200,16px);margin-top:var(--fluent-spacing-xs,4px);padding-left:var(--fluent-spacing-xxs,2px)}.time-entry-body .form-group.has-error .field-helper-text{display:none}.time-entry-validation-summary{animation:validation-message-appear .2s ease-out;background:var(--fluent-color-status-danger-background-1,var(--md-sys-color-error-container));border-left:4px solid var(--fluent-color-status-danger-stroke-1,var(--md-sys-color-error));border-radius:var(--fluent-border-radius-medium,4px);color:var(--fluent-color-status-danger-foreground-1,var(--md-sys-color-on-error-container));margin-bottom:var(--space-lg);padding:var(--fluent-spacing-m,12px) var(--fluent-spacing-l,16px)}.time-entry-validation-summary ul{margin:var(--fluent-spacing-xs,4px) 0 0 0;padding-left:var(--fluent-spacing-l,16px)}.time-entry-validation-summary li{margin-bottom:var(--fluent-spacing-xxs,2px)}.time-entry-body .field-shake,.time-entry-body .shake{animation:field-shake .4s ease-out}@media (prefers-reduced-motion:reduce){.time-entry-overlay{transition:none}.time-entry-dialog{transform:none;transition:none}.time-entry-overlay.show .time-entry-dialog{transform:none}.time-entry-body .field-error-box,.time-entry-body .field-error-message,.time-entry-body .field-shake,.time-entry-body .form-group.has-error,.time-entry-body .shake,.time-entry-body .validation-error-box,.time-entry-body .validation-message,.time-entry-validation-summary{animation:none}}.copy-week-modal{max-width:480px;width:95%}.copy-week-review-modal{display:flex;flex-direction:column;max-height:85vh;max-width:560px}.copy-week-review-modal .modal-body{flex:1;min-height:0;overflow-y:auto}.copy-week-intro{color:var(--md-sys-color-on-surface-variant);font-size:14px;margin-bottom:16px}.copy-week-selector{background:var(--md-sys-color-surface-container-low);border-radius:8px;margin-bottom:8px;padding:12px}.copy-week-label{color:var(--md-sys-color-on-surface);display:block;font-weight:600;margin-bottom:8px}.copy-week-nav{align-items:center;display:flex;gap:8px}.copy-week-nav-btn{background:var(--color-primary);border:none;border-radius:var(--radius-xs);color:#fff;cursor:pointer;font-size:var(--font-size-base);margin:0;padding:8px 12px;transition:all var(--transition-fast);width:auto}.copy-week-nav-btn:hover:not(:disabled){background:var(--color-primary-hover)}.copy-week-nav-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-week-nav-btn:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.copy-week-display{flex:1;text-align:center}.copy-week-date{color:var(--md-sys-color-on-surface);display:block;font-weight:500}.copy-week-picker{position:relative}.copy-week-date-clickable{border-radius:var(--radius-sm);cursor:pointer;padding:4px 8px;transition:background var(--transition-fast),color var(--transition-fast)}.copy-week-date-clickable:hover{background:var(--color-overlay-light);color:var(--color-primary)}.copy-week-date-clickable:after{content:" 📅";font-size:12px;opacity:0;transition:opacity var(--transition-fast)}.copy-week-date-clickable:hover:after{opacity:1}.copy-week-date-clickable:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-week-date-picker-input{border:none;height:0;opacity:0;pointer-events:none;position:absolute;width:0}.week-preview{color:var(--md-sys-color-on-surface-variant);display:block;font-size:12px;margin-top:2px}.week-preview.empty,.week-preview.error{color:var(--md-sys-color-error)}.copy-week-quick{display:flex;gap:8px;justify-content:center;margin-top:8px}.copy-week-quick-btn{background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);padding:6px 14px;transition:all var(--transition-fast)}.copy-week-quick-btn:hover{background:var(--color-primary-hover)}.copy-week-quick-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-day-quick-btn:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-week-arrow{color:var(--md-sys-color-on-surface-variant);display:flex;justify-content:center;padding:8px 0}.copy-week-error{background:var(--md-sys-color-error-container);border-radius:4px;color:var(--md-sys-color-on-error-container);font-size:14px;margin-top:12px;padding:8px 12px}.copy-select-all{align-items:center;border-bottom:1px solid var(--md-sys-color-outline-variant);display:flex;gap:8px;margin-bottom:12px;padding:8px 0}.copy-select-all label{align-items:center;cursor:pointer;display:flex;gap:8px;white-space:nowrap}.copy-select-hint{color:var(--md-sys-color-on-surface-variant);font-size:12px;font-style:italic}.copy-entries-list{max-height:400px;overflow-y:auto;overscroll-behavior:contain}.copy-review-day-group{margin-bottom:16px}.copy-review-day-header{align-items:center;border-bottom:1px solid var(--md-sys-color-outline-variant);display:flex;justify-content:space-between;margin-bottom:8px;padding:8px 0}.copy-review-day-label{color:var(--md-sys-color-on-surface);font-weight:600}.copy-review-day-hours{color:var(--md-sys-color-on-surface-variant);font-size:12px}.copy-entry-row{align-items:flex-start;background:var(--fluent-color-neutral-background-1);border:var(--fluent-stroke-width-thin) solid var(--fluent-color-neutral-stroke-2);border-left:3px solid transparent;border-radius:var(--fluent-border-radius-medium);cursor:pointer;display:flex;gap:12px;margin-bottom:6px;padding:10px 12px;touch-action:manipulation;transition:background-color var(--fluent-duration-fast) var(--fluent-easing-ease),border-color var(--fluent-duration-fast) var(--fluent-easing-ease),box-shadow var(--fluent-duration-fast) var(--fluent-easing-ease),transform var(--fluent-duration-fast) var(--fluent-easing-ease);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.copy-entry-row:hover{background:var(--fluent-color-neutral-background-1-hover);border-color:var(--fluent-color-neutral-stroke-1-hover);box-shadow:var(--fluent-shadow-4);transform:translateY(-1px)}.copy-entry-row:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-entry-row:active{background:var(--fluent-color-neutral-background-1-pressed);box-shadow:var(--fluent-shadow-2);transform:translateY(0)}.copy-entry-row.valid{border-left-color:var(--md-sys-color-primary);display:flex}.copy-entry-row.warning{background:var(--md-sys-color-tertiary-container);border-left-color:var(--md-sys-color-tertiary);display:flex}.copy-entry-row.warning:hover{background:color-mix(in srgb,var(--md-sys-color-tertiary-container) 90%,#000)}.copy-entry-row.error{background:var(--md-sys-color-error-container);border-left-color:var(--md-sys-color-error);display:flex;opacity:.8}.copy-entry-row.error:hover{background:color-mix(in srgb,var(--md-sys-color-error-container) 90%,#000)}.copy-entry-checkbox-cell{padding-top:2px}.copy-entry-details{flex:1;min-width:0;-webkit-user-select:none;user-select:none}.copy-entry-project{color:var(--color-text);font-size:var(--font-size-md-lg);font-weight:600}.copy-entry-project,.copy-entry-task{overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.copy-entry-task{color:var(--color-text-muted);font-size:var(--font-size-md);margin-top:2px}.copy-entry-memo{display:-webkit-box;-webkit-line-clamp:2;margin-top:4px;-webkit-box-orient:vertical;overflow:hidden}.copy-entry-memo,.copy-entry-service{color:var(--color-text-muted);font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none}.copy-entry-service{margin-top:2px}.copy-entry-messages{color:var(--md-sys-color-error);font-size:var(--font-size-sm);font-weight:500;margin-top:4px;-webkit-user-select:none;user-select:none}.copy-entry-hours{align-items:center;display:flex;gap:8px;white-space:nowrap}.copy-entry-hours-stack{align-items:center;display:flex;flex-direction:column;gap:2px}.copy-entry-hours-display{color:var(--md-sys-color-on-surface);font-size:var(--font-size-base);font-weight:600}.copy-entry-billable{color:var(--color-text-muted);font-size:var(--font-size-sm)}.copy-entry-billable.billable{color:var(--color-success)}.copy-entry-billable.unbillable{color:var(--color-error)}.copy-entry-billable.split{color:var(--color-warning);font-weight:500}.copy-entry-delete,.copy-entry-edit{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);margin:0;min-height:auto;padding:4px 8px;width:auto}.copy-entry-edit:hover{background:var(--color-info-bg)}.copy-entry-edit:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-entry-delete{color:var(--md-sys-color-error);font-weight:600}.copy-entry-delete:hover{background:var(--md-sys-color-error-container)}.copy-entry-delete:focus-visible{box-shadow:inset 0 0 0 1px var(--fluent-color-neutral-stroke-focus-2),0 0 0 2px var(--fluent-color-neutral-stroke-focus-1);outline:none}.copy-summary{border-top:1px solid var(--md-sys-color-outline-variant);display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;padding:12px 0}.copy-summary-item{color:var(--md-sys-color-on-surface-variant);font-size:14px}.copy-summary-error{color:var(--md-sys-color-error)}.copy-summary-warning{color:var(--md-sys-color-tertiary)}.copy-progress-section{border-top:1px solid var(--md-sys-color-outline-variant);margin-top:12px;padding:16px 0}.copy-progress-bar{background:var(--md-sys-color-surface-container);border-radius:4px;height:8px;overflow:hidden}.copy-progress-fill{background:var(--md-sys-color-primary);height:100%;transition:width .3s ease}.copy-progress-info{color:var(--md-sys-color-on-surface-variant);display:flex;font-size:14px;justify-content:space-between;margin-top:8px}.copy-progress-created{color:var(--md-sys-color-tertiary);display:block;font-size:14px;margin-top:4px}.copy-results-section{align-items:flex-start;border-radius:8px;display:flex;gap:12px;margin-bottom:12px;padding:12px}.copy-results-success{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.copy-results-failure{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);flex-direction:column}.copy-results-failure svg{flex-shrink:0}.copy-failure-list{font-size:14px;margin:8px 0 0;padding-left:20px}.copy-failure-list li{margin-bottom:4px}.copy-failure-item{margin-bottom:8px}.copy-failure-project{font-weight:500}.copy-failure-error{color:var(--md-sys-color-on-error-container);font-size:12px;margin-left:8px}.copy-week-loading{align-items:center;background-color:hsla(0,0%,100%,.9);bottom:0;display:flex;flex-direction:column;gap:16px;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10004}.dark-mode .copy-week-loading,:root[data-theme=dark] .copy-week-loading{background-color:rgba(32,33,36,.9)}.copy-week-loading p{color:var(--md-sys-color-on-surface);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin:0}.copy-week-loading-progress{max-width:320px;padding:0 20px;width:100%}.copy-week-loading-progress .copy-progress-bar{height:12px;margin-bottom:12px}.copy-week-loading-progress .copy-progress-info{align-items:center;flex-direction:column;gap:4px;text-align:center}.copy-week-loading-progress .copy-progress-info span{display:block}@media (prefers-reduced-motion:reduce){.copy-progress-fill,.copy-week-date-clickable,.copy-week-date-clickable:after,.copy-week-nav-btn,.copy-week-quick-btn{transition:none}}.tap-tooltip{background-color:var(--md-sys-color-inverse-surface);border-radius:var(--fluent-border-radius-medium);box-shadow:var(--fluent-shadow-8);color:var(--md-sys-color-inverse-on-surface);font-size:var(--fluent-font-size-caption);line-height:1.4;max-width:280px;opacity:0;padding:var(--fluent-spacing-s) var(--fluent-spacing-m);pointer-events:none;position:fixed;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;z-index:10005;word-wrap:break-word}.tap-tooltip.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.tap-tooltip:before{border:6px solid transparent;content:"";height:0;position:absolute;width:0}.tap-tooltip.arrow-up:before{border-bottom-color:var(--md-sys-color-inverse-surface);bottom:100%;left:50%;transform:translateX(-50%)}.tap-tooltip.arrow-down:before{border-top-color:var(--md-sys-color-inverse-surface);left:50%;top:100%;transform:translateX(-50%)}.tap-tooltip.arrow-left:before{border-right-color:var(--md-sys-color-inverse-surface);right:100%;top:50%;transform:translateY(-50%)}.tap-tooltip.arrow-right:before{border-left-color:var(--md-sys-color-inverse-surface);left:100%;top:50%;transform:translateY(-50%)}[data-tooltip]{cursor:help;text-decoration-color:var(--md-sys-color-outline);text-decoration-line:underline;text-decoration-style:dotted;text-underline-offset:2px}.btn[data-tooltip],.copy-entry-row[data-tooltip],.quick-access-item-content[data-tooltip],.timesheet-entry[data-tooltip],[role=button][data-tooltip],button[data-tooltip]{cursor:pointer;text-decoration:none}.tap-tooltip-overlay{background:transparent;inset:0;position:fixed;z-index:10004}.copy-entry-row[data-tooltip],.quick-access-item-content[data-tooltip],.timesheet-entry[data-tooltip]{position:relative}@media (prefers-reduced-motion:reduce){.tap-tooltip{transition:none}}[data-theme=dark] .tap-tooltip{background-color:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface)}[data-theme=dark] .tap-tooltip.arrow-up:before{border-bottom-color:var(--md-sys-color-surface-container-high)}[data-theme=dark] .tap-tooltip.arrow-down:before{border-top-color:var(--md-sys-color-surface-container-high)}[data-theme=dark] .tap-tooltip.arrow-left:before{border-right-color:var(--md-sys-color-surface-container-high)}[data-theme=dark] .tap-tooltip.arrow-right:before{border-left-color:var(--md-sys-color-surface-container-high)}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,50%,.3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,50%,.5)}*{scrollbar-color:hsla(0,0%,50%,.3) transparent;scrollbar-width:thin}.hours-red.hours-red{color:var(--color-danger)}.hours-green.hours-green{color:var(--color-success)}.error{background-color:var(--color-danger-bg);border-left:4px solid var(--color-danger);color:var(--color-danger)}.error,.success{border-radius:var(--radius-xs);display:none;margin:15px 0;padding:12px}.success{background-color:var(--color-success-bg);border-left:4px solid var(--color-success);color:var(--color-success)}.warning{background-color:var(--color-warning-bg);border-left:4px solid var(--color-warning);border-radius:var(--radius-xs);color:var(--color-warning);display:none;margin:15px 0;padding:12px}.loading{color:var(--color-text-muted);padding:var(--space-lg-xl);text-align:center}.quick-access-item:focus,button:focus,input:focus,select:focus,textarea:focus{box-shadow:0 0 0 var(--fluent-stroke-width-thin) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick) var(--fluent-color-neutral-stroke-focus-2);outline:none}@supports selector(:focus-visible){.quick-access-item:focus,button:focus,input:focus,select:focus,textarea:focus{box-shadow:none}.quick-access-item:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 var(--fluent-stroke-width-thin) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick) var(--fluent-color-neutral-stroke-focus-2);outline:none}}.fluent-focus-ring:focus-visible{box-shadow:0 0 0 var(--fluent-stroke-width-thin) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick) var(--fluent-color-neutral-stroke-focus-2);outline:none}.fluent-focus-ring-inset:focus-visible{box-shadow:inset 0 0 0 var(--fluent-stroke-width-thin) var(--fluent-color-neutral-stroke-focus-2),inset 0 0 0 var(--fluent-stroke-width-thick) var(--fluent-color-neutral-stroke-focus-1);outline:none}.fluent-focus-ring-brand:focus-visible{box-shadow:0 0 0 var(--fluent-stroke-width-thin) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick) var(--fluent-color-brand-stroke-1);outline:none}.fluent-focus-ring-rounded:focus-visible{border-radius:var(--fluent-border-radius-circular);box-shadow:0 0 0 var(--fluent-stroke-width-thin) var(--fluent-color-neutral-stroke-focus-1),0 0 0 var(--fluent-stroke-width-thick) var(--fluent-color-neutral-stroke-focus-2);outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.modal-overlay,.time-entry-overlay{transition:opacity .01ms}.modal-dialog,.time-entry-dialog{transform:none!important}}.visually-hidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.skip-link{background:var(--color-primary);color:#fff;font-weight:600;left:0;padding:var(--space-sm) var(--space-md);position:absolute;text-decoration:none;top:-40px;transition:top var(--transition-fast);z-index:10000}.skip-link:focus{top:0}@media (forced-colors:active){.timesheet-entry{border:1px solid CanvasText}button{border:1px solid ButtonText}.modal-dialog,.time-entry-dialog{border:2px solid CanvasText}.quick-access-item,.toast{border:1px solid CanvasText}}