:root {
            --calendar-primary: #2c6b9e;
            --calendar-accent: #4a90d9;
            --calendar-hover: #e8f0fe;
            --event-dot-color: #e74c3c;
            --holiday-dot-color: #28a745;
            --today-bg: #d4e2f7;
            --selected-bg: #c5d9f0;
        }
        .calendar-tool-header {
            margin-bottom: 1.5rem;
        }
        .calendar-controls {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 1.25rem;
            padding: 0.75rem 1rem;
            background: #f8f9fa;
            border-radius: 8px;
            border: 1px solid #e9ecef;
        }
        .calendar-controls .btn-group .btn {
            font-size: 0.9rem;
            padding: 0.35rem 0.75rem;
        }
        .calendar-controls select {
            padding: 0.35rem 0.75rem;
            border-radius: 4px;
            border: 1px solid #ced4da;
            background: white;
            font-size: 0.95rem;
        }
        .calendar-grid {
            width: 100%;
            border-collapse: collapse;
            table-layout: fixed;
        }
        .calendar-grid th {
            text-align: center;
            padding: 0.6rem 0;
            font-weight: 600;
            font-size: 0.85rem;
            color: #495057;
            border-bottom: 2px solid #dee2e6;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .calendar-grid td {
            text-align: center;
            vertical-align: top;
            padding: 0.25rem 0;
            border: 1px solid #f0f0f0;
            height: 5.5rem;
            width: 14.28%;
            cursor: pointer;
            transition: background 0.15s ease;
            position: relative;
        }
        .calendar-grid td:hover {
            background: var(--calendar-hover);
        }
        .calendar-grid td .date-number {
            display: inline-block;
            font-size: 0.95rem;
            font-weight: 500;
            width: 2rem;
            height: 2rem;
            line-height: 2rem;
            border-radius: 50%;
            margin-top: 0.15rem;
            transition: background 0.15s;
        }
        .calendar-grid td.today .date-number {
            background: var(--calendar-primary);
            color: white;
            font-weight: 600;
        }
        .calendar-grid td.selected .date-number {
            background: var(--selected-bg);
            color: var(--calendar-primary);
            font-weight: 600;
        }
        .calendar-grid td.other-month .date-number {
            color: #adb5bd;
        }
        .calendar-grid td .event-dot {
            display: block;
            width: 6px;
            height: 6px;
            background: var(--event-dot-color);
            border-radius: 50%;
            margin: 2px auto 0;
        }
        .calendar-grid td .holiday-dot {
            display: block;
            width: 6px;
            height: 6px;
            background: var(--holiday-dot-color);
            border-radius: 50%;
            margin: 2px auto 0;
        }
        .calendar-grid td .holiday-label {
            font-size: 0.55rem;
            color: var(--holiday-dot-color);
            font-weight: 600;
            line-height: 1.2;
            max-width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            padding: 0 2px;
            margin-top: 1px;
        }
        .calendar-grid td .event-count-badge {
            position: absolute;
            top: 2px;
            right: 2px;
            background: var(--event-dot-color);
            color: white;
            font-size: 0.6rem;
            font-weight: 700;
            width: 1.1rem;
            height: 1.1rem;
            line-height: 1.1rem;
            border-radius: 50%;
            text-align: center;
        }
        .calendar-grid td .date-content {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-start;
            height: 100%;
            padding-top: 0.15rem;
        }
        .calendar-month-title {
            font-size: 1.3rem;
            font-weight: 600;
            color: var(--calendar-primary);
            min-width: 10rem;
            text-align: center;
        }
        .event-panel {
            margin-top: 1.5rem;
            padding: 1.25rem;
            background: #fafbfc;
            border-radius: 8px;
            border: 1px solid #e9ecef;
            min-height: 6rem;
        }
        .event-panel .panel-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0.75rem;
        }
        .event-panel .panel-header h5 {
            margin: 0;
            font-weight: 600;
            color: #212529;
        }
        .event-panel .event-list {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        .event-panel .event-list li {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.5rem 0.75rem;
            background: white;
            border-radius: 4px;
            margin-bottom: 0.4rem;
            border-left: 3px solid var(--calendar-primary);
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
        }
        .event-panel .event-list li.holiday-item {
            border-left-color: var(--holiday-dot-color);
            background: #f0fff4;
            cursor: default;
        }
        .event-panel .event-list li .event-text {
            flex: 1;
            font-size: 0.95rem;
        }
        .event-panel .event-list li .delete-event {
            color: #dc3545;
            cursor: pointer;
            background: none;
            border: none;
            padding: 0 0.4rem;
            font-size: 0.9rem;
            opacity: 0.6;
            transition: opacity 0.15s;
        }
        .event-panel .event-list li .delete-event:hover {
            opacity: 1;
        }
        .event-panel .no-events {
            color: #6c757d;
            font-style: italic;
            padding: 0.75rem 0;
            text-align: center;
        }
        .event-panel .add-event-form {
            display: flex;
            gap: 0.5rem;
            margin-top: 0.75rem;
        }
        .event-panel .add-event-form input {
            flex: 1;
            padding: 0.4rem 0.75rem;
            border: 1px solid #ced4da;
            border-radius: 4px;
            font-size: 0.95rem;
        }
        .event-panel .add-event-form button {
            white-space: nowrap;
        }
        @media (max-width: 576px) {
            .calendar-grid td {
                height: 3.8rem;
                font-size: 0.8rem;
            }
            .calendar-grid td .date-number {
                width: 1.6rem;
                height: 1.6rem;
                line-height: 1.6rem;
                font-size: 0.8rem;
            }
            .calendar-grid td .holiday-label {
                font-size: 0.45rem;
            }
            .calendar-controls {
                flex-direction: column;
                align-items: stretch;
            }
            .calendar-controls .d-flex {
                justify-content: center;
                flex-wrap: wrap;
            }
            .calendar-month-title {
                font-size: 1.1rem;
                min-width: auto;
            }
            .event-panel .add-event-form {
                flex-direction: column;
            }
        }
        @media (max-width: 768px) {
            .calendar-grid td {
                height: 4.5rem;
            }
        }
        .property-table th,
        .property-table td {
            padding: 0.6rem 0.75rem;
            border: 1px solid #dee2e6;
            text-align: left;
        }
        .deep-dive p {
            text-align: justify;
        }
        .legend {
            display: flex;
            justify-content: center;
            gap: 1.5rem;
            margin: 0.5rem 0 0.25rem;
            font-size: 0.85rem;
            flex-wrap: wrap;
        }
        .legend-item {
            display: flex;
            align-items: center;
            gap: 0.3rem;
        }
        .legend-color {
            width: 14px;
            height: 14px;
            border-radius: 50%;
            display: inline-block;
        }
        .legend-color.today-dot {
            background: var(--calendar-primary);
        }
        .legend-color.event-dot {
            background: var(--event-dot-color);
        }
        .legend-color.holiday-dot {
            background: var(--holiday-dot-color);
        }
        .legend-color.selected-dot {
            background: var(--selected-bg);
            border: 1px solid var(--calendar-primary);
        }
        .btn-outline-calendar {
            color: var(--calendar-primary);
            border-color: var(--calendar-primary);
        }
        .btn-outline-calendar:hover {
            background: var(--calendar-primary);
            color: white;
        }
        .btn-calendar {
            background: var(--calendar-primary);
            color: white;
            border: none;
        }
        .btn-calendar:hover {
            background: #1f4f7a;
            color: white;
        }
        .btn-holiday-add {
            background: #28a745;
            color: white;
            border: none;
        }
        .btn-holiday-add:hover {
            background: #1e7e34;
            color: white;
        }
        .btn-holiday-remove {
            background: #fd7e14;
            color: white;
            border: none;
        }
        .btn-holiday-remove:hover {
            background: #e06b0a;
            color: white;
        }
        .toast-container .toast {
            background: white;
            border-radius: 8px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
            border-left: 4px solid var(--calendar-primary);
        }