/* Shared adaptive shell: resize without re-rendering or discarding unsaved forms. */
@media screen {
  html { scroll-padding-block: 24px; }
  .shell, #main, .card, .cardbody, .fields > *, .grid > * { min-width: 0; }
  .shell > header { gap: 12px; flex-wrap: wrap; }
  .header-start, .profile { min-width: 0; flex-wrap: wrap; }
  .profile > span { overflow-wrap: anywhere; }
  .fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  input, select, textarea { max-width: 100%; }
  #modal { max-height: calc(100dvh - 24px); overscroll-behavior: contain; }
  #modal-body { min-width: 0; overflow-wrap: anywhere; }
  .op-table { overscroll-behavior-x: contain; }
  .document { overflow-wrap: anywhere; }
  #connection-status { position: sticky; top: 0; z-index: 40; margin: 0; padding: 8px 16px; background: #fff1d6; color: #624611; text-align: center; font-size: 14px; }
  #connection-status[hidden] { display: none; }
  @media (pointer: coarse) {
    button, .button, nav a, summary { min-height: 44px; touch-action: manipulation; }
    input:not([type=checkbox]):not([type=radio]):not([type=color]), select { min-height: 44px; font-size: 16px; }
    textarea { font-size: 16px; }
    .choice-row label { min-height: 44px; display: inline-flex; align-items: center; }
  }
  @media (max-width: 899px) {
    body > aside { position: fixed; inset: 0 auto 0 0; width: 280px; max-width: 85vw; display: flex; padding: 22px 18px; transform: translateX(-100%); border-right: 1px solid var(--line); z-index: 80; }
    body:not(.mobile-menu-open) > aside { visibility: hidden; }
    body.mobile-menu-open > aside { transform: translateX(0); visibility: visible; }
    body.mobile-menu-open .menu-backdrop { display: block; position: fixed; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 0; background: #16343866; z-index: 70; }
    .shell, .menu-collapsed .shell { margin-left: 0; }
    .shell > header { padding: 12px 16px; }
    .shell > main { padding: 20px 16px; }
    .shell > footer { padding: 16px; flex-wrap: wrap; }
    body > aside .brand, body > aside .workspace, body > aside .aside-bottom { display: block; }
    body > aside nav { display: block; }
    body > aside nav a { display: flex; }
  }
  @media (max-width: 599px) {
    .fields, .postal-address .fields { grid-template-columns: minmax(0,1fr); }
    .shell > header .profile > span { display: none; }
    .shell > header .profile { margin-left: auto; gap: 6px; }
    .shell > header button { padding-inline: 12px; }
    .header-start > span { font-size: 0; }
    .header-start #breadcrumb { font-size: 14px; }
    .header-start .divider { display: none; }
    .pagehead, .row.spread, .actions { flex-wrap: wrap; gap: 10px; }
    .pagehead > *, .row.spread > * { min-width: 0; }
    .auth-card { padding: 22px 18px; margin: 12px auto; }
    #modal { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; padding: 18px; }
    #modal:has(.rx-workspace), #modal:has(.plan-workspace) { padding: 0; }
    #modal:has(#medicine-library), #modal:has(#medicine-editor), #modal:has(#medicine-use-review) { width: 100%; }
    .actions > button { flex: 1 1 auto; }
    .plan-footer { flex-wrap: wrap; }
    .plan-item > .fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .chat-workspace { min-height: 0; }
    .chat-conversation { min-height: 420px; }
    .op-table th, .op-table td { padding: 12px; }
  }
  @media (display-mode: standalone) {
    .shell > header { padding-top: max(12px,env(safe-area-inset-top)); }
    .shell > main { padding-left: max(16px,env(safe-area-inset-left)); padding-right: max(16px,env(safe-area-inset-right)); }
    .shell > footer, .plan-footer, .rx-footer { padding-bottom: max(16px,env(safe-area-inset-bottom)); }
    #modal { padding-top: max(18px,env(safe-area-inset-top)); }
    #modal:has(.rx-workspace), #modal:has(.plan-workspace) { padding: 0; }
  }
  /* Devices with a physical dividing hinge: keep editable content in one segment. */
  @media (horizontal-viewport-segments: 2) {
    .shell, .menu-collapsed .shell { margin-left: env(viewport-segment-left 1 0); width: env(viewport-segment-width 1 0); }
    body > aside { width: min(280px,env(viewport-segment-width 0 0)); }
    #modal, #modal:has(.rx-workspace), #modal:has(.plan-workspace) { left: env(viewport-segment-left 1 0); right: 0; width: env(viewport-segment-width 1 0); max-width: env(viewport-segment-width 1 0); margin-inline: 0; }
  }
}
@media screen and (max-width: 599px) {
  .rx-editor-footer { display: block; padding: 10px 16px max(10px,env(safe-area-inset-bottom)); }
  .rx-editor-footer .actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; margin: 0; }
  .rx-editor-footer .actions button { width: 100%; min-width: 0; padding: 10px 8px; overflow-wrap: normal; }
  .rx-editor-footer .actions button.primary { grid-column: 1 / -1; grid-row: 1; }
}
@media screen {
  .stat { min-width: 0; overflow-wrap: anywhere; }
}
@media screen and (max-height: 540px) and (max-width: 899px) {
  #modal:has(.rx-workspace), #modal:has(.plan-workspace) { overflow-y: auto; }
  .rx-workspace, .plan-workspace { height: auto; min-height: 100%; }
  #rx-editor-form, #plan-editor-form { height: auto; overflow: visible; }
  .rx-editor-columns, .rx-edit-pane, .plan-scroll { overflow: visible; }
  .rx-editor-footer, .plan-footer { position: static; }
}
