:root{--erv-primary:#ed1c24;--erv-dark:#11131a;--erv-bg:#f4f5f7;--erv-text:#171920;--erv-muted:#727986;--erv-line:#e4e6ea;--erv-white:#fff;--erv-sidebar:244px;--erv-banner:34px;--erv-topbar:76px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--erv-bg)}body.hl-erv-demo-page{overflow-x:hidden}.ervdemo,.ervdemo button,.ervdemo input,.ervdemo select,.ervdemo textarea{font-family:Inter,"Helvetica Neue",Arial,sans-serif}.ervdemo{min-height:100vh;color:var(--erv-text);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}.ervdemo *{box-sizing:border-box}.ervdemo a{color:inherit;text-decoration:none}.ervdemo button{color:inherit}.ervdemo svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Login */
.ervdemo-login{min-height:100vh;display:grid;grid-template-columns:.88fr 1.12fr;background:#fff}.ervdemo-login-art{position:relative;overflow:hidden;min-height:100vh;background:radial-gradient(circle at 20% 16%,rgba(237,28,36,.32),transparent 28%),radial-gradient(circle at 88% 80%,rgba(237,28,36,.16),transparent 28%),linear-gradient(145deg,#171922,#07080b)}.ervdemo-login-art::before{position:absolute;inset:0;content:"";opacity:.2;background-image:radial-gradient(rgba(255,255,255,.3) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(120deg,#000,transparent 72%)}.ervdemo-orbit{position:absolute;border:1px solid rgba(237,28,36,.24);border-radius:50%}.orbit-a{width:520px;height:520px;left:-180px;bottom:-160px;box-shadow:0 0 0 45px rgba(237,28,36,.025),0 0 0 90px rgba(237,28,36,.015)}.orbit-b{width:330px;height:330px;right:-120px;top:-90px;box-shadow:0 0 0 35px rgba(255,255,255,.018)}.ervdemo-login-board{position:absolute;top:50%;left:50%;width:min(540px,72%);height:420px;padding:36px;transform:translate(-50%,-50%) perspective(1100px) rotateY(9deg) rotateX(4deg);border:1px solid rgba(255,255,255,.14);border-radius:32px;background:rgba(255,255,255,.075);box-shadow:0 60px 110px rgba(0,0,0,.48);backdrop-filter:blur(18px);animation:boardFloat 5s ease-in-out infinite}.mini-brand{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;color:#fff;background:var(--erv-primary);font-size:19px;font-weight:900}.mini-title{display:flex;gap:11px;margin-top:36px}.mini-title i{width:42%;height:15px;border-radius:9px;background:rgba(255,255,255,.8)}.mini-title i:last-child{width:24%;background:rgba(255,255,255,.18)}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.mini-stats span{height:82px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(255,255,255,.1)}.mini-chart{height:160px;display:flex;align-items:end;gap:18px;margin-top:18px;padding:24px 25px 0;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(0,0,0,.13)}.mini-chart i{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(#ff3840,var(--erv-primary));box-shadow:0 -10px 25px rgba(237,28,36,.13)}.mini-chart i:nth-child(1){height:48%}.mini-chart i:nth-child(2){height:72%}.mini-chart i:nth-child(3){height:62%}.mini-chart i:nth-child(4){height:88%}.mini-chart i:nth-child(5){height:69%}@keyframes boardFloat{0%,100%{transform:translate(-50%,-50%) perspective(1100px) rotateY(9deg) rotateX(4deg) translateY(0)}50%{transform:translate(-50%,-50%) perspective(1100px) rotateY(6deg) rotateX(2deg) translateY(-13px)}}
.ervdemo-login-content{width:min(680px,calc(100% - 80px));align-self:center;justify-self:center;padding:60px 0}.ervdemo-login-brand{display:inline-flex;align-items:center;gap:12px;margin-bottom:55px}.ervdemo-login-brand>span{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--erv-primary);font-size:18px;font-weight:900;box-shadow:0 13px 28px rgba(237,28,36,.25)}.ervdemo-login-brand>div{display:flex;flex-direction:column;line-height:1.15}.ervdemo-login-brand b{font-size:16px}.ervdemo-login-brand small{margin-top:5px;color:#8b9099;font-size:10px}.ervdemo-demo-pill{width:max-content;display:flex;align-items:center;gap:9px;padding:8px 13px;border:1px solid #ffd6d8;border-radius:99px;color:#a30f18;background:#fff5f5;font-size:10px;font-weight:850;letter-spacing:.09em}.ervdemo-demo-pill i{width:8px;height:8px;border-radius:50%;background:var(--erv-primary);box-shadow:0 0 0 5px rgba(237,28,36,.1)}.ervdemo-login-content h1{margin:24px 0 20px;font-size:clamp(45px,5.5vw,72px);line-height:1.02;letter-spacing:-.055em}.ervdemo-login-content h1 em{color:var(--erv-primary);font-style:normal}.ervdemo-login-content>p{max-width:610px;margin:0 0 30px;color:#646b76;font-size:16px;line-height:1.75}.ervdemo-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ervdemo-role-grid button{min-height:82px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px 16px;border:1px solid #e2e4e8;border-radius:16px;background:#fff;text-align:left;cursor:pointer;box-shadow:0 8px 25px rgba(15,17,22,.035);transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease,background .24s ease}.ervdemo-role-grid button:hover{transform:translateY(-5px);border-color:rgba(237,28,36,.35);background:#fffafa;box-shadow:0 18px 42px rgba(15,17,22,.1)}.ervdemo-role-grid button>i{color:#b4b8bf;font-size:22px;font-style:normal;transition:transform .2s ease,color .2s ease}.ervdemo-role-grid button:hover>i{color:var(--erv-primary);transform:translateX(4px)}.role-avatar,.avatar{display:grid;place-items:center;border-radius:12px;color:#fff;font-weight:850}.role-avatar{width:48px;height:48px}.role-blue,.avatar.blue{background:#3979dd}.role-red,.avatar.red{background:var(--erv-primary)}.role-gold,.avatar.gold{background:#d39a28}.role-dark{background:#222630}.avatar.purple{background:#8059cc}.ervdemo-role-grid button>div{display:flex;flex-direction:column}.ervdemo-role-grid b{font-size:14px}.ervdemo-role-grid small{margin-top:3px;color:#858b95;font-size:10px}.ervdemo-back-link{display:inline-flex;margin-top:26px;color:#7d838e;font-size:11px;font-weight:750;transition:color .2s ease,transform .2s ease}.ervdemo-back-link:hover{color:var(--erv-primary);transform:translateX(-4px)}

/* Application shell */
.ervdemo-app{min-height:100vh;background:var(--erv-bg)}.ervdemo-app[hidden],.ervdemo-login[hidden]{display:none!important}.ervdemo-banner{position:fixed;z-index:1100;top:0;left:0;right:0;height:var(--erv-banner);display:flex;align-items:center;justify-content:center;gap:26px;padding:0 18px;color:#fff;background:linear-gradient(90deg,#aa0e16,var(--erv-primary),#aa0e16);font-size:10px;letter-spacing:.02em}.ervdemo-banner span{opacity:.94}.ervdemo-banner span b{padding:3px 7px;margin-right:7px;border-radius:4px;color:var(--erv-primary);background:#fff;font-size:8px;letter-spacing:.12em}.ervdemo-banner a{font-weight:850;text-decoration:underline;text-underline-offset:3px}.admin-bar .ervdemo-banner{top:32px}.ervdemo-sidebar{position:fixed;z-index:1000;top:var(--erv-banner);left:0;bottom:0;width:var(--erv-sidebar);display:flex;flex-direction:column;padding:23px 17px;color:#fff;background:linear-gradient(180deg,#171922,#0c0d12);box-shadow:15px 0 45px rgba(17,19,26,.08)}.admin-bar .ervdemo-sidebar{top:calc(var(--erv-banner) + 32px)}.ervdemo-side-brand{display:flex;align-items:center;gap:12px;padding:0 9px 25px;border-bottom:1px solid rgba(255,255,255,.08)}.ervdemo-side-brand>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--erv-primary);font-weight:900;box-shadow:0 12px 25px rgba(237,28,36,.22)}.ervdemo-side-brand>div{display:flex;flex-direction:column;line-height:1}.ervdemo-side-brand b{font-size:16px}.ervdemo-side-brand small{margin-top:6px;color:#858a94;font-size:9px}.ervdemo-sidebar nav{display:grid;gap:5px;margin-top:25px}.ervdemo-sidebar nav button,.ervdemo-side-bottom button{position:relative;width:100%;min-height:47px;display:flex;align-items:center;gap:13px;padding:0 13px;border:0;border-radius:11px;color:#999ea8;background:transparent;font-size:12px;font-weight:720;text-align:left;cursor:pointer;transition:color .2s ease,background .2s ease,transform .2s ease}.ervdemo-sidebar nav button::before{position:absolute;top:10px;bottom:10px;left:-17px;width:3px;content:"";border-radius:0 5px 5px 0;background:var(--erv-primary);transform:scaleY(0);transition:transform .2s ease}.ervdemo-sidebar nav button:hover{color:#fff;background:rgba(255,255,255,.06);transform:translateX(3px)}.ervdemo-sidebar nav button.active{color:#fff;background:rgba(237,28,36,.13)}.ervdemo-sidebar nav button.active::before{transform:scaleY(1)}.ervdemo-sidebar nav button.active svg{color:var(--erv-primary)}.ervdemo-sidebar nav button em{margin-left:auto;min-width:20px;height:20px;display:grid;place-items:center;border-radius:99px;color:#fff;background:var(--erv-primary);font-size:8px;font-style:normal}.ervdemo-side-bottom{display:grid;gap:8px;margin-top:auto}.ervdemo-side-bottom>a{display:block;padding:12px;border:1px solid rgba(237,28,36,.35);border-radius:10px;color:#fff;background:rgba(237,28,36,.1);font-size:10px;font-weight:800;text-align:center;transition:background .2s ease,transform .2s ease}.ervdemo-side-bottom>a:hover{transform:translateY(-2px);background:var(--erv-primary)}
.ervdemo-main{min-height:100vh;margin-left:var(--erv-sidebar);padding-top:var(--erv-banner)}.admin-bar .ervdemo-main{padding-top:calc(var(--erv-banner) + 32px)}.ervdemo-topbar{position:sticky;z-index:900;top:var(--erv-banner);height:var(--erv-topbar);display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--erv-line);background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}.admin-bar .ervdemo-topbar{top:calc(var(--erv-banner) + 32px)}.ervdemo-company{display:flex;flex-direction:column;line-height:1.1}.ervdemo-company small{color:#969ba4;font-size:8px;font-weight:800;letter-spacing:.1em}.ervdemo-company b{margin-top:6px;font-size:14px}.ervdemo-top-actions{display:flex;align-items:center;gap:7px}.icon-btn{position:relative;width:40px;height:40px;display:grid;place-items:center;border:1px solid #e6e8eb;border-radius:10px;color:#6e747e;background:#fff;cursor:pointer;transition:color .2s ease,border-color .2s ease,transform .2s ease}.icon-btn:hover{transform:translateY(-2px);border-color:rgba(237,28,36,.35);color:var(--erv-primary)}.icon-btn.has-dot::after{position:absolute;top:8px;right:8px;width:6px;height:6px;content:"";border:2px solid #fff;border-radius:50%;background:var(--erv-primary)}.ervdemo-user{min-width:190px;display:flex;align-items:center;gap:10px;margin-left:6px;padding:6px 9px;border:0;border-left:1px solid var(--erv-line);background:transparent;text-align:left;cursor:pointer}.ervdemo-user>span{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;color:#fff;background:var(--erv-primary);font-size:10px;font-weight:850}.ervdemo-user>div{display:flex;flex:1;flex-direction:column;line-height:1.1}.ervdemo-user b{font-size:11px}.ervdemo-user small{margin-top:5px;color:#8a9099;font-size:8px}.ervdemo-user>i{color:#979ca5;font-style:normal}.ervdemo-mobile-menu{display:none;width:42px;height:42px;place-items:center;border:1px solid var(--erv-line);border-radius:10px;background:#fff}
.ervdemo-content{padding:34px}.ervdemo-view{display:none;animation:viewIn .28s ease}.ervdemo-view.active{display:block}@keyframes viewIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.ervdemo-page-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}.ervdemo-kicker{margin-bottom:9px;color:var(--erv-primary);font-size:9px;font-weight:900;letter-spacing:.14em}.ervdemo-page-head h2{margin:0;color:#171920;font-size:34px;line-height:1.05;letter-spacing:-.045em}.ervdemo-page-head p{margin:9px 0 0;color:var(--erv-muted);font-size:11px}.ervdemo-primary{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 17px;border:0;border-radius:11px;color:#fff;background:var(--erv-primary);font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 11px 25px rgba(237,28,36,.18);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.ervdemo-primary svg{width:16px}.ervdemo-primary:hover{transform:translateY(-3px);background:#d8161d;box-shadow:0 17px 32px rgba(237,28,36,.29)}

/* Dashboard */
.ervdemo-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.ervdemo-stats article{position:relative;overflow:hidden;min-height:126px;display:flex;align-items:end;justify-content:space-between;padding:20px;border:1px solid var(--erv-line);border-radius:17px;background:#fff;box-shadow:0 8px 25px rgba(17,19,26,.035);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.ervdemo-stats article::before{position:absolute;top:0;left:0;right:0;height:3px;content:"";background:#ccc}.ervdemo-stats article:hover{transform:translateY(-5px);border-color:rgba(237,28,36,.22);box-shadow:0 17px 40px rgba(17,19,26,.08)}.ervdemo-stats article>div{display:flex;flex-direction:column}.ervdemo-stats span{color:#8b919b;font-size:8px;font-weight:850;letter-spacing:.09em}.ervdemo-stats strong{margin:4px 0;color:#191b22;font-size:35px;line-height:1}.ervdemo-stats small{color:#9297a0;font-size:9px}.ervdemo-stats article>i{padding:5px 8px;border-radius:99px;font-size:8px;font-style:normal;font-weight:800}.stat-present::before{background:#2aaa67!important}.stat-present>i{color:#217f50;background:#e6f7ee}.stat-absent::before{background:#e1a52b!important}.stat-absent>i{color:#956c14;background:#fff5dd}.stat-missing::before{background:var(--erv-primary)!important}.stat-missing>i{color:#a40e16;background:#ffebec}.stat-hours::before{background:#3979dd!important}.stat-hours>i{color:#2f5fa8;background:#eaf1ff}.ervdemo-dashboard-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px}.ervdemo-card{padding:22px;border:1px solid var(--erv-line);border-radius:17px;background:#fff;box-shadow:0 8px 25px rgba(17,19,26,.03)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.card-head>div{display:flex;flex-direction:column}.card-head b{font-size:12px}.card-head small{margin-top:4px;color:#989da5;font-size:8px}.card-head>button{border:0;color:var(--erv-primary);background:transparent;font-size:9px;font-weight:800;cursor:pointer}.legend{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;color:#878d96;font-size:8px}.legend i{width:8px;height:8px;border-radius:3px;background:var(--erv-primary)}.week-chart{height:230px;display:grid;grid-template-columns:repeat(5,1fr);gap:21px;align-items:end;margin-top:18px;padding:12px 20px 4px;border-bottom:1px solid #e6e8eb;background:repeating-linear-gradient(to top,#fff 0,#fff 44px,#f0f1f3 45px)}.week-chart>div{height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center}.week-chart span{width:min(56px,75%);height:var(--h);border-radius:7px 7px 0 0;background:linear-gradient(to top,#b71119,var(--erv-primary));box-shadow:0 -10px 25px rgba(237,28,36,.1);transition:filter .2s ease,transform .2s ease}.week-chart>div:hover span{filter:brightness(1.15);transform:scaleX(1.08)}.week-chart small{width:100%;display:flex;justify-content:space-between;padding-top:8px;color:#858b94;font-size:7px;font-weight:800}.week-chart small em{color:#272a31;font-style:normal}.week-chart .today small{color:var(--erv-primary)}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:26px;min-height:240px}.donut{width:145px;height:145px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#2aaa67 0 80.8%,#e1a52b 80.8% 94.2%,var(--erv-primary) 94.2%);box-shadow:inset 0 0 0 1px #eee}.donut::before{position:absolute}.donut>div{width:98px;height:98px;display:grid;place-content:center;border-radius:50%;background:#fff;text-align:center}.donut strong{font-size:27px;line-height:1}.donut small{color:#9499a2;font-size:8px}.donut-wrap ul{display:grid;gap:11px;padding:0;margin:0;list-style:none}.donut-wrap li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;min-width:110px;color:#747a84;font-size:9px}.donut-wrap li i{width:8px;height:8px;border-radius:3px}.donut-wrap li i.present{background:#2aaa67}.donut-wrap li i.absent{background:#e1a52b}.donut-wrap li i.missing{background:var(--erv-primary)}.donut-wrap li b{color:#22252c;font-size:10px}.ervdemo-activity{grid-column:1}.activity-list{display:grid;margin-top:10px}.activity-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:11px 0;border-top:1px solid #eff0f2}.avatar{width:34px;height:34px;font-size:8px}.activity-list p{display:flex;flex-direction:column;margin:0}.activity-list p b{font-size:10px}.activity-list p small{margin-top:3px;color:#9297a0;font-size:8px}.activity-list>div>em{color:#a1a5ad;font-size:7px;font-style:normal}.ervdemo-actions-card{grid-column:2}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.quick-grid button{min-height:84px;display:flex;flex-direction:column;align-items:flex-start;padding:12px;border:1px solid #e7e9ec;border-radius:11px;background:#fafbfc;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.quick-grid button:hover{transform:translateY(-3px);border-color:rgba(237,28,36,.3);background:#fff6f6}.quick-grid button>span{color:var(--erv-primary);font-size:17px;font-weight:900}.quick-grid b{margin-top:7px;font-size:9px}.quick-grid small{color:#9a9fa7;font-size:7px}

/* Tools and tables */
.ervdemo-toolbar{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:11px 14px;border:1px solid var(--erv-line);border-radius:14px;background:#fff}.date-nav{display:flex;align-items:center;gap:8px}.date-nav button{width:32px;height:32px;border:1px solid #e3e5e8;border-radius:8px;background:#fff;cursor:pointer}.date-nav button:hover{color:var(--erv-primary);border-color:rgba(237,28,36,.35)}.date-nav b{padding:0 8px;font-size:10px}.filter-group{display:flex;gap:8px}.filter-group select,.filter-group input{height:38px;padding:0 11px;border:1px solid #dfe2e6;border-radius:9px;outline:0;color:#555c66;background:#fff;font-size:9px}.filter-group select:focus,.filter-group input:focus{border-color:var(--erv-primary);box-shadow:0 0 0 3px rgba(237,28,36,.08)}.filter-group input{min-width:190px}.ervdemo-table-card{overflow:auto;border:1px solid var(--erv-line);border-radius:15px;background:#fff;box-shadow:0 8px 25px rgba(17,19,26,.025)}.ervdemo-table-card table{width:100%;border-collapse:collapse;white-space:nowrap}.ervdemo-table-card th{height:46px;padding:0 15px;border-bottom:1px solid var(--erv-line);color:#90959e;background:#fafbfc;font-size:7px;font-weight:900;letter-spacing:.08em;text-align:left;text-transform:uppercase}.ervdemo-table-card td{height:58px;padding:8px 15px;border-bottom:1px solid #eff0f2;color:#545b65;font-size:9px}.ervdemo-table-card tr:last-child td{border-bottom:0}.ervdemo-table-card tbody tr{transition:background .18s ease}.ervdemo-table-card tbody tr:hover{background:#fff8f8}.person-cell{display:flex;align-items:center;gap:9px}.person-cell span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#fff;background:#353943;font-size:8px;font-weight:850}.person-cell div{display:flex;flex-direction:column}.person-cell b{color:#22252c;font-size:10px}.person-cell small{color:#9b9fa7;font-size:7px}.status{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:99px;font-size:7px;font-weight:850}.status::before{width:6px;height:6px;content:"";border-radius:50%}.status-present{color:#217f50;background:#e8f7ef}.status-present::before{background:#2aaa67}.status-absent{color:#8e6411;background:#fff4d9}.status-absent::before{background:#e1a52b}.status-missing{color:#a30d15;background:#ffeaeb}.status-missing::before{background:var(--erv-primary)}.status-approved{color:#2e63b1;background:#e9f1ff}.status-approved::before{background:#3979dd}.row-action{width:30px;height:30px;border:1px solid #e4e6e9;border-radius:8px;background:#fff;cursor:pointer}.row-action:hover{color:var(--erv-primary);border-color:rgba(237,28,36,.35)}

/* Schedule */
.schedule-card{overflow:auto;border:1px solid var(--erv-line);border-radius:15px;background:#fff}.schedule-head,.schedule-row{min-width:930px;display:grid;grid-template-columns:210px repeat(7,1fr)}.schedule-head{border-bottom:1px solid var(--erv-line);background:#fafbfc}.schedule-head>div{min-height:55px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #eceef0;color:#626974;font-size:8px;font-weight:850;text-transform:uppercase}.schedule-head>div:first-child{align-items:flex-start;padding-left:18px}.schedule-head small{margin-top:3px;color:#a1a5ad;font-size:6px}.schedule-head .today{color:var(--erv-primary);background:#fff7f7}.schedule-row{border-bottom:1px solid #eff0f2}.schedule-row:last-child{border-bottom:0}.schedule-person{min-height:82px;display:flex;align-items:center;gap:10px;padding:10px 16px;border-right:1px solid #eceef0}.schedule-person>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:#fff;background:#363a43;font-size:8px;font-weight:850}.schedule-person>div{display:flex;flex-direction:column}.schedule-person b{font-size:9px}.schedule-person small{color:#969ba4;font-size:7px}.shift-cell{min-height:82px;display:grid;place-items:center;padding:8px;border-right:1px solid #eceef0;cursor:pointer;transition:background .18s ease}.shift-cell:hover{background:#fff8f8}.shift-cell.today{background:#fffafa}.shift{width:100%;min-height:47px;display:grid;place-content:center;border-radius:9px;color:#315e9e;background:#e9f1ff;font-size:7px;text-align:center}.shift b{font-size:8px}.shift.late{color:#855f13;background:#fff3d7}.shift.off{color:#8c929b;background:#f0f1f3}.shift.off b{font-weight:600}

/* Absence / payroll / employees */
.absence-summary,.payroll-summary,.employee-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:15px}.absence-summary article,.payroll-summary article,.employee-summary article{display:flex;flex-direction:column;padding:18px;border:1px solid var(--erv-line);border-radius:14px;background:#fff}.absence-summary span,.payroll-summary span,.employee-summary span{color:#9297a0;font-size:7px;font-weight:850;letter-spacing:.08em}.absence-summary strong,.payroll-summary strong,.employee-summary strong{margin:5px 0;font-size:27px;line-height:1}.absence-summary small,.payroll-summary small{color:#999ea6;font-size:8px}.workflow{display:grid;grid-template-columns:repeat(5,1fr);margin-bottom:16px;padding:18px 20px;border:1px solid var(--erv-line);border-radius:15px;background:#fff}.workflow>div{position:relative;display:flex;align-items:center;gap:10px}.workflow>div:not(:last-child)::after{position:absolute;left:38px;right:5px;top:15px;height:2px;content:"";background:#e6e8eb}.workflow i{position:relative;z-index:1;width:30px;height:30px;display:grid;place-items:center;border:2px solid #dfe2e6;border-radius:50%;color:#a1a6ae;background:#fff;font-size:8px;font-style:normal;font-weight:850}.workflow span{display:flex;flex-direction:column}.workflow b{font-size:8px}.workflow small{color:#9da1a9;font-size:6px}.workflow .done i{border-color:#2aaa67;color:#fff;background:#2aaa67}.workflow .done::after{background:#2aaa67!important}.workflow .current i{border-color:var(--erv-primary);color:#fff;background:var(--erv-primary);box-shadow:0 0 0 5px rgba(237,28,36,.09)}.payroll-summary,.employee-summary{grid-template-columns:repeat(4,1fr)}.payroll-summary article:nth-child(1){border-top:3px solid #3979dd}.payroll-summary article:nth-child(2){border-top:3px solid var(--erv-primary)}.payroll-summary article:nth-child(3){border-top:3px solid #8059cc}.payroll-summary article:nth-child(4){border-top:3px solid #e1a52b}

/* Modal + toast */
.ervdemo-modal{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:20px}.ervdemo-modal[hidden]{display:none}.modal-backdrop{position:absolute;inset:0;background:rgba(10,11,15,.6);backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(540px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:30px;border-radius:20px;background:#fff;box-shadow:0 45px 100px rgba(0,0,0,.35);animation:modalIn .24s ease}@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}.modal-close{position:absolute;top:18px;right:18px;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--erv-line);border-radius:9px;background:#fff;cursor:pointer}.modal-close:hover{color:var(--erv-primary);border-color:rgba(237,28,36,.35)}.modal-card h3{margin:0 0 6px;font-size:25px;letter-spacing:-.035em}.modal-card>div>p{margin:0 0 22px;color:#7c828c;font-size:10px}.demo-form{display:grid;gap:13px}.demo-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.demo-form label{display:flex;flex-direction:column;gap:6px;color:#5d646e;font-size:9px;font-weight:780}.demo-form input,.demo-form select,.demo-form textarea{width:100%;min-height:43px;padding:9px 11px;border:1px solid #dfe2e6;border-radius:9px;outline:0;background:#fafbfc;font-size:10px}.demo-form input:focus,.demo-form select:focus,.demo-form textarea:focus{border-color:var(--erv-primary);box-shadow:0 0 0 3px rgba(237,28,36,.08);background:#fff}.demo-form textarea{min-height:80px;resize:vertical}.demo-form .ervdemo-primary{margin-top:5px}.ervdemo-toast{position:fixed;z-index:3500;right:25px;bottom:25px;min-width:340px;display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid rgba(255,255,255,.12);border-radius:14px;color:#fff;background:#16181f;box-shadow:0 25px 60px rgba(0,0,0,.32);transform:translateY(30px);opacity:0;pointer-events:none;transition:transform .28s ease,opacity .28s ease}.ervdemo-toast.show{transform:none;opacity:1}.ervdemo-toast>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#2aaa67;font-weight:900}.ervdemo-toast>div{display:flex;flex-direction:column}.ervdemo-toast b{font-size:10px}.ervdemo-toast small{margin-top:3px;color:#a4a8b0;font-size:8px}

@media(max-width:1150px){:root{--erv-sidebar:210px}.ervdemo-login{grid-template-columns:.72fr 1.28fr}.ervdemo-login-board{width:78%}.ervdemo-content{padding:26px}.ervdemo-stats{grid-template-columns:1fr 1fr}.ervdemo-dashboard-grid{grid-template-columns:1fr}.ervdemo-actions-card,.ervdemo-activity{grid-column:auto}.ervdemo-actions-card .quick-grid{grid-template-columns:repeat(4,1fr)}.ervdemo-role-grid{grid-template-columns:1fr}.ervdemo-login-brand{margin-bottom:35px}}
@media(max-width:850px){.ervdemo-login{grid-template-columns:1fr}.ervdemo-login-art{display:none}.ervdemo-login-content{width:min(620px,calc(100% - 36px));padding:35px 0}.ervdemo-login-brand{margin-bottom:30px}.ervdemo-sidebar{transform:translateX(-100%);transition:transform .25s ease}.ervdemo-sidebar.open{transform:none}.ervdemo-main{margin-left:0}.ervdemo-mobile-menu{display:grid}.ervdemo-topbar{padding:0 18px}.ervdemo-company{margin-right:auto;margin-left:12px}.ervdemo-content{padding:22px 18px}.absence-summary,.payroll-summary,.employee-summary{grid-template-columns:1fr 1fr}.workflow{overflow:auto;grid-template-columns:repeat(5,160px)}.ervdemo-banner{justify-content:space-between}.ervdemo-banner a{display:none}.admin-bar .ervdemo-sidebar{top:calc(var(--erv-banner) + 46px)}.admin-bar .ervdemo-topbar{top:calc(var(--erv-banner) + 46px)}.admin-bar .ervdemo-main{padding-top:calc(var(--erv-banner) + 46px)}}
@media(max-width:600px){:root{--erv-banner:42px;--erv-topbar:68px}.ervdemo-login-content h1{font-size:43px}.ervdemo-role-grid button{min-height:76px}.ervdemo-banner{height:var(--erv-banner);font-size:8px;text-align:center}.ervdemo-topbar{height:var(--erv-topbar)}.ervdemo-company small{display:none}.ervdemo-company b{font-size:11px}.icon-btn{display:none}.ervdemo-user{min-width:auto;border:0}.ervdemo-user>div,.ervdemo-user>i{display:none}.ervdemo-content{padding:20px 12px}.ervdemo-page-head{align-items:flex-start;flex-direction:column}.ervdemo-page-head h2{font-size:29px}.ervdemo-page-head .ervdemo-primary{width:100%}.ervdemo-stats{grid-template-columns:1fr 1fr;gap:8px}.ervdemo-stats article{min-height:112px;padding:14px}.ervdemo-stats strong{font-size:29px}.ervdemo-stats article>i{display:none}.ervdemo-card{padding:16px}.week-chart{gap:9px;padding-inline:4px}.donut-wrap{flex-direction:column}.ervdemo-actions-card .quick-grid{grid-template-columns:1fr 1fr}.ervdemo-toolbar{align-items:stretch;flex-direction:column}.filter-group{display:grid;grid-template-columns:1fr}.filter-group select,.filter-group input{width:100%;min-width:0}.absence-summary,.payroll-summary,.employee-summary{grid-template-columns:1fr 1fr;gap:8px}.absence-summary article,.payroll-summary article,.employee-summary article{padding:14px}.demo-form .form-row{grid-template-columns:1fr}.modal-card{padding:25px 18px}.ervdemo-toast{right:12px;bottom:12px;left:12px;min-width:0}.ervdemo-role-grid{gap:8px}.ervdemo-login-content>p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.ervdemo *{animation:none!important;transition:none!important}}

/* Demo welcome screen — v1.1 */
.ervdemo-login{position:relative;isolation:isolate;min-height:100vh;display:flex;overflow:hidden;flex-direction:column;padding:0 clamp(24px,5vw,92px);color:#fff;background:radial-gradient(circle at 12% 12%,rgba(237,28,36,.18),transparent 30%),radial-gradient(circle at 87% 82%,rgba(237,28,36,.12),transparent 27%),linear-gradient(135deg,#07080b 0%,#11131a 55%,#090a0e 100%)}
.ervdemo-login::before{position:absolute;z-index:-1;inset:0;content:"";opacity:.18;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent 88%)}
.ervdemo-login-glow{position:absolute;z-index:-1;border:1px solid rgba(237,28,36,.18);border-radius:50%;pointer-events:none}.ervdemo-login-glow::before,.ervdemo-login-glow::after{position:absolute;content:"";inset:12%;border:1px solid rgba(255,255,255,.035);border-radius:inherit}.ervdemo-login-glow::after{inset:25%;border-color:rgba(237,28,36,.09)}.glow-one{width:640px;height:640px;top:-370px;right:-150px}.glow-two{width:520px;height:520px;bottom:-360px;left:-170px}
.ervdemo-login-top{width:100%;max-width:1450px;height:104px;display:flex;align-items:center;justify-content:space-between;margin:0 auto;border-bottom:1px solid rgba(255,255,255,.08)}
.ervdemo-login .ervdemo-login-brand{display:flex;align-items:center;gap:13px;margin:0;color:#fff}.ervdemo-login .ervdemo-login-brand>span{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--erv-primary);font-size:18px;font-weight:900;box-shadow:0 14px 32px rgba(237,28,36,.28)}.ervdemo-login .ervdemo-login-brand>div{display:flex;flex-direction:column}.ervdemo-login .ervdemo-login-brand b{font-size:15px;letter-spacing:-.01em}.ervdemo-login .ervdemo-login-brand small{margin-top:5px;color:#7f858f;font-size:9px;letter-spacing:.03em}
.ervdemo-login .ervdemo-back-link{display:flex;align-items:center;gap:11px;margin:0;color:#9da2ac;font-size:11px;font-weight:720}.ervdemo-login .ervdemo-back-link span{width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.13);border-radius:50%;color:#fff;transition:border-color .2s ease,background .2s ease,transform .2s ease}.ervdemo-login .ervdemo-back-link:hover{color:#fff;transform:none}.ervdemo-login .ervdemo-back-link:hover span{transform:translate(2px,-2px);border-color:var(--erv-primary);background:var(--erv-primary)}
.ervdemo-login-layout{width:100%;max-width:1450px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(440px,.92fr);align-items:center;gap:clamp(45px,7vw,120px);flex:1;margin:0 auto;padding:52px 0 64px}
.ervdemo-login-intro{max-width:720px}.ervdemo-login .ervdemo-demo-pill{width:max-content;display:flex;align-items:center;gap:10px;padding:8px 13px;border:1px solid rgba(237,28,36,.3);border-radius:99px;color:#ff8d92;background:rgba(237,28,36,.08);font-size:9px;font-weight:850;letter-spacing:.14em}.ervdemo-login .ervdemo-demo-pill i{width:7px;height:7px;border-radius:50%;background:#ff2a33;box-shadow:0 0 0 5px rgba(237,28,36,.12)}
.ervdemo-login-intro h1{max-width:760px;margin:24px 0 21px;color:#fff;font-size:clamp(48px,5vw,78px);line-height:.99;letter-spacing:-.058em}.ervdemo-login-intro h1 em{color:var(--erv-primary);font-style:normal}.ervdemo-login-intro>p{max-width:650px;margin:0;color:#a8adb7;font-size:15px;line-height:1.75}
.ervdemo-login-points{display:flex;flex-wrap:wrap;gap:20px;margin-top:25px;color:#d5d7dc;font-size:10px;font-weight:700}.ervdemo-login-points span{display:flex;align-items:center;gap:7px}.ervdemo-login-points i{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;color:#fff;background:rgba(237,28,36,.16);font-size:9px;font-style:normal}
.ervdemo-login-preview{width:min(650px,100%);height:215px;margin-top:37px;padding:17px 20px 0;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.055);box-shadow:0 28px 80px rgba(0,0,0,.24);backdrop-filter:blur(16px)}.preview-head{display:flex;align-items:center;gap:8px}.preview-head .mini-brand{width:31px;height:31px;border-radius:9px;font-size:11px}.preview-head>i{width:7px;height:7px;margin-left:auto;border-radius:50%;background:rgba(255,255,255,.16)}.preview-head>i+ i{margin-left:0}.preview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.preview-stats>span{display:grid;padding:11px 13px;border:1px solid rgba(255,255,255,.07);border-radius:11px;background:rgba(255,255,255,.055)}.preview-stats small{color:#858a94;font-size:7px;font-weight:800;letter-spacing:.08em}.preview-stats b{margin-top:3px;font-size:22px}.preview-stats em{margin-top:2px;color:#7f858e;font-size:7px;font-style:normal}.preview-chart{height:75px;display:flex;align-items:end;gap:11px;margin-top:10px;padding:0 16px;border-radius:11px 11px 0 0;background:rgba(0,0,0,.16)}.preview-chart span{flex:1;max-width:65px;border-radius:4px 4px 0 0;background:linear-gradient(#ff3a42,var(--erv-primary));box-shadow:0 -8px 20px rgba(237,28,36,.11)}
.ervdemo-login-panel{width:100%;max-width:560px;justify-self:end;padding:40px;border:1px solid rgba(255,255,255,.8);border-radius:28px;color:#171920;background:rgba(255,255,255,.975);box-shadow:0 40px 100px rgba(0,0,0,.36)}.panel-kicker{display:flex;align-items:center;justify-content:space-between;color:var(--erv-primary);font-size:9px;font-weight:850;letter-spacing:.13em}.panel-kicker span{color:#a4a8af}.ervdemo-login-panel h2{margin:18px 0 10px;font-size:clamp(30px,3vw,44px);line-height:1.05;letter-spacing:-.045em}.ervdemo-login-panel>p{margin:0 0 25px;color:#737985;font-size:12px;line-height:1.65}
.ervdemo-login-panel .ervdemo-role-grid{display:grid;grid-template-columns:1fr;gap:9px}.ervdemo-login-panel .ervdemo-role-grid button{position:relative;min-height:76px;display:grid;overflow:hidden;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 15px;border:1px solid #e6e7ea;border-radius:14px;background:#fff;text-align:left;cursor:pointer;box-shadow:none;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.ervdemo-login-panel .ervdemo-role-grid button::after{position:absolute;right:0;bottom:0;left:0;height:2px;content:"";background:var(--erv-primary);transform:scaleX(0);transform-origin:left;transition:transform .32s ease}.ervdemo-login-panel .ervdemo-role-grid button:hover{transform:translateY(-2px);border-color:#ffc9cc;background:#fff;box-shadow:0 13px 30px rgba(17,19,26,.08)}.ervdemo-login-panel .ervdemo-role-grid button:hover::after{transform:scaleX(1)}.ervdemo-login-panel .role-avatar{width:48px;height:48px}.ervdemo-login-panel .ervdemo-role-grid b{color:#171920;font-size:13px}.ervdemo-login-panel .ervdemo-role-grid small{margin-top:4px;color:#8b9099;font-size:9px}.ervdemo-login-panel .ervdemo-role-grid button>i{width:29px;height:29px;display:grid;place-items:center;border:1px solid #eceef0;border-radius:50%;color:#9ba0a8;font-size:14px;font-style:normal;transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease}.ervdemo-login-panel .ervdemo-role-grid button:hover>i{transform:translateX(2px);border-color:var(--erv-primary);color:#fff;background:var(--erv-primary)}
.ervdemo-panel-note{display:flex;align-items:flex-start;gap:10px;margin-top:17px;padding-top:16px;border-top:1px solid #eceef1}.ervdemo-panel-note>span{width:20px;height:20px;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;color:#7e848d;background:#f0f1f3;font-family:serif;font-size:11px;font-weight:800}.ervdemo-panel-note p{margin:2px 0 0;color:#8b9098;font-size:9px;line-height:1.55}
.ervdemo-login-foot{width:100%;max-width:1450px;min-height:56px;display:flex;align-items:center;justify-content:space-between;margin:0 auto;border-top:1px solid rgba(255,255,255,.07);color:#5f646e;font-size:8px;font-weight:750;letter-spacing:.12em}
.admin-bar .ervdemo-login{min-height:calc(100vh - 32px)}
@media(max-width:1120px){.ervdemo-login-layout{grid-template-columns:minmax(0,1fr) minmax(410px,.9fr);gap:35px}.ervdemo-login-intro h1{font-size:52px}.ervdemo-login-preview{height:190px}.ervdemo-login-panel{padding:30px}}
@media(max-width:850px){.ervdemo-login{display:flex;padding:0 20px}.ervdemo-login-top{height:84px}.ervdemo-login-layout{grid-template-columns:1fr;gap:35px;padding:38px 0 50px}.ervdemo-login-intro{max-width:650px;margin:0 auto;text-align:center}.ervdemo-login .ervdemo-demo-pill{margin:0 auto}.ervdemo-login-intro h1{font-size:clamp(42px,9vw,62px)}.ervdemo-login-intro>p{margin-inline:auto}.ervdemo-login-points{justify-content:center}.ervdemo-login-preview{display:none}.ervdemo-login-panel{max-width:650px;justify-self:center}.ervdemo-login-foot{padding:15px 0;text-align:center}.ervdemo-login-foot span:last-child{display:none}}
@media(max-width:560px){.ervdemo-login{padding:0 14px}.ervdemo-login-top{height:74px}.ervdemo-login .ervdemo-login-brand>span{width:40px;height:40px;border-radius:11px;font-size:15px}.ervdemo-login .ervdemo-login-brand b{font-size:13px}.ervdemo-login .ervdemo-login-brand small{font-size:8px}.ervdemo-login .ervdemo-back-link{font-size:0}.ervdemo-login .ervdemo-back-link span{font-size:13px}.ervdemo-login-layout{padding:30px 0 38px}.ervdemo-login-intro h1{margin:19px 0 16px;font-size:40px}.ervdemo-login-intro>p{font-size:13px}.ervdemo-login-points{gap:12px;margin-top:20px}.ervdemo-login-points span{font-size:8px}.ervdemo-login-panel{padding:23px 15px;border-radius:21px}.ervdemo-login-panel h2{font-size:31px}.ervdemo-login-panel .ervdemo-role-grid button{min-height:72px;padding:10px 12px}.ervdemo-login-panel .role-avatar{width:44px;height:44px}.ervdemo-login-foot{justify-content:center}}
