/* ═══════════════════════════════════════════════════════════════════
   PulseLink app-theme.css — consolidated stylesheet (v21)
   Replaces: redesign.css + godmode-v5..v12.css, in that cascade order.
   Sections preserve original file boundaries; append new work at the
   bottom so cascade order stays predictable.
   ═══════════════════════════════════════════════════════════════════ */

/* ══════════ SECTION: redesign.css ══════════ */
/* PulseLink UI refresh — 2026-07
   Keeps the existing emergency logic intact while presenting a calmer,
   mobile-first interface based on the approved redesign direction. */

:root {
  --pl-bg: #08090b;
  --pl-surface-1: #121418;
  --pl-surface-2: #191c21;
  --pl-surface-3: #22262c;
  --pl-border: rgba(255,255,255,.07);
  --pl-border-strong: rgba(255,255,255,.11);
  --pl-text: #f4f5f6;
  --pl-muted: #9299a3;
  --pl-faint: #5f656e;
  --pl-green: #33d17e;
  --pl-green-dark: #071a0f;
  --pl-green-dim: rgba(51,209,126,.14);
  --pl-red: #ef4b4b;
  --pl-amber: #f0a63d;
  --pl-radius-sm: 13px;
  --pl-radius-md: 18px;
  --pl-radius-lg: 28px;
  --pl-shadow: 0 1px 0 rgba(255,255,255,.035) inset, 0 18px 50px rgba(0,0,0,.36);
}

html { background: var(--pl-bg); }
body {
  min-height: 100svh;
  background:
    radial-gradient(680px 440px at 50% -120px, rgba(51,209,126,.11), transparent 62%),
    var(--pl-bg) !important;
  color: var(--pl-text);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Inter, Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.012) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.35), transparent 60%);
  z-index: -1;
}

.wrap {
  width: 100%;
  max-width: 1040px;
  min-height: calc(100svh - 76px);
  margin: 0 auto;
  padding: 14px 18px 32px;
}

header {
  min-height: 48px;
  margin: 0 0 8px;
  flex-wrap: nowrap;
}
.brand { min-width: 0; }
.brand .logo {
  height: 34px !important;
  width: auto;
  max-width: 158px !important;
  mix-blend-mode: normal !important;
  filter: drop-shadow(0 6px 16px rgba(51,209,126,.08));
}
.topRight { gap: 7px; }
.topRight .portalLink,
.topRight a {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--pl-muted) !important;
  padding: 8px 6px !important;
  font-size: 11px !important;
  font-weight: 650 !important;
}
.badgeBtn {
  min-width: 38px;
  min-height: 36px;
  border-radius: 11px;
  border: 1px solid var(--pl-border-strong);
  background: var(--pl-surface-2);
  color: var(--pl-muted);
  padding: 8px 10px;
  box-shadow: 0 1px 0 rgba(255,255,255,.025) inset;
}
.langBtn {
  color: var(--pl-green);
  background: var(--pl-green-dim);
  border-color: rgba(51,209,126,.27);
}

.statusBanner {
  width: min(100%, 620px);
  margin: 4px auto 11px;
  border-radius: 12px;
  box-shadow: none;
  font-size: 12px;
  padding: 10px 13px;
}
body:not(.pl-session-active) .statusBanner:not(.show) { display: none; }

.grid {
  grid-template-columns: minmax(0, 1fr) 300px !important;
  gap: 14px !important;
  align-items: start;
}
.card {
  border: 1px solid var(--pl-border) !important;
  background: rgba(18,20,24,.86) !important;
  border-radius: var(--pl-radius-lg) !important;
  box-shadow: var(--pl-shadow) !important;
}
.grid > section.card {
  min-height: min(720px, calc(100svh - 110px));
  padding: 18px 20px 20px !important;
  overflow: hidden;
}
.grid > aside.card {
  padding: 17px !important;
  position: sticky;
  top: 14px;
}
body:not(.pl-session-active) .grid > aside.card { display: none; }
body:not(.pl-session-active) .grid { grid-template-columns: minmax(0, 620px) !important; justify-content: center; }

/* Added redesign content */
.homeHero {
  width: 100%;
  text-align: center;
  padding: 18px 8px 0;
  opacity: 1;
  transform: translateY(0);
  transition: opacity .28s ease, transform .28s ease, max-height .28s ease, padding .28s ease;
}
.homeHero .eyebrow {
  color: var(--pl-faint);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 13px;
}
.homeHero h1 {
  margin: 0;
  font-size: clamp(31px, 8vw, 48px);
  line-height: 1.02;
  letter-spacing: -.04em;
  font-weight: 760;
}
.homeHero h1 span { color: var(--pl-green); }
.homeHero p {
  margin: 13px 0 0;
  color: var(--pl-muted);
  font-size: 14px;
  font-weight: 530;
  letter-spacing: .01em;
}
body.pl-session-active .homeHero {
  max-height: 0;
  padding: 0;
  opacity: 0;
  transform: translateY(-10px);
  overflow: hidden;
}

.sessionHeader {
  width: 100%;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding-top: 1px;
  color: var(--pl-green);
}
body.pl-session-active .sessionHeader { display: flex; }
.sessionHeader .liveDot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--pl-green);
  box-shadow: 0 0 0 5px rgba(51,209,126,.08);
  animation: plLive 1.8s ease-in-out infinite;
}
.sessionHeader .liveLabel {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.sessionHeader .agePill {
  margin-left: 4px;
  min-width: 0;
  padding: 4px 7px;
  border: 1px solid rgba(51,209,126,.18);
  border-radius: 999px;
  background: rgba(51,209,126,.07);
  color: rgba(244,245,246,.72);
  font-size: 9.5px;
  font-weight: 720;
  letter-spacing: .05em;
  text-transform: uppercase;
}
@keyframes plLive { 0%,100%{ opacity:.38; transform:scale(.9); } 50%{ opacity:1; transform:scale(1.08); } }

.pulseArea {
  min-height: 620px !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  padding: 0 !important;
}
body:not(.pl-session-active) .pulseArea { min-height: 625px !important; }

.totalTimerRow {
  display: none !important;
  margin-top: 12px;
}
body.pl-session-active .totalTimerRow { display: flex !important; }
.totalTimerRow::before { content: "Elapsed" !important; color: var(--pl-faint) !important; }
#clockBadge {
  border: 0 !important;
  background: transparent !important;
  color: var(--pl-text) !important;
  font-size: 13px !important;
  letter-spacing: .04em;
  padding: 0 !important;
}

.ringWrap {
  width: 220px !important;
  height: 220px !important;
  margin: 34px auto 22px;
  transition: width .32s ease, height .32s ease, margin .32s ease, transform .12s ease;
}
body.pl-session-active .ringWrap {
  width: 292px !important;
  height: 292px !important;
  margin: 16px auto 15px;
}
.ringWrap::before {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: 50%;
  border: 1px solid rgba(51,209,126,.13);
  box-shadow: 0 0 42px rgba(51,209,126,.07);
  pointer-events: none;
}
body.pl-session-running .ringWrap { animation: plRingBreath 2.6s ease-in-out infinite; }
@keyframes plRingBreath { 0%,100%{ filter:drop-shadow(0 0 0 rgba(51,209,126,0)); } 50%{ filter:drop-shadow(0 0 20px rgba(51,209,126,.20)); } }

.countdown { display: none !important; }
body.pl-session-active .countdown { display: grid !important; }
.countdown svg { width: 292px !important; height: 292px !important; }
.track { stroke: rgba(255,255,255,.055) !important; }
.progress { stroke: var(--pl-green) !important; filter: drop-shadow(0 0 7px rgba(51,209,126,.30)) !important; }
.countdownLabel {
  bottom: -12px !important;
  color: var(--pl-faint) !important;
  font-size: 10.5px !important;
  font-weight: 680 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase;
}

