.dots-grid {
    display: grid;
    gap: 8px;
    width: 100%;
    align-content: start;
}

.dot {
    width: 100%;
    aspect-ratio: 1;
    background-color: var(--dot-future);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.2s; 
    position: relative;
    will-change: transform;
}

.dot.past { background-color: var(--dot-past); opacity: 0.5; }
.dot.event {
    background-color: var(--dot-event);
    box-shadow: 0 0 8px var(--accent-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: #000;
    font-weight: bold;
}
.dot:hover { z-index: 10; }

/* Current Day Highlight */
.dot-today {
    position: relative;
    z-index: 5;
    background-color: #ffffffee !important;
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.4);
    animation: glow-pulse 2s infinite alternate;
}

.dot-today::before {
    content: '';
    position: absolute;
    top: -4px; left: -4px; right: -4px; bottom: -4px;
    pointer-events: none;
}

/* Onboarding Animation */
.dot-onboarding {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    animation: icon-loop 4s infinite;
}

.dot-onboarding::after {
    content: '✨';
    animation: icon-content-loop 4s infinite;
}

@keyframes icon-content-loop {
    0%, 24% { content: '✨'; }
    25%, 49% { content: '📅'; }
    50%, 74% { content: '📝'; }
    75%, 100% { content: '👋'; }
}

@keyframes glow-pulse {
    from { box-shadow: 0 0 5px 1px rgba(255, 255, 255, 0.1); }
    to { box-shadow: 0 0 20px 5px rgba(255, 255, 255, 0.4); }
}
