/* Private native-beta Path memories. The recorder is never offered by CSS alone. */
html body #tripEntryDialog [data-trip-entry-action="path"][hidden],
html body [data-path-account-entry][hidden],
html body #pathMemoryDialog [hidden] { display: none !important; }

html body #accountMenu .path-memory-account-entry { margin-block: 16px; }
html body #accountMenu .path-memory-account-button {
  display: flex !important;
  width: 100% !important;
  min-height: 72px !important;
  padding: 14px 16px !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: start !important;
}
html body #accountMenu .path-memory-account-button > svg {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  color: #78d8c5;
}
html body #accountMenu .path-memory-account-copy {
  display: grid;
  flex: 1;
  min-width: 0;
  gap: 4px;
}
html body #accountMenu .path-memory-account-copy strong { font-size: .95rem; line-height: 1.3; }
html body #accountMenu .path-memory-account-copy small { color: #b9d1dc; font-size: .73rem; font-weight: 500; line-height: 1.4; }
html body #accountMenu .path-memory-account-beta {
  flex: 0 0 auto;
  padding: 5px 8px;
  border: 1px solid #79d9c5;
  border-radius: 99px;
  color: #a5e9da;
  font-size: .62rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .06em;
  text-transform: uppercase;
}

html body #tripEntryDialog .path-entry-option .path-entry-beta {
  display: inline-flex;
  margin-inline-start: 5px;
  padding: 3px 7px;
  align-items: center;
  border-radius: 99px;
  color: #116d65 !important;
  background: #d8f4eb;
  font-size: .57rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  letter-spacing: .07em;
  text-transform: uppercase;
  vertical-align: middle;
}

