.calendar-page-header[data-v-5ba98753]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:8px 0 12px}.calendar-page-title[data-v-5ba98753]{font-size:24px;font-weight:600;line-height:32px;letter-spacing:0;color:#0f172a;padding-bottom:4px}.calendar-page-subtitle[data-v-5ba98753]{margin-top:8px;max-width:720px;line-height:22px;color:#64748b}.calendar-filter[data-v-5ba98753]{width:220px}.summary-grid[data-v-5ba98753]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.summary-card[data-v-5ba98753]{padding:12px 16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 6px 18px #0f172a0a}.summary-label[data-v-5ba98753]{font-size:13px;color:#64748b}.summary-value[data-v-5ba98753]{margin-top:4px;font-size:22px;font-weight:700;color:#0f172a}.summary-meta[data-v-5ba98753]{margin-top:4px;line-height:18px;font-size:12px;color:#64748b}.calendar-main-panel[data-v-5ba98753]{overflow:hidden;border-radius:22px;padding:16px;background:#fff}.calendar-side-panel[data-v-5ba98753]{display:flex;width:100%}.calendar-toolbar[data-v-5ba98753]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.calendar-year-switcher[data-v-5ba98753]{display:flex;align-items:center;gap:6px;flex:none}.year-arrow-button[data-v-5ba98753]{width:28px;height:28px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;font-size:18px;line-height:1;color:#334155;cursor:pointer}.year-arrow-button[data-v-5ba98753]:hover{border-color:#94a3b8;background:#f8fafc}.calendar-year-label[data-v-5ba98753]{min-width:72px;font-size:16px;font-weight:700;color:#0f172a;text-align:center}.calendar-month-tabs[data-v-5ba98753]{display:flex;flex:1;flex-wrap:wrap;gap:6px}.month-tab[data-v-5ba98753]{min-width:42px;padding:5px 8px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-size:12px;font-weight:600;color:#475569;cursor:pointer;transition:all .2s ease}.month-tab[data-v-5ba98753]:hover{border-color:#94a3b8;background:#f1f5f9}.month-tab.is-active[data-v-5ba98753]{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 2px #3b82f61a}.calendar-legend[data-v-5ba98753]{display:flex;flex-wrap:wrap;gap:6px;flex:none}.legend-chip[data-v-5ba98753]{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease}.legend-chip.is-active[data-v-5ba98753]{transform:translateY(-1px);box-shadow:0 4px 10px #0f172a1a}.legend-chip.is-dim[data-v-5ba98753]{opacity:.45}.calendar-date-cell[data-v-5ba98753]{display:flex;flex-direction:column;gap:6px;min-height:118px;padding:8px;border:1px solid #e2e8f0;border-radius:14px;background:#ffffffeb;transition:all .2s ease}.calendar-date-cell[data-v-5ba98753]:hover{border-color:#94a3b8;box-shadow:0 10px 24px #0f172a0f}.calendar-date-cell.is-selected[data-v-5ba98753]{border:2px solid #3b82f6;box-shadow:0 0 0 3px #3b82f624}.calendar-date-cell.is-legend-match[data-v-5ba98753]:not(.is-selected){border-color:#7dd3fc;box-shadow:0 0 0 2px #bae6fdcc}.calendar-date-cell.is-today[data-v-5ba98753]{background:linear-gradient(180deg,#eff6ff,#fff)}.calendar-date-cell.is-muted[data-v-5ba98753]{opacity:.58}.calendar-date-cell.is-dimmed[data-v-5ba98753]{opacity:.5}.calendar-date-cell.is-dimmed.is-selected[data-v-5ba98753]{opacity:.72}.date-cell-header[data-v-5ba98753]{display:flex;align-items:center;justify-content:space-between}.date-header-main[data-v-5ba98753]{display:flex;align-items:center;gap:4px;min-width:0}.date-number[data-v-5ba98753]{font-size:21px;font-weight:700;color:#0f172a;line-height:1}.date-today-text[data-v-5ba98753]{font-size:11px;color:#94a3b8}.date-flag[data-v-5ba98753]{padding:1px 5px;border-radius:999px;font-size:10px;font-weight:600;line-height:1.4}.date-flag--rest[data-v-5ba98753]{background:#f1f5f9;color:#475569}.date-flag--work[data-v-5ba98753]{background:#fff7ed;color:#c2410c}.half-day-panel[data-v-5ba98753]{display:grid;grid-template-columns:28px minmax(0,1fr);flex:1;min-height:0}.half-day-axis[data-v-5ba98753]{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));align-items:stretch;padding-right:6px}.half-day-axis-label[data-v-5ba98753]{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#94a3b8;text-transform:lowercase}.half-day-axis-label+.half-day-axis-label[data-v-5ba98753]{border-top:1px dashed #e2e8f0}.half-day-schedule[data-v-5ba98753]{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));min-width:0;border-left:1px dashed #e2e8f0}.half-day-row[data-v-5ba98753]{display:flex;align-items:center;min-width:0;padding:6px 0 6px 8px}.half-day-row+.half-day-row[data-v-5ba98753]{border-top:1px dashed #e2e8f0}.half-day-summary[data-v-5ba98753]{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%}.half-day-title[data-v-5ba98753]{display:inline-flex;align-items:center;gap:4px;overflow:hidden;min-width:0;max-width:100%;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;color:#0f172a}.half-day-title-text[data-v-5ba98753]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.half-day-count-tag[data-v-5ba98753]{flex:none;padding:1px 6px;border-radius:999px;background:#f1f5f9;font-size:10px;font-weight:700;color:#64748b}.cross-day-tag[data-v-5ba98753]{flex-shrink:0;font-size:10px;font-weight:500;color:#999;background:#fff;padding:2px 6px;border-radius:9999px;white-space:nowrap;margin-right:-6px}.schedule-tag--holiday[data-v-5ba98753]{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.schedule-tag--comp[data-v-5ba98753]{border-color:#bae6fd;background:#f0f9ff;color:#0369a1}.schedule-tag--meeting[data-v-5ba98753]{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.schedule-tag--training[data-v-5ba98753]{border-color:#fef08a;background:#fefce8;color:#a16207}.schedule-tag--personal[data-v-5ba98753]{border-color:#10b981;background:#d1fae5;color:#10b981}.schedule-tag--dept[data-v-5ba98753]{border-color:#3b82f6;background:#dbeafe;color:#3b82f6}.schedule-tag--company[data-v-5ba98753]{border-color:#f59e0b;background:#fef3c7;color:#f59e0b}.attendance-ring[data-v-5ba98753]{position:relative;display:inline-flex;width:18px;height:18px;overflow:hidden;flex:none;border-radius:999px;background:#e2e8f0}.attendance-ring--large[data-v-5ba98753]{width:42px;height:42px;flex:none}.attendance-ring[data-v-5ba98753]:after{position:absolute;inset:3px;border-radius:999px;background:#fff;content:"";z-index:2}.attendance-ring--large[data-v-5ba98753]:after{inset:7px}.attendance-ring-half[data-v-5ba98753]{position:relative;z-index:1;width:50%;height:100%}.attendance-ring-half--left[data-v-5ba98753]{border-radius:999px 0 0 999px}.attendance-ring-half--right[data-v-5ba98753]{border-radius:0 999px 999px 0}.attendance-half--normal[data-v-5ba98753]{background:#22c55e}.attendance-half--warning[data-v-5ba98753]{background:#facc15}.attendance-half--missing[data-v-5ba98753]{background:#ef4444}.attendance-half--makeup[data-v-5ba98753]{background:#3b82f6}.attendance-half--empty[data-v-5ba98753]{background:#cbd5e1}.attendance-color-dot[data-v-5ba98753]{width:10px;height:10px;border-radius:999px}.attendance-color-dot--normal[data-v-5ba98753]{background:#22c55e}.attendance-color-dot--warning[data-v-5ba98753]{background:#facc15}.attendance-color-dot--missing[data-v-5ba98753]{background:#ef4444}.attendance-color-dot--makeup[data-v-5ba98753]{background:#3b82f6}.group-attendance-pill[data-v-5ba98753]{padding:2px 8px;border-radius:999px;background:#f1f5f9;font-size:11px;font-weight:600;color:#475569}.selected-date-value[data-v-5ba98753]{font-size:18px;font-weight:700;color:#0f172a}.selected-date-header[data-v-5ba98753]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.selected-date-tip[data-v-5ba98753]{margin-top:6px;color:#64748b}.attendance-section-head[data-v-5ba98753]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;margin-bottom:8px}.attendance-section-label[data-v-5ba98753]{margin:0;font-size:12px;font-weight:600;color:#64748b}.attendance-summary-card[data-v-5ba98753]{display:flex;gap:12px;align-items:center;padding:14px;border-radius:16px;background:#f8fafc}.attendance-summary-title[data-v-5ba98753]{font-weight:700;color:#0f172a}.attendance-summary-detail[data-v-5ba98753]{margin-top:4px;line-height:20px;color:#64748b}.makeup-quota-card[data-v-5ba98753]{display:inline-flex;align-items:baseline;gap:6px;flex-shrink:0;padding:4px 10px;border-radius:10px;background:#eff6ff}.makeup-quota-label[data-v-5ba98753]{font-size:12px;color:#475569}.makeup-quota-value[data-v-5ba98753]{font-size:20px;font-weight:700;color:#2563eb}.makeup-quota-total[data-v-5ba98753]{font-size:12px;color:#64748b}.attendance-legend-inline[data-v-5ba98753]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 12px}.attendance-legend-item[data-v-5ba98753]{display:flex;align-items:center;gap:8px;font-size:12px;color:#475569;white-space:nowrap}.side-tags[data-v-5ba98753]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.side-stat-chip[data-v-5ba98753]{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700;line-height:1.25}.schedule-tag--special-summary[data-v-5ba98753]{border-color:#e2e8f0;background:#f8fafc;color:#475569}.on-duty-section[data-v-5ba98753]{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.on-duty-title[data-v-5ba98753]{margin-bottom:12px;font-size:14px;font-weight:700;color:#0f172a}.on-duty-panel[data-v-5ba98753]{display:flex;flex-direction:column;gap:12px}.on-duty-dept-tabs[data-v-5ba98753]{display:flex;flex-wrap:wrap;gap:8px}.on-duty-dept-tab[data-v-5ba98753]{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;font-size:12px;font-weight:600;color:#475569;cursor:pointer}.on-duty-dept-tab.is-active[data-v-5ba98753]{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.on-duty-dept-count[data-v-5ba98753]{min-width:18px;padding:0 5px;border-radius:999px;background:#fff;font-size:11px;line-height:18px;text-align:center}.on-duty-member-list[data-v-5ba98753]{display:flex;flex-wrap:wrap;gap:8px}.on-duty-member[data-v-5ba98753]{padding:3px 9px;border-radius:999px;background:#fff;font-size:12px;color:#475569;box-shadow:inset 0 0 0 1px #e2e8f0}.day-timeline[data-v-5ba98753]{margin-top:16px}.timeline-time[data-v-5ba98753]{font-size:12px;color:#64748b}.timeline-title[data-v-5ba98753]{margin-top:4px;font-weight:700;color:#0f172a}.timeline-description[data-v-5ba98753]{margin-top:4px;line-height:20px;color:#475569}.timeline-time.is-expired[data-v-5ba98753],.timeline-title.is-expired[data-v-5ba98753],.timeline-description.is-expired[data-v-5ba98753]{color:#94a3b8}.timeline-content[data-v-5ba98753]{position:relative;padding:14px 16px;border-radius:12px;transition:all .3s ease;border:1px solid #e5e7eb;background:#fff;cursor:pointer}.timeline-content--personal[data-v-5ba98753]{border-color:#10b9814d;background:linear-gradient(135deg,#10b98114,#fff)}.timeline-content--dept[data-v-5ba98753]{border-color:#3b82f64d;background:linear-gradient(135deg,#3b82f614,#fff)}.timeline-content--company[data-v-5ba98753]{border-color:#f59e0b4d;background:linear-gradient(135deg,#f59e0b14,#fff)}.timeline-content[data-v-5ba98753]:hover{transform:translateY(-2px)}.timeline-content:hover.timeline-content--personal[data-v-5ba98753]{border-color:#10b98180;box-shadow:0 6px 16px #10b98126}.timeline-content:hover.timeline-content--dept[data-v-5ba98753]{border-color:#3b82f680;box-shadow:0 6px 16px #3b82f626}.timeline-content:hover.timeline-content--company[data-v-5ba98753]{border-color:#f59e0b80;box-shadow:0 6px 16px #f59e0b26}.timeline-meta[data-v-5ba98753]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.timeline-creator[data-v-5ba98753]{font-size:11px;color:#9ca3af}.timeline-type[data-v-5ba98753]{padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.timeline-content--personal .timeline-type[data-v-5ba98753]{background:#10b98126;color:#059669}.timeline-content--dept .timeline-type[data-v-5ba98753]{background:#3b82f626;color:#2563eb}.timeline-content--company .timeline-type[data-v-5ba98753]{background:#f59e0b26;color:#d97706}.timeline-title[data-v-5ba98753]{flex:1;font-size:14px;font-weight:600;color:#1f2937;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;line-height:1.4}.timeline-time-range[data-v-5ba98753]{font-size:13px;color:#6b7280}.status-tag[data-v-5ba98753]{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.status-tag--pending[data-v-5ba98753]{background:#f1f5f9;color:#64748b}.status-tag--in-progress[data-v-5ba98753]{background:#eff6ff;color:#3b82f6}.status-tag--completed[data-v-5ba98753]{background:#d1fae5;color:#10b981}.timeline-time[data-v-5ba98753],.timeline-description[data-v-5ba98753]{display:none}[data-v-5ba98753] .ant-picker-calendar{background:transparent}[data-v-5ba98753] .ant-picker-calendar-header,.calendar-header-placeholder[data-v-5ba98753]{display:none}[data-v-5ba98753] .ant-picker-content th{padding-bottom:10px;color:#64748b}[data-v-5ba98753] .ant-picker-content{border-collapse:separate;border-spacing:8px 8px}[data-v-5ba98753] .ant-picker-cell{padding:0}[data-v-5ba98753] .ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner,[data-v-5ba98753] .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{background:transparent!important;border:0!important}html.dark .calendar-page-title[data-v-5ba98753]{color:#e2e8f0}html.dark .calendar-page-subtitle[data-v-5ba98753]{color:#94a3b8}html.dark .calendar-main-panel[data-v-5ba98753]{background:#0f172ab3;box-shadow:inset 0 0 0 1px #47556959}html.dark .year-arrow-button[data-v-5ba98753]{border-color:#475569;background:#1e293b;color:#cbd5e1}html.dark .year-arrow-button[data-v-5ba98753]:hover{border-color:#64748b;background:#334155}html.dark .calendar-year-label[data-v-5ba98753]{color:#e2e8f0}html.dark .month-tab[data-v-5ba98753]{border-color:#475569;background:#1e293b;color:#94a3b8}html.dark .month-tab[data-v-5ba98753]:hover{border-color:#64748b;background:#334155;color:#cbd5e1}html.dark .month-tab.is-active[data-v-5ba98753]{border-color:#3b82f6;background:#1e3a8a59;color:#bfdbfe;box-shadow:0 0 0 2px #3b82f638}html.dark .legend-chip[data-v-5ba98753],html.dark .side-stat-chip[data-v-5ba98753]{color:#e2e8f0}html.dark .legend-chip.is-dim[data-v-5ba98753]{opacity:.6}html.dark .schedule-tag--personal[data-v-5ba98753]{border-color:#10b9818c;background:#064e3b73;color:#6ee7b7}html.dark .schedule-tag--dept[data-v-5ba98753]{border-color:#3b82f68c;background:#1e3a8a73;color:#93c5fd}html.dark .schedule-tag--company[data-v-5ba98753]{border-color:#f59e0b8c;background:#78350f6b;color:#fdba74}html.dark .calendar-date-cell[data-v-5ba98753]{border-color:#475569;background:#0f172ae0}html.dark .calendar-date-cell[data-v-5ba98753]:hover{border-color:#64748b;box-shadow:0 12px 28px #02061761}html.dark .calendar-date-cell.is-selected[data-v-5ba98753]{box-shadow:0 0 0 3px #3b82f642}html.dark .calendar-date-cell.is-legend-match[data-v-5ba98753]:not(.is-selected){border-color:#38bdf8;box-shadow:0 0 0 2px #0e749059}html.dark .calendar-date-cell.is-today[data-v-5ba98753]{background:linear-gradient(180deg,#1e3a8a59,#0f172aeb)}html.dark .date-number[data-v-5ba98753]{color:#e2e8f0}html.dark .date-today-text[data-v-5ba98753],html.dark .half-day-axis-label[data-v-5ba98753]{color:#94a3b8}html.dark .half-day-axis-label+.half-day-axis-label[data-v-5ba98753],html.dark .half-day-schedule[data-v-5ba98753],html.dark .half-day-row+.half-day-row[data-v-5ba98753]{border-color:#475569a6}html.dark .half-day-title[data-v-5ba98753]{color:#e2e8f0}html.dark .half-day-count-tag[data-v-5ba98753]{background:#334155;color:#94a3b8}html.dark .cross-day-tag[data-v-5ba98753]{color:#94a3b8;background:#1e293b}html.dark .timeline-content[data-v-5ba98753]{border-color:#475569a6;background:#0f172ae0}html.dark .timeline-content--personal[data-v-5ba98753]{border-color:#10b98173;background:linear-gradient(135deg,#10b98129,#0f172ae6)}html.dark .timeline-content--dept[data-v-5ba98753]{border-color:#3b82f673;background:linear-gradient(135deg,#3b82f629,#0f172ae6)}html.dark .timeline-content--company[data-v-5ba98753]{border-color:#f59e0b73;background:linear-gradient(135deg,#f59e0b29,#0f172ae6)}html.dark .timeline-title[data-v-5ba98753]{color:#e2e8f0}html.dark .timeline-time-range[data-v-5ba98753]{color:#94a3b8}html.dark .timeline-creator[data-v-5ba98753]{color:#64748b}html.dark .status-tag--pending[data-v-5ba98753]{background:#334155;color:#cbd5e1}html.dark .status-tag--in-progress[data-v-5ba98753]{background:#1e3a8a73;color:#93c5fd}html.dark .status-tag--completed[data-v-5ba98753]{background:#064e3b73;color:#6ee7b7}html.dark[data-v-5ba98753] ::deep(.ant-picker-content th){color:#94a3b8}@media(max-width:1400px){.summary-grid[data-v-5ba98753]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.calendar-page-header[data-v-5ba98753]{flex-direction:column}.calendar-filter[data-v-5ba98753]{width:100%}}@media(max-width:768px){.summary-grid[data-v-5ba98753]{grid-template-columns:minmax(0,1fr)}.calendar-toolbar[data-v-5ba98753]{align-items:flex-start}.calendar-month-tabs[data-v-5ba98753]{flex:none}.selected-date-header[data-v-5ba98753]{flex-direction:column}.attendance-legend-inline[data-v-5ba98753]{justify-content:flex-start}.attendance-section-head[data-v-5ba98753]{flex-wrap:wrap;align-items:flex-start}.calendar-date-cell[data-v-5ba98753]{min-height:108px;padding:8px}}
