.sr-calendar-list { font-family:inherit; font-size:14px; line-height:1.45; color:inherit; width:100%; }
.sr-calendar-list *, .sr-calendar-sheet * { box-sizing:border-box; }
.sr-calendar-list .sr-agenda-date-group { display:grid; grid-template-columns:84px minmax(0,1fr); gap:14px; padding:12px 0; border-bottom:1px solid #dedede; }
.sr-calendar-list .sr-agenda-date-group:first-child { padding-top:0; }
.sr-calendar-list .sr-agenda-date { display:flex; align-items:center; align-self:start; gap:10px; min-height:64px; color:inherit; }
.sr-calendar-list .sr-agenda-day-number { font-size:24px; line-height:1.2; font-weight:400; }
.sr-calendar-list .sr-agenda-month-weekday { font-size:10px; line-height:1.5; text-transform:uppercase; opacity:.72; }
.sr-calendar-list ul.sr-agenda-entries { display:grid; gap:8px; list-style:none; padding:0 !important; margin:0 !important; }
.sr-calendar-list ul.sr-agenda-entries > li { list-style:none; padding:0 !important; margin:0 !important; }
.sr-calendar-list .sr-agenda-entry { appearance:none; display:flex; align-items:stretch; gap:12px; width:100%; min-height:64px; padding:10px 12px; margin:0; border:1px solid #e8e8e8; border-radius:12px; background:#fff; color:inherit; font:inherit; line-height:1.45; letter-spacing:normal; text-transform:none; text-decoration:none; text-align:left; white-space:normal; cursor:pointer; box-shadow:0 2px 5px #00000008; transition:border-color .15s,box-shadow .15s; }
.sr-calendar-list .sr-agenda-entry:hover { border-color:#aaa; box-shadow:0 3px 10px #00000012; }
.sr-calendar-list .sr-agenda-entry:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.sr-calendar-list .sr-agenda-entry-time { flex:0 0 58px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding-right:12px; border-right:1px solid #ddd; color:var(--sr-event-color,#b85c00); }
.sr-calendar-list .sr-is-schedule .sr-agenda-entry-time { color:var(--sr-schedule-color,#2e7d32); }
.sr-calendar-list .sr-agenda-entry-time > span { font-size:13px; font-weight:600; text-align:center; }
.sr-calendar-list .sr-agenda-entry-time > .sr-agenda-icon { width:24px; height:24px; flex:none; }
.sr-calendar-list .sr-agenda-entry-copy { display:flex; flex:1; min-width:0; flex-direction:column; justify-content:center; gap:4px; }
.sr-calendar-list .sr-agenda-entry-title { font-size:15px; font-weight:600; overflow-wrap:anywhere; }
.sr-calendar-list .sr-agenda-entry-location { font-size:14px; overflow-wrap:anywhere; }
.sr-agenda-icon { display:inline-block; vertical-align:middle; flex:none; }
.sr-calendar-sheet { display:none; position:fixed; inset:auto 0 0; margin:0 auto; width:calc(100% - 32px); max-width:960px; height:82vh; height:82dvh; max-height:92vh; max-height:92dvh; padding:66px 24px 30px; border:1px solid #ddd; border-bottom:0; border-radius:22px 22px 0 0; background:#fff; color:var(--sr-sheet-text,CanvasText); font-family:var(--sr-sheet-font,inherit); font-size:1rem; line-height:1.6; overflow:auto; overscroll-behavior:contain; box-shadow:0 -12px 50px #0003; z-index:2147483000; }
.sr-calendar-sheet[open] { display:block; animation:sr-sheet-rise .24s ease-out; }
.sr-calendar-sheet::backdrop { background:#0008; }
.sr-calendar-sheet .sr-sheet-handle { position:absolute; top:14px; left:50%; transform:translateX(-50%); width:36px; height:4px; border-radius:4px; background:#d5d0cb; }
.sr-calendar-sheet button.sr-sheet-close { appearance:none; position:absolute; top:28px; right:18px; display:grid; place-items:center; width:40px; height:40px; margin:0; padding:0; border:0; border-radius:50%; box-shadow:none; background:transparent; color:inherit; font:inherit; font-size:32px; line-height:1; cursor:pointer; }
.sr-calendar-sheet button.sr-sheet-close:hover { background:#00000008; }
.sr-calendar-sheet button.sr-sheet-close:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.sr-calendar-sheet .sr-sheet-header { display:flex; align-items:flex-start; gap:16px; padding-bottom:18px; border-bottom:1px solid #e7e7e7; }
.sr-calendar-sheet img.sr-sheet-image { display:block; flex:none; width:64px; height:64px; max-width:64px; margin:0; border-radius:7px; object-fit:cover; }
.sr-calendar-sheet .sr-sheet-heading { min-width:0; }
.sr-calendar-sheet .sr-sheet-heading h2 { margin:0 0 6px; padding:0; font-family:inherit; font-size:1.25em; line-height:1.35; font-weight:600; color:inherit; overflow-wrap:anywhere; }
.sr-calendar-sheet .sr-sheet-published { margin:3px 0 0; font-size:.8em; }
.sr-calendar-sheet .sr-sheet-description { margin:18px 0 24px; overflow-wrap:anywhere; }
.sr-calendar-sheet .sr-sheet-description p { margin:0 0 .65em; padding:0; color:inherit; font:inherit; }
.sr-calendar-sheet .sr-sheet-description a { color:inherit; text-decoration:underline; }
.sr-calendar-sheet .sr-sheet-facts { display:grid; gap:16px; margin-top:22px; font-size:.9em; }
.sr-calendar-sheet .sr-sheet-fact { display:flex; align-items:flex-start; gap:15px; }
.sr-calendar-sheet .sr-sheet-fact > .sr-agenda-icon { width:26px; height:26px; margin-top:2px; }
.sr-calendar-sheet .sr-sheet-fact > div > span { display:block; }
@keyframes sr-sheet-rise { from { transform:translateY(100%); } to { transform:translateY(0); } }
@media (max-width:600px) {
    .sr-calendar-list .sr-agenda-date-group { grid-template-columns:52px minmax(0,1fr); gap:8px; padding:10px 0; }
    .sr-calendar-list .sr-agenda-date { flex-direction:column; justify-content:center; gap:3px; min-height:64px; }
    .sr-calendar-list .sr-agenda-month-weekday { text-align:center; font-size:9px; }
    .sr-calendar-list .sr-agenda-entry { padding:10px; gap:10px; border-radius:10px; }
    .sr-calendar-list .sr-agenda-entry-time { flex-basis:48px; padding-right:10px; }
    .sr-calendar-list .sr-agenda-entry-time > span { font-size:12px; }
    .sr-calendar-list .sr-agenda-entry-time > .sr-agenda-icon { width:24px; height:24px; }
    .sr-calendar-sheet { width:100%; padding:64px 18px 24px; height:88vh; height:88dvh; max-height:94vh; max-height:94dvh; }
    .sr-calendar-sheet .sr-sheet-header { gap:12px; }
}
@media (prefers-reduced-motion:reduce) { .sr-calendar-sheet[open] { animation:none; } .sr-calendar-list .sr-agenda-entry { transition:none; } }

.sr-calendar-list .sr-agenda-entry-warning { font-size:.85em; font-weight:600; }

.sr-calendar-list { padding-top:10px; }
.sr-calendar-list[data-sr-agenda-standalone] { padding-top:0; margin-top:0; }

.sr-calendar-list .sr-agenda-month::after { content:", "; }
@media (max-width:600px) {
    .sr-calendar-list .sr-agenda-month-weekday { display:contents; }
    .sr-calendar-list .sr-agenda-weekday { order:0; font-size:9px; line-height:1.3; text-transform:uppercase; opacity:.72; }
    .sr-calendar-list .sr-agenda-day-number { order:1; }
    .sr-calendar-list .sr-agenda-month { order:2; font-size:9px; line-height:1.3; text-transform:uppercase; opacity:.72; }
    .sr-calendar-list .sr-agenda-month::after { content:none; }
}

.sr-calendar-list .sr-agenda-entry:focus:not(:focus-visible),
.sr-calendar-list .sr-agenda-entry:active { outline:none !important;border-color:#e8e8e8 !important;box-shadow:0 2px 5px #00000008 !important; }

/* Optional single card per day, compact rows with inline icon and time. */
.sr-calendar-list.sr-calendar-compact .sr-agenda-date-group { padding:8px 0;border-bottom:0;gap:12px; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-date { min-height:40px; }
.sr-calendar-list.sr-calendar-compact ul.sr-agenda-entries { display:block;border:1px solid #e3e3e3;border-radius:10px;overflow:hidden;background:#fff; }
.sr-calendar-list.sr-calendar-compact ul.sr-agenda-entries > li + li { border-top:1px solid #ededed; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry { min-height:40px;padding:8px 12px;gap:10px;border:0;border-radius:0;box-shadow:none;align-items:center; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry:hover { background:#f5f5f5;box-shadow:none; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry:focus-visible { outline-offset:-3px; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry-time { flex:0 0 96px;flex-direction:row;justify-content:flex-start;gap:8px;border:0;padding-right:0; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry-time > .sr-agenda-icon { width:20px;height:20px; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry-time > span { font-size:13px;white-space:nowrap; }
.sr-calendar-list.sr-calendar-compact .sr-agenda-entry-title { font-size:14px;line-height:1.4;font-weight:500; }
@media(max-width:600px) {
 .sr-calendar-list.sr-calendar-compact .sr-agenda-date-group { grid-template-columns:42px minmax(0,1fr);gap:8px; }
 .sr-calendar-list.sr-calendar-compact .sr-agenda-entry { padding:8px;gap:8px; }
 .sr-calendar-list.sr-calendar-compact .sr-agenda-entry-time { flex-basis:80px;gap:6px; }
 .sr-calendar-list.sr-calendar-compact .sr-agenda-entry-time > .sr-agenda-icon { width:18px;height:18px; }
 .sr-calendar-list.sr-calendar-compact .sr-agenda-entry-time > span { font-size:12px; }
}

/* Screen uses the exact same two structures; em units preserve automatic fitting. */
.sr-calendar-list.sr-calendar-screen { font-size:var(--sr-agenda-fit-text-size,var(--sr-agenda-text-size,28px));line-height:1.4;padding-top:0; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-date-group { grid-template-columns:6em minmax(0,1fr);gap:1em;padding:.85em 0; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-date { gap:.7em;min-height:4.5em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-day-number { font-size:1.7em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-month-weekday { font-size:.72em; }
.sr-calendar-list.sr-calendar-screen ul.sr-agenda-entries { gap:.57em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry { min-height:4.5em;padding:.7em .85em;gap:.85em;border-radius:.85em;cursor:default;box-shadow:none; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry-time { flex:0 0 4.15em;gap:.28em;padding-right:.85em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry-time > span { font:inherit;font-weight:400; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry-time > .sr-agenda-icon { width:1.7em;height:1.7em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry-copy { gap:.28em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry-title { font:inherit;font-weight:400; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-entry:hover { background:#fff;border-color:#e8e8e8;box-shadow:none; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-date-group { gap:.85em;padding:.57em 0; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-date { min-height:2.85em; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact ul.sr-agenda-entries { gap:0;border-radius:.7em; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-entry { min-height:2.85em;padding:.57em .85em;gap:.7em;border:0;border-radius:0; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-entry-time { flex:0 0 6.85em;gap:.57em;padding-right:0; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-entry-time > .sr-agenda-icon { width:1.43em;height:1.43em; }
.sr-calendar-list.sr-calendar-screen .sr-screen-location { font:inherit; }
@media(max-width:600px) {
 .sr-calendar-list.sr-calendar-screen .sr-agenda-date-group { grid-template-columns:3.7em minmax(0,1fr);gap:.57em; }
 .sr-calendar-list.sr-calendar-screen .sr-agenda-weekday,.sr-calendar-list.sr-calendar-screen .sr-agenda-month { font-size:.65em; }
 .sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-date-group { grid-template-columns:3em minmax(0,1fr); }
}

/* Narrow date column on the display: weekday, day number, month. */
.sr-calendar-list.sr-calendar-screen .sr-agenda-date-group,
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-date-group { grid-template-columns:3.2em minmax(0,1fr);gap:.65em; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-date { flex-direction:column;align-items:center;justify-content:flex-start;gap:.12em;min-height:0;text-align:center; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-month-weekday { display:contents; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-weekday { order:0;font-size:.72em;line-height:1.3;text-transform:capitalize;opacity:.85; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-day-number { order:1; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-month { order:2;font-size:.72em;line-height:1.3;text-transform:uppercase;opacity:.72; }
.sr-calendar-list.sr-calendar-screen .sr-agenda-month::after { content:none; }

/* One fixed text size throughout the screen agenda, including dates and hours. */
.sr-calendar-list.sr-calendar-screen .sr-agenda-date-group,
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact .sr-agenda-date-group { grid-template-columns:4.3em minmax(0,1fr); }
.sr-calendar-list.sr-calendar-screen :is(.sr-agenda-weekday,.sr-agenda-day-number,.sr-agenda-month,.sr-agenda-month-weekday,.sr-agenda-entry-warning) { font-size:1em; }

/* Date labels remain proportional to the text size configured for the display. */
.sr-calendar-list.sr-calendar-screen :is(.sr-agenda-weekday,.sr-agenda-month) { font-size:.75em; }

/* Three compact date lines sized from the height of one single-line entry. */
.sr-calendar-list { --sr-date-row-height:64px; }
.sr-calendar-list.sr-calendar-compact { --sr-date-row-height:40px; }
.sr-calendar-list.sr-calendar-screen { --sr-date-row-height:4.5em; }
.sr-calendar-list.sr-calendar-screen.sr-calendar-compact { --sr-date-row-height:2.85em; }
.sr-calendar-list .sr-agenda-date-group .sr-agenda-date {
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    height:var(--sr-date-row-height);max-height:var(--sr-date-row-height);min-height:0;gap:0;text-align:center;
}
.sr-calendar-list .sr-agenda-date-group .sr-agenda-month-weekday { display:contents; }
.sr-calendar-list .sr-agenda-date-group .sr-agenda-date :is(.sr-agenda-weekday,.sr-agenda-month) {
    font-size:min(.6em,calc(var(--sr-date-row-height) * .16));line-height:1.1;white-space:nowrap;
}
.sr-calendar-list .sr-agenda-date-group .sr-agenda-weekday { order:0;text-transform:capitalize; }
.sr-calendar-list .sr-agenda-date-group .sr-agenda-day-number {
    order:1;font-size:min(1.55em,calc(var(--sr-date-row-height) * .48));line-height:1.1;
}
.sr-calendar-list.sr-calendar-screen .sr-agenda-date-group .sr-agenda-day-number { font-size:min(1.2em,calc(var(--sr-date-row-height) * .48)); }
.sr-calendar-list .sr-agenda-date-group .sr-agenda-month { order:2;text-transform:uppercase; }
.sr-calendar-list .sr-agenda-date-group .sr-agenda-month::after { content:none; }

/* Keep shortcode dates close to their entries on desktop and mobile. */
.sr-calendar-list:not(.sr-calendar-screen) .sr-agenda-date-group { grid-template-columns:42px minmax(0,1fr);gap:8px; }
