/* Public calendar mobile-first views. Desktop keeps the established calendar. */
.events-public-mobile-filter-summary,
.events-public-mobile-month-agenda,
.events-public-mobile-month-indicators,
.events-public-mobile-week-picker,
.events-public-mobile-schedule-fallback,
.events-public-agenda-date,
.events-public-list-more{display:none}

@media(max-width:640px){
  .events-public-calendar-card>.events-section-head{gap:10px;padding:14px 14px 10px}
  .events-public-calendar-title-copy{display:grid;gap:8px}
  .events-public-calendar-title-copy h2{font-size:24px;line-height:1.12}
  .events-public-calendar-title-copy>p{margin:0;font-size:11px;line-height:1.4}
  .events-public-information-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:7px}
  .events-public-information-actions .events-public-guide-link{display:none}
  .events-public-information-actions .btn{width:100%;min-width:0;min-height:44px;padding:8px 9px;justify-content:center;font-size:10px;white-space:normal;text-align:center}
  .events-calendar-header-actions{display:grid!important;gap:8px!important}
  .events-calendar-nav-actions{display:grid!important;grid-template-columns:44px minmax(74px,1fr) 44px;gap:7px!important;overflow:visible!important}
  .events-calendar-nav-actions .btn{width:100%;min-width:0;min-height:44px;padding:8px;justify-content:center}
  .events-calendar-nav-label{display:none}
  .events-calendar-nav-actions .ui-icon{width:18px;height:18px}
  .events-public-calendar-card .events-public-view-switch{position:sticky;z-index:18;top:0;gap:2px;padding:4px;border:1px solid #cbdcf0;border-radius:11px;background:rgba(238,246,255,.97);box-shadow:0 7px 18px rgba(15,43,78,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .events-public-calendar-card .events-public-view-switch a{min-width:0;min-height:44px;padding:8px 3px;font-size:9px}
  .events-public-calendar-frame{margin:0 10px 12px!important}
  .events-public-mobile-filter-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #cbdbea;border-radius:11px;background:#f8fbff}
  .events-public-mobile-filter-summary>span{min-width:0;display:flex;align-items:center;gap:9px;color:#174ea6}
  .events-public-mobile-filter-summary>span>.ui-icon{width:18px;height:18px;flex:0 0 18px}
  .events-public-mobile-filter-summary>span>span,.events-public-mobile-filter-summary b,.events-public-mobile-filter-summary small{display:block;min-width:0}
  .events-public-mobile-filter-summary b{overflow:hidden;color:#24364d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
  .events-public-mobile-filter-summary small{margin-top:2px;overflow:hidden;color:#64748b;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
  .events-public-mobile-filter-summary button{min-height:44px;padding:8px 12px;flex:0 0 auto}
  .public-calendar-mobile-ready .events-public-calendar-frame>.events-public-calendar-filterbar{display:none}
  .public-calendar-filter-modal-v2__body{padding:0!important}
  .public-calendar-filter-modal-v2__body .events-public-calendar-filterbar{display:block;margin:0;padding:14px;border:0;border-radius:0;background:#f8fafc}
  .public-calendar-filter-modal-v2__body .events-public-calendar-filter{display:grid;grid-template-columns:1fr;gap:12px}
  .public-calendar-filter-modal-v2__body .events-public-calendar-choices{width:100%}
  .public-calendar-filter-modal-v2__body .events-public-calendar-choice-list{grid-template-columns:1fr 1fr;gap:8px}
  .public-calendar-filter-modal-v2__body .events-public-calendar-choice{min-height:48px;padding:8px}
  .public-calendar-filter-modal-v2__body label,.public-calendar-filter-modal-v2__body select,.public-calendar-filter-modal-v2__body input{width:100%;min-width:0}
  .public-calendar-filter-modal-v2__body .events-public-calendar-filter>.btn{width:100%;min-height:44px;justify-content:center}
  .events-public-calendar-card .events-calendar-legend{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding:8px 1px;margin:0 10px;border:0;background:transparent;scrollbar-width:none}
  .events-public-calendar-card .events-calendar-legend::-webkit-scrollbar{display:none}
  .events-public-calendar-card .events-calendar-legend span{flex:0 0 auto;padding:5px 8px;border:1px solid #dce6f0;border-radius:999px;background:#fff;font-size:8px;white-space:nowrap}

  /* Month: a real compact month grid with a selected-day agenda below it. */
  .events-public-calendar-frame[data-public-calendar-view="month"]>.events-calendar-grid.public{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:8px;border:1px solid #d7e2ee;border-radius:12px;background:#f8fafc}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-weekday{display:block!important;padding:3px 0;border:0;background:transparent;color:#64748b;font-size:8px;text-align:center;text-transform:uppercase}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day{min-width:0;min-height:52px;padding:4px 2px;border:1px solid #dfe7f1!important;border-radius:8px!important;display:grid!important;align-content:start;background:#fff!important;box-shadow:none!important;overflow:hidden}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day.muted-day{visibility:hidden}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day>strong{min-height:24px;padding:0;display:grid;place-items:center;border:0;background:transparent}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day>strong>span{font-size:12px;line-height:1}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day>strong>em,
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-add-btn,
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-item,
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-more{display:none!important}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day.is-today>strong>span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#174ea6;color:#fff}
  .events-public-calendar-frame[data-public-calendar-view="month"] .events-calendar-day.is-mobile-selected{border-color:#3b82f6!important;box-shadow:0 0 0 2px rgba(59,130,246,.17)!important}
  .events-public-mobile-month-indicators{min-height:13px;display:flex!important;align-items:center;justify-content:center;gap:2px}
  .events-public-mobile-month-indicators i{width:5px;height:5px;border-radius:50%;background:var(--event-color,#2563eb)}
  .events-public-mobile-month-indicators b{color:#64748b;font-size:7px;font-weight:800}
  .events-public-mobile-month-agenda{display:block;margin-top:10px;padding:12px;border:1px solid #d7e2ee;border-radius:12px;background:#f8fbff}
  .events-public-mobile-month-agenda>header{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .events-public-mobile-month-agenda header small,.events-public-mobile-month-agenda header h3{display:block;margin:0}
  .events-public-mobile-month-agenda header small{color:#64748b;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
  .events-public-mobile-month-agenda header h3{margin-top:2px;color:#172033;font-size:16px}
  .events-public-mobile-month-agenda>p{margin:4px 0 10px;color:#64748b;font-size:10px}
  .events-public-mobile-month-agenda>[data-public-mobile-month-list]{display:grid;gap:7px}
  .events-public-mobile-agenda-row{width:100%;min-height:54px;padding:9px 10px;border:1px solid #dbe5ef;border-left:4px solid var(--event-color,#2563eb);border-radius:9px;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;background:#fff;color:#172033;text-align:left;box-shadow:none;cursor:pointer}
  .events-public-mobile-agenda-row>time{color:#334155;font-size:10px;font-weight:800}
  .events-public-mobile-agenda-row>span,.events-public-mobile-agenda-row b,.events-public-mobile-agenda-row small{display:block;min-width:0}
  .events-public-mobile-agenda-row b{overflow:hidden;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
  .events-public-mobile-agenda-row small{margin-top:3px;overflow:hidden;color:#64748b;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
  .events-public-mobile-agenda-empty{padding:18px 12px;border:1px dashed #cbd5e1;border-radius:9px;background:#fff;color:#64748b;font-size:11px;text-align:center}

  /* Week: select one day from a swipeable date strip. */
  .events-public-mobile-week-picker{margin-bottom:8px;padding:3px;display:flex;gap:5px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .events-public-mobile-week-picker::-webkit-scrollbar{display:none}
  .events-public-mobile-week-picker button{min-width:58px;min-height:58px;padding:6px;border:1px solid #d8e3ee;border-radius:10px;display:grid;place-items:center;gap:1px;background:#fff;color:#52657c;scroll-snap-align:center;cursor:pointer}
  .events-public-mobile-week-picker button span,.events-public-mobile-week-picker button b,.events-public-mobile-week-picker button small{display:block}
  .events-public-mobile-week-picker button span{font-size:8px;font-weight:900;text-transform:uppercase}
  .events-public-mobile-week-picker button b{font-size:16px}
  .events-public-mobile-week-picker button small{font-size:8px}
  .events-public-mobile-week-picker button.active{border-color:#1769aa;background:#1769aa;color:#fff;box-shadow:0 6px 14px rgba(23,105,170,.22)}
  .events-public-calendar-frame .events-week-grid{display:block!important;border:1px solid #d7e2ee;border-radius:12px;overflow:hidden;background:#f8fafc}
  .events-public-calendar-frame .events-week-grid .events-calendar-day{display:none!important;min-height:180px;border:0!important;background:#f8fafc!important}
  .events-public-calendar-frame .events-week-grid .events-calendar-day.is-mobile-selected{display:block!important}
  .events-public-calendar-frame .events-week-grid .events-calendar-day>strong{position:static!important;min-height:44px;padding:9px 10px;border-bottom:1px solid #dbe5ef;background:#fff}
  .events-public-calendar-frame .events-week-grid .events-calendar-item{min-height:58px;margin:7px 8px;padding:9px 10px;border-radius:9px}

  /* Day and List: scan time first, then title and location. */
  .events-public-calendar-card .events-public-agenda{gap:8px;padding:8px;border:1px solid #d7e2ee;border-radius:12px;background:#f8fafc}
  .events-public-calendar-card .events-public-agenda-item{min-height:82px;padding:11px;grid-template-columns:1fr;gap:5px;border-radius:10px}
  .events-public-calendar-card .events-public-agenda-item time{display:flex;align-items:center;gap:6px}
  .events-public-calendar-card .events-public-agenda-item time b{font-size:11px;white-space:nowrap}
  .events-public-calendar-card .events-public-agenda-item div b{font-size:12px}
  .events-public-calendar-card .events-public-agenda-item em{justify-self:start}
  .events-public-mobile-live-badge{width:max-content;margin-bottom:4px;padding:3px 7px;border-radius:999px;background:#dc2626;color:#fff;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
  .events-public-mobile-live-badge.is-next{background:#1769aa}
  .events-public-agenda-date{position:sticky;z-index:5;top:52px;margin:3px -1px 0;padding:9px 10px;border:1px solid #cfdeed;border-radius:8px;display:block;background:rgba(238,246,255,.97);color:#263b56;font-size:11px;box-shadow:0 4px 12px rgba(15,43,78,.07);backdrop-filter:blur(10px)}
  .events-public-list-more{margin-top:10px;padding:11px;border:1px solid #d7e2ee;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fbff}
  .events-public-list-more span{color:#64748b;font-size:10px}
  .events-public-list-more .btn{min-height:44px}

  /* Schedule: all spaces become a readable agenda; one space retains timeline. */
  .events-public-mobile-schedule-fallback.is-all-spaces{display:block}
  .events-schedule-view.public[data-room-filter="all"]{display:none!important}
  .events-public-mobile-schedule-guidance{margin-bottom:9px;padding:11px;border:1px solid #bcd5ed;border-radius:11px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;background:#eef7ff}
  .events-public-mobile-schedule-guidance>span{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#1769aa;color:#fff}
  .events-public-mobile-schedule-guidance>span .ui-icon{width:18px;height:18px}
  .events-public-mobile-schedule-guidance b,.events-public-mobile-schedule-guidance small{display:block}
  .events-public-mobile-schedule-guidance b{color:#173657;font-size:11px}
  .events-public-mobile-schedule-guidance small{margin-top:2px;color:#526a83;font-size:9px;line-height:1.4}
  .events-public-mobile-schedule-guidance button{grid-column:1/-1;width:100%;min-height:44px;justify-content:center}
}

@media(max-width:360px){
  .events-public-information-actions{grid-template-columns:1fr}
  .public-calendar-filter-modal-v2__body .events-public-calendar-choice-list{grid-template-columns:1fr}
  .events-public-calendar-card .events-public-view-switch a{font-size:8px}
  .events-public-mobile-agenda-row{grid-template-columns:65px minmax(0,1fr)}
}

@media(prefers-reduced-motion:reduce){
  .events-public-mobile-week-picker{scroll-behavior:auto}
}
