/* Mobile corrections are isolated so the supplied desktop composition is retained. */
.simulation-mobile-nav { display: none; }
.simulation-saving { position: fixed; z-index: 40; bottom: 16px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); margin: 0; padding: 10px 16px; border: 1px solid #c4d9f8; border-radius: 8px; background: #edf5ff; color: #2354a0; font-size: 13px; }
.simulation-dialog[open] { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); }
.dialog-heading, .dialog-footer { flex: 0 0 auto; }
.dialog-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.dialog-close { min-width: 44px; min-height: 44px; }

@media (max-width: 950px) {
  .simulation-error { position: fixed; z-index: 35; bottom: 12px; left: 12px; right: 12px; max-width: 600px; margin: 0 auto; box-shadow: 0 4px 20px #73203724; }
  .simulation-error button { min-height: 44px; padding-inline: 8px; }
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size: 16px !important; }
  .header-menu summary { min-width: 44px; min-height: 44px; justify-content: center; }
  .filter-dropdown summary, .status-select select, .filter-option { min-height: 44px; }
  .filter-option { font-size: 14px; }
  .filter-option input, .guidance-option input { flex: 0 0 20px; width: 20px; height: 20px; }
  .filter-dropdown[open] { flex: 1 0 100%; }
  .filter-dropdown[open] .filter-panel { position: static; width: 100%; min-width: 0; box-shadow: none; border-inline: 0; border-bottom: 0; border-radius: 0 0 7px 7px; }
  .session-language select { min-height: 44px; max-width: none; }
  .sim-notifications { min-width: 44px; min-height: 44px; }
  .collapse-patient, .guidance-settings, .toggle, .timeline-title .text-button { min-height: 44px; min-width: 44px; }
  .simulation-toolbar .text-button, .result-tabs button, .action-row, .recommendation-list button { min-height: 44px; }
  .action-search { min-height: 48px; }
  .action-list { max-height: 235px; }
  .action-category strong { font-size: 13px; }
  .action-category small { font-size: 11px; }
  .action-category { min-height: 88px; overflow-wrap: anywhere; }
  .recommendations-block h3 { font-size: 14px; }
  .recommendation-heading p, .guidance-settings { font-size: 12px; }
  .recommendation-list button, .action-row, .investigation-row strong { font-size: 14px; }
  .investigation-row { min-height: 48px; }
  .investigation-list { max-height: 220px; }
  .observation-row p { font-size: 12px; }
  .dialog-content textarea { font-size: 16px; }
  .dialog-footer .primary-button, .dialog-footer .outline-button { min-height: 44px; font-size: 14px; }
  .guidance-option { min-height: 48px; font-size: 15px; }
  .history-row a { display: flex; align-items: center; min-height: 44px; }
  .back-link, .session-paused .primary-button { min-height: 44px; }
  .session-paused .primary-button { font-size: 14px; }
  .home-case-grid .case-photo, .continue-body .case-photo { height: auto; align-self: start; aspect-ratio: var(--photo-aspect) !important; background-size: var(--photo-background-size) !important; }
}

@media (min-width: 601px) and (max-width: 950px) {
  .actions-panel { grid-template-areas: "title title" "search search" "categories categories" "selected recommendations" "actions recommendations" "results results"; align-items: start; }
  .actions-panel>h2 { grid-area: title; }
  .actions-panel>.action-search { grid-area: search; }
  .actions-panel>.action-categories { grid-area: categories; }
  .actions-panel>.selected-category-title { grid-area: selected; }
  .actions-panel>.action-list { grid-area: actions; }
  .actions-panel>.recommendations-block { grid-area: recommendations; align-self: start; }
  .actions-panel>.pending-results { grid-area: results; }
}

