/* Shared responsive layer. Desktop navigation and table layout stay intact. */
[hidden] { display: none !important; }
.workspace-menu { display:flex; flex-direction:column; flex:1; min-height:0; }
.sidebar .workspace-menu { flex-shrink:0; }
.mobile-registration-summary { display:none; }
#reservation { scroll-margin-top:24px; }
.event-secondary-actions { border:0; padding:0; margin:0; }
.event-secondary-actions summary { font-size:.85rem; font-weight:700; cursor:pointer; margin:0; }
.event-secondary-actions[open] summary { margin-bottom:10px; }
.calendar-layout-toggle { display:flex; gap:8px; padding:0 22px 18px; }
.calendar-layout-toggle [aria-pressed="true"] { background:var(--tint); border-color:var(--accent-dark); color:var(--accent-dark); }
.agenda-date { display:none; }
.is-agenda .calendar-grid { display:block; min-width:0; }
.is-agenda .weekday,.is-agenda .grid-date,.is-agenda .empty-day { display:none; }
.is-agenda .agenda-date { display:inline; }
.is-agenda .calendar-day { min-height:0; border-right:0; padding:16px; }
.is-agenda .day-header { color:var(--ink); }
.is-agenda .event-chip { padding:14px; margin-top:8px; }
.agenda-empty { padding:20px; }
@media(max-width:760px) {
  .sidebar { display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; gap:12px; }
  .sidebar .brand { margin:0; }
  .mobile-menu-toggle { margin-left:auto; min-width:78px; }
  .workspace-menu { flex-basis:100%; min-width:0; }
  .sidebar .org-label { display:block; margin:12px 0; padding:12px 0; }
  .sidebar .organization-switch { margin:8px 0 16px; }
  .sidebar nav { display:flex; flex-direction:column; white-space:normal; overflow:visible; gap:4px; }
  .sidebar nav a { min-height:44px; padding:11px 14px; }
  .sidebar nav .nav-heading { margin:16px 14px 6px; }
  .sidebar-bottom { flex-direction:column; align-items:flex-start; gap:4px; }
  .sidebar-bottom a,.sidebar-bottom .text-button { display:inline-flex; align-items:center; min-height:44px; }
  .public-header,.landing-page .public-header { gap:12px; padding:14px 16px; min-height:72px; }
  .public-header nav { flex-basis:100%; flex-direction:column; align-items:stretch; gap:4px; padding-top:12px; }
  .public-header nav a,.public-header nav .text-button { display:flex; align-items:center; min-height:44px; padding:10px 12px; }
  .public-header nav .button { justify-content:center; }
  .workspace,.public-main { padding:24px 16px 40px; }
  .page-heading>div,.detail-grid>*,.event-overview-grid>*,.panel,.field { min-width:0; }
  h1,h2,h3,.booking-row,.session-row,.callout { overflow-wrap:anywhere; }
  h1 { font-size:clamp(1.75rem,7vw,2.1rem); }
  .panel { padding:18px; }
  .table-wrap,.calendar-panel { padding:0; }
  .detail-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  .mobile-registration-summary { display:block; margin:0 0 24px; }
  .mobile-registration-summary p:empty { display:none; }
  .page-heading .actions { width:100%; }
  .page-heading .actions>.button { flex:1 1 auto; }
  .button { min-height:46px; }
  input:not([type=checkbox]):not([type=hidden]),select,textarea { min-width:0; max-width:100%; font-size:16px; }
  .search { min-width:0; }
  .search input { min-width:0; }
  .icon-button { width:44px; height:44px; flex-shrink:0; }
  .segmented a { min-height:44px; display:flex; align-items:center; justify-content:center; }
  .rich-toolbar button { width:44px; height:44px; }
  .rich-toolbar select { min-height:44px; }
  .date-picker { width:100%; max-width:100%; padding:8px; }
  .date-grid { gap:1px; }
  .date-grid button { min-height:42px; padding:2px; }
  .event-bulk-toolbar { gap:10px; }
  .event-bulk-toolbar label { min-height:44px; }
  .event-action-bar { gap:16px; }
  .event-action-group { width:100%; flex-basis:100%; }
  .event-action-group .actions { align-items:stretch; }
  .event-action-group .button { flex:1 1 100%; }
  .event-secondary-actions summary { display:list-item; min-height:44px; padding:12px 0; }
  .event-secondary-actions { border-top:1px solid var(--line); padding-top:8px; }
  .attendance-row { min-height:48px; }
  .email-tabs { overflow-x:auto; }
  .email-tabs a { flex-shrink:0; }
  .calendar-toolbar { padding:16px; }
  .calendar-toolbar .actions { flex-wrap:wrap; gap:8px; }
  .calendar-toolbar h2 { font-size:1.05rem; }
  .calendar-layout-toggle { padding:0 16px 16px; }
  .calendar-panel .filters { padding:0 16px 16px; }
  .mobile-cards,.mobile-cards tbody { display:block; width:100%; }
  .mobile-cards thead { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); }
  .mobile-cards tbody tr { display:block; padding:16px; border-bottom:1px solid var(--line); }
  .mobile-cards tbody tr:last-child { border-bottom:0; }
  .mobile-cards td { display:block; padding:5px 0; border:0; white-space:normal; overflow-wrap:anywhere; }
  .mobile-cards td[data-label]::before { content:attr(data-label); display:block; font-size:.72rem; color:var(--muted); font-weight:600; margin-bottom:2px; }
  .mobile-cards td[data-label="Select"] { display:flex; align-items:center; gap:12px; min-height:44px; }
  .mobile-cards td[data-label="Event"] { font-size:1.1rem; }
  .mobile-cards td.empty { padding:20px 0; }
  .landing-page .landing-hero { min-height:0; padding:42px 20px 48px; }
  .landing-page .landing-hero h1 { font-size:clamp(2.1rem,9vw,3.2rem); }
  .landing-page .hero-copy { width:100%; }
  .landing-page .hero-copy .actions { flex-direction:column; align-items:stretch; }
  .landing-page .feature-grid { grid-template-columns:minmax(0,1fr); }
  .landing-page .student-direction { margin-top:22px; }
  .landing-page .landing-section { padding-inline:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .button:hover { transform:none; }
}

/* Native disclosure keeps settings usable with keyboard and without JavaScript. */
.sidebar nav .settings-nav { border:0; padding:0; margin:0; }
.settings-nav > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:10px 14px; border-radius:7px; font-size:.94rem; font-weight:650; list-style:none; cursor:pointer; }
.settings-nav > summary::-webkit-details-marker { display:none; }
.settings-nav > summary::after { content:""; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); flex-shrink:0; }
.settings-nav[open] > summary::after { transform:rotate(45deg); }
.settings-nav > summary:hover { background:#203e4d; }
.settings-nav[open] > summary { color:#b2dce6; margin-bottom:5px; }
.settings-nav-items { display:flex; flex-direction:column; gap:4px; margin-left:14px; padding-left:8px; border-left:1px solid #34505e; }
