/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:"Inter Variable", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-md:calc(var(--radius) * .8);--default-font-family:"Inter Variable", sans-serif;--default-mono-font-family:var(--font-mono);--color-border:var(--border);--color-primary:var(--primary)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:Inter Variable,sans-serif}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.max-w-max{max-width:max-content}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.list-none{list-style-type:none}.items-center{align-items:center}.\!filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.outline-none{--tw-outline-style:none;outline-style:none}.running{animation-play-state:running}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background:var(--color-bg);--color-bg:#f6f7f4;--color-surface:#fff;--color-surface-muted:#f7f9f7;--color-surface-soft:#eef4f0;--color-text:#17201b;--color-text-muted:#667266;--color-border:#dfe4dd;--color-border-strong:#cbd8cf;--color-primary:#087f5b;--color-primary-strong:#007c5a;--color-primary-soft:#e7f5ee;--color-primary-text:#fff;--color-danger:#a01818;--color-danger-bg:#fff4f4;--color-danger-border:#f0aaaa;--color-success:#155d3d;--color-success-bg:#eefaf4;--color-success-border:#9ed7bd;--color-table-head:#eef2ee;--color-row-alt:#f8faf8;--color-row-danger:#fff0f0;--color-row-field:#eef8ff;--color-focus:#0079582e;--color-scrim:#08181275;--color-shadow:#102a2114;--background:oklch(100% 0 0);--foreground:oklch(14.5% .008 326);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% .008 326);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% .008 326);--primary:oklch(50.8% .118 165.612);--primary-foreground:oklch(97.9% .021 166.113);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96% .003 325.6);--muted-foreground:oklch(54.2% .034 322.5);--accent:oklch(96% .003 325.6);--accent-foreground:oklch(21.2% .019 322.12);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% .005 325.62);--input:oklch(92.2% .005 325.62);--ring:oklch(71.1% .019 323.02);--chart-1:oklch(84.5% .143 164.978);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(59.6% .145 163.225);--chart-4:oklch(50.8% .118 165.612);--chart-5:oklch(43.2% .095 166.913);--radius:.625rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% .008 326);--sidebar-primary:oklch(59.6% .145 163.225);--sidebar-primary-foreground:oklch(97.9% .021 166.113);--sidebar-accent:oklch(96% .003 325.6);--sidebar-accent-foreground:oklch(21.2% .019 322.12);--sidebar-border:oklch(92.2% .005 325.62);--sidebar-ring:oklch(71.1% .019 323.02);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--color-bg:#111714;--color-surface:#19211d;--color-surface-muted:#202a25;--color-surface-soft:#24302a;--color-text:#ecf3ef;--color-text-muted:#a9b7af;--color-border:#33423a;--color-border-strong:#45574d;--color-primary:#54c79d;--color-primary-strong:#169b6f;--color-primary-soft:#203f33;--color-primary-text:#f5fffa;--color-danger:#ffaaa5;--color-danger-bg:#3a2222;--color-danger-border:#7b4545;--color-success:#91dfb8;--color-success-bg:#1d382b;--color-success-border:#356b50;--color-table-head:#26322c;--color-row-alt:#1d2722;--color-row-danger:#3a2222;--color-row-field:#1c3038;--color-focus:#54c79d47;--color-scrim:#000000a8;--color-shadow:#0000004d}body{background:var(--color-bg);color:var(--color-text);margin:0}button,input,textarea,select{letter-spacing:0}.dark{--background:oklch(14.5% .008 326);--foreground:oklch(98.5% 0 0);--card:oklch(21.2% .019 322.12);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21.2% .019 322.12);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(43.2% .095 166.913);--primary-foreground:oklch(97.9% .021 166.113);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.3% .024 320.12);--muted-foreground:oklch(71.1% .019 323.02);--accent:oklch(26.3% .024 320.12);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(54.2% .034 322.5);--chart-1:oklch(84.5% .143 164.978);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(59.6% .145 163.225);--chart-4:oklch(50.8% .118 165.612);--chart-5:oklch(43.2% .095 166.913);--sidebar:oklch(21.2% .019 322.12);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(69.6% .17 162.48);--sidebar-primary-foreground:oklch(26.2% .051 172.552);--sidebar-accent:oklch(26.3% .024 320.12);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(54.2% .034 322.5)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.app-shell{min-height:100vh;margin-left:var(--app-sidebar-width,0px);background:var(--color-bg);color:var(--color-text);padding:32px;transition:margin-left .18s}.attendance-reminder-actions{margin-top:12px}.attendance-reminder-preview{border-color:var(--color-primary)}.attendance-reminder-list{gap:8px;margin:14px 0;display:grid}.attendance-reminder-list article{border:1px solid var(--color-border);background:var(--color-surface-muted);grid-template-columns:minmax(180px,1fr) auto minmax(240px,2fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.attendance-reminder-list article div{gap:3px;display:grid}.attendance-reminder-list article div span{color:var(--color-text-muted)}.attendance-reminder-list article p{margin:0}@media (width<=920px){.attendance-reminder-list article{grid-template-columns:1fr;align-items:start}}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;max-width:1280px;margin:0 auto 20px;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.account-badge{background:#fff;border:1px solid #dfe4dd;gap:2px;min-height:36px;padding:4px 10px;font-size:12px;display:grid}.account-badge span{color:#667266}.account-badge strong{color:#17201b;font-size:13px}.auth-shell{background:var(--color-bg);min-height:100vh;color:var(--color-text);place-items:center;padding:24px;display:grid}.auth-card{border:1px solid var(--color-border);background:var(--color-surface);gap:16px;width:min(420px,100%);padding:24px;display:grid;box-shadow:0 1px 1px #141e140a}.auth-card h1{margin:0 0 6px;font-size:24px;line-height:1.2}.auth-card p{color:#667266;margin:0}.auth-brand{align-items:center;gap:16px;display:flex}.auth-logo{object-fit:contain;flex:0 0 72px;width:72px;height:72px;display:block}.lark-login-note{background:#f2f7f4;border:1px solid #c8d8cf;gap:4px;padding:14px;display:grid}.lark-login-note span{color:#667266;font-size:13px}.role-gate{border:0;margin:0;padding:0;display:contents}.app-nav{z-index:40;box-sizing:border-box;border-right:1px solid var(--color-border);background:var(--color-surface);width:248px;color:var(--color-text);box-shadow:8px 0 24px var(--color-shadow);flex-direction:column;transition:width .18s,transform .18s;display:flex;position:fixed;top:0;bottom:0;left:0}.app-nav.collapsed{width:72px}.app-nav-head{border-bottom:1px solid #e4e9e5;align-items:center;min-height:76px;padding:12px;display:flex;position:relative}.app-nav-brand{align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.app-nav-logo{object-fit:contain;flex:0 0 42px;width:42px;height:42px;display:block}:root[data-theme=dark] .app-nav-logo,:root[data-theme=dark] .auth-logo{background:#f7f9f7;border-radius:8px;box-shadow:0 0 0 1px #ffffff1f}.app-nav-brand-copy,.app-nav-account-copy{white-space:nowrap;gap:2px;min-width:0;display:grid}.app-nav-brand-copy strong{font-size:14px}.app-nav-brand-copy small,.app-nav-account-copy small{color:#6d7b72;font-size:11px}.app-nav-collapse{color:#42554a;cursor:pointer;background:#f7f9f7;border:1px solid #d5ddd7;flex:0 0 26px;place-items:center;width:26px;height:26px;margin-left:auto;display:grid}.app-nav.collapsed .app-nav-head{justify-content:center;padding:12px 8px}.app-nav.collapsed .app-nav-brand-copy,.app-nav.collapsed .app-nav-account-copy,.app-nav.collapsed .app-nav-label,.app-nav.collapsed .app-nav-logout{display:none}.app-nav.collapsed .app-nav-brand{display:flex}.app-nav.collapsed .app-nav-collapse{margin:0;position:absolute;right:-13px}.app-nav-links{flex-direction:column;flex:1;align-content:start;gap:18px;padding:18px 10px;display:flex;overflow-y:auto}.app-nav-menu-group{gap:7px;display:grid}.app-nav-group-label{color:#849188;letter-spacing:.12em;padding:0 10px;font-size:10px;font-weight:700}.app-nav-menu-root{width:100%;max-width:none;display:block}.app-nav-menu-list{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.app-nav-menu-list>li{width:100%}.app-nav-links a{color:#42554a;border:1px solid #0000;align-items:center;gap:12px;min-height:44px;padding:5px 10px;text-decoration:none;transition:background .14s,color .14s;display:flex}.app-nav-links a:hover{color:#126143;background:#f0f6f2}.app-nav-links a.active{color:#087f5b;background:#e7f5ee;border-color:#b8d9ca}.app-nav-icon{color:#087f5b;border:1px solid #c9d8d0;flex:0 0 28px;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.app-nav-icon svg,.app-nav-collapse svg,.app-nav-logout svg{width:16px;height:16px}.app-nav.collapsed .app-nav-links{gap:8px;padding-inline:8px}.app-nav.collapsed .app-nav-group-label{display:none}.app-nav.collapsed .app-nav-links a{justify-content:center;padding-inline:5px}.app-nav-account{border-top:1px solid #e4e9e5;align-items:center;gap:10px;min-height:72px;padding:12px;display:flex}.app-nav-avatar{color:#153c2e;background:#dcebe4;border-radius:50%;flex:0 0 36px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.app-nav-account-copy{flex:1;overflow:hidden}.app-nav-account-copy strong{text-overflow:ellipsis;font-size:12px;overflow:hidden}.app-nav-logout{color:#6d7b72;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;font-size:12px;display:flex}.app-nav-logout:hover{color:#087f5b}.app-nav-mobile-toggle,.app-nav-scrim{display:none}.form-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.chip-grid{flex-wrap:wrap;gap:12px;margin:16px 0;display:flex}.policy-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:16px;display:grid}.policy-card{background:#f8faf7;border:1px solid #d4ddd5;gap:10px;padding:14px;display:grid}.policy-details{background:#f8faf7;border:1px solid #d4ddd5;margin-bottom:16px}.policy-details summary{cursor:pointer;padding:12px 14px;font-weight:600}.policy-details .policy-list{margin:0;padding:0 14px 14px}.result-strip{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.result-strip span{background:#f4f8f5;border:1px solid #cbd8cf;padding:7px 10px}.payroll-upload-card{max-width:920px}.payroll-preview-card{min-width:0}.payroll-preview-table{max-height:calc(100vh - 300px);overflow:auto}.payroll-preview-table th{z-index:2;position:sticky;top:0}.payroll-preview-table td{white-space:nowrap}.payroll-preview-unmatched{color:#8f1d1d;background:#fff0f0!important}.payroll-match-badge{color:#087f5b;background:#e7f5ee;border:1px solid #9ccab6;padding:4px 8px;font-weight:700;display:inline-block}.payroll-match-badge.unmatched,.payroll-unmatched-count{color:#a51d1d!important;background:#ffe4e4!important;border-color:#e3a7a7!important}.cache-view-controls{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:16px 0;display:grid}.cache-view-controls label{gap:7px;display:grid}.cache-view-tabs{flex-wrap:wrap;gap:8px;display:flex}.cache-sheet-card{min-width:0}.cache-sheet-table{background:#fff;border:1px solid #dce4de;max-height:calc(100vh - 330px);overflow:auto}.cache-sheet-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.cache-sheet-table th,.cache-sheet-table td{white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #e1e7e2;border-right:1px solid #e1e7e2;max-width:320px;padding:8px 10px;overflow:hidden}.cache-sheet-table td:has(.attendance-time-cell){white-space:normal}.attendance-time-cell{white-space:pre-line;line-height:1.45;display:block}.attendance-status{border:1px solid var(--color-border-strong);background:var(--color-surface-muted);min-height:24px;color:var(--color-text-muted);white-space:nowrap;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.attendance-status.success{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success)}.attendance-status.danger{border-color:var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger)}.attendance-status.warning{color:#7a4a00;background:#fff7df;border-color:#d9a441}.attendance-status.field{background:var(--color-row-field);color:var(--color-text);border-color:#82b9d0}.attendance-punch-pair{gap:5px;display:grid}.attendance-punch-pair>span{align-items:center;gap:6px;display:flex}.attendance-punch-warning{color:#7a4a00;background:#fff7df;border:1px solid #d9a441;padding:1px 5px;font-weight:700}:root[data-theme=dark] .attendance-status.warning,:root[data-theme=dark] .attendance-punch-warning{color:#ffd98a;background:#3a301d;border-color:#8d6a2d}.cache-sheet-table th{z-index:2;color:#173a2d;text-align:left;background:#edf4ef;position:sticky;top:0}.cache-pagination{justify-content:flex-end;align-items:center;gap:12px;margin-top:14px;display:flex}.attendance-detail-filters{grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;display:grid}.attendance-detail-card{min-width:0}.attendance-detail-table{border:1px solid var(--color-border);max-height:calc(100vh - 300px);overflow:auto}.attendance-detail-table table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.attendance-detail-table th,.attendance-detail-table td{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);vertical-align:middle;padding:8px 10px}.attendance-detail-table th{z-index:2;background:var(--color-table-head);text-align:left;white-space:nowrap;position:sticky;top:0}.attendance-detail-table td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;height:auto;line-height:1.45}.attendance-detail-table td small{color:var(--color-text-muted);margin-top:3px;display:block}.attendance-detail-table .approval-reason-cell{white-space:normal;word-break:break-word;overflow-wrap:anywhere;width:280px;min-width:200px;max-width:380px;line-height:1.5}.attendance-detail-table .approval-time-cell,.attendance-detail-table .approval-action-cell,.attendance-detail-table .attendance-status,.attendance-detail-table .attendance-participation-toggle{white-space:nowrap}.attendance-detail-table .approval-id-cell{word-break:break-all;max-width:180px;font-family:var(--font-mono,monospace)}.attendance-detail-abnormal{background:var(--color-row-danger)}.attendance-detail-field{background:var(--color-row-field)}.attendance-image-thumb{border:1px solid var(--color-border-strong);background:var(--color-surface-muted);cursor:pointer;width:88px;height:58px;padding:0;display:block;position:relative;overflow:hidden}.attendance-image-thumb img{object-fit:cover;width:100%;height:100%}.attendance-image-thumb span{color:#fff;background:#000000ad;padding:1px 4px;font-size:10px;position:absolute;bottom:3px;right:3px}.attendance-image-missing{color:var(--color-danger);white-space:normal}.attendance-image-dialog{z-index:100;background:#05120db8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.attendance-image-dialog-panel{background:var(--color-surface);width:min(960px,96vw);max-height:94vh;padding:18px;overflow:auto;box-shadow:0 20px 60px #00000052}.attendance-image-dialog-panel>img{object-fit:contain;max-width:100%;max-height:72vh;margin:0 auto;display:block}@media (width<=920px){.attendance-detail-filters{grid-template-columns:1fr 1fr}}@media (width<=560px){.attendance-detail-filters{grid-template-columns:1fr}.attendance-image-dialog{padding:8px}}.user-directory-filters{grid-template-columns:minmax(260px,2fr) minmax(180px,1fr);gap:14px;margin-top:16px;display:grid}.user-directory-filters label{gap:7px;display:grid}.user-directory-table td:first-child{min-width:150px}.user-directory-tag{color:#087f5b;background:#e7f5ee;width:fit-content;margin-top:5px;padding:2px 6px;display:block}@media (width<=760px){.user-directory-filters{grid-template-columns:1fr}.app-shell{margin-left:0;padding-top:72px}.app-nav{z-index:60;width:min(280px,84vw);transform:translate(-105%)}.app-nav.mobile-open,.app-nav.collapsed.mobile-open{width:min(280px,84vw);transform:translate(0)}.app-nav.collapsed{width:min(280px,84vw);transform:translate(-105%)}.app-nav.collapsed .app-nav-brand{display:flex}.app-nav.collapsed .app-nav-brand-copy,.app-nav.collapsed .app-nav-account-copy,.app-nav.collapsed .app-nav-label,.app-nav.collapsed .app-nav-logout{display:grid}.app-nav.collapsed .app-nav-logout{display:block}.app-nav.collapsed .app-nav-head{justify-content:initial;padding:12px}.app-nav.collapsed .app-nav-collapse{margin-left:auto;position:static}.app-nav.collapsed .app-nav-links{padding:18px 10px}.app-nav.collapsed .app-nav-group-label{display:block}.app-nav.collapsed .app-nav-links a{justify-content:flex-start;padding-inline:10px}.app-nav-mobile-toggle{z-index:70;cursor:pointer;background:#fff;border:1px solid #c5d4cc;place-content:center;gap:4px;width:42px;height:42px;display:grid;position:fixed;top:14px;left:14px;box-shadow:0 4px 16px #102a211f}.app-nav-mobile-toggle span{background:#173a2d;width:18px;height:2px;display:block}.app-nav-scrim{z-index:50;background:#08181275;border:0;display:block;position:fixed;inset:0}}.page-header h1{letter-spacing:0;margin:0 0 6px;font-size:28px;line-height:1.2}.page-header p,.card-title span,label span,.status-grid dt{color:#667266}.grid{grid-template-columns:minmax(0,1.8fr) minmax(320px,.8fr);gap:16px;max-width:1280px;margin:0 auto 16px;display:grid}.card{border:1px solid var(--color-border);background:var(--color-surface);max-width:1280px;margin:0 auto 16px;padding:18px;box-shadow:0 1px 1px #141e140a}.card-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-title h2{letter-spacing:0;margin:0;font-size:17px}label{gap:6px;font-size:13px;display:grid}input,textarea,select{box-sizing:border-box;border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;border-radius:3px;padding:9px 10px;font-size:14px}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid var(--color-focus);border-color:var(--color-primary)}.form-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.form-row.two-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.form-row .wide{grid-column:span 2}.toggle-line{margin-top:14px}.checkbox-label{white-space:nowrap;cursor:pointer;grid-template-columns:none;align-items:center;gap:8px;display:inline-flex}.checkbox-group{flex-direction:column;justify-content:flex-end;gap:6px;display:flex}.checkbox-label input{cursor:pointer;width:16px;height:16px}.align-end{align-self:end;min-height:38px}.settings-strip{grid-template-columns:minmax(190px,.8fr) repeat(3,minmax(120px,.45fr)) auto;align-items:end;gap:12px;margin-bottom:14px;display:grid}.editor-panel,.empty-panel,.sheet-picker{background:#f9faf7;border:1px solid #e1e5df;margin-top:14px;padding:14px}.sheet-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px;display:grid}.sheet-option{background:#fff;border:1px solid #dfe4dd;min-height:34px;padding:6px 8px}.task-card-list{gap:14px;display:grid}.task-card{background:#fbfcfa;border:1px solid #dfe4dd;gap:14px;padding:14px;display:grid}.task-card-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.task-enable,.action-enable{min-height:36px}.task-card-title{min-width:0}.task-card-title strong{overflow-wrap:anywhere;margin-bottom:4px;font-size:15px;display:block}.task-card-actions,.action-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.task-meta-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:12px;display:grid}.task-meta{background:#fff;border:1px solid #e6eae4;min-width:0;padding:10px}.task-meta span,.muted-text{color:#667266}.task-meta strong{margin:5px 0;display:block}.sheet-chip-list,.action-tags{flex-wrap:wrap;gap:6px;display:flex}.sheet-chip{color:#233126;background:#f7f8f5;border:1px solid #cfd8cf;align-items:center;min-height:26px;padding:3px 9px;font-size:12px;display:inline-flex}.action-list{gap:10px;display:grid}.section-line{color:#667266;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.section-line strong{color:#17201b}.action-card{background:#fff;border:1px solid #e6eae4;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px;display:grid}.action-main{min-width:0}.action-main strong{margin-bottom:8px;display:block}.action-tags .pill{overflow-wrap:anywhere;max-width:100%}.inline-editor{background:#f6f8f4;border:1px solid #dbe3da;padding:14px}.inline-editor .card-title{margin-bottom:8px}.inline-editor h3{margin:0;font-size:16px}.validation-message{color:var(--color-danger);font-size:12px}.access-test-card{margin:0}.access-test-card p{color:#667266;font-size:13px}.result-panel{background:#fff;border:1px solid #e1e5df;gap:12px;margin-top:14px;padding:12px;display:grid}.result-panel h3{margin:0;font-size:15px}.error-list{color:#a01818;overflow-wrap:anywhere;background:#fff4f4;border:1px solid #f0aaaa;gap:6px;padding:10px;font-size:13px;display:grid}.actions,.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions{margin-top:16px}.button{border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:36px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:7px 12px;font-size:14px;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){border-color:#00865f}.button:disabled{cursor:not-allowed;opacity:.55}.button.primary{border-color:var(--color-primary-strong);background:var(--color-primary-strong);color:var(--color-primary-text)}.button.secondary{background:#f7f8f5}.button.danger{color:#fff;background:#c54d4d;border-color:#c54d4d}.status{border:1px solid;max-width:1280px;margin:0 auto 16px;padding:12px 14px;font-size:14px}.status-success{border-color:var(--color-success-border);background:var(--color-success-bg);color:var(--color-success)}.status-error{border-color:var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger)}.status-grid{grid-template-columns:96px minmax(0,1fr);gap:8px 12px;margin:0;font-size:13px;display:grid}.status-grid dd{overflow-wrap:anywhere;margin:0}.danger{color:#b3261e}.pill{color:#667266;background:#f7f8f5;border:1px solid #cfd8cf;align-items:center;min-height:24px;padding:2px 8px;font-size:12px;display:inline-flex}.pill.active{color:#0f6b46;background:#e7f7ef;border-color:#97d3b8}.table-shell{border:1px solid #e1e5df;overflow-x:auto}.compact-table table{min-width:900px}table{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e7ebe5;padding:10px}th{background:var(--color-table-head);color:var(--color-text);font-weight:600}.mono{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}@media (width<=920px){.app-shell{padding:18px}.page-header,.grid,.settings-strip,.form-row,.task-card-header,.task-meta-grid,.action-card{grid-template-columns:1fr}.page-header{display:grid}.task-card-actions,.action-card-actions{justify-content:flex-start}.task-card-actions .button,.action-card-actions .button{flex:140px}.form-row .wide{grid-column:auto}}.settings-page-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:16px;max-width:1280px;margin:0 auto;display:grid}.settings-page-grid .card{width:auto;margin:0 0 16px}.settings-profile-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.settings-profile-head img,.settings-avatar-fallback{border-radius:50%;flex:0 0 64px;width:64px;height:64px}.settings-profile-head img{object-fit:cover}.settings-avatar-fallback{background:var(--color-primary-soft);color:var(--color-primary);place-items:center;font-size:22px;font-weight:800;display:grid}.settings-profile-head div{gap:5px;display:grid}.settings-profile-head strong{font-size:18px}.settings-profile-head span{color:var(--color-text-muted)}.settings-profile-details{grid-template-columns:120px minmax(0,1fr)}.theme-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.theme-option{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:left;gap:9px;padding:10px;display:grid}.theme-option.active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus)}.theme-preview{border:1px solid var(--color-border-strong);height:72px;display:block}.theme-preview.light{background:linear-gradient(135deg,#fff 0 55%,#e7f5ee 55%)}.theme-preview.dark{background:linear-gradient(135deg,#19211d 0 55%,#203f33 55%)}.settings-cache-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.settings-cache-item{border:1px solid var(--color-border);background:var(--color-surface-muted);align-content:start;gap:14px;padding:14px;display:grid}.settings-cache-item h3{margin:0 0 5px;font-size:15px}.settings-cache-item p{color:var(--color-text-muted);margin:0;font-size:13px}.settings-cache-item .button{justify-self:start}.settings-cache-status{gap:4px;display:grid}.settings-cache-status span{color:var(--color-text)}.settings-cache-status small{color:var(--color-text-muted)}.attendance-mapping-disabled{color:var(--color-text-muted);background:var(--color-surface-muted)}.attendance-mapping-disabled input,.attendance-mapping-disabled select,.attendance-mapping-disabled .button{opacity:.76}.attendance-master-reminder-bar{background:var(--color-surface-muted,#f8f9fa);border:1px solid var(--color-border);border-radius:var(--radius-md,6px);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.attendance-reminder-status{overflow-wrap:anywhere;flex-basis:100%;min-width:0}.attendance-reminder-status details{margin-top:6px}.attendance-reminder-status ul{max-height:12rem;margin:6px 0 0;overflow:auto}.attendance-participation-toggle{white-space:nowrap;align-items:center;gap:8px;font-weight:700;display:inline-flex}.attendance-employee-table{width:max-content;min-width:100%}.attendance-employee-table th{white-space:nowrap}.attendance-employee-table th:first-child,.attendance-employee-table td:first-child{min-width:84px}.attendance-employee-table th:nth-child(2),.attendance-employee-table td:nth-child(2){white-space:nowrap;min-width:96px}.attendance-employee-table th:nth-child(3),.attendance-employee-table td:nth-child(3){min-width:140px}.attendance-employee-table th:nth-child(4),.attendance-employee-table td:nth-child(4){min-width:120px}.attendance-employee-table th:nth-child(5),.attendance-employee-table td:nth-child(5){min-width:140px}.attendance-employee-table th:nth-child(6),.attendance-employee-table td:nth-child(6),.attendance-employee-table th:nth-child(7),.attendance-employee-table td:nth-child(7){white-space:nowrap;min-width:88px}.attendance-employee-table td:nth-child(3) input,.attendance-employee-table td:nth-child(4) select,.attendance-employee-table td:nth-child(5) select{min-width:100%}.attendance-employee-table td:nth-child(6) .button{white-space:nowrap}.employee-reminder-controls{gap:7px;min-width:max-content;display:grid}.employee-reminder-toolbar{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:10px;min-width:max-content;display:flex}.employee-reminder-line{flex:none;align-items:center;gap:6px;display:inline-flex}.employee-reminder-line+.employee-reminder-line{border-left:1px solid var(--color-border);padding-left:10px}.employee-reminder-line label{white-space:nowrap;align-items:center;gap:5px;font-weight:700;display:inline-flex}.employee-reminder-line input[type=number]{width:64px;min-width:0}.employee-reminder-line span,.employee-reminder-controls small{color:var(--color-text-muted);white-space:nowrap;font-size:12px}.employee-reminder-controls .button{justify-self:start;padding:5px 10px}.employee-reminder-toolbar .employee-reminder-actions{z-index:2;border-right:1px solid var(--color-border);background:var(--color-surface);flex-wrap:nowrap;flex:none;padding-right:10px;position:sticky;left:0;box-shadow:6px 0 8px -8px #172d2373}.attendance-mapping-disabled .employee-reminder-actions{background:var(--color-surface-muted)}.employee-reminder-controls .field-error{color:var(--color-danger)}.approval-matching-toolbar{align-items:end;gap:16px;margin-bottom:14px;display:flex}.approval-matching-toolbar label{gap:6px;min-width:180px;display:grid}.approval-matching-toolbar>span{color:var(--color-text-muted)}.approval-matching-toolbar+.status{margin-bottom:12px}@media (width<=700px){.approval-matching-toolbar{flex-direction:column;align-items:stretch}}.settings-cache-rows{gap:10px;display:grid}.settings-cache-rows .settings-cache-status{grid-template-columns:90px 80px minmax(0,1fr);align-items:baseline}.settings-inline-status{border-color:var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-text);margin:0 0 16px}.account-badge,.cache-sheet-table,.result-panel,.sheet-option,.task-meta,.action-card,.theme-option{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.editor-panel,.empty-panel,.sheet-picker,.task-card,.inline-editor,.policy-card,.policy-details,.settings-cache-item{background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text)}.page-header p,.card-title span,label span,.status-grid dt,.task-meta span,.muted-text,.section-line,.auth-card p,.access-test-card p,.account-badge span,.app-nav-brand-copy small,.app-nav-account-copy small{color:var(--color-text-muted)}.account-badge strong,.section-line strong{color:var(--color-text)}.app-nav-head,.app-nav-account,th,td,.table-shell,.cache-sheet-table,.cache-sheet-table th,.cache-sheet-table td{border-color:var(--color-border)}.app-nav-links a{color:var(--color-text-muted)}.app-nav-links a:hover{background:var(--color-surface-soft);color:var(--color-primary)}.app-nav-links a.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.app-nav-icon{border-color:var(--color-border-strong);color:var(--color-primary)}.app-nav-collapse,.button.secondary{border-color:var(--color-border);background:var(--color-surface-muted);color:var(--color-text)}.result-strip span,.pill,.sheet-chip{border-color:var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-text-muted)}.cache-sheet-table th{background:var(--color-table-head);color:var(--color-text)}.cache-sheet-table tbody tr:nth-child(2n){background:var(--color-row-alt)}.app-nav-scrim{background:var(--color-scrim)}.app-nav-mobile-toggle{border-color:var(--color-border-strong);background:var(--color-surface);box-shadow:0 4px 16px var(--color-shadow)}.app-nav-mobile-toggle span{background:var(--color-text)}.lark-login-note{border-color:var(--color-border-strong);background:var(--color-surface-soft)}.lark-login-note span{color:var(--color-text-muted)}@media (width<=920px){.settings-page-grid,.settings-cache-grid{grid-template-columns:1fr}}@media (width<=560px){.auth-brand{align-items:flex-start}.auth-logo{flex-basis:56px;width:56px;height:56px}.theme-options,.settings-cache-rows .settings-cache-status{grid-template-columns:1fr}}.payroll-formula-line{border:1px solid var(--border-color,#ccd8d0);background:var(--surface-muted,#f5f8f5);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.payroll-formula-line .button{margin-left:auto}.payroll-hidden-columns{border:1px solid var(--border-color,#ccd8d0);margin:14px 0 0;padding:12px 14px}.payroll-hidden-columns legend{padding:0 6px;font-weight:700}.payroll-hidden-columns p{color:var(--color-text-muted);margin:0 0 10px}.payroll-hidden-column-options{flex-wrap:wrap;gap:10px 18px;display:flex}.payroll-mapping-panel{border:1px solid var(--border-color,#ccd8d0);background:var(--surface,#fff);margin-top:12px;padding:16px}.payroll-mapping-toolbar{grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.payroll-mapping-toolbar label{gap:6px;display:grid}.payroll-column-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;max-height:340px;padding:4px;display:grid;overflow:auto}.payroll-column-option{border:1px solid var(--border-color,#d6dfd8);background:var(--surface,#fff);cursor:pointer;grid-template-columns:auto 34px 1fr;align-items:center;gap:8px;min-width:0;padding:10px;display:grid}.payroll-column-option.selected{border-color:var(--primary,#00875f);background:var(--success-soft,#eaf7f1)}.payroll-column-option small{color:var(--text-muted,#68756c);overflow-wrap:anywhere;grid-column:3}.payroll-column-letter{border:1px solid var(--border-color,#ccd8d0);min-height:26px;color:var(--primary,#00875f);place-items:center;font-weight:700;display:inline-grid}.payroll-value-error{color:var(--danger,#c0392b);font-weight:700}.employee-reminder-details>summary{cursor:pointer;color:var(--color-primary-strong);white-space:nowrap}.employee-reminder-details[open]>summary{margin-bottom:8px}.payroll-salary-source{color:#5f6b63;margin-top:.25rem;font-size:.78rem;line-height:1.35;display:block}.payroll-template-period-note{color:#33483a;background:#f4f8f5;border-color:#b7c9bd}.payroll-download-review{color:#3d321d;background:#fff8e7;border:1px solid #d8a83e;border-radius:8px;max-width:1280px;margin:0 auto 16px;padding:16px}.payroll-download-review-reasons strong{font-size:15px;display:block}.payroll-download-review-reasons ul{margin:10px 0;padding-left:22px}.payroll-download-review-state{color:#6f4f08;margin:12px 0 8px;font-weight:700}.payroll-download-acknowledgement{cursor:pointer;background:#fff;border:1px solid #c79629;border-radius:7px;align-items:center;gap:12px;min-height:48px;margin:0;padding:10px 12px;display:flex}.payroll-download-acknowledgement:hover{background:#fffdf7;border-color:#936a0f}.payroll-download-acknowledgement:focus-within{outline-offset:2px;outline:3px solid #97680040}.payroll-download-acknowledgement input[type=checkbox]{accent-color:#08785c;cursor:pointer;width:24px;min-width:24px;height:24px;margin:0}.payroll-download-acknowledgement span{font-size:14px;line-height:1.5}@media (width<=920px){.payroll-mapping-toolbar{grid-template-columns:1fr}.payroll-formula-line .button{width:100%;margin-left:0}}.runtime-banner{margin-left:var(--app-sidebar-width,0px);border-bottom:1px solid #d4e2df;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:8px 20px;font-size:12px;display:flex}.runtime-production{color:#315f55;background:#eef5f2}.runtime-development{color:#6a3d00;z-index:100;background:#fff0b9;border-color:#d5ac44;position:sticky;top:0}.development-login{gap:16px;display:grid}.development-login label{gap:6px;display:grid}.development-login input{border:1px solid #cbd8d5;border-radius:6px;width:100%;padding:10px}@media (width<=760px){.runtime-banner{margin-left:0;padding-left:64px}}.app-shell{min-width:0;padding:24px 28px}.app-shell>:is(.page-header,.card,.grid,.status,.settings-page-grid){max-width:1440px}.app-shell .page-header{align-items:center;margin-bottom:24px}.app-shell .page-header h1{letter-spacing:0;font-size:26px;line-height:1.35}.app-shell .page-header p{max-width:75ch;margin:6px 0 0;line-height:1.6}.app-shell .card{box-shadow:none;border-radius:12px;min-width:0;padding:20px}.app-shell .card-title{flex-wrap:wrap;gap:8px 16px}.app-shell :is(.card-title h2,.card>h2){font-size:17px;line-height:1.5}.app-shell :is(.grid,.settings-page-grid){align-items:start}.app-shell :is(.table-shell,.cache-sheet-table){scrollbar-gutter:stable;border-radius:8px}.app-shell table{font-variant-numeric:tabular-nums;line-height:1.5}.app-shell tbody tr:hover{background-color:var(--color-surface-soft)}.app-shell th{padding-block:12px;font-size:12px}.app-shell td{padding-block:12px}.app-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:7px;min-height:40px}.app-shell :is(input,textarea){caret-color:var(--color-primary)}.app-shell .button{border-radius:7px;min-height:40px;font-weight:500}.app-shell .button.danger{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.app-shell :is(.pill,.sheet-chip,.attendance-status){border-radius:5px}.app-shell :is(.empty-panel,.editor-panel,.task-card,.policy-details,.action-card,.settings-cache-item){border-radius:8px}.app-shell .status{border-radius:8px;line-height:1.6}.app-shell :is(.header-actions,.row-actions){gap:8px}.app-nav{box-shadow:none}.app-nav-head{min-height:80px;padding:16px 12px}.app-nav-icon{color:inherit;border:0}.app-nav-links a{border-radius:8px;gap:8px}.app-nav-links a.active{border-color:#0000;font-weight:650}.app-nav-group-label{letter-spacing:0;color:var(--color-text-muted);font-size:12px}.app-nav-brand-copy small,.app-nav-account-copy small{font-size:12px}.app-nav-collapse{border-radius:6px;min-width:32px;min-height:32px}.app-nav-search{color:var(--color-text-muted);margin:16px 12px 0;font-size:12px}.app-nav-search>div{border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:7px;align-items:center;gap:6px;padding-left:10px;display:flex}.app-nav-search input{background:0 0;border:0;min-width:0;padding:9px 6px;font-size:13px}.app-nav-search svg{flex-shrink:0}.app-nav.collapsed .app-nav-search{display:none}.app-nav-empty{color:var(--color-text-muted);margin:0;padding:8px;font-size:13px}.app-nav-empty button{color:var(--color-primary);cursor:pointer;background:0 0;border:0;margin-top:8px;display:block}.app-nav-logout{min-height:40px}.app-nav-avatar{background:var(--color-primary-soft);color:var(--color-primary)}.app-skip-link{z-index:100;background:var(--color-primary);color:var(--color-primary-text);border-radius:8px;padding:12px 18px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.app-skip-link:focus{transform:translateY(0)}#workspace-content:focus{outline:none}:is(a,button,summary):focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}::selection{background:var(--color-primary-soft);color:var(--color-text)}.auth-card{box-shadow:none;border-radius:12px;gap:24px;width:min(480px,100%);padding:32px}.auth-brand{align-items:flex-start}.auth-logo{flex-basis:48px;width:48px;height:48px}.auth-card h1{font-size:24px;line-height:1.4}.auth-card p{font-size:14px;line-height:1.7}.auth-card :is(.button,.lark-login-note,.status){border-radius:8px}.auth-card .button{min-height:44px}@media (width<=1050px){.app-shell{padding:24px 18px}.app-shell .page-header{flex-wrap:wrap;align-items:flex-start}}@media (width<=760px){.app-shell{margin-left:0;padding:72px 14px 24px}.app-shell .card{padding:16px}.app-shell .page-header h1{font-size:23px}.app-nav:not(.mobile-open){visibility:hidden}.app-nav.collapsed .app-nav-search{display:grid}.app-nav-collapse{display:none}.app-nav-mobile-toggle{border-radius:8px;min-width:44px;min-height:44px}.app-shell :is(.header-actions,.row-actions){flex-wrap:wrap}.auth-card{padding:24px}}@media (prefers-reduced-motion:reduce){.app-shell,.app-nav,.app-nav-links a{transition:none}}.collapsible-section{border:1px solid var(--border,#d8e0dc);background:var(--surface,#fff);border-radius:10px;scroll-margin-top:20px}.collapsible-section>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:12px 14px;list-style:none;display:flex}.collapsible-section>summary::-webkit-details-marker{display:none}.collapsible-section>summary:focus-visible{outline-offset:2px;border-radius:8px;outline:3px solid #7ab9a7}.collapsible-section-heading{flex-wrap:wrap;align-items:baseline;gap:8px 12px;min-width:0;display:flex}.collapsible-section-summary{color:var(--muted,#63736d);font-size:.9rem;font-weight:400}.collapsible-section-action{color:#286a59;flex:none;align-items:center;gap:5px;font-size:.9rem;display:inline-flex}.collapsible-section-action svg{transition:transform .18s}.collapsible-section[open] .collapsible-section-action svg{transform:rotate(180deg)}.collapsible-section-content{padding:0 14px 14px}.expandable-text{white-space:normal;overflow-wrap:anywhere}.text-button{color:#176b58;cursor:pointer;font:inherit;background:0 0;border:0;margin-left:6px;padding:0;text-decoration:underline}.text-button:focus-visible{outline-offset:2px;outline:2px solid #176b58}.inline-loading{color:var(--muted,#63736d);align-items:center;gap:7px;display:inline-flex}.loading-spinner{animation:.8s linear infinite ui-spin}.busy-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:wait;background:#0f1c188c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.busy-overlay-card{text-align:center;background:#fff;border-radius:16px;width:min(420px,100%);padding:30px;box-shadow:0 20px 70px #00000047}.busy-overlay-spinner{color:#2e8c73}.busy-overlay-card h2{margin:14px 0 8px;font-size:1.22rem}.busy-overlay-phase{min-height:1.5em;margin:0}.busy-overlay-elapsed{font-variant-numeric:tabular-nums;color:#466158;margin:10px 0 0}.busy-overlay-card .muted{margin-bottom:0;font-size:.85rem}.bounded-table{max-height:62vh;overflow:auto}.bounded-table thead th{z-index:2;background:#f5f8f6;position:sticky;top:0}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}.collapsible-section-action svg{transition:none}}
