/* ── Calendar Layout ─────────────────────────────────────────────── */
#view-calendar {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}
.calendar-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
    flex-wrap: wrap;
}
.calendar-nav {
    display: flex;
    align-items: center;
    gap: 6px;
}
.calendar-title {
    font-size: 16px;
    font-weight: 600;
    min-width: 160px;
}
.calendar-view-btns {
    display: flex;
    gap: 2px;
    margin-left: auto;
}
.calendar-view-btns .btn { padding: 4px 10px; }
.fullcalendar-container {
    flex: 1;
    overflow: hidden;
    padding: 12px 16px;
}

/* ── FullCalendar overrides ───────────────────────────────────────── */
.fc {
    height: 100%;
    font-family: var(--font) !important;
    font-size: 13px;
}
.fc .fc-toolbar { display: none; } /* We use our own toolbar */
.fc .fc-view-harness { height: 100%; }
.fc-theme-standard td, .fc-theme-standard th {
    border-color: var(--color-border);
}
.fc-theme-standard .fc-scrollgrid { border-color: var(--color-border); }
.fc .fc-col-header-cell-cushion {
    color: var(--color-text-muted);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 6px 4px;
    text-decoration: none;
}
.fc .fc-daygrid-day-number {
    color: var(--color-text);
    font-size: 13px;
    padding: 6px 8px;
    text-decoration: none;
}
.fc .fc-day-today { background: var(--color-accent-light) !important; }
.fc .fc-day-today .fc-daygrid-day-number {
    background: var(--color-accent);
    color: #fff;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 4px;
}
.fc .fc-event {
    border-radius: 4px;
    border: none;
    font-size: 11px;
    font-weight: 500;
    padding: 1px 4px;
    cursor: pointer;
}
.fc .fc-event:hover { opacity: 0.85; }
.fc .fc-daygrid-dot-event { padding: 2px 4px; }
.fc .fc-button { display: none; } /* hide all built-in buttons */
.fc .fc-timegrid-slot-label { color: var(--color-text-muted); font-size: 11px; }
.fc .fc-timegrid-now-indicator-line { border-color: var(--color-accent); }
.fc .fc-timegrid-now-indicator-arrow { border-top-color: var(--color-accent); }

/* Dark mode FullCalendar */
[data-theme="dark"] .fc .fc-col-header-cell-cushion { color: var(--color-text-muted); }
[data-theme="dark"] .fc .fc-daygrid-day-number { color: var(--color-text); }
[data-theme="dark"] .fc-theme-standard td { border-color: var(--color-border); }
[data-theme="dark"] .fc-theme-standard .fc-scrollgrid { border-color: var(--color-border); }
[data-theme="dark"] .fc .fc-timegrid-slot-label { color: var(--color-text-muted); }

/* Event color presets */
.event-color-preset {
    width: 24px; height: 24px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.15s, border-color 0.15s;
}
.event-color-preset:hover, .event-color-preset.active {
    transform: scale(1.2);
    border-color: var(--color-text);
}

/* Quick-create popover */
.quick-event-popover {
    position: absolute;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 14px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    z-index: 300;
    width: 260px;
}
.quick-event-popover input {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 14px;
    color: var(--color-text);
    background: var(--color-bg);
    outline: none;
    margin-bottom: 8px;
}
.quick-event-popover input:focus { border-color: var(--color-accent); }
.quick-event-actions {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

/* Event modal detail */
.event-form .form-group input[type="datetime-local"],
.event-form .form-group input[type="date"] {
    width: 100%;
}
.event-color-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 4px 0;
}
.recurrence-info {
    font-size: 12px;
    color: var(--color-text-muted);
    margin-top: 4px;
}

/* ── Task due-date events ─────────────────────────────────────────── */
.fc-event.fc-task-due {
    background: transparent !important;
    border: 1.5px dashed #f59e0b !important;
    color: #92400e !important;
    font-style: italic;
}
.fc-event.fc-task-due:hover { opacity: 0.8; }

.fc-event.fc-task-overdue {
    border-color: #ef4444 !important;
    color: #991b1b !important;
}

.fc-event.fc-task-completed {
    border-color: #10b981 !important;
    color: #065f46 !important;
    opacity: 0.65;
    text-decoration: line-through;
}

.fc-task-icon { font-style: normal; }

[data-theme="dark"] .fc-event.fc-task-due {
    color: #fcd34d !important;
}
[data-theme="dark"] .fc-event.fc-task-overdue {
    color: #fca5a5 !important;
}
[data-theme="dark"] .fc-event.fc-task-completed {
    color: #6ee7b7 !important;
}
