.activity-entry{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:18px}.activity-entry input,.week-controls input{background:#071321;border:1px solid var(--line);border-radius:11px;color:white;padding:13px;font-size:16px}.activity-entry button,.week-controls button,.end-job,.route-button{border:0;border-radius:11px;padding:13px 18px;background:var(--mint);color:#05251e;font-weight:900;cursor:pointer}.activity-list{display:grid;gap:8px;margin-top:14px}.activity-item{display:grid;grid-template-columns:1fr auto;gap:12px;border-top:1px solid var(--line);padding:13px 0}.activity-item small{display:block;color:var(--muted)}.activity-route{grid-column:1/-1}.map-pin{color:var(--mint);text-decoration:none;white-space:nowrap}.week-controls{display:flex;gap:10px;margin:16px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:820px}th,td{text-align:left;padding:12px;border-top:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.7px}td small{display:block;color:var(--muted)}.route-map{height:260px;position:relative;overflow:hidden;border:1px solid #1e5c4c;border-radius:14px;background:#10221e;margin-top:10px}.route-map img{position:absolute;width:256px;height:256px;max-width:none}.route-map svg{position:absolute;inset:0;overflow:visible}.route-map polyline{fill:none;stroke:#35ff9a;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #13ff83) drop-shadow(0 0 9px #13ff83)}.route-map .route-start{fill:#fff;stroke:#00e881;stroke-width:4}.map-attribution{position:absolute;right:4px;bottom:3px;z-index:3;background:#ffffffd9;color:#17201d;font-size:10px;padding:2px 5px;border-radius:4px;text-decoration:none}.tracking-badge{color:#35ff9a;font-weight:800}.weekly-route{margin-top:18px}.route-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.route-button{padding:8px 11px;font-size:13px}@media(max-width:760px){.activity-entry{grid-template-columns:1fr}.week-controls{display:grid}.activity-item{grid-template-columns:1fr}.route-map{height:220px}}
.route-map .activity-marker{fill:#2aa8ff;stroke:#dff5ff;stroke-width:3;filter:drop-shadow(0 0 5px #168cff) drop-shadow(0 0 11px #168cff)}.route-map .attendance-marker{stroke:#fff;stroke-width:3}.route-map .time-in-marker{fill:#27f58b;filter:drop-shadow(0 0 6px #13ff83) drop-shadow(0 0 14px #13ff83)}.route-map .time-out-marker{fill:#ff4057;filter:drop-shadow(0 0 6px #ff1f42) drop-shadow(0 0 14px #ff1f42)}.route-legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin:8px 0 14px}.route-legend span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.green-key:before{background:#35ff9a;box-shadow:0 0 8px #13ff83}.red-key:before{background:#ff4057;box-shadow:0 0 8px #ff1f42}.blue-key:before{background:#2aa8ff;box-shadow:0 0 8px #168cff}
.admin-activity-actions{display:flex;gap:6px}.admin-activity-actions button{border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:#102638;color:#fff;cursor:pointer}.admin-activity-actions .delete-activity{border-color:#743744;color:#ff9bab}
.personal-calendar{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.calendar-heading small{color:var(--muted)}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));gap:9px}.calendar-day{min-height:88px;border:1px solid var(--line);border-radius:14px;background:#091a2a;color:var(--text);padding:10px;cursor:pointer;text-align:left;transition:.18s}.calendar-day:hover,.calendar-day.selected{border-color:#2aa8ff;background:#102f48;box-shadow:0 0 16px #168cff44}.calendar-day .weekday{display:block;color:var(--muted);font-size:12px;text-transform:uppercase}.calendar-day .day-number{display:block;font-size:28px;font-weight:900;line-height:1.1}.calendar-day .day-count{display:block;color:var(--mint);font-size:11px}.calendar-details{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#081827}.calendar-details h3{margin:0 0 10px}.calendar-record{display:grid;grid-template-columns:minmax(130px,.8fr) 1.8fr auto;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}.calendar-record:first-of-type{border-top:0}.calendar-record small{display:block;color:var(--muted)}.calendar-pin{display:inline-grid;place-items:center;min-width:44px;min-height:42px;border-radius:11px;background:var(--mint);color:#05251e;text-decoration:none;font-size:20px;font-weight:900}.admin-calendar{margin-top:10px}@media(max-width:760px){.calendar-days{grid-template-columns:repeat(4,1fr)}.calendar-record{grid-template-columns:1fr auto}.calendar-record .calendar-main{grid-column:1/-1;grid-row:2}.calendar-heading{align-items:flex-start;flex-direction:column}}@media(max-width:430px){.calendar-days{grid-template-columns:repeat(3,1fr)}}
.admin-record-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.admin-record-actions button{border:1px solid #31506a;border-radius:9px;padding:8px 12px;background:#102b42;color:#dff2ff;font-weight:800;cursor:pointer}.admin-record-actions .danger{border-color:#7d3d49;background:#321d25;color:#ffacb7}.admin-record-item>div:last-child{text-align:right}.admin-attendance-record{grid-template-columns:1.1fr .7fr 1.4fr auto}.record-dialog{width:min(520px,calc(100% - 28px));border:1px solid #31506a;border-radius:18px;background:#0d2033;color:var(--text);padding:0;box-shadow:0 30px 90px #000b}.record-dialog::backdrop{background:#02080dbd;backdrop-filter:blur(4px)}.record-dialog form{padding:24px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-heading span{color:var(--mint);font:800 11px monospace;letter-spacing:1.5px}.dialog-heading h2{margin:5px 0 0}.dialog-heading p{margin:2px 0 0;color:var(--muted)}.dialog-close{border:0;background:transparent;color:var(--muted);font-size:28px;line-height:1;cursor:pointer}.editor-fields{display:grid;gap:12px;margin-top:20px}.editor-fields label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.editor-fields input,.editor-fields select{width:100%;border:1px solid var(--line);border-radius:10px;background:#071321;color:var(--text);padding:12px;font:inherit;color-scheme:dark}.editor-note{color:var(--muted);font-size:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.dialog-actions button{border-radius:10px;padding:11px 18px;font-weight:900;cursor:pointer}.dialog-actions .quiet{border:1px solid var(--line);background:transparent;color:var(--muted)}.dialog-actions .save-record{border:0;background:var(--mint);color:#05251e}@media(max-width:760px){.admin-record-item>div:last-child{text-align:left}.admin-attendance-record{grid-template-columns:1fr}.admin-record-actions{justify-content:flex-start}table .admin-record-actions{min-width:150px}}
.activity-duration{margin-top:9px;padding:8px 10px;border-left:3px solid var(--mint);border-radius:0 8px 8px 0;background:#0d2a29;color:#d7fff0!important;font-size:13px}.activity-duration strong{color:var(--mint)}.activity-duration.in-progress{border-left-color:#2aa8ff;background:#102b42;color:#dff2ff!important}
.employee-group-heading{margin:18px 0 6px;padding:10px 12px;border-left:4px solid var(--mint);border-radius:8px;background:#10283d;color:#fff;letter-spacing:.2px}.employee-group-heading:first-child{margin-top:8px}.employee-group-heading strong{font-size:16px}
.attendance-employee-calendar{margin:16px 0 28px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#091a29}.attendance-employee-calendar>h3{margin:0;padding:14px 16px;background:#12314b;color:#fff;font-size:18px}.attendance-month{padding:14px}.attendance-month h4{margin:0 0 12px;color:var(--mint);font-size:16px}.attendance-weekdays,.attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}.attendance-weekdays span{padding:8px;text-align:center;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.attendance-calendar-grid{border-left:1px solid var(--line);border-top:1px solid var(--line)}.attendance-month{overflow-x:auto}.attendance-day{min-height:112px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#071522}.attendance-day.blank{background:#06111b}.attendance-day.has-records{background:#0d2133}.attendance-date{display:block;margin-bottom:7px;color:#9fb7ca;font-weight:800}.attendance-calendar-entry{margin-top:6px;padding:7px;border-radius:8px;background:#132f46;border-left:3px solid #168cf0}.attendance-calendar-entry.out{border-left-color:#ef5b5b}.attendance-calendar-entry strong{display:block;font-size:12px}.attendance-coordinate{display:flex;align-items:center;gap:5px;margin-top:4px;color:#b9cada;font:11px/1.35 ui-monospace,monospace;overflow-wrap:anywhere}.attendance-coordinate.unavailable{color:var(--muted)}.attendance-map-pin{display:inline-grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid #4c718d;border-radius:50%;background:#0b1c2d;text-decoration:none}.attendance-map-pin:hover,.attendance-map-pin:focus-visible{border-color:var(--mint);outline:none}@media(max-width:760px){.attendance-weekdays,.attendance-calendar-grid{grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1050px}.attendance-day{min-height:125px}.attendance-month{padding:10px}}
.missed-timeout-notice{grid-column:1/-1;padding:12px 14px;border:1px solid #d9a441;border-radius:12px;background:#3a2b12;color:#ffe2a3;font-weight:700}.admin-force-timeout{margin:10px 14px;padding:10px 14px;border:0;border-radius:10px;background:#b84040;color:#fff;font-weight:800}.admin-force-timeout:disabled{opacity:.6}.read-only-badge{justify-self:end;padding:5px 9px;border:1px solid #3f647e;border-radius:999px;color:#9fc4df;font-size:12px}

.attendance-mobile-month{display:none}
@media(max-width:600px){
  .attendance-desktop-month{display:none}
  .attendance-mobile-month{display:block;background:#fff;color:#151515;padding:12px 3px 8px}
  .attendance-mobile-month h4{margin:0 0 14px;padding:0 8px;color:#171717;font-size:18px;font-weight:700}
  .mobile-attendance-weekdays,.mobile-attendance-week{display:grid;grid-template-columns:20px repeat(7,minmax(0,1fr));gap:0}
  .mobile-attendance-weekdays{padding-bottom:8px;border-bottom:1px solid #d7d7db;text-align:center;font-size:12px;font-weight:700}
  .mobile-attendance-weekdays>span:first-child{font-size:9px;color:#707078;align-self:center}
  .mobile-attendance-weekdays>span:nth-last-child(-n+2){color:#777780}
  .mobile-attendance-week{border-bottom:1px solid #dedee2;min-height:94px}
  .mobile-attendance-week:last-child{border-bottom:0}
  .mobile-attendance-week-number{color:#777780;font-size:10px;padding-top:15px;text-align:center}
  .mobile-attendance-day{min-width:0;padding:7px 1px 6px;text-align:center}
  .mobile-attendance-date{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 4px;font-size:20px;line-height:1;font-weight:600}
  .mobile-attendance-day.weekend .mobile-attendance-date{color:#808088}
  .mobile-attendance-day .mobile-attendance-date.today{background:#ff353e;color:#fff;border-radius:50%}
  .mobile-attendance-entry{display:block;min-width:0;margin-top:2px;padding:3px 0;text-decoration:none;border-radius:4px;font-size:10px;line-height:1.25;font-variant-numeric:tabular-nums;font-weight:600}
  .mobile-attendance-entry.in{color:#0961a8;background:#edf6ff}
  .mobile-attendance-entry.out{color:#ae2935;background:#fff0f1}
  .mobile-attendance-label{display:flex;align-items:center;justify-content:center;gap:1px;font-size:9px}
  .mobile-attendance-pin{font-size:9px}
  .mobile-attendance-entry time{display:block;white-space:nowrap}
  a.mobile-attendance-entry:focus-visible{outline:2px solid #0961a8;outline-offset:1px}
}

/* Prominent employee headings in activity and weekly views. */
#activityPanel .employee-group-heading,#weeklyPanel .employee-group-heading{padding:14px 16px;margin-top:22px;background:#8cf0cd;color:#062b25;border:1px solid #b5ffe5;border-left:6px solid #32c89b;border-radius:10px;box-shadow:0 3px 12px #0003;overflow-wrap:anywhere}
#activityPanel .employee-group-heading strong,#weeklyPanel .employee-group-heading strong{font-size:1.125rem;font-weight:900;line-height:1.4;color:inherit}
#weeklyBody td:nth-child(2)>strong{display:block;width:fit-content;padding:7px 11px;margin-bottom:7px;border-radius:7px;background:#8cf0cd;color:#062b25;font-size:1rem;font-weight:900;line-height:1.4}

.attendance-select{display:flex;align-items:center;gap:6px;min-height:32px;font-size:14px;cursor:pointer}.attendance-select input{width:18px;height:18px;accent-color:#167d60;flex-shrink:0}
.attendance-admin-controls,.attendance-selection-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 14px}.attendance-selection-bar{border:1px solid #386077;border-radius:12px;background:#102c40;margin-bottom:16px}.attendance-selection-bar small{flex-basis:100%;color:var(--muted);font-size:14px}
.attendance-admin-controls button,.attendance-selection-bar button,.attendance-admin-dialog button{min-height:42px;border:1px solid #4b758d;border-radius:8px;padding:9px 12px;background:#16394f;color:#fff;font-family:inherit;font-size:14px;font-weight:700;line-height:1.3;cursor:pointer}.attendance-admin-controls button:disabled,.attendance-selection-bar button:disabled,.attendance-admin-dialog button:disabled{opacity:.45;cursor:default}.attendance-admin-controls .danger,.attendance-selection-bar .danger,.attendance-admin-dialog .danger{background:#642431;color:#fff;border-color:#b25c69}
.attendance-admin-dialog{box-sizing:border-box;width:min(560px,calc(100% - 24px));max-height:85dvh;overflow:auto;border:1px solid #467087;border-radius:16px;background:#0d2033;color:#fff;padding:24px}.attendance-admin-dialog::backdrop{background:#020810bf}.attendance-admin-dialog h2{margin-top:0}.attendance-admin-dialog p{font-size:16px;line-height:1.5}.attendance-entry-fields{display:grid;gap:16px}.attendance-entry-fields label{display:grid;gap:8px}.attendance-entry-fields input{box-sizing:border-box;width:100%;min-width:0;padding:12px;border:1px solid #567388;border-radius:8px;background:#071321;color:#fff;font-size:16px;color-scheme:dark}.attendance-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.attendance-form-error{color:#ffadb8}.attendance-review-list{max-height:240px;overflow:auto;padding-left:20px;line-height:1.7}
@media(max-width:600px){.attendance-mobile-month .attendance-select{justify-content:center;min-height:32px}.attendance-mobile-month .attendance-select span{display:none}.attendance-admin-controls{display:grid;grid-template-columns:1fr 1fr}.attendance-selection-bar button{flex:1 1 42%}.attendance-admin-dialog{padding:18px}}
