/* Small-screen safeguards: preserve the approved desktop design. */
.event-exchange-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:12px 0; }
.event-exchange-links strong { font-size:14px; overflow-wrap:anywhere; }
.event-exchange-links a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:3px; }
.calendar-event-index strong small { display:block; margin-top:6px; font-size:12px; font-weight:500; color:#657078; }
@media (max-width: 850px) {
  .header { gap: 10px; }
  .header .logo { flex-shrink: 0; }
  .header-actions { min-width: 0; gap: 8px; }
  .header-actions .pill-btn.small { display: inline-flex; min-height: 44px; padding: 10px 14px; gap: 8px; font-size: 13px; }
  .header-actions .account-menu-link:not(:has(img, .default-user-icon)) { display: none; }
  .menu-btn { display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; }
  .mobile-menu { max-height: calc(100dvh - 66px); overflow-y: auto; overscroll-behavior: contain; }
  .mobile-menu a { min-height: 44px; }
  .header .account-menu-link { flex-shrink: 0; }
}
@media (max-width: 760px) {
  .page-main { padding: 32px 16px; }
  .page-main h1, .page-main h2, .page-main h3, .page-main p,
  .page-main strong, .page-main dd, .page-main small { overflow-wrap: anywhere; }
  .dashboard-shell, .management-panel, .managed-team-main, .member-main,
  .chat-card, .exchange-card, .team-summary, .role-form, .form-card,
  .team-overview-grid > *, .dashboard-heading > *, .panel-heading > * { min-width: 0; }
  .page-main input:not([type=checkbox]):not([type=radio]), .page-main select, .page-main textarea,
  .management-modal input:not([type=checkbox]):not([type=radio]), .management-modal select,
  .management-modal textarea, .login-modal input:not([type=checkbox]), .login-modal select {
    min-width: 0; max-width: 100%; font-size: 16px;
  }
  .page-main input[type=file] { width: 100%; }
  .management-panel .panel-heading h2 { font-size: 24px; }
  .chat-meta { flex-wrap: wrap; gap: 4px 8px; }
  .chat-message { grid-template-columns: 32px minmax(0,1fr); gap: 8px; max-width: 100%; }
  .chat-avatar { width: 32px; height: 32px; }
  .chat-message.mine { grid-template-columns: minmax(0,1fr); max-width: 92%; }
  .chat-message.system { grid-template-columns: 1fr; }
  .chat-message.system > div:last-child > p { border-radius: 16px; }
  .chat-log { padding: 16px 12px; }
  /* Empty pre-join advice should not reserve a full conversation's height. */
  .inquiry-shell .chat-log:has(> .chat-empty) { min-height: 0; }
  .inquiry-shell .chat-empty { width: 100%; padding: 16px 8px; }
  .inquiry-shell .chat-empty strong { font-size: 14px; line-height: 1.6; }
  .inquiry-shell .chat-empty p { margin: 8px 0 0; font-size: 14px; line-height: 1.7; }
  .chat-compose { padding: 14px 12px; }
  .calendar-heading-actions { flex-wrap: wrap; width: 100%; }
  .calendar-heading-actions .pill-btn { flex: 1 1 120px; gap: 8px; }
  .management-modal-card, .modal-card, .calendar-event-card, .member-profile-card {
    max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain;
  }
  .login-modal .modal-card { padding: 30px 20px; }
  .login-modal .modal-card h2 { font-size: 25px; }
  .modal-close, .management-modal-close, .calendar-event-close, .member-profile-close { min-width: 44px; min-height: 44px; }
  .calendar-event-card { padding: 28px 20px; }
  .calendar-event-card h2 { font-size: 23px; }
  .calendar-event-card dl div { grid-template-columns: 64px minmax(0,1fr); gap: 10px; }
  .calendar-event-card dd, .form-confirm-actions .pill-btn { overflow-wrap: anywhere; }
  .exchange-setting { flex-wrap: wrap; }
  .ops-shell .ops-search input { min-width: 0; width: 100%; }
  .form-card { padding: 28px 20px; }
  .page-main .pill-btn { gap: 12px; }
  .card-body h3 { white-space: normal; overflow-wrap: anywhere; }
  .card-title-link { overflow-wrap: anywhere; }
  .results-head button, .card-foot .join-btn, .managed-team-actions a,
  .managed-team-actions .team-leave-button, .role-form button { min-height: 44px; }
}
.service-footer .footer-legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.footer-legal a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
.signup-legal-note { font-size: 14px; line-height: 1.8; }
.signup-legal-note a { text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:760px) {
  footer.service-footer, .inner-page footer.service-footer { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 28px 20px; }
  .service-footer p { margin: 0; }
  .service-footer .footer-legal { flex-direction: column; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.calendar-participants { margin:20px 0; border:1px solid #dfe5df; border-radius:10px; padding:0 14px; }
.calendar-participants summary { padding:14px 0; min-height:44px; cursor:pointer; font-weight:700; }
.calendar-participants summary span { display:block; font-size:13px; font-weight:400; line-height:1.8; margin-top:6px; overflow-wrap:anywhere; }
.participants-privacy,.participants-empty { color:#657078; font-size:13px; }
.calendar-attendance-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding-bottom:14px; }
.calendar-attendance-groups section { min-width:0; padding:12px; background:#f6f8f3; border-radius:8px; }
.calendar-attendance-groups h3 { margin:0 0 10px; font-size:14px; }
.calendar-attendance-groups ul { margin:0; padding:0; list-style:none; }
.calendar-attendance-groups li { padding:4px 0; overflow-wrap:anywhere; font-size:14px; }
@media(max-width:480px){.calendar-attendance-groups{grid-template-columns:1fr}}
