/* Shared working-screen typography. Brand heroes, metrics and print layouts keep their hierarchy. */
@media screen {
  :root { --type-body:14px; --type-small:12px; --type-section:16px; --panel-space:24px; }
  #content, dialog { font-size:var(--type-body); line-height:1.6; }
  #content .page-heading>:first-child { flex:1; min-width:0; }
  #content .page-heading>button { flex-shrink:0; }
  #content :is(.section-head h2,.service-panel h2,.directory-card h2,.job-card h2,.stop-card h2,.report-card h2,.sensor-property>h2,.tagging-card h2) {
    font-size:var(--type-section); font-weight:600; line-height:1.4; letter-spacing:-.02em;
  }
  #content :is(.service-panel h3,.service-panel h4) { font-size:var(--type-body); line-height:1.5; font-weight:600; }
  #content :is(.section-card p,.directory-card dd,.details dd,.dispatch-summary,.ops-instructions,.ops-explainer,.report-note,.hardware-callout,.hardware-form p,.route-preview,.event p,.demo-tour ol) {
    font-size:var(--type-body); line-height:1.6;
  }
  #content :is(.muted,.page-heading p,.empty,.property-row,.demo-work-row strong,.round-summary strong) { font-size:var(--type-body); line-height:1.6; }
  #content :is(.section-head small,.service-panel small,.help,.fine,.event small,.directory-card dt,.details dt,.report-card small,.job-card .job-meta,.demo-work-row small,.round-summary small,.maintenance-file small) {
    font-size:var(--type-small); line-height:1.5;
  }
  #content table { font-size:var(--type-body); line-height:1.5; }
  #content th { font-size:var(--type-small); line-height:1.5; }
  #content td small { font-size:var(--type-small); line-height:1.5; }
  #content :is(.primary,.secondary,.text-button), dialog :is(.primary,.secondary,.text-button) { font-size:13px; line-height:1.4; }
  #content label, dialog label, .form-fields label { font-size:13px; line-height:1.5; }
  #content :is(input,select,textarea), dialog :is(input,select,textarea) { font-family:inherit; font-size:var(--type-body); line-height:1.5; }
  #content input::file-selector-button, dialog input::file-selector-button { font-family:inherit; font-size:inherit; line-height:inherit; }
  #content .sensor-chart text { font-family:inherit; }
  #content .section-head { padding:20px var(--panel-space); flex-wrap:wrap; }
  #content .section-head h2 { margin:0; }
  #content :is(.maintenance-body,.service-panel,.details,.dispatch-summary,.timeline) { padding:var(--panel-space); }
  #content .service-panel { margin:24px 0; }
  #content .service-panel>h2 { margin:0 calc(-1 * var(--panel-space)) 20px; padding:0 var(--panel-space) 20px; border-bottom:1px solid var(--line); }
  #content .service-panel>.section-head { margin:calc(-1 * var(--panel-space)) calc(-1 * var(--panel-space)) 20px; }
  #content .service-panel p { margin:0 0 16px; overflow-wrap:anywhere; }
  #content .service-panel p:last-child { margin-bottom:0; }
  #content .service-panel p[role=status]:empty { display:none; }
  #content .service-panel>p:last-child:not([role=status]) { margin-top:16px; }
  #content .service-check input { width:18px; height:18px; min-height:18px; margin:0; flex:0 0 18px; }
  #content .service-filter label { display:flex; flex-direction:column; gap:8px; min-width:0; }
  #content .service-filter>* { max-width:100%; }
  #content .service-totals h2 { font-size:28px; line-height:1.2; margin:12px 0 0; }
  #content .service-totals article { min-width:0; overflow-wrap:anywhere; }
  #content .service-totals small { font-size:var(--type-small); }
  #content :is(.section-head,.actions,.service-filter) { row-gap:12px; }
  @media(max-width:760px) {
    :root { --panel-space:18px; }
    #content .page-heading>:first-child { flex-basis:100%; }
    #content :is(input,select,textarea), dialog :is(input,select,textarea) { font-size:16px; }
    #content :is(.primary,.secondary), dialog :is(.primary,.secondary) { min-height:44px; }
    #content .service-filter { align-items:stretch; }
    #content .service-filter label { flex:1 1 100%; }
  }
}
