.attendance-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;border-bottom:1px solid var(--line);padding-bottom:14px}
.attendance-tabs button{border:1px solid transparent;background:transparent;border-radius:9px;padding:11px 14px;min-height:44px;color:var(--muted);font-size:12px;font-weight:600}
.attendance-tabs button.active{background:var(--green-soft);border-color:#d6e5d8;color:var(--green)}
.attendance-panel{margin-bottom:20px}.attendance-panel>.card+.card,.attendance-panel>.attendance-split{margin-top:20px}
.attendance-split{display:grid;grid-template-columns:minmax(290px,.85fr) minmax(340px,1.15fr);gap:22px;align-items:start}
.attendance-filter-row{display:grid;grid-template-columns:1fr .7fr;gap:12px}.attendance-filter-row .field{margin-bottom:12px}
.employees-list{display:flex;flex-direction:column;gap:5px;max-height:480px;overflow-y:auto}
.employee-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 12px;background:white;border:1px solid transparent;border-radius:9px;text-align:left;min-height:68px;color:var(--ink)}
.employee-row:hover{background:#f5f8f1}.employee-row.selected{background:var(--green-soft);border-color:#d8e5d6}
.employee-row strong{display:block;font-size:13px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}.employee-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.5}
.employee-name-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.employee-name-fields .field{min-width:0}.employee-position{font-size:12px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}.employee-row .employee-position{font-size:11px;color:var(--ink)}.employee-row>span:first-child{min-width:0}.badge-display>.employee-position{margin:8px 0 0}
.employee-registry-tabs{display:flex;gap:6px;margin:20px 0 0}.employee-registry-tabs button{min-height:44px;flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font-size:12px}.employee-registry-tabs button[aria-pressed="true"]{background:var(--green-soft);border-color:var(--green);font-weight:700}.employee-search-row .field{margin-bottom:14px}.employee-archive-action{margin-top:20px}.employee-danger-zone{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.button-danger{background:#E6685C;color:#26261F;border-color:#E6685C}.button-danger:hover:not(:disabled){background:var(--ink);color:white}.employee-delete-open{overflow:hidden}.employee-delete-overlay{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.48)}.employee-delete-card{width:100%;max-width:560px;max-height:90vh;overflow-y:auto;background:white;color:var(--ink);border-radius:18px;padding:28px;box-shadow:0 18px 70px rgba(0,0,0,.2)}.employee-delete-card h2{font-size:20px;line-height:1.5;overflow-wrap:anywhere;margin:0 0 15px}.employee-delete-card>p{font-size:13px;line-height:1.8}.employee-delete-counts{font-size:12px;line-height:1.8;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:10px;margin:16px 0}.employee-delete-counts ul{margin:0;padding-left:18px}.employee-delete-card .button-row{align-items:stretch}.employee-delete-card .button{min-height:44px}.employee-delete-card textarea{max-width:100%}
.presence-pill{font-size:10px;white-space:nowrap;color:#6d7769;background:#f1f2ed;border-radius:6px;padding:5px 7px}.presence-pill.present{color:var(--green);background:#dcecdf}
.presence-line{font-size:12px;line-height:1.8;color:var(--muted)}.check-row{display:flex;align-items:center;gap:10px;font-size:12px;margin:18px 0 9px}.check-row input{accent-color:var(--green);width:17px;height:17px}
.field textarea{width:100%;border:1px solid #d8dfd4;border-radius:8px;padding:11px;background:white;resize:vertical;min-height:90px;color:var(--ink);font-size:13px;line-height:1.6}
.attendance-retry{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 20px;border:1px solid #e8c99c;border-radius:12px;background:#fff5e5;margin-bottom:18px;font-size:12px;line-height:1.6}.attendance-retry p{font-size:11px;margin:5px 0 0;color:#8a673a}.attendance-retry .button{flex-shrink:0}
.badge-display{margin-top:20px;border:1px solid #d8e3d7;border-radius:12px;background:#f7faf4;padding:18px}.badge-display strong{font-size:13px;overflow-wrap:anywhere}.badge-display .activity-header{align-items:flex-start}.badge-display>img{display:block;margin:15px auto;width:min(100%,240px);height:auto;background:white;padding:6px;border:1px solid #e1e5db}.badge-readable-code{display:block;font-family:monospace;font-size:11px;line-height:1.7;overflow-wrap:anywhere;margin:12px 0 18px;padding:9px;background:white;border-radius:6px;user-select:all}
.period-filter{display:grid;grid-template-columns:minmax(180px,1fr) minmax(125px,.65fr) minmax(125px,.65fr) auto;gap:12px;align-items:end}.period-filter .field{margin-bottom:0}.period-filter>.button{margin-bottom:0}
.attendance-table-wrap{overflow-x:auto;max-width:100%;margin-top:18px}.attendance-table{width:100%;border-collapse:collapse;text-align:left;min-width:600px;font-size:12px;line-height:1.6}.attendance-table th{font-size:10px;color:var(--muted);font-weight:600;padding:12px 10px;border-bottom:1px solid #dce5d7;vertical-align:bottom}.attendance-table td{border-bottom:1px solid #edf0e7;padding:13px 10px;vertical-align:top;overflow-wrap:anywhere}.attendance-table td:first-child{max-width:210px}.attendance-table small{display:block;font-size:10px;color:var(--muted);line-height:1.6;margin-top:5px}
.history-correction-grid{grid-template-columns:1fr 1fr}.history-correction-grid .card h2{margin-bottom:18px}.corrections-list{max-height:600px;overflow-y:auto}.correction-row{padding:15px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.6}.correction-row:first-child{border-top:0}.correction-row strong{font-weight:600}.correction-row p{margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}.correction-row small{font-size:10px;color:var(--muted);line-height:1.7}
.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.report-summary>div{background:var(--green-soft);border:1px solid #deeadb;border-radius:11px;padding:16px;display:flex;flex-direction:column;gap:9px}.report-summary span{font-size:10px;color:var(--muted);line-height:1.6}.report-summary strong{font-size:20px;font-weight:550;letter-spacing:-.5px;line-height:1.3}.report-people{display:flex;flex-direction:column;gap:10px}.report-person{border:1px solid var(--line);border-radius:11px;padding:0 17px}.report-person summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;padding:17px 0;font-size:13px;line-height:1.7;list-style:none}.report-person summary:before{content:"+";color:var(--green);font-size:17px;flex-shrink:0}.report-person[open] summary:before{content:"−"}.report-person summary>span{flex:1;overflow-wrap:anywhere}.report-person summary>strong{font-weight:600;white-space:nowrap}.report-person h3{font-size:13px;margin:19px 0 12px}.report-person .attendance-table-wrap{margin-top:0}.report-person .attendance-table{font-size:11px}.interval-list,.exceptions-list{padding:0;list-style:none;font-size:11px;line-height:1.8;margin:0 0 18px}.interval-list>li{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid #f0f2ec}.interval-list>li>span:last-child{white-space:nowrap}.exceptions-list{color:#9a6534}.exceptions-list li{padding:7px 0;border-top:1px solid #f0e7da}.open-interval{color:#9a6534!important;font-size:11px;font-weight:600}
.heatmap{border-collapse:separate;border-spacing:3px;font-size:10px;min-width:890px;width:100%;text-align:center}.heatmap th{font-weight:500;color:var(--muted);font-size:9px;line-height:1.6;padding:7px 3px}.heatmap tr>th:first-child{white-space:nowrap;text-align:left;padding-right:12px}.heat-cell{border:1px solid #eef0e8;border-radius:4px;min-width:25px;height:31px;background:#f7f8f3;color:#afb5a7;font-weight:600}.heat-cell.has-people{background:color-mix(in srgb,var(--green) calc(var(--heat)*100%),white);border-color:#c4d8c3;color:#17361f}
.business-warning .event-check{background:#fff0d9;color:#a06c29}.business-warning .event-body strong{color:#926330}.business-event .event-body p{color:var(--muted)}
.badge-print-sheet{display:none}.printed-badge{box-sizing:border-box;display:grid;grid-template-areas:"logo" "name" "position" "qr" "version";grid-template-rows:12mm 13mm 8mm 38mm 4mm;grid-template-columns:minmax(0,1fr);align-content:center;align-items:center;justify-items:center;text-align:center;width:60mm;height:90mm;padding:4mm;gap:1mm;color:var(--ink);background:white;direction:ltr;border:.2mm dashed #d9ddd5}.printed-wordmark{grid-area:logo;display:block;width:34mm;height:12mm;object-fit:contain}.printed-badge h1{grid-area:name;font-family:Unbounded,Onest,sans-serif;font-size:9.5pt;font-weight:600;line-height:1.2;overflow-wrap:anywhere;margin:0;width:100%;min-width:0;min-height:0}.printed-badge p{grid-area:position;font-family:Onest,sans-serif;font-size:7.5pt;line-height:1.25;margin:0;width:100%;min-width:0;min-height:0;overflow-wrap:anywhere}.printed-badge .printed-badge-qr{grid-area:qr;display:block;width:38mm;height:38mm;object-fit:contain;background:white}.printed-badge .printed-badge-version{grid-area:version;font-size:6.5pt;line-height:1.2;margin:0}.preparing-badge>#badge-print-sheet:not([hidden]){display:block;position:fixed;left:-10000px;top:0;width:200mm;visibility:hidden;pointer-events:none}.employee-list-entry{display:flex;gap:3px;align-items:center}.employee-list-entry .employee-row{flex:1;min-width:0}.badge-print-choice{display:flex;align-items:center;justify-content:center;padding:10px 4px;min-width:28px}.badge-print-choice input{width:18px;height:18px;accent-color:var(--green)}.badges-print-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0 0}.badges-print-toolbar .button{font-size:11px;padding:9px 12px}.employee-delete-alternative{background:var(--green-soft);padding:12px;border-radius:10px}.period-filter .field select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2326261F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px}.period-filter .field{min-width:0}
@media(max-width:1100px){.attendance-split{grid-template-columns:1fr 1fr;gap:17px}.period-filter{grid-template-columns:1fr 1fr}.period-filter>.button{width:100%}.report-summary{grid-template-columns:1fr 1fr}.report-summary strong{font-size:18px}}
@media(max-width:850px){.attendance-split{grid-template-columns:1fr 1.1fr}.attendance-tabs{gap:4px}.attendance-tabs button{padding:10px 12px;font-size:11px}.attendance-filter-row{grid-template-columns:1fr}.attendance-filter-row .field{margin-bottom:0}.employees-list{margin-top:17px;max-height:420px}}
@media(max-width:680px){.attendance-split{grid-template-columns:1fr}.employees-list{max-height:330px}.attendance-tabs{gap:5px;margin-bottom:18px}.attendance-tabs button{flex:1 1 calc(50% - 5px);padding:11px 9px;min-height:43px;font-size:11px}.attendance-filter-row{grid-template-columns:1.1fr 1fr}.attendance-filter-row .field{margin-top:15px}.attendance-retry{flex-direction:column;align-items:stretch;gap:10px;padding:15px}.attendance-retry .button{width:100%}.period-filter{gap:9px}.period-filter>.field:first-child{grid-column:1/-1}.period-filter>.button{grid-column:1/-1;margin-top:5px}.period-filter .field{margin-top:14px}.report-summary{gap:8px}.report-summary>div{padding:12px}.report-summary span{font-size:9px}.report-summary strong{font-size:17px}.activity-header>#attendance-csv-button{font-size:10px;max-width:120px;padding:9px 10px}.report-person{padding:0 12px}.report-person summary{font-size:11px;gap:9px}.report-person summary>strong{font-size:11px}.interval-list>li{display:flex;flex-direction:column;gap:3px}.history-correction-grid .card{padding:20px}.badge-display>img{width:220px}.badge-display .button{font-size:11px}.attendance-panel .card h2{font-size:20px}}
/* Each explicit page holds 3 × 3 fixed-size cards; cards start at the top-left and continue left-to-right. */
.badge-print-page{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,60mm);grid-auto-rows:90mm;gap:2mm;direction:ltr;justify-content:left;align-content:start;width:200mm;height:286mm;break-inside:avoid;break-after:page}
.badge-print-page:last-child{break-after:auto}
@media print{body.printing-badge{background:white;margin:0;padding:0}body.printing-badge>*{display:none!important}body.printing-badge>#badge-print-sheet:not([hidden]){display:block!important;position:static;padding:0;margin:0;width:200mm;page:employee-badges}.printed-badge{break-inside:avoid;break-after:auto;box-shadow:none}.badge-print-page[hidden]{display:none!important}body:not(.printing-badge):not(.printing-box)>*{display:none!important}@page employee-badges{size:A4 portrait;margin:5mm}}


.corrected-interval{display:block;color:var(--green);font-size:10px;font-weight:600;line-height:1.7}
@media(max-width:680px){.employee-name-fields{grid-template-columns:1fr;gap:0}.employee-name-fields .field:first-child{margin-bottom:0}}
@media(max-width:420px){.employee-delete-overlay{padding:12px}.employee-delete-card{padding:21px;max-height:94vh}.employee-delete-card h2{font-size:17px}.employee-delete-card .button-row .button{width:100%}}

.employee-schedule{margin-top:24px}.schedule-weekdays{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.schedule-weekdays label{display:flex;align-items:center;gap:6px;background:var(--green-soft);padding:8px 10px;border-radius:8px;font-size:12px}.schedule-weekdays input{accent-color:var(--green);width:17px;height:17px}.employee-schedule details{margin-top:16px;font-size:12px}.schedule-comparison-line{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:4px}.schedule-comparison-box{background:var(--green-soft);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:6px;font-size:12px}.schedule-comparison-box strong{font-size:15px}

.printed-badge h1[data-long-name="true"]{font-size:8.5pt}
