dialog.host-agenda {
    --ha-paper:#fff; --ha-ink:#173d2e; --ha-body:#344a46; --ha-muted:#63756d; --ha-line:#d8e2dc; --ha-soft:#eef4f0; --ha-gold:#937023;
    padding:0; border:0; border-radius:16px; width:min(1100px,calc(100vw - 48px)); max-width:none;
    height:min(940px,calc(100dvh - 48px)); max-height:none; margin:auto;
    background:var(--ha-paper); color:var(--ha-body); box-shadow:0 28px 100px #071a2250;
    font:400 15px/1.5 'Inter',-apple-system,BlinkMacSystemFont,sans-serif; overflow:hidden;
}
dialog.host-agenda[open] { display:flex; flex-direction:column; }
.host-agenda::backdrop { background:rgb(4 22 15 / .62); backdrop-filter:blur(5px); }
html.has-host-agenda { overflow:hidden; }
.host-agenda *, .host-agenda *::before, .host-agenda *::after { box-sizing:border-box; }
.host-agenda :is(h2,h3,h4,p) { margin:0; color:inherit; }
.host-agenda button { font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.host-agenda :is(button,summary,a,input):focus-visible, button.host-profile-link:focus-visible, button.host-profile-person:focus-visible { outline:3px solid #ad914b; outline-offset:4px; }
.host-agenda [hidden] { display:none!important; }
.host-agenda-icon { width:20px; height:20px; flex:none; display:block; }
.host-agenda-top { display:flex; flex:none; justify-content:space-between; align-items:center; padding:12px 30px; border-bottom:1px solid var(--ha-line); background:var(--ha-paper); z-index:1; }
.host-agenda-brand { color:var(--ha-ink); font:600 27px/1.2 'Cormorant Garamond',Georgia,serif; }
.host-agenda-controls { display:flex; gap:12px; }
.host-agenda .host-agenda-icon-button { width:44px; height:44px; display:inline-grid; place-items:center; padding:0; border:1px solid var(--ha-line); border-radius:50%; background:transparent; color:var(--ha-ink); flex:none; }
.host-agenda .host-agenda-icon-button:hover { background:var(--ha-soft); }
.host-agenda .host-agenda-icon-button:disabled { opacity:.55; cursor:default; }
.host-agenda-close .host-agenda-icon { width:24px; height:24px; }
.host-agenda-body { min-height:0; flex:1; padding:26px 32px 30px; overflow:auto; overscroll-behavior:contain; scroll-padding-block:16px; scrollbar-width:thin; scrollbar-color:#adbcad transparent; }
.host-agenda-identity { display:flex; align-items:center; gap:24px; margin-bottom:28px; }
.host-agenda-portrait { width:100px; height:100px; flex:none; display:grid; place-items:center; position:relative; overflow:hidden; border-radius:50%; background:#dbe8dd; color:#214d3b; font:600 36px/1 'Cormorant Garamond',Georgia,serif; }
.host-agenda-portrait img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.host-agenda-portrait[data-photo-crop] img { width:175%; max-width:none; object-position:center 10%; }
.host-agenda-portrait[data-photo-crop=right] img { left:-75%; }
.host-agenda-identity-copy { min-width:0; }
.host-agenda .host-agenda-identity h2 { color:var(--ha-ink); font:600 clamp(30px,4vw,42px)/1.05 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.host-agenda .host-agenda-role { margin-top:4px; font-size:14px; }
.host-agenda-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; margin-top:10px; }
.host-agenda .host-agenda-favourite { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid var(--ha-gold); border-radius:24px; color:var(--ha-gold); background:transparent; font-size:13px; min-height:44px; text-align:left; }
.host-agenda-favourite[aria-pressed=true] { background:var(--ha-soft); }
.host-agenda-favourite[aria-pressed=true] .host-agenda-icon { fill:currentColor; }
.host-agenda-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:start; }
.host-agenda-overview { position:sticky; top:0; min-width:0; }
.host-agenda .host-agenda-title, .host-agenda .host-agenda-sessions > h3 { font:600 32px/1.12 'Cormorant Garamond',Georgia,serif; color:var(--ha-ink); margin-bottom:16px; }
.host-agenda .host-agenda-next { display:grid; min-width:0; background:#183e2f; color:#fff; border-radius:10px; overflow:hidden; }
.host-agenda-next.has-photo { grid-template-columns:minmax(0,3fr) minmax(0,2fr); }
.host-agenda-next-copy { min-width:0; padding:22px; }
.host-agenda .host-agenda-eyebrow { font-size:12px; font-weight:500; color:#bfdbc9; margin-bottom:6px; }
.host-agenda .host-agenda-countdown { display:flex; align-items:center; gap:8px; color:#eed38c; font-size:14px; line-height:1.4; margin-bottom:12px; }
.host-agenda-countdown .host-agenda-icon { width:17px; height:17px; }
.host-agenda .host-agenda-next-date { font-size:14px; color:#eef5ef; }
.host-agenda-next-time { display:block; font:600 50px/1.05 'Cormorant Garamond',Georgia,serif; margin-top:14px; font-variant-numeric:lining-nums tabular-nums; }
.host-agenda .host-agenda-next h4 { font:600 31px/1.12 'Cormorant Garamond',Georgia,serif; margin:6px 0 10px; color:#fff; overflow-wrap:anywhere; }
.host-agenda .host-agenda-next-room { font-size:15px; color:#e8f4ed; }
.host-agenda .host-agenda-next-action { display:inline-flex; align-items:center; gap:10px; min-height:44px; border:0; background:transparent; color:#eed38c; padding:14px 0 0; margin-top:8px; text-align:left; font-size:14px; font-weight:600; }
.host-agenda-next-action .host-agenda-icon { transition:transform .2s ease; }
.host-agenda-next-action:hover .host-agenda-icon { transform:translateX(4px); }
.host-agenda-next-media { position:relative; min-height:100%; overflow:hidden; }
.host-agenda-next-media img { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; object-position:center; }
.host-agenda-sessions { min-width:0; }
.host-agenda .host-agenda-sessions > h3 { margin-bottom:5px; }
.host-agenda .host-agenda-summary { font-size:13px; color:var(--ha-muted); margin-bottom:14px; }
.host-agenda-ranges { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 22px; }
.host-agenda-views { display:flex; gap:10px; margin:14px 0 20px; }
.host-agenda .host-agenda-views .host-agenda-range { min-width:108px; }
.host-agenda-calendar { margin-bottom:24px; }
.host-agenda-calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.host-agenda .host-agenda-calendar-toolbar h4 { font:600 28px/1.15 'Cormorant Garamond',Georgia,serif; color:var(--ha-ink); }
.host-agenda-calendar-nav { display:flex; gap:8px; }
.host-agenda .host-agenda-calendar-grid { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; margin:0; background:transparent; }
.host-agenda .host-agenda-calendar-grid :is(th,td) { padding:3px 0; text-align:center; border:0; background:transparent; }
.host-agenda .host-agenda-calendar-grid th { font:500 13px/1.4 'Inter',sans-serif; color:var(--ha-muted); padding:6px 0 12px; border-bottom:1px solid var(--ha-line); }
.host-agenda .host-agenda-calendar-grid td { height:54px; vertical-align:middle; }
.host-agenda .host-agenda-calendar-day { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; vertical-align:middle; width:min(48px,100%); height:auto; min-height:0; aspect-ratio:1; padding:3px 0; border:1px solid transparent; border-radius:50%; background:transparent; color:var(--ha-ink); font:500 14px/1.15 'Inter',sans-serif; font-variant-numeric:tabular-nums; transition:background .18s,color .18s,transform .18s; }
.host-agenda-calendar-number { display:block; margin-top:5px; }
.host-agenda-calendar-markers { display:flex; align-items:center; justify-content:center; gap:4px; height:7px; }
.host-agenda-calendar-dot { display:inline-block; flex:none; width:5px; height:5px; border-radius:50%; background:#44785d; }
.host-agenda-calendar-dot.is-sound { background:var(--ha-gold); border-radius:1px; transform:rotate(45deg); }
.host-agenda .host-agenda-calendar-day.has-sessions { background:var(--ha-soft); }
.host-agenda .host-agenda-calendar-day[aria-current=date] { border-color:var(--ha-ink); }
.host-agenda .host-agenda-calendar-day:hover:not(:disabled) { background:var(--ha-soft); transform:translateY(-2px); }
.host-agenda .host-agenda-calendar-day[aria-pressed=true] { background:#214d3b; color:#fff; border-color:#214d3b; }
.host-agenda-calendar-day[aria-pressed=true] .host-agenda-calendar-dot { background:#c8e8d0; }
.host-agenda-calendar-day[aria-pressed=true] .host-agenda-calendar-dot.is-sound { background:#eed38c; }
.host-agenda .host-agenda-calendar-day:focus-visible { outline-offset:2px; outline-width:2px; }
.host-agenda .host-agenda-calendar-day:disabled { color:var(--ha-muted); opacity:.5; cursor:default; }
.host-agenda-calendar-outside { color:var(--ha-muted); font-size:14px; opacity:.45; }
.host-agenda-calendar-legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:16px; color:var(--ha-muted); font-size:12px; }
.host-agenda-calendar-legend > span { display:inline-flex; align-items:center; gap:8px; }
.host-agenda-calendar-legend .host-agenda-calendar-dot { width:9px; height:9px; }
.host-agenda-calendar-legend .host-agenda-calendar-dot.is-today { width:15px; height:15px; border:1px solid var(--ha-ink); background:transparent; }
.host-agenda .host-agenda-results > .host-agenda-date { font-size:27px; margin-bottom:5px; }
.host-agenda .host-agenda-range { border:1px solid var(--ha-line); border-radius:24px; min-height:44px; padding:9px 16px; background:transparent; color:var(--ha-ink); font-size:13px; transition:background .18s,color .18s; }
.host-agenda .host-agenda-range[aria-pressed=true] { color:white; background:#214d3b; border-color:#214d3b; }
.host-agenda .host-agenda-date { font:600 24px/1.2 'Cormorant Garamond',Georgia,serif; color:var(--ha-ink); margin-bottom:12px; }
.host-agenda-day + .host-agenda-day { margin-top:24px; }
.host-agenda-day-entries { padding-left:22px; margin-left:7px; border-left:1px solid var(--ha-line); }
.host-agenda-entry { border-bottom:1px solid var(--ha-line); }
.host-agenda-row { position:relative; display:grid; grid-template-columns:60px minmax(0,1fr) 18px; gap:12px; padding:16px 0; align-items:start; cursor:pointer; list-style:none; }
.host-agenda-row::before { content:''; position:absolute; left:-28px; top:21px; width:11px; height:11px; border-radius:50%; background:var(--ha-gold); box-shadow:0 0 0 4px var(--ha-paper); }
.host-agenda-row::-webkit-details-marker { display:none; }
.host-agenda-row time { font:600 25px/1.1 'Cormorant Garamond',Georgia,serif; color:var(--ha-ink); font-variant-numeric:lining-nums tabular-nums; }
.host-agenda-row-copy { min-width:0; }
.host-agenda-row-copy > * { display:block; }
.host-agenda-row-copy b { color:var(--ha-ink); font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.host-agenda-row-copy > span { font-size:13px; margin-top:3px; }
.host-agenda-row-copy small { font-size:12px; color:var(--ha-muted); margin-top:4px; }
.host-agenda-chevron { width:18px; height:18px; margin-top:3px; color:var(--ha-ink); transition:transform .18s; }
.host-agenda-entry[open] .host-agenda-chevron { transform:rotate(90deg); }
.host-agenda-entry[open] .host-agenda-row::before { background:var(--ha-ink); }
.host-agenda-info { padding:0 0 20px; }
.host-agenda-info > p { margin-bottom:12px; }
.host-agenda .host-agenda-type { font-size:12px; color:var(--ha-muted); }
.host-agenda-facts { display:flex; flex-wrap:wrap; gap:16px 24px; margin:20px 0 14px; }
.host-agenda-facts dt { font-size:12px; color:var(--ha-muted); }
.host-agenda-facts dd { font-size:14px; margin:3px 0 0; font-weight:600; }
.host-agenda .host-agenda-empty { padding:20px 0; color:var(--ha-muted); }
.host-agenda-empty p { margin:8px 0 16px; font-size:14px; }
.host-agenda .host-agenda-coverage { font-size:12px; color:var(--ha-muted); margin-top:24px; }
.host-agenda .host-agenda-footnote, .host-agenda .host-agenda-local { color:var(--ha-muted); font-size:12px; line-height:1.6; margin-top:8px; }
.host-agenda .host-agenda-notice, .host-agenda-share-status { background:var(--ha-soft); color:var(--ha-ink); border-left:2px solid var(--ha-gold); padding:12px 14px; font-size:13px; margin-bottom:20px; }
.host-agenda-share-status input { width:100%; font:inherit; color:var(--ha-ink); background:var(--ha-paper); border:1px solid var(--ha-line); padding:12px; border-radius:4px; margin-top:8px; }
.host-agenda-booking { color:var(--ha-gold); font-weight:600; }
.host-agenda-programme { color:var(--ha-ink); display:inline-block; padding:10px 0; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
button.host-profile-link { border:0; background:transparent; color:inherit; font:inherit; padding:0; text-align:inherit; cursor:pointer; text-decoration:underline; text-decoration-color:#8caa9366; text-underline-offset:4px; }
button.host-profile-link:hover { text-decoration-color:currentColor; }
.host-profile-actions { display:flex; flex-wrap:wrap; gap:12px 20px; width:100%; }
button.host-profile-person { display:inline-flex; align-items:center; gap:10px; background:transparent; border:0; padding:6px 0; color:inherit; font:inherit; text-align:left; cursor:pointer; max-width:100%; }
.host-profile-person .host-agenda-portrait { width:46px; height:46px; font-size:22px; }
.host-profile-person > span:last-child { min-width:0; }
.host-profile-person b { display:block; font-size:15px; line-height:1.3; overflow-wrap:anywhere; }
.host-profile-person small { display:block; font:500 12px/1.4 'Inter',sans-serif; margin-top:3px; opacity:.85; }
.host-card[data-host-profile], .pf-card[data-host-profile] { text-align:left; font-family:inherit; cursor:pointer; width:100%; }
.host-card[data-host-profile]:focus-visible { outline:3px solid #ad914b; outline-offset:3px; }
.host-card[hidden], .pf-card[hidden] { display:none!important; }
[data-host-next] { display:block; margin-top:12px; font:500 12px/1.5 'Inter',sans-serif; color:inherit; }
[data-host-agenda-label] { display:block; margin-top:10px; font:700 12px/1.4 'Inter',sans-serif; color:inherit; }
.host-card.is-host-favourite [data-host-agenda-label]::before, .pf-card.is-host-favourite [data-host-agenda-label]::before { content:'♥ '; color:#9a7531; }
.team-filters:has([data-team-filter=favourites]), .pf-filters:has([data-filter=favourites]) { grid-template-columns:repeat(4,minmax(0,1fr)); }
html[data-wo-theme=dark] dialog.host-agenda { --ha-paper:#14231c; --ha-ink:#edf5ee; --ha-body:#e0e9e2; --ha-muted:#b2c6b8; --ha-line:#354b3f; --ha-soft:#21392d; --ha-gold:#d7bd78; color-scheme:dark; }
html[data-wo-theme=dark] .host-agenda .host-agenda-next { background:#254e3b; }
html[data-wo-theme=dark] .host-agenda-calendar-dot.is-host { background:#a6cdb6; }
@keyframes host-calendar-turn { from { opacity:.25; transform:translateX(var(--calendar-shift,8px)); } to { opacity:1; transform:translateX(0); } }
@keyframes host-calendar-select { 50% { box-shadow:0 0 0 4px var(--ha-soft); } }
@keyframes host-calendar-live { 50% { opacity:.55; transform:scale(.8); } }
.host-agenda-sessions[data-calendar-motion=previous] { --calendar-shift:-8px; }
.host-agenda-sessions.is-calendar-changing .host-agenda-results { animation:host-agenda-arrive .25s ease-out both; }
.host-agenda-sessions.is-calendar-changing:not([data-calendar-motion=day]) .host-agenda-calendar-grid { animation:host-calendar-turn .24s ease-out both; }
.host-agenda-sessions[data-calendar-motion=day] .host-agenda-calendar-day[aria-pressed=true] { animation:host-calendar-select .35s ease-out; }
.host-agenda-calendar-day.is-live .host-agenda-calendar-markers { animation:host-calendar-live 3s ease-in-out infinite; }
@keyframes host-agenda-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes host-photo-settle { from { transform:scale(1.045); } to { transform:scale(1); } }
@keyframes host-heart-pop { 40% { transform:scale(1.2); } 75% { transform:scale(.94); } }
@keyframes host-clock-breathe { 50% { opacity:.55; } }
.host-agenda.is-entering:not(.is-motion-paused) .host-agenda-identity { animation:host-agenda-arrive .36s ease-out both; }
.host-agenda.is-entering:not(.is-motion-paused) .host-agenda-entry { animation:host-agenda-arrive .32s ease-out both; animation-delay:var(--entry-delay,0ms); }
.host-agenda.is-entering:not(.is-motion-paused) .host-agenda-calendar { animation:host-agenda-arrive .36s ease-out both; }
.host-agenda.is-entering:not(.is-motion-paused) .host-agenda-next-media img { animation:host-photo-settle .9s ease-out both; }
.host-agenda:not(.is-motion-paused) .is-celebrating .host-agenda-icon { animation:host-heart-pop .45s ease-out; }
.host-agenda:not(.is-motion-paused) .is-imminent .host-agenda-countdown .host-agenda-icon { animation:host-clock-breathe 3s ease-in-out infinite; }
.host-agenda.is-motion-paused *, .host-agenda.is-motion-paused *::before { animation:none!important; transition:none!important; }
@media(max-width:900px) {
    dialog.host-agenda { width:min(680px,calc(100vw - 40px)); }
    .host-agenda-content { display:block; }
    .host-agenda-overview { position:static; margin-bottom:28px; }
}
@media(min-width:901px) and (max-height:760px) { .host-agenda-overview { position:static; } }
@media(max-width:600px) {
    dialog.host-agenda { width:100%; height:100dvh; max-height:100dvh; border-radius:0; }
    .host-agenda-top { padding:calc(10px + env(safe-area-inset-top)) 20px 10px; }
    .host-agenda-body { padding:24px 22px calc(24px + env(safe-area-inset-bottom)); }
    .host-agenda-identity { gap:16px; margin-bottom:24px; }
    .host-agenda-portrait { width:80px; height:80px; }
    .host-agenda .host-agenda-identity h2 { font-size:32px; }
    .host-agenda-actions { gap:8px; }
    .host-agenda .host-agenda-favourite { font-size:12px; padding:7px 10px; }
    .host-agenda-favourite .host-agenda-icon { width:17px; height:17px; }
    .host-agenda .host-agenda-title { font-size:28px; }
    .host-agenda .host-agenda-sessions > h3 { font-size:29px; }
    .host-agenda-next-copy { padding:18px 16px; }
    .host-agenda-next-time { font-size:43px; }
    .host-agenda .host-agenda-next h4 { font-size:27px; }
    .host-agenda .host-agenda-next-date, .host-agenda .host-agenda-countdown { font-size:13px; }
    .host-agenda-row { grid-template-columns:52px minmax(0,1fr) 16px; gap:10px; }
    .host-agenda-row time { font-size:24px; }
    .host-agenda .host-agenda-range { padding:9px 13px; }
    .host-agenda .host-agenda-calendar-toolbar h4 { font-size:26px; }
    .host-agenda-calendar-legend { gap:10px 14px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .host-agenda *, .host-agenda *::before { animation:none!important; transition:none!important; } }
