/* ============================================
   Calendar / Syncfusion Schedule — Theme Overrides
   Replaces Syncfusion Fluent blue with app design tokens
   ============================================ */

/* --- Calendar event color tokens --- */
:root {
    --cal-event-job: #5a8a6e;
    --cal-event-job-border: #4a7a5e;
    --cal-event-personal: #6880a5;
    --cal-event-personal-border: #587095;
    --cal-event-unavailable: #b0706b;
    --cal-event-unavailable-border: #9a605b;
}

/* --- Toolbar / Header --- */
.e-schedule .e-schedule-toolbar .e-toolbar-items {
    background-color: var(--color-card-bg);
}

.e-schedule .e-schedule-toolbar {
    background-color: var(--color-card-bg);
    border-bottom: 1px solid var(--color-border);
}

.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn {
    color: var(--color-text-muted);
}

.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn:hover {
    background-color: var(--color-surface);
    color: var(--color-text);
}

.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn.e-active-view {
    color: var(--color-accent);
}

.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn.e-active-view .e-tbar-btn-text {
    color: var(--color-accent);
}

/* Active view bottom indicator */
.e-schedule .e-schedule-toolbar .e-toolbar-item .e-active-view::after,
.e-schedule .e-schedule-toolbar .e-active-view .e-tbar-btn::after {
    background-color: var(--color-accent) !important;
}

/* Navigation arrows */
.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn .e-icons {
    color: var(--color-text-muted);
}

.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn:hover .e-icons {
    color: var(--color-text);
}

/* Date range text */
.e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn .e-tbar-btn-text {
    color: var(--color-text);
}

/* --- Header cells (day names) --- */
.e-schedule .e-date-header-wrap {
    background-color: var(--color-card-bg);
}

.e-schedule .e-header-cells {
    background-color: var(--color-card-bg);
    border-color: var(--color-border-light);
    color: var(--color-text-muted);
}

/* Today column header */
.e-schedule .e-header-cells.e-current-day {
    color: var(--color-accent);
}

/* --- Work cells (calendar grid) --- */
.e-schedule .e-work-cells {
    background-color: var(--color-card-bg);
    border-color: var(--color-border-subtle);
}

.e-schedule .e-work-cells:hover {
    background-color: var(--color-card-warm);
}

.e-schedule .e-work-cells.e-selected-cell {
    background-color: var(--color-card-warm) !important;
}

/* Other-month cells */
.e-schedule .e-month-view .e-other-month {
    background-color: var(--color-surface);
}

/* --- Date header (day numbers in month view) --- */
.e-schedule .e-month-view .e-date-header {
    color: var(--color-text-light);
}

/* Today's date number */
.e-schedule .e-month-view .e-current-date .e-date-header,
.e-schedule .e-current-date .e-date-header {
    background-color: var(--color-accent) !important;
    color: #fff !important;
    border-radius: 50%;
}

/* --- Appointments / Events --- */
.e-appointment.project-work {
    background-color: var(--cal-event-job) !important;
    border-color: var(--cal-event-job-border) !important;
}

.e-appointment.personal-schedule {
    background-color: var(--cal-event-personal) !important;
    border-color: var(--cal-event-personal-border) !important;
}

.e-appointment.unavailable {
    background-color: var(--cal-event-unavailable) !important;
    border-color: var(--cal-event-unavailable-border) !important;
}

/* Appointment text */
.e-schedule .e-appointment .e-subject {
    color: #fff;
    font-weight: 500;
}

/* Month view — taller cells */
.e-schedule .e-month-view .e-work-cells,
.e-schedule .e-month-view .e-date-header-wrap table tbody td {
    height: 60px;
}

/* --- More events indicator --- */
.e-schedule .e-more-indicator {
    color: var(--color-accent);
}

/* --- Week/Day view time cells --- */
.e-schedule .e-time-cells-wrap .e-time-cells {
    border-color: var(--color-border-subtle);
}

.e-schedule .e-time-cells-wrap .e-time-slots {
    color: var(--color-text-dim);
}

