:root {
            --accent: #2563eb;
            --accent-hover: #1d4ed8;
            --accent-light: #eff6ff;
            --accent-mid: #dbeafe;
        }
        body { background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 50%, #f8fafc 100%); min-height: 100vh; }
        .fc .fc-toolbar { flex-wrap: wrap; gap: 10px; }
        .fc .fc-toolbar-title { font-size: 1rem !important; font-weight: 700 !important; color: #1e293b !important; text-transform: capitalize; }
        input, textarea, select { font-size: 16px !important; }
        .fc .fc-button-primary {
            background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
            border: none !important;
            box-shadow: 0 2px 4px rgba(37,99,235,0.15) !important;
            transition: all 0.2s !important;
        }
        .fc .fc-button-primary:hover {
            background: linear-gradient(135deg, #3b82f6, #2563eb) !important;
            box-shadow: 0 4px 12px rgba(37,99,235,0.3) !important;
            transform: translateY(-1px);
        }
        .fc .fc-button-primary:not(:disabled).fc-button-active,
        .fc .fc-button-primary:not(:disabled):active {
            background: linear-gradient(135deg, #1d4ed8, #2563eb) !important;
        }
        .fc .fc-daygrid-day.fc-day-today { background: linear-gradient(135deg, #eff6ff, #dbeafe) !important; }
        .fc .fc-list-event:hover td { background-color: #eff6ff !important; }
        .fc .fc-daygrid-event {
            border: none !important;
            padding: 2px 8px !important; border-radius: 6px !important;
            font-size: 0.8rem !important; font-weight: 500 !important;
            margin: 1px 2px !important;
        }
        .fc .fc-daygrid-event .fc-event-title { font-weight: 600 !important; }
        .fc .fc-list-event-dot { border-color: #2563eb !important; }
        .fc .fc-list-event-title { font-weight: 500; }
        .fc .fc-col-header-cell { background: #f8fafc; padding: 10px 0 !important; }
        .fc .fc-col-header-cell-cushion { font-weight: 700 !important; color: #475569 !important; font-size: 0.8rem !important; text-transform: capitalize; }
        .fc .fc-scrollgrid { border-radius: 12px; overflow: hidden; border: 1px solid #bfdbfe !important; }
        .fc .fc-daygrid-day-frame { min-height: 90px; cursor: pointer; }
        @media (max-width: 767px) {
            .fc .fc-daygrid-day-frame { min-height: 60px; }
            .fc .fc-daygrid-event { font-size: 0.65rem !important; padding: 1px 4px !important; margin: 0 1px !important; }
            .fc .fc-toolbar-title { font-size: 0.85rem !important; }
            .fc .fc-button { font-size: 0.75rem !important; padding: 4px 8px !important; }
            .note-chip { font-size: 0.75rem; padding: 7px 14px; }
            .fc-daygrid-event[data-hasnote]::after { margin-left: 2px; font-size: 0.75em; }
            .fc-list-event[data-hasnote] .fc-list-event-title::after { font-size: 1em; }
        }
        @media (hover: none) {
            .note-chip { padding: 8px 14px; }
        }
        .fc .fc-daygrid-more-link { color: #2563eb !important; font-weight: 600; }
        .fc .fc-more-popover { border-radius: 12px !important; border: 1px solid #e2e8f0 !important; box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important; }
        .fc .fc-more-popover .fc-popover-title { font-size: 0.85rem !important; font-weight: 700 !important; color: #1e293b !important; text-transform: capitalize; padding: 8px 12px !important; }
        .fc .fc-more-popover .fc-daygrid-event { margin: 2px 8px !important; }
        .fc .fc-daygrid-day-top { justify-content: center; padding-top: 4px; }
        .fc .fc-daygrid-day-number { font-size: 0.85rem; font-weight: 500; color: #334155; }
        .fc .fc-day-other .fc-daygrid-day-number { color: #94a3b8; }
        .fc .fc-daygrid-day { cursor: pointer !important; }
        .fc .fc-daygrid-day:hover .fc-daygrid-day-frame { background: #f1f5f9 !important; }
        .fc .fc-list-empty { padding: 40px 20px; color: #64748b; font-size: 0.9rem; }
        .fc .fc-day-today .fc-daygrid-day-number { color: #2563eb !important; font-weight: 700 !important; }
        .fc .fc-list-table { border-collapse: separate; border-spacing: 0 2px; }
        .fc .fc-list-day:not(.fc-day-today) .fc-list-day-cushion { background: #f8fafc !important; }
        .fc .fc-list-day-cushion { padding: 8px 12px !important; font-weight: 600 !important; }
        .fc .fc-list-day-text, .fc .fc-list-day-side-text { text-transform: capitalize; font-size: 0.85rem; }
        .fc .fc-list-event td { padding: 6px 12px !important; border: none !important; }
        .fc .fc-list-event { border-radius: 8px !important; margin: 2px 4px; transition: all 0.15s; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
        .modal-backdrop { background: rgba(30,41,59,0.5); backdrop-filter: blur(4px); }
        @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
        @keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: transparent; }
        ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
        .input-field { transition: all 0.2s; }
        .input-field:focus { box-shadow: 0 0 0 3px rgba(37,99,235,0.15); }
        .time-btn { transition: all 0.2s; }
        .time-btn.active { background: #2563eb; color: white; border-color: #2563eb; }
        select option { background: white; color: #1e293b; }
        .fc .fc-highlight { background: rgba(37,99,235,0.08) !important; }
        .cache-indicator { transition: all 0.3s; }
        #eventTooltip {
            position: fixed;
            z-index: 100;
            max-width: min(300px, calc(100vw - 24px));
            background: #ffffff;
            border: 1px solid #dbeafe;
            border-radius: 14px;
            box-shadow: 0 12px 30px rgba(30,41,59,0.18);
            padding: 12px 14px;
            font-size: 0.8rem;
            color: #1e293b;
            pointer-events: none;
            opacity: 0;
            transform: translateY(6px) scale(0.97);
            transition: opacity 0.15s ease, transform 0.15s ease;
        }
        #eventTooltip.show { opacity: 1; transform: translateY(0) scale(1); }
        #eventTooltip::after {
            content: '';
            position: absolute;
            bottom: -8px;
            left: var(--arrow-left, 24px);
            width: 16px; height: 16px;
            background: #ffffff;
            border-right: 1px solid #dbeafe;
            border-bottom: 1px solid #dbeafe;
            transform: rotate(45deg);
        }
        #eventTooltip.below::after {
            bottom: auto; top: -8px;
            border: none;
            border-left: 1px solid #dbeafe;
            border-top: 1px solid #dbeafe;
        }
        .tt-name { font-weight: 700; font-size: 0.9rem; color: #1e40af; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
        .tt-row { display: flex; align-items: flex-start; gap: 7px; margin-top: 5px; color: #475569; }
        .tt-row svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 1px; color: #2563eb; }
        .tt-note { margin-top: 8px; padding: 8px 10px; background: #f0f7ff; border-radius: 10px; color: #334155; line-height: 1.45; white-space: pre-wrap; word-break: break-word; }
        .tt-note-label { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #60a5fa; margin-bottom: 2px; }
        .tt-empty { color: #94a3b8; font-style: italic; margin-top: 6px; }
        .fc-daygrid-event[data-hasnote]::after,
        .fc-list-event[data-hasnote] .fc-list-event-title::after {
            content: '\1F4DD';
            margin-left: 4px;
            font-size: 0.85em;
        }
        .note-chip {
            cursor: pointer;
            font-size: 0.7rem;
            font-weight: 600;
            padding: 4px 10px;
            border-radius: 999px;
            background: #eff6ff;
            color: #2563eb;
            border: 1px solid #bfdbfe;
            transition: all 0.15s;
            user-select: none;
        }
        .note-chip:hover { background: #dbeafe; border-color: #93c5fd; }
        .note-chip:active { transform: scale(0.95); }
        .nav-btn.active { background: #2563eb !important; color: white !important; }