:root{color:#17202a;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--space-5: 24px;--space-6: 32px;--radius: 8px;--border: #dce3ea;--muted: #5b6978}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f6f8}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}h1{font-size:28px;margin-bottom:0}h2{font-size:18px;margin-bottom:var(--space-4)}.login-page{min-height:100vh;display:grid;grid-template-columns:47.6% 52.4%;align-items:center;overflow:hidden;background:#06153e url(/login/workplace-background.png) center / cover no-repeat;padding:28px 24px 28px 64px}.login-hero{align-self:stretch;position:relative;color:#fff}.login-logo{position:absolute;top:13.7%;left:5.8%;width:clamp(106px,10vw,148px);height:auto}.login-hero-copy{position:absolute;top:35.5%;left:5.8%}.login-hero-copy h1{margin:0;color:#fff;font-size:clamp(36px,3.05vw,46px);line-height:1.23;letter-spacing:-.7px;font-weight:750}.login-hero-copy h1 span{color:#1975ff}.login-accent{width:90px;height:4px;margin:21px 0 15px;background:#1975ff}.login-hero-copy p{width:fit-content;margin:0 0 0 -14px;padding:10px 14px;color:#fff;background:linear-gradient(90deg,rgba(3,14,46,.82),rgba(3,14,46,.5) 78%,transparent);border-radius:10px;text-shadow:0 2px 8px rgba(0,0,0,.85);font-size:clamp(17px,1.42vw,22px);line-height:1.48;font-weight:450}.login-panel{justify-self:end;width:min(497px,100%);height:min(548px,calc(100vh - 56px));min-height:0;margin-right:clamp(20px,3vw,46px);display:grid;align-content:center;background:#fff;border:0;border-radius:28px;padding:30px 38px;box-shadow:0 18px 55px #000c3629}.login-brand{display:grid;justify-items:center;gap:7px;text-align:center}.login-panel h2{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;font-size:clamp(28px,2.1vw,32px);line-height:1.15;color:#050505;font-weight:750}.login-panel h2 img{width:30px;height:30px}.login-brand p,.login-intro,.login-copyright{color:#282828;font-weight:300}.login-brand p{margin:0;font-size:14px}.login-intro{max-width:570px;margin:17px auto 20px;text-align:center;font-size:14px;line-height:1.45}.login-panel form{display:grid;gap:14px}.login-panel label,.field{display:grid;gap:5px}.login-panel label,.field span{color:#111;font-size:14px;font-weight:700}.login-panel label input{min-height:50px;margin-top:3px;border:2px solid #d5d5d5;border-radius:12px;padding:0 16px;color:#222;font-size:15px;font-weight:300;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.login-panel label input::placeholder{color:#9a9a9a;opacity:1}.login-panel label input:focus{border-color:#1f73f7;box-shadow:0 0 0 3px #1f73f724}.login-options{display:flex;align-items:center;justify-content:space-between;margin:0 4px 3px}.login-options .remember-option{display:flex;grid-auto-flow:column;align-items:center;gap:10px;cursor:pointer}.remember-option input{position:absolute;width:1px;height:1px;opacity:0}.custom-checkbox{width:26px;height:26px;display:grid;place-items:center;border-radius:5px;border:2px solid #1f73f7;color:transparent}.remember-option input:checked+.custom-checkbox{color:#fff;background:#1f73f7}.remember-option input:focus-visible+.custom-checkbox{outline:3px solid rgba(31,115,247,.25);outline-offset:2px}.login-help{justify-self:auto;color:#092dd0;font-size:14px}.login-submit{min-height:54px;display:flex;align-items:center;justify-content:center;gap:20px;border:0;border-radius:999px;background:#2075f9;color:#fff;font-size:18px;font-weight:700;transition:background .16s ease,transform .16s ease}.login-submit:hover:not(:disabled){background:#1267e9;transform:translateY(-1px)}.login-submit:focus-visible{outline:4px solid rgba(31,115,247,.3);outline-offset:3px}.login-submit:disabled{cursor:wait;opacity:.72}.login-back{justify-self:center;margin-top:18px;color:#092dd0;font-size:15px}.login-copyright{margin:14px 0 0;text-align:center;font-size:13px}.input-with-icon,.search-box{display:flex;align-items:center;gap:var(--space-2);min-height:42px;padding:0 12px;background:#fff;border:1px solid #cfd9e2;border-radius:var(--radius)}input,select,textarea{width:100%;color:#17202a;background:#fff;border:1px solid #cfd9e2;border-radius:var(--radius);padding:10px 12px}.input-with-icon input,.search-box input{border:0;padding:0;outline:0}.brand-mark{width:56px;height:56px;display:grid;place-items:center;border-radius:var(--radius);background:#1f7a5c;color:#fff;font-weight:800}.brand-mark.small{width:36px;height:36px;font-size:14px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid var(--border);padding:var(--space-5) 16px}.logo-row,.topbar,.toolbar,.status-strip,.row-actions,.modal-actions,.legend{display:flex;align-items:center;gap:var(--space-3)}.logo-row{margin-bottom:var(--space-6)}.sidebar nav{display:grid;gap:8px}.sidebar a{display:flex;align-items:center;gap:var(--space-2);min-height:42px;padding:10px 12px;color:#465565;text-decoration:none;border-radius:var(--radius)}.sidebar a.active,.sidebar a:hover{color:#11362c;background:#e5f3ed}.workspace{min-width:0}.topbar{min-height:68px;padding:16px 28px;background:#fff;border-bottom:1px solid var(--border)}.topbar .search-box{flex:1;max-width:560px}.user-menu{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);white-space:nowrap}.topbar-avatar{width:34px;height:34px;border-radius:999px;object-fit:cover;border:1px solid var(--border);background:#eef2f6;box-shadow:0 0 0 3px #1f7a5c1f,0 0 14px #1f7a5c38}.topbar-avatar.initials{display:grid;place-items:center;color:#fff;background:#2b6cb0;font-size:12px;font-weight:800}.main-content{padding:var(--space-6)}.main-content>section{display:grid;gap:var(--space-5)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:0}.page-actions{display:flex;align-items:center;gap:var(--space-3)}.primary-button,.secondary-button,.icon-button,.filters button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius);padding:0 16px;font-weight:700}.primary-button{color:#fff;background:#1f7a5c}button:disabled{cursor:not-allowed;opacity:.55}.secondary-button,.filters button{color:#243344;background:#e9eef3}.filters button.active-filter{color:#fff;background:#1f7a5c}.icon-button{width:40px;padding:0;position:relative;color:#243344;background:#eef2f6}.icon-button.success{color:#137a3f;background:#e4f7ec}.icon-button.danger{color:#a83232;background:#f8eaea}.badge{position:absolute;top:-5px;right:-5px;min-width:18px;min-height:18px;border-radius:999px;padding:0 5px;background:#d9480f;color:#fff;font-size:11px}.form-error{margin:0;color:#9b1c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:var(--radius);padding:10px 12px}.form-success{margin:0;color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:var(--radius);padding:10px 12px}.link-button{border:0;padding:0;color:#1f7a5c;background:transparent;font-weight:750}.login-help{justify-self:center}.status-strip,.panel,.profile-band,.table-wrap,.notification-center{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.toolbar,.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.date-range-filter{display:flex;align-items:center;gap:var(--space-2)}.date-range-filter input{width:155px}.status-strip{justify-content:space-between;flex-wrap:wrap}.status-strip span{display:inline-flex;align-items:center;gap:8px}.clock-icon.clock-in{color:#16a34a}.clock-icon.clock-out{color:#f59e0b}.status-pill{min-height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);padding:0 12px;color:#475569;background:#e2e8f0;font-size:13px;font-weight:800;line-height:1}.status-pill.present{color:#166534;background:#dcfce7}.status-pill.late{color:#854d0e;background:#fef3c7}.status-pill.absent{color:#991b1b;background:#fee2e2}.status-pill.missing_clock_out{color:#9a3412;background:#ffedd5}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:var(--space-4)}.summary-grid.three{grid-template-columns:repeat(3,minmax(150px,1fr))}.summary-grid.four{grid-template-columns:repeat(4,minmax(150px,1fr))}.summary-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.summary-card span{display:block;color:var(--muted);font-size:13px}.summary-card strong{display:block;margin-top:8px;font-size:26px}.summary-card.green{border-left:4px solid #2f9e44}.summary-card.amber{border-left:4px solid #f08c00}.summary-card.red{border-left:4px solid #c92a2a}.summary-card.blue{border-left:4px solid #2b6cb0}.content-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:var(--space-5)}.table-wrap{overflow-x:auto;padding:0}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);color:var(--muted);font-size:14px}.pagination-bar strong{color:#334155;font-size:13px}.attendance-shell{grid-template-columns:326px minmax(0,1fr);color:#171928;background:#fafafd}.attendance-shell .sidebar{min-height:100vh;display:flex;flex-direction:column;padding:34px 18px 24px;background:#dceaff;border-right:1px solid #d4dbe7}.attendance-shell .logo-row{min-height:90px;margin:0 30px 20px}.attendance-shell .logo-row img{width:90px;height:90px;object-fit:contain}.attendance-shell .sidebar nav{gap:10px}.attendance-shell .sidebar a{min-height:52px;gap:18px;padding:0 30px;color:#080b12;border-radius:11px;font-size:18px;font-weight:550}.attendance-shell .sidebar a svg{width:21px;height:21px;stroke-width:2.4}.attendance-shell .sidebar a.active,.attendance-shell .sidebar a:hover{color:#fff;background:#619df4}.sidebar-profile{min-height:92px;display:grid;grid-template-columns:54px minmax(0,1fr) 28px;align-items:center;gap:12px;margin-top:auto;padding:14px 12px;background:#fff;border:1px solid #ccd4df;border-radius:12px;box-shadow:0 2px 5px #1c293d38}.sidebar-profile>img,.sidebar-profile>.topbar-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover}.sidebar-profile div{min-width:0;display:grid;gap:3px}.sidebar-profile strong{overflow:hidden;text-overflow:ellipsis;font-size:14px;white-space:nowrap}.sidebar-profile div span{overflow:hidden;color:#687181;font-size:12px;text-transform:capitalize;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu-button{width:28px;height:38px;border:0;padding:0;color:#111827;background:transparent}.attendance-shell .topbar{min-height:82px;padding:14px 40px;border-bottom:0;border-radius:0 0 0 25px;box-shadow:0 3px #131f321f}.attendance-shell .topbar .search-box{max-width:720px;min-height:54px;border:0;padding:0;background:transparent}.attendance-shell .topbar .search-box svg{width:31px;height:31px;color:#176cf1;stroke-width:2.5}.attendance-shell .topbar .search-box input{padding-left:20px;border:0;font-size:25px;font-weight:350}.attendance-shell .topbar .search-box input:focus{outline:0}.attendance-shell .topbar>.icon-button{display:none}.attendance-shell .topbar .user-menu{gap:0}.attendance-shell .topbar .user-menu>span:not(.topbar-avatar),.attendance-shell .topbar .user-menu>button{display:none}.attendance-shell .topbar-avatar{width:54px;height:54px}.attendance-shell .main-content{padding:58px 40px 48px}.attendance-shell .main-content>section{gap:32px}.attendance-page .page-header h1{font-size:24px;line-height:1.25;font-weight:800}.attendance-punch-panel{min-height:112px;display:grid;grid-template-columns:190px 190px minmax(240px,1fr);align-items:center;gap:var(--space-5);padding:var(--space-5);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.attendance-punch{min-height:72px;display:grid;place-content:center;gap:4px;border-radius:var(--radius);background:#fff;font-size:17px}.attendance-punch span{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:750}.attendance-punch time{font-size:14px}.attendance-punch.clock-in{color:#3bbf69;border:1.5px solid #55c67c;background:#effbf3}.attendance-punch.clock-in time{color:#111}.attendance-punch.clock-out{color:#ee131d;border:1.5px solid #ff6f73;background:#fff6f6}.attendance-punch.clock-out time{color:#111}.attendance-punch:disabled{opacity:.58}.attendance-location{display:flex;align-items:center;gap:var(--space-4)}.location-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;color:#1c55da;background:#eef5ff;border-radius:50%}.attendance-location div{display:grid;gap:3px}.attendance-location strong{font-size:15px}.attendance-location em{color:#42c36d;font-style:normal}.attendance-location div span{color:#353843;font-size:13px}.attendance-filters{min-height:68px;padding:14px var(--space-5);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.attendance-filters>strong{margin-right:4px;font-size:16px}.attendance-filters button{min-height:36px;padding:0 13px;border:1px solid #dce3ed;color:#252a3d;background:#fff;font-size:14px;font-weight:450}.attendance-filters button.active-filter{border-color:#2877f4;color:#2877f4;background:#f5f9ff}.attendance-filters .date-range-filter{flex-basis:100%;margin-left:62px}.attendance-table-wrap{overflow:hidden;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.attendance-table{min-width:820px}.attendance-table th{height:52px;padding:12px 24px;color:#303446;background:#f7f8fb;font-size:14px;font-weight:600}.attendance-table td{height:68px;padding:12px 24px;color:#303446;border-bottom:1px solid #d6d7da;font-size:14px}.attendance-table tbody tr:last-child td{border-bottom:0}.attendance-table td:first-child{display:table-cell}.attendance-table td:first-child strong,.attendance-table td:first-child span{display:block}.attendance-table td:first-child strong{font-weight:450}.attendance-table td:first-child span{margin-top:3px;color:#9298ad}.attendance-status{min-width:88px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:3px 12px;border-radius:6px;color:#354052;background:#f0f3f7;border:1px solid #d5dce5;text-transform:capitalize}.attendance-status.present{color:#2d6e46;background:#edfbf2;border-color:#9ee0b7}.attendance-status.late{color:#f07d2e;background:#fff8ef;border-color:#ffd39e}.attendance-status.absent,.attendance-status.missing_clock_out{color:#d83838;background:#fff1f1;border-color:#ffc1c1}.location-link{display:inline-flex;align-items:center;gap:8px;color:#1459dc;text-decoration:none}.location-missing{color:#ef3c45}.attendance-page .pagination-bar{padding:0 6px}@media(max-width:1180px){.attendance-shell{grid-template-columns:245px minmax(0,1fr)}.attendance-shell .sidebar a{padding-inline:20px;font-size:16px}.attendance-punch-panel{grid-template-columns:repeat(2,minmax(180px,1fr));gap:18px;padding:24px}.attendance-location{grid-column:1 / -1}.attendance-table th,.attendance-table td{padding-inline:28px}}@media(max-width:820px){.attendance-shell{display:block}.attendance-shell .sidebar{min-height:auto;padding:12px}.attendance-shell .logo-row,.attendance-shell .sidebar-profile{display:none}.attendance-shell .sidebar nav{display:flex;overflow-x:auto;gap:8px}.attendance-shell .sidebar a{min-width:max-content;min-height:44px;padding:0 14px;font-size:14px}.attendance-shell .topbar{min-height:68px;padding:8px 18px;border-radius:0}.attendance-shell .topbar .search-box input{font-size:18px}.attendance-shell .topbar .search-box svg{width:24px;height:24px}.attendance-shell .topbar-avatar{width:42px;height:42px}.attendance-shell .main-content{padding:28px 18px}.attendance-shell .main-content>section{gap:20px}.attendance-punch-panel{border-radius:24px}}@media(max-width:600px){.attendance-page .page-header h1{font-size:26px}.attendance-punch-panel{grid-template-columns:1fr;padding:18px}.attendance-location{grid-column:auto}.attendance-punch span{font-size:23px}.attendance-filters{align-items:stretch;padding:18px}.attendance-filters>strong{flex-basis:100%}.attendance-filters button{flex:1 1 42%}.attendance-filters .date-range-filter{margin-left:0}.attendance-filters .date-range-filter input{width:100%}.attendance-table-wrap{overflow:visible;box-shadow:none;background:transparent}.attendance-table{min-width:0}.attendance-table thead{display:none}.attendance-table tbody,.attendance-table tr,.attendance-table td{display:block;width:100%}.attendance-table tr{margin-bottom:14px;padding:14px 16px;background:#fff;border-radius:14px;box-shadow:0 2px 5px #1a233326}.attendance-table td,.attendance-table td:first-child{min-height:38px;height:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;border:0;text-align:right}.attendance-table td:before{content:attr(data-label);color:#677083;font-size:13px;font-weight:700}.attendance-table td:first-child strong,.attendance-table td:first-child span{display:inline}.attendance-page .pagination-bar{align-items:stretch;flex-direction:column}}table{width:100%;min-width:720px;border-collapse:collapse}th,td{text-align:left;padding:14px 18px;border-bottom:1px solid #edf1f5;white-space:nowrap}th{color:#526171;font-size:13px;background:#f8fafc}.empty-cell{color:#667586;text-align:center}.report-filters,.two-col,.detail-grid{display:grid;gap:var(--space-3)}.report-panel{display:grid;gap:var(--space-4)}.report-filters{grid-template-columns:repeat(5,minmax(150px,1fr));align-items:end}.report-actions{justify-content:flex-end;padding-top:var(--space-1)}.reports-page{position:relative;min-width:0;gap:28px!important;color:#171928}.reports-heading{position:relative;min-height:70px;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:16px}.reports-title-icon{width:56px;height:56px;display:grid;place-items:center;color:#1872f7;background:#dbe9ff;border-radius:50%}.reports-heading h1{margin:0 0 3px;color:#05070b;font-size:28px;font-weight:800}.reports-heading p{margin:0;color:#5d626b;font-size:16px}.report-history-button{min-height:38px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid #bcc3cc;border-radius:7px;color:#23252b;background:#fff;font-weight:600}.report-history-popover{position:absolute;top:62px;right:0;z-index:5;width:280px;display:grid;gap:8px;padding:16px;border:1px solid #d3d8df;border-radius:10px;background:#fff;box-shadow:0 12px 32px #202a3926}.report-history-popover>button{display:grid;gap:2px;padding:9px 10px;border:0;border-radius:7px;color:#212936;background:#f5f7fa;text-align:left}.report-history-popover small{color:#747b87}.report-builder{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:30px;padding:22px 28px;border:1px solid #bdc3cb;border-radius:20px;background:#fff}.report-filter-grid{min-width:0;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(300px,1.2fr);gap:20px 28px}.report-builder label{gap:7px;color:#1d2027;font-size:15px;font-weight:600}.report-builder select,.report-builder input{min-height:40px;border-color:#c2c8d0;border-radius:6px;color:#555a63;background:#fff}.report-date-fields>label>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.report-date-fields input{width:100%;min-width:0}.report-builder-actions{align-self:end;display:grid;gap:14px;padding-bottom:1px}.generate-report-button{min-height:42px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:5px;color:#fff;background:#2475ed;font-weight:650}.report-builder-actions>div{display:grid;grid-template-columns:1fr 1fr;gap:14px}.report-builder-actions>div button{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #c4c9d0;border-radius:6px;color:#5a5e66;background:#fff}.report-builder-actions>div button.excel{color:#25a45d}.report-summary-grid{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:0 16px}.report-summary{min-height:92px;display:flex;align-items:center;gap:15px;padding:14px 20px;border:1px solid #bcc3cc;border-radius:10px;background:#fff}.report-summary>span{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:50%;color:#2075ed;background:#e5e7e9}.report-summary.green>span{color:#20ae59}.report-summary.amber>span{color:#f6a400}.report-summary div{display:grid;line-height:1.15}.report-summary small{color:#1c2028;font-size:14px}.report-summary strong{margin-top:4px;color:#2375ed;font-size:25px}.report-summary.green strong{color:#20af5b}.report-summary.amber strong{color:#f5a000}.report-table-card{min-width:0;overflow:hidden;border:1px solid #c0c5cc;border-radius:20px;background:#fff;box-shadow:0 4px 7px #232a3438}.report-table-card h2{margin:0;padding:18px 28px 14px;border-bottom:1px solid #c9ced5;font-size:18px;font-weight:600}.report-table-scroll{width:100%;min-width:0;overflow-x:auto}.report-results-table{min-width:850px}.report-results-table th{height:54px;padding:12px 28px;color:#1e2229;background:#fff;font-size:14px;font-weight:600}.report-results-table td{height:66px;padding:10px 28px;border-bottom-color:#d0d4da;color:#1f232a;font-size:14px}.report-results-table tbody tr:last-child td{border-bottom:0}.report-results-table td>small{display:block;margin-top:2px}.report-results-table .positive{color:#20b762}.report-results-table .negative{color:#ff3448}.report-results-table .warning{color:#f3a000}.report-employee{display:flex;align-items:center;gap:10px}.report-employee>img,.report-employee>span{width:33px;height:33px;flex:0 0 33px;display:grid;place-items:center;border-radius:50%;object-fit:cover;color:#fff;background:#5d93e5;font-weight:700}.report-employee div{display:grid}.report-employee strong{font-size:13px;font-weight:600}.report-employee small{color:#969ba4;font-size:12px}.report-status{display:inline-flex;padding:4px 10px;border-radius:999px;text-transform:capitalize}.report-status.approved{color:#167d42;background:#e5f8ed}.report-status.pending{color:#9a6800;background:#fff4d6}.report-status.rejected{color:#a42b36;background:#fee8ea}@media(min-width:981px)and (max-width:1400px){.reports-page{gap:24px!important}.report-builder{grid-template-columns:minmax(0,1fr) minmax(230px,260px);gap:22px;padding:20px 22px}.report-filter-grid{grid-template-columns:minmax(180px,.78fr) minmax(275px,1.22fr);gap:18px 22px}.report-builder-actions{gap:12px}.report-builder-actions>div{gap:10px}.report-builder-actions>div button{padding-inline:8px;font-size:13px}.report-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0}.report-summary{min-height:86px;gap:10px;padding:12px}.report-summary>span{width:46px;height:46px;flex-basis:46px}.report-summary strong{font-size:21px}.report-results-table th,.report-results-table td{padding-inline:18px}}@media(max-width:980px){.report-builder{grid-template-columns:1fr}.report-builder-actions{grid-template-columns:minmax(190px,.7fr) minmax(280px,1fr);align-items:center}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0}}@media(max-width:700px){.reports-heading{grid-template-columns:48px 1fr}.reports-title-icon{width:48px;height:48px}.report-history-button{grid-column:1 / -1;justify-self:start}.report-history-popover{top:106px;left:0;right:auto}.report-builder{padding:18px;border-radius:14px}.report-filter-grid,.report-builder-actions,.report-summary-grid{grid-template-columns:1fr}.report-table-card{border-radius:14px}}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.calendar-header h2{margin-bottom:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(88px,1fr));border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--border);gap:1px}.calendar-grid>*{background:#fff}.calendar-grid b{min-height:44px;display:grid;place-items:center;color:#526171;background:#f8fafc;font-size:13px;letter-spacing:.02em}.calendar-day{min-height:116px;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px;position:relative}.calendar-day small{width:30px;height:30px;margin-left:auto;display:grid;place-items:center;border-radius:999px;color:#1f2937;font-size:13px;font-weight:800;line-height:1}.calendar-day.muted-day{background:#f8fafc}.calendar-day.muted-day small{color:#9aa6b2}.calendar-day.today{background:#edf8f3;box-shadow:inset 0 0 0 2px #1f7a5c}.calendar-day.today small{color:#fff;background:#1f7a5c}.event-stack{display:grid;gap:6px;margin-top:auto}.event-chip{min-height:24px;display:flex;align-items:center;border-radius:6px;padding:3px 8px;color:#243344;font-size:12px;font-style:normal;font-weight:700;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-grid.compact>*{min-height:58px}.dashboard-calendar b{min-height:36px;font-size:12px}.dashboard-calendar-cell{min-height:68px;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:6px;padding:8px}.dashboard-calendar-cell small{width:24px;height:24px;display:grid;place-items:center;border-radius:999px;color:#334155;font-size:12px;font-weight:800}.dashboard-calendar-cell.holiday{background:#fff7ed}.dashboard-calendar-cell.leave{background:#f0f9ff}.dashboard-calendar-cell.present{background:#f0fdf4}.event-chip.holiday{color:#7c2d12;background:#ffedd5}.event-chip.leave{color:#075985;background:#e0f2fe}.event-chip.present{color:#166534;background:#dcfce7}.event-chip.late{color:#854d0e;background:#fef3c7}.event-chip.absent,.event-chip.missing_clock_out{color:#991b1b;background:#fee2e2}.event-chip.more{color:#475569;background:#e2e8f0}.legend{margin-top:var(--space-3);flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:7px;color:#526171;font-size:13px;font-weight:700}.legend span:before{content:"";width:10px;height:10px;border-radius:999px;background:#cbd5e1}.legend .holiday:before{background:#fb923c}.legend .leave:before{background:#38bdf8}.legend .present:before{background:#22c55e}.legend .absent:before{background:#ef4444}.legend .late:before{background:#f59e0b}.legend .today:before{background:#1f7a5c}.notification-list,.notification-center{list-style:none;padding-left:0;margin:0}.notification-list li,.notification-center li{display:flex;justify-content:space-between;gap:var(--space-3);padding:10px 0;border-bottom:1px solid #edf1f5}.notification-list li{color:#334155;font-size:13px}.notification-center li{align-items:flex-start;cursor:pointer}.notification-list li:first-child,.notification-center li:first-child{padding-top:0}.notification-list li:last-child,.notification-center li:last-child{padding-bottom:0;border-bottom:0}.notification-list span,.notification-center time{color:#667586}.notification-list span{font-size:12px}.notification-text{min-width:0;display:grid;gap:3px}.notification-text span{color:#253244;font-size:13px;font-weight:700;line-height:1.3}.notification-text p{margin:0;color:#667586;font-size:12px;line-height:1.35}.notification-center{padding:var(--space-3)}.notification-center li{border-radius:6px;padding:8px 10px}.notification-center li:first-child{padding-top:8px}.notification-center li:last-child{padding-bottom:8px}.notification-center time{flex:0 0 auto;padding-top:1px;font-size:12px;line-height:1.3}.notification-center .unread span{font-weight:800}.notification-empty{color:#667586;font-size:13px}.profile-band{display:flex;align-items:center;gap:var(--space-5)}.profile-band h2,.profile-band p{margin-bottom:0}.avatar{width:84px;height:84px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#2b6cb0;font-weight:800;font-size:24px;flex:0 0 auto;box-shadow:0 0 0 5px #1f7a5c1f,0 0 24px #1f7a5c38}.image-avatar{object-fit:cover}.profile-preview{width:96px;height:96px;border-radius:999px;object-fit:cover;border:1px solid var(--border);background:#f8fafc}.initials-preview{display:grid;place-items:center;color:#fff;background:#2b6cb0;font-weight:800;font-size:24px}.detail-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}.detail-grid span{color:var(--muted)}.detail-grid strong{display:block;margin-top:6px;color:#17202a}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:var(--space-4)}.settings-tile{min-height:150px;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius);background:#f8fafc}.settings-tile svg{flex:0 0 auto;color:#1f7a5c}.settings-tile h3{margin:0 0 8px;font-size:16px}.settings-tile p{margin-bottom:0;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:var(--space-5);background:#141c266b}.modal{width:min(520px,100%);max-height:calc(100vh - 48px);overflow-y:auto;display:grid;gap:var(--space-4);background:#fff;border-radius:var(--radius);padding:var(--space-5)}.modal h2{margin-bottom:0}.modal-actions{position:sticky;bottom:calc(var(--space-5) * -1);margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1);padding:var(--space-4) var(--space-5);background:#fff;border-top:1px solid var(--border);justify-content:flex-end}@media(max-width:980px){.login-page{grid-template-columns:1fr;place-items:center;overflow:auto;padding:40px 24px}.login-hero{display:none}.login-panel{justify-self:center;width:min(650px,100%);height:auto;min-height:auto;margin-right:0}.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:3;border-right:0;border-bottom:1px solid var(--border);padding:var(--space-3) var(--space-4)}.logo-row{margin-bottom:var(--space-3)}.sidebar nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.sidebar a{flex:0 0 auto;min-height:38px;white-space:nowrap}.topbar{flex-wrap:wrap;padding:var(--space-4)}.topbar .search-box{flex:1 1 360px}.summary-grid,.summary-grid.three,.summary-grid.four,.content-grid,.report-filters,.detail-grid,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}table{min-width:640px}th,td{padding:12px 14px}}@media(max-width:760px){.table-wrap{border:0;background:transparent;overflow:visible}table,thead,tbody,tr,th,td{display:block;width:100%;min-width:0}thead{display:none}tbody{display:grid;gap:var(--space-3)}tr{border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden}td{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);min-height:40px;padding:10px 12px;white-space:normal;word-break:break-word}td:before{content:attr(data-label);flex:0 0 42%;color:#526171;font-size:12px;font-weight:800}td>*{max-width:58%}.empty-cell{display:block;text-align:center}.empty-cell:before{content:""}.row-actions{justify-content:flex-end}}@media(max-width:640px){.login-page{align-items:start;background-position:35% center;padding:20px 14px}.login-panel{border-radius:24px;padding:36px 22px}.login-panel h2{font-size:29px}.login-panel h2 img{width:31px;height:31px}.login-brand p{font-size:15px}.login-intro{margin:25px auto 28px;font-size:14px}.login-panel form{gap:19px}.login-panel label{font-size:15px}.login-panel label input{min-height:56px;padding:0 17px;border-radius:12px;font-size:15px}.login-options{margin-inline:2px}.login-options .remember-option,.login-help{font-size:14px}.custom-checkbox{width:25px;height:25px}.login-submit{min-height:62px;font-size:21px}.login-copyright{margin-top:22px;font-size:14px}.main-content,.topbar{padding:var(--space-4)}.main-content>section{gap:var(--space-4)}.topbar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-3)}.topbar .search-box{grid-column:1 / -1;max-width:none;width:100%;order:-1}.user-menu{min-width:0;margin-left:0;justify-content:flex-end}.user-menu>span:not(.topbar-avatar){max-width:128px;overflow:hidden;text-overflow:ellipsis}.sidebar{padding:var(--space-3)}.logo-row{margin-bottom:var(--space-2)}.sidebar a{min-height:36px;padding:8px 10px;font-size:13px}.date-range-filter{width:100%;flex-direction:column;align-items:stretch}.date-range-filter input{width:100%}.page-header,.profile-band,.pagination-bar{align-items:flex-start;flex-direction:column}.summary-grid,.summary-grid.three,.summary-grid.four,.content-grid,.report-filters,.detail-grid,.settings-grid,.two-col{grid-template-columns:1fr}.status-strip,.panel,.profile-band,.summary-card,.notification-center{padding:var(--space-4)}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-grid>*{padding:var(--space-1);font-size:12px}.calendar-grid b{min-height:32px;font-size:11px}.modal-backdrop{align-items:stretch;padding:var(--space-3)}.modal{max-height:calc(100vh - 28px);align-self:center;padding:var(--space-4)}.modal-actions{bottom:calc(var(--space-4) * -1);margin:0 calc(var(--space-4) * -1) calc(var(--space-4) * -1);padding:var(--space-3) var(--space-4)}.calendar-header{align-items:flex-start;flex-direction:column}.calendar-day{min-height:74px;gap:4px;padding:5px}.calendar-day small{width:22px;height:22px;font-size:11px}.event-chip{min-height:18px;padding:2px 4px;font-size:9px}.dashboard-calendar-cell{min-height:54px;align-items:center;padding:5px}.dashboard-calendar-cell small{width:21px;height:21px;font-size:11px}}@media(max-width:420px){.main-content,.topbar{padding:var(--space-3)}h1{font-size:24px}.primary-button,.secondary-button,.filters button{width:100%}.icon-button{width:40px}.toolbar,.filters,.report-actions{align-items:stretch;width:100%}.status-strip{align-items:stretch}.status-strip>*{width:100%;justify-content:center}.notification-center li{flex-direction:column;gap:4px}.notification-center time{padding-top:0}}@media(max-width:980px){.app-shell,.workspace,.main-content,.main-content>section,.sidebar{width:100%;min-width:0;max-width:100%}.sidebar{overflow:hidden}}.calendar-page{min-width:0;gap:28px!important;color:#171928}.calendar-page-heading{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.calendar-page-heading h1{margin:0 0 4px;color:#05070b;font-size:28px;font-weight:800}.calendar-page-heading p{margin:0;color:#5c626d;font-size:16px}.calendar-add-event{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:0 22px;border:1.5px solid #2475ed;border-radius:7px;color:#161a21;background:#fff;font-weight:700}.calendar-toolbar{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:24px}.calendar-month-nav{display:flex;align-items:center;gap:8px}.calendar-month-nav button{min-width:38px;min-height:38px;display:inline-grid;place-items:center;border:1px solid #c5cbd3;border-radius:7px;color:#262b34;background:#fff}.calendar-month-nav .month-today{min-width:150px;padding:0 14px;font-weight:700}.calendar-month-card{min-width:0;overflow:hidden;border:1px solid #bcc3cb;border-radius:28px;background:#fff;box-shadow:0 5px 7px #1f263140}.calendar-month-grid{min-width:760px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-grid>b{height:70px;display:grid;place-items:center;border-bottom:1px solid #c0c6ce;color:#171c2c;font-size:18px;font-weight:750}.calendar-date-cell{min-width:0;min-height:118px;display:flex;flex-direction:column;gap:12px;padding:18px 30px 12px;border-right:1px solid #c0c6ce;border-bottom:1px solid #c0c6ce;background:#fff}.calendar-date-cell:nth-child(7n){border-right:0}.calendar-date-cell:nth-last-child(-n+7){border-bottom:0}.calendar-date-cell time{color:#202536;font-size:22px;font-weight:400}.calendar-date-cell.weekend time{color:#ff2d43}.calendar-date-cell.outside time{color:#c5c6ca}.calendar-date-cell.outside.weekend time{color:#ff9aa6}.calendar-date-cell.current-day{background:#f1f7ff;box-shadow:inset 0 0 0 2px #2475ed}.calendar-date-cell.current-day time{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#2475ed}.calendar-event-list{display:grid;justify-items:start;gap:5px}.calendar-event{max-width:100%;min-height:22px;display:inline-flex;align-items:center;overflow:hidden;padding:2px 9px;border:1px solid #9cd9b2;border-radius:6px;color:#20a45a;background:#f0fbf4;font-size:11px;font-style:normal;line-height:1.2;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.calendar-event:before{content:"•";margin-right:4px}.calendar-event.leave{color:#ff3d4d;border-color:#ffb2ba;background:#fff4f5}.calendar-event.holiday{color:#7725f5;border-color:#cda8ff;background:#faf5ff}.calendar-event.late{color:#f16834;border-color:#ffc0a8;background:#fff7f2}.calendar-event.absent,.calendar-event.missing_clock_out{color:#e72c3d;border-color:#ffadb5;background:#fff2f3}.calendar-event.more{color:#667080;border-color:#cbd0d7;background:#f5f6f8}.calendar-legend-card{min-height:82px;display:grid;grid-template-columns:repeat(7,auto);align-items:center;justify-content:space-around;gap:20px;padding:16px 28px;border:1px solid #bdc4cc;border-radius:18px;background:#fff;box-shadow:0 5px 6px #1f263133}.calendar-legend-card span{display:inline-flex;align-items:center;gap:10px;color:#424957;font-size:15px}.calendar-legend-card span:before{content:"";width:14px;height:14px;flex:0 0 14px;border-radius:50%;background:#b9bdc3}.calendar-legend-card .holiday:before{background:#7718f4}.calendar-legend-card .event:before{background:#2475ed}.calendar-legend-card .leave:before{background:#ff9500}.calendar-legend-card .present:before{background:#1cab58}.calendar-legend-card .absent:before{background:#ff2136}.calendar-legend-card .late:before{background:#ff6037}.calendar-modal-heading{display:flex;align-items:center;justify-content:space-between}.calendar-modal-heading h2{margin:0}.calendar-event-modal textarea{min-height:90px;resize:vertical}.calendar-date-cell{cursor:pointer;transition:background .12s ease}.calendar-date-cell:hover,.calendar-date-cell.hovered{background:#f7faff}.calendar-date-cell:focus-visible{outline:2px solid #2475ed;outline-offset:-2px}.calendar-event.event{color:#1a5fd0;border-color:#a9c8f8;background:#f1f6ff;text-transform:none}.calendar-day-card{position:fixed;z-index:30;display:grid;align-content:start;gap:10px;overflow-y:auto;padding:14px;border:1px solid #c9d0d8;border-radius:14px;color:#171928;background:#fff;box-shadow:0 12px 28px #141c2638}.calendar-day-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-day-card header strong{font-size:15px}.calendar-day-card-add{min-height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;border:1px solid #2475ed;border-radius:6px;color:#1a5fd0;background:#fff;font-size:13px;font-weight:700}.calendar-day-card ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.calendar-day-card-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 10px;border-left:4px solid #1cab58;border-radius:8px;background:#f6f8fa}.calendar-day-card-item.event{border-left-color:#2475ed}.calendar-day-card-item.holiday{border-left-color:#7718f4}.calendar-day-card-item.leave{border-left-color:#ff9500}.calendar-day-card-item.late{border-left-color:#ff6037}.calendar-day-card-item.absent,.calendar-day-card-item.missing_clock_out{border-left-color:#ff2136}.calendar-day-card-item>div:first-child{min-width:0;display:grid;gap:2px}.calendar-day-card-item small{color:#667080;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.calendar-day-card-title{font-weight:700;text-transform:capitalize;overflow-wrap:anywhere}.calendar-day-card-item.event .calendar-day-card-title{text-transform:none}.calendar-day-card-time{display:inline-flex;align-items:center;gap:4px;color:#424957;font-size:13px}.calendar-day-card-item p{margin:2px 0 0;color:#424957;font-size:13px;overflow-wrap:anywhere;white-space:pre-line}.calendar-day-card-actions{display:flex;gap:6px}.calendar-day-card-actions .icon-button{width:30px;min-height:30px;height:30px}.calendar-day-card-empty{margin:0;color:#667080;font-size:14px}.calendar-event-when{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-event-hint{margin:0;color:#667080;font-size:13px}@media(max-width:600px){.calendar-event-when{grid-template-columns:1fr}}@media(min-width:981px)and (max-width:1400px){.calendar-page{gap:24px!important}.calendar-month-grid>b{height:58px}.calendar-date-cell{min-height:100px;gap:8px;padding:13px 16px 10px}.calendar-date-cell time{font-size:19px}.calendar-event{padding-inline:6px;font-size:10px}}@media(max-width:980px){.calendar-toolbar{align-items:stretch;flex-direction:column}.calendar-month-nav{justify-content:flex-end}.calendar-month-card{overflow-x:auto;border-radius:20px}.calendar-legend-card{grid-template-columns:repeat(3,1fr);justify-content:stretch}}@media(max-width:600px){.calendar-page-heading{align-items:flex-start;flex-direction:column}.calendar-page-heading p{font-size:14px}.calendar-add-event{width:100%}.calendar-month-nav{justify-content:space-between}.calendar-month-nav .month-today{flex:1}.calendar-month-grid{min-width:700px}.calendar-date-cell{min-height:92px;padding:10px}.calendar-legend-card{grid-template-columns:repeat(2,1fr);gap:14px;padding:18px}}
