@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@700&family=Noto+Sans:wght@400;500;600;700&family=VT323&display=swap');
/* Shared sHRMS design tokens. Feature styles own layout; this file owns appearance. */
:root{
 --primary:#9F110C;--primary-dark:#7F0D09;--brand:var(--primary);--accent:var(--primary);
 --sidebar:#151719;--sidebar-secondary:#1D2023;--sidebar-active:#292D31;
 --page-bg:#F5F6F7;--card-bg:#fff;--text-primary:#171717;--text-secondary:#6B7280;--text-muted:#9CA3AF;--border:#E7E7E7;--input-border:#DADDE1;
 --brand-soft:#fbeeed;--brand-readable:#9F110C;--focus-ring:#9f110c24;--table-head:#F8F9FA;--row-hover:#FAFAFA;--secondary-bg:#F4F4F5;
 --font-heading:'IBM Plex Sans',sans-serif;--font-body:'Noto Sans',sans-serif;--font-digital:'VT323',monospace;
 --success-bg:#eaf6ef;--success-text:#25633e;--warning-bg:#fff5df;--warning-text:#845510;--error-bg:#fff0ed;--error-text:#a12c24;
 --shadow:0 3px 16px #17171704;--nav-width:250px;
}
body.shrms-ui{--bg:var(--page-bg);--card:var(--card-bg);--surface:var(--card-bg);--text:var(--text-primary);--muted:var(--text-secondary);--line:var(--border);--lime:var(--primary);--light:var(--brand-soft);--ink:var(--text-primary);--danger:var(--error-text);--danger-bg:var(--error-bg);--mint:var(--success-bg);--peach:var(--warning-bg);--lavender:#f0eef5;--blue:#eef2f6;margin:0;background:var(--page-bg);color:var(--text-primary);font:400 14px/1.55 var(--font-body)}
body.shrms-ui.dark{color-scheme:dark;--page-bg:#17191c;--card-bg:#202327;--text-primary:#f2f3f4;--text-secondary:#b1b5bd;--text-muted:#8c929c;--border:#34383e;--input-border:#444950;--brand-soft:#39221f;--brand-readable:#ffb4aa;--focus-ring:#ffb4aa38;--table-head:#25292e;--row-hover:#292d32;--secondary-bg:#2c3036;--success-bg:#20382b;--success-text:#9cdbb0;--warning-bg:#3b301d;--warning-text:#efd18a;--error-bg:#412623;--error-text:#ffb4aa;--shadow:none}
.shrms-ui :is(h1,h2,h3,h4,.stat-value,.stat strong){font-family:var(--font-heading);font-weight:700;color:var(--text-primary)}
.shrms-ui :is(button,input,select,textarea,label,table){font-family:var(--font-body)}
.shrms-ui :is(h1,.page-title h1){font-size:clamp(25px,2.2vw,30px);letter-spacing:-.65px;line-height:1.25}
.shrms-ui :is(h2,.panel h2){font-size:18px;letter-spacing:-.2px;line-height:1.4}
.shrms-ui :is(.subtitle,.page-title p,.hint,.ess-hint){font-size:13px;color:var(--text-secondary)}
.shrms-ui :is(.eyebrow,.login-eyebrow){font:500 10px/1.5 var(--font-body);letter-spacing:1.5px;color:var(--text-secondary)}
.shrms-ui :focus-visible{outline:3px solid var(--brand-readable);outline-offset:3px}
.shrms-ui a:hover{color:var(--brand-readable)}
.shrms-ui :is(.card,.panel){background:var(--card-bg);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);min-width:0}
.shrms-ui :is(.card:not(.table-card),.panel){padding:24px}
.shrms-ui :is(.page-heading,.page-title){gap:20px;align-items:center;margin-bottom:26px}
.shrms-ui :is(.toolbar,.ess-filter,.suite-toolbar){gap:14px;align-items:end}
.shrms-ui :is(.toolbar,.ess-filter,.suite-toolbar) label{min-width:0}
.shrms-ui :is(.form-grid,.form-columns,.work-form){gap:20px}
.shrms-ui label{font-size:13px;font-weight:400;color:var(--text-primary)}
.shrms-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){box-sizing:border-box;max-width:100%;min-height:44px;border:1px solid var(--input-border);border-radius:10px;background:var(--card-bg);color:var(--text-primary);font-size:13px;padding:10px 12px;box-shadow:none}
.shrms-ui textarea{min-height:100px}
.shrms-ui :is(input,select,textarea):focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px var(--focus-ring)}
.shrms-ui :is(input[type=checkbox],input[type=radio],progress){accent-color:var(--primary)}
.shrms-ui :is(.button,.primary,.wide-button,.admin-module-content button,.ess-actions button,.ess-dialog-actions button){min-height:42px;border-radius:10px;padding:10px 15px;font:500 13px/1.4 var(--font-body);border:1px solid var(--border);background:var(--secondary-bg);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.shrms-ui :is(.button.primary,.primary,.login-submit){background:var(--primary);border-color:var(--primary);color:#fff}
.shrms-ui :is(.button.primary,.primary,.login-submit):hover{background:var(--primary-dark);color:#fff;filter:none}
.shrms-ui :is(.button.danger,.danger-button){background:var(--error-bg);color:var(--error-text)}
.shrms-ui :is(.link,.text-button,.ghost){color:var(--brand-readable)}
.shrms-ui button:disabled{cursor:not-allowed}
.shrms-ui :is(.badge,.status-badge,.chip){font:500 11px/1.5 var(--font-body);border-radius:999px;padding:4px 9px;background:var(--secondary-bg);color:var(--text-secondary);white-space:nowrap}
.shrms-ui [data-ui-status=success]{background:var(--success-bg);color:var(--success-text)}
.shrms-ui [data-ui-status=warning]{background:var(--warning-bg);color:var(--warning-text)}
.shrms-ui [data-ui-status=error]{background:var(--error-bg);color:var(--error-text)}
.shrms-ui :is(.alert.success,.success){background:var(--success-bg);color:var(--success-text)}
.shrms-ui :is(.alert.error,.error){background:var(--error-bg);color:var(--error-text)}
.shrms-ui table{font-size:13px;color:var(--text-primary)}
.shrms-ui :is(th,table.directory th,.employee-ui th){background:var(--table-head)!important;font:700 11px/1.5 var(--font-heading);color:var(--text-secondary);letter-spacing:.3px;padding:13px 16px;border-color:var(--border)}
.shrms-ui :is(td,table.directory td){font:400 13px/1.55 var(--font-body);padding:14px 16px;border-color:var(--border)}
.shrms-ui tbody tr:hover{background:var(--row-hover)}
.shrms-ui :is(.table-scroll,.table-wrap){max-width:100%;overflow:auto;border-radius:12px;overscroll-behavior-inline:contain}
.shrms-ui .calendar :is(th,td){padding:0;font-size:12px}
.shrms-ui .calendar .today span{background:var(--primary);color:#fff}
.shrms-ui :is(.tabs a[aria-current=page],.settings-menu a[aria-current=page]){border-color:var(--primary);color:var(--brand-readable)}
.shrms-ui :is(.avatar,.company-icon){background:var(--brand-soft);color:var(--brand-readable)}
.shrms-ui :is(.insight,.profile-banner,.banner){background:var(--brand-soft);color:var(--text-primary)}
.shrms-ui :is(.donut){background:conic-gradient(var(--primary) 0 var(--percent,0%),var(--border) var(--percent,0%) 100%)}
.shrms-ui .legend i,.shrms-ui .bar-fill{background:var(--primary)}
.shrms-ui dialog{background:var(--card-bg);color:var(--text-primary);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:0 24px 80px #0003;max-height:90svh;overflow:auto}
.shrms-ui dialog::backdrop{background:#11151b80;backdrop-filter:blur(3px)}
.shrms-ui :is(.empty-state,.empty,.ess-empty,.ess-panel-empty){color:var(--text-secondary);border-radius:14px}
.shrms-ui :is(.empty-state,.empty,.ess-panel-empty){padding:32px 20px}
.shrms-ui .ui-empty-cell{text-align:center;padding:38px 20px;color:var(--text-secondary);white-space:normal}
.shrms-ui .ui-empty-cell:before{content:'—';display:block;font:700 24px var(--font-heading);color:var(--text-muted);margin-bottom:8px}
.shrms-ui :is([data-ess-clock],[data-workday-value],[data-workday-in],[data-workday-out],.ui-digital){font-family:var(--font-digital)!important;font-weight:400!important;letter-spacing:.25px;font-variant-numeric:tabular-nums}
.shrms-ui td.ui-digital{font-size:20px;line-height:1.15}
.shrms-ui :is([data-workday-in],[data-workday-out]){font-size:22px}
.shrms-ui .ess-workday-metrics strong{font-size:25px}
.shrms-ui .ess-workday{border-top:3px solid var(--primary)}
.shrms-ui .ess-workday-main{background:var(--page-bg)}
.shrms-ui .ess-workday progress::-webkit-progress-value{background:var(--primary)}
.shrms-ui .ess-workday progress::-moz-progress-bar{background:var(--primary)}
.shrms-ui .ess-task-summary{border-left-color:var(--primary)}
.shrms-ui .ess-count,.shrms-ui .notification-count{background:var(--primary);color:#fff}
/* One shared shell for admin and employee roles. */
body.has-app-shell{--nav-width:250px}
body.has-app-shell.sidebar-collapsed{--nav-width:76px}
.shrms-ui.has-app-shell>aside{position:fixed;inset:0 auto 0 0;width:var(--nav-width);height:100dvh;padding:18px 12px;display:flex;flex-direction:column;gap:0;background:var(--sidebar);color:#d6d8dc;border:0;z-index:50;overflow-y:auto;overflow-x:hidden;transform:none;scrollbar-width:thin;scrollbar-color:#40454b transparent}
.shrms-ui.has-app-shell>:is(.app,.main){margin-left:var(--nav-width);width:calc(100% - var(--nav-width));min-width:0;min-height:100svh}
.shrms-ui.has-app-shell :is(.topbar,.main>header){height:72px;padding:0 28px;display:flex;align-items:center;gap:14px;background:var(--card-bg);border-bottom:1px solid var(--border);box-shadow:0 2px 10px #17171703;position:relative;z-index:35}
.shrms-ui.has-app-shell :is(#main,#content){width:100%;max-width:1520px;margin:0 auto;padding:28px;min-width:0}
.shrms-ui.has-app-shell>aside .brand{position:static;display:flex;align-items:center;gap:10px;margin:0 0 22px;padding:8px 8px 0;font:700 23px/1.15 var(--font-heading);letter-spacing:-.5px;color:#f5f5f5}
.shrms-ui.has-app-shell>aside .brand>span{position:static;font:inherit;letter-spacing:inherit;color:inherit}
.shrms-ui.has-app-shell>aside .brand small{display:block;font:400 10px/1.5 var(--font-body);letter-spacing:1px;color:#a8adb5;margin-top:4px}
.shrms-ui.has-app-shell>aside .brand :is(b,i){display:grid;place-items:center;background:#fff;color:var(--primary);border-radius:10px;width:38px;height:40px;min-width:38px;font:700 28px var(--font-heading);padding:0}
.shrms-ui.has-app-shell :is(.company-switch,.workspace){background:var(--sidebar-secondary);border:1px solid #30343a;border-radius:12px;padding:12px;gap:10px;color:#f4f4f5;font-size:12px;margin:0 0 16px}
.shrms-ui.has-app-shell :is(.company-switch,.workspace) small{color:#a8adb5}
.shrms-ui.has-app-shell :is(.nav-caption,.nav-label){font:400 10px/1.4 var(--font-body);letter-spacing:1px;color:#9298a2;margin:20px 12px 10px}
.shrms-ui.has-app-shell>aside nav{display:flex;flex-direction:column;gap:4px}
.shrms-ui.has-app-shell>aside nav :is(a,summary,.nav-module-title){position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:11px 12px;margin:0;border:0;border-radius:10px;background:transparent;color:#cbd0d7;font:400 13px/1.5 var(--font-body);text-align:left;cursor:pointer;list-style:none;text-decoration:none;box-shadow:none}
.shrms-ui.has-app-shell>aside nav :is(a,summary,.nav-module-title):hover{background:var(--sidebar-secondary);color:#fff}
.shrms-ui.has-app-shell>aside nav :is(a.selected,a.active,summary.active,[aria-current=page],.nav-module.open>.nav-module-title){background:var(--sidebar-active);color:#fff;font-weight:500;box-shadow:none}
.shrms-ui.has-app-shell>aside nav :is(a.selected,a.active,[aria-current=page]):before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:4px;background:#e1473e}
.shrms-ui.has-app-shell .nav-module-title .ui-nav-label{margin-left:0}
.shrms-ui.has-app-shell .nav-module:not(.open) .nav-module-items{display:none}
.shrms-ui.has-app-shell>aside nav summary::-webkit-details-marker{display:none}
.shrms-ui.has-app-shell>aside nav summary:after,.shrms-ui.has-app-shell .nav-module-title:after{content:'›';margin-left:auto;font-size:19px;line-height:1;color:#9ca3af;transform:rotate(0)}
.shrms-ui.has-app-shell>aside nav details[open]>summary:after,.shrms-ui.has-app-shell .nav-module.open>.nav-module-title:after{transform:rotate(90deg)}
.shrms-ui.has-app-shell>aside nav details[open]>summary{margin-bottom:4px}
.shrms-ui.has-app-shell>aside nav :is(details>div,.nav-module-items){margin:4px 0 8px 21px;padding-left:10px;border-left:1px solid #3a3e44}
.shrms-ui.has-app-shell>aside nav :is(details>div,.nav-module-items) a{min-height:38px;font-size:12px;padding:9px 10px;gap:9px}
.shrms-ui.has-app-shell :is(.sidebar-bottom,.aside-bottom){margin-top:auto;padding-top:22px}
.shrms-ui.has-app-shell :is(.sidebar-bottom a,.logout-button,.aside-bottom button){display:flex;align-items:center;gap:10px;border:0;border-radius:10px;background:var(--sidebar-secondary);color:#cbd0d7;min-height:42px;width:100%;font:400 12px var(--font-body);padding:10px 12px;margin:6px 0}
.shrms-ui .ui-icon{width:20px;height:20px;flex:0 0 20px;display:inline-flex;align-items:center;justify-content:center}
.shrms-ui .ui-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.shrms-ui .ui-nav-label{min-width:0;font:inherit!important;letter-spacing:normal}
.shrms-ui :is(.icon-button,.ess-icon-button,.mobile-menu,.menu-toggle){display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;height:38px;min-height:38px;border-radius:10px;border:1px solid var(--border);background:var(--card-bg);color:var(--text-primary);padding:8px}
.shrms-ui :is(.breadcrumb,.main>header>span){font-size:12px;color:var(--text-secondary);min-width:0}
.shrms-ui .top-actions,.shrms-ui .ess-header{gap:12px;margin-left:auto}
.shrms-ui .ui-search-trigger{display:flex;align-items:center;gap:10px;min-width:0;width:min(300px,28vw);height:40px;border-radius:10px;border:1px solid var(--border);background:var(--page-bg);color:var(--text-secondary);padding:8px 12px;font:400 12px var(--font-body)}
.shrms-ui .ui-search-trigger kbd{margin-left:auto;font:400 10px var(--font-body);white-space:nowrap;color:var(--text-muted)}
.shrms-ui .ui-search-dialog{width:min(560px,calc(100% - 32px));max-width:560px}
.shrms-ui .ui-search-dialog h2{margin:0;font-size:20px}
.shrms-ui .ui-search-dialog .ui-search-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.shrms-ui .ui-search-results{display:grid;gap:5px;max-height:50svh;overflow:auto;margin-top:16px}
.shrms-ui .ui-search-results a{display:flex;gap:12px;align-items:center;color:var(--text-primary);padding:12px;border-radius:9px;font-size:13px}
.shrms-ui .ui-search-results a:hover{background:var(--brand-soft);color:var(--brand-readable)}
.shrms-ui .ui-search-results small{margin-left:auto;color:var(--text-secondary)}
.shrms-ui.sidebar-collapsed>aside :is(.ui-nav-label,.brand>span,.company-switch,.workspace,.nav-caption,.nav-label){display:none}
.shrms-ui.sidebar-collapsed>aside .brand{padding:0;margin:6px auto 24px}
.shrms-ui.sidebar-collapsed>aside nav :is(a,summary,.nav-module-title){justify-content:center;padding:12px;min-height:46px}
.shrms-ui.sidebar-collapsed>aside nav :is(details>div,.nav-module-items){display:none}
.shrms-ui.sidebar-collapsed>aside nav :is(summary,.nav-module-title):after{display:none}
.shrms-ui.sidebar-collapsed :is(.sidebar-bottom a,.logout-button,.aside-bottom button){justify-content:center}
.shrms-ui :is(.notification-panel,.ess-dropdown>div){background:var(--card-bg);border:1px solid var(--border);border-radius:14px;color:var(--text-primary);box-shadow:0 16px 42px #0002}
/* Login keeps the approved red wave layout and uses the same brand/type system. */
.shrms-ui.ark-login{--brand:var(--primary)}
.shrms-ui.ark-login .login-input{border-color:var(--input-border)}
.shrms-ui.ark-login .login-input input:not([type=hidden]):not([type=checkbox]):not([type=radio]){border:0;padding:0;background:transparent;box-shadow:none}
.shrms-ui.ark-login .login-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}
.shrms-ui.ark-login :is(.login-help a,.password-toggle[aria-pressed=true]){color:var(--primary)}
.shrms-ui.ark-login .login-visual{background:linear-gradient(145deg,#35090c,var(--primary-dark) 53%,var(--primary))}
.shrms-ui.ark-login .story-copy h2{font-size:clamp(26px,3.2vw,43px);color:#fff;font-family:var(--font-heading);font-weight:700}
.shrms-ui.ark-login .story-copy h2 span{color:#ffd5c9}
.shrms-ui.auth-screen .auth-shell{width:calc(100% - 32px);max-width:460px;margin:10vh auto}
@media(max-width:1150px) and (min-width:781px){.shrms-ui.has-app-shell :is(.breadcrumb,.main>header>span){display:none}.shrms-ui .ui-search-trigger{width:min(270px,28vw)}}
@media(max-width:780px){
 .shrms-ui.has-app-shell>:is(.app,.main){margin-left:0;width:100%}
 .shrms-ui.has-app-shell>aside{width:250px;transform:translateX(-100%);transition:transform .2s}
 .shrms-ui.has-app-shell.nav-open>aside{transform:translateX(0);box-shadow:0 0 0 100vmax #0006}
 .shrms-ui.has-app-shell :is(.topbar,.main>header){height:auto;min-height:66px;padding:12px 16px;flex-wrap:wrap;gap:10px}
 .shrms-ui.has-app-shell :is(#main,#content){padding:22px 16px}
 .shrms-ui.has-app-shell :is(.breadcrumb,.main>header>span){display:none}
 .shrms-ui .ui-search-trigger{width:38px;height:38px;padding:8px;min-width:38px}
 .shrms-ui .ui-search-trigger :is(.ui-search-label,kbd){display:none}
 .shrms-ui :is(.top-actions,.ess-header){gap:8px;min-width:0}
 .shrms-ui .ess-account-name,.shrms-ui .user-link>span:last-child{display:none}
 .shrms-ui .ess-punch-status{max-width:160px;min-width:0}
 .shrms-ui .ess-punch-status small{white-space:normal}
 .shrms-ui :is(.card:not(.table-card),.panel){padding:18px}
 .shrms-ui :is(.form-grid,.form-grid.three,.form-columns){grid-template-columns:1fr}
 .shrms-ui :is(.toolbar,.ess-filter)>label{width:100%;flex-basis:100%}
 .shrms-ui .ess-workday-metrics strong{font-size:23px}
}
@media(max-width:480px){.shrms-ui .ess-header{flex-wrap:wrap;justify-content:flex-end;flex:1}.shrms-ui .ess-punch-status{order:5;flex-basis:100%;max-width:none}.shrms-ui .page-heading,.shrms-ui .page-title{align-items:flex-start;flex-wrap:wrap}.shrms-ui .top-actions{gap:6px}.shrms-ui .ess-workday-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.shrms-ui *{scroll-behavior:auto!important;transition:none!important}}
@media print{body.shrms-ui{--page-bg:#fff;--card-bg:#fff;--text-primary:#171717;--text-secondary:#555;--border:#ddd;background:white;color:#171717}.shrms-ui.has-app-shell>aside,.shrms-ui .ui-search-trigger{display:none}.shrms-ui.has-app-shell>:is(.app,.main){margin:0;width:100%}}

/* Compact sidebar heading and readable attendance records. */
.shrms-ui.has-app-shell>aside .brand{min-height:52px;margin:0 0 18px;padding:4px 8px;gap:9px;font-size:21px}
.shrms-ui.has-app-shell>aside .brand small{font-size:9px;letter-spacing:.8px}
.shrms-ui.has-app-shell>aside .brand b{width:34px;min-width:34px;height:36px;font-size:25px}
.shrms-ui.has-app-shell.sidebar-collapsed>aside .brand{padding:0;margin:0 auto 20px}
.shrms-ui.has-app-shell :is(.topbar,.main>header){position:sticky;top:0}
.shrms-ui.employee-ui :is(table td,table th){font-size:13px!important;line-height:1.55!important;padding:14px 16px!important}
.shrms-ui :is(td.ui-digital,table td.ui-digital){font-family:var(--font-body)!important;font-size:13px!important;font-weight:500!important;line-height:1.55;letter-spacing:0;font-variant-numeric:tabular-nums}
.shrms-ui.employee-ui .table-scroll{max-height:min(65vh,620px)}
.shrms-ui.employee-ui .table-scroll thead th{position:sticky;top:0;z-index:2}
.shrms-ui.employee-ui :is(.ess-stat,.stat){border:1px solid var(--border);background:var(--card-bg);border-radius:14px}
.shrms-ui.employee-ui :is(.ess-stat,.stat) strong{font-size:22px;line-height:1.3}


/* Attendance reporting: scoped layouts, shared light/dark theme tokens. */
.shrms-ui .att-section-heading,.shrms-ui .att-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.shrms-ui .att-section-heading h2,.shrms-ui .att-panel-heading h2{margin:0}
.shrms-ui .att-section-heading p{margin:5px 0;color:var(--text-secondary);font-size:13px}
.shrms-ui .att-filter{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:16px;margin-bottom:22px}
.shrms-ui .att-filter label{display:block;min-width:0}
.shrms-ui .att-filter label input,.shrms-ui .att-filter label select{display:block;width:100%;margin-top:7px}
.shrms-ui .att-filter .full{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
.shrms-ui .att-report-filter{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.shrms-ui .att-filter-actions{display:flex;gap:8px;flex-wrap:wrap}
.shrms-ui .att-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}
.shrms-ui .att-kpi{position:relative;margin:0;border-top:3px solid var(--primary)}
.shrms-ui .att-kpi p{font-size:13px;color:var(--text-secondary);margin:0 0 12px}
.shrms-ui .att-kpi strong{display:block;font:700 32px/1.2 var(--font-heading);font-variant-numeric:tabular-nums;margin-bottom:10px}
.shrms-ui .att-kpi small{display:block;color:var(--text-secondary);font-size:11px}
.shrms-ui .att-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:0 0 22px}
.shrms-ui .att-insight-grid>.card{margin:0;min-width:0}
.shrms-ui .att-insight-grid h2{margin-top:0}
.shrms-ui .att-wide{grid-column:1/-1}
.shrms-ui .att-caption{font-size:12px;color:var(--text-secondary);line-height:1.65;margin:8px 0 22px}
.shrms-ui .att-tag{border:1px solid var(--border);border-radius:20px;padding:4px 10px;font-size:11px;color:var(--text-secondary)}
.shrms-ui .att-bars{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:21px}
.shrms-ui .att-bar-label{display:flex;justify-content:space-between;align-items:start;gap:16px;font-size:13px;margin-bottom:9px}
.shrms-ui .att-bar-label>span{overflow-wrap:anywhere}
.shrms-ui .att-bar-label strong{white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}
.shrms-ui .att-bar-label small,.shrms-ui .att-bars li>small{display:block;font-size:11px;color:var(--text-secondary);margin-top:4px}
.shrms-ui .att-bar-track,.shrms-ui .att-stack{height:9px;border-radius:6px;overflow:hidden;background:var(--secondary-bg);display:flex}
.shrms-ui .att-bar-track>span{display:block;height:100%;border-radius:6px;background:var(--brand-readable)}
.shrms-ui .att-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:11px;color:var(--text-secondary)}
.shrms-ui .att-legend>span{display:inline-flex;align-items:center;gap:7px}
.shrms-ui .att-legend i{width:9px;height:9px;border-radius:3px}
.shrms-ui .att-present{background:#3f7f70}.shrms-ui .att-absent{background:#b12625}.shrms-ui .att-leave{background:#d4a348}
.shrms-ui .att-chart-scroll{max-height:330px;overflow:auto;padding-right:5px}
.shrms-ui .att-empty{padding:32px 12px;background:var(--secondary-bg);border-radius:10px;text-align:center;font-size:13px;color:var(--text-secondary)}
.shrms-ui .att-text-link{display:inline-block;margin-top:24px;font-size:12px;color:var(--brand-readable)}
.shrms-ui .att-summary-strip{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-bottom:24px}
.shrms-ui .att-summary-strip strong,.shrms-ui .att-time-summary strong{display:block;font:700 24px var(--font-heading);margin-top:6px}
.shrms-ui .att-summary-strip small,.shrms-ui .att-time-summary small{font-size:12px;color:var(--text-secondary)}
.shrms-ui .att-summary-strip p{flex:1;min-width:180px;font-size:12px;color:var(--text-secondary)}
.shrms-ui .att-time-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:24px 0}
.shrms-ui .att-trend-scroll{overflow-x:auto;margin-top:24px}
.shrms-ui .att-trend{display:flex;gap:8px;min-width:660px;padding:0 3px 8px}
.shrms-ui .att-day{flex:1;min-width:12px;text-align:center;position:relative}
.shrms-ui .att-day-bars{height:170px;display:flex;flex-direction:column-reverse;justify-content:flex-start;border-bottom:1px solid var(--border);gap:0}
.shrms-ui .att-day-bars>span{display:block;width:100%;max-width:26px;margin:0 auto}
.shrms-ui .att-day small{font-size:10px;color:var(--text-secondary)}
.shrms-ui .att-day:focus-visible:after{content:attr(aria-label);position:absolute;bottom:100%;left:0;background:var(--card-bg);border:1px solid var(--border);padding:8px;min-width:150px;z-index:2;font-size:12px}
.shrms-ui .att-sheet-tools{margin-bottom:20px}
.shrms-ui .att-sheet-tools h2{margin:0 0 6px}.shrms-ui .att-sheet-tools p{font-size:12px;color:var(--text-secondary);margin:0 0 16px}
.shrms-ui .att-toolbar{display:flex;gap:10px;flex-wrap:wrap}
.shrms-ui #sheet-entry .core-editor{padding:0;border:0;box-shadow:none}
.shrms-ui #sheet-entry .core-editor>summary{display:none}
.shrms-ui .att-sheet-cell{display:inline-flex;min-width:32px;min-height:32px;align-items:center;justify-content:center;text-decoration:none;border-radius:6px}
.shrms-ui .att-sheet-cell:hover{outline:1px solid var(--brand-readable);background:var(--brand-soft)}
@media(max-width:1100px){.shrms-ui .att-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.shrms-ui .att-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.shrms-ui .att-insight-grid{grid-template-columns:1fr}.shrms-ui .att-filter{grid-template-columns:1fr}.shrms-ui .att-kpis{gap:10px}.shrms-ui .att-kpi.card{padding:17px}.shrms-ui .att-kpi strong{font-size:27px}.shrms-ui .att-toolbar>.button{flex:1 1 180px}.shrms-ui .att-summary-strip{gap:20px}.shrms-ui .att-insight-grid>.card{padding:18px}}

.shrms-ui .attendance-table-scroll tbody th small{display:block;font-weight:400;text-transform:none;color:var(--text-secondary);margin-top:4px}

/* Direct attendance status editor and readable month sheet. */
.shrms-ui .att-sheet-card .attendance-table-scroll{max-height:min(70vh,680px)!important;height:auto;min-height:290px}
.shrms-ui .att-sheet-card .directory{table-layout:auto;min-width:100%}
.shrms-ui .att-sheet-card .directory thead th:not(:first-child){min-width:54px;text-align:center;padding:12px 7px}
.shrms-ui .att-sheet-card .directory thead th small{display:block;font-weight:400;font-size:10px;margin-top:4px}
.shrms-ui .att-sheet-card .directory tbody th{min-width:215px;max-width:260px;text-transform:none;letter-spacing:0;font-size:12px}
.shrms-ui .att-sheet-card .directory tbody td{padding:8px 5px;text-align:center}
.shrms-ui .att-sheet-card .att-sheet-cell{min-width:42px;min-height:42px;width:100%}
.shrms-ui .att-sheet-card .sheet-status{font-size:11px;min-width:29px;padding:5px 7px;border-radius:7px;display:inline-block}
.shrms-ui .sheet-status[data-status="Present"],.shrms-ui .sheet-status[data-status="Late"]{background:var(--success-bg);color:var(--success-text)}
.shrms-ui .sheet-status[data-status="Absent"]{background:var(--error-bg);color:var(--error-text)}
.shrms-ui .sheet-status[data-status="Half Day"],.shrms-ui .sheet-status[data-status*="Pending"],.shrms-ui .sheet-status[data-status="Open"]{background:var(--warning-bg);color:var(--warning-text)}
.shrms-ui .sheet-status[data-status="Leave"],.shrms-ui .sheet-status[data-status="Half Day Leave"]{background:var(--brand-soft);color:var(--brand-readable)}
.shrms-ui .att-sheet-help{margin-bottom:20px}.shrms-ui .att-sheet-help>p{font-size:13px;margin:0 0 14px}
.shrms-ui .att-sheet-help>small{display:block;color:var(--text-secondary);font-size:11px;line-height:1.7;margin-top:12px}
.shrms-ui .att-sheet-legend{display:flex;flex-wrap:wrap;gap:10px 18px}.shrms-ui .att-sheet-legend>span{display:inline-flex;gap:6px;align-items:center;font-size:11px}
.shrms-ui .att-status-dialog{width:min(480px,calc(100vw - 32px));box-sizing:border-box;padding:26px;border-radius:18px}
.shrms-ui .att-status-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:20px}
.shrms-ui .att-status-heading h2{margin:3px 0 0}.shrms-ui .att-status-heading p{margin:0}
.shrms-ui .att-status-person{padding:16px;background:var(--secondary-bg);border-radius:12px;margin-bottom:20px}
.shrms-ui .att-status-person strong,.shrms-ui .att-status-person span,.shrms-ui .att-status-person small{display:block}
.shrms-ui .att-status-person span,.shrms-ui .att-status-person small{font-size:12px;color:var(--text-secondary);margin-top:6px}
.shrms-ui .att-status-form>label{display:block;margin-bottom:16px}.shrms-ui .att-status-form select,.shrms-ui .att-status-form textarea{display:block;width:100%;margin-top:7px}
.shrms-ui .att-status-form textarea{min-height:80px}.shrms-ui .att-status-form>.check{display:flex;align-items:start;gap:8px}
.shrms-ui .att-status-actions{display:flex;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--border)}
@media(max-width:600px){.shrms-ui .att-sheet-card .directory tbody th{min-width:150px;max-width:165px}.shrms-ui .att-status-dialog{padding:20px}.shrms-ui .att-status-actions>.button{flex:1}}

/* Employee attendance: enough rows to read a month without a three-row viewport. */
.shrms-ui .ess-attendance-sheet .ess-attendance-scroll{max-height:min(68vh,680px)!important;min-height:320px;overflow:auto;scrollbar-gutter:stable}
.shrms-ui .ess-attendance-sheet .ess-section-heading{align-items:flex-start;gap:16px}
.shrms-ui .ess-attendance-sheet .ess-section-heading p{margin:7px 0 16px;color:var(--text-muted,#64748b);font-size:13px}
.shrms-ui .ess-attendance-sheet table{min-width:1250px;width:100%}
.shrms-ui .ess-attendance-sheet th,.shrms-ui .ess-attendance-sheet td{padding:13px 16px;vertical-align:top}
.shrms-ui .ess-attendance-sheet tbody th{font-weight:600;text-align:left;white-space:nowrap}
.shrms-ui .ess-attendance-sheet small{display:block;margin-top:5px;font-size:11px;font-weight:400;color:var(--text-muted,#64748b)}
.shrms-ui .ess-attendance-sheet .ess-punch-time{white-space:nowrap;font-variant-numeric:tabular-nums}
.shrms-ui .ess-attendance-detail{min-width:240px;max-width:320px;white-space:normal;font-size:12px;line-height:1.6}
.shrms-ui .ess-attendance-badge,.shrms-ui .ess-attendance-count{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid var(--border,#e7e7e7);border-radius:7px;font-size:12px;font-weight:600;white-space:nowrap}
.shrms-ui .ess-attendance-badge.needs-review{color:#9F110C;background:#fff0ed;border-color:#ebc6c0}
.shrms-ui .ess-attendance-notice{border-left:3px solid #9F110C;padding:10px 14px;margin:0 0 16px;font-size:13px;line-height:1.6;background:rgba(159,17,12,.06)}
@media(max-width:600px){.shrms-ui .ess-attendance-sheet .ess-attendance-scroll{min-height:300px;max-height:65vh!important}.shrms-ui .ess-attendance-sheet th,.shrms-ui .ess-attendance-sheet td{padding:11px 12px}}

/* Employee time breakdown separates early arrival from leaving early. */
.shrms-ui .ess-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:18px}
.shrms-ui .ess-time-grid>div{padding:6px 22px;border-left:1px solid var(--border)}
.shrms-ui .ess-time-grid>div:first-child{border-left:0;padding-left:0}
.shrms-ui .ess-time-grid span{display:block;font-size:12px;color:var(--text-secondary)}
.shrms-ui .ess-time-grid strong{display:block;margin:8px 0;font:700 27px/1.2 var(--font-heading);font-variant-numeric:tabular-nums}
.shrms-ui .ess-time-grid small{display:block;color:var(--text-secondary);font-size:11px;line-height:1.6}
.shrms-ui .ess-today-summary h2{margin:4px 0 6px}.shrms-ui .ess-today-summary .ess-section-heading p{margin:0;color:var(--text-secondary);font-size:12px}
.shrms-ui .ess-today-summary .ess-hint{margin:18px 0 0;font-size:12px;color:var(--text-secondary)}
.shrms-ui .ess-month-caption{margin:24px 0 10px;font-weight:600;font-size:13px;color:var(--text-secondary)}
.shrms-ui .ess-time-rule{padding:11px 14px;border:1px solid var(--border);border-radius:9px;background:var(--secondary-bg);font-size:12px;color:var(--text-secondary);line-height:1.7;margin:0 0 16px}
@media(max-width:800px){.shrms-ui .ess-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 0}.shrms-ui .ess-time-grid>div:nth-child(3){border-left:0;padding-left:0}.shrms-ui .ess-time-grid strong{font-size:22px}.shrms-ui .ess-today-summary .ess-section-heading{align-items:flex-start}}
