/* Phone-only quick actions. Safe-area padding protects iPhone home indicators. */
.mobile-dock { display:none; }
@media screen and (max-width:47.5em) {
  :root { --mobile-dock-space:calc(4.75rem + env(safe-area-inset-bottom, 0px)); }
  body { padding-bottom:var(--mobile-dock-space); }
  html { scroll-padding-bottom:calc(var(--mobile-dock-space) + 1rem); }
  .mobile-dock {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    position:fixed;
    z-index:21;
    inset:auto 0 0;
    gap:.2rem;
    padding:.4rem max(.4rem,env(safe-area-inset-right,0px)) calc(.4rem + env(safe-area-inset-bottom,0px)) max(.4rem,env(safe-area-inset-left,0px));
    border-top:1px solid var(--line);
    background:#fff;
    box-shadow:0 -4px 20px #08223812;
  }
  .mobile-dock-item {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.2rem;
    min-width:0;
    min-height:3.875rem;
    margin:0;
    padding:.35rem .1rem;
    border:0;
    border-radius:3px;
    color:var(--navy);
    background:transparent;
    font:600 .75rem/1.3 Arial,Helvetica,sans-serif;
    letter-spacing:0;
    text-decoration:none;
    cursor:pointer;
  }
  .mobile-dock-item svg { width:1.5rem; height:1.5rem; flex:none; }
  .mobile-dock-item:hover { color:var(--brand-ink); background:var(--soft); }
  .mobile-dock:not(:has([aria-expanded=true])) .mobile-dock-item[aria-current],
  .mobile-dock-item[aria-expanded=true] { background:var(--brand-surface); color:#fff; }
  .mobile-dock-item[aria-current] span { text-decoration:underline; text-underline-offset:.2em; }
  .mobile-dock-item:focus-visible { outline:3px solid var(--brand-ink); outline-offset:1px; }
  /* Both menu buttons operate the same disclosure, within reach of the bar. */
  .nav #navigation {
    position:fixed;
    inset:auto .75rem calc(var(--mobile-dock-space) + .5rem);
    max-height:calc(100vh - var(--mobile-dock-space) - 7rem);
    max-block-size:calc(100dvh - var(--mobile-dock-space) - 7rem);
    padding:1rem 1.25rem;
    border:1px solid var(--line);
    border-radius:.5rem;
    box-shadow:0 -4px 30px #08223824;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .nav #navigation > a { flex-basis:100%; min-height:2.75rem; min-block-size:2.75rem; padding:.5rem 0; }
  .nav #navigation > .nav-login { padding:.75rem; }
  /* Let privacy decisions and data entry have the available phone space. */
  body:has(.coastal-cookie-panel:not([hidden])) .mobile-dock,
  body:has(.coastal-cookie-panel:not([hidden])) .nav #navigation,
  body.mobile-form-editing .mobile-dock { display:none; }
}
@media print { .mobile-dock { display:none!important; } }
