.management-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.group-panel{overflow:hidden}.group-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.group-title h2{margin:5px 0 18px;color:#526b74}.absence-count,.location-chip{display:inline-block;background:#fff2cf;color:#785408;padding:7px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.period-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:20px}.period-grid>div{padding:13px;background:#eff8f2;border-radius:12px}.period-grid span{display:block;color:#6d858f;font-size:.78rem}.period-grid strong{display:block;color:#3f5d55;font-size:1.25rem;margin-top:4px}.week-bars{height:155px;display:flex;align-items:flex-end;gap:5px;padding:16px 5px 28px;border-bottom:1px solid #dce6e1;margin-bottom:18px}.week-bars>div{height:100%;flex:1;display:flex;align-items:flex-end;position:relative}.week-bars i{width:100%;display:block;background:#56bd7f;border-radius:5px 5px 0 0;min-height:4px}.week-bars span{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%) rotate(-45deg);font-size:.58rem;color:#6d858f;white-space:nowrap}.group-panel table{min-width:480px}.missing-days{background:#fff8e5;border:1px solid #f0d99b;border-radius:16px;padding:20px;margin:22px 0;color:#604d1e}.missing-days p{margin:7px 0 15px}.absence-form{max-height:90vh;overflow:auto}.check-label{display:flex;grid-template-columns:auto 1fr;align-items:center}.check-label input{width:auto}.setup-card{max-width:650px;margin:22px auto}.device-list{grid-template-columns:repeat(3,1fr)}.unregistered .card{max-width:580px;margin:40px auto}.location-chip{background:#edf8f1;color:#35835a;margin-bottom:14px}
.absence-list{display:grid;gap:6px;padding:13px;margin:0 0 16px;background:#fff8e5;border-radius:12px}.absence-list span{font-size:.82rem;color:#66552b}.compact{padding:8px 12px;font-size:.78rem}.edit-user-form{max-height:92vh;overflow:auto}.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}.modal-actions button{min-width:120px}
.month-overview{margin-top:22px;padding:18px;background:#f4faf6;border:1px solid #d8eadf;border-radius:16px;text-align:left}.month-overview h2{margin:0 0 13px;color:#3f5d55}.month-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.month-grid>div{padding:12px;background:#fff;border-radius:11px}.month-grid span{display:block;color:#6d858f;font-size:.76rem}.month-grid strong{display:block;margin-top:3px;color:#3f5d55}.month-grid .overtime,.month-stats .overtime{background:#e9f8ef}.overtime-text{color:#27865a}.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.timesheet-table table{min-width:1000px}.pill.approved{background:#e5f7ec;color:#267a51}
@media(max-width:900px){.management-groups{grid-template-columns:1fr}.device-list{grid-template-columns:1fr}.period-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:440px){.period-grid{grid-template-columns:1fr}.group-title{display:block}.week-bars{height:125px}}
.setup-code{margin-top:20px;padding:22px;text-align:center;border:2px solid #56bd7f;border-radius:16px;background:#eff8f2}.setup-code span{display:block;color:#526b74;font-weight:700}.setup-code strong{display:block;margin:10px 0;font-size:clamp(2rem,7vw,3.2rem);letter-spacing:.12em;color:#123c35}.setup-code p{margin:0;color:#64726d}
.kiosk-setup-qr{width:min(260px,100%);margin:16px auto;padding:12px;border-radius:14px;background:#fff}.kiosk-setup-qr svg{display:block;width:100%;height:auto}
.kiosk-card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.qr-scanner{text-align:center}.qr-scanner video{display:block;width:100%;max-height:58vh;object-fit:cover;margin:12px 0 16px;border-radius:14px;background:#14201c}.scan-kiosk-qr{margin-bottom:10px}
@media(max-width:700px){.pay-grid{grid-template-columns:1fr}.month-stats{grid-template-columns:repeat(2,1fr)}}
.reminder-setup{margin-top:14px;padding:15px;border:1px solid #d8eadf;border-radius:14px;background:#fff;text-align:left}.reminder-setup strong{color:#3f5d55}.reminder-setup p{margin:5px 0 11px}.reminder-active{color:#27865a;font-weight:800}
.correction-history{margin-top:20px}.correction-form{max-width:700px}.correction-form textarea{resize:vertical;min-height:100px}.pill.pending{background:#fff2cf;color:#785408}.pill.rejected{background:#fce8e8;color:#a13e3e}.pill.approved{background:#e5f7ec;color:#267a51}.approval-count{background:#fff2cf;color:#785408;padding:9px 13px;border-radius:999px;font-weight:800}.approval-list{display:grid;gap:16px}.approval-card{border-left:5px solid #e8bd4b}.approval-card.approved{border-left-color:#56bd7f}.approval-card.rejected{border-left-color:#d96969}.approval-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.approval-head h2{margin:5px 0 0}.change-comparison{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:18px 0;padding:15px;background:#f4faf6;border-radius:14px}.change-comparison>div:not(.change-arrow){padding:12px;background:#fff;border-radius:10px}.change-comparison span{display:block;color:#6d858f;font-size:.76rem;margin-bottom:4px}.change-arrow{font-size:1.6rem;color:#56bd7f;font-weight:800}.review-box{border-top:1px solid #dce6e1;margin-top:16px;padding-top:16px}.review-result{padding:11px 13px;background:#f4faf6;border-radius:10px}
.calendar-toggle{margin-top:7px;white-space:nowrap}.calendar-detail td{padding:10px 16px 16px;background:#f4faf6}.calendar-detail[hidden]{display:none}.calendar-weekdays,.compact-calendar{display:grid;grid-template-columns:repeat(7,minmax(64px,1fr));gap:5px;max-width:820px;margin:auto}.calendar-weekdays b{text-align:center;color:#6d858f;font-size:.68rem;padding:2px}.calendar-day{display:grid;align-content:start;min-height:64px;padding:6px 7px;border:1px solid #d8eadf;border-radius:8px;background:#fff}.calendar-day i{font-style:normal;font-size:.66rem;color:#6d858f}.calendar-day strong{font-size:.82rem;color:#3f5d55}.calendar-day small{font-size:.57rem;color:#80939a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day.leave{background:#fff8e5;border-color:#f0d99b}.calendar-day.non-workday{background:#f1f3f2;opacity:.75}.calendar-day.blank{visibility:hidden}.calendar-key{display:flex;justify-content:flex-end;gap:14px;max-width:820px;margin:0 auto 6px;font-size:.65rem;color:#6d858f}.calendar-key span{display:flex;align-items:center;gap:4px}.calendar-key i{width:8px;height:8px;border-radius:2px;background:#fff;border:1px solid #d8eadf}.calendar-key .leave-key{background:#fff8e5;border-color:#f0d99b}
@media(max-width:600px){.change-comparison{grid-template-columns:1fr}.change-arrow{transform:rotate(90deg);text-align:center}.approval-head{display:block}.approval-head .pill{display:inline-block;margin-top:10px}}
@media(max-width:700px){.calendar-weekdays,.compact-calendar{grid-template-columns:repeat(7,minmax(40px,1fr));gap:3px}.calendar-day{min-height:55px;padding:4px}.calendar-day strong{font-size:.7rem}.calendar-day small{display:none}}
.final-report-card{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #dce6e1;background:#f4f6f5}.final-report-card.ready{background:#eff8f2;border-color:#bfe0cb}.final-report-card h2{margin:5px 0;color:#526b74}.final-report-card p{margin:0;max-width:760px}.final-report-card button{min-width:180px}.final-report-card button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:700px){.final-report-card{display:grid}.final-report-card button{width:100%}}
.report-card{padding:20px}.report-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;align-items:end}.report-filters label{margin:0}.report-actions{display:flex;gap:8px;align-items:center;grid-column:span 3}.report-note{margin:14px 0}.report-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.report-summary>div{padding:14px;background:#f3f8f5;border:1px solid #e0ebe4;border-radius:12px}.report-summary span{display:block;color:#6d858f;font-size:.78rem}.report-summary strong{display:block;margin-top:4px;font-size:1.25rem;color:#3f5d55}.report-summary .attention{background:#fff5dc;border-color:#eed89f}.report-result-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:10px 0}.report-table table{min-width:1180px}.report-table td{vertical-align:top}.report-table a{color:#27865a;font-weight:700}.pill.not_clocked_in{background:#fff0ca;color:#815500}
@media(max-width:850px){.report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.report-actions{grid-column:span 2;flex-wrap:wrap}.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.report-filters{grid-template-columns:1fr}.report-actions{grid-column:span 1}.report-actions button{flex:1}.report-summary{grid-template-columns:1fr 1fr}}
.tracking-fields{margin:10px 0 16px;padding:15px;border:1px solid #d8eadf;border-radius:14px;background:#f4faf6}.tracking-fields[hidden]{display:none}.tracking-fields>p:last-of-type{margin-top:-2px}.pill.approved{background:#e5f7ec;color:#267a51}
.portal-choice{border:0;padding:0;margin:0 0 16px}.portal-choice legend{font-weight:800;margin-bottom:8px}.portal-choice label{display:flex;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:11px 12px;margin:7px 0;border:1px solid #d8eadf;border-radius:12px;background:#f7faf8}.portal-choice input{width:auto;margin:0}.portal-choice span,.portal-choice small{display:block}.portal-choice small{color:#6d858f;margin-top:2px}.mfa-key{padding:18px;margin:18px 0;background:#eef7f1;border:1px solid #cfe5d7;border-radius:12px;text-align:center;overflow-wrap:anywhere}.mfa-key code{font-size:1.05rem;letter-spacing:.12em}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}.recovery-codes code{padding:11px;background:#eef7f1;border-radius:9px;text-align:center;font-weight:800;letter-spacing:.06em}
@media(max-width:520px){.recovery-codes{grid-template-columns:1fr}}
.kiosk-camera{position:relative;width:min(620px,100%);aspect-ratio:4/3;margin:20px auto;border-radius:22px;overflow:hidden;background:#102e28;box-shadow:0 12px 35px #102e2830}.kiosk-camera video{width:100%;height:100%;object-fit:cover}.camera-frame{position:absolute;inset:18%;border:4px solid #56bd7f;border-radius:22px;box-shadow:0 0 0 999px #102e2855;pointer-events:none}.camera-error{padding:35px;background:#fff0c9;color:#6d4b0c;border-radius:16px}.pin-fallback{margin:22px auto;max-width:720px}.pin-fallback summary{cursor:pointer;font-weight:800;color:#1e6658;padding:14px}.badge-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}.badge-actions button{min-height:76px;font-size:1.15rem}.employee-badge{text-align:center;max-width:520px}.employee-badge-qr{width:min(330px,100%);margin:16px auto}.employee-badge-qr svg{display:block;width:100%;height:auto}.badge-success{text-align:center}.qr-kiosk>h1{margin-bottom:4px}@media(max-width:560px){.badge-actions{grid-template-columns:1fr}}@media print{body>*{display:none!important}[data-employee-badge],[data-employee-badge] .employee-badge{display:block!important;position:static!important;background:#fff!important;box-shadow:none!important}[data-employee-badge] button,[data-employee-badge] .muted{display:none!important}}

.compact-scanner{display:grid;grid-template-columns:minmax(220px,1fr) 300px;align-items:center;gap:24px;max-width:760px;margin:12px auto 18px;text-align:left}.compact-scanner h1{font-size:clamp(1.65rem,4vw,2.35rem);margin:0 0 6px}.compact-scanner p{margin:0}.compact-scanner .kiosk-camera{width:300px;max-width:100%;margin:0;border-radius:16px;box-shadow:0 8px 22px #102e2824}.compact-scanner .camera-frame{inset:20%;border-width:3px;border-radius:14px}.kiosk-employee-picker{max-width:820px;margin:0 auto}.kiosk-employee-picker h2{margin:8px 0 4px;color:#526b74}.kiosk-employee-picker .employee-grid{margin-top:12px}.kiosk-employee-picker .employee-grid button{min-height:68px}@media(max-width:620px){.compact-scanner{grid-template-columns:1fr;text-align:center;gap:12px}.compact-scanner .kiosk-camera{width:min(260px,78vw);margin:auto}.kiosk-employee-picker .employee-grid{grid-template-columns:repeat(2,1fr)}}
.kiosk-mode .topbar{display:none}.kiosk-mode main{padding-top:12px}
@media(max-height:620px){.modal{place-items:start center;overflow-y:auto;padding:10px}.modal .card{margin:auto 0;max-height:calc(100dvh - 20px);overflow-y:auto}.modal input:focus{scroll-margin-block:120px}}
.kiosk-pin-modal .card{max-width:390px}.kiosk-pin-modal input[readonly]{font-size:1.5rem;letter-spacing:.35em;text-align:center;background:#f4f8f5}.kiosk-pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 16px}.kiosk-pin-pad button{min-height:54px;font-size:1.25rem;padding:9px}.kiosk-pin-pad .secondary{font-size:.9rem}
.impersonation-banner{position:sticky;top:0;z-index:19;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;background:#fff2cf;color:#684b09;border-bottom:1px solid #e8cb76}.impersonation-banner button{padding:8px 12px;background:#684b09}.super-admin-pill{background:#dff2e7;color:#176644}.table-wrap td:last-child{white-space:nowrap}
.employee-visibility-setting{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 18px}.employee-visibility-setting h2{margin:5px 0}.employee-visibility-setting p{margin:0;max-width:720px}.visibility-switch{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:0;padding:12px 14px;border:1px solid #d8eadf;border-radius:12px;background:#f4faf6;white-space:nowrap}.visibility-switch input{width:auto}.employee-totals-hidden{padding:13px;border-radius:11px;background:#f3f5f4}@media(max-width:700px){.employee-visibility-setting{display:grid}.visibility-switch{white-space:normal}}
.completed-approvals-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:12px 15px;border:1px solid #dce6e1;border-radius:13px;background:#f4f7f5}.completed-approvals-bar div{display:grid;gap:2px}.completed-approvals-bar span{color:#6d858f;font-size:.82rem}.approval-card[hidden]{display:none}@media(max-width:520px){.completed-approvals-bar{align-items:stretch;flex-direction:column}.completed-approvals-bar button{width:100%}}
.employee-weekly-view{margin-top:18px}.weekly-view-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.weekly-view-heading h2{margin:0}.employee-week{margin:9px 0;border:1px solid #dbe7e1;border-radius:14px;overflow:hidden;background:#fff}.employee-week>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer;background:#f1f6f3;list-style:none}.employee-week>summary::-webkit-details-marker{display:none}.employee-week>summary span{display:grid;gap:2px}.employee-week>summary small{color:#71868e;font-weight:500}.employee-week>summary b{font-size:1.05rem;color:#27865a}.employee-week-days{padding:0 14px}.employee-day-row{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(280px,1.2fr) 2fr;gap:18px;align-items:center;padding:13px 2px;border-bottom:1px solid #e7eeea}.employee-day-row:last-child{border-bottom:0}.employee-day-date{display:flex;justify-content:space-between;gap:10px}.employee-day-date span{font-weight:800;color:#27865a}.employee-day-shift{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.employee-day-shift span{font-weight:700}.employee-day-shift small{display:block;color:#789099;font-weight:500}.employee-day-events{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.event-chip{width:auto;padding:7px 9px;border-radius:999px;background:#edf3f0;color:#365b50;font-size:.72rem;font-weight:700;box-shadow:none}.event-chip:hover{background:#dff0e6}.timesheet-week-grid{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr)) minmax(105px,1.25fr);gap:5px;max-width:920px;margin:auto}.timesheet-week-head{margin-bottom:5px}.timesheet-week-head b{text-align:center;color:#6d858f;font-size:.68rem;padding:2px}.calendar-week-total{display:grid;align-content:center;min-height:64px;padding:7px 9px;border-radius:8px;background:#e6f5ec;border:1px solid #b9dec8}.calendar-week-total small,.calendar-week-total span{font-size:.58rem;color:#617b72}.calendar-week-total strong{color:#267a51;font-size:.9rem}
@media(max-width:850px){.employee-day-row{grid-template-columns:1fr}.employee-day-events{justify-content:flex-start}}
@media(max-width:700px){.timesheet-week-grid{grid-template-columns:repeat(5,minmax(44px,1fr)) minmax(65px,1.15fr);gap:3px}.calendar-week-total{min-height:55px;padding:4px}.calendar-week-total small{display:none}.employee-week-days{padding:0 10px}.employee-day-shift{grid-template-columns:repeat(3,1fr)}}

.compact-approval-table table{min-width:1050px}.compact-approval-table th{padding:10px 12px;font-size:.72rem}.compact-approval-table td{padding:10px 12px;vertical-align:top;font-size:.82rem}.compact-approval-table .approval-card{border-left:0}.compact-approval-table tr.pending td:first-child{border-left:4px solid #e8bd4b}.compact-approval-table tr.approved td:first-child{border-left:4px solid #56bd7f}.compact-approval-table tr.rejected td:first-child{border-left:4px solid #d96969}.approval-reason{max-width:220px;white-space:normal}.compact-note{display:grid;gap:3px;margin:0 0 6px}.compact-note span{font-size:.66rem;color:#6d858f}.compact-note input{min-width:180px;padding:7px 9px;font-size:.78rem}.compact-review-actions{display:flex;gap:6px}.compact-review-actions button{white-space:nowrap}