.ring {
  width: 180px !important;
  height: 180px !important;
  border: 1px solid rgba(51,209,126,.32) !important;
  background: linear-gradient(145deg, #42dd89, #25bd6b) !important;
  box-shadow:
    0 20px 48px rgba(51,209,126,.20),
    0 2px 0 rgba(255,255,255,.18) inset,
    0 -10px 22px rgba(0,0,0,.12) inset !important;
  overflow: visible !important;
  transition: width .32s ease, height .32s ease, transform .12s ease, box-shadow .24s ease !important;
}
.ring::before {
  inset: -25px !important;
  background: radial-gradient(circle, rgba(51,209,126,.15), transparent 65%) !important;
  filter: none !important;
  opacity: .8 !important;
  animation: plStartPulse 3s ease-out infinite;
}
.ring::after { display: none !important; }
body.pl-session-active .ring {
  width: 252px !important;
  height: 252px !important;
  background:
    radial-gradient(circle at 50% 38%, rgba(51,209,126,.28), rgba(51,209,126,.06) 58%, rgba(0,0,0,.10) 100%),
    #111814 !important;
  border: 1px solid rgba(51,209,126,.42) !important;
  box-shadow:
    0 0 0 8px rgba(51,209,126,.055),
    0 25px 70px rgba(0,0,0,.50),
    0 0 54px rgba(51,209,126,.12) inset !important;
}
body.pl-session-active .ring::before { animation: none; opacity: .35 !important; }
.ring:active { transform: scale(.975); }
@keyframes plStartPulse { 0%{ transform:scale(.76); opacity:.35; } 75%,100%{ transform:scale(1.18); opacity:0; } }

.ringInner {
  width: 156px !important;
  height: 156px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 12px !important;
  transition: width .32s ease, height .32s ease !important;
}
body.pl-session-active .ringInner { width: 220px !important; height: 220px !important; }
.ringInner::before {
  inset: 26px !important;
  background: url('./logo_mark.png') center/contain no-repeat !important;
  opacity: .13 !important;
  filter: brightness(.18) saturate(.4) !important;
}
body.pl-session-active .ringInner::before {
  inset: 46px !important;
  opacity: .055 !important;
  filter: none !important;
}
.ringText { position: relative; z-index: 2; }
.ringText .big {
  color: var(--pl-green-dark);
  font-size: 16px !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase;
}
.ringText .small {
  color: rgba(7,26,15,.72) !important;
  margin-top: 7px !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  font-weight: 750 !important;
}
body.pl-session-active .ringText .big {
  color: var(--pl-text) !important;
  font-size: 24px !important;
  line-height: 1.02 !important;
  text-transform: none;
  letter-spacing: -.02em !important;
}
body.pl-session-active .ringText .small {
  color: var(--pl-muted) !important;
  margin-top: 10px !important;
  font-size: 12px !important;
  font-weight: 650 !important;
}
.nextStep {
  margin-top: 9px !important;
  color: var(--pl-red) !important;
  font-size: 11px !important;
  letter-spacing: .08em !important;
}
#breathIndicator {
  top: 9% !important;
  background: rgba(64,145,255,.92) !important;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 8px 22px rgba(32,100,230,.30) !important;
}

/* Buttons become calm home rows, then emergency controls after start */
.actionRow {
  width: min(100%, 520px) !important;
  margin: auto auto 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 9px !important;
}
.actionRow .btn {
  position: relative;
  min-width: 0 !important;
  min-height: 54px;
  padding: 13px 14px !important;
  border-radius: var(--pl-radius-sm) !important;
  border: 1px solid var(--pl-border) !important;
  background: var(--pl-surface-2) !important;
  color: var(--pl-text) !important;
  font-size: 13.5px !important;
  font-weight: 680 !important;
  justify-content: flex-start;
  box-shadow: 0 1px 0 rgba(255,255,255,.025) inset !important;
  animation: none !important;
  text-align: left;
}
.actionRow .btn::before {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 9px;
  background: var(--pl-surface-3);
  font-size: 15px;
  font-weight: 800;
}
#btnFindAED::before { content: "⌖"; color: var(--pl-green); }
#btnGuide::before { content: "▶"; color: var(--pl-muted); font-size: 11px; }
#btnCall911::before { content: "☎"; color: white; background: rgba(255,255,255,.12); }
#btnCall911 {
  grid-column: 1 / -1;
  order: 3;
  justify-content: center;
  background: rgba(239,75,75,.12) !important;
  border-color: rgba(239,75,75,.22) !important;
  color: #ff8585 !important;
}
body.pl-session-active .actionRow {
  margin-top: 4px !important;
}
body.pl-session-active #btnCall911 {
  order: -1;
  min-height: 58px;
  background: var(--pl-red) !important;
  border-color: var(--pl-red) !important;
  color: white !important;
  font-size: 15px !important;
  font-weight: 820 !important;
  box-shadow: 0 12px 28px rgba(239,75,75,.20) !important;
}
body.pl-session-active #btnFindAED,
body.pl-session-active #btnGuide {
  justify-content: center;
  color: var(--pl-text) !important;
}

.miniRow { width: min(100%, 520px); margin-top: 8px !important; }
.miniRow .miniBtn {
  min-width: 0;
  width: 100%;
  border: 0 !important;
  background: transparent !important;
  color: var(--pl-faint) !important;
  font-size: 11.5px !important;
  font-weight: 650 !important;
  padding: 8px !important;
}
body:not(.pl-session-active) .miniRow { display: none; }

#aedRetrievedBtn {
  width: min(100%, 520px) !important;
  margin: 8px auto 0 !important;
  border-radius: 12px !important;
  background: var(--pl-green-dim) !important;
  border: 1px solid rgba(51,209,126,.28) !important;
  color: var(--pl-green) !important;
}
#aedActiveMode { width: min(100%, 520px) !important; border-radius: 18px !important; }

#locationCard,
#aedPanel {
  width: min(100%, 620px) !important;
  border-radius: var(--pl-radius-md) !important;
  background: var(--pl-surface-2) !important;
  border: 1px solid var(--pl-border-strong) !important;
  box-shadow: none !important;
}
#aedPanel { padding: 14px !important; }
#aedBanner {
  border-radius: 15px !important;
  background: rgba(51,209,126,.075) !important;
  border: 1px solid rgba(51,209,126,.18) !important;
  box-shadow: none !important;
}
.aedPick {
  border-radius: 12px !important;
  background: var(--pl-surface-3) !important;
  border-color: var(--pl-border) !important;
}
#aedMap { border-radius: 15px !important; filter: saturate(.78) brightness(.90); }

/* Checklist — useful, but visually secondary */
.grid > aside.card > .row { border-bottom: 1px solid var(--pl-border); padding-bottom: 11px; }
.grid > aside.card #buildBadge { display: none; }
.checklist { gap: 7px !important; }
.step {
  border-radius: 12px !important;
  background: rgba(255,255,255,.018) !important;
  border-color: var(--pl-border) !important;
  padding: 10px 11px !important;
}
.step .meta .t { font-size: 12.5px; font-weight: 720 !important; }
.step .meta .d { font-size: 10.5px !important; color: var(--pl-faint) !important; font-weight: 560 !important; }
.step.done { background: rgba(51,209,126,.045) !important; border-color: rgba(51,209,126,.11) !important; }

/* CPR type choice */
.cprTypeModal {
  background: rgba(8,9,11,.91) !important;
  backdrop-filter: blur(18px);
}
.cprTypeCard {
  width: min(100%, 440px) !important;
  border-radius: 26px !important;
  background: #121418 !important;
  border: 1px solid var(--pl-border-strong) !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.55) !important;
  padding: 27px 20px 20px !important;
}
.cprTypeCard h2 { font-size: 22px !important; letter-spacing: -.02em; }
.cprTypeCard > p { color: var(--pl-muted) !important; }
.cprTypeButtons { gap: 9px !important; }
.cprTypeBtn {
  min-height: 112px !important;
  border-radius: 17px !important;
  background: var(--pl-surface-2) !important;
  border: 1px solid var(--pl-border-strong) !important;
  box-shadow: none !important;
}
.cprTypeBtn.adult { border-color: rgba(51,209,126,.30) !important; }
.cprTypeBtn.child { border-color: rgba(110,125,255,.30) !important; }
.cprTypeBtn.infant { border-color: rgba(236,72,153,.30) !important; }
.cprTypeBtn .label { font-size: 16px !important; }
.cprTypeBtn .age { color: var(--pl-muted) !important; font-size: 11px !important; }
.closeGuideBtn, .backGuideBtn, .minimizeGuideBtn {
  background: var(--pl-surface-3) !important;
  border-color: var(--pl-border-strong) !important;
  color: var(--pl-muted) !important;
}

