.attendance-report[data-v-f4b04284]{overflow:hidden;background:#fff;border:1px solid #e8ece9;border-radius:8px}.attendance-report.is-fullscreen[data-v-f4b04284]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;border:0;border-radius:0}.report-heading[data-v-f4b04284]{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;border-bottom:1px solid #e8ece9}.report-heading-copy[data-v-f4b04284]{min-width:0}.report-heading h2[data-v-f4b04284]{margin:0;color:#2a3830;font-size:16px;font-weight:600}.report-heading-actions[data-v-f4b04284]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.report-legend[data-v-f4b04284]{display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap;margin-top:8px;color:#78847e;font-size:11px}.report-legend span[data-v-f4b04284]{padding:2px 4px;background:#f7f9f7;border-radius:3px;white-space:nowrap}.report-legend .legend-attended[data-v-f4b04284]{display:inline-flex;align-items:center;gap:2px;color:#078b48}.report-shift-legend[data-v-f4b04284]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.report-shift-legend-label[data-v-f4b04284]{color:#78847e;font-size:11px}.report-search[data-v-f4b04284]{display:inline-flex;align-items:stretch;width:min(220px,42vw);height:32px;overflow:hidden;color:#4b5a51;background:#fff;border:1px solid #dce4df;border-radius:5px}.report-search[data-v-f4b04284]:focus-within{border-color:#078b48;box-shadow:0 0 0 2px #078b481f}.report-search input[data-v-f4b04284]{min-width:0;flex:1;padding:0 9px;color:#344139;background:transparent;border:0;outline:0;font-size:12px}.report-search input[data-v-f4b04284]::placeholder{color:#9aa49e}.report-search button[data-v-f4b04284]{display:inline-grid;place-items:center;width:33px;padding:0;color:#fff;background:#078b48;border:0}.report-search button[data-v-f4b04284]:hover:not(:disabled){background:#056b37}.report-search button[data-v-f4b04284]:disabled,.report-search input[data-v-f4b04284]:disabled{cursor:wait}.report-search-loading[data-v-f4b04284]{animation:spin 1s linear infinite}.report-fullscreen-button[data-v-f4b04284]{display:inline-grid;flex:0 0 auto;place-items:center;width:32px;height:32px;padding:0;color:#536159;background:#fff;border:1px solid #dce4df;border-radius:5px}.report-fullscreen-button[data-v-f4b04284]:hover{color:#078b48;background:#f1f8f3;border-color:#bcdcc8}.report-scroll[data-v-f4b04284]{overflow:auto;scrollbar-width:none}.report-scroll[data-v-f4b04284]::-webkit-scrollbar{display:none}.report-horizontal-scrollbar[data-v-f4b04284]{height:24px;padding:6px 14px;background:#fff;border-top:1px solid #e8ece9}.report-horizontal-scrollbar input[data-v-f4b04284]{display:block;width:100%;height:12px;margin:0;accent-color:#778b80;cursor:ew-resize}.report-horizontal-scrollbar input[data-v-f4b04284]::-webkit-slider-runnable-track{height:4px;background:#e1e8e4;border-radius:4px}.report-horizontal-scrollbar input[data-v-f4b04284]::-webkit-slider-thumb{width:32px;height:12px;margin-top:-4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#8fa097;border:0;border-radius:6px}.report-horizontal-scrollbar input[data-v-f4b04284]::-webkit-slider-thumb:hover{background:#64776c}.report-horizontal-scrollbar.disabled input[data-v-f4b04284]{opacity:.45;cursor:default}.is-fullscreen .report-scroll[data-v-f4b04284]{flex:1;min-height:0;overflow:auto}.is-fullscreen .report-horizontal-scrollbar[data-v-f4b04284]{flex:0 0 24px}.is-fullscreen .detailed-report-table thead th[data-v-f4b04284]{position:sticky;top:0;z-index:5}.is-fullscreen .detailed-report-table .report-name-header[data-v-f4b04284]{z-index:7}.is-fullscreen .detailed-report-table .report-shift-header[data-v-f4b04284]{z-index:6}.detailed-report-table[data-v-f4b04284]{width:max-content;min-width:2440px;border-collapse:separate;border-spacing:0;color:#35423b;font-size:12px}.detailed-report-table th[data-v-f4b04284],.detailed-report-table td[data-v-f4b04284]{height:37px;padding:6px 8px;border-right:1px solid #e8ece9;border-bottom:1px solid #e8ece9;text-align:center;vertical-align:middle;white-space:nowrap}.detailed-report-table th[data-v-f4b04284]{color:#65756c;background:#f7f9f7;font-size:11px;font-weight:500}.detailed-report-table tr:last-child td[data-v-f4b04284]{border-bottom:0}.detailed-report-table .report-table-bottom-line[data-v-f4b04284]{height:1px;min-height:1px;padding:0;background:#dfe5e1;border:0}.report-name[data-v-f4b04284]{position:sticky;left:0;z-index:4;width:132px;min-width:132px;max-width:132px}.report-name-header[data-v-f4b04284]{z-index:7;background:#f7f9f7!important;box-shadow:inset -1px 0 #dfe5e1}.report-name-cell[data-v-f4b04284]{background:#fff;font-weight:500;text-align:center!important;box-shadow:inset -1px 0 #e8ece9}.report-name-content[data-v-f4b04284]{display:inline-flex;align-items:center;justify-content:center;max-width:100%}.report-name-label[data-v-f4b04284]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-shift[data-v-f4b04284]{position:sticky;left:132px;z-index:3;width:58px;min-width:58px;max-width:58px}.report-shift-header[data-v-f4b04284]{z-index:6;background:#f7f9f7!important;box-shadow:inset -1px 0 #dfe5e1}.report-shift-cell[data-v-f4b04284]{color:#78847e;background:#fff;box-shadow:inset -1px 0 #e8ece9}.report-date[data-v-f4b04284]{min-width:66px;max-width:66px}.report-date-secondary[data-v-f4b04284],.report-summary-unit[data-v-f4b04284]{color:#99a39e!important;font-size:10px!important;font-weight:400!important}.report-record-cell[data-v-f4b04284]{height:48px!important;padding:3px!important}.report-record-cell strong[data-v-f4b04284],.report-record-cell small[data-v-f4b04284]{display:block}.report-record-cell .report-status[data-v-f4b04284]{margin-top:2px;color:#3c4a43;font-size:12px;font-weight:500}.report-check[data-v-f4b04284]{display:block;margin:2px auto 0;color:#078b48}.report-record-cell small[data-v-f4b04284]{color:#98a39d;font-size:10px;line-height:1.2}.report-shift-badge[data-v-f4b04284]{display:inline-block;box-sizing:border-box;width:fit-content;max-width:calc(4em + 10px);overflow:hidden;padding:1px 4px;color:var(--shift-name-color);background:var(--shift-name-background);border:1px solid var(--shift-name-border);border-radius:3px;font-size:10px;font-weight:600;line-height:14px;text-align:center;text-overflow:clip;vertical-align:middle;white-space:nowrap}.report-record-cell .report-shift-badge[data-v-f4b04284]{display:block;width:fit-content;max-width:calc(4em + 10px);margin:0 auto;color:var(--shift-name-color);font-size:10px;font-weight:600;line-height:14px}.report-record-cell .report-sign-time[data-v-f4b04284]{margin-top:2px;color:#88958d}.report-summary[data-v-f4b04284]{min-width:73px;max-width:73px}.report-summary-value[data-v-f4b04284]{color:#425047;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;line-height:1.35;white-space:normal!important;word-break:break-word}@media(max-width:640px){.report-heading[data-v-f4b04284]{display:block}.report-heading-actions[data-v-f4b04284]{display:flex;margin-top:10px}.report-heading-actions form[data-v-f4b04284]{flex:1}.report-search[data-v-f4b04284]{width:100%}.detailed-report-table[data-v-f4b04284]{font-size:11px}.report-name[data-v-f4b04284]{left:0;width:112px;min-width:112px;max-width:112px}.report-shift[data-v-f4b04284]{left:112px;width:58px;min-width:58px;max-width:58px}.report-date[data-v-f4b04284]{min-width:52px;max-width:52px}.report-summary[data-v-f4b04284]{min-width:69px;max-width:69px}}.approval-management[data-v-ac3c9e5f]{display:grid;gap:20px}.approval-page-heading[data-v-ac3c9e5f]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.approval-page-heading h2[data-v-ac3c9e5f]{color:#202a2f;font-size:22px;font-weight:600}.approval-page-heading p[data-v-ac3c9e5f]{margin-top:7px;color:#7b8981;font-size:13px}.approval-refresh[data-v-ac3c9e5f]{flex:0 0 auto}.is-spinning[data-v-ac3c9e5f]{animation:spin 1s linear infinite}.approval-stat-grid[data-v-ac3c9e5f]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.approval-stat-card[data-v-ac3c9e5f]{min-width:0;padding:16px;background:#fff;border:1px solid #e8ece9;border-radius:8px}.approval-stat-card>span[data-v-ac3c9e5f]{display:flex;align-items:center;gap:7px;color:#708078;font-size:13px}.approval-stat-card i[data-v-ac3c9e5f]{width:7px;height:7px;background:#d6504e;border-radius:50%}.approval-stat-card i.success-dot[data-v-ac3c9e5f]{background:#07ad57}.approval-stat-card i.neutral-dot[data-v-ac3c9e5f]{background:#97a19b}.approval-stat-card i.warning-dot[data-v-ac3c9e5f]{background:#d59828}.approval-stat-card strong[data-v-ac3c9e5f]{display:block;margin-top:11px;color:#202a2f;font-size:27px;line-height:1;font-weight:600;font-variant-numeric:tabular-nums}.approval-stat-card.pending strong[data-v-ac3c9e5f]{color:#c15d3a}.approval-stat-card small[data-v-ac3c9e5f]{display:block;margin-top:8px;color:#89948e;font-size:12px}.approval-layout[data-v-ac3c9e5f]{display:grid;grid-template-columns:218px minmax(0,1fr);gap:20px;align-items:start}.approval-filter-panel[data-v-ac3c9e5f]{padding:14px 0}.approval-filter-group[data-v-ac3c9e5f]{padding:0 10px 13px;border-bottom:1px solid #eef1ef}.approval-filter-group+.approval-filter-group[data-v-ac3c9e5f]{padding-top:14px}.approval-filter-group[data-v-ac3c9e5f]:last-child{padding-bottom:0;border-bottom:0}.approval-filter-title[data-v-ac3c9e5f]{display:flex;align-items:center;justify-content:space-between;padding:0 5px 9px;color:#56635c;font-size:13px;font-weight:600}.approval-team-filter[data-v-ac3c9e5f]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:35px;padding:0 6px;color:#56635c;background:transparent;border:0;border-radius:5px;text-align:left;font-size:13px}.approval-team-filter>span[data-v-ac3c9e5f]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-team-filter b[data-v-ac3c9e5f]{min-width:19px;padding:2px 5px;color:#75827b;background:#f0f3f1;border-radius:10px;font-size:11px;font-weight:500;line-height:1.1;text-align:center}.approval-team-filter[data-v-ac3c9e5f]:hover{color:#078b48;background:#f4faf6}.approval-team-filter.active[data-v-ac3c9e5f]{color:#078b48;background:#edf9f1;font-weight:500}.approval-team-filter.active b[data-v-ac3c9e5f]{color:#087c43;background:#d8f3e2}.approval-list-surface[data-v-ac3c9e5f]{min-width:0;padding:0;overflow:hidden}.approval-list-heading[data-v-ac3c9e5f]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px 13px;border-bottom:1px solid #e8ece9}.approval-list-heading>div[data-v-ac3c9e5f]:first-child{display:flex;align-items:baseline;gap:9px}.approval-list-heading h2[data-v-ac3c9e5f]{color:#2a3830;font-size:16px;font-weight:600}.approval-list-heading span[data-v-ac3c9e5f]{color:#89948e;font-size:12px}.approval-tabs[data-v-ac3c9e5f]{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;padding:3px;background:#f3f6f4;border-radius:6px}.approval-tabs button[data-v-ac3c9e5f]{height:28px;padding:0 10px;color:#718078;background:transparent;border:0;border-radius:4px;font-size:12px}.approval-tabs button.active[data-v-ac3c9e5f]{color:#087c43;background:#fff;box-shadow:0 1px 2px #1e362714;font-weight:500}.approval-toolbar[data-v-ac3c9e5f]{display:flex;align-items:center;gap:8px;padding:12px 18px;border-bottom:1px solid #eef1ef}.approval-toolbar select[data-v-ac3c9e5f]{height:33px;padding:0 26px 0 9px;color:#4a574f;background:#fff;border:1px solid #dfe5e1;border-radius:5px;font-size:12px}.approval-search[data-v-ac3c9e5f]{display:flex;align-items:center;flex:1;gap:6px;min-width:150px;height:33px;padding:0 9px;color:#7a8780;background:#fff;border:1px solid #dfe5e1;border-radius:5px}.approval-search input[data-v-ac3c9e5f]{width:100%;min-width:0;color:#435047;background:transparent;border:0;outline:0;font-size:12px}.approval-loading[data-v-ac3c9e5f],.approval-empty[data-v-ac3c9e5f],.approval-drawer-loading[data-v-ac3c9e5f]{display:grid;place-items:center;gap:8px;color:#7b8981;font-size:13px}.approval-loading[data-v-ac3c9e5f],.approval-empty[data-v-ac3c9e5f]{min-height:270px}.approval-loading svg[data-v-ac3c9e5f],.approval-drawer-loading svg[data-v-ac3c9e5f]{animation:spin 1s linear infinite}.approval-table-scroll[data-v-ac3c9e5f]{overflow-x:auto}.approval-table[data-v-ac3c9e5f]{min-width:860px}.approval-table th[data-v-ac3c9e5f]{text-align:left}.approval-table tbody tr[data-v-ac3c9e5f]{cursor:pointer}.approval-table tbody tr[data-v-ac3c9e5f]:hover{background:#f4fbf6}.approval-table th[data-v-ac3c9e5f],.approval-table td[data-v-ac3c9e5f]{font-variant-numeric:tabular-nums}.approval-table td[data-v-ac3c9e5f]:nth-child(3){min-width:180px}.approval-table td[data-v-ac3c9e5f]:nth-child(4){min-width:136px}.approval-applicant[data-v-ac3c9e5f]{display:grid;gap:3px;min-width:160px}.approval-applicant strong[data-v-ac3c9e5f]{color:#2d3a32;font-weight:500}.approval-applicant span[data-v-ac3c9e5f]{color:#89948e;font-size:12px}.approval-type-tag[data-v-ac3c9e5f],.approval-status-tag[data-v-ac3c9e5f]{display:inline-flex;align-items:center;width:fit-content;padding:3px 7px;border-radius:4px;font-size:11px;line-height:1.3;white-space:nowrap}.approval-type-tag.business[data-v-ac3c9e5f]{color:#286b9a;background:#eaf5fd}.approval-type-tag.out[data-v-ac3c9e5f]{color:#557234;background:#edf7e4}.approval-type-tag.leave[data-v-ac3c9e5f]{color:#9c5a12;background:#fff3de}.approval-type-tag.overtime[data-v-ac3c9e5f]{color:#77539a;background:#f4edf9}.approval-type-tag.make-card[data-v-ac3c9e5f]{color:#a24a48;background:#fff0ef}.approval-type-tag.default[data-v-ac3c9e5f]{color:#68766e;background:#eff2f0}.approval-status-tag.pending[data-v-ac3c9e5f]{color:#af6517;background:#fff4df}.approval-status-tag.approved[data-v-ac3c9e5f]{color:#07864a;background:#e9f8ee}.approval-status-tag.rejected[data-v-ac3c9e5f]{color:#bb4d4a;background:#fff0ef}.approval-detail-action[data-v-ac3c9e5f]{display:inline-flex;align-items:center;gap:2px;padding:3px 0;color:#078b48;background:transparent;border:0;font-size:12px}.approval-detail-action[data-v-ac3c9e5f]:hover{color:#05a952;text-decoration:underline;text-underline-offset:3px}.approval-drawer-backdrop[data-v-ac3c9e5f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#1f2c242e}.approval-drawer[data-v-ac3c9e5f]{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:min(456px,94vw);height:100%;background:#fff;box-shadow:-10px 0 28px #25342b29}.approval-drawer-heading[data-v-ac3c9e5f]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:21px 22px 17px;border-bottom:1px solid #e8ece9}.approval-drawer-heading>div[data-v-ac3c9e5f]{display:flex;align-items:center;gap:9px;min-width:0}.approval-drawer-heading h2[data-v-ac3c9e5f]{overflow:hidden;color:#29372f;font-size:18px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.approval-drawer-body[data-v-ac3c9e5f]{flex:1;overflow:auto;padding:18px 22px}.approval-drawer-loading[data-v-ac3c9e5f]{flex:1}.approval-detail-user[data-v-ac3c9e5f]{display:flex;align-items:center;gap:10px;padding-bottom:17px;border-bottom:1px solid #eef1ef}.approval-detail-user>span[data-v-ac3c9e5f]{display:grid;flex:0 0 auto;place-items:center;width:35px;height:35px;color:#fff;background:#42926c;border-radius:50%;font-size:13px}.approval-detail-user strong[data-v-ac3c9e5f],.approval-detail-user small[data-v-ac3c9e5f]{display:block}.approval-detail-user strong[data-v-ac3c9e5f]{color:#2d3a32;font-size:14px;font-weight:600}.approval-detail-user small[data-v-ac3c9e5f]{margin-top:3px;color:#89948e;font-size:12px}.approval-detail-list[data-v-ac3c9e5f],.approval-result-list[data-v-ac3c9e5f]{margin:16px 0 0}.approval-detail-list>div[data-v-ac3c9e5f],.approval-result-list>div[data-v-ac3c9e5f]{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid #f0f2f0}.approval-detail-list dt[data-v-ac3c9e5f],.approval-result-list dt[data-v-ac3c9e5f]{color:#86918b;font-size:12px}.approval-detail-list dd[data-v-ac3c9e5f],.approval-result-list dd[data-v-ac3c9e5f]{margin:0;color:#425047;overflow-wrap:anywhere;font-size:13px;line-height:1.5}.approval-result-list[data-v-ac3c9e5f]{padding-top:6px;border-top:1px solid #eef1ef}.approval-remark[data-v-ac3c9e5f]{display:grid;gap:8px;margin-top:20px;color:#536159;font-size:13px;font-weight:500}.approval-remark small[data-v-ac3c9e5f]{color:#89948e;font-weight:400}.approval-remark textarea[data-v-ac3c9e5f]{display:block;width:100%;min-height:82px;padding:9px 10px;color:#435047;resize:vertical;border:1px solid #dfe5e1;border-radius:5px;outline:0;font-size:13px;line-height:1.5}.approval-remark textarea[data-v-ac3c9e5f]:focus{border-color:#72c994;box-shadow:0 0 0 2px #07c1601f}.approval-drawer-footer[data-v-ac3c9e5f]{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid #e8ece9}.approval-reject-button[data-v-ac3c9e5f]{color:#a74643;background:#fff;border:1px solid #e3c5c3}.approval-reject-button[data-v-ac3c9e5f]:hover{background:#fff5f4}.approval-drawer-footer .button[data-v-ac3c9e5f]:disabled,.approval-refresh[data-v-ac3c9e5f]:disabled{cursor:default;opacity:.65}@media(max-width:980px){.approval-layout[data-v-ac3c9e5f]{grid-template-columns:1fr}.approval-filter-panel[data-v-ac3c9e5f]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.approval-filter-group[data-v-ac3c9e5f]{padding-bottom:0;border-bottom:0}.approval-filter-group+.approval-filter-group[data-v-ac3c9e5f]{padding-top:0;border-left:1px solid #eef1ef}.approval-stat-grid[data-v-ac3c9e5f]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.approval-page-heading[data-v-ac3c9e5f]{align-items:center}.approval-page-heading h2[data-v-ac3c9e5f]{font-size:20px}.approval-filter-panel[data-v-ac3c9e5f]{display:block}.approval-filter-group[data-v-ac3c9e5f]{padding-bottom:13px;border-bottom:1px solid #eef1ef}.approval-filter-group+.approval-filter-group[data-v-ac3c9e5f]{padding-top:14px;border-left:0}.approval-list-heading[data-v-ac3c9e5f]{align-items:flex-start;flex-direction:column}.approval-tabs[data-v-ac3c9e5f]{width:100%}.approval-tabs button[data-v-ac3c9e5f]{flex:1}.approval-toolbar[data-v-ac3c9e5f]{flex-wrap:wrap}.approval-toolbar select[data-v-ac3c9e5f]{flex:1;min-width:0}.approval-search[data-v-ac3c9e5f]{flex-basis:100%}.approval-drawer-heading[data-v-ac3c9e5f],.approval-drawer-body[data-v-ac3c9e5f],.approval-drawer-footer[data-v-ac3c9e5f]{padding-right:16px;padding-left:16px}}.schedule-view[data-v-2554c54a]{display:grid;gap:16px}.schedule-header[data-v-2554c54a],.schedule-header-actions[data-v-2554c54a],.schedule-toolbar[data-v-2554c54a],.schedule-date-control[data-v-2554c54a],.schedule-mode-switch[data-v-2554c54a],.schedule-dialog-heading[data-v-2554c54a],.cell-dialog-footer[data-v-2554c54a],.dialog-actions[data-v-2554c54a],.dialog-section-title[data-v-2554c54a]{display:flex;align-items:center}.schedule-header[data-v-2554c54a]{justify-content:space-between;gap:20px}.schedule-header p[data-v-2554c54a]{margin:0;color:#7c8981;font-size:13px}.schedule-header-actions[data-v-2554c54a]{gap:10px}.schedule-toolbar[data-v-2554c54a]{flex-wrap:wrap;gap:12px;min-height:58px;padding:10px 12px;background:#fff;border-bottom:1px solid #e8ece9}.schedule-mode-switch[data-v-2554c54a]{overflow:hidden;border:1px solid #dfe7e1;border-radius:5px}.schedule-mode-switch button[data-v-2554c54a]{height:32px;padding:0 14px;color:#69776f;background:#fff;border:0;border-right:1px solid #dfe7e1;font-size:13px}.schedule-mode-switch button[data-v-2554c54a]:last-child{border-right:0}.schedule-mode-switch button.active[data-v-2554c54a]{color:#fff;background:#078b48}.schedule-date-control[data-v-2554c54a]{gap:3px}.schedule-date-input[data-v-2554c54a]{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 9px;color:#078b48;background:#f7faf8;border:1px solid #dfe7e1;border-radius:5px}.schedule-date-input input[data-v-2554c54a]{min-width:122px;color:#3d4b43;background:transparent;border:0;outline:0;font-size:13px}.schedule-week-month input[data-v-2554c54a]{min-width:104px}.schedule-week-select[data-v-2554c54a]{display:inline-flex;align-items:center;height:34px;overflow:hidden;background:#f7faf8;border:1px solid #dfe7e1;border-radius:5px}.schedule-week-select select[data-v-2554c54a]{height:100%;min-width:172px;padding:0 28px 0 10px;color:#3d4b43;background:transparent;border:0;outline:0;font-size:13px}.schedule-search[data-v-2554c54a]{display:flex;align-items:center;gap:7px;min-width:min(100%,240px);height:34px;margin-left:auto;padding-left:9px;color:#819087;border:1px solid #dfe7e1;border-radius:5px}.schedule-search input[data-v-2554c54a]{width:100%;min-width:0;color:#344239;border:0;outline:0;font-size:13px}.schedule-search button[data-v-2554c54a]{display:grid;place-items:center;align-self:stretch;width:36px;color:#fff;background:#078b48;border:0;border-radius:0 4px 4px 0}.schedule-surface[data-v-2554c54a]{overflow:hidden;background:#fff;border:1px solid #e8ece9;border-radius:8px}.schedule-table-scroll[data-v-2554c54a]{position:relative;min-height:280px;overflow:auto}.schedule-table[data-v-2554c54a]{min-width:max-content;width:100%;border-collapse:separate;border-spacing:0}.schedule-table th[data-v-2554c54a],.schedule-table td[data-v-2554c54a]{min-width:92px;height:68px;padding:0;text-align:center;border-right:1px solid #edf1ee;border-bottom:1px solid #edf1ee}.schedule-table thead th[data-v-2554c54a]{height:58px;color:#68766e;background:#f7f9f7;font-size:12px;font-weight:500}.schedule-table thead th span[data-v-2554c54a],.schedule-table thead th strong[data-v-2554c54a]{display:block}.schedule-table thead th span[data-v-2554c54a]{color:#8b9690;font-size:11px;font-weight:400}.schedule-table thead th strong[data-v-2554c54a]{margin-top:3px;color:#4b5951;font-size:15px}.schedule-table th[data-v-2554c54a]:last-child,.schedule-table td[data-v-2554c54a]:last-child{border-right:0}.schedule-table--month th[data-v-2554c54a],.schedule-table--month td[data-v-2554c54a]{min-width:60px;height:52px}.schedule-table--month thead th[data-v-2554c54a]{height:47px}.schedule-table--month thead th strong[data-v-2554c54a]{margin-top:1px;font-size:14px}.schedule-table--month .schedule-member-column[data-v-2554c54a]{width:128px;min-width:128px!important;padding:0 13px!important}.schedule-table--month .schedule-shift-tag[data-v-2554c54a]{max-width:54px;padding:3px 4px;font-size:11px}.schedule-member-column[data-v-2554c54a]{position:sticky;left:0;z-index:2;width:156px;min-width:156px!important;padding:0 17px!important;text-align:left!important;background:#fff;box-shadow:1px 0 #e8ece9}.schedule-table thead .schedule-member-column[data-v-2554c54a]{z-index:3;background:#f7f9f7}.schedule-member-name[data-v-2554c54a]{overflow:hidden;color:#2d3a32;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.schedule-table .today[data-v-2554c54a]{background:#f5fbf7}.schedule-table td.past[data-v-2554c54a]{background:#fafbfa}.schedule-cell[data-v-2554c54a]{display:grid;place-items:center;width:100%;height:100%;color:#96a199;background:transparent;border:0}.schedule-cell[data-v-2554c54a]:not(:disabled):hover{background:#f0faf4}.schedule-cell[data-v-2554c54a]:focus-visible{outline:2px solid #078b48;outline-offset:-2px}.schedule-cell[data-v-2554c54a]:disabled{cursor:not-allowed}.schedule-shift-tag[data-v-2554c54a]{display:inline-block;max-width:74px;padding:4px 6px;overflow:hidden;color:var(--schedule-tag-color);background:var(--schedule-tag-background);border:1px solid color-mix(in srgb,var(--schedule-tag-color) 18%,transparent);border-radius:4px;font-size:12px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.schedule-shift-tag.is-rest[data-v-2554c54a]{color:#65736b;background:#eef2ef;border-color:#dfe6e1}.schedule-loading[data-v-2554c54a],.schedule-empty[data-v-2554c54a]{display:grid;place-items:center;gap:8px;min-height:280px;color:#78867d;font-size:13px}.schedule-loading svg[data-v-2554c54a],.inline-loading svg[data-v-2554c54a]{animation:spin 1s linear infinite}.schedule-footer[data-v-2554c54a]{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:49px;padding:0 16px;color:#7d8981;border-top:1px solid #e8ece9;font-size:12px}.schedule-pagination[data-v-2554c54a]{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.schedule-pagination button[data-v-2554c54a]{padding:0;color:#078b48;background:transparent;border:0;font-size:12px}.schedule-pagination button[data-v-2554c54a]:disabled{color:#aab3ae;cursor:not-allowed}.schedule-dialog-backdrop[data-v-2554c54a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:grid;place-items:center;padding:20px;overflow:auto;background:#18231c6b}.schedule-dialog[data-v-2554c54a]{width:min(540px,100%);max-height:min(780px,calc(100vh - 40px));overflow:auto;padding:20px;background:#fff;border-radius:8px;box-shadow:0 20px 60px #14251b38}.batch-dialog[data-v-2554c54a]{display:flex;flex-direction:column;width:min(1080px,100%);height:min(720px,calc(100vh - 40px));max-height:none;overflow:hidden}.cycle-editor-dialog[data-v-2554c54a]{width:min(600px,100%)}.schedule-dialog-heading[data-v-2554c54a]{align-items:flex-start;justify-content:space-between;gap:18px}.schedule-dialog-heading h2[data-v-2554c54a]{margin:0;color:#27352d;font-size:18px;font-weight:600}.schedule-dialog-heading p[data-v-2554c54a]{margin:5px 0 0;color:#7d8981;font-size:12px}.current-shift[data-v-2554c54a]{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding:11px 12px;color:#728077;background:#f7faf8;border-radius:5px;font-size:13px}.current-shift strong[data-v-2554c54a]{color:#344239;font-weight:500}.schedule-choice-list[data-v-2554c54a]{display:grid;gap:7px;margin-top:14px}.schedule-choice-list button[data-v-2554c54a]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:43px;padding:7px 10px;color:#3c4a42;background:#fff;border:1px solid #e4eae6;border-radius:5px;text-align:left}.schedule-choice-list button[data-v-2554c54a]:hover{background:#f4fbf6;border-color:#b9dfc8}.schedule-choice-list button[data-v-2554c54a]:disabled{opacity:.65;cursor:wait}.schedule-choice-list small[data-v-2554c54a]{color:#8b9690;font-size:11px}.cell-dialog-footer[data-v-2554c54a]{justify-content:space-between;gap:12px;margin-top:15px}.text-command[data-v-2554c54a]{display:inline-flex;align-items:center;gap:5px;padding:4px 0;color:#078b48;background:transparent;border:0;font-size:12px}.text-command[data-v-2554c54a]:hover{color:#05a952;text-decoration:underline;text-underline-offset:3px}.danger-command[data-v-2554c54a]{color:#c94845}.danger-command[data-v-2554c54a]:hover{color:#a93634}.cell-cycle-list[data-v-2554c54a]{display:grid;gap:6px;margin-top:14px;padding:12px;background:#f7faf8;border:1px solid #e5eee8;border-radius:5px}.cell-cycle-list p[data-v-2554c54a],.cell-cycle-list>span[data-v-2554c54a]{margin:0 0 4px;color:#748178;font-size:12px;line-height:1.5}.cell-cycle-list button[data-v-2554c54a]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 4px;color:#344239;background:transparent;border:0;border-bottom:1px solid #e3ebe5;text-align:left;font-size:13px}.cell-cycle-list button[data-v-2554c54a]:last-of-type{border-bottom:0}.inline-loading[data-v-2554c54a]{display:inline-flex;align-items:center;gap:6px;color:#718078;font-size:12px}.dialog-field[data-v-2554c54a]{display:grid;gap:7px;margin-top:18px;color:#536159;font-size:13px}.dialog-field input[data-v-2554c54a],.dialog-field select[data-v-2554c54a],.cycle-day-row select[data-v-2554c54a]{height:37px;padding:0 10px;color:#344239;background:#fff;border:1px solid #dfe7e1;border-radius:5px;outline-color:#078b48}.dialog-section[data-v-2554c54a]{margin-top:20px}.dialog-section-title[data-v-2554c54a]{justify-content:space-between;min-height:22px;color:#536159;font-size:13px}.dialog-section-title strong[data-v-2554c54a]{color:#7b8981;font-size:12px;font-weight:400}.batch-dialog-main[data-v-2554c54a]{display:grid;flex:1;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);min-height:0;margin-top:18px}.batch-dialog-calendar-pane[data-v-2554c54a],.batch-dialog-member-pane[data-v-2554c54a]{min-width:0}.batch-dialog-calendar-pane[data-v-2554c54a]{padding-right:22px;border-right:1px solid #e7ece8}.batch-dialog-calendar-pane .dialog-field[data-v-2554c54a]{margin-top:0}.batch-dialog-member-pane[data-v-2554c54a]{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding-left:22px}.bulk-calendar-section[data-v-2554c54a]{margin-top:20px}.bulk-calendar-heading[data-v-2554c54a]{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:0 1px}.bulk-calendar-heading strong[data-v-2554c54a]{color:#344239;font-size:14px;font-weight:600}.bulk-weekdays[data-v-2554c54a],.bulk-date-grid[data-v-2554c54a]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.bulk-weekdays[data-v-2554c54a]{margin-top:7px;color:#8b9690;font-size:11px;text-align:center}.bulk-date-grid[data-v-2554c54a]{gap:5px;margin-top:5px}.bulk-date-grid button[data-v-2554c54a]{position:relative;display:grid;place-items:center;min-height:40px;color:#536159;background:#fff;border:1px solid #e5ebe7;border-radius:5px}.bulk-date-grid button.selected[data-v-2554c54a]{color:#fff;background:#078b48;border-color:#078b48}.bulk-date-grid button.selected svg[data-v-2554c54a]{position:absolute;right:3px;bottom:3px}.bulk-date-grid button.past[data-v-2554c54a]{color:#b0b8b3;background:#f7f8f7;border-color:#eef1ef;cursor:not-allowed}.bulk-date-grid button.outside-month[data-v-2554c54a]{color:#aab3ae;background:#fbfcfb}.bulk-date-grid button.today[data-v-2554c54a]:not(.selected){color:#078b48;border-color:#86cda8}.bulk-date-grid strong[data-v-2554c54a]{font-size:13px;font-weight:500}.selected-member-tags[data-v-2554c54a]{display:flex;flex-wrap:wrap;gap:6px;max-height:54px;margin-top:10px;padding-top:9px;overflow:auto;border-top:1px solid #edf1ee}.selected-member-tags span[data-v-2554c54a]{max-width:82px;padding:4px 7px;overflow:hidden;color:#537060;background:#f1f7f3;border:1px solid #d9eadf;border-radius:4px;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.bulk-member-search[data-v-2554c54a]{display:flex;align-items:center;gap:7px;height:36px;margin-top:10px;padding-left:10px;color:#829087;background:#fff;border:1px solid #dfe7e1;border-radius:5px}.bulk-member-search input[data-v-2554c54a]{flex:1;min-width:0;height:100%;color:#344239;background:transparent;border:0;outline:0;font-size:13px}.bulk-member-search button[data-v-2554c54a]{display:grid;place-items:center;align-self:stretch;width:38px;color:#fff;background:#078b48;border:0;border-radius:0 4px 4px 0}.bulk-member-picker-toolbar[data-v-2554c54a],.bulk-member-pagination[data-v-2554c54a]{display:flex;align-items:center;justify-content:space-between;gap:10px}.bulk-member-picker-toolbar[data-v-2554c54a]{margin-top:12px;color:#536159;font-size:13px}.bulk-member-picker-list[data-v-2554c54a]{display:grid;grid-template-columns:repeat(auto-fill,84px);justify-content:start;gap:7px;max-height:264px;margin-top:9px;overflow:auto}.bulk-member-picker-list button[data-v-2554c54a]{position:relative;display:grid;place-items:center;width:84px;min-width:0;min-height:48px;padding:6px;color:#45534b;background:#fff;border:1px solid #dfe7e1;border-radius:5px;text-align:center}.bulk-member-picker-list button[data-v-2554c54a]:hover{color:#087c43;background:#f1faf4;border-color:#9cd2b2}.bulk-member-picker-list button.selected[data-v-2554c54a]{color:#087c43;background:#eaf8ef;border-color:#6ec291;box-shadow:inset 0 0 0 1px #c8ead4}.bulk-member-picker-list button svg[data-v-2554c54a]{position:absolute;top:4px;right:4px}.bulk-member-picker-name[data-v-2554c54a]{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.bulk-member-pagination[data-v-2554c54a]{margin-top:10px;color:#7d8981;font-size:12px}.bulk-member-pagination button[data-v-2554c54a]{padding:3px 0;color:#078b48;background:transparent;border:0;font-size:12px}.bulk-member-pagination button[data-v-2554c54a]:disabled{color:#abb5af;cursor:not-allowed}.batch-dialog-member-pane .bulk-member-picker-list[data-v-2554c54a]{flex:1;min-height:0;max-height:none;grid-auto-rows:48px;align-content:start}.batch-dialog-member-pane .schedule-loading[data-v-2554c54a],.batch-dialog-member-pane .schedule-empty[data-v-2554c54a]{flex:1;min-height:0}.dialog-actions[data-v-2554c54a]{flex-shrink:0;justify-content:flex-end;gap:9px;margin-top:16px}.dialog-actions .button .lucide-loader-circle[data-v-2554c54a]{animation:spin 1s linear infinite}.cycle-list[data-v-2554c54a]{display:grid;gap:8px;margin-top:18px}.cycle-list article[data-v-2554c54a]{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:8px;padding:8px;border:1px solid #e4eae6;border-radius:5px}.cycle-list article>button[data-v-2554c54a]:first-child{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:4px 7px;color:#35423b;background:transparent;border:0;text-align:left}.cycle-list strong[data-v-2554c54a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.cycle-list span[data-v-2554c54a]{color:#078b48;font-size:12px}.cycle-empty[data-v-2554c54a]{display:grid;place-items:center;min-height:120px;margin-top:18px;color:#87928c;font-size:13px}.compact[data-v-2554c54a]{min-height:120px}.cycle-day-list[data-v-2554c54a]{display:grid;gap:8px;margin-top:18px}.cycle-day-row[data-v-2554c54a]{display:grid;grid-template-columns:64px minmax(0,1fr) 34px;align-items:center;gap:8px}.cycle-day-row strong[data-v-2554c54a]{color:#627067;font-size:12px;font-weight:500}.add-cycle-day[data-v-2554c54a]{margin-top:12px}@media(max-width:860px){.batch-dialog[data-v-2554c54a]{height:auto;max-height:calc(100vh - 24px);overflow:auto}.batch-dialog-main[data-v-2554c54a]{display:grid;flex:none;grid-template-columns:1fr}.batch-dialog-calendar-pane[data-v-2554c54a]{padding:0;border-right:0}.batch-dialog-member-pane[data-v-2554c54a]{display:block;margin-top:20px;padding:20px 0 0;overflow:visible;border-top:1px solid #e7ece8}.batch-dialog-member-pane .bulk-member-picker-list[data-v-2554c54a]{max-height:264px}.batch-dialog-member-pane .schedule-loading[data-v-2554c54a],.batch-dialog-member-pane .schedule-empty[data-v-2554c54a]{min-height:180px}}@media(max-width:640px){.schedule-header[data-v-2554c54a]{align-items:flex-start;flex-direction:column}.schedule-header-actions[data-v-2554c54a]{width:100%}.schedule-header-actions .button[data-v-2554c54a]{flex:1;justify-content:center}.schedule-search[data-v-2554c54a]{width:100%;margin-left:0}.schedule-footer[data-v-2554c54a]{align-items:flex-start;flex-direction:column;padding:12px 14px}.schedule-dialog-backdrop[data-v-2554c54a]{padding:12px}.schedule-dialog[data-v-2554c54a]{padding:17px}.bulk-date-grid[data-v-2554c54a]{gap:4px}.bulk-date-grid button[data-v-2554c54a]{min-height:38px}.bulk-member-picker-list[data-v-2554c54a]{grid-template-columns:repeat(auto-fill,80px);gap:6px}.bulk-member-picker-list button[data-v-2554c54a]{width:80px;min-height:46px}}:root{color:#202a2f;background:#f7f8f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:#f7f8f7}button,input,select{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:#f1f5f2}.login-panel{width:min(390px,100%);padding:36px;background:#fff;border:1px solid #e3eae5;border-radius:8px;box-shadow:0 18px 48px #1d32251f;text-align:center}.login-brand{display:inline-flex;align-items:center;gap:9px;color:#26342c;font-size:15px;font-weight:600}.login-brand .brand-mark{width:38px;height:38px}.login-panel h1{margin:26px 0 0;color:#202a2f;font-size:24px;font-weight:600}.login-panel>p{margin:8px 0 0;color:#748078;font-size:14px;line-height:1.5}.login-loading{display:flex;min-height:252px;align-items:center;justify-content:center;gap:8px;color:#718078;font-size:14px}.login-loading svg{animation:spin 1s linear infinite}.qrcode-frame{position:relative;display:grid;place-items:center;width:228px;height:228px;margin:26px auto 16px;padding:10px;overflow:hidden;background:#fff;border:1px solid #dfe7e1;border-radius:6px}.qrcode-frame img{display:block;width:100%;height:100%;object-fit:contain}.qrcode-frame-expired{background:#f7faf8}.qrcode-expired-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:#536159;font-size:13px}.qrcode-refresh{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;color:#fff;background:#07c160;border:0;border-radius:50%}.qrcode-refresh:hover{background:#05a952}.qrcode-refresh:focus-visible{outline:2px solid #075f34;outline-offset:2px}.login-state{display:inline-flex;align-items:center;gap:7px;color:#258154;font-size:13px}.login-expiry{color:#8a958e!important;font-size:12px!important}.login-failure{display:grid;min-height:252px;justify-items:center;align-content:center;gap:8px;color:#bd4b48}.login-failure p{max-width:270px;color:#8b6460;font-size:13px;line-height:1.5}.mini-program-button{margin-top:12px}.mobile-device-notice{position:fixed;top:12px;left:50%;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(680px,calc(100% - 24px));padding:10px 12px 10px 14px;color:#785c1c;background:#fff8df;border:1px solid #f1dc9c;border-radius:6px;box-shadow:0 8px 24px #4f40181f;font-size:13px;line-height:1.45;transform:translate(-50%)}.mobile-device-notice>div{display:inline-flex;align-items:center;gap:8px;min-width:0}.mobile-device-notice svg{flex:0 0 auto;color:#b17a1a}.mobile-device-notice button{display:inline-grid;flex:0 0 auto;place-items:center;width:28px;height:28px;padding:0;color:#8f762f;background:transparent;border:0;border-radius:4px}.mobile-device-notice button:hover{background:#b17a1a1a}.app-shell{min-height:100vh}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 32px;background:#fff;border-bottom:1px solid #e8ece9}.topbar-left,.brand,.topbar-actions,.account-button,.metric-label,.button,.member-name,.team-cell,.page-title{display:flex;align-items:center}.topbar-left{align-self:stretch;gap:28px;min-width:0}.brand{gap:10px;font-weight:600;color:#26342c}.brand-mark{width:29px;height:29px;display:grid;place-items:center;color:#fff;background:#07c160;border-radius:7px}.topbar-actions{gap:12px}.icon-button{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;color:#65716b;background:transparent;border:0;border-radius:5px}.icon-button:hover{background:#f1f4f2}.account-summary{display:inline-flex;align-items:center;gap:8px;color:#34433b;font-size:14px}.account-button{gap:8px;padding:3px 7px 3px 3px;color:#34433b;background:transparent;border:0;border-radius:5px}.account-button:hover{background:#f1f4f2}.avatar{width:28px;height:28px;display:grid;place-items:center;color:#fff;background:#07a75a;border-radius:50%;font-size:12px}.primary-navigation{height:100%}.primary-navigation-inner{display:flex;align-items:stretch;gap:4px;height:100%}.primary-navigation button{position:relative;display:inline-flex;align-items:center;gap:7px;padding:0 13px;color:#6c7971;background:transparent;border:0;font-size:14px;font-weight:500}.primary-navigation button:hover{color:#078b48;background:#f7fbf8}.primary-navigation button.active{color:#078b48}.primary-navigation button.active:after{position:absolute;right:12px;bottom:0;left:12px;height:2px;content:"";background:#07c160;border-radius:2px 2px 0 0}.workspace{width:min(1440px,100%);margin:0 auto;padding:25px 32px 40px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-title{gap:10px}.back-button{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;color:#536159;background:#fff;border:1px solid #dfe5e1;border-radius:5px}.back-button:hover{color:#078b48;background:#f1f8f3;border-color:#bcdcc8}h1,h2,p{margin:0}h1{color:#202a2f;font-size:22px;font-weight:600}.filter-panel{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:10px;background:#fff;border:1px solid #e8ece9;border-radius:8px}.date-filter-group{display:inline-flex;align-items:center;gap:8px;min-width:0;color:#6f7d75;font-size:12px}.date-filter-group>span{margin-right:2px;color:#65736a;font-weight:500}.date-select{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 9px;color:#344139;background:#f7f9f7;border:1px solid #dfe5e1;border-radius:5px}.date-select svg{flex:0 0 auto;color:#078b48}.date-select select{min-width:112px;height:100%;padding:0 20px 0 0;color:inherit;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:transparent;border:0;outline:0;font-size:13px}.button{height:35px;justify-content:center;gap:6px;padding:0 12px;border-radius:5px;font-size:14px;font-weight:500}.button-secondary{color:#3d4c43;background:#fff;border:1px solid #dfe5e1}.button-secondary:hover{background:#f3f6f4}.button-primary{color:#fff;background:#07c160;border:1px solid #07c160}.button-primary:hover{background:#05a952;border-color:#05a952}.mode-note,.loading-state{display:flex;align-items:center;gap:7px;margin:0 0 14px;font-size:13px}.mode-note{color:#7b704e}.error-toast{position:fixed;top:16px;right:24px;z-index:50;display:flex;align-items:center;gap:9px;width:min(420px,calc(100vw - 48px));padding:12px 10px 12px 13px;color:#a53b38;background:#fff5f4;border:1px solid #f1cfcd;border-radius:6px;box-shadow:0 10px 28px #5d262329;font-size:13px;line-height:1.45}.error-toast>svg{flex:0 0 auto;color:#d6504e}.error-toast>span{flex:1;min-width:0}.error-toast button{display:inline-grid;flex:0 0 auto;place-items:center;width:26px;height:26px;padding:0;color:inherit;background:transparent;border:0;border-radius:4px}.error-toast button:hover{background:#a63b3817}.success-toast{position:fixed;top:16px;right:24px;z-index:50;display:flex;align-items:center;gap:9px;width:min(420px,calc(100vw - 48px));padding:12px 10px 12px 13px;color:#087c43;background:#effaf3;border:1px solid #c9ead5;border-radius:6px;box-shadow:0 10px 28px #1d563324;font-size:13px;line-height:1.45}.success-toast>svg{flex:0 0 auto;color:#07a957}.success-toast>span{flex:1;min-width:0}.success-toast button{display:inline-grid;flex:0 0 auto;place-items:center;width:26px;height:26px;padding:0;color:inherit;background:transparent;border:0;border-radius:4px}.success-toast button:hover{background:#087c4317}.toast-enter-active,.toast-leave-active{transition:opacity .18s ease,transform .18s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-8px)}.loading-state{justify-content:center;min-height:260px;color:#69766f}.loading-state svg{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.view-stack{display:grid;gap:20px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card,.surface{background:#fff;border:1px solid #e8ece9;border-radius:8px}.metric-card{min-width:0;padding:16px}.metric-label{gap:6px;color:#708078;font-size:13px}.metric-card strong{display:block;margin-top:12px;color:#202a2f;font-size:27px;line-height:1;font-weight:600}.metric-card strong.danger{color:#d6504e}.metric-card>span{display:block;margin-top:8px;color:#88938d;font-size:12px;line-height:1.35}.metric-card>span.positive{color:#078b48}.overview-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:20px}.surface{min-width:0;padding:18px}.surface-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.surface-title h2{color:#2a3830;font-size:16px;font-weight:600}.surface-title>span,.surface-title>div>span{color:#89948e;font-size:12px}.surface-title>div>span{display:block;margin-top:4px}.text-action{padding:4px;color:#078b48;background:transparent;border:0;font-size:12px;font-weight:500}.text-action:hover{color:#05a952;text-decoration:underline;text-underline-offset:3px}.trend-chart{display:block;width:100%;height:256px;overflow:visible}.trend-chart.is-compact{height:178px}.chart-grid{stroke:#e7ece8;stroke-width:1}.chart-axis{fill:#89948e;font-size:11px}.chart-area{fill:#07c1601a}.chart-line{fill:none;stroke:#07c160;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:#fff;stroke:#07c160;stroke-width:2}.chart-value{fill:#2f3b34;font-size:11px;font-weight:600}.team-list{display:grid}.team-performance{display:grid;grid-template-columns:minmax(126px,1.2fr) 39px minmax(96px,1fr) 52px;align-items:center;gap:10px;width:100%;padding:12px 6px;color:#26342c;background:transparent;border:0;border-bottom:1px solid #eef1ef;text-align:left}.team-performance:last-child{border-bottom:0}.team-performance:hover{background:#f5fbf7}.team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.team-members{color:#88938d;font-size:12px}.team-performance strong{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.rate-track{height:6px;overflow:hidden;background:#edf1ee;border-radius:3px}.rate-track>span{display:block;height:100%;background:#07c160;border-radius:inherit}.rate-track>span.warn{background:#e8a230}.anomaly-surface{grid-column:1}.anomaly-list{display:grid}.anomaly-row{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #eef1ef}.anomaly-row:last-child{border-bottom:0}.anomaly-row>i{width:8px;height:8px;background:#dd524d;border-radius:50%}.anomaly-row>i.warning{background:#e8a230}.anomaly-row strong,.anomaly-row span{display:block}.anomaly-row strong{color:#344139;font-size:13px}.anomaly-row span{margin-top:3px;color:#89948e;font-size:12px}.empty-line{color:#88938d;font-size:13px}.table-surface{padding:0;overflow:hidden}.table-surface>.surface-title{padding:18px 18px 0}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{padding:11px 12px;color:#708078;background:#f7f9f7;border-bottom:1px solid #e5ebe7;font-size:12px;font-weight:500;text-align:left;white-space:nowrap}td{padding:13px 12px;color:#35423b;border-bottom:1px solid #edf1ee;font-size:13px;white-space:nowrap}tbody tr:last-child td{border-bottom:0}.comparison-table th:not(:first-child),.comparison-table td:not(:first-child){text-align:right}.daily-comparison-table{min-width:1240px}.daily-comparison-table th,.daily-comparison-table td{font-variant-numeric:tabular-nums}.daily-comparison-table th:first-child,.daily-comparison-table td:first-child{min-width:190px}.team-cell{gap:9px;padding:0;color:#29372f;background:transparent;border:0;font-weight:500}.team-cell:hover{color:#078b48}.rank{width:20px;height:20px;display:grid;place-items:center;color:#718078;background:#eef2ef;border-radius:50%;font-size:11px;font-weight:500}.rate-value{color:#078b48;font-weight:600}.rate-value.warn{color:#bd761e}.status-tag{display:inline-flex;padding:3px 6px;color:#078b48;background:#07c1601a;border-radius:4px;font-size:11px}.status-tag.warning{color:#a65e11;background:#e8a23024}.team-report-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:20px}.team-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid #e8ece9;border-radius:7px}.team-metrics>div{min-width:0;padding:15px;border-right:1px solid #e8ece9;border-bottom:1px solid #e8ece9}.team-metrics>div:nth-child(3n){border-right:0}.team-metrics>div:nth-last-child(-n+3){border-bottom:0}.team-metrics span,.team-metrics strong{display:block}.team-metrics span{color:#7d8981;font-size:12px}.team-metrics strong{margin-top:7px;color:#202a2f;font-size:21px;font-weight:600;white-space:nowrap}.attendance-overview{display:grid;flex:1;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(88px,1fr));overflow:hidden;border:1px solid #e8ece9;border-radius:7px}.overview-metric{min-width:0;min-height:0;padding:14px 10px;color:#2c3931;background:#fff;border:0;border-right:1px solid #e8ece9;border-bottom:1px solid #e8ece9;text-align:center}.overview-metric:nth-child(4n+2){border-right:0}.overview-metric:nth-last-child(-n+4){border-bottom:0}.overview-metric.wide{grid-column:span 2}.overview-metric:hover{color:#078b48;background:#f4fbf6}.overview-metric:focus-visible{position:relative;z-index:1;outline:2px solid #078b48;outline-offset:-2px}.overview-metric strong,.overview-metric span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-metric strong{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}.overview-metric span{margin-top:8px;color:#718078;font-size:12px}.overview-metric.danger strong{color:#d6504e}.overview-metric.positive strong{color:#078b48}.daily-summary-surface{display:flex;flex-direction:column}.daily-summary-surface .attendance-overview{flex:1}.daily-summary-title{align-items:center;min-height:30px;margin-bottom:18px}.daily-summary-heading{display:inline-flex;align-items:center;gap:12px;min-width:0}.daily-summary-heading h2{line-height:1}.more-details-button.summary-detail-button{height:28px;padding:0 2px;margin:0;line-height:1}.more-details-button{display:inline-flex;align-items:center;gap:6px;padding:8px 2px 0;margin-top:12px;color:#078b48;background:transparent;border:0;font-size:13px;font-weight:500}.more-details-button:hover{color:#05a952;text-decoration:underline;text-underline-offset:3px}.legend{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 0;color:#68766e;font-size:12px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:8px;height:8px;border-radius:2px}.legend .normal{background:#07c160}.legend .late{background:#e8a230}.legend .missing{background:#dd524d}.legend .rest{background:#dbe3dd}.summary-surface dl{margin:0}.summary-surface dl>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #eef1ef}.summary-surface dl>div:last-child{border-bottom:0}.summary-surface dt{color:#56635c;font-size:13px}.summary-surface dd{margin:0;color:#29372f;font-size:14px;font-weight:600}.detail-view{padding:0;overflow:hidden}.detail-view>.surface-title{padding:17px 18px;margin:0;border-bottom:1px solid #e8ece9}.detail-view .surface-title>div>span{display:block;margin-top:4px;color:#89948e;font-size:12px}.detail-loading,.detail-empty{display:grid;place-items:center;min-height:180px;gap:8px;color:#7b8981;font-size:13px}.detail-loading svg{animation:spin 1s linear infinite}.member-detail-list{display:grid}.member-detail-row{display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:11px;width:100%;padding:12px 18px;color:#56635c;background:#fff;border:0;border-bottom:1px solid #edf1ee;text-align:left}.member-detail-row:last-child{border-bottom:0}.member-detail-row:hover{background:#f5fbf7;color:#078b48}.member-avatar{display:grid;place-items:center;width:34px;height:34px;color:#fff;background:#42926c;border-radius:50%;font-size:12px;font-weight:600}.member-detail-copy{min-width:0}.member-detail-copy strong,.member-detail-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-detail-copy strong{color:#2d3a32;font-size:14px;font-weight:500}.member-detail-copy small{margin-top:3px;color:#8a958e;font-size:12px}.record-detail-view{display:grid;gap:16px}.record-summary dl,.record-item dl{margin:0}.record-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #e8ece9}.record-summary dl>div{min-width:0;padding:15px 18px;border-right:1px solid #e8ece9}.record-summary dl>div:last-child{border-right:0}.record-summary dt,.record-summary dd,.record-item dt,.record-item dd{margin:0}.record-summary dt{color:#7d8981;font-size:12px}.record-summary dd{margin-top:7px;color:#29372f;font-size:18px;font-weight:600}.record-list-surface{padding:0;overflow:hidden}.record-list-surface>.surface-title{padding:17px 18px;margin:0;border-bottom:1px solid #e8ece9}.record-item{padding:16px 18px;border-bottom:1px solid #edf1ee}.record-item:last-child{border-bottom:0}.record-item-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.record-item-heading strong{color:#2d3a32;font-size:14px;font-weight:600}.record-item-heading span{color:#078b48;font-size:12px;font-weight:500}.record-item-heading span.danger{color:#d6504e}.record-item dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin-top:14px}.record-item dl>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px}.record-item dt{color:#87928c;font-size:12px}.record-item dd{min-width:0;color:#435047;font-size:12px;overflow-wrap:anywhere}.record-item dd a{color:#078b48;text-decoration:underline;text-underline-offset:3px}.record-item dd a:hover{color:#05a952}.record-photo-button{padding:0;color:#078b48;background:transparent;border:0;font-size:inherit;text-decoration:underline;text-underline-offset:3px}.record-photo-button:hover{color:#05a952}.attendance-detail{padding:0;overflow:hidden}.attendance-detail>.surface-title{padding:16px 18px;margin:0;border-bottom:1px solid #e8ece9}.member-table{min-width:920px}.member-table th{text-align:center}.member-table th:first-child,.member-table td:first-child{position:sticky;left:0;z-index:1;min-width:126px;text-align:left;background:#fff}.member-table th:first-child{z-index:2;background:#f7f9f7}.member-table td{padding:11px 10px;text-align:center}.member-table th small{display:block;margin-top:3px;color:#89948e;font-size:11px;font-weight:400}.member-name{gap:8px}.member-name>span{width:24px;height:24px;display:grid;place-items:center;color:#fff;background:#42926c;border-radius:50%;font-size:10px}.attendance-status{width:25px;height:25px;display:inline-grid;place-items:center;color:#fff;background:#07c160;border-radius:4px;font-size:12px;font-style:normal;font-weight:600}.attendance-status.rest,.attendance-status.leave{color:#718078;background:#eff2f0}.attendance-status.late{color:#8c4d03;background:#e8a2303d}.attendance-status.missing{color:#c43737;background:#dd524d26}.empty-state{display:grid;place-items:center;gap:8px;min-height:300px;padding:32px;color:#88938d;background:#fff;border:1px solid #e8ece9;border-radius:8px;text-align:center}.empty-state h2{color:#4d5a52;font-size:16px}.empty-state p{font-size:13px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:20px;background:#18231c6b}.session-dialog{width:min(430px,100%);padding:20px;background:#fff;border-radius:8px;box-shadow:0 20px 60px #14251b38}.dialog-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-title h2{color:#26342c;font-size:18px}.dialog-title p{margin-top:5px;color:#7b878f;font-size:13px}.session-dialog label{display:grid;gap:7px;margin-top:20px;color:#536159;font-size:13px}.session-dialog input{height:38px;padding:0 10px;border:1px solid #dfe5e1;border-radius:5px;outline-color:#07c160}.dialog-note{display:flex;gap:6px;margin-top:12px;color:#7b704e;font-size:12px;line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.photo-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#141f19ad}.photo-preview-dialog{width:min(880px,100%);max-height:min(760px,calc(100vh - 48px));overflow:hidden;background:#fff;border-radius:8px;box-shadow:0 24px 72px #0c17104d}.photo-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 12px 0 18px;border-bottom:1px solid #e8ece9}.photo-preview-heading h2{color:#29372f;font-size:15px;font-weight:600}.photo-preview-content{position:relative;display:grid;min-height:240px;max-height:calc(min(760px,100vh - 48px) - 52px);place-items:center;padding:16px;background:#f4f7f4}.photo-preview-content img{display:block;max-width:100%;max-height:calc(min(760px,100vh - 48px) - 84px);object-fit:contain}.photo-preview-loading,.photo-preview-error{display:flex;align-items:center;gap:8px;color:#708078;font-size:13px}.photo-preview-loading{position:absolute;top:0;right:0;bottom:0;left:0;justify-content:center;background:#f4f7f4d1}.photo-preview-loading svg{animation:spin 1s linear infinite}.photo-preview-error{color:#a35a55}@media(max-width:980px){.overview-grid,.team-report-grid{grid-template-columns:1fr}.anomaly-surface{grid-column:auto}.filter-panel{flex-wrap:wrap}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.mobile-device-notice{top:8px;align-items:flex-start;padding-left:10px;font-size:12px}.error-toast,.success-toast{top:calc(100px + env(safe-area-inset-top));right:12px;width:calc(100vw - 24px)}.login-shell{padding:18px}.login-panel{padding:28px 22px}.topbar{padding:0 16px;gap:12px}.topbar-left{gap:14px}.brand>span:last-child{display:none}.primary-navigation button{padding:0 8px;font-size:12px}.account-summary>span:not(.avatar){display:none}.workspace{padding:18px 14px 28px}.page-header{display:block}.filter-panel{align-items:stretch;padding:10px}.date-filter-group{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:6px}.date-select{min-width:0}.date-select select{width:100%;min-width:0;padding-right:0;font-size:12px}.filter-panel .button{flex:1}.metric-grid{gap:10px}.metric-card{padding:14px}.metric-card strong{font-size:23px}.team-performance{grid-template-columns:minmax(106px,1fr) 32px minmax(58px,1fr) 45px;gap:6px}.team-members{display:none}.surface{padding:15px}.table-surface,.attendance-detail{padding:0}.team-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.team-metrics>div:nth-child(3n){border-right:1px solid #e8ece9}.team-metrics>div:nth-child(2n){border-right:0}.team-metrics>div:nth-last-child(-n+3){border-bottom:1px solid #e8ece9}.team-metrics>div:nth-last-child(-n+2){border-bottom:0}.attendance-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-metric:nth-child(5n){border-right:1px solid #e8ece9}.overview-metric:nth-child(2n){border-right:0}.overview-metric:nth-last-child(-n+5){border-bottom:1px solid #e8ece9}.overview-metric:nth-last-child(-n+2){border-bottom:0}.trend-chart{height:220px}.surface-title{align-items:flex-start}.summary-surface dl>div{padding:9px 0}.record-summary dl{grid-template-columns:1fr}.record-summary dl>div{border-right:0;border-bottom:1px solid #e8ece9}.record-summary dl>div:last-child{border-bottom:0}.record-item dl{grid-template-columns:1fr;gap:9px}.dialog-actions .button{flex:1}}@media(max-width:640px){.daily-summary-surface .attendance-overview{grid-template-rows:none;grid-auto-rows:minmax(78px,auto)}}
