#attendanceAdminPanel[hidden] { display:none !important; }
#attendanceAdminPanel { margin-bottom:20px; }
.attendance-review-card { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:var(--surface-alt);color:var(--ink);border:1px solid var(--line);border-radius:12px;margin-top:10px; }
.attendance-review-card p { font-size:12px;color:var(--muted);line-height:1.6;margin:6px 0; }
.attendance-review-actions { display:flex;gap:8px;flex-wrap:wrap; }
#workerShiftConfirmBanner { border:2px solid var(--line);border-radius:14px;box-shadow:var(--shadow) !important;transition:all 0.25s ease; }
#workerShiftConfirmBanner[data-phase="checkin"] { background:#fee2e2 !important;border-color:#ef4444 !important;color:#991b1b !important; }
#workerShiftConfirmBanner[data-phase="checkin"] #workerShiftBannerIcon { background:rgba(239,68,68,0.15) !important;color:#dc2626 !important; }
#workerShiftConfirmBanner[data-phase="checkin"] #btnQuickConfirmIn { background:#dc2626 !important;color:#ffffff !important;border:none !important;box-shadow:0 4px 12px rgba(220,38,38,0.3) !important; }

#workerShiftConfirmBanner[data-phase="working"] { background:#ecfdf5 !important;border-color:#10b981 !important;color:#065f46 !important; }
#workerShiftConfirmBanner[data-phase="working"] #workerShiftBannerIcon { background:rgba(16,185,129,0.15) !important;color:#059669 !important; }

#workerShiftConfirmBanner[data-phase="checkout"] { background:#ecfdf5 !important;border-color:#10b981 !important;color:#065f46 !important; }
#workerShiftConfirmBanner[data-phase="checkout"] #btnQuickConfirmOut { background:#059669 !important;color:#ffffff !important;border:none !important;box-shadow:0 4px 12px rgba(5,150,105,0.3) !important; }

#workerShiftConfirmBanner[data-phase="completed"] { background:#f0fdf4 !important;border-color:#22c55e !important;color:#15803d !important; }
#workerShiftConfirmBanner[data-phase="completed"] #workerShiftBannerIcon { background:rgba(34,197,94,0.15) !important;color:#16a34a !important; }

