.calendar-page {
            position: relative;
            padding: 28px 0 56px;
            color: var(--home-text, var(--text-primary));
        }

        .calendar-hero {
            position: relative;
            overflow: hidden;
            border-radius: 32px;
            border: 1px solid var(--tone-08);
            background:
                radial-gradient(circle at top left, rgba(var(--brand-rgb), .22), transparent 26%),
                linear-gradient(180deg, var(--tone-04), var(--tone-02)),
                var(--surface-card);
            box-shadow: 0 24px 70px var(--shade-30);
            padding: 28px;
            margin-bottom: 20px;
        }

        .calendar-hero::before {
            content: "";
            position: absolute;
            inset: 0;
            pointer-events: none;
            background: linear-gradient(135deg, var(--tone-08), transparent 35%, rgba(var(--brand-rgb), .10));
        }

        .calendar-kicker {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 8px 12px;
            border-radius: 999px;
            border: 1px solid rgba(var(--brand-accent-rgb), .18);
            background: rgba(var(--brand-rgb), .16);
            color: var(--brand-text-soft);
            font-size: .76rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .14em;
            margin-bottom: 12px;
        }

        .calendar-title {
            margin: 0 0 10px;
            font-size: clamp(2rem, 4vw, 3.2rem);
            line-height: 1;
            font-weight: 850;
            letter-spacing: -.04em;
            color: var(--tone-100);
        }

        .calendar-subtitle {
            max-width: 46rem;
            margin: 0;
            color: var(--palette-146);
            font-size: 1rem;
            line-height: 1.7;
        }

        .calendar-shell {
            border-radius: 30px;
            border: 1px solid var(--tone-08);
            background:
                linear-gradient(180deg, var(--tone-04), var(--tone-02)),
                var(--surface-card);
            box-shadow: 0 24px 70px var(--shade-30);
            overflow: hidden;
        }

        .calendar-toolbar {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
            padding: 16px 18px;
            border-bottom: 1px solid var(--tone-06);
            background: var(--tone-02);
        }

        .calendar-toolbar__meta {
            display: flex;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
            color: var(--palette-144);
            font-size: .92rem;
        }

        .calendar-chip {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            min-height: 38px;
            padding: 8px 12px;
            border-radius: 999px;
            border: 1px solid var(--tone-08);
            background: var(--tone-04);
            color: var(--text-primary);
        }

        .calendar-body {
            padding: 18px;
        }

        #calendar {
            min-height: 760px;
        }

        .fc {
            --fc-border-color: var(--tone-08);
            --fc-page-bg-color: transparent;
            --fc-neutral-bg-color: var(--tone-02);
            --fc-list-event-hover-bg-color: var(--tone-05);
            --fc-today-bg-color: var(--brand-highlight-bg);
            color: var(--text-primary);
        }

        .fc-event {
            color: var(--tone-100);
        }

        .fc .fc-toolbar {
            gap: 12px;
            align-items: center;
            margin-bottom: 1.2rem;
        }

        .fc .fc-toolbar-title {
            color: var(--tone-100);
            font-size: clamp(1.2rem, 2vw, 1.7rem);
            font-weight: 750;
            letter-spacing: -.02em;
        }

        .fc .fc-button {
            border-radius: 999px !important;
            border: 1px solid var(--tone-10) !important;
            background: var(--tone-04) !important;
            color: var(--text-primary) !important;
            box-shadow: none !important;
            padding: .5rem .9rem !important;
            transition: .2s ease;
        }

        .fc .fc-button:hover {
            background: var(--tone-08) !important;
            color: var(--tone-100) !important;
            transform: translateY(-1px);
        }

        .fc .fc-button-active,
        .fc .fc-button:active {
            background: var(--brand-gradient) !important;
            border-color: rgba(var(--brand-accent-rgb), .28) !important;
            color: var(--tone-100) !important;
        }

        .fc .fc-daygrid-day-frame {
            min-height: 110px;
        }

        .fc .fc-daygrid-day-number,
        .fc .fc-col-header-cell-cushion {
            color: var(--palette-041);
            text-decoration: none;
        }

        .fc .fc-daygrid-event,
        .fc .fc-timegrid-event {
            border: 0 !important;
            border-radius: 12px !important;
            background: var(--brand-gradient) !important;
            box-shadow: 0 8px 18px rgba(var(--brand-rgb), .18);
            padding: 2px 6px;
        }

        .fc .fc-list {
            border-color: var(--tone-08);
        }

        .fc .fc-list-day-cushion {
            background: var(--tone-03) !important;
        }

        .fc .fc-list-day-text,
        .fc .fc-list-day-side-text,
        .fc .fc-list-event-time,
        .fc .fc-list-event-title a {
            color: var(--text-primary) !important;
            text-decoration: none !important;
        }

        .fc .fc-list-event:hover td {
            background: var(--tone-04) !important;
        }

        .fc .fc-scrollgrid,
        .fc-theme-standard td,
        .fc-theme-standard th {
            border-color: var(--tone-08) !important;
        }

        .fc .fc-day-today {
            box-shadow: inset 0 0 0 1px rgba(var(--brand-accent-rgb), .20);
        }

        .calendar-fallback {
            display: none;
        }

        .fc-button-group {
            gap: 0.3rem;
        }

        @media (max-width: 992px) {
            #calendar {
                min-height: 640px;
            }

            .fc .fc-toolbar {
                flex-direction: column;
                align-items: stretch;
            }

            .fc .fc-toolbar-chunk {
                display: flex;
                justify-content: center;
                flex-wrap: wrap;
                gap: 8px;
            }

            .fc .fc-toolbar-title {
                text-align: center;
                width: 100%;
            }
        }

        @media (max-width: 768px) {
            .calendar-page {
                padding-top: 18px;
            }

            .calendar-hero,
            .calendar-shell {
                border-radius: 24px;
            }

            .calendar-hero {
                padding: 20px;
            }

            .calendar-body {
                padding: 14px;
            }

            #calendar {
                min-height: 520px;
            }

            .fc .fc-toolbar-title {
                font-size: 1.1rem;
            }

            .fc .fc-button {
                padding: .45rem .75rem !important;
                font-size: .88rem !important;
            }

            .fc .fc-daygrid-day-frame {
                min-height: 78px;
            }
        }

        @media (max-width: 576px) {
            .calendar-toolbar {
                padding: 14px;
            }

            .calendar-chip, .calendar-archive-btn, .calendar-toolbar__meta {
                width: 100%;
            }

            .calendar-body {
                padding: 12px;
            }

            .fc .fc-header-toolbar {
                margin-bottom: .9rem !important;
            }

            .fc .fc-toolbar-chunk:last-child {
                width: 100%;
            }

            .fc .fc-toolbar-chunk:last-child .fc-button-group,
            .fc .fc-toolbar-chunk:first-child .fc-button-group {
                display: flex;
                width: 100%;
                justify-content: center;
                flex-wrap: wrap;
                gap: 8px;
            }

            .fc .fc-toolbar-chunk:last-child .fc-button,
            .fc .fc-toolbar-chunk:first-child .fc-button {
                flex: 1 1 auto;
            }

            .fc-today-button {
                margin-left: 0!important;
            }

            .fc .fc-daygrid-body {
                overflow-x: auto;
            }
        }