.roster-page[data-v-9a5ebf44]{--roster-primary:#2563eb;--roster-ink:#172a45;--roster-muted:#64748b;--roster-border:#e5ebf3;--roster-work-bg:#edf9f0;--roster-work-ink:#237443;--roster-leave-bg:#fff0ef;--roster-leave-ink:#ad3535;--roster-comp-bg:#eef3ff;--roster-comp-ink:#345aa7;min-width:0;color:var(--roster-ink)}.roster-panel[data-v-9a5ebf44]{border:1px solid var(--roster-border);background:#fff;border-radius:14px;overflow:hidden}.roster-header[data-v-9a5ebf44]{justify-content:space-between;align-items:center;gap:24px;padding:24px 26px;display:flex}.eyebrow[data-v-9a5ebf44]{color:var(--roster-muted);margin-bottom:8px;font-size:12px}.roster-header h2[data-v-9a5ebf44]{letter-spacing:.3px;align-items:center;gap:12px;margin:0;font-size:23px;display:flex}.roster-header p[data-v-9a5ebf44]{color:var(--roster-muted);margin:9px 0 0;font-size:13px}.header-actions[data-v-9a5ebf44],.scope-controls[data-v-9a5ebf44],.week-controls[data-v-9a5ebf44]{align-items:center;gap:10px;display:flex}.header-actions[data-v-9a5ebf44]{flex-wrap:wrap}.unsaved-dot[data-v-9a5ebf44]{color:#9a6700;font-size:12px}.unsaved-dot[data-v-9a5ebf44]:before{content:"";background:#d69c28;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.roster-filters[data-v-9a5ebf44]{border-top:1px solid var(--roster-border);border-bottom:1px solid var(--roster-border);background:#f8fafd;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 26px;display:flex}.store-label[data-v-9a5ebf44]{font-size:15px;font-weight:600}.week-controls[data-v-9a5ebf44] .el-button{margin-left:0}.week-caption[data-v-9a5ebf44]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 26px;display:flex}.week-caption b[data-v-9a5ebf44]{font-variant-numeric:tabular-nums;font-size:14px}.week-caption span[data-v-9a5ebf44]{color:var(--roster-muted);margin-left:14px;font-size:12px}.legend-list[data-v-9a5ebf44]{gap:16px;display:flex}.legend-list .legend-item[data-v-9a5ebf44]{align-items:center;gap:6px;margin:0;display:inline-flex}.legend-item i[data-v-9a5ebf44]{border:1px solid #cbd5e1;border-radius:3px;width:9px;height:9px}.legend-item i.work[data-v-9a5ebf44]{background:#78ba8d;border-color:#78ba8d}.legend-item i.leave[data-v-9a5ebf44]{background:#e89797;border-color:#e89797}.legend-item i.comp[data-v-9a5ebf44]{background:#8aa9e8;border-color:#8aa9e8}.legend-item i.rest[data-v-9a5ebf44]{background:#fff}.legend-item i.unassigned[data-v-9a5ebf44]{background:#fff;border-style:dashed}.roster-scroll[data-v-9a5ebf44]{border:1px solid var(--roster-border);border-radius:10px;margin:0 26px 20px;overflow:auto}.roster-table[data-v-9a5ebf44]{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1180px;font-size:13px}.roster-table th[data-v-9a5ebf44],.roster-table td[data-v-9a5ebf44]{border-right:1px solid var(--roster-border);border-bottom:1px solid var(--roster-border);text-align:center;padding:8px}.roster-table tr:last-child th[data-v-9a5ebf44],.roster-table tr:last-child td[data-v-9a5ebf44]{border-bottom:0}.roster-table th[data-v-9a5ebf44]:last-child,.roster-table td[data-v-9a5ebf44]:last-child{border-right:0}.roster-table thead th[data-v-9a5ebf44]{height:62px;color:var(--roster-muted);background:#f8fafd;font-weight:500}.roster-table thead th[data-v-9a5ebf44]:first-child{text-align:left;width:150px;padding-left:18px}.roster-table small[data-v-9a5ebf44]{color:var(--roster-muted);margin-top:5px;font-size:11px;font-weight:400;display:block}.weekday[data-v-9a5ebf44]{font-size:12px}.date-number[data-v-9a5ebf44]{color:var(--roster-ink);font-variant-numeric:tabular-nums;margin-top:6px;font-size:15px;font-weight:600;display:block}.today-badge[data-v-9a5ebf44]{color:var(--roster-primary);margin-left:5px;font-size:10px}.roster-table .today-column[data-v-9a5ebf44]{background:#f6f9ff}.roster-table tbody th[data-v-9a5ebf44]{z-index:1;text-align:left;background:#fff;padding-left:14px;position:sticky;left:0}.employee-name[data-v-9a5ebf44]{text-align:left;cursor:pointer;color:var(--roster-ink);background:0 0;border:0;align-items:center;gap:10px;padding:4px;font-family:inherit;display:flex}.employee-name b[data-v-9a5ebf44]{font-size:14px;font-weight:600}.employee-name:hover b[data-v-9a5ebf44]{color:var(--roster-primary)}.employee-avatar[data-v-9a5ebf44]{color:#45699f;background:#eef3fc;border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:600;display:inline-flex}.shift-cell[data-v-9a5ebf44]{box-sizing:border-box;width:100%;height:var(--roster-cell-height,96px);min-height:var(--roster-cell-height,96px);cursor:pointer;color:var(--roster-ink);background:#fff;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:8px 6px;font-family:inherit;transition:background .15s,border-color .15s;display:flex;position:relative}.shift-state[data-v-9a5ebf44]{justify-content:center;align-items:center;gap:6px;display:flex}.punch-summary[data-v-9a5ebf44]{font-variant-numeric:tabular-nums;color:#586b84;gap:2px;width:100%;font-size:11px;font-weight:400;line-height:14px;display:grid}.punch-summary em[data-v-9a5ebf44]{color:#9a6700;font-style:normal}.shift-cell[data-v-9a5ebf44]:has(.punch-summary){gap:4px}.plan-summary .punch-segment[data-v-9a5ebf44]{color:#74849a}.pending-note[data-v-9a5ebf44]{color:#9a6700;font-size:10px;line-height:12px}.punch-segment[data-v-9a5ebf44]{white-space:nowrap;color:#526780;font-size:11px}.punch-total[data-v-9a5ebf44]{color:#526780;font-weight:500}.punch-summary>span[data-v-9a5ebf44]:last-child{white-space:nowrap}.punch-summary em[data-v-9a5ebf44]{font-size:10px;line-height:12px;display:block}.shift-cell b[data-v-9a5ebf44]{font-size:20px;font-weight:600;line-height:1.4}.shift-cell.work[data-v-9a5ebf44]{background:var(--roster-work-bg);color:var(--roster-work-ink)}.shift-cell.leave[data-v-9a5ebf44]{background:var(--roster-leave-bg);color:var(--roster-leave-ink)}.shift-cell.comp[data-v-9a5ebf44]{background:var(--roster-comp-bg);color:var(--roster-comp-ink)}.shift-cell.rest[data-v-9a5ebf44]{border-color:var(--roster-border)}.shift-cell.unassigned[data-v-9a5ebf44]{color:#6d7e95;border:1px dashed #dae2ed}.shift-cell.overtime[data-v-9a5ebf44]{color:#946519;background:#fff6dd}.shift-cell[data-v-9a5ebf44]:hover{background:#f0f5ff;border-color:#94b6f0}.shift-cell.readonly-cell[data-v-9a5ebf44]{cursor:help}.cell-lock[data-v-9a5ebf44]{color:#93a1b3;font-size:10px;position:absolute;top:5px;right:5px}.employee-name[data-v-9a5ebf44]:focus-visible,.shift-cell[data-v-9a5ebf44]:focus-visible,.shift-option[data-v-9a5ebf44]:focus-visible{outline-offset:2px;outline:3px solid #93b5f4}.empty[data-v-9a5ebf44]{color:var(--roster-muted);padding:36px!important}.roster-footer[data-v-9a5ebf44]{color:var(--roster-muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:0 26px 22px;font-size:12px;display:flex}.roster-footer>span[data-v-9a5ebf44]:first-child{align-items:center;gap:7px;display:flex}.roster-day-dialog{border-radius:16px;padding:24px}.roster-day-dialog .el-dialog__header{padding-bottom:18px}.roster-day-dialog .el-dialog__title{color:#172a45;font-size:18px;font-weight:600}.dialog-person[data-v-9a5ebf44]{background:#f8fafd;border:1px solid #edf1f7;border-radius:10px;align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.employee-avatar.large[data-v-9a5ebf44]{width:44px;height:44px;font-size:18px}.dialog-person h3[data-v-9a5ebf44]{color:#172a45;margin:0;font-size:16px}.dialog-person h3 span[data-v-9a5ebf44]{color:#64748b;margin-left:10px;font-size:11px;font-weight:400}.dialog-person p[data-v-9a5ebf44]{color:#64748b;margin:6px 0 0;font-size:12px}.current-state[data-v-9a5ebf44]{color:#64748b;margin-left:auto;font-size:12px}.field-label[data-v-9a5ebf44]{color:#334155;margin:0 0 12px;font-size:13px;font-weight:600;display:block}.shift-options[data-v-9a5ebf44]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.shift-option[data-v-9a5ebf44]{text-align:left;color:#334155;cursor:pointer;background:#fff;border:1px solid #e0e7f0;border-radius:10px;min-height:88px;padding:16px;font-family:inherit;transition:border-color .18s,background .18s}.option-heading[data-v-9a5ebf44]{align-items:center;gap:8px;display:flex}.option-heading b[data-v-9a5ebf44]{font-size:14px;font-weight:600}.option-heading>.el-icon[data-v-9a5ebf44]{font-size:18px}.option-heading .selected-check[data-v-9a5ebf44]{color:#2563eb;margin-left:auto}.shift-option small[data-v-9a5ebf44]{color:#64748b;margin-top:8px;font-size:12px;line-height:1.5;display:block}.shift-option[data-v-9a5ebf44]:hover{border-color:#9bbaf2}.shift-option.work .option-heading[data-v-9a5ebf44]{color:#237443}.shift-option.leave .option-heading[data-v-9a5ebf44]{color:#ad3535}.shift-option.comp .option-heading[data-v-9a5ebf44]{color:#345aa7}.shift-option.selected[data-v-9a5ebf44]{background:#f2f6ff;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.shift-option[data-v-9a5ebf44]:disabled{cursor:not-allowed;opacity:.65;background:#fafbfd;border-color:#e8edf4}.readonly-notice[data-v-9a5ebf44]{margin-bottom:18px}.dialog-note[data-v-9a5ebf44]{color:#64748b;margin-top:14px;font-size:12px;line-height:1.6}.leave-note[data-v-9a5ebf44]{margin-top:20px}.leave-note .field-label span[data-v-9a5ebf44]{color:#ad3535}.field-error[data-v-9a5ebf44]{color:#ad3535;margin:7px 0;font-size:12px}.dialog-actions[data-v-9a5ebf44]{border-top:1px solid #edf1f7;justify-content:flex-end;align-items:center;gap:10px;padding-top:18px;display:flex}.dialog-actions>span[data-v-9a5ebf44]{color:#64748b;margin-right:auto;font-size:11px}.dialog-actions[data-v-9a5ebf44] .el-button{margin-left:0}.balance-summary[data-v-9a5ebf44]{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.balance-summary>div[data-v-9a5ebf44]{background:#f5f8fc;border-radius:8px;gap:9px;padding:15px;display:grid}.balance-summary small[data-v-9a5ebf44],.hint[data-v-9a5ebf44]{color:#64748b}.hint[data-v-9a5ebf44]{font-size:12px;line-height:1.6}.balance-summary b[data-v-9a5ebf44]{color:#2563eb;font-size:22px}.expiring[data-v-9a5ebf44]{color:#b45309}@media (width<=900px){.roster-header[data-v-9a5ebf44]{align-items:flex-start}.roster-header[data-v-9a5ebf44],.roster-filters[data-v-9a5ebf44],.week-caption[data-v-9a5ebf44]{padding:18px}.roster-scroll[data-v-9a5ebf44]{margin-left:18px;margin-right:18px}.roster-footer[data-v-9a5ebf44]{padding-left:18px;padding-right:18px}.scope-controls[data-v-9a5ebf44]{flex-wrap:wrap}.header-actions[data-v-9a5ebf44]{justify-content:flex-end}.unsaved-dot[data-v-9a5ebf44]{text-align:right;width:100%}}@media (width<=600px){.roster-header[data-v-9a5ebf44]{flex-direction:column;gap:16px}.header-actions[data-v-9a5ebf44]{justify-content:flex-start;width:100%}.unsaved-dot[data-v-9a5ebf44]{width:auto}.roster-header h2[data-v-9a5ebf44]{font-size:21px}.week-controls[data-v-9a5ebf44]{gap:6px}.legend-list[data-v-9a5ebf44]{gap:10px}.balance-summary[data-v-9a5ebf44]{grid-template-columns:1fr}.current-state[data-v-9a5ebf44],.dialog-actions>span[data-v-9a5ebf44]{display:none}.shift-option[data-v-9a5ebf44]{padding:12px}.shift-option small[data-v-9a5ebf44]{font-size:11px}}@media (prefers-reduced-motion:reduce){.shift-cell[data-v-9a5ebf44],.shift-option[data-v-9a5ebf44]{transition:none}}.day-markers[data-v-9a5ebf44]{flex-wrap:wrap;justify-content:center;gap:3px;max-width:100%;display:flex}.day-marker[data-v-9a5ebf44]{white-space:normal;color:#64748b;background:#edf1f6;border-radius:4px;padding:0 5px;font-size:10px;line-height:15px;display:inline-block}.day-marker.warning[data-v-9a5ebf44]{color:#ad5800;background:#fff1de}.day-marker.leave[data-v-9a5ebf44]{color:#ad3535;background:#ffe7e7}.day-marker.approved[data-v-9a5ebf44]{color:#355cab;background:#e6edff}.detail-markers[data-v-9a5ebf44]{justify-content:flex-start;margin:12px 0}.detail-markers .day-marker[data-v-9a5ebf44]{font-size:12px;line-height:22px}.approval-detail[data-v-9a5ebf44]{border:1px solid #edf1f7;border-radius:8px;margin:8px 0;padding:10px 12px;font-size:12px}.approval-detail p[data-v-9a5ebf44]{color:#64748b;margin:6px 0}.shift-subtitle[data-v-9a5ebf44]{font-size:12px;font-weight:500;line-height:1.5}.shift-cell.normal[data-v-9a5ebf44],.detail-status.normal[data-v-9a5ebf44]{color:#237443;background:#edf9f0}.shift-cell.late[data-v-9a5ebf44],.shift-cell.early[data-v-9a5ebf44],.shift-cell.incomplete[data-v-9a5ebf44],.detail-status.late[data-v-9a5ebf44],.detail-status.early[data-v-9a5ebf44],.detail-status.incomplete[data-v-9a5ebf44]{color:#a75b12;background:#fff2e4}.shift-cell.personal[data-v-9a5ebf44],.detail-status.personal[data-v-9a5ebf44]{color:#245ca8;background:#eaf2ff}.shift-cell.sick[data-v-9a5ebf44],.detail-status.sick[data-v-9a5ebf44]{color:#896714;background:#fff6d9}.shift-cell.absent[data-v-9a5ebf44],.detail-status.absent[data-v-9a5ebf44]{color:#b53d3d;background:#ffe7e7}.shift-cell.annual[data-v-9a5ebf44],.detail-status.annual[data-v-9a5ebf44]{color:#596576;background:#edf0f3}.shift-cell[data-v-9a5ebf44]:hover{filter:brightness(.98)}.legend-list[data-v-9a5ebf44]{flex-wrap:wrap;gap:12px}.legend-item i.normal[data-v-9a5ebf44]{background:#78ba8d}.legend-item i.late[data-v-9a5ebf44]{background:#e8ac63}.legend-item i.personal[data-v-9a5ebf44]{background:#8db5f1}.legend-item i.sick[data-v-9a5ebf44]{background:#e8cf68}.legend-item i.absent[data-v-9a5ebf44]{background:#e89797}.legend-item i.annual[data-v-9a5ebf44]{background:#a6afb9}.detail-header[data-v-9a5ebf44]{align-items:center;gap:12px;margin-bottom:20px;display:flex}.detail-header h3[data-v-9a5ebf44]{margin:0;font-size:18px}.detail-header p[data-v-9a5ebf44]{color:#7a889a;margin:5px 0 0;font-size:13px}.detail-status[data-v-9a5ebf44]{border-radius:8px;margin-left:auto;padding:8px 15px;font-size:16px;font-weight:600}.attendance-stats[data-v-9a5ebf44]{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px;display:grid}.attendance-stats>div[data-v-9a5ebf44]{background:#f7f9fc;border-radius:10px;flex-direction:column;gap:10px;padding:16px 12px;display:flex}.attendance-stats small[data-v-9a5ebf44]{color:#7a889a;font-size:12px}.attendance-stats b[data-v-9a5ebf44]{color:#243c5b;font-size:15px}.detail-section[data-v-9a5ebf44]{margin:20px 0}.detail-section h4[data-v-9a5ebf44]{color:#243c5b;margin:0 0 12px;font-size:14px}.time-grid[data-v-9a5ebf44]{border-bottom:1px solid #edf1f7;grid-template-columns:60px 1fr 1fr;align-items:center;gap:12px;padding:14px 12px;font-size:13px;display:grid}.time-grid b[data-v-9a5ebf44]{font-variant-numeric:tabular-nums;font-weight:500}.time-grid-heading[data-v-9a5ebf44]{color:#7a889a;background:#f7f9fc;border-radius:8px;font-size:12px}.detail-warning[data-v-9a5ebf44]{color:#a75b12;margin-top:12px;font-size:12px}.approval-heading[data-v-9a5ebf44]{justify-content:space-between;gap:10px;display:flex}.approval-heading span[data-v-9a5ebf44]{color:#75859a}.approval-detail small[data-v-9a5ebf44]{color:#75859a;line-height:1.8;display:block}.detail-source[data-v-9a5ebf44]{margin-top:20px}@media (width<=600px){.attendance-stats[data-v-9a5ebf44]{grid-template-columns:1fr}.time-grid[data-v-9a5ebf44]{grid-template-columns:45px 1fr 1fr;gap:6px;font-size:12px}.detail-status[data-v-9a5ebf44]{text-align:center;max-width:110px}}