#workerShiftConfirmBanner:is([data-phase="missed_in"],[data-phase="missed_out"],[data-phase="pending"],[data-phase="rejected"]) { background:#fee2e2 !important;border-color:#ef4444 !important;color:#991b1b !important; }
#workerShiftConfirmBanner:is([data-phase="missed_in"],[data-phase="missed_out"],[data-phase="pending"],[data-phase="rejected"]) #workerShiftBannerIcon { background:rgba(239,68,68,0.15) !important;color:#dc2626 !important; }
#workerShiftConfirmBanner #btnForgotAttendance { background:#dc2626 !important;color:#ffffff !important;border:none !important;font-weight:700 !important; }
#attendanceRequestDialog { width:min(500px,calc(100vw - 28px));max-height:90dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow); }
#attendanceRequestDialog::backdrop { background:rgba(0,0,0,.55); }
#attendanceRequestDialog label { display:block;font-size:12px;font-weight:700;margin:16px 0 6px; }
#attendanceRequestDialog .form-input { width:100%;background:var(--input-bg);color:var(--ink);border-color:var(--input-border); }
#attendanceRequestError { color:var(--red);font-size:12px;line-height:1.5; }
@media(max-width:920px){.attendance-review-card{align-items:flex-start;flex-direction:column}.attendance-review-actions{width:100%}.attendance-review-actions .button{flex:1;min-height:44px}#attendanceRequestDialog .form-input{font-size:16px;min-height:46px;height:auto;padding:10px}#attendanceRequestDialog .button{min-height:46px}#attendanceRequestDialog .form-footer{display:grid;grid-template-columns:1fr 1fr}#workerShiftActionsWrap{flex-wrap:wrap}}
#attendanceRequestDialog textarea.form-input { height:auto;min-height:100px;resize:vertical; }
#attendanceRequestDialog :is(button,input,textarea):focus-visible { outline:2px solid var(--teal);outline-offset:3px; }
#attendanceQrVideo { max-height:320px;object-fit:cover;background:#000;margin-top:12px; }
#attendanceQrPhotoWrap[hidden],#attendanceQrVideo[hidden] { display:none !important; }
#attendanceVerificationMessage { color:var(--ink);background:var(--surface-alt);padding:12px;border-radius:10px;font-size:12px;line-height:1.6; }
#workerPinDialog { width:min(460px,calc(100vw - 28px));max-height:90dvh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:24px; }
#workerPinDialog::backdrop { background:rgba(0,0,0,.55); }
#workerPinDialog label { display:block;margin:16px 0 6px;font-size:12px;font-weight:700; }
#workerPinDialog .form-input { width:100%;background:var(--input-bg);color:var(--ink);border-color:var(--input-border); }
#workerPinMessage { color:var(--red); }
@media(max-width:920px){#workerPinDialog .form-input{font-size:16px;min-height:46px;height:auto;padding:10px}#workerPinDialog .button{min-height:44px}}

.attendance-bulk-toolbar { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;color:var(--ink); }
.attendance-bulk-toolbar label { display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:12px;cursor:pointer; }
.attendance-bulk-toolbar input,.attendance-row-select input { width:20px;height:20px;accent-color:var(--teal);cursor:pointer; }
.attendance-bulk-toolbar > span { font-size:12px;color:var(--muted); }
.attendance-bulk-toolbar > button { margin-left:auto; }
.attendance-review-card { display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start; }
.attendance-review-info { min-width:0; }
#attendanceBulkDialog { width:min(480px,calc(100vw - 28px));max-height:90dvh;overflow:auto;padding:24px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow); }
#attendanceBulkDialog::backdrop { background:rgba(0,0,0,.55); }
#attendanceBulkDialog p { line-height:1.6;font-size:13px; }
#attendanceBulkError { color:var(--red); }
@media(max-width:920px){.attendance-review-card{grid-template-columns:24px minmax(0,1fr);gap:10px}.attendance-review-actions{grid-column:2}.attendance-bulk-toolbar > button{width:100%;margin-left:0;min-height:44px}#attendanceBulkDialog .button{min-height:44px}.attendance-review-actions .button{font-size:11px}}

#workerShiftConfirmBanner #btnForgotAttendance { white-space:normal; }
#attendanceStartOptions { border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:14px;background:var(--surface-alt); }
#attendanceStartOptions[hidden],#attendanceStartModeWrap[hidden] { display:none !important; }
#attendanceStartOptions p { font-size:13px;line-height:1.6;margin:0; }

#attendanceEntryChoices[hidden],#attendanceAbsenceHint[hidden],#attendanceStartTimeWrap[hidden] { display:none !important; }
.attendance-time-picker { display:flex;align-items:stretch;gap:8px; }
.attendance-time-picker .form-input { min-width:0;flex:1; }

#geoModal :is(.geo-body,.geo-mode-tabs,#geoUnifiedStatus,#geoUnifiedRequestHost)[hidden],#workerShiftActionsWrap[hidden] { display:none !important; }
.unified-attendance-status { padding:14px;border:1px solid var(--line);background:var(--surface-alt);border-radius:12px;margin-bottom:14px;color:var(--ink); }
.unified-attendance-status p { margin:6px 0 0;font-size:13px;line-height:1.6; }
#geoUnifiedRequestHost label { display:block;font-size:12px;font-weight:700;margin:16px 0 6px; }
#geoUnifiedRequestHost .form-input { width:100%;background:var(--input-bg,var(--surface));color:var(--ink);border-color:var(--line); }
#geoUnifiedRequestHost textarea { min-height:85px;resize:vertical; }
#geoUnifiedRequestHost .form-footer { display:flex;justify-content:flex-end;gap:10px;margin-top:16px; }
@media(max-width:920px){#geoUnifiedRequestHost .form-input{font-size:16px;min-height:46px}#geoUnifiedRequestHost .button{min-height:46px}#geoUnifiedRequestHost .form-footer{display:grid;grid-template-columns:1fr 1fr}}

/* Attendance: one clear visual hierarchy in light and dark themes. */
#geoModal { --attendance-card:var(--surface,#fff);--attendance-soft:var(--surface-alt,#f3f8fa);--attendance-accent:#087f8c;--attendance-tint:#eaf7f7; }
#geoModal > .modal { max-width:560px !important;padding:0;border:1px solid var(--line);border-radius:24px;background:var(--attendance-card);box-shadow:0 24px 80px rgba(8,28,42,.28);overflow-x:hidden; }
#geoModal > .modal > .modal-header { margin:0;padding:24px;background:linear-gradient(120deg,#15364d,#087f8c);border:0;color:#fff;align-items:flex-start;gap:14px; }
#geoModal .modal-header .eyebrow { color:#b8edf0 !important;font-size:10px;letter-spacing:1.4px;line-height:1.6;margin:0 0 8px; }
#geoModal #geoModalTitle { color:#fff !important;margin:0;font-size:25px;line-height:1.25;letter-spacing:-.5px; }
#geoModal #closeGeoModal { flex:0 0 36px;width:36px;height:36px;min-height:36px;border:1px solid rgba(255,255,255,.3);border-radius:11px;background:rgba(255,255,255,.12);color:#fff;font-size:24px; }
#geoModal #closeGeoModal:hover { background:rgba(255,255,255,.23); }
#geoModal :is(.geo-body,#geoUnifiedRequestHost) { margin:20px; }
#geoModal .geo-mode-tabs { margin:20px 20px 0;padding:5px !important;border:1px solid var(--line);border-radius:13px !important;background:var(--attendance-soft) !important;gap:5px !important; }
#geoModal .geo-mode-tabs .tab-btn { min-height:44px;border-radius:9px !important;background:transparent !important;color:var(--muted) !important;box-shadow:none !important;line-height:1.35; }
#geoModal .geo-mode-tabs .tab-btn.is-selected { background:var(--attendance-accent) !important;color:#fff !important;box-shadow:0 3px 8px rgba(8,127,140,.18) !important; }
#geoModal #geoUnifiedStatus { margin:20px 20px 0;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--attendance-accent);border-radius:14px;background:var(--attendance-tint); }
#geoModal #geoUnifiedStatusTitle { display:block;font-size:15px;line-height:1.5; }
#geoModal #geoUnifiedStatusSchedule { font-size:16px;font-weight:750;font-variant-numeric:tabular-nums;color:var(--ink); }
#geoModal[data-attendance-phase="pending"] #geoUnifiedStatus { border-left-color:#d69a20; }
#geoModal:is([data-attendance-phase="missed_in"],[data-attendance-phase="missed_out"],[data-attendance-phase="rejected"]) #geoUnifiedStatus { border-left-color:#e05d6f; }
#geoModal:is([data-attendance-phase="working"],[data-attendance-phase="completed"]) #geoUnifiedStatus { border-left-color:#20a579; }
#geoModal #attendanceEntryChoices { padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--attendance-soft); }
#geoModal #attendanceEntryChoices > label { margin:0 0 9px; }
#geoModal #attendanceStartOptions { padding:16px;border:1px solid var(--line);background:var(--attendance-soft);border-radius:14px; }
#geoModal #attendanceAbsenceHint { padding:14px;border-radius:12px;border-left:3px solid #e05d6f;background:var(--attendance-soft);line-height:1.6; }
#geoModal #geoUnifiedRequestHost label { color:var(--ink);font-size:12px;line-height:1.4;margin-top:18px; }
#geoModal #geoUnifiedRequestHost .form-input { min-height:46px;border:1px solid var(--line);border-radius:10px;padding:11px 12px;box-shadow:none; }
#geoModal #geoUnifiedRequestHost .form-input:focus { outline:2px solid var(--attendance-accent);outline-offset:2px; }
#geoModal #geoUnifiedRequestHost input[data-time-24] { font-size:19px;font-weight:700;letter-spacing:.5px;font-variant-numeric:tabular-nums; }
#geoModal #geoUnifiedRequestHost textarea { min-height:84px;font-size:14px;line-height:1.6; }
#geoModal #geoUnifiedRequestHost .form-footer { margin-top:20px;padding-top:18px;border-top:1px solid var(--line); }
#geoModal .button { border-radius:11px;min-height:44px; }
#geoModal .button-primary { background:var(--attendance-accent) !important;border-color:var(--attendance-accent) !important;color:#fff !important;box-shadow:0 4px 12px rgba(8,127,140,.16); }
#geoModal .button:disabled { opacity:.5;box-shadow:none;cursor:not-allowed; }
#geoModal :is(.geo-employee-card,.geo-status-card,.geo-qr-card,.geo-kiosk-card,.geo-fieldwork-box) { border-radius:13px !important;border-color:var(--line) !important; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal { --attendance-accent:#0e8994;--attendance-tint:#15333d; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal .geo-mode-tabs .tab-btn.is-selected { background:var(--attendance-accent) !important;color:#fff !important; }
@media(max-width:600px){
 #geoModal > .modal { border-radius:22px 22px 0 0; }
 #geoModal > .modal > .modal-header { padding:20px; }
 #geoModal #geoModalTitle { font-size:22px; }
 #geoModal :is(.geo-body,#geoUnifiedRequestHost) { margin:16px; }
 #geoModal .geo-mode-tabs { margin:16px 16px 0; }
 #geoModal #geoUnifiedStatus { margin:16px 16px 0;padding:14px; }
 #geoModal #geoUnifiedRequestHost .form-input { font-size:16px; }
}
#geoModal > .modal { padding:0 !important; }
#geoModal #geoUnifiedRequestHost .form-footer { position:static !important;bottom:auto !important;background:transparent !important;box-shadow:none !important; }
/* Paired hours stay side by side on phones, with distinct start/end accents. */
#attendanceHoursPanel[hidden],#attendanceEndTimeWrap[hidden],#attendanceExtendWrap[hidden] { display:none !important; }
.attendance-hours-panel { margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-alt); }
.attendance-hours-row { display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:8px;align-items:stretch; }
.attendance-hours-row > div { min-width:0;padding:12px;border-radius:12px; }
.attendance-hour-start { background:#e5f6f1;border-top:3px solid #18a07b; }
.attendance-hour-end { background:#eeebff;border-top:3px solid #8571dc; }
.attendance-hours-arrow { align-self:center;text-align:center;color:var(--muted);font-size:20px; }
.attendance-hours-row[data-paired="false"] { grid-template-columns:minmax(0,1fr); }
.attendance-hours-row[data-paired="false"] .attendance-hours-arrow { display:none; }
#attendanceHoursPanel .attendance-extension { display:flex;align-items:center;gap:9px;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12px;font-weight:650;color:var(--ink);cursor:pointer; }
.attendance-extension input { width:18px;height:18px;accent-color:#087f8c; }
#geoModal .attendance-hours-row label { margin:0 0 10px !important;font-size:11px !important;line-height:1.35;min-height:30px; }
#geoModal .attendance-hours-row input[data-time-24] { width:100%;min-width:0;padding:8px !important;font-size:20px !important;min-height:48px;border:1px solid var(--line);background:var(--surface) !important; }
#geoModal .attendance-hour-end input[readonly] { border-color:#8571dc !important;opacity:1; }
#geoModal #attendanceEntryChoices { background:#edf6ff;border-color:#c5dcf2;border-top:3px solid #5e9dd4; }
#geoModal #attendanceStartOptions { background:#eaf8f3;border-color:#c8e8da; }
#geoModal #geoUnifiedStatus { background:linear-gradient(120deg,#e6f6f8,#f0ecff);border-color:#cde2ed; }
#geoModal #attendanceAbsenceHint { background:#fff0f2;border-color:#f1c5ce; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #attendanceEntryChoices { background:#192e49;border-color:#365a80; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #attendanceStartOptions { background:#173a34;border-color:#2f6153; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #geoUnifiedStatus { background:linear-gradient(120deg,#173d46,#2b284b);border-color:#39516c; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #attendanceAbsenceHint { background:#442630;border-color:#7c4554; }
html:is([data-theme="dark"],[data-theme="ocean"]) .attendance-hour-start { background:#173a34; }
html:is([data-theme="dark"],[data-theme="ocean"]) .attendance-hour-end { background:#302a4d; }
@media(max-width:600px){
 #geoModal > .modal > .modal-header { padding:16px 18px; }
 #geoModal :is(.geo-body,#geoUnifiedRequestHost) { margin:12px; }
 #geoModal #geoUnifiedStatus { margin:12px 12px 0;padding:12px 14px; }
 #geoModal #geoUnifiedRequestHost label { margin-top:12px; }
 #geoModal #attendanceEntryChoices,#geoModal #attendanceStartOptions { padding:12px; }
 #geoModal #attendanceStartOptions p { font-size:12px;line-height:1.5; }
 #geoModal .attendance-hours-panel { padding:10px; }
 #geoModal .attendance-hours-row { gap:5px;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr); }
 #geoModal .attendance-hours-row[data-paired="false"] { grid-template-columns:minmax(0,1fr); }
 #geoModal .attendance-hours-row > div { padding:9px; }
 #geoModal .attendance-hours-row input[data-time-24] { font-size:17px !important;padding:6px 4px !important; }
 #geoModal #geoUnifiedRequestHost textarea { min-height:66px; }
 #geoModal #geoUnifiedRequestHost .form-footer { margin-top:12px;padding-top:12px; }
}

#geoUnifiedRequestHost [hidden] { display:none !important; }

#attendanceBreakOptions[hidden] { display:none !important; }
.attendance-break-options { margin-top:14px;padding:14px;border:1px solid #edcc8c;border-left:4px solid #e2a537;border-radius:13px;background:#fff8e8; }
#geoModal .attendance-break-options > label { margin:0 0 10px !important;line-height:1.5; }
html:is([data-theme="dark"],[data-theme="ocean"]) .attendance-break-options { background:#3b3020;border-color:#7c6334; }
/* Verification screens: large location feedback, clear methods and centered action. */
#geoModal .geo-mode-tabs .tab-btn { min-height:54px;font-size:13px !important;font-weight:800 !important; }
#geoModal .geo-status-card { display:flex;align-items:flex-start;gap:14px;padding:18px;background:var(--attendance-tint);border:1px solid var(--line); }
#geoModal .geo-icon-circle { flex:0 0 46px;width:46px;height:46px;font-size:25px;border-radius:14px;background:var(--teal-soft);display:flex;align-items:center;justify-content:center; }
#geoModal .geo-status-card > div:last-child { flex:1;min-width:0; }
#geoModal #geoPlaceName { font-size:16px;line-height:1.5; }
#geoModal #geoDistanceText { font-size:14px;line-height:1.65;margin:8px 0;color:var(--ink); }
#geoModal #geoBadge { display:block;width:100%;padding:13px 14px;font-size:18px !important;font-weight:850;line-height:1.5;border-radius:11px;white-space:normal;text-align:left; }
#geoModal #geoStatusCard.out-radius { border:2px solid #e35d6a !important;background:#fff0f2 !important; }
#geoModal #geoBadge.out { background:#b91c36 !important;color:#fff !important;border:0 !important; }
#geoModal #geoStatusCard.in-radius { border-color:#39a781 !important; }
#geoModal #geoBadge.in { background:#d9f4e8 !important;color:#116748 !important; }
#geoModal .geo-actions-row { display:flex;justify-content:center;margin-top:14px;gap:10px;flex-wrap:wrap; }
#geoModal #btnVerifyLocation { width:100%;min-height:48px;font-size:14px;font-weight:750; }
#geoModal .geo-fieldwork-box { padding:16px !important;background:var(--attendance-soft) !important; }
#geoModal .geo-fieldwork-box input[type="checkbox"] { width:23px !important;height:23px !important;flex-shrink:0; }
#geoModal .geo-fieldwork-box b { font-size:14px !important;line-height:1.5; }
#geoModal .geo-fieldwork-box small { font-size:12px !important;line-height:1.6;margin-top:4px; }
#geoModal #geoFieldWorkPlace { min-height:46px;font-size:16px; }
#geoModal :is(.geo-qr-card,.geo-kiosk-card) { padding:20px !important;border-width:1px; }
#geoModal :is(.geo-qr-card,.geo-kiosk-card) b { font-size:17px !important;line-height:1.5; }
#geoModal :is(.geo-qr-card,.geo-kiosk-card) p { font-size:13px !important;line-height:1.65; }
#geoModal #btnScanQrNow { min-height:50px;background:#bd5b18 !important;border-color:#bd5b18 !important;font-size:14px;font-weight:750; }
#geoModal #btnVerifyPin { min-height:50px;background:#6452af !important;color:#fff !important;border-color:#6452af !important;font-size:14px;font-weight:750; }
#geoModal #kioskPinInput { min-height:58px;font-size:26px !important;letter-spacing:10px !important;border:2px solid #8a7acb;background:var(--surface);color:var(--ink); }
#geoModal #attendanceVerificationMessage { padding:0 4px;font-size:14px;line-height:1.6;font-weight:700; }
#geoModal #attendanceVerificationMessage:empty { display:none; }
#geoModal #geoEntryControls > div { display:flex !important;justify-content:center;flex-wrap:wrap;gap:10px; }
#geoModal :is(#btnCheckInNow,#btnCheckOutNow,#btnConfirmLateEntry) { width:100%;max-width:360px;min-height:54px;justify-content:center;align-items:center;gap:9px;font-size:16px;font-weight:800;border:0;background:#15845e !important;color:#fff !important;box-shadow:0 5px 15px rgba(21,132,94,.2); }
#geoModal[data-confirm-tone="outside"] :is(#btnCheckInNow,#btnCheckOutNow,#btnConfirmLateEntry) { background:#be2940 !important;box-shadow:none; }
#geoModal[data-confirm-tone="outside"] :is(#btnCheckInNow,#btnCheckOutNow,#btnConfirmLateEntry):disabled { opacity:1;cursor:not-allowed; }
#geoModal #geoHelpText { font-size:13px !important;line-height:1.6;margin-top:12px !important; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #geoStatusCard.out-radius { background:#42232e !important;border-color:#e97081 !important; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #geoBadge.out { background:#a7223a !important;color:#fff !important; }
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal #geoBadge.in { background:#145b42 !important;color:#c9f7e4 !important; }
@media(max-width:600px){#geoModal .geo-status-card{padding:14px;gap:10px;flex-wrap:wrap}#geoModal #geoBadge{font-size:17px !important;padding:12px}#geoModal .geo-mode-tabs .tab-btn{font-size:12px !important;min-height:54px}#geoModal :is(.geo-qr-card,.geo-kiosk-card){padding:16px !important}}

.geo-worker-note { margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-alt); }
#geoModal .geo-worker-note label { display:block;margin-bottom:8px;font-size:13px;font-weight:700;color:var(--ink); }
#geoModal #geoWorkerNote { min-height:72px;height:auto;padding:10px;font-size:16px;color:var(--ink);background:var(--surface);border-color:var(--line);resize:vertical; }
#geoModal[data-attendance-view="request-verification"] #geoWorkerNoteWrap { display:none; }

#geoReportAbsence { display:flex;margin:0 auto 20px;min-height:44px;background:#b91c1c;color:#fff;border:0; }
#geoModal :is(#geoReportAbsence,#btnConfirmLateEntry,#geoHelpText)[hidden] { display:none !important; }
#attendanceRequestDialog .attendance-hours-row label { margin:0 0 8px; }
#attendanceRequestDialog .attendance-hours-row input[data-time-24] { min-width:0; }
@media(max-width:480px) {
 #attendanceRequestDialog[data-verified-entry="true"] { padding:16px; }
 #attendanceRequestDialog .attendance-hours-panel { padding:8px; }
 #attendanceRequestDialog .attendance-hours-row > div { padding:8px; }
 #attendanceRequestDialog .attendance-hours-row input[data-time-24] { padding-inline:5px; }
}

#geoModal #geoConfirmActions { display:flex;justify-content:center;width:100%;gap:8px; }
#geoModal #btnVerifyLocation[hidden],#geoModal[data-gps-confirm="true"] #geoEntryControls,
#geoModal[data-gps-confirm="true"] .geo-fieldwork-box { display:none !important; }
#geoModal .geo-status-card { padding:12px;gap:10px; }
#geoModal #geoDistanceText { margin:4px 0;line-height:1.4;font-size:13px; }
#geoModal #geoBadge { padding:8px 10px;font-size:15px !important; }
#geoModal .geo-actions-row { margin-top:8px;padding:7px; }
#geoModal .geo-worker-note { margin-top:9px;padding:8px 11px; }
#geoModal .geo-worker-note summary { cursor:pointer;font-size:13px;font-weight:700; }
#geoModal #geoWorkerNote { margin-top:8px;min-height:54px; }

/* Missed check-in warning on the dashboard and in the attendance dialog. */
#workerShiftConfirmBanner[data-phase="missed_in"],
#geoModal[data-attendance-phase="missed_in"] #geoUnifiedStatus {
  --missed-warning-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M14.2 5a2 2 0 0 1 3.6 0l12 21a2 2 0 0 1-1.8 3H4a2 2 0 0 1-1.8-3z' fill='%23facc15' stroke='%23a16207' stroke-width='1.5'/%3E%3Cpath d='M16 12v7m0 4v1' stroke='%233d2706' stroke-width='2.8' stroke-linecap='round'/%3E%3C/svg%3E");
  background:#ffe0e3 !important;border-color:#dc354b !important;color:#83172b !important;
}
#workerShiftConfirmBanner[data-phase="missed_in"] #workerShiftBannerIcon {
  background:var(--missed-warning-icon) center / 32px no-repeat !important;font-size:0 !important;
}
#geoModal[data-attendance-phase="missed_in"] #geoUnifiedStatus { position:relative;padding-inline-start:53px; }
#geoModal[data-attendance-phase="missed_in"] #geoUnifiedStatus::before {
  content:"";position:absolute;inset-inline-start:13px;top:12px;width:30px;height:30px;
  background:var(--missed-warning-icon) center / contain no-repeat;
}
#geoModal[data-attendance-phase="missed_in"] #geoUnifiedStatus :is(p,strong) { color:inherit; }
html:is([data-theme="dark"],[data-theme="ocean"]) #workerShiftConfirmBanner[data-phase="missed_in"],
html:is([data-theme="dark"],[data-theme="ocean"]) #geoModal[data-attendance-phase="missed_in"] #geoUnifiedStatus {
  background:#581e2c !important;border-color:#f47785 !important;color:#fff1f2 !important;
}

/* Forgotten attendance request */
#attendanceRequestDialog[data-review-id=""] {
  width:min(540px,calc(100vw - 24px));padding:0;border-radius:18px;
}
#attendanceRequestDialog[data-review-id=""] > .modal-header {
  margin:0;padding:16px 20px;gap:12px;
  background:linear-gradient(115deg,#15364d,#086d79);color:#fff;
}
#attendanceRequestDialog[data-review-id=""] #attendanceRequestTitle {
  margin:0;color:#fff;font-size:clamp(18px,4vw,23px);line-height:1.3;
}
#attendanceRequestDialog[data-review-id=""] .modal-close {
  flex:0 0 36px;width:36px;height:36px;border:1px solid #ffffff65;border-radius:9px;
  background:#ffffff18;color:#fff;font-size:24px;
}
#attendanceRequestDialog[data-review-id=""] #attendanceRequestForm { padding:4px 20px 18px; }
#attendanceRequestDialog[data-review-id=""] #attendanceEntryChoices {
  margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-alt);
}
#attendanceRequestDialog[data-review-id=""] #attendanceEntryChoices > label { margin-top:0; }
#attendanceRequestDialog[data-review-id=""] .attendance-hours-row label,
#geoModal #attendanceRequestForm .attendance-hours-row label { line-height:1.35;min-height:2.7em; }
#attendanceRequestDialog[data-review-id=""] .attendance-hours-row input[data-time-24],
#geoModal #attendanceRequestForm .attendance-hours-row input[data-time-24] {
  min-height:52px;padding:6px 4px !important;text-align:center;font-size:clamp(23px,6vw,29px) !important;
  font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:.02em;
}
#attendanceRequestDialog[data-review-id=""] textarea.form-input { min-height:76px; }
#attendanceRequestDialog[data-review-id=""] .form-footer { padding-top:12px;border-top:1px solid var(--line); }
@media(max-width:480px) {
  #attendanceRequestDialog[data-review-id=""] > .modal-header { padding:13px 14px; }
  #attendanceRequestDialog[data-review-id=""] #attendanceRequestForm { padding:2px 12px 14px; }
}

