/* ER-inspired density across every working menu. Screen only; no workflow/role changes. */
@media screen {
  :root { --density-text: .8125rem; --density-meta: .75rem; }
  .app-shell .main { font-size: var(--density-text); line-height: 1.3; }
  .app-shell .topbar { min-height: 48px; padding: 7px 16px; gap: 8px; }
  .app-shell .topbar h1 { display: none; }
  .app-shell .topbar .eyebrow { margin: 0; font-size: .75rem; }
  .app-shell .top-actions { gap: 6px; }
  .app-shell .sidebar { padding-top: 12px; }
  .app-shell .sidebar .brand { padding-bottom: 12px; }
  .app-shell .nav-item { min-height: 34px; padding-top: 4px; padding-bottom: 4px; font-size: .8125rem; }
  .app-shell .view { padding: 12px 16px; }
  .app-shell .view .page-intro { padding: 0; margin: 0 0 8px; gap: 8px; }
  .app-shell .view .page-intro h2 { font-size: 1.125rem; line-height: 1.2; margin: 0; }
  :is(#view-tickets, #view-mobile, #view-parts, #view-claims, #view-invoices, #view-dispatch) .page-intro h2 { font-size: 1.125rem; line-height: 1.2; margin: 0; }
  .app-shell .view .workspace-tab { min-height: 32px; padding: 5px 8px; font-size: .8125rem; }
  .app-shell .view > .section-head h2 { font-size: 1.125rem; line-height: 1.2; margin: 0; }
  .app-shell .view .page-intro > div > :is(.section-kicker, p) { display: none; }
  .app-shell .view :is(h3, h4) { font-size: .9375rem; line-height: 1.25; }
  .app-shell :is(.panel, .report-card, .overall-status-panel, .insight-card, .intake-rules) { padding: 10px; border-radius: 4px; box-shadow: none; }
  .app-shell :is(.panel-head, .report-card-head, .overall-status-head) { padding: 0 0 6px; margin-bottom: 6px; gap: 8px; }
  .app-shell :is(.dashboard-grid, .insight-grid, .portal-grid, .parts-board) { gap: 10px; }
  .app-shell :is(.primary-button, .soft-button, .outline-button, .date-button, .mode-switch button) {
    min-height: 30px; padding: 5px 9px; border-radius: 4px; font-size: .8125rem; line-height: 1.2; box-shadow: none;
  }
  .app-shell :is(.dense-filters, .activity-filters, .intake-settings-form, .intake-toolbar, .overall-status-toolbar) {
    gap: 6px; padding: 6px; margin-bottom: 8px; border-radius: 4px; box-shadow: none;
  }
  .app-shell .view :is(label, .dense-filters label, .activity-filters label) { gap: 3px; }
  .app-shell .view :is(label > span, .dense-filters label > span, .activity-filters label > span) { font-size: .75rem; line-height: 1.2; letter-spacing: normal; }
  .app-shell .view :is(input:not([type=checkbox]):not([type=radio]), select) { min-height: 30px; padding: 5px 7px; font-size: .8125rem; border-radius: 4px; }
  .app-shell .view :is(.result-bar, .report-method-note) { padding: 5px 0; margin: 0; font-size: .75rem; line-height: 1.3; }
  .app-shell .view :is(.tab-button, .parts-tab, .activity-tab, .report-category-tab) { min-height: 32px; padding: 5px 9px; font-size: .8125rem; }
  .app-shell .view .table-wrap :is(th, td) { padding: 4px 7px; font-size: .8125rem; line-height: 1.25; vertical-align: top; }
  .app-shell .view .table-wrap :is(td small, th small) { font-size: .75rem; line-height: 1.2; }
  .app-shell :is(.metric-grid, .parts-summary, .claim-summary-grid, .invoice-summary-grid, .activity-summary-grid, .inventory-summary-grid, .intake-status-grid, .overall-kpi-grid, .advisor-kpi-grid) { gap: 6px; margin: 6px 0 10px; }
  .app-shell :is(.metric-card, .parts-summary > article, .parts-summary > div, .claim-summary-grid > article, .invoice-summary-grid > article, .activity-summary-grid > article, .inventory-summary-grid > article, .intake-status-grid > article, .overall-kpi-grid > article, .advisor-kpi-grid > article) {
    min-height: 0; padding: 7px 9px; gap: 2px; border-radius: 4px; box-shadow: none;
  }
  .app-shell :is(.metric-card, .parts-summary, .claim-summary-grid, .invoice-summary-grid, .activity-summary-grid, .inventory-summary-grid, .intake-status-grid, .overall-kpi-grid, .advisor-kpi-grid) strong { font-size: 1.125rem; line-height: 1.15; }
  .app-shell :is(.metric-card, .parts-summary, .claim-summary-grid, .invoice-summary-grid, .activity-summary-grid, .inventory-summary-grid, .intake-status-grid, .overall-kpi-grid) :is(span, small) { font-size: .75rem; line-height: 1.25; letter-spacing: normal; }
  .app-shell .hero-card { min-height: 0; padding: 10px 12px; gap: 12px; border-radius: 4px; margin-bottom: 8px; }
  .app-shell .hero-copy h2 { font-size: 1.125rem; margin: 0 0 4px; }
  .app-shell .hero-copy p { margin: 0; font-size: .8125rem; }
  .app-shell .hero-stat strong { font-size: 1.5rem; }
  .app-shell .metric-icon { width: 26px; height: 26px; font-size: .875rem; }
  .app-shell .work-queue { gap: 6px; margin: 8px 0; }
  .app-shell .work-queue-card { min-height: 0; padding: 8px; gap: 3px; border-radius: 4px; }
  .app-shell .work-queue-card strong { font-size: 1.25rem; }
  .app-shell .work-queue-card :is(span, small) { font-size: .75rem; }
  #view-shortcuts .portal-card { min-height: 80px; padding: 12px; gap: 6px; border-radius: 4px; }
  #view-shortcuts .portal-card strong { font-size: 1rem; }
  #view-shortcuts .portal-icon { width: 32px; height: 32px; font-size: .8125rem; }
  #view-shortcuts .portal-card { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-content: start; gap: 3px 8px; }
  #view-shortcuts .portal-icon { grid-row: 1 / 3; margin: 0; }
  #view-shortcuts .portal-card h3 { margin: 0; }
  #view-shortcuts .portal-card p { grid-column: 1 / -1; font-size: .8125rem; line-height: 1.3; margin: 4px 0; }
  #view-shortcuts .portal-card b { grid-column: 1 / -1; padding-top: 4px; font-size: .8125rem; }
  #view-overview .hero-card { min-height: 0; padding: 8px 10px; }
  #view-overview .hero-stat { padding: 6px 10px; }
  #view-overview .hero-copy p { color: #e1eae6; }
  #view-overview .metric-card { padding: 7px 9px; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 2px 7px; }
  #view-overview .metric-card .metric-icon { grid-row: 1 / 3; margin: 0; }
  #view-overview .metric-card > :is(strong, small) { grid-column: 2; margin: 0; }
  #view-overview .metric-card > span { font-size: .8125rem; margin: 0; }
  #view-overview .brief-item { padding: 8px 0; gap: 8px; }
  #view-overview .brief-item :is(p, h4) { margin: 2px 0; font-size: .8125rem; line-height: 1.35; }
  #view-overview .brief-item small { margin: 2px 0; font-size: .8125rem; line-height: 1.35; }
  #view-overview .brief-actions { padding-top: 5px; margin-top: 5px; }
  #view-parts .parts-stat, #view-claims .claim-summary-grid > article, #view-invoices .invoice-summary-grid > article { padding: 7px 9px; }
  #view-parts .parts-stat span, #view-claims .claim-summary-grid span, #view-invoices .invoice-summary-grid span { font-size: .75rem; }
  #view-advisor :is(.advisor-boundary-grid > article, .advisor-toolbar, .advisor-feedback, .advisor-growth-list > div) { padding: 8px 10px; border-radius: 4px; }
  #view-advisor .advisor-boundary-grid strong { font-size: 1rem; }
  #view-advisor :is(.advisor-boundary-grid, .advisor-feedback-list, .advisor-growth-list, .advisor-toolbar) { gap: 6px; margin-bottom: 8px; }
  #view-advisor .advisor-feedback p { margin: 3px 0 0; font-size: .8125rem; }
  #view-ai .overall-status-head h3 { font-size: 1.125rem; }
  #view-ai .overall-status-head p { font-size: .8125rem; margin: 4px 0; line-height: 1.3; }
  #view-ai .overall-status-toolbar :is(select, input, .primary-button) { min-height: 32px; font-size: .8125rem; }
  #view-ai .overall-kpi-grid article { min-height: 0; padding: 7px 9px; }
  #view-ai .overall-kpi-grid strong { font-size: 1.125rem; margin: 3px 0; }
  #view-ai .report-card-head h4 { font-size: .9375rem; }
  #view-ai :is(.overall-status-table, .technician-ranking-table) :is(th, td) { padding: 4px 7px; font-size: .8125rem; line-height: 1.25; }
  #view-settings .my-account-summary { padding: 7px; }
  #view-settings :is(.user-card, .my-account-summary) small { font-size: .75rem; }
  #view-intake :is(.intake-admin-controls, .intake-boundary-summary, .email-card) { padding: 8px; margin: 6px 0; border-radius: 4px; }
  #view-intake .intake-status-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #view-parts :is(.part-card, .po-group, .parts-operations-panel > .panel-head) { padding: 8px; }
  #view-parts :is(.part-card h3, .part-card h4) { font-size: .9375rem; }
  #view-ai :is(.ai-hero, .ai-roadmap) { padding: 10px; margin-top: 10px; min-height: 0; }
  #view-ai .ai-hero h3 { font-size: 1rem; }
  #view-ai .ai-hero p { font-size: .8125rem; margin: 4px 0; }
  #view-settings :is(.my-account-card, .my-account-summary, .user-card, .settings-card, .access-card) { padding: 10px; gap: 8px; min-height: 0; }
  #view-settings :is(.my-account-summary h3, .user-card h3) { font-size: 1rem; }
  #view-dispatch :is(.planner-toolbar, .dispatch-toolbar, .planner-control-bar) { padding: 6px; gap: 6px; }
  #view-dispatch .planner-ticket { padding: 4px 6px; font-size: .75rem; }
  /* Dense ticket rows retain every column and existing horizontal scrolling. */
  #view-tickets #ticket-list-print-area :is(th, td) { padding: 3px 6px; font-size: .75rem; line-height: 1.15; }
  #view-tickets #ticket-list-print-area :is(.ticket-primary-id, .ticket-customer-name, .part-status, .next-action, .internal-note-cell, .csr-note-cell) { font-size: .8125rem; line-height: 1.15; }
  #view-tickets #ticket-list-print-area :is(.ticket-address-street, .ticket-address-locality, td small, .clickable-ticket small) { font-size: .75rem; line-height: 1.15; margin-top: 1px; }
  #view-tickets #ticket-list-print-area :is(.part-status, .next-action) { padding: 2px 4px; min-height: 0; border-radius: 3px; }
  #view-tickets #ticket-list-print-area .ticket-payment-alert-list { margin-top: 3px; padding: 3px 4px; }
  #view-tickets #ticket-list-print-area .warranty-tag { min-height: 0; padding: 1px 4px; font-size: .75rem; line-height: 1.2; }
  #view-tickets #ticket-list-print-area .ticket-list-address { gap: 0; }
  #view-tickets #ticket-list-print-area .ticket-csr-note-column > small { white-space: nowrap; }
  #view-tickets #ticket-list-print-area .next-action { min-width: 150px; }
  #view-tickets #ticket-list-print-area .redo-check { min-height: 20px; padding: 2px; }
  #view-tickets .dense-filters { padding: 4px 0; gap: 5px; }
  #view-tickets .dense-filters :is(input, select, button) { min-height: 30px; padding: 4px 7px; font-size: .8125rem; }
  /* Ticket editor: remove excess framing, preserve note editing/upload/payment controls. */
  .ticket-detail-modal :is(.detail-section-title, .repair-section-heading, .repair-inline-section-title) { padding: 7px 9px; font-size: .875rem; }
  .ticket-detail-modal :is(.detail-summary-card, .detail-customer-workspace, .detail-request-workspace) { padding: 8px; min-height: 0; }
  .ticket-detail-modal :is(.service-part-transaction, .visit-history-entry) { padding: 7px; margin-bottom: 5px; }
  .ticket-detail-modal :is(.form-grid, .service-core-grid, .service-status-grid) { gap: 7px; }
  .ticket-detail-modal :is(label, .detail-summary-card small) { font-size: .8125rem; }
  .ticket-detail-modal :is(input:not([type=checkbox]):not([type=radio]), select) { min-height: 32px; font-size: .875rem; padding: 5px 7px; }
  .ticket-detail-modal .service-part-number { font-size: 1rem; }
  /* Field rows: core information at a glance; native disclosure retains all actions. */
  #view-mobile .mobile-job-list { gap: 5px; }
  #view-mobile .mobile-job-shell { position: relative; contain-intrinsic-size: auto 88px; }
  #view-mobile .mobile-job-body { padding: 4px 7px; }
  #view-mobile .mobile-ticket-open { display: block; padding-right: 30px; }
  #view-mobile .mobile-ticket-open > span { gap: 1px 6px; }
  #view-mobile .mobile-ticket-open strong, #view-mobile .mobile-job-customer strong { font-size: .875rem; line-height: 1.15; }
  #view-mobile .mobile-ticket-open small { font-size: .8125rem; line-height: 1.15; margin: 0; }
  #view-mobile .phone-job :is(.mobile-job-customer, .mobile-service-line, .mobile-job-product, .mobile-job-technician) { font-size: .75rem; line-height: 1.2; margin: 1px 0; }
  #view-mobile .mobile-ticket-open .mobile-service-line b { font-size: inherit; line-height: inherit; }
  #view-mobile .mobile-ticket-open .ticket-unread-badge { padding: 1px 4px; font-size: .6875rem; line-height: 1.15; }
  #view-mobile .field-inline-stop { display: inline; }
  #view-mobile .field-card-more { margin: 0; padding: 0; }
  #view-mobile .field-card-more > summary { position: absolute; right: 4px; top: 3px; width: 28px; height: 28px; display: grid; place-items: center; list-style: none; cursor: pointer; font-size: 1.25rem; color: #24303d; background: #f1f4f7; border: 1px solid #cbd2da; border-radius: 4px; }
  #view-mobile .field-card-more > summary::-webkit-details-marker { display: none; }
  #view-mobile .field-card-more[open] > summary { background: #dfe8f3; }
  #view-mobile .field-card-extra { padding-top: 5px; border-top: 1px solid #d8dfe7; margin-top: 4px; }
  #view-mobile .field-card-context { font-size: .75rem; margin: 0 0 3px; color: #526170; }
  #view-mobile .field-csr-indicator { display: block; color: #9f1239; font-size: .75rem; line-height: 1.2; }
  #view-mobile .ticket-payment-alert-mobile { padding: 2px 4px; gap: 1px 5px; margin: 2px 0; }
  #view-mobile .ticket-payment-alert-mobile > :is(span, strong, small) { font-size: .75rem; line-height: 1.2; }
  #view-mobile .ticket-payment-alert-mobile > small { flex-basis: auto; }
  #view-mobile .field-mobile-mode .mobile-job-rail { display: none; }
  #view-mobile .field-mobile-mode .mobile-job-list { gap: 4px; }
}
@media screen and (max-width: 820px) {
  .app-shell .view { padding: 6px 8px; }
  .app-shell .topbar { display: flex; flex-wrap: wrap; padding: 4px 8px; min-height: 40px; align-items: center; }
  .app-shell .topbar > div:nth-child(2) { display: none; }
  .app-shell .top-actions { width: auto; margin: 0 0 0 auto; gap: 5px; }
  .app-shell .mobile-menu { min-width: 32px; min-height: 32px; width: 32px; height: 32px; margin: 0; font-size: 1.125rem; }
  .app-shell .workspace-mode-switch button, .app-shell #sign-out-button { min-height: 30px; padding: 4px 7px; font-size: .75rem; }
  .app-shell .view :is(input:not([type=checkbox]):not([type=radio]), select), .ticket-detail-modal :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { font-size: 1rem; min-height: 36px; }
  .ticket-detail-modal textarea { min-height: 80px; }
  .app-shell :is(.metric-grid, .parts-summary, .claim-summary-grid, .invoice-summary-grid, .activity-summary-grid, .inventory-summary-grid, .intake-status-grid, .overall-kpi-grid, .advisor-kpi-grid, .work-queue) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell .hero-card { display: flex; align-items: center; padding: 8px; }
  #view-overview .hero-card { flex-direction: row; gap: 8px; }
  .app-shell .hero-copy { min-width: 0; }
  .app-shell .hero-copy :is(p, .section-kicker) { display: none; }
  .app-shell .hero-stat { min-width: 110px; padding: 0; }
  #view-ai .overall-status-toolbar :is(select, input) { font-size: 1rem; min-height: 36px; }
  #view-ai .overall-status-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  #view-ai .overall-status-toolbar label { min-width: 0; width: auto; }
  #view-ai .overall-status-toolbar :is(select, input) { width: 100%; min-width: 0; }
  #view-ai .overall-status-toolbar > :is(label:first-child, .report-updated) { grid-column: 1 / -1; }
  #view-ai .report-category-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 8px 0; }
  #view-ai .report-category-tab { min-width: 0; padding: 5px; font-size: .75rem; white-space: normal; }
  #view-intake .intake-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #view-intake .intake-status-grid strong { font-size: .875rem; overflow-wrap: anywhere; }
  #view-intake .intake-status-grid small { overflow-wrap: anywhere; }
  #view-claims .claim-filter-actions { grid-column: 1 / -1; display: flex; gap: 6px; }
  #view-claims .claim-filter-actions button { flex: 1; min-height: 36px; }
  #view-claims .claim-date-range-help { grid-column: 1 / -1; padding: 4px 6px; font-size: .75rem; }
  #view-claims .claim-filters > label:first-child { grid-column: 1 / -1; }
  #view-tickets .result-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding: 5px; }
  #view-tickets .result-bar > span { flex-basis: 100%; font-size: .75rem; line-height: 1.25; }
  #view-tickets .result-bar > button { margin: 0; }
  .app-shell :is(.dense-filters, .activity-filters, .parts-filters) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell :is(.filter-search-field, .activity-search-field) { grid-column: 1 / -1; }
  #view-tickets .dense-filters :is(input, select) { font-size: 1rem; min-height: 36px; }
  #view-mobile .page-intro h2 { font-size: 1rem; }
  #view-mobile .page-intro { margin-bottom: 3px; gap: 3px; }
  #view-mobile .mobile-page-actions :is(button, .mode-switch button) { min-height: 30px; padding: 4px 5px; font-size: .75rem; }
  #view-mobile :is(#mobile-team-toggle, #mobile-open-tickets, .mobile-command-date, .mobile-route-link) { min-height: 34px; padding: 4px 6px; font-size: .75rem; }
  #view-mobile .mobile-command-bar { padding: 2px 0; gap: 4px; margin-bottom: 3px; }
  #view-mobile .mobile-tech-picker select { min-height: 34px; padding: 4px 6px; }
  #view-mobile :is(.mobile-command-date, .mobile-route-link) { min-height: 34px; padding: 4px 5px; font-size: .75rem; }
  #view-mobile .mobile-ticket-filter { margin: 2px 0; }
  #view-mobile .mobile-ticket-filter button { min-height: 32px; font-size: .8125rem; padding: 4px; }
  #view-mobile #mobile-search-panel { padding: 5px 7px; margin: 2px 0 4px; }
  #view-mobile #mobile-ticket-search { min-height: 36px; padding: 4px 7px; }
  #view-mobile #mobile-search-panel :is(label, p) { margin: 2px 0; font-size: .75rem; }
  #view-mobile .mobile-route-summary { padding: 2px 0 4px; }
  #view-mobile .mobile-route-summary :is(h3, p, .section-kicker) { font-size: .75rem; line-height: 1.2; }
  #view-mobile .mobile-route-summary :is(h3, .section-kicker) { display: none; }
  #view-mobile .mobile-job-rail { display: none; }
  #view-mobile .mobile-job-list { gap: 4px; }
  #view-mobile .mobile-job-actions :is(a, button) { min-height: 44px; }
}

/* Service Tracking: save the diagnosis before collection; keep adjacent steps visible. */
@media screen {
  #ticket-detail-modal #visit-form { gap: 10px; }
  #ticket-detail-modal #service-payment-collection.payment-compact {
    padding: 8px 10px; margin: 0; gap: 6px; border-radius: 4px;
    background: #fffaf0; box-shadow: none;
  }
  #ticket-detail-modal .payment-compact .payment-unified-form { gap: 6px 10px; }
  #ticket-detail-modal .payment-compact-heading { font-size: 13px; line-height: 1.3; }
  #ticket-detail-modal .payment-compact .payment-unified-form > label { font-size: 12px; gap: 3px; line-height: 1.3; margin: 0; }
  #ticket-detail-modal .payment-compact .payment-form-actions { gap: 6px; margin: 0; }
  #ticket-detail-modal .payment-compact .payment-form-actions small { font-size: 11px; line-height: 1.3; }
  #ticket-detail-modal .payment-compact .payment-form-actions button { min-height: 36px; padding: 6px 9px; font-size: 12px; }
}
@media screen and (max-width: 820px) {
  #ticket-detail-modal .detail-tabs {
    display: flex; flex-wrap: nowrap; gap: 2px; padding: 4px 44px 4px 0;
    margin: 4px 0 8px; top: -10px; background: #fff;
  }
  #ticket-detail-modal .detail-tabs .detail-tab {
    flex: 1 1 0; min-width: 0; min-height: 40px; padding: 4px 2px;
    font-size: 12px; line-height: 1.2; border-radius: 0; border-top-width: 1px;
  }
  #ticket-detail-modal #ticket-detail-close { width: 40px; height: 40px; min-height: 40px; font-size: 26px; }
  #ticket-detail-modal #detail-visits-panel #visit-form { gap: 8px; }
  #ticket-detail-modal #detail-visits-panel :is(.visit-form-heading, .service-notes-heading) { padding: 6px 0; gap: 3px; }
  #ticket-detail-modal #detail-visits-panel :is(.visit-form-heading, .service-notes-heading) strong { font-size: 15px; }
  #ticket-detail-modal #detail-visits-panel .visit-form-heading { min-height: 0; }
  #ticket-detail-modal #detail-visits-panel .visit-form-heading > small { display: none; }
  #ticket-detail-modal #repair-record-title { font-size: 15px; margin: 2px 0 0; }
  #ticket-detail-modal #detail-visits-panel :is(.service-unit-grid, .service-notes-workflow, .service-status-grid) { padding: 0; gap: 6px; }
  #ticket-detail-modal #detail-visits-panel .service-unit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #ticket-detail-modal #detail-visits-panel .service-unit-grid > label:not(.visit-check) { grid-template-rows: auto minmax(38px, auto); }
  #ticket-detail-modal #detail-visits-panel :is(.service-unit-grid, .service-notes-workflow, .service-status-grid) > label {
    font-size: 12px; line-height: 1.3; gap: 3px; padding: 0; min-width: 0; margin: 0;
  }
  #ticket-detail-modal #detail-visits-panel :is(.service-unit-grid, .service-status-grid) :is(input, select) {
    min-height: 38px; padding: 6px; font-size: 16px;
  }
  #ticket-detail-modal #detail-visits-panel .service-notes-workflow textarea {
    min-height: 58px; padding: 7px; font-size: 16px; line-height: 1.35;
  }
  #ticket-detail-modal #detail-visits-panel .service-diagnosis-field textarea {
    min-height: 144px; padding: 11px 12px; font-size: 16px; line-height: 1.5;
  }
  #ticket-detail-modal #detail-visits-panel .service-note-label { padding: 0; font-size: 12px; line-height: 1.3; }
  #ticket-detail-modal #detail-visits-panel .service-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #ticket-detail-modal #detail-visits-panel .service-status-grid > label { display: grid; grid-template-columns: minmax(0, 1fr); }
  #ticket-detail-modal #detail-visits-panel .service-save-row { padding: 7px; gap: 5px; margin: 0; border-radius: 4px; }
  #ticket-detail-modal #service-save-context { text-align: left; gap: 2px; padding: 0; }
  #ticket-detail-modal #service-visit-stage-label { font-size: 13px; }
  #ticket-detail-modal #service-visit-stage-help { font-size: 11px; line-height: 1.3; }
  #ticket-detail-modal #detail-visits-panel .service-save-row .service-save-actions {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px;
  }
  #ticket-detail-modal #detail-visits-panel .service-save-actions > * {
    height: 44px; min-height: 44px; padding: 6px; font-size: 12px; line-height: 1.25; border-radius: 4px;
  }
  #ticket-detail-modal #detail-visits-panel .service-save-actions .visited-action-button {
    grid-column: 1 / -1; height: 32px; min-height: 32px; border: 0; background: transparent; justify-content: flex-start;
  }
  #ticket-detail-modal #service-payment-collection .payment-unified-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 8px; }
  #ticket-detail-modal #service-payment-collection .payment-unified-form > label { grid-column: auto; min-width: 0; }
  #ticket-detail-modal #service-payment-collection :is(input, select) { height: 38px; min-height: 38px; padding: 6px; font-size: 16px; line-height: 1.25; }
  #ticket-detail-modal #service-payment-collection .payment-form-actions { grid-column: 1 / -1; }
  #ticket-detail-modal #service-payment-collection .payment-form-actions button { min-height: 44px; }
  #ticket-detail-modal #detail-visits-panel .visit-er-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 0; gap: 8px; }
  #ticket-detail-modal #detail-visits-panel .visit-er-grid > label { margin: 0; gap: 3px; font-size: 12px; grid-template-rows: auto; grid-column: auto; min-width: 0; }
  #ticket-detail-modal #detail-visits-panel .visit-er-grid > :is(.visit-span-2, .visit-span-all) { grid-column: 1 / -1; }
  #ticket-detail-modal #detail-visits-panel .visit-er-grid :is(input, select, textarea) { min-height: 38px; padding: 6px; font-size: 16px; }
}
@media screen and (max-width: 360px) {
  #ticket-detail-modal .detail-tabs .detail-tab { font-size: 11px; }
}
/* Recovery is secondary to the existing work fields, without another large card. */
.service-draft-recovery { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; padding: .5rem 0; border-bottom: 1px solid #b7791f; color: #714a12; }
.service-draft-recovery > span { flex: 1 1 100%; }
.service-draft-recovery textarea { width: 100%; min-height: 9rem; font-size: 1rem; }

/* Job type is a core Ticket-list column, including the default compact view. */
#view-tickets, #ticket-list-panel, #ticket-list-print-area { min-width: 0; }
#ticket-list-print-area .ticket-job-type-column { display: table-cell; }
#ticket-list-print-area .ticket-job-types {
  display: grid; gap: .25em; list-style: none; margin: 0; padding: 0; min-width: 0;
}
#ticket-list-print-area :is(.ticket-job-types li, .ticket-job-type-normal) {
  display: block; white-space: normal; overflow-wrap: anywhere; word-break: normal;
  font-size: inherit; line-height: 1.35;
}
#view-tickets #ticket-list-print-area :is(td, td small, .internal-note-cell, .csr-note-cell,
  .part-status, .next-action, .ticket-primary-id, .ticket-customer-name) {
  white-space: normal; overflow-wrap: anywhere; word-break: normal;
  max-height: none; text-overflow: clip; -webkit-line-clamp: unset;
}
#view-tickets #ticket-list-print-area :is(.internal-note-cell, .csr-note-cell) {
  display: block; overflow: visible;
}
/* Alternate the full rendered row, including sticky columns, after each filter. */
#view-tickets #ticket-list-print-area .ticket-row > td { background: #fff; }
#view-tickets #ticket-list-print-area .ticket-row:nth-child(even) > td { background: #e7eaee; }
#view-tickets #ticket-list-print-area .ticket-row:is(:hover, :focus-within) > td { background: #dce9f5; }
@media screen {
  #view-tickets #ticket-list-print-area { max-width: 100%; overflow-x: auto; }
  #view-tickets #ticket-list-print-area .ticket-job-type-column { min-width: 8rem; }
  #view-tickets #ticket-list-print-area :is(th, td):nth-child(4) { min-width: 180px; }
  #view-tickets #ticket-list-print-area :is(th, td):nth-child(6) { min-width: 130px; }
  #view-tickets #ticket-list-print-area :is(th, td):nth-child(8) { min-width: 100px; }
  #view-tickets #ticket-list-print-area :is(th, td):nth-child(9) { min-width: 100px; }
  #view-tickets #ticket-list-print-area :is(th, td):nth-child(12) { min-width: 150px; }
  #view-tickets #ticket-list-print-area :is(th, td):nth-child(15) { min-width: 120px; }
  #view-mobile .mobile-payment-due {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px;
    min-width: 0; padding: 5px 8px; margin: 5px 0;
  }
  #view-mobile .mobile-payment-due > :is(span, strong) {
    min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.35;
  }
}
@media print {
  body.print-tickets :is(.app-shell, .main, #view-tickets, #ticket-list-panel) {
    min-width: 0; max-width: none; height: auto; max-height: none; overflow: visible;
  }
  body.print-tickets #ticket-list-print-area { max-width: 100%; border: 0; border-radius: 0; }
  body.print-tickets #ticket-list-print-area table { width: 100%; min-width: 0; table-layout: fixed; }
  body.print-tickets #ticket-list-print-area :is(th, td) {
    width: auto; min-width: 0; max-width: none; height: auto; padding: 3px;
    white-space: normal; overflow-wrap: anywhere; word-break: normal; vertical-align: top;
    font-size: 8pt; line-height: 1.3; position: static;
  }
  body.print-tickets #ticket-list-print-area :is(td small, td strong, .part-status, .next-action,
    .ticket-primary-id, .ticket-customer-name, .ticket-payment-alert > span, .ticket-payment-alert > strong) {
    min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere;
    font-size: inherit; line-height: inherit;
  }
  body.print-tickets #ticket-list-print-area thead { display: table-header-group; }
  body.print-tickets #ticket-list-print-area tr { break-inside: avoid; }
}
