/* Shared phone/tablet sizing. Keep browser zoom available for accessibility. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:88px; }
body {
  padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px);
  min-height:100dvh;
}
/* Inputs nested in 14px labels otherwise trigger Safari's focus zoom. */
html body input:not([type=checkbox]):not([type=radio]):not([type=file]),
#main select, #main textarea, .native-sheet select, .native-sheet textarea { font-size:16px; min-width:0; }
button.secondary, .button.secondary { color:var(--link); }
button.secondary:hover, .button.secondary:hover { background:var(--tint); color:var(--link); }
footer { color:var(--secondary); }
input, select, textarea { scroll-margin-block:100px 160px; }
fieldset, .grid > *, .stack > *, .row > *, .sheet-heading > *,
.settings-row > *, .stop-address > *, .route-stops span,
.load-card-title > *, .identity-panel > div, .company-choice > span { min-width:0; }
fieldset { max-width:100%; }
.route-stops span, .load-card-address, .company-choice > span,
.screen-toolbar h1, .sheet-heading h2, .settings-row, .stop-notes,
.account-hero, .company-row h2 { overflow-wrap:anywhere; }
.route-stops .load-card-address { white-space:normal; }
.check input { flex-shrink:0; }
.table-scroll { max-width:100%; overscroll-behavior-x:contain; }
.driver-screen #main { min-height:calc(100dvh - env(safe-area-inset-top,0px)); }
.driver-screen .screen-toolbar {
  top:env(safe-area-inset-top,0px);
  height:auto;
  min-height:64px;
  padding:10px 16px;
  grid-template-columns:44px minmax(0,1fr) 64px;
}
.driver-screen .bol-menu-toolbar { grid-template-columns:44px minmax(0,1fr) 44px; }
.screen-toolbar.over-map { margin-bottom:-64px; }
.map-hero .leaflet-top { top:64px; }
.home-toolbar { top:env(safe-area-inset-top,0px); }
.home-toolbar .round-control { width:44px; height:44px; }
.home-toolbar .company-pill { min-height:44px; }
.native-search button, .native-search input:not([type=checkbox]),
.load-segments a, .theme-row select, .fuel-tabs a,
.fuel-results-heading select { min-height:44px; }
.native-search button { flex-shrink:0; }
.screen-content { animation:none; }
.native-home { min-height:calc(100dvh - env(safe-area-inset-top,0px)); padding-bottom:calc(120px + env(safe-area-inset-bottom,0px)); }
.fuel-home { min-height:calc(100dvh - env(safe-area-inset-top,0px)); padding-bottom:calc(110px + env(safe-area-inset-bottom,0px)); }
.reference-content { min-height:calc(100dvh - 64px - env(safe-area-inset-top,0px)); padding-bottom:calc(110px + env(safe-area-inset-bottom,0px)); }
.carrier-settings-content, .bol-settings-content { padding-bottom:calc(140px + env(safe-area-inset-bottom,0px)); }
.bottom-dock { max-width:calc(100% - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); }
.floating-action { bottom:calc(100px + env(safe-area-inset-bottom,0px)); right:max(calc(16px + env(safe-area-inset-right,0px)),calc((100vw - 600px)/2 + 22px)); }
.bol-save-bar { width:min(600px,calc(100% - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))); }
.native-sheet {
  width:min(600px,calc(100% - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));
  max-height:calc(100dvh - env(safe-area-inset-top,0px) - 16px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));
}
.sheet-heading { gap:12px; }
.sheet-heading .round-control { flex-shrink:0; }
.inspection-steps { top:calc(64px + env(safe-area-inset-top,0px)); }
.bol-section-tabs button { min-width:0; }
.fuel-filters { flex-wrap:wrap; overflow:visible; }
.fuel-filters label { position:relative; flex:1 1 120px; min-width:0; }
.signed-in .pwa-login-install { display:none; }
#nav-toggle { display:none; }

/* Admin tools use a compact app header, with full navigation on demand. */
@media(max-width:759px) {
  body:not(.driver-screen) > header {
    position:sticky; top:env(safe-area-inset-top,0px); z-index:500;
    gap:8px; padding:10px 16px; min-height:64px;
    background:var(--surface); border-color:var(--divider);
  }
  .signed-in #nav-toggle { display:inline-flex; margin-left:auto; }
  .signed-in > header .brand { font-size:19px; }
  .signed-in #mode { display:none; }
  #nav { display:none; }
  #nav.is-open { display:grid; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 12px; padding-top:8px; }
  #nav a { display:flex; align-items:center; min-height:44px; text-decoration:none; padding:8px; border-radius:10px; }
  #nav a[aria-current] { background:var(--tint); color:var(--link); }
  #nav .muted { overflow-wrap:anywhere; padding:8px; }
  body:not(.driver-screen) #main { margin:20px auto; }
  .signed-in > footer { display:none; }
  .row.search, .mapping-form { width:100%; }
  .mapping-form label { flex-basis:100%; }
  .panel h2:first-child { margin-top:0; }
  .driver-table td { grid-template-columns:80px minmax(0,1fr); gap:4px 10px; }
  .fuel-results-heading { align-items:flex-start; flex-wrap:wrap; }
  .bol-field-top { align-items:flex-start; }
}

@media(max-width:374px) {
  .native-home { padding-left:12px; padding-right:12px; }
  .document-home > .screen-toolbar { margin-left:-12px; margin-right:-12px; }
  .home-toolbar { gap:6px; }
  .load-segments a { font-size:12px; }
  .load-card { padding:12px; }
  .load-card-bottom { flex-wrap:wrap; }
  .load-card-bottom > span { white-space:normal; }
  .driver-screen .section-bar { align-items:flex-start; flex-wrap:wrap; }
  .bol-field-top { flex-wrap:wrap; }
  .bol-field-top select { width:100%; }
  .theme-row { flex-wrap:wrap; }
  .theme-row select { flex:1; width:auto; }
  .driver-table td { display:block; }
  .driver-table td::before { display:block; margin-bottom:3px; }
  .driver-actions { gap:8px; }
}

@media(orientation:landscape) and (max-height:500px) {
  .driver-screen .screen-toolbar, .home-toolbar { position:relative; top:auto; }
  .fuel-map-area { height:280px; }
  .sticky-stage-action, .load-details .sticky-stage-action { position:static; }
  .bol-save-bar { position:sticky; left:auto; transform:none; width:100%; margin-top:20px; padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); }
  .carrier-settings-content, .bol-settings-content { padding-bottom:16px; }
}