#attendanceRequestDialog[data-review-id=""] label[for="attendanceRequestDate"],
#attendanceRequestForm #attendanceEntryChoices > label {
  font-size:14px;font-weight:800;color:var(--ink);line-height:1.4;
}
#attendanceRequestDialog[data-review-id=""] #attendanceRequestDate,
#attendanceRequestForm #attendanceEntryKind {
  min-height:48px;font-size:16px;font-weight:750;color:var(--ink);
  background:var(--surface);border:1px solid var(--teal);border-radius:9px;
}
#attendanceRequestDialog[data-review-id=""] #attendanceRequestDate {
  background:var(--surface-alt);font-variant-numeric:tabular-nums;
}
#attendanceRequestDialog[data-review-id=""] #attendanceEntryChoices,
#geoModal #attendanceRequestForm #attendanceEntryChoices {
  border-inline-start:4px solid var(--teal);
}
#attendanceRequestForm #attendanceEntryKind option { color:var(--ink);background:var(--surface); }

html:is([data-theme="dark"],[data-theme="ocean"]) #attendanceRequestForm #attendanceRequestDate {
  color-scheme:dark;color:#f1f5f9;-webkit-text-fill-color:#f1f5f9;opacity:1;
}
html:is([data-theme="dark"],[data-theme="ocean"]) #attendanceRequestForm #attendanceRequestDate::-webkit-datetime-edit {
  color:#f1f5f9;-webkit-text-fill-color:#f1f5f9;opacity:1;
}

