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

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

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

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

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

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

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

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

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

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

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

/* Shortcode date labels use the same full colour as the day number. */
.psr-calendar-list:not(.psr-calendar-screen) .psr-agenda-date-group .psr-agenda-date :is(.psr-agenda-month-weekday,.psr-agenda-weekday,.psr-agenda-month,.psr-agenda-day-number) {
    color:inherit;opacity:1;
}

/* Independent chronological day columns: first half left, second half right. */
.psr-calendar-list.psr-calendar-compact.psr-calendar-two-columns {
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start;
}
.psr-calendar-list.psr-calendar-two-columns .psr-agenda-days-column { min-width:0; }
.psr-calendar-list.psr-calendar-two-columns .psr-agenda-days-column > .psr-agenda-date-group:first-child { padding-top:0; }
@container psr-agenda-shortcode (width < 750px) {
 .psr-calendar-list.psr-calendar-compact.psr-calendar-two-columns { grid-template-columns:minmax(0,1fr);gap:8px; }
}

/* Measure the shortcode’s available width, independently of the viewport. */
.psr-agenda-shortcode-container { container-type:inline-size;container-name:psr-agenda-shortcode;width:100%;min-width:0; }

/* More legible dates on the welcome screen, including compact agendas. */
.psr-calendar-list.psr-calendar-screen .psr-agenda-date-group .psr-agenda-date {
    height:3.4em;max-height:3.4em;
}
.psr-calendar-list.psr-calendar-screen .psr-agenda-date-group .psr-agenda-date :is(.psr-agenda-weekday,.psr-agenda-month) {
    font-size:.85em;line-height:1.1;color:inherit;opacity:1;
}
.psr-calendar-list.psr-calendar-screen .psr-agenda-date-group .psr-agenda-day-number {
    font-size:1.35em;line-height:1.1;
}

/* Leave unused height below the tiles when the date column is taller. */
.psr-calendar-list.psr-calendar-screen ul.psr-agenda-entries {
    align-self:start;align-content:start;
}

/* Center the three date lines within the narrow screen date column. */
.psr-calendar-list.psr-calendar-screen .psr-agenda-date-group,
.psr-calendar-list.psr-calendar-screen.psr-calendar-compact .psr-agenda-date-group {
    grid-template-columns:2.3em minmax(0,1fr);column-gap:.15em;
}
.psr-calendar-list.psr-calendar-screen .psr-agenda-date-group .psr-agenda-date {
    align-items:center;text-align:center;width:100%;margin-left:0;padding-left:0;
}

/* Google agenda: independent hour colours for shortcode and welcome screen. */
.psr-google-agenda .psr-calendar-list .psr-agenda-entry-time {
    color:var(--psr-google-time-color,#333333);
}

/* Shared details presentation for Google and oClocher agendas. */
.psr-calendar-sheet .psr-sheet-fact-location { align-items:center; }
.psr-calendar-sheet .psr-sheet-fact-location > .psr-agenda-icon { margin-top:0; }
.psr-calendar-sheet .psr-sheet-facts :is(.psr-sheet-fact,span,time) { color:inherit; }
