/* Readable touch layouts. Loaded after page styles, before accessibility. */
.phone-contact { display: grid; gap: 6px; min-width: 0; margin-block: 10px; }
.phone-contact-number { overflow-wrap: anywhere; }
.kv .phone-contact-number { font-size: 1rem; color: var(--txt); }
.kv .phone-contact-label, .kv .phone-contact-note { font-size: .875rem; }
.sc-email-contacts { display: grid; gap: 8px; font-size: 1rem; overflow-wrap: anywhere; }
.sc-email-contacts a { min-height: 44px; display: inline-flex; align-items: center; }
.phone-contact-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.phone-contact-actions .btn { min-height: 44px; }
.phone-contact-label, .phone-contact-note { font-size: .875rem; }
.case-workspace details.case-recorded-issue { display: block; }
.case-recorded-issue > summary { cursor: pointer; }
.case-recorded-issue > small { display: block; }
.contact-correspondents { margin-top: 12px; }
.contact-correspondents summary { display: grid; cursor: pointer; padding-block: 10px; }
.contact-correspondents summary > span { font-size: .875rem; margin-top: 4px; overflow-wrap: anywhere; }
.contact-correspondents-list { list-style: none; padding: 0; }
.contact-correspondents-list li { display: grid; gap: 4px; border-top: 1px solid var(--line); padding-block: 8px; }
.registry-filter-toggle { grid-column: 1 / -1; }
.registry-filter-toggle > summary { cursor: pointer; color: var(--accent); padding-block: 12px; font-weight: 600; }
.registry-filter-toggle .registry-filter-fields { margin-top: 4px; }
.registry-filter-toggle > button { margin-top: 12px; }

@media (max-width: 900px) {
  :root { --t-xs: .875rem; --t-sm: .875rem; --t-base: 1rem; }
  html { scroll-padding-bottom: 100px; }
  body { font-size: 16px; line-height: 1.55; }
  .content { min-width: 0; }
  #main :is(p, .pre, .feed-note, .fact-value, .kv, .kv b, .conversation-body,
    .comment-text, .case-contact-card p, .case-contact-links, .delivery-status,
    .claim-status-copy, .work-item .priority-card-detail) { font-size: 1rem; line-height: 1.55; }
  #main :is(small, .muted, .eyebrow, .field > span, .login-field > span, .chip, .badge, .case-contact-label,
    .case-missing, .claim-status-label, .focus-responsibility, .focus-deadline,
    .claim-identity-facts dt, .claim-identity-facts dd, .case-results span,
    .case-results small, .case-results a, .case-result-warning, .case-update,
    .case-recorded-issue, .case-recorded-issue small, .focus-evidence, .focus-explanation,
    .claim-mobile-meta, .claim-mobile-top time, .claim-mobile-next, .claim-mobile-action > span,
    .priority-card-meta, .work-due, .result-count, .panel-kicker, .fact-label,
    .conversation-direction, .delivery-completion, .fields-hint) {
    font-size: .875rem; line-height: 1.5; letter-spacing: normal; text-transform: none;
  }
  #main :is(h1, h2, h3, p, li, dd, a, .pre, .notice, .chip, .mono) { overflow-wrap: anywhere; }
  #main :is(input, select, textarea, .btn, button) { font-size: 1rem; }
  #main :is(.btn, button, input:not([type=checkbox]):not([type=radio]), select),
  .mobile-nav a, .mobile-more > summary { min-height: 48px; }
  #main :is(.btn-icon, .editor-bar button, .copy-btn) { min-width: 48px; }
  #main :is(.btn, button) { white-space: normal; height: auto; line-height: 1.35; }
  #main summary { min-height: 48px; line-height: 1.5; }
  #main :is(.check, .checkbox-label) { min-height: 48px; gap: 10px; align-items: center; }
  #main :is(input[type=checkbox], input[type=radio]) { width: 22px; height: 22px; min-width: 22px; }
  #main :is(textarea, input, select) { scroll-margin-block: 150px; }
  #main :is(.btn-row, .editor-bar, .contact-actions) { flex-wrap: wrap; gap: 8px; }
  #main .claim-title h1 { font-size: 1.375rem; line-height: 1.4; max-height: none; display: block; overflow: visible; }
  #main .claim-focus-head h2 { font-size: 1.125rem; line-height: 1.4; }
  #main .claim-status-event.is-action h3 { font-size: 1.25rem; line-height: 1.4; }
  #main .claim-status-event.is-action > p { font-size: 1rem; }
  #main .case-navigation a { font-size: .875rem; min-height: 48px; padding: 10px 6px; line-height: 1.4; flex-wrap: wrap; white-space: nowrap; overflow-wrap: normal; }
  #main .case-navigation a > span { font-size: .875rem; margin-left: 4px; }
  #main .claim-mobile-card > b { font-size: 1rem; line-height: 1.5; }
  #main .claim-mobile-top code { font-size: .9375rem; }
  #main .mono, #main code { font-size: .9375rem; }
  #main input.mono { font-size: 1rem; }
  #main .tabs a, #main .tabs a span, #main .tab-count, #main .claim-number { font-size: .875rem; }
  #main .kv li > span, #main .delivery-status time,
  #main .delivery-completion > div, #main .delivery-completion span,
  #main .case-overview-heading > a { font-size: .875rem; }
  #main .delivery-completion b, #main .delivery-completion a,
  #main .delivery-execution > b { font-size: 1rem; }
  #main .delivery-completion a { display: inline-flex; align-items: center; min-height: 48px; }
  #main .claim-mobile-top { flex-wrap: wrap; }
  #main .case-contacts a, #main .case-overview-heading > a { min-height: 48px; display: inline-flex; align-items: center; }
  #main .case-contact-links { align-items: stretch; }
  .case-workspace .case-navigation { margin-block: 12px 16px; }
  .case-workspace .case-navigation a { justify-content: center; }
  .case-workspace .focus-responsibility { flex-wrap: wrap; }
  .case-workspace .claim-identity-facts > div { min-width: 0; }
  #main .conversation > li { grid-template-columns: minmax(0, 1fr); }
  #main .conversation-icon { display: none; }
  #main .conversation summary { flex-wrap: wrap; gap: 8px; }
  #main .conversation-copy { min-width: 0; }
  #main .conversation-copy b { white-space: normal; overflow: visible; font-size: 1rem; }
  #main .conversation-body { max-height: none; overflow-wrap: anywhere; }
  #main .doc-list > li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; align-items: start; }
  #main .doc-list > li > .btn { width: 100%; min-height: 48px; justify-content: center; margin-left: 0; }
  #main .kv > li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  #main .kv > li > b { text-align: left; }
  #main .phone-contact-actions .btn { width: auto; }
  #main .registry-filter-fields label > span, #main .queue-controls label > span { font-size: .875rem; }
}