html body .path-memory-dialog {
  box-sizing: border-box !important;
  position: fixed !important;
  inset: var(--path-dialog-center-y, 50%) auto auto 50% !important;
  transform: translate(-50%, -50%) !important;
  width: min(530px, calc(100vw - 20px)) !important;
  max-width: calc(100vw - 20px) !important;
  max-height: var(--path-dialog-height, calc(100dvh - 20px)) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #b8d4d6 !important;
  border-radius: 27px !important;
  color: #00243f !important;
  background: linear-gradient(155deg, #f8fdfa, #e8f6f2) !important;
  box-shadow: 0 32px 80px rgba(0, 26, 43, .34), inset 0 1px 0 #fff !important;
}
html body .path-memory-dialog::backdrop {
  background: rgba(0, 28, 43, .65) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  backdrop-filter: blur(10px) !important;
}
html body .path-memory-panel {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  min-height: 0 !important;
  max-height: var(--path-dialog-height, calc(100dvh - 20px)) !important;
}
html body .path-memory-header {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 48px !important;
  gap: 12px !important;
  align-items: start !important;
  padding: 21px 22px 17px !important;
  border-bottom: 1px solid #d5e5e5 !important;
  background: rgba(248, 253, 251, .94) !important;
}
html body .path-memory-header > div { min-width: 0; }
html body .path-memory-kicker {
  display: block;
  color: #17776d;
  font-size: .65rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
html body .path-memory-header h2 {
  margin: 5px 0 4px;
  font-size: clamp(1.45rem, 4.7vw, 1.9rem);
  line-height: 1.12;
  letter-spacing: -.035em;
}
html body .path-memory-header p {
  margin: 0;
  color: #52717b;
  font-size: .8rem;
  line-height: 1.4;
}
html body .path-memory-close {
  display: grid;
  width: 48px;
  height: 48px;
  padding: 0;
  place-items: center;
  border: 1px solid #c7dcdd;
  border-radius: 16px;
  color: #123e50;
  background: white;
  cursor: pointer;
}
html body .path-memory-close svg { width: 19px; height: 19px; }
html body .path-memory-body {
  min-height: 0;
  padding: 20px 22px 24px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
html body .path-memory-stage { display: grid; gap: 17px; }
html body .path-memory-lead {
  margin: 0;
  color: #456b75;
  font-size: .88rem;
  line-height: 1.5;
}
html body .path-memory-status {
  margin: 0 0 13px;
  padding: 11px 13px;
  border: 1px solid #c6e2dc;
  border-radius: 13px;
  color: #1d625d;
  background: #e7f7f0;
  font-size: .78rem;
  line-height: 1.45;
}
html body .path-memory-status:empty { display: none; }
html body .path-memory-status[data-state="error"] {
  border-color: #efc7c3;
  color: #913d43;
  background: #fff3f0;
}
html body .path-memory-modes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
html body .path-memory-modes button {
  display: grid;
  min-width: 0;
  min-height: 79px;
  padding: 10px;
  place-items: center;
  gap: 5px;
  border: 1px solid #c9dfe0;
  border-radius: 17px;
  color: #244e5c;
  background: rgba(255,255,255,.82);
  font: inherit;
  font-size: .82rem;
  cursor: pointer;
}
html body .path-memory-modes button[aria-pressed="true"] {
  border-color: #36bba8;
  color: #00243f;
  background: #d5f3ea;
  box-shadow: inset 0 0 0 1px #36bba8;
}
html body .path-memory-modes svg { width: 22px; height: 22px; }
html body .path-memory-privacy {
  display: flex;
  margin: 0;
  padding: 12px 13px;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid #cde6df;
  border-radius: 14px;
  color: #426772;
  background: #ecf9f4;
  font-size: .75rem;
  line-height: 1.5;
}
html body .path-memory-privacy svg { flex: 0 0 18px; width: 18px; height: 18px; color: #197e71; }
html body .path-memory-primary,
html body .path-memory-controls button {
  display: inline-flex;
  min-height: 50px;
  padding: 12px 17px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid #35627a;
  border-radius: 16px;
  color: white;
  background: #002b49;
  box-shadow: 0 9px 18px rgba(0, 40, 62, .13);
  font: inherit;
  font-size: .9rem;
  font-weight: 780;
  cursor: pointer;
}
html body .path-memory-primary { width: 100%; }
html body .path-memory-primary svg,
html body .path-memory-controls svg { width: 18px; height: 18px; }
html body .path-memory-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
html body .path-memory-controls button:first-child { color: #002b49; background: #f8fdfb; }
html body .path-memory-live-card,
html body .path-memory-recap-card {
  padding: 20px;
  border: 1px solid #b8d9d7;
  border-radius: 20px;
  color: #00314a;
  background: radial-gradient(circle at 90% 3%, #d2f5e9, transparent 37%), #f9fdfb;
}
html body .path-memory-live-badge {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 5px 10px;
  border-radius: 999px;
  color: #0d6c63;
  background: #d6f3e8;
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
html body .path-memory-live-badge[data-state="paused"] { color: #705729; background: #f8edcf; }
html body .path-memory-live-badge[data-state="interrupted"] { color: #8a4d2d; background: #fae5d6; }
html body .path-memory-live-card > strong { display: block; font-size: 1.42rem; line-height: 1.2; }
html body .path-memory-live-card p { margin: 14px 0 0; color: #51737a; font-size: .76rem; line-height: 1.5; }
html body .path-memory-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 13px; }
html body .path-memory-stats > span { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid #d3e6e3; border-radius: 13px; background: rgba(255,255,255,.8); }
html body .path-memory-stats strong { font-size: 1.35rem; line-height: 1.15; }
html body .path-memory-stats small { color: #52717b; font-size: .69rem; }
html body .path-memory-discard-link {
  min-height: 44px;
  margin: 0 auto;
  padding: 8px 13px;
  border: 0;
  color: #855052;
  background: transparent;
  font: inherit;
  font-size: .79rem;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
html body .path-memory-field { display: grid; gap: 8px; color: #164a5c; font-size: .79rem; font-weight: 780; }
html body .path-memory-field small { color: #638088; font-size: .7rem; font-weight: 560; }
html body .path-memory-field :is(input, textarea) {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 12px 13px;
  border: 1px solid #c7dfe0;
  border-radius: 14px;
  color: #00243f;
  background: white;
  font: inherit;
  font-size: 16px;
  font-weight: 580;
  line-height: 1.45;
}
html body .path-memory-field textarea { min-height: 92px; resize: vertical; }
html body .path-memory-recap-route { height: 108px; overflow: hidden; border-radius: 13px; background: linear-gradient(155deg,#e3f5f2,#f7fbf7); }
html body .path-memory-recap-route svg { width: 100%; height: 100%; }
html body .path-memory-recap-route polyline { fill: none; stroke: #0b8c86; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
html body .path-memory-recap-route circle { fill: #0b8c86; stroke: white; stroke-width: 2; }
html body .path-memory-success { justify-items: center; text-align: center; }
html body .path-memory-success-icon { display: grid; width: 66px; height: 66px; padding: 15px; place-items: center; border-radius: 50%; color: #006e66; background: #d5f4e9; }
html body .path-memory-success-icon svg { width: 30px; height: 30px; }
html body .path-memory-success h3 { margin: 0; font-size: 1.3rem; line-height: 1.2; }
html body .path-memory-success p { margin: 0; color: #52717b; font-size: .83rem; line-height: 1.5; }
html body .path-memory-discard-confirm { margin-top: 17px; padding: 13px; border: 1px solid #e9c9ca; border-radius: 14px; background: #fff4f1; }
html body .path-memory-discard-confirm p { margin: 0 0 11px; color: #7e4046; font-size: .78rem; line-height: 1.45; }
html body .path-memory-discard-confirm > div { display: flex; gap: 9px; }
html body .path-memory-discard-confirm button { min-height: 44px; flex: 1; padding: 8px; border: 1px solid #c7d5d5; border-radius: 11px; color: #123e50; background: white; font: inherit; font-size: .76rem; font-weight: 760; cursor: pointer; }
html body .path-memory-discard-confirm [data-path-confirm-discard] { border-color: #a8555a; color: white; background: #a8555a; }
html body .path-memory-dialog button:focus-visible,
html body #tripEntryDialog .path-entry-option:focus-visible { outline: 3px solid #55d2be !important; outline-offset: 2px !important; }
html body .path-memory-dialog button:disabled { cursor: wait; opacity: .58; }

/* Path memories live in Memory Lane, but never consume a Chapter. */
html body #memoryLanePage .memory-lane-path-shelf {
  display: grid;
  gap: 17px;
  width: 100%;
  margin: 22px 0;
  padding: clamp(17px, 3vw, 25px);
  border: 1px solid #cce1df;
  border-radius: 24px;
  background: radial-gradient(circle at 97% 0%, #d6f4e9, transparent 35%), #f8fcfa;
  box-shadow: 0 15px 37px rgba(4, 53, 62, .07);
}
html body #memoryLanePage .memory-lane-path-heading > span {
  display: block;
  margin-bottom: 7px;
  color: #187c71;
  font-size: .65rem;
  font-weight: 850;
  letter-spacing: .13em;
}
html body #memoryLanePage .memory-lane-path-heading h3 {
  margin: 0;
  color: #002c48;
  font-size: clamp(1.23rem, 2.5vw, 1.6rem);
  line-height: 1.2;
  letter-spacing: -.026em;
}
html body #memoryLanePage .memory-lane-path-heading p {
  margin: 7px 0 0;
  color: #55737b;
  font-size: .81rem;
  line-height: 1.5;
}
html body #memoryLanePage .memory-lane-path-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}
html body #memoryLanePage .memory-lane-path-card {
  display: grid;
  min-width: 0;
  min-height: 144px;
  padding: 17px;
  align-content: start;
  gap: 6px;
  border: 1px solid #c9dfdf;
  border-radius: 19px;
  color: #002e49;
  background: #fff;
  box-shadow: 0 7px 18px rgba(1, 46, 59, .05);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
html body #memoryLanePage .memory-lane-path-card:where(:hover, :focus-visible) {
  border-color: #54bcac;
  box-shadow: 0 9px 22px rgba(1, 46, 59, .10);
}
html body #memoryLanePage .memory-lane-path-card .memory-lane-path-mode {
  justify-self: start;
  padding: 5px 8px;
  border-radius: 99px;
  color: #167268;
  background: #e0f4ec;
  font-size: .65rem;
  font-weight: 840;
  text-transform: uppercase;
  letter-spacing: .06em;
}
html body #memoryLanePage .memory-lane-path-card strong { overflow-wrap: anywhere; font-size: 1rem; line-height: 1.25; }
html body #memoryLanePage .memory-lane-path-card small { color: #56737b; font-size: .75rem; line-height: 1.4; }
html body #memoryLanePage .memory-lane-path-open { margin-top: 6px; color: #0b746f; font-size: .75rem; font-weight: 790; }

html body .path-memory-preview {
  box-sizing: border-box;
  width: min(620px, calc(100vw - 20px));
  max-width: calc(100vw - 20px);
  max-height: calc(100dvh - 20px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid #bcd5d7;
  border-radius: 25px;
  color: #00243f;
  background: #f8fcfa;
  box-shadow: 0 28px 78px rgba(0, 26, 43, .34);
}
html body .path-memory-preview::backdrop { background: rgba(0, 26, 43, .66); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); }
html body .path-memory-preview-shell { display: grid; grid-template-rows: auto minmax(0, 1fr); max-height: calc(100dvh - 20px); }
html body .path-memory-preview-header {
  display: flex;
  min-height: 64px;
  padding: 13px 19px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: white;
  background: #002b49;
}
html body .path-memory-preview-header span { font-size: .69rem; font-weight: 850; letter-spacing: .1em; }
html body .path-memory-preview-header button { display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 1px solid #6b96a5; border-radius: 50%; color: white; background: rgba(255,255,255,.08); font: inherit; font-size: 1.4rem; cursor: pointer; }
html body .path-memory-preview-body { min-height: 0; padding: 23px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
html body .path-memory-preview-body h2 { margin: 0; overflow-wrap: anywhere; font-size: clamp(1.45rem, 3vw, 1.9rem); line-height: 1.17; letter-spacing: -.03em; }
html body .path-memory-preview-body > p { color: #58747c; font-size: .82rem; line-height: 1.5; }
html body .path-memory-route-art { display: grid; min-height: 180px; margin: 17px 0; padding: 12px; place-items: center; overflow: hidden; border: 1px solid #c9e0da; border-radius: 18px; background: radial-gradient(circle at 15% 12%, #e4f8ee, transparent 50%), #eaf5f2; }
html body .path-memory-route-svg { display: block; width: 100%; max-height: 260px; }
html body .path-memory-route-lines polyline { fill: none; stroke: #087f7a; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
html body .path-memory-route-isolated { fill: #087f7a; stroke: #f8fcfa; stroke-width: 2; }
html body .path-memory-route-start { fill: #fff; stroke: #087f7a; stroke-width: 4; }
html body .path-memory-route-end { fill: #002b49; stroke: #fff; stroke-width: 3; }
html body .path-memory-preview-note { padding: 13px 15px; border-left: 3px solid #69c9b7; border-radius: 3px 12px 12px 3px; background: #eff8f4; }
html body .path-memory-preview-delete {
  display: inline-flex;
  min-height: 44px;
  margin-top: 18px;
  padding: 9px 13px;
  align-items: center;
  border: 1px solid #e6cdcc;
  border-radius: 12px;
  color: #844b4d;
  background: #fff8f6;
  font: inherit;
  font-size: .75rem;
  font-weight: 760;
  cursor: pointer;
}
html body .path-memory-preview-delete:hover { border-color: #cb9a9c; background: #fff1ee; }
html body .path-memory-preview :is(button, summary):focus-visible,
html body #memoryLanePage .memory-lane-path-card:focus-visible { outline: 3px solid #55d2be; outline-offset: 2px; }

@media (max-width: 480px) {
  html body .path-memory-dialog { border-radius: 23px !important; }
  html body .path-memory-header { padding: 17px 16px 14px !important; }
  html body .path-memory-body { padding: 17px 16px 20px; }
  html body .path-memory-live-card, html body .path-memory-recap-card { padding: 16px; }
  html body #memoryLanePage .memory-lane-path-grid { grid-template-columns: minmax(0, 1fr); }
  html body .path-memory-preview-body { padding: 18px; }
}
@media (max-height: 520px) and (orientation: landscape) {
  html body .path-memory-header { padding-block: 11px !important; }
  html body .path-memory-header p { display: none; }
  html body .path-memory-body { padding-block: 12px 15px; }
  html body .path-memory-stage { gap: 11px; }
  html body .path-memory-modes button { min-height: 56px; grid-auto-flow: column; justify-content: center; }
  html body .path-memory-live-card, html body .path-memory-recap-card { padding: 14px; }
  html body .path-memory-preview-header { min-height: 55px; padding-block: 7px; }
  html body .path-memory-preview-body { padding-block: 15px; }
  html body .path-memory-route-art { min-height: 135px; }
}
@media (prefers-reduced-motion: reduce) {
  html body .path-memory-dialog *, html body #tripEntryDialog .path-entry-option { animation: none !important; transition: none !important; }
}
