/* Calendar is one optional full-width card, not a fixed Home section. */
.personal-card[data-card-type="events.calendar"] { grid-column: 1 / -1; }
.home-calendar-wide { grid-column: 1 / -1; }
.personal-card[data-card-type="events.calendar"], .shared-home-card[data-shared-card="calendar"] { background: var(--amethyst-calendar); }
.home-calendar { min-width: 0; }
.calendar-heading h2 { margin-bottom: .35rem; }
.calendar-heading p { margin-top: 0; }
.calendar-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.calendar-toolbar .button { padding: .5rem .8rem; min-height: 44px; }
.calendar-toolbar strong { margin-inline: .3rem; font-size: .95rem; }
.calendar-strip { display: grid; grid-template-columns: repeat(7, minmax(68px, 1fr)); overflow-x: auto; gap: .5rem; margin: 1rem 0; padding: .25rem .2rem .65rem; scroll-snap-type: x proximity; font-weight: 400; }
.calendar-day { display: grid; align-content: start; justify-items: start; gap: .3rem; min-height: 104px; padding: 12px 10px; background: var(--amethyst-calendar-day); border: 1px solid var(--line); border-radius: 8px; scroll-snap-align: start; cursor: pointer; }
.calendar-day strong { font-size: 23px; line-height: 1.3; font-weight: 400; }
.calendar-day span, .calendar-day small { color: var(--muted); font-size: .78rem; }
.calendar-day:hover { background: var(--surface-raised); }
.calendar-day:focus-visible { border-color: var(--control-line); }
.calendar-day.is-selected { background: var(--amethyst-selected); border-color: var(--violet); box-shadow: inset 0 2px var(--violet); }
.calendar-day.is-selected small { color: var(--violet); font-weight: 700; }
.calendar-filter { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.calendar-filter p { margin: .2rem 0; }
.calendar-filter a { color: var(--violet); text-decoration: underline; text-underline-offset: .2em; }
.calendar-events li, .calendar-events a { overflow-wrap: anywhere; min-width: 0; }
.calendar-load-status { min-height: 1.5em; margin-bottom: 0; color: var(--muted); font-size: .9rem; }
.home-calendar[aria-busy="true"] .calendar-load-status::before { content: ""; display: inline-block; width: .8em; height: .8em; margin-right: .5rem; border: 2px solid var(--line); border-top-color: var(--violet); border-radius: 50%; animation: calendar-spin .8s linear infinite; }
@keyframes calendar-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .home-calendar[aria-busy="true"] .calendar-load-status::before { animation: none; } }
@media (max-width: 430px) { .calendar-toolbar strong { flex: 1; font-size: .85rem; } .calendar-toolbar .button { padding: .5rem .7rem; } }
