.sa-calendar{--sa-red:#db251d;--sa-red-dark:#b71c1c;--sa-border:#e7e7e7;--sa-muted:#6f737a;--sa-text:#20242a;--sa-soft:#f7f7f8;--sa-card:#fff;font-family:inherit;color:var(--sa-text);position:relative}
.sa-calendar__head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.sa-calendar__head h2{margin:0;font-size:1.35rem;line-height:1.2;font-weight:700;color:var(--sa-text)}
.sa-calendar__lead{margin:5px 0 0;color:var(--sa-muted);font-size:.9rem}
.sa-calendar__subscribe-cta{appearance:none;border:0;border-radius:10px;background:var(--sa-red);color:#fff;padding:10px 14px;font:inherit;font-size:.92rem;font-weight:700;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 8px 20px rgba(219,37,29,.16)}
.sa-calendar__subscribe-cta:hover,.sa-calendar__subscribe-cta:focus-visible{background:var(--sa-red-dark)}
.sa-calendar__subscribe-cta-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.18);font-size:18px;line-height:1}
.sa-calendar__filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}
.sa-calendar__filter{appearance:none;border:1px solid var(--sa-border);background:#fff;color:#2b2f34;border-radius:999px;padding:7px 11px;font:inherit;font-size:.86rem;cursor:pointer}
.sa-calendar__filter.is-active{background:var(--sa-red);border-color:var(--sa-red);color:#fff}
.sa-calendar__list{display:grid;gap:10px}
.sa-calendar__event{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:14px;border:1px solid var(--sa-border);border-left:4px solid var(--sa-red);border-radius:10px;background:var(--sa-card);padding:12px 14px}
.sa-calendar__date{text-align:center;border-right:1px solid var(--sa-border);padding-right:14px}
.sa-calendar__day{display:block;font-size:1.5rem;font-weight:800;line-height:1}
.sa-calendar__month{display:block;font-size:.76rem;font-weight:800;color:var(--sa-red);margin-top:4px;letter-spacing:.03em}
.sa-calendar__time{display:block;font-size:.88rem;font-weight:700;margin-top:5px}
.sa-calendar__body{min-width:0}
.sa-calendar__body h3{margin:4px 0 0;font-size:1rem;line-height:1.35;font-weight:700}
.sa-calendar__meta,.sa-calendar__details{display:flex;gap:6px 11px;flex-wrap:wrap;color:var(--sa-muted);font-size:.8rem}
.sa-calendar__status{font-weight:700}.sa-calendar__status--cancelled{color:#b32d2e}.sa-calendar__status--postponed{color:#996800}
.sa-calendar__empty{padding:18px;border:1px dashed var(--sa-border);border-radius:8px;color:var(--sa-muted);text-align:center;margin:0}

.sa-calendar-modal[hidden]{display:none!important}
.sa-calendar-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:18px}
.sa-calendar-modal__backdrop{position:absolute;inset:0;background:rgba(10,13,18,.72);backdrop-filter:blur(6px)}
.sa-calendar-modal__dialog{position:relative;width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 28px 90px rgba(0,0,0,.34);outline:none}
.sa-calendar-modal__topbar{height:82px;background:var(--sa-red);border-radius:24px 24px 0 0}
.sa-calendar-modal__close{position:absolute;top:15px;right:16px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(0,0,0,.12);color:#fff;font:inherit;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
.sa-calendar-modal__close:hover,.sa-calendar-modal__close:focus-visible{background:rgba(0,0,0,.22)}
.sa-calendar-modal__brand{position:absolute;top:34px;left:50%;transform:translateX(-50%);width:94px;height:94px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.16);border:1px solid #efefef;overflow:hidden;padding:12px}
.sa-calendar-modal__brand img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.sa-calendar-modal__brand-fallback{width:46px;height:46px;display:grid;place-items:center;color:var(--sa-red)}
.sa-calendar-modal__brand-fallback svg{width:42px;height:42px;display:block}
.sa-calendar-modal__content{padding:62px 34px 32px}
.sa-calendar-modal__content h2{margin:0;text-align:center;font-size:1.48rem;line-height:1.25;font-weight:800;color:#1f2329}
.sa-calendar-modal__intro,.sa-calendar-modal__selected,.sa-calendar-modal__note{color:var(--sa-muted);text-align:center;font-size:.9rem;line-height:1.5}
.sa-calendar-modal__intro{max-width:520px;margin:8px auto 22px}
.sa-calendar-modal__selected{margin:7px 0 22px;font-weight:700;color:#555b63}
.sa-calendar-modal__note{margin:22px auto 0;max-width:520px;font-size:.8rem}
.sa-calendar-modal__scope-groups{display:grid;gap:18px}
.sa-calendar-modal__scope-group{display:grid;gap:9px}
.sa-calendar-modal__scope-heading{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#80848a;font-weight:800;margin-left:2px}
.sa-calendar-modal__scope{width:100%;appearance:none;border:1px solid var(--sa-border);background:#fff;color:var(--sa-text);border-radius:14px;padding:13px 14px;font:inherit;display:grid;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:10px;text-align:left;cursor:pointer}
.sa-calendar-modal__scope:hover,.sa-calendar-modal__scope:focus-visible{border-color:#d4d4d4;background:#fafafa}
.sa-calendar-modal__scope--primary{border-color:rgba(219,37,29,.24);background:rgba(219,37,29,.035)}
.sa-calendar-modal__scope strong{display:block;font-size:.94rem}
.sa-calendar-modal__scope small{display:block;margin-top:2px;color:var(--sa-muted);font-size:.78rem}
.sa-calendar-modal__scope-icon{width:36px;height:36px;border-radius:10px;background:#f2f2f3;display:grid;place-items:center;color:var(--sa-red);font-weight:900}
.sa-calendar-modal__scope--primary .sa-calendar-modal__scope-icon{background:var(--sa-red);color:#fff}
.sa-calendar-modal__scope-arrow{font-size:24px;color:#a0a3a7}
.sa-calendar-modal__team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sa-calendar-modal__team{appearance:none;border:1px solid var(--sa-border);background:var(--sa-soft);color:#2b2f34;border-radius:10px;padding:10px 8px;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer;min-height:42px}
.sa-calendar-modal__team:hover,.sa-calendar-modal__team:focus-visible{border-color:var(--sa-red);background:#fff;color:var(--sa-red)}
.sa-calendar-modal__back{appearance:none;border:0;background:transparent;color:var(--sa-red);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;padding:0;margin:0 0 13px}
.sa-calendar-modal__providers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sa-calendar-modal__provider{min-height:126px;border:1px solid var(--sa-border);border-radius:16px;background:#fff;color:#24282e;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px 10px;text-align:center;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.sa-calendar-modal__provider:hover,.sa-calendar-modal__provider:focus-visible{transform:translateY(-2px);border-color:#d3d3d3;box-shadow:0 10px 24px rgba(0,0,0,.08);color:#24282e}
.sa-calendar-modal__provider strong{font-size:.84rem;line-height:1.25}
.sa-calendar-modal__provider-icon{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:#f3f4f5;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.sa-calendar-modal__provider-icon span{font-weight:900;font-size:20px;line-height:1}
.sa-calendar-modal__provider--google .sa-calendar-modal__provider-icon{background:linear-gradient(135deg,#4285f4 0 48%,#34a853 48% 72%,#fbbc04 72% 86%,#ea4335 86%);color:#fff}
.sa-calendar-modal__provider--apple .sa-calendar-modal__provider-icon{background:#f1f2f3;color:#30343a}
.sa-calendar-modal__provider--apple .sa-calendar-modal__provider-icon span{font-size:13px;letter-spacing:.04em}
.sa-calendar-modal__provider--outlook .sa-calendar-modal__provider-icon{background:linear-gradient(135deg,#0a64c9,#33a7e8);color:#fff}
.sa-calendar-modal__provider--m365 .sa-calendar-modal__provider-icon{background:linear-gradient(135deg,#5a43d2,#8a6de9);color:#fff}
.sa-calendar-modal__provider--m365 .sa-calendar-modal__provider-icon span{font-size:14px}
.sa-calendar-modal__provider--other .sa-calendar-modal__provider-icon{background:#eef0f2;color:#555b63}
html.sa-calendar-modal-open,html.sa-calendar-modal-open body{overflow:hidden}

@media(max-width:720px){
  .sa-calendar__event{grid-template-columns:68px minmax(0,1fr)}
  .sa-calendar__date{padding-right:10px}
  .sa-calendar__head{align-items:flex-start}
  .sa-calendar__subscribe-cta{width:100%;justify-content:center}
  .sa-calendar-modal{padding:10px}
  .sa-calendar-modal__dialog{border-radius:20px;max-height:94vh}
  .sa-calendar-modal__topbar{height:72px;border-radius:20px 20px 0 0}
  .sa-calendar-modal__brand{width:84px;height:84px;top:31px}
  .sa-calendar-modal__content{padding:58px 18px 24px}
  .sa-calendar-modal__content h2{font-size:1.25rem}
  .sa-calendar-modal__providers{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .sa-calendar-modal__team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sa-calendar-modal__provider{min-height:112px}
}
@media(max-width:380px){.sa-calendar-modal__team-grid{grid-template-columns:1fr}.sa-calendar-modal__providers{grid-template-columns:1fr 1fr}}
.sa-calendar-modal__provider--outlook_desktop .sa-calendar-modal__provider-icon{background:linear-gradient(135deg,#194f8d,#2c7ac3);color:#fff}
.sa-calendar-modal__provider--outlook_desktop .sa-calendar-modal__provider-icon span{font-size:14px}

.sa-calendar__section{display:grid;gap:9px}
.sa-calendar__section+.sa-calendar__section{margin-top:8px}
.sa-calendar__section-title{margin:2px 0 1px;font-size:.92rem;line-height:1.25;font-weight:800;color:#2b2f34}
.sa-calendar__section-list{display:grid;gap:10px}
.sa-calendar__event.is-past{border-left-color:#b8bcc2;background:#fafafa}
.sa-calendar__event.is-past .sa-calendar__date{color:#7d8289}
.sa-calendar__event.is-past .sa-calendar__meta{color:#747980}
.sa-calendar__meta-primary{font-weight:650;color:#34383d}
.sa-calendar__event.is-past .sa-calendar__meta-primary{color:#3b3f44}
.sa-calendar__address{color:#72777d}
.sa-calendar__status--past{color:#6f737a;font-weight:700}
.sa-calendar__meta-icon{width:17px;height:17px;display:inline-grid;place-items:center;color:var(--sa-red);flex:0 0 auto}
.sa-calendar__meta-icon svg,.sa-calendar-modal__scope-icon svg,.sa-calendar-modal__team-icon svg{width:100%;height:100%;display:block}
.sa-calendar-modal__scope-icon{padding:7px}
.sa-calendar-modal__team{display:flex;align-items:center;justify-content:flex-start;gap:7px;text-align:left}
.sa-calendar-modal__team-icon{width:20px;height:20px;display:grid;place-items:center;color:var(--sa-red);flex:0 0 auto}
.sa-calendar-modal__provider-icon{overflow:hidden}
.sa-calendar-modal__provider-icon>svg{width:42px;height:42px;display:block}
.sa-calendar-modal__provider--google .sa-calendar-modal__provider-icon,
.sa-calendar-modal__provider--apple .sa-calendar-modal__provider-icon,
.sa-calendar-modal__provider--outlook .sa-calendar-modal__provider-icon,
.sa-calendar-modal__provider--outlook_desktop .sa-calendar-modal__provider-icon,
.sa-calendar-modal__provider--m365 .sa-calendar-modal__provider-icon,
.sa-calendar-modal__provider--other .sa-calendar-modal__provider-icon{background:#f7f8f9;color:inherit}

/* Monthly calendar view */
.sa-calendar-month__head{margin-bottom:18px}
.sa-calendar-month__toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px;padding:0;background:transparent}
.sa-calendar-month__nav{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.sa-calendar-month__nav-btn,.sa-calendar-month__today,.sa-calendar-month__view{appearance:none;border:1px solid #dddfe2;background:#fff;color:var(--sa-text);font:inherit;cursor:pointer;box-shadow:none}
.sa-calendar-month__nav-btn{width:34px;height:34px;border-radius:8px;font-size:20px;line-height:1;display:grid;place-items:center;font-weight:400}
.sa-calendar-month__today{height:34px;border-radius:8px;padding:0 12px;font-size:.8rem;font-weight:600}
.sa-calendar-month__nav-btn:hover,.sa-calendar-month__today:hover,.sa-calendar-month__nav-btn:focus-visible,.sa-calendar-month__today:focus-visible{border-color:#c9cbcf;color:var(--sa-red);outline:none}
.sa-calendar-month__title{font-size:1.24rem;line-height:1.2;font-weight:600;margin-left:6px;white-space:nowrap;color:#24272c}
.sa-calendar-month__views{display:inline-flex;border:1px solid #dddfe2;border-radius:8px;overflow:hidden;background:#fff}
.sa-calendar-month__view{border:0;border-radius:0;padding:8px 13px;font-size:.79rem;font-weight:600;background:#fff}
.sa-calendar-month__view+.sa-calendar-month__view{border-left:1px solid #dddfe2}
.sa-calendar-month__view.is-active{background:var(--sa-red);color:#fff}
.sa-calendar-month__filters{margin-bottom:14px}
.sa-calendar-month__viewport{overflow-x:auto;border:1px solid #dedfe1;border-radius:10px;background:#fff}
.sa-calendar-month__weekdays,.sa-calendar-month__grid{min-width:760px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.sa-calendar-month__weekdays{background:#fbfbfb;border-bottom:1px solid #e3e4e6}
.sa-calendar-month__weekdays span{padding:11px 8px;text-align:center;font-size:.72rem;font-weight:500;color:#70747a;border-right:1px solid #e3e4e6;text-transform:uppercase;letter-spacing:.025em}
.sa-calendar-month__weekdays span:last-child{border-right:0}
.sa-calendar-month__cell{min-height:138px;padding:8px 9px 10px;border-right:1px solid #e3e4e6;border-bottom:1px solid #e3e4e6;background:#fff;min-width:0}
.sa-calendar-month__cell:nth-child(7n){border-right:0}
.sa-calendar-month__cell:nth-last-child(-n+7){border-bottom:0}
.sa-calendar-month__cell.is-outside{background:#fcfcfc;color:#a8acb1}
.sa-calendar-month__cell.is-today{background:#fff}
.sa-calendar-month__cell-head{display:flex;align-items:center;justify-content:center;margin-bottom:7px;min-height:28px}
.sa-calendar-month__daynum{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:.78rem;font-weight:500;color:#4f545a}
.sa-calendar-month__cell.is-today .sa-calendar-month__daynum{background:var(--sa-red);color:#fff;font-weight:600}
.sa-calendar-month__cell.is-outside .sa-calendar-month__daynum{color:#b5b8bc}
.sa-calendar-month__cell-events{display:grid;gap:7px}
.sa-calendar-month__event-chip{appearance:none;width:100%;border:0;border-left:3px solid var(--sa-event-color,var(--sa-red));border-radius:0;background:transparent;color:#25292e;padding:3px 5px 4px 8px;text-align:left;font:inherit;cursor:pointer;display:grid;gap:1px;min-width:0;transition:background .14s ease}
.sa-calendar-month__event-chip:hover,.sa-calendar-month__event-chip:focus-visible{background:color-mix(in srgb,var(--sa-event-color,var(--sa-red)) 7%,#fff);outline:none}
.sa-calendar-month__event-chip.is-past{border-left-color:var(--sa-event-color,var(--sa-red));background:transparent;color:#393d42;opacity:.78}
.sa-calendar-month__event-chip.is-cancelled{border-left-color:#b32d2e;text-decoration:line-through}
.sa-calendar-month__event-chip.is-postponed{border-left-color:#b07b00}
.sa-calendar-month__event-time{font-size:.67rem;font-weight:600;color:var(--sa-event-color,var(--sa-red));line-height:1.25}
.sa-calendar-month__event-chip:not(.is-past) .sa-calendar-month__event-time{color:var(--sa-event-color,var(--sa-red))}
.sa-calendar-month__event-title{font-size:.73rem;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.sa-calendar-month__list{display:grid;gap:8px}
.sa-calendar-month__list-date{margin:15px 0 4px;font-size:.84rem;font-weight:600;color:#555b62}
.sa-calendar-month__list-date:first-child{margin-top:0}
.sa-calendar-month__list-event{appearance:none;width:100%;border:1px solid #e2e3e5;border-left:3px solid var(--sa-event-color,var(--sa-red));border-radius:8px;background:#fff;padding:10px 12px;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;font:inherit;cursor:pointer}
.sa-calendar-month__list-event:hover,.sa-calendar-month__list-event:focus-visible{border-color:#d2d4d7;background:#fafafa;outline:none}
.sa-calendar-month__list-event.is-past{border-left-color:var(--sa-event-color,var(--sa-red));background:#fcfcfc;opacity:.82}
.sa-calendar-month__list-time{font-size:.82rem;font-weight:650;color:var(--sa-event-color,var(--sa-red))}
.sa-calendar-month__list-event.is-past .sa-calendar-month__list-time{color:var(--sa-event-color,var(--sa-red))}
.sa-calendar-month__list-main{display:grid;gap:2px;min-width:0}
.sa-calendar-month__list-main strong{font-size:.87rem;line-height:1.3;font-weight:600}
.sa-calendar-month__list-main small{font-size:.73rem;color:var(--sa-muted);white-space:normal;font-weight:400}
.sa-calendar-month__list-status{font-size:.71rem;font-weight:600;color:#6b7077}

.sa-calendar-month-detail[hidden]{display:none!important}
.sa-calendar-month-detail{position:fixed;inset:0;z-index:1000000;display:grid;place-items:center;padding:18px}
.sa-calendar-month-detail__backdrop{position:absolute;inset:0;background:rgba(10,13,18,.68);backdrop-filter:blur(5px)}
.sa-calendar-month-detail__dialog{position:relative;width:min(520px,100%);background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.28);overflow:hidden;outline:none}
.sa-calendar-month-detail__accent{height:4px;background:var(--sa-event-color,var(--sa-red))}
.sa-calendar-month-detail__close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#f2f3f4;color:#333;font:inherit;font-size:24px;line-height:1;display:grid;place-items:center;cursor:pointer}
.sa-calendar-month-detail__body{padding:26px 26px 24px}
.sa-calendar-month-detail__date{padding-right:40px;color:#686d73;font-size:.79rem;font-weight:500;margin-bottom:8px}
.sa-calendar-month-detail__body h3{margin:0;font-size:1.16rem;line-height:1.35;font-weight:600;color:#22272d}
.sa-calendar-month-detail__meta{margin-top:11px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#656a70;font-size:.84rem;line-height:1.45}
.sa-calendar-month-detail__meta strong{font-weight:650;color:#30343a}
.sa-calendar-month-detail__sep{color:#a2a6ab}
.sa-calendar-month-detail__venue{margin-top:14px;display:grid;gap:7px;font-size:.84rem;color:#444a50}
.sa-calendar-month-detail__venue[hidden]{display:none!important}
.sa-calendar-month-detail__venue>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:start}
.sa-calendar-month-detail__venue span{color:#7a7f85;font-size:.76rem}
.sa-calendar-month-detail__venue strong{font-weight:550;color:#353a40;line-height:1.4}
.sa-calendar-month-detail__status{display:inline-flex;margin-top:15px;padding:5px 9px;border-radius:6px;background:#f1f2f3;color:#4f545a;font-size:.73rem;font-weight:650}
.sa-calendar-month-detail__status[hidden]{display:none!important}
.sa-calendar-month-detail__dialog.is-past .sa-calendar-month-detail__body h3{color:#252a30}
.sa-calendar-month-detail__dialog.is-past .sa-calendar-month-detail__date{color:#62676d}
.sa-calendar-month-detail__dialog.is-past .sa-calendar-month-detail__meta strong{color:#2f3439}
.sa-calendar-month-detail__dialog.is-past .sa-calendar-month-detail__venue strong{color:#363b41}

@media(max-width:720px){
  .sa-calendar-month__toolbar{align-items:flex-start;gap:10px}
  .sa-calendar-month__nav{width:100%}
  .sa-calendar-month__title{order:-1;width:100%;margin:0 0 4px;font-size:1.12rem;font-weight:600}
  .sa-calendar-month__views{width:100%}
  .sa-calendar-month__view{flex:1}
  .sa-calendar-month__viewport{border-radius:8px}
  .sa-calendar-month__weekdays,.sa-calendar-month__grid{min-width:700px}
  .sa-calendar-month__cell{min-height:118px}
  .sa-calendar-month__list-event{grid-template-columns:48px minmax(0,1fr)}
  .sa-calendar-month__list-status{grid-column:2}
  .sa-calendar-month-detail{padding:10px}
  .sa-calendar-month-detail__body{padding:22px 18px 20px}
}