/* Guide */
.cprGuide { background: rgba(8,9,11,.90) !important; backdrop-filter: blur(16px); }
.cprGuideContent {
  border-radius: 25px !important;
  background: #121418 !important;
  border: 1px solid var(--pl-border-strong) !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.55) !important;
}
.guideHeader { background: transparent !important; border-color: var(--pl-border) !important; }
.guideHeaderTitle { font-size: 15px !important; }
.videoContainer { background: #090a0c !important; border-radius: 18px !important; }
.cprVideoEl { object-fit: contain !important; background: #090a0c; }
.quickTip {
  border: 1px solid var(--pl-border) !important;
  background: var(--pl-surface-2) !important;
  color: var(--pl-muted) !important;
  border-radius: 999px !important;
}

/* AED modal */
.aedModal { background: rgba(8,9,11,.90) !important; backdrop-filter: blur(16px); }
.aedModalContent {
  max-width: 520px !important;
  max-height: min(86svh, 760px) !important;
  border-radius: 26px !important;
  background: #121418 !important;
  border: 1px solid var(--pl-border-strong) !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.55) !important;
}
.aedModalHeader { border-color: var(--pl-border) !important; padding: 20px 20px 15px !important; }
.aedModalHeader h2 { font-size: 17px !important; letter-spacing: .04em; }
.closeAEDModal { background: var(--pl-surface-3) !important; border-color: var(--pl-border-strong) !important; color: var(--pl-muted) !important; }
.aedModalList { padding: 12px 14px 18px !important; }
.aedModalItem {
  background: var(--pl-surface-2) !important;
  border: 1px solid var(--pl-border) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
}
.aedModalItem.selected { border-color: rgba(51,209,126,.30) !important; background: rgba(51,209,126,.07) !important; }
.aedModalItem .aedButton { border-radius: 11px !important; background: var(--pl-green) !important; color: var(--pl-green-dark) !important; }

/* Legal/info/admin modals */
.modalBack, #infoModal, #flagModal, #aedVideoModal { backdrop-filter: blur(14px); }
.modal, .infoModal-inner, .flagModal-inner, .aedModal-inner {
  border-radius: 24px !important;
  background: #121418 !important;
  border-color: var(--pl-border-strong) !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.55) !important;
}
.modalHead, .modalFoot { border-color: var(--pl-border) !important; }
.acceptBtnBig { background: var(--pl-green) !important; color: var(--pl-green-dark) !important; border-color: var(--pl-green) !important; }

footer {
  width: min(100%, 720px);
  margin: 0 auto;
  padding: 15px 18px 24px !important;
  color: var(--pl-faint);
  opacity: 1 !important;
  font-size: 10px !important;
}
footer .badgeBtn { background: transparent; border-color: transparent; min-height: 30px; font-size: 11px !important; color: var(--pl-faint); }

@media (max-width: 920px) {
  .wrap { max-width: 660px; }
  .grid { grid-template-columns: 1fr !important; }
  .grid > aside.card { display: none !important; }
  .grid > section.card { min-height: calc(100svh - 104px); }
}

@media (max-width: 560px) {
  .wrap { padding: 10px 10px 20px; }
  header { min-height: 43px; padding: 0 4px; }
  .brand .logo { height: 29px !important; max-width: 134px !important; }
  .topRight .portalLink, .topRight a { font-size: 10px !important; }
  .badgeBtn { min-height: 33px; min-width: 35px; padding: 7px 9px; }
  .grid > section.card {
    min-height: calc(100svh - 90px);
    border-radius: 24px !important;
    padding: 15px 14px 17px !important;
  }
  .homeHero { padding-top: 17px; }
  .homeHero h1 { font-size: 36px; }
  .homeHero p { font-size: 13px; }
  .pulseArea, body:not(.pl-session-active) .pulseArea { min-height: calc(100svh - 138px) !important; }
  .ringWrap { margin-top: 29px; }
  body.pl-session-active .ringWrap { width: 270px !important; height: 270px !important; margin-top: 13px; }
  body.pl-session-active .ring { width: 232px !important; height: 232px !important; }
  body.pl-session-active .ringInner { width: 204px !important; height: 204px !important; }
  body.pl-session-active .countdown svg { width: 270px !important; height: 270px !important; }
  body.pl-session-active .ringText .big { font-size: 22px !important; }
  .actionRow { gap: 8px !important; }
  .actionRow .btn { min-height: 52px; padding: 12px !important; font-size: 13px !important; }
  body.pl-session-active #btnCall911 { min-height: 56px; }
  .cprTypeButtons { grid-template-columns: 1fr !important; }
  .cprTypeBtn { min-height: 74px !important; flex-direction: row !important; justify-content: space-between !important; text-align: left !important; padding: 15px 17px !important; }
  .cprTypeBtn .age { text-align: right; }
  footer { padding-bottom: calc(20px + env(safe-area-inset-bottom)) !important; }
}

