.calendar-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0}.calendar-controls label{display:grid;gap:5px;font-size:14px}.calendar-controls select{max-width:100%;padding:8px}.calendar-controls button{min-height:44px;padding:8px 12px}.calendar-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.calendar-day{min-width:0;border-top:2px solid var(--line);padding-top:10px}.calendar-day h3{font-size:18px;margin:5px 0 12px}.calendar-event{margin:8px 0;padding:10px 12px;border-radius:8px}.calendar-event summary{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 8px;min-height:44px}.calendar-name{font-size:15px}.calendar-time{grid-column:1/-1;font-size:13px;font-weight:400}.calendar-event p{font-size:14px;overflow-wrap:anywhere}.calendar-ongoing{font-size:14px}.calendar-controls button:disabled{opacity:.45;cursor:default}@media(max-width:650px){.calendar-days{grid-template-columns:1fr}.calendar-controls label{flex:1 1 140px;min-width:0}.calendar-controls select{width:100%}}

.calendar-group{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:16px 0 6px}

.calendar-now-next{display:grid;grid-template-columns:1fr 1fr;gap:16px}.calendar-now-next h2{font-size:20px;margin:8px 0}.calendar-live{border-bottom:1px solid var(--line);padding-bottom:16px}.calendar-live-event{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.calendar-live-event span{color:var(--muted);font-size:13px}@media(max-width:650px){.calendar-now-next{grid-template-columns:1fr}}

/* Keep choices and the event's start visible without tall status rows. */
.calendar-controls label[hidden]{display:none}
.calendar-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.calendar-filters button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:20px;background:#fffaf0;color:#392e23;cursor:pointer;font:inherit;font-size:14px}
.calendar-filters button[aria-pressed="true"]{background:#192c40;border-color:#192c40;color:#fff3dc}
.calendar-filters button:focus-visible{outline:3px solid #ad671e;outline-offset:2px}
.calendar-event summary{grid-template-columns:minmax(0,1fr)}
.calendar-name{grid-column:1;grid-row:1;font-weight:650}

.calendar-time{grid-row:2;color:#574b3d}
.calendar-day>h3{padding:8px 0;border-bottom:1px solid var(--line)}

.calendar-plan-title{margin-top:24px}
.calendar-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:end}
.calendar-controls label{min-width:0}.calendar-controls select{width:100%;min-height:44px}
.calendar-controls button{border:1px solid var(--line);border-radius:8px;background:#fffaf0;color:#392e23;font:inherit;font-size:14px;cursor:pointer}
.calendar-controls button:focus-visible{outline:3px solid #ad671e;outline-offset:2px}
.calendar-event summary{position:relative;padding-right:22px}
.calendar-event summary::after{content:'+';position:absolute;right:0;top:0;font-size:20px;color:#654c2e}
.calendar-event[open] summary::after{content:'−'}
.calendar-time{font-weight:550}
.calendar-day-today{border-top-color:#a7611d}
.calendar-today-label{display:inline-block;margin:0 0 8px;color:#75440e;font-size:12px;font-weight:650}
.calendar-today-label[hidden]{display:none}
@media(max-width:650px){.calendar-controls{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.calendar-controls #calendar-today{grid-column:2}.calendar-controls button{padding:8px}.calendar-controls label{font-size:13px}}

/* Keep the week controls and event summaries readable as a compact agenda. */
.calendar-controls button:disabled{opacity:1;color:#766d60;background:#eee6d6;border-color:#d4c8b0}
.calendar-event summary:hover .calendar-name{color:#8e351b}
.calendar-event summary:focus-visible{outline-offset:3px;border-radius:3px}
.calendar-event[open]{border-color:#b3a084}
.calendar-day h3{line-height:1.4}
.calendar-filters button:hover{border-color:#a26d31}
@media(max-width:650px){.calendar-controls{gap:8px}.calendar-controls button{padding-inline:10px}.calendar-controls select{min-width:0;width:100%}}
