/* Category colors come exclusively from calendar-config.mjs. */
.calendar-controls{display:flex;align-items:flex-end;gap:14px}
.calendar-month-nav{display:flex;align-items:center;gap:8px;margin-right:auto}
.calendar-month-nav h2{min-width:190px;margin:0 8px 0 0}
.calendar-month-nav button{display:grid;width:44px;height:44px;padding:0;place-items:center}
.calendar-scroll{overflow-x:auto;padding:3px;scrollbar-gutter:stable}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:1232px;gap:5px}
.calendar-weekday{display:block;padding:15px 0;font-size:.875rem;font-weight:700;color:#142c29;background:#e3e8e2}
.calendar-day{display:block;min-height:150px;margin:0;padding:8px;background:#f1f2ed;color:#263c33}
.calendar-day.calendar-padding{background:transparent}
.calendar-day-head{display:flex;justify-content:flex-end;min-height:40px}
.calendar-day .calendar-day-head time{display:grid;place-items:center;width:30px;height:30px;margin:0 0 10px;font-size:.875rem;font-weight:500;border:2px solid transparent;border-radius:50%;text-align:center}
.calendar-day.is-today{box-shadow:inset 0 0 0 1px var(--calendar-today)}
.calendar-day.is-today .calendar-day-head time{border-color:var(--calendar-today);background:transparent}
.calendar-entry{display:block;margin:6px 0;padding:0;border:1px solid #c9d2cb;border-left:3px solid var(--category-accent);background:#fff;color:#142c29;font-size:.8rem;line-height:1.45;text-decoration:none;overflow-wrap:anywhere}
.calendar-entry:hover{background:#f8faf7;border-color:var(--category-accent)}
.calendar-entry-copy{display:block;padding:9px 7px}
.calendar-entry-title{display:block;font-weight:700;line-height:1.45}
.calendar-entry .calendar-category-label{display:inline-block;width:max-content;max-width:100%;margin:0 0 8px;padding:4px 6px;background:var(--category-bg);color:var(--category-text);font-size:.75rem;font-weight:700;letter-spacing:0;line-height:1.4;text-transform:none;white-space:nowrap;overflow-wrap:normal}
.calendar-entry .calendar-entry-host{display:block;margin-top:4px;color:#40554b;font-size:.75rem;letter-spacing:0;font-weight:400;line-height:1.45}
.calendar-entry .calendar-entry-time,.calendar-entry .calendar-entry-status{display:block;margin-top:7px;color:#40554b;font-size:.75rem;letter-spacing:0;line-height:1.45;font-variant-numeric:tabular-nums}
.calendar-entry .calendar-entry-time.is-all-day{display:inline-block;padding:2px 6px;border:1px solid #c9d2cb;border-radius:3px;font-size:.72rem;font-weight:600;background:#f3f5f1}
.calendar-entry.is-past{opacity:var(--calendar-past-opacity)}
.calendar-agenda article{margin:18px 0;padding:0;border:0}
.calendar-agenda article.is-past{opacity:var(--calendar-past-opacity)}
.calendar-agenda article.is-past .calendar-entry{opacity:1}
.calendar-agenda .calendar-entry{font-size:1.1rem}
.calendar-agenda .calendar-entry-copy{padding:18px}
.calendar-agenda .calendar-entry-host,.calendar-agenda .calendar-entry-time{font-size:.875rem}
.calendar-agenda-date{font-size:.9rem;font-weight:600;margin:0 0 6px}
.calendar-agenda-note{font-size:.875rem;margin:8px 0 22px;line-height:1.6}
.dark .calendar-controls{background:#18372d}
.dark .calendar-controls button,.dark .calendar-controls input,.dark .calendar-controls select{background:#102820;color:#f5f4e9}
.dark .calendar-controls button:hover{background:#29483e}
.dark .calendar-weekday{background:#29483e;color:#f5f4e9}
.dark .calendar-day{background:#18372d;color:#f5f4e9}
.dark .calendar-padding{background:transparent}
.dark .calendar-day.is-today{box-shadow:inset 0 0 0 1px var(--calendar-today-dark)}
.dark .calendar-day.is-today .calendar-day-head time{border-color:var(--calendar-today-dark)}
.dark .calendar-entry{background:#f4f5ee;color:#142c29}
@media(max-width:700px){
  .calendar-controls{align-items:stretch}
  .calendar-month-nav{width:100%;margin:0}
  .calendar-month-nav h2{min-width:0;flex:1}
  .calendar-controls>button{flex:1}
  .calendar-controls label{width:100%}
}