@media (max-width: 600px) {
  .simulation-mobile-nav {
    display: flex; position: sticky; top: 0; z-index: 18;
    margin: 0 9px 10px; padding: 4px; gap: 4px;
    background: #fff; border: 1px solid #dce7f6; border-radius: 9px;
    box-shadow: 0 3px 12px #163f8412;
  }
  .simulation-mobile-nav button { flex: 1; min-width: 0; min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 7px; color: #0750c9; font-size: 14px; border-radius: 6px; }
  .simulation-mobile-nav button:hover, .simulation-mobile-nav button:focus-visible { background: #edf5ff; }
  .simulation-mobile-nav .icon { width: 20px; height: 20px; }
  .simulation-panel { scroll-margin-top: 68px; }
  .simulation-panel:focus { outline: 0; }
  .session-header-controls { width: 100%; justify-content: space-between; gap: 12px; }
  .simulation-header .brand { font-size: 26px; }
  .simulation-header .brand img { width: 43px; }
  .session-case { order: 2; padding-bottom: 4px; }
  .session-header-controls { order: 3; }
  .session-language { display: flex; align-items: center; gap: 9px; }
  .session-language>span { font-size: 11px; max-width: 45px; margin: 0; }
  .session-language select { width: 102px; }
  .session-clock strong { font-size: 16px; }
  .session-clock small { font-size: 10px; }
  .simulation-toolbar { font-size: 11px; }
  .simulation-toolbar>div { gap: 6px; }
  .clinical-time-label { flex-basis: 100%; font-size: 11px; }
  .simulation-toolbar .text-button { font-size: 13px; padding-inline: 8px; }
  .simulation-toolbar .text-button:last-child { margin-left: auto; }
  .patient-identity p { font-size: 13px; }
  .state-summary { gap: 12px; flex-wrap: wrap; }
  .state-summary>div:last-child { flex: 1 1 145px; }
  .state-summary strong { font-size: 24px; overflow-wrap: anywhere; }
  .state-summary p, .state-scale li { font-size: 12px; }
  .state-scale li { flex: 1; min-width: 0; overflow-wrap: anywhere; }
  .panel-title { flex-wrap: wrap; gap: 6px; }
  .panel-title small { font-size: 11px; }
  .observation-row, .observation-row:not(:has(>p)) { grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 8px; }
  .observation-row strong { font-size: 13px; }
  .observation-value { font-size: 17px; }
  .observation-reference small, .observation-value small { font-size: 11px; }
  .observation-row>p { grid-column: 1 / -1; font-size: 12px; line-height: 1.5; }
  .observation-interpretation { font-size: 11px; }
  .observations .outline-button { min-height: 44px; }
  .interaction-panel { min-height: 0; max-height: none; overflow: visible; }
  .collapse-patient { font-size: 12px; padding-inline: 10px; }
  .conversation-heading h2 { font-size: 17px; }
  .conversation-heading>span, .scripted-label { font-size: 11px; }
  .conversation-messages { flex: none; min-height: 160px; max-height: min(48dvh,400px); }
  .conversation-input { padding-bottom: env(safe-area-inset-bottom,0px); }
  .conversation-input>input, .chat-language-label select, .send-message { min-height: 48px; height: 48px; }
  .chat-language-label select { width: 70px; }
  .send-message { width: 48px; flex: 0 0 48px; }
  .action-categories { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .action-category { padding: 12px; gap: 2px; }
  .selected-category-title strong { font-size: 15px; }
  .selected-category-title span, .investigation-row small { font-size: 12px; }
  .result-tabs button { font-size: 14px; }
  .timeline-title { flex: auto; width: 100%; align-items: center; }
  .timeline-title .text-button { margin-left: auto; }
  .timeline-title p { font-size: 12px; }
  .session-summary>h1 { font-size: 29px; }
  .dialog-heading, .dialog-content, .dialog-footer { padding: 12px 14px; }
  .dialog-content { max-height: none; }
  .dialog-footer { flex-wrap: wrap; gap: 8px; }
  .dialog-footer>button { flex: 1 1 120px; }
  .dialog-content>p { font-size: 14px; }
  .mode-card small, .helper-text { font-size: 13px; }
  .prebrief-languages { flex-wrap: wrap; }
  .prebrief-languages label { flex: 1 1 130px; font-size: 13px; }
  .prebrief-languages select { min-height: 44px; }
  .history-row { flex-wrap: wrap; }
  .history-row small { font-size: 12px; }
}

@media (max-width: 560px) {
  .filters-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .filter-control { min-width: 0; }
  .filter-dropdown summary { min-height: 48px; padding: 8px; font-size: 13px; gap: 6px; }
  .filter-dropdown[open] { grid-column: 1 / -1; }
  .status-select { padding: 0 8px; }
  .status-select select { min-width: 0; width: 100%; }
  .clear-all { min-height: 44px; justify-content: center; }
  .status-tab { font-size: 12px; }
  .tab-count { font-size: 11px; }
  .metric small { font-size: 11px; }
  .quick-statuses { padding: 4px; gap: 4px; }
  .quick-statuses a { display: flex; align-items: center; min-height: 44px; padding: 8px; font-size: 12px; }
  .section-heading>a { min-height: 44px; font-size: 12px; }
  .card-body h2, .home-case-grid h2 { font-size: 16px; min-height: 0; }
  .tag, .home-case-grid .tag { font-size: 11px; }
  .duration, .status-badge, .home-case-grid .status-badge { font-size: 11px; }
  .case-id, .home-case-grid .case-id { font-size: 12px; }
  .continue-body p, .progress-caption { font-size: 12px; }
  .home-case-grid .case-card { display: block; }
  .home-case-grid .card-bottom { flex-wrap: wrap; }
}
@media (max-width: 430px) {
  .case-grid { grid-template-columns: 1fr; }
  .card-bottom { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .continue-body { grid-template-columns: 1fr; }
}