/* --- Agenda view --- */
.e-schedule .e-agenda-view .e-appointment {
    border-color: var(--color-border-light);
}

/* --- Legend items --- */
.cal-legend {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.cal-legend-box {
    width: 16px;
    height: 16px;
    border-radius: var(--border-radius-sm);
    display: inline-block;
}

/* ============================================
   Dark Mode Overrides
   ============================================ */

[data-theme="dark"] {
    --cal-event-job: #6a9e7e;
    --cal-event-job-border: #5a8e6e;
    --cal-event-personal: #7890b5;
    --cal-event-personal-border: #6880a5;
    --cal-event-unavailable: #c0807b;
    --cal-event-unavailable-border: #b0706b;
}

/* Toolbar */
[data-theme="dark"] .e-schedule .e-schedule-toolbar .e-toolbar-items,
[data-theme="dark"] .e-schedule .e-schedule-toolbar {
    background-color: var(--color-card-bg);
    border-bottom-color: var(--color-border);
}

[data-theme="dark"] .e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn {
    color: var(--color-text-muted);
    background-color: transparent;
}

[data-theme="dark"] .e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn:hover {
    background-color: var(--color-surface);
    color: var(--color-text);
}

[data-theme="dark"] .e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn .e-tbar-btn-text {
    color: var(--color-text);
}

[data-theme="dark"] .e-schedule .e-schedule-toolbar .e-toolbar-item .e-tbar-btn .e-icons {
    color: var(--color-text-muted);
}

/* Header cells */
[data-theme="dark"] .e-schedule .e-date-header-wrap {
    background-color: var(--color-card-bg);
}

[data-theme="dark"] .e-schedule .e-header-cells {
    background-color: var(--color-card-bg);
    border-color: var(--color-border);
    color: var(--color-text-muted);
}

/* Work cells */
[data-theme="dark"] .e-schedule .e-work-cells {
    background-color: var(--color-card-bg);
    border-color: var(--color-border);
}

[data-theme="dark"] .e-schedule .e-work-cells:hover {
    background-color: var(--color-surface);
}

[data-theme="dark"] .e-schedule .e-work-cells.e-selected-cell {
    background-color: var(--color-surface) !important;
}

[data-theme="dark"] .e-schedule .e-month-view .e-other-month {
    background-color: var(--color-background);
}

/* Date headers */
[data-theme="dark"] .e-schedule .e-month-view .e-date-header {
    color: var(--color-text-light);
}

/* Time cells */
[data-theme="dark"] .e-schedule .e-time-cells-wrap .e-time-cells {
    border-color: var(--color-border);
}

[data-theme="dark"] .e-schedule .e-time-cells-wrap .e-time-slots {
    color: var(--color-text-dim);
    background-color: var(--color-card-bg);
}

/* Content wrap */
[data-theme="dark"] .e-schedule .e-content-wrap {
    background-color: var(--color-card-bg);
}

/* All-day cells */
[data-theme="dark"] .e-schedule .e-all-day-cells {
    background-color: var(--color-card-bg);
    border-color: var(--color-border);
}

/* Resource column */
[data-theme="dark"] .e-schedule .e-resource-left-td {
    background-color: var(--color-card-bg);
    border-color: var(--color-border);
}

/* Agenda view */
[data-theme="dark"] .e-schedule .e-agenda-view .e-appointment {
    background-color: var(--color-surface);
    border-color: var(--color-border);
}

[data-theme="dark"] .e-schedule .e-agenda-view .e-day-date-header {
    background-color: var(--color-surface);
    color: var(--color-text);
}

/* More events popup */
[data-theme="dark"] .e-schedule .e-more-popup-wrapper {
    background-color: var(--color-card-bg);
    border-color: var(--color-border);
    color: var(--color-text);
}

[data-theme="dark"] .e-schedule .e-more-indicator {
    color: var(--color-accent);
}

/* General schedule border */
[data-theme="dark"] .e-schedule {
    border-color: var(--color-border);
}
