.hr-attendance{--complete:#2b6d73;--partial:#b98221;--blank:#8896a6;--unknown:#dce3e9}
.hr-attendance h1,.hr-attendance h2,.hr-attendance h3,.hr-attendance p{margin-top:0}.attendance-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.6px;color:var(--muted);margin-bottom:7px}.attendance-heading h1{font-size:34px;line-height:1.15;letter-spacing:-1.1px;font-weight:720;margin:0 0 8px}.page-subtitle{color:var(--muted);font-size:14px;margin-bottom:0}.heading-actions{display:flex;align-items:center;gap:16px}.freshness{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.hr-attendance .button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:7px;padding:10px 16px;font-size:12px;font-weight:650;cursor:pointer;text-decoration:none}.hr-attendance .button-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.hr-attendance .button-secondary:hover{background:#f3f5f7}.hr-attendance .button-primary{background:var(--red);color:#fff}.hr-attendance .button-primary:hover{background:#ab0000}.hr-attendance .button-quiet{background:transparent;color:var(--muted);padding:10px}.hr-attendance button:disabled{opacity:.45;cursor:default}.hr-attendance .text-button{border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:650;padding:10px 0;min-height:44px;cursor:pointer;text-align:left}.text-button span{margin-left:8px}
.attendance-status{padding:18px 22px;border:1px solid var(--line);background:#fff;border-radius:var(--radius);margin:0 0 20px;color:var(--muted)}.attendance-status a{color:var(--red);font-weight:650;display:inline-block;padding:4px 0}.hr-attendance[data-view-state="signed-out"] .attendance-status,.hr-attendance[data-view-state="denied"] .attendance-status,.hr-attendance[data-view-state="error"] .attendance-status{padding:32px;max-width:680px;margin:40px auto}.loading-panel{display:grid;grid-template-columns:2fr 1fr;gap:20px;animation:pulse 1.5s ease-in-out infinite}.loading-panel div{border-radius:var(--radius);background:#e9edf1;height:280px}.loading-panel div:last-child{grid-column:1/-1;height:200px}@keyframes pulse{50%{opacity:.45}}
.filters{display:flex;gap:16px;align-items:end;margin:0 0 22px}.filters label{display:grid;gap:6px;font-size:11px;font-weight:650;color:var(--muted);min-width:0;flex:1}.filters label:nth-child(2){flex:1.25}.filters label:nth-child(3){flex:.75}.filters select,.filters input,.record-filter select{min-width:0;width:100%;height:44px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 12px;color:var(--ink);font-size:12px}.filters select{padding-right:28px}.filters .button{flex-shrink:0}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.overview-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(260px,1fr);gap:20px;margin-bottom:24px}.overview-panel{padding:22px 26px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2{font-size:18px;letter-spacing:-.35px;line-height:1.35;margin:0}.small-label{font-size:11px;color:var(--muted);font-weight:400;line-height:1.5}.coverage-heading{display:flex;align-items:center;gap:13px;margin:20px 0 16px}.coverage-heading>strong{font-size:42px;line-height:1;font-weight:650;letter-spacing:-1.5px}.coverage-heading>span{font-size:12px;line-height:1.5;color:var(--muted)}.coverage-heading .small-label{display:block}.coverage-bar{height:19px;display:flex;gap:3px;border-radius:5px;overflow:hidden;background:var(--surface)}.coverage-bar>span{min-width:0}.is-both{--record-color:var(--complete)}.is-review{--record-color:var(--partial)}.is-blank{--record-color:var(--blank)}.is-unknown{--record-color:var(--unknown)}.coverage-bar>span{background:var(--record-color)}.coverage-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:16px;row-gap:3px;margin:12px 0 10px}.hr-attendance .legend-button{display:flex;gap:9px;align-items:center;min-height:44px;padding:8px 4px;border:0;background:transparent;text-align:left;color:var(--muted);font-size:12px;cursor:pointer;border-radius:5px}.hr-attendance .legend-button:before{content:"";width:9px;height:9px;border-radius:2px;flex-shrink:0;background:var(--record-color)}.hr-attendance .legend-button strong{font-size:16px;color:var(--ink);margin-left:auto;font-weight:650}.hr-attendance .legend-button:hover,.hr-attendance .legend-button[aria-pressed="true"]{background:var(--surface)}.chart-note{font-size:11px;line-height:1.6;color:var(--muted);margin:0}.trend-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:18px 0 6px;padding-top:14px;border-top:1px solid #edf0f3}.trend-heading h3{font-size:12px;font-weight:650;margin:0}.trend-heading>span{font-size:10px;color:var(--muted)}.daily-chart svg{display:block;width:100%;height:132px;overflow:visible}.daily-chart text{font:10px var(--hr-font);fill:var(--muted)}.daily-chart .chart-grid{stroke:#e9edf1;stroke-width:1}.daily-chart .day-bar{fill:#aec5c7}.daily-chart .day-bar-today{fill:none;stroke:var(--complete);stroke-dasharray:3 2;stroke-width:1.3}
.review-stack{display:grid;grid-template-rows:1fr auto;gap:16px}.review-panel{position:relative;padding:25px 26px}.review-icon{position:absolute;top:22px;right:22px;color:#9d751f;background:#fcf6e9;border-radius:10px;padding:8px;display:flex}.review-panel .eyebrow{margin-top:3px}.review-panel h2{font-size:18px;letter-spacing:-.35px;margin-bottom:12px}.review-number{display:block;font-size:42px;font-weight:650;line-height:1.2;letter-spacing:-1.5px}.review-panel>p:not(.eyebrow){color:var(--muted);font-size:12px;line-height:1.6;margin:9px 0 17px;max-width:270px}.review-panel .button{width:100%;justify-content:space-between}.today-panel{padding:21px 24px}.today-panel h2{font-size:14px}.progress-label{font-size:10px;color:#8a681f;background:#fbf5e8;padding:3px 7px;border-radius:4px;white-space:nowrap}.today-panel>p:not(.chart-note){font-size:12px;color:var(--muted);margin:13px 0 7px;line-height:1.6}.today-panel strong{color:var(--ink);font-size:20px;font-weight:650;margin-right:4px}.today-panel .text-button{padding-bottom:0}
.records-panel{overflow:hidden}.records-heading{padding:22px 26px;border-bottom:1px solid var(--line)}.records-heading h2{font-size:18px}.records-heading .small-label{margin:5px 0 0}.record-filter{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);flex-shrink:0}.record-filter select{width:auto;max-width:245px}.table-wrap{overflow-x:auto}.records-panel table{border-collapse:collapse;width:100%;table-layout:fixed;text-align:left;font-size:12px}.records-panel th{font-weight:550;font-size:10px;letter-spacing:.3px;background:#fafbfc;color:var(--muted);padding:12px 16px;white-space:nowrap}.records-panel td{padding:15px 16px;border-top:1px solid #edf0f3;line-height:1.5;vertical-align:middle;overflow-wrap:anywhere}.records-panel th:first-child,.records-panel td:first-child{padding-left:26px;width:26%}.records-panel th:nth-child(2){width:11%}.records-panel th:nth-child(3){width:20%}.records-panel th:nth-child(4),.records-panel th:nth-child(5){width:13%}.records-panel th:last-child{width:17%}.records-panel tbody tr:hover{background:#fbfcfd}.person-name{display:block;font-size:12px;font-weight:650;line-height:1.5}.sub{display:block;font-size:10px;color:var(--muted);margin-top:3px}.missing{color:#95a0ac}.record-tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);white-space:nowrap}.record-tag:before{content:"";display:inline-block;width:6px;height:6px;flex-shrink:0;background:var(--record-color,#b98221);border-radius:50%}.record-tag.is-review{color:#8a681f}.record-tag.is-both{color:var(--complete)}.record-cards{display:none}.pager{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;border-top:1px solid var(--line);gap:10px}.pager>span{font-size:11px;color:var(--muted)}.pager>div{display:flex;gap:8px}.pager .button{font-size:11px;padding:8px 13px}.empty{text-align:center;padding:42px 20px}.empty h3{font-size:17px;margin:0 0 8px}.empty p{color:var(--muted);font-size:12px;margin:0 0 15px}.source-details{margin:19px 0 0;color:var(--muted);font-size:12px}.source-details>summary{cursor:pointer;min-height:44px;padding:12px 0;list-style-position:inside;font-weight:600}.source-details>summary span{float:right;font-size:10px;font-weight:400}.source-body{padding:14px 0;max-width:880px;font-size:12px}.source-body dl{display:grid;grid-template-columns:1fr 1fr;gap:15px 24px;margin:0 0 20px}.source-body dt{font-size:10px;margin-bottom:3px}.source-body dd{margin:0;color:var(--ink)}.source-body p{line-height:1.7}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1000px){.overview-grid{grid-template-columns:minmax(0,1.75fr) minmax(250px,1fr)}.overview-panel{padding:22px}.review-panel{padding:22px}.coverage-legend{grid-template-columns:1fr 1fr;column-gap:16px}.records-panel th,.records-panel td{padding-left:12px;padding-right:12px}.records-panel th:first-child,.records-panel td:first-child{padding-left:20px}}
@media(max-width:760px){.attendance-heading{gap:12px;margin-bottom:22px;align-items:start}.attendance-heading h1{font-size:29px}.heading-actions .button{padding:9px 12px}.page-subtitle{font-size:12px;line-height:1.5}.attendance-heading .eyebrow{display:none}.filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.filters label:nth-child(2){grid-column:2;grid-row:1}.filters .button{justify-self:end}.overview-grid{grid-template-columns:1fr;gap:16px}.overview-panel{padding:21px}.section-heading h2{font-size:17px}.coverage-heading{margin:23px 0 16px}.coverage-heading>strong{font-size:38px}.coverage-legend{column-gap:16px;row-gap:1px}.hr-attendance .legend-button{font-size:11px;gap:7px}.hr-attendance .legend-button strong{font-size:15px}.review-stack{display:contents}.review-panel{grid-row:1}.overview-panel{grid-row:2}.today-panel{grid-row:3}.review-panel{padding:20px}.review-icon{display:none}.review-panel .eyebrow{font-size:9px}.review-panel h2{font-size:16px}.review-number{font-size:34px}.review-panel>p:not(.eyebrow){font-size:11px}.today-panel{padding:20px}.today-panel .section-heading{flex-wrap:wrap;gap:6px}.records-heading{padding:20px;flex-wrap:wrap;gap:12px}.record-filter{width:100%;gap:15px;justify-content:space-between}.record-filter select{max-width:none;width:100%}.table-wrap{display:none}.record-cards{display:block}.record-card{padding:20px;border-bottom:1px solid var(--line)}.record-card:last-child{border:0}.record-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.record-card h3{font-size:13px;font-weight:650;margin:0 0 3px;overflow-wrap:anywhere}.record-card p{font-size:11px;color:var(--muted);margin:0}.record-card .record-tag{font-size:9px;flex-shrink:0}.record-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 0}.record-card dl>div:first-child{grid-column:1/-1}.record-card dt{font-size:10px;color:var(--muted);margin-bottom:3px}.record-card dd{font-size:12px;margin:0}.pager{padding:14px 20px}.pager>span{font-size:10px}.source-body dl{grid-template-columns:1fr}.loading-panel{grid-template-columns:1fr}.loading-panel div:nth-child(2){display:none}.loading-panel div{height:290px}}
@media(max-width:450px){.overview-panel{padding:19px 17px}.section-heading{gap:10px}.overview-panel .section-heading .small-label{max-width:62px;text-align:right}.coverage-legend{grid-template-columns:1fr 1fr;column-gap:10px}.hr-attendance .legend-button{font-size:10px}.hr-attendance .legend-button strong{font-size:14px}.review-stack{grid-template-columns:1fr}.review-panel{padding:20px}.review-number{font-size:36px;float:left;margin-right:15px;min-width:48px}.review-panel>p:not(.eyebrow){min-height:44px;margin-top:4px;margin-bottom:17px}.review-panel .button{clear:both}.today-panel{padding:20px}.today-panel .section-heading{flex-wrap:nowrap}.record-card-head{display:block}.record-card-head .record-tag{margin-top:9px}.pager{padding:14px 16px;flex-wrap:wrap}.pager>div{margin-left:auto}.source-details>summary span{display:none}.attendance-heading h1{font-size:28px}.heading-actions .button{font-size:11px;padding:9px 10px}.heading-actions svg{width:14px}.coverage-heading>strong{font-size:36px}.filters select,.filters input{padding:8px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.loading-panel{animation:none}}
@media print{.heading-actions,.filters,.review-button,.record-filter,.pager,.source-details,.coverage-legend button{print-color-adjust:exact}.table-wrap{display:block!important}.record-cards{display:none!important}.overview-grid{display:block}.review-stack{display:none}.panel{break-inside:avoid}}

/* The Hub shell already supplies the section identity. */
.attendance-heading>.eyebrow,.attendance-heading>div>.eyebrow{display:none}

/* Keep capture, check and retry feedback beside the existing page actions. */
.attendance-heading>div:first-child{min-width:0}
.attendance-heading .attendance-status{padding:0;border:0;background:transparent;border-radius:0;margin:6px 0 0;max-width:62ch;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.hr-attendance .attendance-heading .attendance-status{margin:6px 0 0;padding:0}
.heading-actions{flex-shrink:0}
@media(max-width:450px){.attendance-heading{gap:10px}.attendance-heading .attendance-status,.freshness{font-size:10px}}

@media(max-width:450px){.attendance-heading{position:relative;display:block}.attendance-heading .heading-actions{position:absolute;right:0;top:0}.attendance-heading h1{padding-right:112px}.attendance-heading .page-subtitle{padding-right:0}}

.person-calendar-hint{font-weight:400;font-size:10px}.person-calendar{padding:20px 24px;margin-bottom:22px;min-width:0}.person-calendar .section-heading{align-items:start;margin-bottom:8px}.person-calendar h2{overflow-wrap:anywhere}.calendar-month-label{display:grid;gap:5px;font-size:11px;color:var(--muted);flex-shrink:0}.calendar-month-label select{max-width:180px;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink)}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;max-width:720px;margin-top:14px}.calendar-weekday{text-align:center;font-size:11px;color:var(--muted);padding:4px 0}.hr-attendance .calendar-day{display:grid;gap:3px;align-content:center;text-align:left;min-width:0;min-height:52px;padding:6px 10px;border:1px solid var(--line);border-bottom:3px solid var(--record-color);border-radius:4px;background:#fff;color:var(--ink);cursor:pointer}.calendar-day strong{font-size:14px}.calendar-day span{font-size:10px;overflow-wrap:anywhere}.hr-attendance .calendar-day[aria-pressed="true"]{outline:2px solid var(--red);outline-offset:1px;background:#fff4f4}.hr-attendance .calendar-day[aria-current="date"] strong{text-decoration:underline;text-underline-offset:3px}.hr-attendance .calendar-day:disabled{opacity:1;color:var(--muted);background:var(--surface);border-bottom-color:var(--line)}.calendar-selection{display:flex;gap:12px;align-items:center;justify-content:space-between;max-width:720px}.calendar-selection p{margin:8px 0}.review-people{list-style:none;padding:0;margin:10px 0 14px}.review-people li+li{border-top:1px solid var(--line)}.hr-attendance .review-person{display:grid;gap:5px;text-align:left;width:100%;min-height:44px;border:0;background:transparent;color:var(--ink);padding:10px 0;cursor:pointer;overflow-wrap:anywhere}.review-person strong{font-size:12px;font-weight:650}.review-person span{font-size:11px;line-height:1.5;color:var(--muted)}.hr-attendance .review-person:hover{background:var(--surface)}.hr-attendance .calendar-day:focus-visible,.hr-attendance .review-person:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media(max-width:600px){.person-calendar{padding:14px 12px}.person-calendar .section-heading{display:grid;gap:10px}.calendar-month-label{display:flex;align-items:center;gap:10px}.calendar-days{gap:3px}.hr-attendance .calendar-day{padding:5px 3px;min-height:48px}.calendar-day strong{font-size:12px}.calendar-day span{font-size:9px}.calendar-weekday{font-size:10px}.calendar-selection{align-items:start;flex-direction:column;gap:0}.calendar-selection p{margin-bottom:0}}

/* Person mode pairs the month with its review action; coverage follows below. */
.overview-grid.is-person-mode{align-items:start;grid-template-rows:auto auto}.overview-grid.is-person-mode>.person-calendar{grid-column:1;grid-row:1;margin-bottom:0}.overview-grid.is-person-mode>.overview-panel{grid-column:1;grid-row:2}.overview-grid.is-person-mode>.review-stack{grid-column:2;grid-row:1 / span 2;grid-template-rows:auto auto;align-content:start}.person-calendar .section-heading>div{min-width:0}
@media(max-width:760px){.overview-grid.is-person-mode{grid-template-rows:none}.overview-grid.is-person-mode>.person-calendar{grid-column:1;grid-row:1}.overview-grid.is-person-mode>.overview-panel{grid-column:1;grid-row:3}.overview-grid.is-person-mode>.review-stack{grid-column:auto;grid-row:auto}.overview-grid.is-person-mode .review-panel{grid-column:1;grid-row:2}.overview-grid.is-person-mode .today-panel{grid-column:1;grid-row:4}}
@media(max-width:600px){.calendar-days{gap:2px}.hr-attendance .calendar-day{padding-left:1px;padding-right:1px}}

/* Mobile records stay scannable and offer paging before the first card. */
.pager-top{display:none}
@media(max-width:760px){
  .pager-top{display:flex;border-top:0;border-bottom:1px solid var(--line)}
  .record-card{padding:12px 16px}
  .record-card-head{display:flex;align-items:center;gap:10px}
  .record-card-head .record-tag{margin:0}
  .record-card dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 0}
  .record-card dl>div:first-child{grid-column:auto}
  .record-card dt{font-size:9px}
  .record-card dd{font-size:11px;overflow-wrap:anywhere}
}
@media(max-width:450px){
  .record-card-head{display:flex}
  .record-card-head .record-tag{margin:0}
  .record-card dl{grid-template-columns:1.15fr .85fr .85fr}
}
@media print{.pager-top{display:none!important}}
