.reading-surface .content-layout { display:block; max-width:1120px; }
.reading-surface .main-column { width:100%; }
.reading-surface .schedule-group-heading { gap:18px; flex-wrap:wrap; }
.reading-surface .schedule-group-heading .group-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.group-actions>span { font-size:16px; color:#46566c; margin-right:6px; font-variant-numeric:tabular-nums; }
.reading-surface .group-actions .button { min-height:46px; padding:10px 15px; font-size:16px; gap:8px; }
.event-announcements { position:relative; z-index:2; padding-top:24px; color:#e6fff8; }
.notice-panel { display:grid; grid-template-columns:210px minmax(0,1fr); border:1px solid #87f2d5; border-radius:12px; background:#0f3a3a; box-shadow:0 8px 24px #0003; }
.notice-heading { display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:16px; padding:24px; border-radius:11px 0 0 11px; background:#87f2d5; }
.notice-label { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.notice-heading h2 { font-size:24px; line-height:1.4; letter-spacing:-.6px; color:#06231f; }
.notice-symbol { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#06231f; font:bold 16px Georgia,serif; color:#87f2d5; flex-shrink:0; }
#announcements-count { padding:1px 9px; border-radius:999px; background:#06231f1f; font-size:15px; font-weight:700; color:#06231f; }
#announcements-toggle { display:inline-flex; align-items:center; gap:18px; min-height:44px; padding:8px 14px; border:1px solid #2f8f7d; border-radius:8px; background:#ffffff8c; color:#06231f; font-size:16px; font-weight:650; }
#announcements-toggle>span { font-size:20px; line-height:1; }
/* The whole heading bar toggles: the button's hit area is stretched over the bar, so it stays the single accessible control. */
.notice-heading { position:relative; transition:background .15s; }
#announcements-toggle::before { content:''; position:absolute; inset:0; border-radius:inherit; cursor:pointer; }
.notice-heading:has(#announcements-toggle:hover) { background:#a6f6e0; }
.notice-heading:has(#announcements-toggle:hover) #announcements-toggle { background:#fff; border-color:#1f6f60; }
.notice-panel:has(#announcements-content[hidden]) { grid-template-columns:1fr; }
.notice-panel:has(#announcements-content[hidden]) .notice-heading { flex-direction:row; align-items:center; padding-block:14px; border-radius:11px; }
#announcements-content { min-width:0; max-height:280px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-color:#5fc7ad transparent; color-scheme:dark; border-radius:0 12px 12px 0; }
.event-announcements details+details { border-top:1px solid #2c6a64; }
.event-announcements summary { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:22px 24px 14px; cursor:pointer; list-style:none; }
.event-announcements summary::-webkit-details-marker { display:none; }
.event-announcements summary:after { content:'＋'; margin-left:auto; color:#87f2d5; }
.event-announcements details[open] summary:after { content:'−'; }
.event-announcements summary strong { font-size:21px; line-height:1.55; overflow-wrap:anywhere; color:#f2fffb; }
.notice-target { font-size:14px; padding:4px 9px; background:#ffb45b; color:#2a1700; border-radius:5px; font-weight:700; }
.event-announcements time { font-size:15px; color:#c6e8e1; white-space:nowrap; }
.event-announcements details>p { margin:0; padding:0 24px 22px; white-space:pre-wrap; overflow-wrap:anywhere; color:#d8f3ed; font-size:18px; line-height:1.85; }
#announcements-status:not(:empty) { padding:16px 24px 0; font-size:16px; }
.event-announcements[hidden], .event-announcements [hidden] { display:none!important; }
.group-actions :focus-visible { outline:3px solid #6942c1; outline-offset:4px; }
.event-announcements :focus-visible { outline:2px solid #87f2d5; outline-offset:-3px; }
.notice-heading :focus-visible { outline-color:#06231f; }
@media(max-width:760px) {
  .reading-surface .content-layout { padding-top:35px; }
  .reading-surface .schedule-group-heading .group-actions { width:100%; gap:8px; }
  .group-actions>span { width:100%; margin:0 0 4px; }
  .reading-surface .group-actions .button { padding:10px 12px; }
  .event-announcements { padding-top:16px; }
  .notice-panel { grid-template-columns:1fr; border-radius:12px; }
  .notice-heading,.notice-panel:has(#announcements-content[hidden]) .notice-heading { flex-direction:row; align-items:center; gap:8px; padding:12px 16px; }
  .notice-heading { border-radius:11px 11px 0 0; }
  .notice-panel:has(#announcements-content[hidden]) .notice-heading { border-radius:11px; }
  .notice-heading h2 { font-size:22px; }
  .notice-label { gap:7px; }
  .notice-symbol { width:24px; height:24px; }
  #announcements-toggle { gap:10px; padding:8px 10px; flex-shrink:0; }
  #announcements-content { max-height:min(280px,40svh); border-radius:0 0 12px 12px; }
  .event-announcements summary { padding:12px 16px; gap:8px; }
  .event-announcements summary strong { font-size:19px; width:100%; order:2; }
  .event-announcements details>p { padding:0 16px 18px; font-size:17px; }
  .event-announcements time { font-size:14px; }
}

/* Readability floor: secondary labels stay at 15px+ on every width. */
.session-count, .track-schedule-count, .track-label { font-size:15px; }
.swag-details { font-size:15px; line-height:1.7; }
.swag-details:empty { display:none; }
.site-footer a { font-size:15px; }
.session-empty > summary { cursor:default; }
.session-empty .session-chevron { visibility:hidden; }
.wrapup-grid :is(.survey-card,.swag-card,.materials-card) p { font-size:17px; line-height:1.75; }