@media (max-width: 700px) {
  .content { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .mobile-nav, .mobile-nav:not(:has(> a:nth-of-type(3))) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mobile-nav { bottom: 0; left: 0; right: 0; border-radius: 12px 12px 0 0; padding: 6px 8px max(6px, env(safe-area-inset-bottom)); }
  .mobile-nav > a, .mobile-more > summary { grid-template-rows: 20px auto; height: auto; gap: 4px; padding: 7px 4px; }
  .mobile-nav > a > span, .mobile-more > summary > span { font-size: .875rem; line-height: 1.4; max-width: none; overflow: visible; white-space: normal; }
  .mobile-more-panel { max-height: calc(100dvh - 100px); overflow-y: auto; }
  .mobile-more-panel > b { font-size: .875rem; }
  body #toasts { bottom: calc(max(88px, 6rem) + env(safe-area-inset-bottom)); }
  #toasts .toast { font-size: 1rem; }
  #main .claim-search { grid-template-columns: minmax(0, 1fr) auto; }
  #main .search-field { min-width: 0; }
  #main .claim-search .btn { padding-inline: 12px; }
  #main .claim-search .registry-filter-toggle { width: 100%; }
  #main .claim-search .registry-filter-fields { grid-template-columns: minmax(0, 1fr); }
  #main .claim-identity-facts { display: grid; }
  #main .claim-identity-facts > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); }
  #main .claim-identity-facts > div:first-child { display: none; }
  #main .claim-mobile-serial { display: none; }
  #main .fields-save-bar { position: sticky; bottom: 0; grid-template-columns: minmax(0, 1fr); padding: 8px; }
  #main .fields-save-bar > span { display: none; }
  #main .fields-save-bar .btn { width: 100%; }
  #main .claim-edit-dialog { scroll-padding-block: 80px 104px; }
  #main .dialog-head { gap: 12px; }
  #main .dialog-head h2 { font-size: 1.125rem; }
  #main .dialog-body { padding-bottom: 24px; }
  #main .fields-position-list .proc-row { flex-direction: column; align-items: stretch; }
  #main .fields-position-list .proc-row .field { flex: 0 0 auto; width: 100%; }
  #main .focus-inline-form { grid-template-columns: minmax(0, 1fr); }
  #main .claim-focus-head { flex-direction: column; align-items: stretch; padding: 12px; gap: 8px; }
  #main [data-case-section], #main [data-claim-panel], #main .case-action-result { scroll-margin-top: max(128px, 8rem); }
}
