/* Phone layout: reading area first, optional controls disclosed in place. */
.request-mobile-options:empty, .documentation-mobile-fold { display: none; }

@media (max-width: 760px) {
  :root { --ui-bottom-nav-height: 66px; }
  html { scroll-padding-top: 12px; scroll-padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .workspace { padding: 0 12px calc(22px + var(--ui-bottom-nav-height) + env(safe-area-inset-bottom)); }
  .view.is-visible { animation: none; }
  .app-shell .sidebar, .app-shell.sidebar-collapsed .sidebar {
    position: fixed; inset: auto 0 0; width: 100%; min-width: 0; min-height: 0;
    height: calc(var(--ui-bottom-nav-height) + env(safe-area-inset-bottom));
    padding: 4px 8px calc(4px + env(safe-area-inset-bottom)); gap: 0;
    justify-content: flex-start; overflow: hidden; border-right: 0;
  }
  .sidebar .nav-stack { flex: 0 0 auto; height: 57px; min-height: 0; margin: 0; padding: 0; align-items: stretch; }
  .sidebar .nav-item, .sidebar .workspace-more-button { height: 57px; min-height: 44px; gap: 4px; padding: 5px 0; }
  .sidebar .nav-item span[data-mobile-label], .sidebar-collapsed .nav-item span[data-mobile-label] { display: block; font-size: 0; line-height: 12px; }
  .sidebar .nav-item span[data-mobile-label]::after, .sidebar .workspace-more-button span { font-size: 11px; line-height: 13px; }
  .topbar { position: static; display: grid; grid-template-columns: minmax(0, 1fr) 44px 44px 44px; gap: 8px; margin: 0 -12px 12px; padding: max(8px, env(safe-area-inset-top)) 12px 10px; }
  .topbar .workspace-context, .topbar .topbar-actions { display: contents; }
  .topbar .workspace-context-copy { grid-column: 1; grid-row: 1; min-width: 0; align-self: center; }
  .topbar .workspace-context-copy strong { font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
  [data-active-view="regulations"] .topbar .workspace-context-copy strong { white-space: normal; text-overflow: clip; }
  .topbar .workspace-context [data-theme-picker] { grid-column: 2; grid-row: 1; margin: 0; }
  .topbar .workspace-context .theme-toggle { width: 44px; height: 44px; }
  .topbar .notification-wrap { grid-column: 3; grid-row: 1; }
  .topbar #newRequestButton { grid-column: 4; grid-row: 1; }
  .topbar .topbar-actions .search-field { grid-column: 1 / -1; grid-row: 2; max-width: none; width: 100%; min-height: 44px; }
  .topbar .search-field input { font-size: 16px; }
  .topbar .workspace-context .theme-menu { position: fixed; top: max(58px, calc(50px + env(safe-area-inset-top))); right: 12px; left: auto; }
  .request-command-center { margin-bottom: 6px; gap: 8px; }
  .request-focus-strip { margin: 0; }
  .request-focus-button { min-height: 50px; gap: 3px; padding: 5px 1px 8px; }
  .request-focus-button > strong { font-size: 18px; }
  .request-focus-button > span { font-size: 11px; white-space: nowrap; overflow-wrap: normal; }
  .request-filter-bar { flex-wrap: nowrap; gap: 8px; }
  .request-filters-toggle { flex: 1; font-size: 13px; }
  .request-filter-panel { gap: 12px; padding: 4px 0 12px; }
  .request-mobile-options { display: grid; gap: 10px; min-width: 0; }
  .request-mobile-options .requests-heading { margin: 0; display: block; }
  .request-mobile-options .requests-heading > div:first-child { display: none; }
  .request-mobile-options .requests-heading .toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; width: 100%; }
  .request-mobile-options .toolbar select { width: 100%; min-width: 0; min-height: 44px; font-size: 16px; }
  .request-mobile-options .journal-viewbar { margin: 0; }
  .request-mobile-options .journal-saved-trigger > span { display: inline; }
  .request-mobile-options .journal-saved-trigger { font-size: 12px; padding-inline: 9px; gap: 6px; }
  .request-mobile-options .journal-view-switch button { padding-inline: 10px; }
  .request-contractor-toolbar { min-height: 44px; padding: 8px 0; border-top: 0; }
  .request-contractor-toolbar-icon { display: none; }
  .request-contractor-toolbar-title { gap: 0; }
  .request-contractor-toolbar-title > span:last-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 10px; }
  .request-contractor-toolbar-title strong { font-size: 13px; }
  .request-contractor-toolbar-title small { font-size: 12px; }
  .request-contractor-group-copy strong { font-size: 14px; }
  .request-contractor-group-copy small, .request-contractor-stat { font-size: 12px; }
  .request-mobile-summary { padding: 14px 12px; }
  .request-mobile-title > span:last-child { font-size: 16px; line-height: 1.5; }
  .request-mobile-number-line > strong { font-size: 12px; }
  .request-mobile-meta { gap: 7px; }
  .request-mobile-meta .pill, .request-mobile-deadline b { font-size: 12px; line-height: 1.4; }
  .request-mobile-meta .request-mobile-deadline { gap: 5px; padding: 5px 0; }
  .request-mobile-field strong, .request-mobile-field > span, .request-mobile-note { font-size: 15px; line-height: 1.55; }
  .request-mobile-field small { font-size: 12px; }
  .journal-board { gap: 14px; }
  .journal-task-title { font-size: 16px; }
  .journal-task-person { font-size: 13px; }
  .journal-task-footer .deadline-pill { font-size: 12px; }
  .documentation-mobile-fold { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: var(--ui-subtle); color: var(--text); text-align: left; font: 550 14px/1.4 Inter, sans-serif; }
  .documentation-mobile-fold > svg { width: 18px; height: 18px; flex: none; color: var(--muted); }
  .documentation-mobile-fold > svg:last-child { margin-left: auto; }
  .documentation-mobile-fold[aria-expanded="true"] { color: var(--teal); }
  .documentation-mobile-fold[aria-expanded="true"] > svg:last-child { transform: rotate(180deg); }
  .documentation-heading-actions { display: grid; grid-template-columns: 44px 44px minmax(0, 1fr); gap: 8px; }
  .documentation-heading-actions > button { min-height: 44px; padding: 0 8px; }
  .documentation-heading-actions > button:not(#documentationUploadButton) > span { display: none; }
  #documentationUploadButton { grid-column: 3; font-size: 13px; }
  .documentation-shell:not(.is-tree-open) > .documentation-sidebar { display: none; }
  .documentation-sidebar { max-height: min(360px, 48dvh); overscroll-behavior-y: contain; }
  .documentation-commandbar { gap: 10px; padding-block: 12px; }
  .documentation-folder-tools { flex-wrap: wrap; gap: 10px; }
  .documentation-estimate-total { padding: 10px; margin-bottom: 8px; }
  .documentation-estimate-heading { gap: 5px; }
  .documentation-estimate-heading > div > small { display: none; }
  .documentation-estimate-amount strong { font-size: 20px; }
  .documentation-estimate-status { gap: 4px 10px; margin-top: 6px; font-size: 11px; }
  .documentation-estimate-details { margin-top: 4px; }
  .documentation-estimate-details > summary { min-height: 44px; padding-block: 8px; font-size: 12px; }
  .documentation-item-copy strong { font-size: 15px; line-height: 1.5; }
  .documentation-item-copy small { font-size: 12px; }
  .documentation-file-card { gap: 8px; }
  .documentation-item-actions { padding-left: 0; gap: 6px; }
  .documentation-tree .documentation-tree-label { font-size: 14px; line-height: 1.5; }
  .documentation-tree .documentation-tree-children { margin-left: 8px; padding-left: 7px; }
  .task-dialog .dialog-header { grid-template-columns: minmax(0, 1fr) 44px; padding: max(10px, env(safe-area-inset-top)) 12px 10px; }
  .task-dialog .dialog-header .icon-button { width: 44px; min-width: 44px; min-height: 44px; }
  .task-dialog .dialog-header h2 { font-size: 16px; line-height: 1.45; }
  /* Hidden upload inputs must stay inside their picker, not enlarge the dialog. */
  .file-picker { position: relative; min-height: 44px; }
  .file-picker input[type="file"] { inset: 0 auto auto 0; width: 1px; height: 1px; min-width: 0; min-height: 0; padding: 0; border: 0; clip-path: inset(50%); }
  .file-picker:focus-within { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
  .task-dialog form > .form-grid { min-height: 0; }
  .file-preview-header { position: relative; gap: 8px; padding: max(10px, env(safe-area-inset-top)) 10px 8px; }
  .file-preview-header > div:first-child { padding-right: 50px; }
  .file-preview-header > div:first-child:has(.file-tax-totals) { padding-right: 0; }
  .file-preview-header > div:first-child:has(.file-tax-totals) :is(#filePreviewTitle, #filePreviewMeta) { padding-right: 50px; }
  .file-preview-header #filePreviewTitle { -webkit-line-clamp: 2; font-size: 14px; line-height: 1.4; }
  .file-preview-header #filePreviewMeta { font-size: 11px; line-height: 1.4; }
  .file-preview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
  .file-preview-actions .secondary-button, .file-preview-actions .icon-button { flex: 1 1 44px; width: auto; min-width: 44px; min-height: 44px; height: 44px; padding: 0; }
  .file-preview-actions > [data-close-preview] { position: absolute; top: max(8px, env(safe-area-inset-top)); right: 8px; width: 44px; }
  .file-preview-header #filePreviewTotal:empty { display: none; }
  .file-preview-header .file-total-slot { margin-top: 5px; }
  .attachment-preview-actions { flex-wrap: wrap; }
  .attachment-preview-actions .secondary-button, .attachment-preview-actions .icon-button { min-width: 44px; min-height: 44px; height: 44px; }
  .notification-popover { top: max(60px, calc(52px + env(safe-area-inset-top))); max-height: calc(100dvh - 144px - env(safe-area-inset-bottom)); }
}

@media (max-width: 359px) {
  .request-focus-strip { grid-template-columns: .8fr 1.2fr 1fr .95fr 1.05fr; }
  .request-mobile-options .journal-saved-trigger > span { display: none; }
  .topbar .workspace-context-copy strong { font-size: 14px; }
}