@media (max-height: 700px) and (max-width: 560px) {
  .homeHero { padding-top: 5px; }
  .homeHero .eyebrow { margin-bottom: 8px; }
  .homeHero h1 { font-size: 31px; }
  .homeHero p { margin-top: 8px; }
  .ringWrap { margin: 20px auto 13px; width: 190px !important; height: 190px !important; }
  .ring { width: 158px !important; height: 158px !important; }
  .ringInner { width: 140px !important; height: 140px !important; }
  body.pl-session-active .ringWrap { width: 235px !important; height: 235px !important; margin-top: 4px; }
  body.pl-session-active .ring { width: 202px !important; height: 202px !important; }
  body.pl-session-active .ringInner { width: 178px !important; height: 178px !important; }
  body.pl-session-active .countdown svg { width: 235px !important; height: 235px !important; }
  body.pl-session-active .ringText .big { font-size: 19px !important; }
  .actionRow .btn { min-height: 47px; padding: 10px 11px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
}


/* God-mode finishing layer */
.homeTrust {
  margin-top: 13px;
  color: var(--pl-faint);
  font-size: 10.5px;
  font-weight: 680;
  letter-spacing: .03em;
}
.homeTrust span { margin: 0 5px; color: rgba(51,209,126,.62); }
body:not(.pl-session-active) #ringBig { text-transform: uppercase; }
body:not(.pl-session-active) #ringSmall { max-width: 120px; margin-left:auto !important; margin-right:auto !important; }
body.pl-session-active .homeTrust { display:none; }
body.pl-session-paused .ring { border-color: rgba(240,166,61,.45) !important; }
body.pl-aed-active .ring { border-color: rgba(96,165,250,.5) !important; }
.sessionHeader .agePill[data-age="child"] { border-color:rgba(110,125,255,.25); color:#aeb8ff; background:rgba(110,125,255,.08); }
.sessionHeader .agePill[data-age="infant"] { border-color:rgba(236,72,153,.25); color:#f3a6cc; background:rgba(236,72,153,.08); }
.actionRow .btn { display:flex !important; align-items:center !important; }
body:not(.pl-session-active) .actionRow #btnCall911 { display:none !important; }
body:not(.pl-session-active) .actionRow { margin-top:auto !important; }
body:not(.pl-session-active) .linkRow { margin-top:10px; }
body.pl-session-active .linkRow { display:none; }
body:not(.pl-session-active) #locationCard,
body:not(.pl-session-active) #aedPanel { margin-top:12px; }
@media (max-width:920px){
  body.pl-session-active #aedPanel { display:none !important; }
}

/* ══════════ SECTION: godmode-v5.css ══════════ */
/* PulseLink God Mode v5 — refinement layer */
:root{
  --pl-green:#35dc82;
  --pl-green-soft:#7bf1aa;
  --pl-panel:#111419;
  --pl-panel-2:#171b20;
  --pl-line:rgba(255,255,255,.075);
}
body{background:radial-gradient(820px 480px at 50% -190px,rgba(53,220,130,.13),transparent 68%),#07090b!important}
.wrap{max-width:1080px;padding-top:12px}
header{max-width:720px;width:100%;margin:0 auto 10px}
.brand .logo{height:39px!important;max-width:176px!important}
.topRight .portalLink{font-size:11.5px!important;padding:8px 9px!important}
.grid>section.card{background:linear-gradient(180deg,rgba(18,21,26,.97),rgba(13,16,20,.97))!important;border-color:rgba(255,255,255,.085)!important;box-shadow:0 1px 0 rgba(255,255,255,.035) inset,0 30px 85px rgba(0,0,0,.48)!important}
body:not(.pl-session-active) .grid{grid-template-columns:minmax(0,680px)!important}
body:not(.pl-session-active) .grid>section.card{min-height:min(735px,calc(100svh - 92px));padding:22px 30px 20px!important}
.homeHero{padding:11px 8px 0}
.homeHero .eyebrow{font-size:10px;margin-bottom:14px;color:#727985}
.homeHero h1{font-size:clamp(37px,6vw,54px);font-weight:790;line-height:.98}
.homeHero p{font-size:14px;margin-top:15px}
.homeEmergencyNote{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin-top:18px;padding:9px 13px;border:1px solid rgba(255,255,255,.07);border-radius:999px;background:rgba(255,255,255,.026);color:#a6adb7;font-size:11px;font-weight:650;line-height:1.25}
.notePulse{width:7px;height:7px;border-radius:50%;background:var(--pl-green);box-shadow:0 0 0 5px rgba(53,220,130,.08)}
.homeTrust{margin-top:12px}
body:not(.pl-session-active) .pulseArea{min-height:650px!important}
.ringWrap{width:238px!important;height:238px!important;margin:31px auto 20px}
.ringWrap::before{inset:-8px;border-color:rgba(53,220,130,.16);box-shadow:0 0 58px rgba(53,220,130,.09)}
.ring{width:194px!important;height:194px!important;background:linear-gradient(145deg,#48e292,#2cc873)!important;box-shadow:0 24px 60px rgba(53,220,130,.23),0 2px 0 rgba(255,255,255,.22) inset,0 -13px 25px rgba(0,0,0,.13) inset!important}
.ringInner{width:170px!important;height:170px!important;padding:17px!important}
.ringInner::before{display:none!important}
.startMark{display:block;width:54px;height:54px;object-fit:contain;margin:0 auto 7px;opacity:.24;filter:brightness(0) saturate(100%)}
.ringText .big{font-size:17px!important;letter-spacing:.035em!important}
.ringText .small{font-size:10.5px!important;margin-top:5px!important}
body.pl-session-active .startMark{display:none}
body.pl-session-active .ringWrap{width:304px!important;height:304px!important;margin:13px auto 11px}
body.pl-session-active .ring{width:264px!important;height:264px!important}
body.pl-session-active .ringInner{width:232px!important;height:232px!important}
body.pl-session-active .countdown svg{width:304px!important;height:304px!important}
body.pl-session-active .ringText .big{font-size:25px!important}
.sessionCue{display:none;width:min(100%,520px);margin:2px auto 12px;padding:11px 14px;border:1px solid rgba(53,220,130,.15);border-radius:14px;background:rgba(53,220,130,.055);align-items:center;gap:12px;text-align:left}
body.pl-session-active .sessionCue{display:flex}
.cueBeat{width:11px;height:11px;border-radius:50%;background:var(--pl-green);box-shadow:0 0 0 6px rgba(53,220,130,.08);flex:0 0 auto;animation:cueBeat 545ms ease-out infinite}
@keyframes cueBeat{0%{transform:scale(.78);opacity:.75}45%{transform:scale(1.13);opacity:1}100%{transform:scale(.78);opacity:.75}}
body.pl-session-paused .cueBeat{animation:none;background:#f0a63d;box-shadow:0 0 0 6px rgba(240,166,61,.08)}
body.pl-aed-active .cueBeat{animation:none;background:#60a5fa;box-shadow:0 0 0 6px rgba(96,165,250,.08)}
.cueCopy{min-width:0;display:flex;flex-direction:column;gap:2px}
.cueCopy strong{font-size:12px;font-weight:790;color:#e9edf1;letter-spacing:.015em}
.cueCopy small{font-size:10.5px;color:#7f8792;font-weight:590;line-height:1.3}
.actionRow{width:min(100%,540px)!important;gap:10px!important}
.actionRow .btn{min-height:61px!important;padding:12px 14px!important;gap:12px!important}
.actionCopy{display:flex;min-width:0;flex-direction:column;gap:2px;text-align:left;line-height:1.15}
.actionCopy strong{font-size:13.5px;font-weight:760;color:inherit}
.actionCopy small{font-size:10px;font-weight:570;color:#757d87;white-space:normal}
body.pl-session-active #btnCall911 .actionCopy{text-align:center}
body.pl-session-active #btnCall911 .actionCopy small{color:rgba(255,255,255,.72)}
body.pl-session-active #btnFindAED .actionCopy small,body.pl-session-active #btnGuide .actionCopy small{display:none!important}
body.pl-session-active .actionRow .btn{min-height:57px!important}
body.pl-session-active #btnCall911{min-height:60px!important}
.sessionHeader{margin-top:1px}
.totalTimerRow{margin-top:10px}
.linkRow{opacity:.74}
footer{max-width:720px;margin-left:auto!important;margin-right:auto!important}
@media(max-width:720px){
  .wrap{padding:9px 10px 25px}
  header{padding:0 4px;margin-bottom:7px}
  .brand .logo{height:33px!important;max-width:148px!important}
  body:not(.pl-session-active) .grid>section.card{min-height:calc(100svh - 78px);padding:17px 14px 16px!important;border-radius:25px!important}
  .homeHero{padding-top:13px}
  .homeHero h1{font-size:39px}
  .homeEmergencyNote{max-width:94%;font-size:10.5px;padding:8px 11px;margin-top:16px}
  body:not(.pl-session-active) .pulseArea{min-height:calc(100svh - 119px)!important}
  .ringWrap{width:220px!important;height:220px!important;margin:25px auto 17px}
  .ring{width:180px!important;height:180px!important}
  .ringInner{width:158px!important;height:158px!important}
  .startMark{width:49px;height:49px}
  .actionRow .btn{min-height:57px!important;padding:11px 12px!important}
  .actionCopy strong{font-size:13px}
  body.pl-session-active .ringWrap{width:278px!important;height:278px!important}
  body.pl-session-active .ring{width:241px!important;height:241px!important}
  body.pl-session-active .ringInner{width:212px!important;height:212px!important}
  body.pl-session-active .countdown svg{width:278px!important;height:278px!important}
}
@media(max-width:390px){
  .homeHero h1{font-size:35px}
  .homeHero p{font-size:12.5px}
  .homeEmergencyNote{border-radius:14px}
  .actionRow{grid-template-columns:1fr!important}
  body:not(.pl-session-active) .actionRow{grid-template-columns:1fr 1fr!important}
  .actionCopy small{font-size:9.5px}
}
@media(max-height:720px) and (max-width:720px){
  .homeEmergencyNote{margin-top:10px}
  .homeTrust{margin-top:8px}
  .ringWrap{margin-top:16px;width:198px!important;height:198px!important}
  .ring{width:164px!important;height:164px!important}
  .ringInner{width:145px!important;height:145px!important}
  .startMark{width:42px;height:42px;margin-bottom:5px}
  .actionRow .btn{min-height:52px!important}
}
/* Keep the two pre-start tools close to the CPR control while the legal links
   settle at the bottom of the card. This avoids a large dead zone on phones. */
body:not(.pl-session-active) .actionRow{margin:24px auto 0!important}
body:not(.pl-session-active) .linkRow{margin-top:auto!important;padding-top:20px}

/* ══════════ SECTION: godmode-v6.css ══════════ */
/* PulseLink God Mode v6 — one clear action, resources on demand */

/* ──────────────────────────────────────────────────────────────
   CPR GUIDE: real docked picture-in-picture
   The guide no longer leaves a viewport-sized blur layer behind.
   ────────────────────────────────────────────────────────────── */
.cprGuide.minimized{
  inset:auto 12px calc(88px + env(safe-area-inset-bottom, 0px)) auto!important;
  width:126px!important;
  height:auto!important;
  min-height:0!important;
  padding:0!important;
  display:block!important;
  align-items:initial!important;
  justify-content:initial!important;
  overflow:visible!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  pointer-events:auto!important;
}
.cprGuide.minimized .cprGuideContent{
  width:126px!important;
  max-width:126px!important;
  max-height:none!important;
  margin:0!important;
  border-radius:15px!important;
  border-width:1px!important;
  box-shadow:0 18px 46px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.045)!important;
  contain:layout paint style!important;
}
.cprGuide.minimized .guideHeader{
  min-height:30px!important;
  padding:4px 5px!important;
  background:#11161a!important;
  border-bottom-color:rgba(255,255,255,.08)!important;
}
.cprGuide.minimized .closeGuideBtn{
  width:22px!important;
  height:22px!important;
  margin-left:auto!important;
  border-radius:7px!important;
  font-size:12px!important;
}
.cprGuide.minimized .guideBody{
  position:relative!important;
  overflow:hidden!important;
  border-radius:0 0 14px 14px!important;
}
.cprGuide.minimized .guideBody::after{
  content:"Tap to expand";
  position:absolute;
  left:7px;
  right:7px;
  bottom:7px;
  z-index:4;
  padding:5px 4px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(5,8,10,.80);
  color:rgba(255,255,255,.84);
  font-size:8px;
  font-weight:800;
  letter-spacing:.02em;
  text-align:center;
  pointer-events:none;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.cprGuide.minimized .videoContainer{
  border-radius:0 0 14px 14px!important;
}
@media(max-width:520px){
  .cprGuide.minimized{
    right:10px!important;
    bottom:calc(82px + env(safe-area-inset-bottom, 0px))!important;
    width:116px!important;
  }
  .cprGuide.minimized .cprGuideContent{
    width:116px!important;
    max-width:116px!important;
  }
}

/* ──────────────────────────────────────────────────────────────
   LOCATION: passive emergency resource, not another decision
   ────────────────────────────────────────────────────────────── */
#locationCard{
  position:relative;
}
#locCardTitle{
  color:#b8c0c9!important;
  text-transform:uppercase;
  letter-spacing:.075em!important;
  font-size:10px!important;
}
.locCard-helper{
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid rgba(255,255,255,.065);
  color:#737b85;
  font-size:10px;
  font-weight:650;
  line-height:1.45;
}
.locCard-copy{display:none!important}

/* ──────────────────────────────────────────────────────────────
   AED: one dominant route action; supporting options stay tucked away
   ────────────────────────────────────────────────────────────── */
.btnRoute{
  min-height:49px!important;
  border-color:rgba(53,220,130,.48)!important;
  background:linear-gradient(180deg,rgba(53,220,130,.24),rgba(53,220,130,.13))!important;
  color:#77efaa!important;
  box-shadow:0 12px 30px rgba(53,220,130,.08)!important;
}
.btnRoute:active{transform:translateY(1px) scale(.995)!important}

.aedModalHeader{
  align-items:flex-start!important;
  gap:16px!important;
}
.aedModalHeaderCopy{min-width:0;flex:1}
.aedModalSafety{
  margin-top:5px;
  color:#8c949e;
  font-size:11px;
  font-weight:700;
  line-height:1.35;
}
.aedModalContent{
  max-width:430px!important;
}
.aedModalList{
  padding-top:14px!important;
}
.aedModalItem:first-child{
  border-color:rgba(53,220,130,.34)!important;
  background:linear-gradient(180deg,rgba(53,220,130,.065),rgba(255,255,255,.025))!important;
  box-shadow:0 18px 45px rgba(0,0,0,.20)!important;
  cursor:default!important;
}
.aedModal:not(.resources-open) .aedModalList .aedModalItem ~ .aedModalItem{
  display:none!important;
}
.aedModal:not(.resources-open) .btnFloorPlan,
.aedModal:not(.resources-open) .aedCardMapHint{
  display:none!important;
}
.aedPrimaryDirection{
  width:100%!important;
  min-height:52px!important;
  padding:14px 16px!important;
  border-color:rgba(53,220,130,.62)!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#37d982,#25b96a)!important;
  color:#06120b!important;
  box-shadow:0 16px 34px rgba(53,220,130,.18),0 1px 0 rgba(255,255,255,.30) inset!important;
  font-size:14px!important;
  font-weight:900!important;
  letter-spacing:.045em!important;
}
.aedPrimaryDirection:active{transform:translateY(1px) scale(.995)}
.aedAltDirection{
  background:rgba(53,220,130,.10)!important;
  border-color:rgba(53,220,130,.30)!important;
  color:#75e9a6!important;
}
.aedResourcesToggle{
  width:100%;
  min-height:44px;
  margin:0;
  padding:11px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  background:rgba(255,255,255,.028);
  color:#8e97a1;
  font-family:inherit;
  font-size:11px;
  font-weight:760;
  cursor:pointer;
}
.aedResourcesToggle:hover{background:rgba(255,255,255,.05);color:#b6bec7}
.resourceChevron{font-size:16px;line-height:1;transition:transform .18s ease}
.aedModal.resources-open .resourceChevron{transform:rotate(180deg)}
.aedModal.resources-open .aedModalItem:first-child{
  cursor:pointer!important;
}
.aedModal.resources-open #aedModalMapWrapper{
  margin-top:2px;
  padding:0 14px 14px!important;
  border-bottom:0!important;
}
.aedMapUnavailable{
  padding:14px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  background:rgba(255,255,255,.03);
  color:#8c949e;
  text-align:center;
  font-size:11px;
  font-weight:700;
}
.aedCardMapHint{opacity:.82}

/* Keep tiny database metadata available without competing with directions. */
#aedMeta{
  opacity:.56!important;
  font-size:9px!important;
}

@media(max-width:520px){
  .aedModalContent{max-width:none!important}
  .aedModalHeader{padding:18px 18px 13px!important}
  .aedModalList{padding:12px 12px 16px!important}
  .aedPrimaryDirection{min-height:55px!important}
}

/* ══════════ SECTION: godmode-v7.css ══════════ */
/* PulseLink God Mode v7 — the complete emergency view, without extra decisions */

/* ──────────────────────────────────────────────────────────────
   LIVE EMERGENCY SNAPSHOT
   Address + closest AED + mini-map stay visible while CPR runs.
   The map is the single entry point to full AED directions.
   ────────────────────────────────────────────────────────────── */
#liveEmergencySnapshot{
  display:none;
  width:min(100%,560px);
  margin:2px auto 11px;
  grid-template-columns:minmax(0,1.15fr) minmax(150px,.85fr);
  gap:10px;
  padding:10px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:17px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018));
  box-shadow:0 16px 38px rgba(0,0,0,.18);
  text-align:left;
}
body.pl-session-active #liveEmergencySnapshot{display:grid}
.liveSnapshotCopy{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:5px 5px 5px 7px;
}
.liveSnapshotAddress{
  color:#f2f5f7;
  font-size:13px;
  font-weight:820;
  line-height:1.28;
  overflow-wrap:anywhere;
}
.liveSnapshotAed{
  margin-top:7px;
  color:#6ce6a0;
  font-size:10.5px;
  font-weight:760;
  line-height:1.35;
}
.liveSnapshotLegal{
  margin-top:8px;
  color:#68717c;
  font-size:8.5px;
  font-weight:620;
  line-height:1.38;
}
.liveMiniMapShell{
  position:relative;
  min-height:138px;
  overflow:hidden;
  border:1px solid rgba(53,220,130,.22);
  border-radius:13px;
  background:#11171a;
  cursor:pointer;
  isolation:isolate;
  -webkit-tap-highlight-color:transparent;
}
.liveMiniMapShell:focus-visible{
  outline:2px solid rgba(53,220,130,.75);
  outline-offset:2px;
}
#emergencyMiniMap{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:radial-gradient(circle at 50% 50%,rgba(53,220,130,.07),transparent 65%),#11171a;
}
.liveMiniMapFallback{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  padding:16px;
  color:#76808a;
  font-size:9.5px;
  font-weight:740;
  line-height:1.35;
  text-align:center;
}
.liveMiniMapCaption{
  position:absolute;
  left:7px;
  right:7px;
  bottom:7px;
  z-index:4;
  padding:5px 7px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  background:rgba(7,10,12,.82);
  color:rgba(255,255,255,.78);
  font-size:8px;
  font-weight:780;
  letter-spacing:.02em;
  text-align:center;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.liveMiniMapShell .leaflet-control-container{display:none!important}
.liveMiniMapShell .leaflet-pane{pointer-events:none!important}

/* The snapshot replaces the larger duplicate address card during an incident. */
body.pl-session-active #locationCard{display:none!important}

/* The live map already provides AED access. Keep the active control row to
   the two decisions that still matter: call and CPR guide. */
body.pl-session-active #btnFindAED{display:none!important}
body.pl-session-active #btnGuide{grid-column:1/-1!important}

/* Frozen video is intentional when CPR pauses; make that state explicit. */
body.pl-session-paused .cprGuide.minimized .guideBody::after{
  content:"CPR paused"!important;
  color:#f3bd72!important;
  border-color:rgba(243,189,114,.25)!important;
}
body.pl-aed-active .cprGuide.minimized .guideBody::after{
  content:"Follow AED"!important;
  color:#9fc6ff!important;
  border-color:rgba(96,165,250,.28)!important;
}

/* ──────────────────────────────────────────────────────────────
   POST-EVENT SUPPORT
   Appears only after the user deliberately ends an active session.
   ────────────────────────────────────────────────────────────── */
.supportResourceCard{
  padding:15px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:15px;
  background:linear-gradient(180deg,rgba(96,165,250,.075),rgba(255,255,255,.022));
  text-align:left;
}
.supportResourceEyebrow,.postEventEyebrow{
  color:#84aee9;
  font-size:9px;
  font-weight:850;
  letter-spacing:.095em;
  text-transform:uppercase;
}
.supportResourceTitle{
  margin-top:6px;
  color:#f0f3f6;
  font-size:14px;
  font-weight:850;
  line-height:1.3;
}
.supportResourceText{
  margin-top:6px;
  color:#8d97a3;
  font-size:11px;
  font-weight:620;
  line-height:1.5;
}
.supportPrimaryLink,.postEventPrimary{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:46px;
  margin-top:13px;
  padding:11px 14px;
  border:1px solid rgba(96,165,250,.38);
  border-radius:11px;
  background:rgba(96,165,250,.14);
  color:#b9d7ff;
  font-family:inherit;
  font-size:12px;
  font-weight:820;
  text-decoration:none;
  text-align:center;
}
.supportCrisisLine,.postEventCrisis{
  margin-top:10px;
  color:#747e89;
  font-size:9.5px;
  font-weight:650;
  line-height:1.45;
  text-align:center;
}
.supportCrisisLine a,.postEventCrisis a{color:#b9d7ff;font-weight:850;text-decoration:none}
.infoModal-email{text-decoration:none!important}

#postEventModal{
  display:none;
  position:fixed;
  inset:0;
  z-index:6000;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(4,7,9,.90);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
#postEventModal.show{display:flex}
.postEvent-inner{
  width:100%;
  max-width:430px;
  padding:28px 24px 22px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:22px;
  background:linear-gradient(180deg,#151b21,#0f1419);
  box-shadow:0 30px 90px rgba(0,0,0,.62);
  text-align:center;
  animation:postEventIn .28s cubic-bezier(.22,1,.36,1);
}
@keyframes postEventIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.postEventMark{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin:0 auto 14px;
  border:1px solid rgba(53,220,130,.30);
  border-radius:50%;
  background:rgba(53,220,130,.10);
  color:#69e6a0;
  font-size:19px;
  font-weight:900;
}
.postEventTitle{
  margin-top:7px;
  color:#f3f5f7;
  font-size:26px;
  font-weight:850;
  letter-spacing:-.025em;
}
.postEventBody{
  margin-top:11px;
  color:#abb3bc;
  font-size:13px;
  font-weight:650;
  line-height:1.55;
}
.postEventFirstStep{
  margin-top:13px;
  padding:11px 12px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:12px;
  background:rgba(255,255,255,.025);
  color:#7f8994;
  font-size:10.5px;
  font-weight:630;
  line-height:1.48;
}
.postEventPrimary{
  min-height:50px;
  margin-top:16px;
  background:linear-gradient(180deg,rgba(96,165,250,.24),rgba(96,165,250,.13));
  color:#c8dfff;
}
.postEventHome{
  width:100%;
  margin-top:15px;
  padding:10px;
  border:0;
  background:transparent;
  color:#707985;
  font-family:inherit;
  font-size:11px;
  font-weight:740;
  cursor:pointer;
}

@media(max-width:520px){
  #liveEmergencySnapshot{
    width:100%;
    grid-template-columns:1fr;
    gap:8px;
    padding:10px;
    border-radius:15px;
  }
  .liveSnapshotCopy{padding:2px 2px 2px 3px}
  .liveSnapshotAddress{font-size:14px}
  .liveSnapshotAed{font-size:11.5px;margin-top:6px}
  .liveSnapshotLegal{font-size:9px;margin-top:6px;line-height:1.4}
  .liveMiniMapShell{min-height:130px;border-radius:12px}
  .postEvent-inner{padding:24px 18px 18px;border-radius:20px}
  .postEventTitle{font-size:23px}
}

/* ══════════ SECTION: godmode-v8.css ══════════ */
/* PulseLink God Mode v8 — map-first emergency navigation and calmer recovery support */

/* A clear, non-marketing opening statement. */
#homeHeadline{max-width:600px}
#homeTagline{max-width:520px}

/* The mini-map is a visual control, so make the enlargement intent unmistakable. */
.liveMiniMapCaption{
  color:#d9f8e6;
  border-color:rgba(53,220,130,.24);
  background:rgba(7,12,10,.88);
}
.liveMiniMapShell::after{
  content:"↗";
  position:absolute;
  top:7px;
  right:7px;
  z-index:5;
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(7,10,12,.78);
  color:#dce5e0;
  font-size:11px;
  font-weight:900;
  backdrop-filter:blur(8px);
}

/* Map-first modal: tapping the live mini-map opens a true enlarged map, not a text-first card. */
.aedModal.map-focus .aedModalContent{
  width:min(94vw,720px)!important;
  max-width:720px!important;
  max-height:min(92svh,860px)!important;
}
.aedModal.map-focus .aedModalHeader{
  padding-bottom:12px!important;
}
.aedModal.map-focus #aedModalMapWrapper{
  display:block!important;
  padding:0 14px 12px!important;
  margin:0!important;
}
.aedModal.map-focus #aedModalMapContainer{
  height:min(48svh,430px)!important;
  min-height:310px!important;
  border:1px solid rgba(53,220,130,.30)!important;
  border-radius:16px!important;
}
.aedModal.map-focus .aedModalList{
  padding-top:0!important;
}
.aedModal.map-focus .aedModalItem:first-child{
  display:block!important;
  margin-top:0!important;
}
.aedModal.map-focus .aedModalItem:first-child .aedCardMapHint{
  display:none!important;
}
.aedModal.map-focus .aedResourcesToggle{
  margin-top:2px;
}
.aedModal.map-focus .leaflet-control-zoom a{
  background:#171c20!important;
  color:#e9f0ec!important;
  border-color:rgba(255,255,255,.10)!important;
}
.aedModal.map-focus .leaflet-control-attribution{
  background:rgba(8,10,12,.78)!important;
  color:#8d969f!important;
  font-size:8px!important;
}

/* Recovery resource is intentionally framed around a traumatic event, not a broad agency category. */
.supportPrimaryLink,.postEventPrimary{
  border-color:rgba(118,171,241,.34);
  background:linear-gradient(180deg,rgba(92,148,225,.20),rgba(92,148,225,.10));
}

@media(max-width:600px){
  .aedModal.map-focus{align-items:flex-end!important;padding:0!important}
  .aedModal.map-focus .aedModalContent{
    width:100%!important;
    max-height:94svh!important;
    border-radius:24px 24px 0 0!important;
  }
  .aedModal.map-focus #aedModalMapContainer{
    height:42svh!important;
    min-height:285px!important;
  }
}

/* ══════════ SECTION: godmode-v9.css ══════════ */
/* PulseLink God Mode v9 — deliberate stop control + movable resource docks */

/* ──────────────────────────────────────────────────────────────
   ACTIVE SESSION CONTROLS
   Pause/resume is reversible. Stopping CPR is a separate action
   that ends the incident and opens post-event support.
   ────────────────────────────────────────────────────────────── */
.sessionControlRow{
  width:min(100%,560px);
  margin-left:auto;
  margin-right:auto;
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:8px!important;
}
.sessionControlRow .miniBtn{
  min-height:42px;
  margin:0!important;
  border-radius:12px!important;
  font-size:11px!important;
  letter-spacing:.015em;
}
.sessionPauseBtn{
  border-color:rgba(255,255,255,.15)!important;
  background:rgba(255,255,255,.055)!important;
  color:#bac1c8!important;
}
.sessionEndBtn{
  display:none!important;
  border-color:rgba(248,113,113,.30)!important;
  background:rgba(248,113,113,.075)!important;
  color:#d39a9a!important;
}
.sessionEndHint{
  display:none;
  width:min(100%,560px);
  margin:6px auto 0;
  color:#656e78;
  font-size:8.5px;
  font-weight:650;
  line-height:1.4;
  text-align:center;
}
body.pl-session-active .sessionEndBtn{display:inline-flex!important;justify-content:center}
body.pl-session-active .sessionEndHint{display:block}
body:not(.pl-session-active) .sessionControlRow{grid-template-columns:1fr}
body:not(.pl-session-active) .sessionPauseBtn{display:none!important}
body.pl-session-paused .sessionPauseBtn{
  border-color:rgba(53,220,130,.28)!important;
  background:rgba(53,220,130,.075)!important;
  color:#70dea0!important;
}
.sessionEndBtn:hover{
  border-color:rgba(248,113,113,.36)!important;
  background:rgba(248,113,113,.085)!important;
  color:#d5a0a0!important;
}

/* ──────────────────────────────────────────────────────────────
   MOVABLE DOCKS
   Both minimized resources use viewport coordinates stored in CSS
   variables. The header is the drag handle; tapping the content
   still expands it.
   ────────────────────────────────────────────────────────────── */
.cprGuide.minimized{
  left:var(--dock-x,auto)!important;
  top:var(--dock-y,auto)!important;
  right:auto!important;
  bottom:auto!important;
  touch-action:none;
}
.cprGuide.minimized .guideHeader{
  position:relative;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.cprGuide.minimized .guideHeader::before{
  content:"⠿";
  display:grid;
  place-items:center;
  width:25px;
  height:22px;
  color:#68727c;
  font-size:13px;
  line-height:1;
}
.cprGuide[data-dock-dragging="true"] .guideHeader{cursor:grabbing}
.cprGuide.minimized .closeGuideBtn{margin-left:auto!important}

.aedModalHeaderActions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-shrink:0;
}
.minimizeAEDModal{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background:rgba(255,255,255,.055);
  color:#a7b0ba;
  font:900 18px/1 inherit;
  cursor:pointer;
}
.minimizeAEDModal:hover{background:rgba(255,255,255,.10);color:#dce3e9}
.aedDockSummary{display:none}

.aedModal.minimized{
  left:var(--dock-x,10px)!important;
  top:var(--dock-y,10px)!important;
  right:auto!important;
  bottom:auto!important;
  width:230px!important;
  height:auto!important;
  padding:0!important;
  display:block!important;
  align-items:initial!important;
  justify-content:initial!important;
  overflow:visible!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  animation:none!important;
  touch-action:none;
}
.aedModal.minimized .aedModalContent{
  width:230px!important;
  max-width:230px!important;
  max-height:none!important;
  border:1px solid rgba(53,220,130,.35)!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#151b20,#101419)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.66),0 0 0 1px rgba(255,255,255,.04)!important;
  animation:none!important;
  cursor:pointer;
}
.aedModal.minimized .aedModalHeader{
  position:relative;
  min-height:62px;
  padding:8px 8px 8px 10px!important;
  gap:8px!important;
  align-items:center!important;
  border-bottom:0!important;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.aedModal.minimized .aedModalHeader::before{
  content:"⠿";
  display:grid;
  place-items:center;
  width:20px;
  color:#66717b;
  font-size:13px;
  flex-shrink:0;
}
.aedModal[data-dock-dragging="true"] .aedModalHeader{cursor:grabbing}
.aedModal.minimized #aedModalHeading{
  margin:0!important;
  color:#66df99!important;
  font-size:8px!important;
  font-weight:850!important;
  letter-spacing:.105em!important;
  text-transform:uppercase;
}
.aedModal.minimized .aedModalSafety{display:none!important}
.aedModal.minimized .aedDockSummary{
  display:block;
  max-width:135px;
  margin-top:3px;
  overflow:hidden;
  color:#eef3f0;
  font-size:11px;
  font-weight:820;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.aedModal.minimized .aedDockSummary::after{
  content:"Tap to expand";
  display:block;
  margin-top:2px;
  color:#6d7781;
  font-size:7.5px;
  font-weight:680;
  letter-spacing:.02em;
}
.aedModal.minimized .minimizeAEDModal{display:none!important}
.aedModal.minimized .closeAEDModal{
  width:25px!important;
  height:25px!important;
  border:1px solid rgba(248,113,113,.30)!important;
  background:rgba(248,113,113,.08)!important;
  color:#b98585!important;
  font-size:12px!important;
  box-shadow:none!important;
}
.aedModal.minimized #aedModalMapWrapper,
.aedModal.minimized .aedModalList{display:none!important}

@media(max-width:520px){
  .sessionControlRow{gap:7px!important}
  .sessionControlRow .miniBtn{min-height:40px;font-size:10px!important}
  .sessionEndHint{font-size:7.8px;padding:0 10px}
  .aedModal.minimized,
  .aedModal.minimized .aedModalContent{
    width:212px!important;
    max-width:212px!important;
  }
  .aedModal.minimized .aedDockSummary{max-width:121px}
}

/* ══════════ SECTION: godmode-v10.css ══════════ */
/** PulseLink God Mode v10 — stronger post-event handoff + reversible stop */
#postEventModal{z-index:12000}
.postEvent-inner{max-width:440px;padding:27px 24px 21px}
.postEventTitle{font-size:28px;font-weight:900;letter-spacing:-.035em}
.postEventBody{margin-top:10px;color:#d4dae0;font-size:14px;font-weight:780;line-height:1.45}
.postEventFirstStep{
  margin-top:9px;
  padding:0;
  border:0;
  background:transparent;
  color:#8d98a4;
  font-size:11.5px;
  font-weight:680;
  line-height:1.45;
}
.postEventResume{
  width:100%;
  min-height:52px;
  margin-top:19px;
  border:1px solid rgba(53,220,130,.48);
  border-radius:13px;
  background:linear-gradient(180deg,#38dd86,#27c875);
  box-shadow:0 12px 30px rgba(39,200,117,.16);
  color:#06120c;
  font-family:inherit;
  font-size:14px;
  font-weight:950;
  letter-spacing:.01em;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.postEventResume:active{transform:translateY(1px)}
.postEventPrimary{margin-top:10px;min-height:48px}
.postEventCrisis{margin-top:11px}
.postEventHome{margin-top:9px;color:#8b949f;font-size:11.5px}
.postEventHome:hover{color:#c6ced7}
@media(max-width:520px){
  .postEvent-inner{padding:24px 18px 18px}
  .postEventTitle{font-size:25px}
  .postEventBody{font-size:13.5px}
  .postEventResume{min-height:54px;font-size:15px}
}

/* ══════════ SECTION: godmode-v11.css ══════════ */
/* PulseLink God Mode v11 — release-candidate legal and accessibility polish */
.linkRow{flex-wrap:wrap}
.infoModal-links{display:flex;flex-direction:column;align-items:center;gap:7px;margin-top:8px}
.modalBody a{color:#68a8ff}
@media(max-width:520px){
  .modal{max-height:calc(100dvh - 24px)}
  .modalBody{overscroll-behavior:contain}
}
/* Required map attribution stays visible without competing with emergency content. */
#liveMiniMap .leaflet-control-attribution{font-size:7px!important;line-height:1.15!important;padding:1px 3px!important;background:rgba(8,12,16,.72)!important;color:rgba(255,255,255,.72)!important}
#liveMiniMap .leaflet-control-attribution a{color:rgba(255,255,255,.9)!important}

/* ══════════ SECTION: godmode-v12.css ══════════ */
/** PulseLink God Mode v12 — simplify first, disclose details only when requested */
.wrap{max-width:820px!important}
.grid{grid-template-columns:minmax(0,760px)!important;justify-content:center!important}
.grid>aside.card{display:none!important}
.grid>section.card{min-height:auto!important;overflow:hidden!important}

/* The emergency snapshot is now the only inline AED surface. */
#aedPanel{display:none!important}
body.pl-session-active #statusLine:empty{display:none!important}

/* Compact active view: CPR, cadence, address/map, emergency controls. */
body.pl-session-active .pulseArea{min-height:auto!important;padding-bottom:4px!important}
body.pl-session-active .sessionHeader{margin-top:0!important}
body.pl-session-active .ringWrap{margin-top:9px!important;margin-bottom:8px!important}
body.pl-session-active .sessionCue{margin-bottom:9px!important}
body.pl-session-active #liveEmergencySnapshot{margin-bottom:9px!important}
body.pl-session-active .actionRow{margin-top:0!important}
body.pl-session-active .sessionControlRow{margin-top:5px!important}
body.pl-session-active .sessionEndHint{margin-top:3px!important}
body.pl-session-active .linkRow{display:none!important}

/* Expanded AED view replaces the mini-map visually; no two-map effect. */
.aedModal:not(.minimized){background:rgba(5,7,9,.985)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.pl-aed-modal-open #liveEmergencySnapshot{visibility:hidden!important}
body.pl-aed-modal-open .cprGuide.minimized{opacity:.18!important;pointer-events:none!important}

/* Large map + nearest AED first. Additional AEDs stay behind one control. */
.aedModal.map-focus:not(.resources-open) .aedModalList .aedModalItem~.aedModalItem{display:none!important}
.aedModal.map-focus .aedResourcesToggle{display:flex!important}
.aedModal.map-focus #aedModalMapWrapper{display:block!important}
.aedModal.map-focus .aedModalContent{max-height:min(760px,calc(100dvh - 30px))!important}
.aedModal.map-focus .aedModalList{padding-top:10px!important}
.aedModal.map-focus .aedModalItem:first-child{margin-bottom:8px!important}

@media(min-width:921px){
  body.pl-session-active .grid>section.card{padding:14px 20px 16px!important}
  body.pl-session-active .ringWrap{width:286px!important;height:286px!important}
  body.pl-session-active .ring{width:248px!important;height:248px!important}
  body.pl-session-active .ringInner{width:218px!important;height:218px!important}
  body.pl-session-active .countdown svg{width:286px!important;height:286px!important}
  #liveEmergencySnapshot{width:min(100%,590px)!important}
}
@media(max-width:560px){
  .grid{grid-template-columns:1fr!important}
  body.pl-session-active #liveEmergencySnapshot{margin-bottom:8px!important}
  .aedModal.map-focus .aedModalContent{max-height:100dvh!important}
}

/* ══════════ SECTION: v13-aed-map-modernization ══════════
   The AED map modal was the last surface still wearing the old design.
   app.js v13 ships .aedQuickChip / .aedQuickPicker markup with NO css —
   chips rendered as unstyled browser buttons. This section brings the
   modal into the design system: calm header, segmented AED picker with
   one clear recommendation, tinted (not solid) semantic badges. */

/* Header: title reads as calm eyebrow + the guidance line breathes */
#aedModalHeading{
  font-size:12px!important;
  font-weight:850!important;
  letter-spacing:.11em!important;
  color:#8f98a2!important;
}
.aedModalSafety{margin-top:7px!important}

/* Picker: "which AED" as a segmented choice — closest is pre-selected,
   the alternative is present but not competing */
.aedQuickPickerWrap{margin:2px 0 12px}
.aedQuickPickerTitle{
  margin-bottom:8px;
  color:#7b8490;
  font-size:9.5px;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.aedQuickPicker{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.aedQuickChip{
  flex:1 1 46%;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:13px;
  background:rgba(255,255,255,.028);
  color:#aab1ba;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.aedQuickChip strong{
  font-size:9px;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:#79828d;
}
.aedQuickChip span{
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12.5px;
  font-weight:780;
  color:#dde2e7;
}
.aedQuickChip:active{transform:scale(.985)}
.aedQuickChip.active{
  border-color:rgba(53,220,130,.55);
  background:rgba(53,220,130,.10);
}
.aedQuickChip.active strong{color:#5be297}
.aedQuickChip.active span{color:#eafbf1}

/* Badges inside AED cards: solid shouting blocks → tinted pills.
   Same semantic hues (green = open/ready, amber = restricted), calmer
   delivery. Attribute selectors override app.js's inline styles. */
.aedModalItem .badge[style*="rgba(37,168,95"]{
  background:rgba(53,220,130,.13)!important;
  border-color:rgba(53,220,130,.38)!important;
  color:#6ce6a0!important;
}
.aedModalItem .badge[style*="rgba(255,152,0"]{
  background:rgba(240,166,61,.13)!important;
  border-color:rgba(240,166,61,.40)!important;
  color:#f0b866!important;
}
.aedModalItem .badge{
  border-radius:999px!important;
  font-size:9.5px!important;
  font-weight:800!important;
  letter-spacing:.05em!important;
  padding:4px 10px!important;
}
/* Amber distance chip inside the card → quiet neutral info */
.aedModalItem div[style*="rgba(255,210,74"]{
  background:rgba(255,255,255,.045)!important;
  border-color:rgba(255,255,255,.13)!important;
  color:#c6ccd3!important;
  font-weight:750!important;
}

/* "Location recently updated" notice: keep amber semantics, drop the shout */
.aedTempMoveWarning{
  border:1px solid rgba(240,166,61,.32)!important;
  border-radius:13px!important;
  background:rgba(240,166,61,.075)!important;
  color:#e8c690!important;
  font-size:11.5px!important;
  font-weight:650!important;
  line-height:1.5!important;
  padding:11px 13px!important;
}
.aedTempMoveWarning strong{color:#f2d3a2;font-weight:820}

/* Card title: large but not heavyweight */
.aedModalItem h3{
  font-weight:790!important;
  letter-spacing:-.015em!important;
}

/* ══════════ SECTION: v14-age-chooser-readability ══════════
   Adult / Child / Infant must be readable in one glance by a panicked
   person. Bigger targets, one bold word each, the age rule in plain
   high-contrast text (accent color stays on the label only — tinted
   small text was hurting readability). Age copy corrected to AHA
   definitions: the old "8+ / 55 lbs" line was the AED pediatric-pad
   threshold, not the CPR technique boundary (that boundary is puberty). */
.cprTypeCard{padding:26px 20px 22px!important}
.cprTypeCard h2{
  font-size:20px!important;
  font-weight:850!important;
  letter-spacing:-.015em!important;
}
.cprTypeCard p{
  font-size:12.5px!important;
  font-weight:650!important;
  opacity:.6!important;
  margin-bottom:18px!important;
}
.cprTypeButtons{gap:10px!important}
.cprTypeBtn{
  min-height:112px;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:16px 10px!important;
  border-radius:17px!important;
  border-width:1.5px!important;
  transition:transform .12s ease, box-shadow .15s ease!important;
}
.cprTypeBtn .label{
  font-size:21px;
  font-weight:850;
  letter-spacing:-.015em;
  line-height:1;
}
.cprTypeBtn .age{
  font-size:12px;
  font-weight:680;
  line-height:1.35;
  color:rgba(255,255,255,.82);
  letter-spacing:.005em;
}
.cprTypeBtn:hover{transform:none!important}      /* calm: no hover hop */
.cprTypeBtn:active{transform:scale(.97)!important}
.cprTypeBtn:focus-visible{
  outline:2.5px solid rgba(255,255,255,.65);
  outline-offset:3px;
}
@media(max-width:420px){
  .cprTypeBtn{
    min-height:76px;
    flex-direction:row;
    justify-content:space-between;
    padding:16px 18px!important;
  }
  .cprTypeBtn .label{font-size:19px}
  .cprTypeBtn .age{text-align:right}
}
