/* Keep the desktop shell still; the central region owns page scrolling. */
@media screen and (min-width:1200px) {
  body.app-layout { height:100dvh; overflow:hidden; }
  .app-layout > .workspace { height:100dvh; display:flex; flex-direction:column; min-height:0; padding-bottom:16px; }
  .workspace > .topbar,.workspace > .event-tabs { flex-shrink:0; }
  .workspace > .messages { flex-shrink:0; max-height:15dvh; overflow-y:auto; }
  .workspace-content { flex:1; min-height:0; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); overflow:hidden; }
  .workspace-content.event-layout { grid-template-columns:minmax(0,1fr) 250px; align-items:stretch; }
  .workspace-content > .event-primary { min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior-y:contain; scrollbar-gutter:stable; padding:2px 12px 16px 2px; scroll-padding-block:16px; }
  .event-primary:focus-visible { outline:2px solid #ef8a28; outline-offset:-2px; }
  .workspace-content > .widget-sidebar { display:flex; flex-direction:column; height:100%; min-height:0; overflow:hidden; padding-bottom:2px; }
  .widget-sidebar > .widget-sidebar-heading,.widget-sidebar > .widget-add,.widget-sidebar > .widget-capacity,.widget-sidebar > .widget-empty-sidebar { flex-shrink:0; }
  .widget-sidebar > .widget-grid { flex:0 1 calc(var(--widget-rows) * 132px + (var(--widget-rows) - 1) * 12px); min-height:0; grid-template-rows:repeat(var(--widget-rows),minmax(0,1fr)); grid-auto-rows:minmax(0,1fr); }
  .widget-grid:empty { display:none; }
  .widget-grid > .event-widget { container-type:size; }
  .widget-grid .widget-content { padding:14px; gap:8px; }
  .widget-grid .widget-size-small .widget-content { padding:10px; gap:5px; }
  .widget-sidebar > .widget-capacity { font-size:10px; }
  .app-layout > .sidebar { overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; }
  .sidebar > * { flex-shrink:0; }
}
@media screen and (min-width:1650px) {
  .workspace-content.event-layout { grid-template-columns:minmax(0,1fr) 300px; }
}
/* Collapse optional details as the fixed widget canvas becomes shorter. */
@container (max-height:240px) {
  .widget-countdown-content .widget-event-date { display:none; }
}
@container (max-height:160px) {
  .widget-countdown-content .widget-countdown-title { display:none; }
  .widget-countdown-content .widget-countdown-state { font-size:9px; }
  .widget-content .widget-people-summary { display:none; }
}
@container (max-height:100px) {
  .widget-content .widget-heading { font-size:10px; line-height:1.2; }
  .widget-content .widget-countdown-state,.widget-content .widget-countdown-days > span { display:none; }
  .widget-content .widget-countdown-days strong { font-size:24px; }
  .widget-content .widget-clock strong { font-size:20px; }
  .widget-content .widget-clock span { font-size:9px; }
  .widget-content .widget-people { display:block; border-top:0; padding-top:0; }
}
/* On narrow screens the columns stack, so retain the natural document scroll. */
@media screen and (max-width:1199px) {
  .workspace > .event-tabs { position:sticky; top:0; z-index:20; }
}
@media print {
  body.app-layout,.app-layout > .workspace,.workspace-content,.workspace-content > .event-primary { height:auto; overflow:visible; }
}
