.favorite-button{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;padding:5px;border:0;border-radius:50%;background:#ffffffeb;color:#586570;cursor:pointer}
.favorite-button svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.favorite-button[aria-pressed="true"]{color:#d32952}.favorite-button[aria-pressed="true"] svg{fill:currentColor}
.favorite-button:hover{color:#d32952;background:#fff}.favorite-button:focus-visible,.favorites-view:focus-visible{outline:2px solid #20b8ff;outline-offset:3px}
.culture-dark .favorite-button{background:#111c;color:#cbd5dc}.culture-dark .favorite-button[aria-pressed="true"],.culture-dark .favorite-button:hover{color:#ff6485}
.agenda-card{position:relative;isolation:isolate}.agenda-card>.favorite-button{position:absolute;right:8px;bottom:8px;z-index:4}
.agenda-card .agenda-time{padding-right:30px}
.activity-heading>.favorite-button{margin-left:auto}.cloud-meta>.favorite-button{margin-left:auto}
.favorites-view{border:1px solid #b5c0c7;border-radius:14px;background:transparent;color:inherit;padding:5px 9px;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.favorites-view[aria-pressed="true"]{background:#eaf4fa;border-color:#258ebd;color:#176e98}.culture-dark .favorites-view[aria-pressed="true"]{background:#183745;color:#79d5ff}
.agenda-options{flex-wrap:wrap;gap:10px}
.favorites-missing h3{font-size:13px;margin:20px 0 10px}.favorite-unavailable{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;padding:12px 0;border-bottom:1px solid #89949b55;font-size:13px}.favorite-unavailable a{font-size:12px}
#favorites-storage-notice{font-size:12px;line-height:1.5;padding:8px 14px;margin:0}
#favorite-session-dialog{width:520px;max-width:calc(100vw - 28px);max-height:85dvh;box-sizing:border-box;padding:22px;border:1px solid #b5c0c7;border-radius:18px;background:#fff;color:#26343d}
#favorite-session-dialog::backdrop{background:#0004}
#favorite-session-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#favorite-session-dialog h2{margin:0;font-size:18px}
.favorite-session-close{width:28px;height:28px;display:grid;place-items:center;flex:none;padding:0;border:0;border-radius:50%;background:#111;color:#fff;font:22px/1 Arial}
.favorite-session-title{font-size:14px;line-height:1.4;margin:12px 0 16px}
.favorite-session-list{max-height:45dvh;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;border-top:1px solid #89949b55;border-bottom:1px solid #89949b55}
.favorite-session-list label{display:flex;gap:10px;align-items:center;padding:12px 3px;border-bottom:1px solid #89949b33;font-size:13px;line-height:1.5;cursor:pointer}
.favorite-session-list input{flex:none;accent-color:#cb3658;width:17px;height:17px}
#favorite-session-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;font-size:12px}
.favorite-session-save{border:1px solid #48616d;border-radius:15px;padding:8px 13px;background:#48616d;color:#fff;font:600 12px/1.4 system-ui;cursor:pointer}
.favorite-remove{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:12px}
.favorite-unavailable small{grid-column:1/-1;line-height:1.5}
.culture-dark #favorite-session-dialog{background:#171c20;color:#edf2f5;border-color:#52616a}
.culture-dark .favorite-session-close{background:#3c4b55}

.favorites-view{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.favorites-view svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.favorites-view[aria-pressed="true"] svg{fill:currentColor}

.favorites-view[aria-pressed="true"] svg{color:#d32952}
.culture-dark .favorites-view[aria-pressed="true"] svg{color:#ff6485}
.map-area .map-top #map-favorites{box-sizing:border-box;display:grid;place-items:center;flex:none;align-self:center;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;margin:0 0 0 auto;border:1px solid #ddd;border-radius:50%;background:#fff;color:#586570;box-shadow:0 2px 5px #0002;line-height:1;pointer-events:auto}
.map-area .map-top #map-favorites svg{display:block;width:21px;height:21px;margin:0}
.map-area .map-top #map-favorites+#cloud-toggle{margin-left:0}
.culture-dark .map-area .map-top #map-favorites{background:#000;border-color:#444;color:#cbd5dc}
@media(max-width:720px){.map-area .map-top #map-favorites{width:34px;height:34px;min-width:34px;min-height:34px}}

.activity-calendar-add{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;border:1px solid #aaa6;border-radius:8px;background:#fff;color:#48545b;font:inherit;font-size:11px;cursor:pointer}
.activity-calendar-add svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.agenda-card-meta{flex-wrap:wrap;gap:5px}
.agenda-card-meta>.activity-calendar-add{margin-left:auto;flex:none;padding:3px 6px;font-size:10px;line-height:16px;border-radius:6px}
.agenda-card-meta>.activity-calendar-add svg{width:14px;height:14px}
.culture-dark .activity-calendar-add{background:#202020;color:#dedede;border-color:#666}
.activity-calendar-add:hover{border-color:#159bd5;color:#159bd5}
.detail-venue-route .venue-favorite-button{width:36px;height:36px;position:static}

.activity-calendar-add.is-added,.detail-actions .activity-calendar-add.is-added{opacity:1;background:#20b8ff;border-color:#20b8ff;color:#062c40}
.culture-dark .activity-calendar-add.is-added,.culture-dark .detail-actions .activity-calendar-add.is-added{opacity:1;background:#20b8ff;border-color:#20b8ff;color:#062c40}
.activity-calendar-add.is-added:hover{filter:brightness(1.12)}
#activity-calendar-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 40px);box-sizing:border-box;border:1px solid #d2dce2;border-radius:20px;padding:24px;background:#fff;color:#182c38;box-shadow:0 24px 80px #0005;overflow:auto}
#activity-calendar-dialog::backdrop{background:#0007;backdrop-filter:blur(3px)}
#activity-calendar-dialog header{display:flex;align-items:center;gap:12px;justify-content:space-between}
#activity-calendar-dialog h2{font-weight:600;line-height:1.5;font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:#597180;margin:0}
#activity-calendar-dialog header button{display:grid;place-items:center;flex:none;padding:0;border:1px solid #dbe3e8;border-radius:50%;width:30px;height:30px;cursor:pointer;background:transparent;color:inherit}
#activity-calendar-dialog header button:hover{background:#e8f6fd;border-color:#20b8ff}
#activity-calendar-dialog header button svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
#activity-calendar-dialog .activity-calendar-title{color:inherit;opacity:1;font-size:20px;font-weight:650;line-height:1.35;letter-spacing:-.3px;margin:12px 0 22px}
.activity-calendar-sessions{max-height:55vh;overflow:auto;display:grid;gap:12px;padding:1px}
.activity-calendar-day{background:#f5f8fa;border:1px solid #dce5eb;border-radius:13px;padding:15px}
.activity-calendar-session{padding-top:9px}
.activity-calendar-session+.activity-calendar-session{border-top:1px solid #dce5eb;margin-top:14px;padding-top:14px}
#activity-calendar-dialog .activity-calendar-day h3{margin:0;font-size:13px;font-weight:600;line-height:1.5;color:inherit;text-transform:none}
#activity-calendar-dialog .activity-calendar-time{margin:4px 0 14px;font-size:17px;font-weight:650;line-height:1.4;color:inherit}
.activity-calendar-providers{display:flex;gap:10px}
.activity-calendar-providers button{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;padding:11px 8px;border:1px solid #bfcfd9;border-radius:9px;background:#fff;color:#385464;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}
.activity-calendar-providers button:hover{border-color:#20b8ff;background:#edf9ff}
.activity-calendar-providers button[aria-pressed=true]{background:#20b8ff;border-color:#20b8ff;color:#062c40}
.activity-calendar-providers button:disabled{cursor:wait;opacity:.65}
.activity-calendar-providers button:focus-visible{outline:2px solid #20b8ff;outline-offset:3px}
#activity-calendar-dialog .activity-calendar-operation{margin:14px 0 0;font-size:12px;line-height:1.5;color:inherit}
.culture-dark #activity-calendar-dialog{background:#161b20;color:#f0f5f8;border-color:#384650}
.culture-dark #activity-calendar-dialog h2{color:#9cb0bd}
.culture-dark #activity-calendar-dialog header button{border-color:#43535f}
.culture-dark #activity-calendar-dialog header button:hover{background:#143c50}
.culture-dark .activity-calendar-day{background:#20282f;border-color:#34424c}
.culture-dark .activity-calendar-session+.activity-calendar-session{border-color:#34424c}
.culture-dark .activity-calendar-providers button{background:#182027;color:#dce6ed;border-color:#586d7c}
.culture-dark .activity-calendar-providers button:hover{border-color:#20b8ff;background:#143c50}
.culture-dark .activity-calendar-providers button[aria-pressed=true]{background:#20b8ff;color:#062c40;border-color:#20b8ff}
@media(max-width:480px){#activity-calendar-dialog{padding:18px}.activity-calendar-day{padding:12px}.activity-calendar-providers{gap:8px}}
#activity-calendar-tooltip{position:fixed;z-index:10000;pointer-events:none;max-width:calc(100vw - 24px);box-sizing:border-box;padding:7px 10px;border:1px solid #c3cbd0;border-radius:7px;background:#fff;color:#34414a;box-shadow:0 3px 12px #0002;font:12px/1.4 Arial,sans-serif}
#activity-calendar-tooltip[hidden]{display:none}
.culture-dark #activity-calendar-tooltip{background:#282c30;color:#e5ebef;border-color:#50575c}


.activity-calendar-session{display:grid;grid-template-columns:minmax(70px,.65fr) minmax(0,2fr);align-items:center;gap:12px}
#activity-calendar-dialog .activity-calendar-time{margin:0;font-size:14px;line-height:1.4}
.activity-calendar-session .activity-calendar-providers{gap:8px}
.activity-calendar-session .activity-calendar-providers button{font-size:12px;padding:10px 6px}
@media(max-width:480px){.activity-calendar-session{grid-template-columns:minmax(52px,.55fr) minmax(0,2fr);gap:8px}.activity-calendar-session .activity-calendar-providers{gap:5px}.activity-calendar-session .activity-calendar-providers button{font-size:11px;padding:9px 3px}}

#activity-calendar-dialog{width:min(var(--calendar-dialog-width,480px),calc(100vw - 28px))}
.activity-calendar-session{grid-template-columns:var(--calendar-time-width,70px) minmax(0,1fr)}
#activity-calendar-dialog .activity-calendar-time{white-space:nowrap}
@media(max-width:480px){#activity-calendar-dialog{padding:14px}.activity-calendar-day{padding:10px}.activity-calendar-session{grid-template-columns:var(--calendar-time-width,70px) minmax(0,1fr)}}
@media(max-width:360px){.activity-calendar-session{grid-template-columns:minmax(0,1fr)}.activity-calendar-session .activity-calendar-providers{width:100%}}

.activity-calendar-providers .calendar-provider-logo{display:block;box-sizing:border-box;width:28px;height:28px;padding:3px;border-radius:6px;background:transparent;object-fit:contain;flex:none;pointer-events:none}
.activity-calendar-providers button[aria-pressed="true"] .calendar-provider-logo{background:#f7f9fc}
.activity-calendar-session .activity-calendar-providers button{min-height:44px;padding:8px 12px}

.activity-calendar-session .activity-calendar-providers button{gap:8px;justify-content:center}
.calendar-provider-label{display:flex;flex-direction:column;align-items:flex-start;font-size:14px;line-height:18px;text-align:left;white-space:nowrap}
@media(max-width:480px){.activity-calendar-session .activity-calendar-providers button{gap:5px;padding:8px 6px}.activity-calendar-providers .calendar-provider-logo{width:24px;height:24px}.calendar-provider-label{font-size:13px}}