#workerShiftConfirmBanner[data-phase="working"] :is(#workerShiftBannerTitle,#workerShiftBannerSub,.eyebrow) {
  color:inherit !important;opacity:1 !important;
}
html #appShellView[data-role="worker"] #geoCheckinOpenButton[data-attendance-phase="working"] {
  background:#d8f5e6 !important;color:#06452f !important;
}
#geoCheckinOpenButton[data-attendance-phase="working"] span { color:inherit !important; }
html:is([data-theme="dark"],[data-theme="ocean"]) #workerShiftConfirmBanner[data-phase="working"] {
  background:#123d30 !important;color:#e1faee !important;border-color:#42b88a !important;
}
html:is([data-theme="dark"],[data-theme="ocean"]) #appShellView[data-role="worker"] #geoCheckinOpenButton[data-attendance-phase="working"] {
  background:#15543e !important;color:#f0fff6 !important;border-color:#6ad5a6 !important;
}

#geoModal #attendanceProjectChoice {
  padding:13px 14px;border-inline-start:4px solid var(--teal);border-radius:11px;
}
#geoModal #attendanceProjectPicker label {
  color:var(--ink);font-size:16px;font-weight:800;line-height:1.4;
}
#geoModal #attendanceProjectSelect {
  width:100%;min-height:48px;margin-top:7px;padding:8px 10px;
  border:1px solid var(--teal);border-radius:9px;background:var(--surface);
  color:var(--ink);font-size:16px;font-weight:650;
}
#geoModal #attendanceProjectSelect:focus-visible { outline:2px solid var(--teal);outline-offset:2px; }
#geoModal #attendanceProjectMatched:not(:empty) { color:var(--ink);font-size:16px; }

#geoModal #geoConfirmActions { flex-wrap:wrap; }
#geoModal #attendanceResumeField { width:min(100%,360px);font-weight:750;color:var(--ink); }
#geoModal #attendanceResumeField[hidden] { display:none; }
#geoModal #attendanceResumeTime {
  display:block;width:100%;margin-top:6px;min-height:48px;text-align:center;
  font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--surface);color:var(--ink);
}

#attendanceWorkerReminders[hidden] { display:none; }
#attendanceWorkerReminders .button { color:var(--ink);border-color:#d97706; }
