.privacy-panel {
  display: flex;
  flex-direction: column;
  position: fixed;
  z-index: 2000;
  inset: auto 1.25rem 1.25rem auto;
  width: min(40rem, calc(100% - 2.5rem));
  max-height: calc(100dvh - 2.5rem);
  overflow-y: auto;
  padding: 1.5rem;
  background: #fff;
  color: var(--color-on-tile);
  box-shadow: 0 8px 36px rgb(0 35 65 / .28);
  font-size: 1rem;
  line-height: 1.55;
}
.privacy-panel[hidden], .privacy-panel [hidden], .service-consent[hidden] { display: none; }
.privacy-panel > * { flex-shrink: 0; }
.privacy-panel h2 { font-family: var(--font-grotesk); font-size: 1.35rem; font-weight: 600; line-height: 1.4; text-transform: none; margin: 0 0 .65rem; }
.privacy-panel p { margin: 0; }
.privacy-actions { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: 1.1rem; }
.privacy-actions button {
  flex: 1 1 9rem;
  border: 2px solid var(--color-on-tile);
  background: #fff;
  color: var(--color-on-tile);
  padding: .7rem .85rem;
  min-height: 48px;
  font: 600 1rem/1.4 var(--font-body);
  cursor: pointer;
}
.privacy-actions button:hover { background: #eaf4fc; }
.privacy-actions [data-privacy-action="save"] { background: var(--color-taxi); }
.privacy-panel :focus-visible { outline: 3px solid var(--color-paper); outline-offset: 3px; }
.privacy-options { flex-shrink: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin-top: 1rem; padding-right: .25rem; }
.privacy-options > p, .privacy-options > label { margin-bottom: 1rem; }
.privacy-options label { display: flex; gap: .8rem; align-items: flex-start; cursor: pointer; font-size: 1rem; font-weight: 400; line-height: 1.55; }
.privacy-options input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: .2rem; accent-color: var(--color-paper); }
.privacy-options span { min-width: 0; }
.privacy-small, .privacy-links { font-size: .875rem; line-height: 1.6; }
.privacy-panel .privacy-links { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1rem; }
.privacy-panel a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.foot nav button { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.service-consent { padding: 1.25rem; line-height: 1.55; }
.service-consent p { margin-bottom: .85rem; }
.service-consent .btn { white-space: normal; line-height: 1.5; padding: .75rem 1rem; }
.fare-map .service-consent { align-self: center; max-width: 32rem; margin: auto; color: var(--color-on-tile); }
#calc-map:has(.service-consent) { display: flex; align-items: center; background: #eaf4fc; }
.privacy-page { max-width: 75ch; }
.privacy-page h2 { margin: 2rem 0 .85rem; font: 600 1.4rem/1.45 var(--font-grotesk); }
.privacy-page p, .privacy-page ul { margin-bottom: 1rem; }
.privacy-page a { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: .2em; }
.privacy-page .form-retry { max-width: 100%; margin-top: .75rem; background: var(--color-taxi); color: var(--color-on-tile); }
@media (max-width: 600px) {
  .privacy-panel { inset: auto 0 0; width: 100%; max-height: 85dvh; padding: 1.25rem 1rem calc(1rem + env(safe-area-inset-bottom)); }
  .privacy-actions button { flex-basis: calc(50% - .65rem); }
  .privacy-actions [data-privacy-action="settings"], .privacy-actions [data-privacy-action="save"] { flex-basis: 100%; }
}
