:root {
  --brand: #C26148;
  --brand-hover: #E8734A;
  --bg: #FFFFFF;
  --bg2: #F7F8FA;
  --ink: #1A1A2E;
  --muted: #6B7280;
  --border: #E5E7EB;
  --brand-tint: rgba(194, 97, 72, 0.08);
  --brand-tint-strong: rgba(194, 97, 72, 0.14);
  --brand-border: rgba(194, 97, 72, 0.32);
  --success: #C26148;
  --success-bg: rgba(194, 97, 72, 0.08);
  --danger: #dc2626;
  --danger-border: rgba(220, 38, 38, 0.28);
}

* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, Inter, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .brand {
  font-family: -apple-system, BlinkMacSystemFont, Inter, sans-serif;
  color: var(--ink);
}

h1 {
  font-size: 40px;
  line-height: 1.15;
  letter-spacing: -0.025em;
  margin: 8px 0 14px;
  font-weight: 700;
}

h2 {
  font-size: 21px;
  line-height: 1.35;
  letter-spacing: -0.015em;
  margin: 0 0 10px;
  font-weight: 700;
}

h3 {
  font-size: 18px;
  line-height: 1.35;
  margin: 0;
  font-weight: 600;
}

p {
  margin: 0 0 16px;
}

a {
  color: var(--brand);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

button, input {
  font: inherit;
}

button, a, input {
  touch-action: manipulation;
}

button {
  cursor: pointer;
}

button:disabled {
  opacity: 0.55;
  cursor: wait;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

header {
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  position: sticky;
  top: 0;
  z-index: 100;
}

.header-inner {
  max-width: none;
  margin: 0 auto;
  display: flex;
  align-items: center;
  padding: 16px 24px;
  min-height: 64px;
  gap: 12px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 19px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.02em;
}

.brand:hover {
  text-decoration: none;
}

.brand svg,
.brand .brand-mark {
  width: 30px;
  height: 34px;
  flex-shrink: 0;
}

.brand-guard {
  color: var(--brand);
}

.brand small {
  display: block;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-top: 2px;
  color: var(--muted);
}

.header-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 20px;
}

.account-email {
  font-size: 13px;
  color: var(--muted);
}

.stage {
  font-size: 11px;
  font-weight: 600;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 2px 10px;
  color: var(--muted);
}

.text-button {
  background: none;
  border: 0;
  color: var(--brand);
  padding: 8px 0;
  font-size: 14px;
  font-weight: 600;
  transition: color 0.15s ease;
}

.text-button:hover {
  color: var(--brand-hover);
  text-decoration: none;
}

.tabs {
  max-width: none;
  margin: 0 auto;
  padding: 8px 24px 0;
  display: flex;
  gap: 28px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
}

.tabs a {
  padding: 12px 0;
  color: var(--muted);
  font-weight: 600;
  font-size: 14px;
  border-bottom: 2px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.tabs a:hover {
  color: var(--ink);
  text-decoration: none;
}

.tabs a[aria-current] {
  color: var(--brand);
  border-color: var(--brand);
}

main {
  max-width: 1140px;
  padding: 0 24px;
  margin: 0 auto;
  min-height: calc(100vh - 230px);
}

.hero {
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  gap: 60px;
  align-items: center;
  padding: 68px 0 56px;
}

.hero h1 {
  font-size: 52px;
  line-height: 1.12;
  letter-spacing: -0.03em;
  margin: 20px 0;
}

.hero h1 em {
  font-style: normal;
  color: var(--brand);
}

.hero-lead {
  font-size: 18px;
  color: var(--muted);
  max-width: 480px;
  margin-bottom: 28px;
}

.eyebrow {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--brand);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--brand);
  color: #FFFFFF;
  padding: 13px 26px;
  border: 1px solid var(--brand);
  border-radius: 8px;
  font-weight: 600;
  font-size: 15px;
  min-height: 46px;
  white-space: nowrap;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.button:hover {
  background: var(--brand-hover);
  border-color: var(--brand-hover);
  color: #FFFFFF;
  text-decoration: none;
  transform: translateY(-1px);
}

.button.secondary {
  background: var(--bg);
  color: var(--brand);
  border: 1.5px solid var(--brand);
}

.button.secondary:hover {
  background: var(--brand);
  color: #FFFFFF;
}

.button.danger {
  background: var(--bg);
  color: var(--danger);
  border-color: var(--danger-border);
}

.button.danger:hover {
  background: rgba(220, 38, 38, 0.05);
  border-color: var(--danger);
  color: var(--danger);
}

.full {
  width: 100%;
  margin-top: 14px;
}

.quiet {
  font-size: 13px;
  color: var(--muted);
  margin: 14px 0 0;
}

.hero-art {
  position: relative;
  border-radius: 16px;
  background: var(--bg2);
  border: 1px solid var(--border);
  box-shadow: 0 12px 32px rgba(26, 26, 46, 0.06);
  overflow: hidden;
  isolation: isolate;
  aspect-ratio: 600 / 460;
  width: 100%;
}

.guard-hero-illustration {
  display: block;
  width: 100%;
  height: 100%;
}

@media (max-width: 760px) {
  .hero-art {
    aspect-ratio: 600 / 460;
    max-width: 520px;
    margin: 0 auto;
  }
}

.how {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  border-top: 1px solid var(--border);
  padding: 40px 0 18px;
}

.how > div {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}

.how h2 {
  font-size: 18px;
  margin: 14px 0 8px;
}

.how p {
  font-size: 14px;
  color: var(--muted);
  margin: 0;
}

.step {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: var(--brand);
  background: var(--brand-tint);
  border-radius: 8px;
  padding: 5px 10px;
}

.source-note {
  font-size: 12px;
  color: var(--muted);
  margin: 24px 0 38px;
  max-width: 750px;
}

.page-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin: 40px 0 28px;
}

.page-heading p {
  margin: 0;
}

.muted {
  color: var(--muted);
}

.small {
  font-size: 12px;
}

.center {
  text-align: center;
}

.overview {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 24px 28px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  gap: 20px;
  margin-bottom: 32px;
}

.overview > div + div {
  border-left: 1px solid var(--border);
  padding-left: 28px;
}

.overview-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  display: block;
}

.overview strong {
  display: block;
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.5;
}

.overview strong.small-value {
  font-size: 16px;
  padding-top: 8px;
}

.small-value .dot {
  margin-left: 8px;
}

.section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 16px;
}

.section-title h2 {
  margin: 0;
}

.watch-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 26px;
}

.watch-card {
  position: relative;
}

.watch-top {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 16px;
}

.place-icon {
  border-radius: 10px;
  background: var(--brand-tint);
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  font-size: 22px;
  color: var(--brand);
  flex-shrink: 0;
}

.place-type {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}

.pill {
  display: inline-block;
  color: var(--brand);
  background: var(--brand-tint);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 600;
  margin-left: auto;
}

.watch-address {
  font-size: 13px;
  color: var(--muted);
  min-height: 42px;
  overflow-wrap: anywhere;
}

.watch-stat {
  border-top: 1px solid var(--border);
  padding: 16px 0 12px;
  margin-top: 12px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.watch-stat strong {
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
}

.watch-stat span {
  font-size: 12px;
  color: var(--muted);
}

.watch-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--border);
  padding-top: 12px;
  gap: 8px;
}

.watch-foot .text-button {
  font-size: 13px;
}

.remove-watch {
  font-size: 12px;
  color: var(--muted);
  background: none;
  border: 0;
  padding: 8px;
}

.remove-watch:hover {
  color: var(--ink);
}

.empty-state {
  grid-column: 1 / -1;
  text-align: center;
  padding: 46px 24px;
}

.empty-state .place-icon {
  margin: 0 auto 16px;
  width: 56px;
  height: 56px;
  font-size: 28px;
}

.empty-state p {
  font-size: 14px;
  color: var(--muted);
  max-width: 380px;
  margin: 10px auto 20px;
}

.gentle-note {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-top: 28px;
}

.gentle-note strong {
  font-size: 14px;
  color: var(--ink);
}

.gentle-note p {
  font-size: 13px;
  color: var(--muted);
  margin: 4px 0 0;
}

.note-icon {
  font-size: 24px;
  color: var(--brand);
  flex-shrink: 0;
}

.plan-banner {
  background: var(--brand-tint);
  border: 1px solid var(--brand-border);
  padding: 16px 20px;
  border-radius: 10px;
  margin-bottom: 22px;
  font-size: 14px;
  color: var(--ink);
}

.plan-banner a {
  font-weight: 600;
  margin-left: 8px;
  color: var(--brand);
}

.login-wrap {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 80px;
  align-items: center;
  padding: 68px 0;
}

.login-intro h1 {
  font-size: 46px;
  margin: 18px 0;
}

.login-intro > p {
  font-size: 17px;
  max-width: 360px;
  color: var(--muted);
}

.mini-feature {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--muted);
  font-size: 13px;
  margin-top: 32px;
}

.mini-feature svg,
.mini-feature .brand-mark {
  width: 28px;
  flex-shrink: 0;
}

.login-card {
  padding: 32px;
}

.login-card h2 {
  font-size: 22px;
}

.login-card label {
  margin-top: 22px;
}

.login-card .small {
  margin-top: 18px;
}

.back {
  margin-bottom: 14px;
}

label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 6px;
  color: var(--ink);
}

input[type=email],
input[type=text],
input:not([type]) {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  min-height: 46px;
  background: var(--bg);
  color: var(--ink);
  transition: border-color 0.15s ease;
}

input:focus {
  outline: none;
  border-color: var(--brand);
}

input::placeholder {
  color: #9CA3AF;
  font-size: 14px;
}

input.code-input {
  letter-spacing: 10px;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  padding: 12px 16px;
}

input.code-input::placeholder {
  font: inherit;
  letter-spacing: inherit;
  opacity: 0.5;
}

fieldset {
  border: 0;
  padding: 0;
  margin: 22px 0;
}

legend {
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 8px;
  color: var(--ink);
}

.mode-picker,
.radius-picker {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.mode-picker label,
.radius-picker label {
  flex: 1;
  position: relative;
  margin: 0;
}

.mode-picker input,
.radius-picker input {
  position: absolute;
  opacity: 0;
}

.mode-picker span,
.radius-picker span {
  display: block;
  text-align: center;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font-weight: 500;
  cursor: pointer;
}

.mode-picker input:checked + span,
.radius-picker input:checked + span {
  background: var(--brand-tint);
  border-color: var(--brand);
  color: var(--brand);
  font-weight: 600;
}

.mode-picker input:focus-visible + span,
.radius-picker input:focus-visible + span {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.input-action {
  display: flex;
  gap: 8px;
}

.input-action input {
  min-width: 0;
}

.input-action button {
  padding: 10px 18px;
}

.form-error {
  color: var(--danger);
  font-size: 13px;
  margin: 12px 0 0;
}

.form-error:empty {
  display: none;
}

.confirmed {
  color: var(--brand);
  font-size: 13px;
  font-weight: 500;
  margin: 12px 0 8px;
}

#watch-map {
  height: 160px;
  border-radius: 10px;
  border: 1px solid var(--border);
  isolation: isolate;
}

#address-options button {
  display: block;
  text-align: left;
  width: 100%;
  padding: 10px 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  font-size: 13px;
  color: var(--ink);
  margin-top: 6px;
  border-radius: 8px;
}

#address-options button:hover {
  border-color: var(--brand);
  background: var(--bg2);
}

dialog {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 28px;
  width: 520px;
  max-width: calc(100vw - 28px);
  max-height: 90dvh;
  overflow: auto;
  color: var(--ink);
  background: var(--bg);
  box-shadow: 0 20px 60px rgba(26, 26, 46, 0.16);
}

dialog::backdrop {
  background: rgba(26, 26, 46, 0.45);
  backdrop-filter: blur(2px);
}

.dialog-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 22px;
}

.dialog-head h2 {
  margin: 4px 0 0;
}

.icon-button {
  border: 1px solid var(--border);
  background: var(--bg2);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  font-size: 20px;
  line-height: 1;
  color: var(--muted);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.icon-button:hover {
  color: var(--ink);
  border-color: var(--muted);
}

.loading {
  text-align: center;
  color: var(--muted);
  grid-column: 1 / -1;
  padding: 45px;
}

.subscription-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 24px;
}

.price {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink);
  margin: 16px 0;
}

.price span {
  font-size: 15px;
  font-weight: 400;
  color: var(--muted);
}

.benefits {
  padding: 0;
  list-style: none;
  font-size: 14px;
  margin: 22px 0;
}

.benefits li {
  padding: 8px 0;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}

.benefits li::before {
  content: '✓';
  color: var(--success);
  font-weight: 700;
  margin-right: 10px;
}

.detail-row {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
  gap: 15px;
  font-size: 14px;
}

.detail-row span:first-child {
  color: var(--muted);
}

.subscription-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
}

.subscription-actions button {
  font-size: 13px;
}

.record {
  border-top: 1px solid var(--border);
  padding: 16px 0;
}

.record strong {
  font-size: 14px;
  color: var(--ink);
}

.record p {
  font-size: 13px;
  color: var(--muted);
  margin: 4px 0;
}

#results-pagination {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
}

.toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3000;
  background: var(--ink);
  color: #FFFFFF;
  box-shadow: 0 8px 28px rgba(26, 26, 46, 0.22);
  padding: 13px 22px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  width: max-content;
  max-width: 90vw;
}

.toast[hidden],
[hidden] {
  display: none !important;
}

footer {
  max-width: 1140px;
  margin: 48px auto 0;
  padding: 26px 24px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 13px;
  gap: 20px;
}

footer > div {
  display: flex;
  gap: 22px;
}

footer a {
  color: var(--muted);
}

footer a:hover {
  color: var(--ink);
}

@media (max-width: 760px) {
  .header-inner {
    padding: 14px 20px;
  }
  .brand {
    font-size: 17px;
  }
  .brand svg,
  .brand .brand-mark {
    width: 26px;
    height: 30px;
  }
  .account-email {
    display: none;
  }
  .header-right {
    gap: 10px;
  }
  .tabs {
    padding: 4px 20px 0;
    gap: 24px;
  }
  main {
    padding: 0 20px;
  }
  .hero {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 38px 0 28px;
  }
  .hero h1 {
    font-size: 36px;
  }
  .hero-lead {
    font-size: 16px;
  }
  .how {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .page-heading {
    margin: 28px 0 20px;
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .page-heading h1 {
    font-size: 30px;
  }
  .page-heading .button {
    width: 100%;
  }
  .page-heading p {
    font-size: 14px;
  }
  .eyebrow {
    font-size: 11px;
  }
  .overview {
    padding: 18px 16px;
    gap: 12px;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 24px;
  }
  .overview > div + div {
    padding-left: 14px;
  }
  .overview > div:last-child {
    grid-column: 1 / -1;
    border: 0;
    border-top: 1px solid var(--border);
    padding: 10px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .overview strong {
    font-size: 24px;
  }
  .overview strong.small-value {
    padding: 0;
    font-size: 14px;
  }
  .overview-label {
    font-size: 11px;
  }
  .watch-grid,
  .subscription-grid {
    grid-template-columns: 1fr;
  }
  .card {
    padding: 20px;
  }
  .section-title h2 {
    font-size: 19px;
  }
  .gentle-note {
    padding: 18px;
    align-items: center;
  }
  .login-wrap {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 32px 0;
  }
  .login-intro h1 {
    font-size: 32px;
    margin: 12px 0;
  }
  .login-intro h1 br {
    display: none;
  }
  .login-intro > p {
    font-size: 15px;
    margin: 0;
  }
  .mini-feature {
    display: none;
  }
  .login-card {
    padding: 24px;
  }
  .login-card h2 {
    font-size: 20px;
  }
  dialog {
    padding: 22px;
  }
  .dialog-head h2 {
    font-size: 20px;
  }
  .price {
    font-size: 36px;
  }
  footer {
    margin-top: 28px;
    padding: 24px 20px;
    flex-direction: column;
    gap: 12px;
  }
  .source-note {
    font-size: 11px;
    margin-bottom: 26px;
  }
}

.brand-mark {
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}

.watch-top > div {
  min-width: 0;
}

.watch-top h3 {
  overflow-wrap: anywhere;
}

.pill {
  flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* === Compact Dashboard & Watch Dialog Refinement === */

.page-heading {
  margin: 24px 0 18px;
}

.page-heading h1 {
  font-size: 32px;
  margin: 4px 0 6px;
}

.page-heading p {
  font-size: 14px;
}

.plan-banner {
  padding: 12px 16px;
  margin-bottom: 18px;
}

.overview {
  padding: 16px 18px;
  gap: 16px;
  margin-bottom: 22px;
}

.overview > div + div {
  padding-left: 18px;
}

.overview strong {
  font-size: 24px;
  line-height: 1.3;
}

.overview strong.small-value {
  font-size: 15px;
  padding-top: 4px;
}

.section-title {
  margin: 0 0 12px;
}

.watch-grid {
  gap: 16px;
}

@media (min-width: 1100px) {
  .watch-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 760px) and (max-width: 1099px) {
  .watch-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body[data-page="dashboard"] .card {
  padding: 18px 20px;
}

.watch-top {
  margin-bottom: 12px;
  gap: 10px;
}

.place-icon {
  width: 38px;
  height: 38px;
  font-size: 19px;
}

.watch-address {
  font-size: 13px;
  min-height: 0;
  line-height: 1.45;
}

.watch-stat {
  padding: 12px 0;
  margin-top: 10px;
}

.watch-stat strong {
  font-size: 24px;
  line-height: 1.2;
}

.watch-foot {
  padding-top: 10px;
}

.gentle-note {
  padding: 14px 18px;
  margin-top: 20px;
  gap: 12px;
}

.source-note {
  margin: 16px 0 20px;
}

footer {
  margin: 28px auto 0;
  padding: 16px 24px;
}

/* Fix stuck helper text below submit button in #watch-form */
#watch-form button[type="submit"] + p.small {
  margin-top: 16px;
  margin-bottom: 0;
}

@media (max-width: 759px) {
  .page-heading {
    margin: 20px 0 16px;
  }
  .page-heading h1 {
    font-size: 28px;
  }
  .overview {
    padding: 14px 16px;
    margin-bottom: 20px;
  }
  .watch-grid {
    grid-template-columns: 1fr;
  }
  body[data-page="dashboard"] .card {
    padding: 18px;
  }
  .gentle-note {
    padding: 14px 16px;
    margin-top: 20px;
  }
  /* Maintain 44px+ tappable targets on mobile while keeping visual layout compact */
  .tabs a,
  .text-button,
  .remove-watch,
  #address-options button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  #address-options button {
    display: flex;
  }
  footer {
    margin-top: 24px;
    padding: 16px 20px;
  }
}

/* Account-level email settings share the same form and verification styles. */
.account-settings{margin-top:20px;padding:20px}.account-settings .section-title{margin-bottom:8px;gap:16px;flex-wrap:wrap}.account-settings .section-title h2{font-size:18px;margin:0}.account-settings .detail-row strong{overflow-wrap:anywhere;text-align:right;min-width:0}.settings-help{margin:12px 0 0}#email-dialog form>p.small{margin-top:10px}#email-dialog button[type=submit]{margin-top:16px}#notification-code-form .back{display:inline-flex;gap:8px;align-items:center;margin:0 0 14px}.back{display:inline-flex;gap:8px;align-items:center}.back span{font-size:18px;line-height:1}@media(max-width:760px){.account-settings{padding:18px}.account-settings .section-title{align-items:flex-start;gap:6px}.account-settings .detail-row{flex-direction:column;gap:4px}.account-settings .detail-row strong{text-align:left}}

/* Stable place cards with a distinct, bottom-aligned action bar. */
.watch-card{display:flex;flex-direction:column;min-width:0;border-top:3px solid var(--brand-border);background:linear-gradient(150deg,#fff 65%,#fdf8f6)}
.watch-top{min-height:54px;align-items:center}
.watch-identity{min-width:0;flex:1}
.watch-identity h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.3}
.watch-top .place-icon{width:48px;height:48px;border:1px solid var(--brand-border)}
.place-icon svg{width:28px;height:28px}
.watch-top .pill{flex-shrink:0;padding:4px 9px}
.watch-address{height:54px;min-height:54px;line-height:18px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.watch-address:focus{display:block;overflow:auto;outline:2px solid var(--brand);outline-offset:3px;border-radius:3px}
.watch-stat{min-height:50px;gap:10px}
.watch-stat strong{color:var(--brand);font-size:30px}
.watch-foot{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:10px}
.watch-actions{display:flex;gap:8px}
.watch-action{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--ink);padding:8px 14px;min-height:38px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.watch-actions .view-results{flex:1;background:var(--brand-tint);border-color:var(--brand-border);color:var(--brand)}
.watch-actions .remove-watch{margin-left:auto;color:var(--muted)}
.watch-action:hover{background:var(--bg2);border-color:var(--brand)}
.watch-actions .view-results:hover{background:var(--brand);color:#fff}
.watch-actions .remove-watch:hover{border-color:var(--danger);color:var(--danger)}
.watch-action:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.note-icon{display:grid;place-items:center;width:42px;height:42px;background:var(--brand-tint);border-radius:10px}
.note-icon svg{width:26px;height:26px}
/* Consumer version of the existing History timeline. */
#results-dialog{width:650px}
#results-dialog .dialog-head{margin-bottom:18px}
.update-summary{display:flex;align-items:center;gap:14px;padding:18px;background:var(--brand-tint);border:1px solid var(--brand-border);border-radius:12px;margin-bottom:24px}
.update-summary-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:10px;background:#fff;color:var(--brand)}
.update-summary-icon svg{width:30px;height:30px}
.update-summary strong{display:block;font-size:20px;line-height:1.3}
.update-summary p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.update-timeline{--timeline-rail:7px;--timeline-gutter:28px;position:relative;list-style:none;margin:0;padding:0 0 0 var(--timeline-gutter)}
.update-timeline::before{content:'';position:absolute;left:calc(var(--timeline-rail) - 1px);top:10px;bottom:24px;width:2px;background:#ead3cc}
.timeline-date{position:relative;font-size:13px;font-weight:600;line-height:20px;color:var(--brand);margin:0 0 12px}
.timeline-date::before{content:'';box-sizing:border-box;position:absolute;left:calc(var(--timeline-rail) - var(--timeline-gutter));transform:translateX(-50%);top:3px;width:14px;height:14px;border-radius:50%;background:var(--brand);border:3px solid #fff;box-shadow:0 0 0 1px #ead3cc}
.record{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}
.record-avatar{position:relative;flex:0 0 96px;min-height:128px;align-self:stretch;display:grid;place-items:center;border-radius:8px;overflow:hidden;background:var(--bg2);color:#9a8881;border:1px solid var(--border)}
.record-avatar>svg{width:36px;height:36px}
.record-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.record-main{min-width:0;flex:1;display:flex;flex-direction:column;min-height:128px}
.record h3{margin:0 0 8px;font-size:17px;line-height:1.3;overflow-wrap:anywhere}
.record-address{display:flex;align-items:flex-start;gap:6px}
.record-address svg{width:15px;height:15px;flex-shrink:0;margin-top:2px;color:var(--brand)}
.record-address span{overflow-wrap:anywhere}
.record-details{align-self:flex-start;margin-top:auto;min-height:36px;padding:6px 14px;color:var(--brand);background:var(--brand-tint);border-color:var(--brand-border);text-decoration:none}
.record-details:hover{background:var(--brand);color:#fff;text-decoration:none}
.record-details:disabled{color:var(--muted);background:var(--bg2);border-color:var(--border);cursor:default}
.record-main .record-address{margin-bottom:12px}
.update-note{color:var(--muted);font-size:12px;margin:18px 0 0}
@media(max-width:759px){.watch-action{min-height:44px}#results-dialog{padding:20px 16px}.update-summary{padding:14px;gap:12px}.update-summary strong{font-size:18px}.record{padding:12px;gap:10px}.record-avatar{flex-basis:80px;min-height:112px}.record-main{min-height:112px}.record h3{font-size:16px}.update-timeline{--timeline-gutter:24px}}

/* Match Halloween Map's segmented nearby-radius selector. */
.radius-picker{position:relative;flex-wrap:nowrap;gap:3px;padding:4px;border:1px solid #E6DFD5;border-radius:12px;background:#F0EAE2;margin-top:42px}
.radius-picker legend{position:absolute;top:-30px;left:0;font-size:14px;font-weight:700}
.radius-picker label{min-width:0}
.radius-picker span{display:flex;justify-content:center;align-items:center;min-height:44px;padding:6px;border:0;border-radius:8px;background:transparent;color:#685F56;font-weight:650;white-space:nowrap}
.radius-picker input:checked+span{background:#fff;border:0;color:#873C2A;box-shadow:0 1px 4px #1822351A}
.radius-picker input:focus-visible+span,.mode-picker input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.mode-picker span{display:flex;align-items:center;justify-content:center;gap:8px}
.mode-picker svg{width:22px;height:22px}
.watch-top{height:72px;min-height:72px}
.place-type{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timeline-group,.timeline-records{list-style:none;margin:0;padding:0}
@media(max-width:759px){.icon-button{width:44px;height:44px;min-width:44px;min-height:44px}}

.timeline-group + .timeline-group{padding-top:20px}

@media(max-width:759px){.record-details{min-height:44px}}

/* ZIP preview remains optional; its geometry never changes exact-ZIP monitoring. */
#zip-fields .zip-help{margin-top:14px;margin-bottom:14px}
#zip-preview-status{margin:14px 0}
#zip-preview{margin-top:16px}
#zip-map{height:180px;border:1px solid var(--border);border-radius:10px;isolation:isolate}
#zip-map-note{margin:10px 0 0;line-height:1.5}
.gentle-note{align-items:center}
.update-view-picker{display:flex;gap:4px;padding:4px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;margin-bottom:18px}
.update-view-picker button{flex:1;background:transparent;border-color:transparent}
.update-view-picker button[aria-pressed=true]{color:var(--brand);background:#fff;border-color:var(--border);box-shadow:0 1px 4px #18223512}
#update-record-map{height:360px;max-height:50dvh;border:1px solid var(--border);border-radius:12px;isolation:isolate}
#update-map-status{margin:12px 0 0}
@media(max-width:759px){#update-record-map{height:300px}}

/* Reuse the main site's live status and feedback colors. */
@keyframes liveStatusPulse{0%{transform:scale(1);opacity:.8}50%,100%{transform:scale(2.2);opacity:0}}
.live-status-dot{position:relative;display:inline-block;width:7px;height:7px;min-width:7px;min-height:7px;flex-shrink:0;border-radius:50%;background:#28a745}
.live-status-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;pointer-events:none;animation:liveStatusPulse 2s cubic-bezier(0,0,.2,1) infinite}
.schedule-value{display:inline-flex;align-items:center;gap:8px}
.toast{display:flex;align-items:center;gap:10px;background:white;color:var(--ink);border:1px solid var(--border);font-size:14px}
.status-symbol{display:inline-flex;flex:0 0 24px;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;background:#16a34a;color:white}
.status-symbol svg{width:16px;height:16px;display:block}
.status-error{background:#dc2626}.status-warning{background:#ca8a04}
.form-error:not(:empty){display:flex;align-items:flex-start;gap:8px}.form-error .status-symbol{flex-basis:20px;width:20px;height:20px}.form-error .status-symbol svg{width:14px;height:14px}
#remove-dialog{width:440px}#remove-dialog h2{font-size:24px;margin:0 0 14px}.remove-illustration{display:inline-flex;width:56px;height:56px;background:var(--brand-soft,#fbf0ec);border-radius:16px;align-items:center;justify-content:center;color:var(--brand)}.remove-illustration svg{width:44px;height:44px}.remove-place-name{font-weight:650;overflow-wrap:anywhere;margin:0 0 8px}.remove-actions{display:flex;gap:12px;margin-top:24px}.remove-actions button{flex:1}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--muted);margin:12px 0}.map-legend span{display:inline-flex;align-items:center;gap:6px}.map-legend i{width:9px;height:9px;border-radius:50%;background:#e11d48}.map-legend .predator{background:#7c3aed}.map-legend .your-place{background:#3b82f6}
@media(prefers-reduced-motion:reduce){.live-status-dot::after{animation:none;opacity:0}}

.invoice-card{margin-top:20px;padding:20px}.invoice-card h2{font-size:18px;margin:0 0 12px}.invoice-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:12px}

/* A light consumer entry, using the same brand and neighborhood illustration. */
body[data-signed-in="false"][data-page="login"]{background:radial-gradient(ellipse at 8% 35%,#F8EBE580 0,transparent 46%),radial-gradient(ellipse at 92% 75%,#E8EEF780 0,transparent 45%),#FBFCFD}
body[data-page="login"] main{position:relative;isolation:isolate}
body[data-page="login"] main::before{content:"";position:absolute;z-index:-1;inset:12% 0 5%;background:linear-gradient(117deg,transparent 24%,#F3E3DB66 25%,#FFF9F580 38%,transparent 39%,transparent 63%,#E5EDF655 64%,transparent 79%);pointer-events:none;transform:skewY(-5deg)}
.login-wrap{gap:64px;padding:48px 0;min-height:650px}.login-intro h1{font-size:42px;line-height:1.15;max-width:440px;margin:18px 0 14px}.login-product-label{font-size:11px;letter-spacing:.11em;color:#A94732;font-weight:700}.login-visual{max-width:450px;height:300px;margin:10px 0 18px}.login-visual .hero-art{width:100%;height:100%;min-height:0;padding:0}.login-visual svg{width:100%;height:100%}.login-check-note{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.login-card{position:relative;background:#fff;border:1px solid #E7E0DD;border-radius:20px;box-shadow:0 24px 65px #1A1A2E0D,0 4px 16px #1A1A2E04;padding:34px}.login-card::before{content:"";position:absolute;top:0;left:32px;right:32px;height:3px;background:linear-gradient(90deg,#C26148,#E7B9A8);border-radius:0 0 6px 6px}
@media(max-width:760px){.login-wrap{min-height:0;padding:30px 0 38px;gap:24px}.login-intro{position:relative;padding-right:74px}.login-intro h1{font-size:29px;margin:12px 0}.login-intro>p{font-size:15px;line-height:1.6}.login-product-label{font-size:9px;letter-spacing:.08em}.login-visual{position:absolute;right:-8px;top:-4px;width:90px;height:110px;opacity:.8;margin:0;overflow:hidden;pointer-events:none}.login-visual .hero-art{width:150px;height:115px;transform:translate(-25px,8px)}.login-check-note{font-size:11px;margin-top:16px;gap:8px;white-space:nowrap}.login-card{padding:26px 24px}.login-intro .live-status-dot{width:6px;height:6px;min-width:6px;min-height:6px}}

@media(min-width:761px) and (max-width:960px){.login-wrap{grid-template-columns:1fr;max-width:600px;margin:auto;gap:28px;padding:36px 0}.login-visual{height:240px;max-width:360px}.login-intro h1{max-width:none}.login-intro>p{max-width:none}}

.login-card::before{content:none}.login-card{box-shadow:0 24px 60px rgba(194,97,72,.09),0 5px 18px rgba(194,97,72,.04);border-color:#E7E0DD}.login-intro>p.signup-help{font-size:14px;line-height:1.6;margin-top:10px;max-width:440px}.overview .schedule-value{display:inline-flex;align-items:center;gap:9px;line-height:1.2}.schedule-value>span{display:block}.schedule-value .live-status-dot{align-self:center;margin:0}
.additional-email-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 8px;padding-top:20px;border-top:1px solid var(--border)}.additional-email-heading h3{margin:0 0 5px;font-size:16px}.additional-email-heading p{margin:0}.additional-email-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.additional-email-row>span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:14px}.additional-email-row .icon-button{width:32px;height:32px;min-width:32px;color:#6B7280}.additional-email-row .icon-button:hover{color:#dc2626;background:#FEF2F2}#additional-email-count{margin:12px 0 0}
@media(max-width:760px){.additional-email-heading{align-items:flex-start;gap:12px}.additional-email-heading .button{white-space:nowrap;padding:10px 14px}.login-intro>p.signup-help{font-size:13px}.login-intro{padding-right:0}.login-visual{display:none}}

/* API Dashboard avatar geometry and lock-on animation; ordinary ring uses Guard brand. */
.guard-person-marker{background:none;border:0}.map-avatar-marker.guard-map-avatar{position:relative;width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;border:0;box-shadow:0 1px 3px rgba(0,0,0,.3);display:block;overflow:visible;background:transparent}
.map-avatar-marker::before{content:"";position:absolute;top:0;left:0;width:32px;height:32px;border-radius:50%;border:2.5px solid transparent;border-top-color:#10b981;border-right-color:#10b981;box-sizing:border-box;opacity:0;z-index:2;pointer-events:none}.map-avatar-marker.active-lockon::before{opacity:1;animation:lockonBorderSpin 3.5s cubic-bezier(.2,.8,.2,1) forwards}
.guard-map-avatar .map-avatar-img{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;border:2px solid #C26148;box-sizing:border-box;object-fit:cover;display:block;position:relative;z-index:1;background:#F7F8FA}.guard-map-avatar.absconder .map-avatar-img{border-color:#dc2626}.guard-map-avatar.predator .map-avatar-img{border-color:#7c3aed}.guard-map-avatar .guard-avatar-fallback{display:flex;align-items:center;justify-content:center;color:#6B7280}.guard-avatar-fallback>svg{width:18px;height:18px;display:block}
@keyframes lockonBorderSpin{0%{transform:rotate(0deg);opacity:1}80%{transform:rotate(1080deg);opacity:1}100%{transform:rotate(1440deg);opacity:0}}@media(prefers-reduced-motion:reduce){.map-avatar-marker.active-lockon::before{animation:none;opacity:0}}
.guard-person-marker:focus-visible{outline:3px solid #3b82f6;border-radius:50%;outline-offset:3px}
#record-dialog{width:600px;padding:32px;border-radius:12px}#record-dialog .dialog-head{margin-bottom:16px}.api-photo-open{display:block;padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer}.api-record-photo{display:grid;place-items:center;width:100px;height:120px;overflow:hidden;border-radius:6px;background:#F7F8FA;color:#6B7280}.api-record-photo img{display:block;width:100px;height:120px;object-fit:cover}.api-record-photo>svg{width:36px;height:36px}
#record-photo-dialog{width:min(720px,90vw);padding:20px}#record-photo-dialog .icon-button{display:flex;margin-left:auto;margin-bottom:12px}#record-photo{display:block;max-width:100%;max-height:75dvh;margin:auto;object-fit:contain}
.map-legend i{background:#C26148}.map-legend .absconder{background:#dc2626}
@media(max-width:760px){.additional-email-row .icon-button{width:44px;height:44px;min-width:44px}#record-dialog{padding:24px}}

@keyframes guardWatchPulse{0%{transform:scale(.38);opacity:.7}80%,100%{transform:scale(1.15);opacity:0}}body[data-page="home"] .guard-watch-pulse{transform-box:fill-box;transform-origin:center;animation:guardWatchPulse 3s ease-out infinite;stroke-dasharray:none;stroke-width:2.2px}@media(prefers-reduced-motion:reduce){body[data-page="home"] .guard-watch-pulse{animation:none;transform:none;opacity:.4}}
/* Map rail/control dimensions and typography follow the existing Halloween map. */
body[data-page="map"] main{max-width:none;width:100%;padding:0;margin:0;background:#fff}
body[data-page="map"] footer{display:none}
body[data-page="map"] .header-inner{max-width:none}
body[data-page="map"] .header-right{gap:16px}
body[data-page="map"] .account-email{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.utility-header-search{position:relative;display:flex;align-items:center;width:320px;border:1px solid #E6DFD5;border-radius:12px;background:#F9F6F1}
.utility-header-search input{width:100%;min-width:0;border:0;border-radius:12px 0 0 12px;background:transparent;padding:12px 14px;font:inherit;font-size:14px;color:#182235;outline-offset:-3px}
.utility-header-search>button{height:44px;min-width:58px;flex-shrink:0;border:0;border-left:1px solid #E6DFD5;border-radius:0 12px 12px 0;background:transparent;color:#685F56;display:flex;align-items:center;justify-content:center;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
#utility-place-options:empty{display:none}#utility-place-options{position:absolute;top:calc(100% + 5px);left:0;right:0;max-height:240px;overflow-y:auto;border:1px solid #E6DFD5;border-radius:12px;background:#FFFCF7;box-shadow:0 8px 24px #18223526;z-index:1200}
#utility-place-options button{display:block;width:100%;height:auto;min-height:44px;border:0;border-bottom:1px solid #E8E2DA;border-radius:0;padding:12px 14px;text-align:left;font:inherit;font-size:13px;line-height:1.5;color:#182235;background:transparent}#utility-place-options button:hover{background:#F0EAE2}
.utility-workspace{display:grid;grid-template-columns:292px minmax(0,1fr);gap:16px;padding:16px;height:calc(100dvh - 127px);min-height:650px;width:100%;background:#fff}
.utility-rail{background:#FFFCF7;border:1px solid #E8E0D4;border-radius:20px;overflow:auto;box-shadow:0 5px 20px #1822350A}
.utility-map-heading{padding:24px 22px 20px}.utility-kicker{color:#873C2A;font-size:10px;font-weight:750;letter-spacing:.12em}.utility-map-heading h1{color:#182235;font-family:Georgia,serif;font-size:29px;line-height:1.12;letter-spacing:-.03em;margin:9px 0 14px}.utility-map-heading p{font-size:13px;line-height:1.65;color:#685F56;margin:0}
.utility-panel-controls{padding:0 22px 22px}.utility-controls{display:flex;flex-direction:column;gap:10px;padding:18px 0;border-top:1px solid #E8E0D4}.utility-radius-label{font-size:14px;font-weight:700;color:#182235}.utility-radius{display:flex;gap:3px;width:100%;padding:4px;border:1px solid #E6DFD5;border-radius:12px;background:#F0EAE2}
.utility-radius button{flex:1;min-width:0;min-height:44px;border:0;border-radius:8px;padding:6px;background:transparent;color:#685F56;font-family:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer}.utility-radius button[aria-pressed=true]{background:#fff;color:#873C2A;box-shadow:0 1px 4px #1822351A}
.utility-budget{padding:12px;background:#ECFDF3;border:1px solid #BBF7D0;border-radius:12px;font-size:12px;line-height:1.5;display:flex;align-items:center;gap:9px;color:#166534;margin:0 0 18px}.utility-budget strong{display:block;font-size:13px;font-weight:650}.utility-budget small{display:block;font-size:11px;margin-top:4px;line-height:1.5}.utility-budget[data-empty=true]{background:#FFFBEB;border-color:#FDE68A;color:#92400E}.utility-budget[data-empty=true] .live-status-dot{background:#ca8a04}
.utility-tracking{padding:12px;background:#F3EFE8;border:1px solid #E6DFD5;border-radius:12px;color:#685F56;font-size:12px;line-height:1.5}.utility-tracking>.utility-radius-label{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.utility-tracking p{font-size:12px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere;margin:0}.utility-tracking button{margin-top:10px}
.utility-rail .map-legend{display:flex;flex-direction:column;gap:9px;margin:20px 0 0;padding-top:18px;border-top:1px solid #E8E0D4;font-size:12px;color:#685F56}.utility-rail .map-legend span{gap:8px}.utility-note{color:#685F56;font-size:11px;line-height:1.6;margin:16px 0 0}
.utility-map-pane{position:relative;min-width:0;min-height:420px;background:#E8EDEB;border:1px solid #E8E0D4;border-radius:20px;overflow:hidden}#utility-map{position:absolute;inset:0}
.utility-map-pane .leaflet-control-zoom{margin-right:16px!important;margin-bottom:24px!important;box-shadow:0 4px 14px #18223526;border:1px solid #E6DFD5!important;border-radius:10px;overflow:hidden}.utility-map-pane .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;text-decoration:none!important;font-size:25px}.utility-map-pane .leaflet-control-attribution{font-size:10px}
.utility-recenter{position:absolute;right:74px;bottom:38px;z-index:800;min-height:44px;width:44px;display:flex;align-items:center;justify-content:center;padding:8px;border:1px solid #E6DFD5;border-radius:10px;background:#FFFCF7;box-shadow:0 4px 14px #1822351A;color:#182235;cursor:pointer}.utility-recenter svg{width:20px;height:20px;display:block}
.utility-share{position:absolute;right:16px;top:16px;z-index:800;display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #E8BE9B;border-radius:12px;background:#FFFAEF;box-shadow:0 5px 18px #873C2A1A;color:#873C2A;font-family:inherit;font-size:13px;font-weight:750;cursor:pointer}
.utility-search-area{position:absolute;z-index:800;top:16px;left:50%;transform:translateX(-50%);box-shadow:0 4px 16px #18223525;white-space:nowrap}
.utility-attribution{position:absolute;left:18px;bottom:30px;z-index:800;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:11px;background:#182235;color:#fff;font-size:18px;font-weight:750;box-shadow:0 3px 12px #18223526;text-decoration:none}.utility-attribution img{border-radius:6px}.utility-attribution:hover{color:#fff;text-decoration:none}
.map-share-modal{position:fixed;inset:0;background:#18223599;z-index:5000;display:flex;align-items:center;justify-content:center;padding:18px}.map-share-dialog{position:relative;background:#FFFCF7;width:min(440px,100%);max-height:90dvh;overflow:auto;padding:24px;border-radius:18px}.map-share-close{position:absolute;right:8px;top:8px;width:44px;height:44px;background:transparent;border:0;border-radius:8px;font-size:26px;cursor:pointer}.map-share-dialog h2{font-size:22px;margin:0 32px 18px 0}.map-share-image-wrap{border:1px solid #E8E2DA;border-radius:12px;overflow:hidden;background:#F7F8FA;min-height:100px}.map-share-image-wrap img{display:block;width:100%;height:auto}.map-share-image-loading{padding:20px;font-size:13px;text-align:center;color:#685F56}.map-share-secondary{border:1px solid #E8E2DA;background:white;color:#685F56}.map-share-copy{border:1px solid #C26148;background:#C26148;color:white}.map-share-image-retry{display:block;margin:0 auto 12px;border:1px solid #E8E2DA;border-radius:8px;padding:8px;background:white;min-height:44px}.map-share-status{font-size:13px;color:#166534;margin-top:12px}.walk-share-actions b{display:none}

@media(max-width:1199px){.utility-workspace{grid-template-columns:260px minmax(0,1fr);gap:12px;padding:12px}.utility-map-heading,.utility-panel-controls{padding-left:18px;padding-right:18px}}
@media(max-width:999px){.utility-workspace{display:flex;flex-direction:column;gap:12px;padding:12px;height:auto;min-height:0}.utility-rail{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.utility-map-heading{padding:16px}.utility-map-heading h1{font-size:25px;margin-bottom:8px}.utility-map-heading p{font-size:12px}.utility-panel-controls{padding:14px 16px}.utility-controls{padding:0 0 12px;border-top:0}.utility-note{display:none}.utility-rail .map-legend{flex-direction:row;gap:16px;padding-top:8px;margin-top:8px;border-top:0;font-size:10px}.utility-map-pane{height:65svh;min-height:420px;flex:none}.utility-budget{margin-bottom:12px}}
@media(max-width:600px){body[data-page="map"] .header-inner{flex-wrap:wrap;padding:10px 12px;gap:8px}body[data-page="map"] .header-right{display:contents}.utility-header-search{order:3;width:100%}body[data-page="map"] #sign-out{margin-left:auto}.utility-workspace{padding:10px;gap:10px}.utility-rail{display:block;border-radius:16px}.utility-map-heading{padding:12px 14px 10px}.utility-kicker{font-size:9px}.utility-map-heading h1{font-size:20px;line-height:1.2;margin:4px 0 6px}.utility-map-heading p{font-size:11px;line-height:1.5}.utility-panel-controls{padding:0 14px 12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:start}.utility-controls{padding:0;gap:5px}.utility-radius-label{font-size:11px}.utility-radius{padding:3px}.utility-radius button{min-height:44px;padding:4px 2px;font-size:11px}.utility-budget{margin:21px 0 0;min-height:52px;padding:8px;gap:7px}.utility-budget strong{font-size:11px}.utility-budget small{display:none}.utility-budget .live-status-dot{width:6px;height:6px;min-width:6px;min-height:6px}.utility-tracking{grid-column:1/-1;padding:8px 10px}.utility-tracking>.utility-radius-label{display:none}.utility-tracking p{font-size:10px}.utility-rail .map-legend{display:none}.utility-map-pane{height:60svh;min-height:340px;border-radius:16px}.utility-share{top:12px;right:12px;font-size:12px}.utility-search-area{top:66px;padding:10px 16px}.utility-recenter{right:72px;bottom:38px}.utility-attribution{left:12px;bottom:24px;font-size:14px;gap:7px;padding:7px 9px}.utility-attribution img{width:24px;height:24px}.utility-map-pane .leaflet-control-zoom{margin-right:12px!important}}

#map-limit-dialog{width:440px}#map-limit-dialog h2{font-size:26px;line-height:1.25;margin:18px 0 14px}#map-limit-dialog p{font-size:14px;line-height:1.7}#map-limit-dialog .button{margin-top:22px}.map-limit-illustration{width:72px;height:72px;display:grid;place-items:center;border-radius:22px;background:#FCF0E9;color:#C26148}.map-limit-illustration svg{width:52px;height:52px}#utility-view-limit{font-size:12px;padding:8px 0 0;color:#92400e;text-align:left}

/* Original map share card, without seasonal art or directional decorations. */
body[data-page="map"] .tabs{max-width:none}.utility-share{min-height:64px;padding:12px 16px;border-radius:16px;display:flex;align-items:center;gap:4px;text-align:left;font-size:13px;line-height:1.4}.utility-share small{display:block;font-size:8px;font-weight:700;letter-spacing:.08em;margin-bottom:3px}.map-share-dialog{border:1px solid #E8D7BD;border-radius:20px;padding:22px;background:#FFFCF7;box-shadow:0 8px 30px #18223526;color:#182235}.map-share-dialog h2{font-family:Georgia,serif;font-size:24px;line-height:1.15;letter-spacing:-.02em;margin:0 22px 8px 0}.walk-share-subtitle{font-size:12px;line-height:1.5;color:#685F56;margin-bottom:16px}.map-share-image-wrap{position:relative;border:1px solid #E8E2DA;border-radius:12px;background:#F7F8FA;min-height:100px;margin-bottom:12px;box-shadow:0 4px 16px #873C2A12}.map-share-image-wrap img{aspect-ratio:3/2}.map-share-actions{display:grid}.map-share-actions button,.map-share-actions a{display:flex;align-items:center;font-family:inherit;cursor:pointer;text-decoration:none}.map-share-close{right:4px;top:4px;border-radius:50%;font-size:24px;color:#685F56}.map-share-secondary{border:1px solid #E8E2DA;background:#F8F4ED;color:#685F56}.map-share-status{font-size:12px;color:#166534;text-align:center;margin-top:8px;min-height:16px}
@media(max-width:600px){.utility-share{right:12px;top:12px;min-height:58px;max-width:calc(100% - 24px);padding:10px 12px;font-size:11px;gap:0}.utility-share small{font-size:7px;letter-spacing:0;line-height:1.3}.utility-search-area{top:82px}.map-share-dialog{padding:20px}.walk-share-subtitle{font-size:13px}}

/* Keep both map controls on one shared baseline; zoom styling stays template-exact. */
.utility-map-navigation{display:flex;align-items:flex-end;gap:12px;margin-right:16px!important;margin-bottom:24px!important}.utility-map-navigation .leaflet-control-zoom{margin:0!important}.utility-map-navigation .utility-recenter{position:static;flex:none;margin:0;min-width:44px;height:44px}
@media(max-width:600px){.utility-map-navigation{margin-right:12px!important}.utility-map-navigation .leaflet-control-zoom{margin:0!important}}

/* API Dashboard cluster styling, paired with the same markercluster1.5.3 options. */
.marker-cluster{background-clip:padding-box;border-radius:50%}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:50%;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:inherit}.marker-cluster-small{background-color:rgba(194,97,72,.25)}.marker-cluster-small div{background-color:#C26148;color:#fff}.marker-cluster-medium{background-color:rgba(225,29,72,.25)}.marker-cluster-medium div{background-color:#e11d48;color:#fff}.marker-cluster-large{background-color:rgba(124,58,237,.3)}.marker-cluster-large div{background-color:#7c3aed;color:#fff}

.additional-email-row .remove-email{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;flex:none}.remove-email svg{display:block;width:16px;height:16px;flex:none}
/* This overlaid action uses transform for centering, so hover must retain it. */
.utility-search-area:hover,.utility-search-area:focus-visible,.utility-search-area:active{transform:translateX(-50%)}

.pill.pill-active{background:#ECFDF3;color:#166534;border-color:#BBF7D0}

@media(max-width:600px){.header-inner{padding:10px 12px;gap:8px}}

.utility-header-search>button{width:44px;min-width:44px}.utility-header-search>button svg{display:block;flex:none}#utility-place-options button[aria-selected="true"]{background:#F0EAE2}

.record-detail-address>span{display:block}

@media(max-width:600px){.utility-budget small{display:block;font-size:10px;line-height:1.35;margin-top:2px}}

.invoice-row{display:grid;grid-template-columns:110px 74px 100px max-content;align-items:center;justify-content:start;gap:20px;padding:14px 0}.invoice-date{font-size:13px;white-space:nowrap}.invoice-amount{text-align:right;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.invoice-row .invoice-status{display:inline-flex;justify-content:center;align-items:center;justify-self:center;border-radius:99px;padding:4px 10px;font-size:11px;line-height:1.5;background:#F3F4F6;color:#4B5563;white-space:nowrap}.invoice-row .invoice-paid{background:#ECFDF3;color:#166534}.invoice-row .invoice-due{background:#FFFBEB;color:#92400E}.invoice-row .invoice-unpaid{background:#FEF2F2;color:#991B1B}.invoice-open{min-width:104px;margin:0;text-align:center;white-space:nowrap}
@media(max-width:600px){.invoice-card{padding:16px}.invoice-row{grid-template-columns:minmax(82px,1fr) minmax(45px,.65fr) minmax(47px,.65fr) minmax(86px,1fr);gap:6px}.invoice-date{font-size:11px}.invoice-amount{font-size:12px}.invoice-open{min-width:0;width:100%;padding:8px 6px;font-size:10px;min-height:40px}.invoice-row .invoice-status{padding:3px 6px;font-size:10px}.invoice-row .invoice-due{white-space:normal;text-align:center;line-height:1.2}}

.utility-safety-note{grid-column:1/-1;padding:12px 13px;border:1px solid #F0C7BD;border-radius:10px;background:#FFF8F6;color:#4B2A23;font-size:11px;line-height:1.65;margin-top:20px}@media(min-width:1000px){.utility-rail{display:flex;flex-direction:column}.utility-panel-controls{display:flex;flex-direction:column;flex:1}.utility-safety-note{margin-top:auto}.utility-panel-controls>.utility-note:last-of-type{margin-bottom:20px}}

@media(max-width:600px){.utility-tracking{display:none}}

.guard-loading{display:flex;align-items:center;justify-content:center;gap:14px;padding:60px 0;color:#6B7280;font-size:15px;font-weight:500}.loading-nodes{display:flex;align-items:center;gap:6px;flex-shrink:0}.loading-nodes .node{width:10px;height:10px;border-radius:50%;background:#C26148;animation:nodePulse 1.4s ease-in-out infinite both}.loading-nodes .node:nth-child(1){animation-delay:-.32s}.loading-nodes .node:nth-child(2){animation-delay:-.16s}@keyframes nodePulse{0%,80%,100%{transform:scale(.3);opacity:.3}40%{transform:scale(1);opacity:1}}.guard-loading-compact{padding:4px 0;justify-content:flex-start;font-size:12px}.map-share-image-loading[data-busy=true]::after{display:none!important}@media(prefers-reduced-motion:reduce){.loading-nodes .node{animation:none;opacity:.6}}

/* Keep the map in the first mobile screen; desktop retains its introduction. */
@media(max-width:600px){.utility-map-heading{display:none}.utility-panel-controls{padding-top:12px}}

/* Shared map controls, in both saved-place updates and the standalone map. */
.leaflet-control-zoom{border:1px solid #E6DFD5!important;border-radius:10px;overflow:hidden;box-shadow:none!important}.leaflet-control-zoom a,.leaflet-control-zoom a:hover,.leaflet-control-zoom a:focus{width:44px;height:44px;line-height:44px;font-size:25px;text-decoration:none!important;color:#182235}
.page-loading{grid-column:1/-1;display:grid;place-items:center;min-height:260px;width:100%}.page-loading .guard-loading{padding:0}
.toast{background:#1A1A2E;color:#fff;border-color:#1A1A2E}
.utility-search-mobile{display:none}.utility-controls{border-top:0}.utility-panel-controls{padding-top:22px}.utility-rail{display:block}
@media(max-width:999px){.utility-panel-controls{padding-top:16px}.utility-rail{display:block}}
@media(max-width:600px){#utility-search-desktop{display:none}.utility-search-mobile{display:block;order:0}.utility-search-mobile .utility-header-search{width:100%;margin:0}.utility-panel-controls{padding-top:12px}}
.leaflet-touch .leaflet-control-zoom a,.leaflet-touch .leaflet-control-zoom a:hover,.leaflet-touch .leaflet-control-zoom a:focus{width:44px;height:44px;line-height:44px;text-decoration:none!important}
@media(max-width:360px){.invoice-card{padding:12px}.invoice-row{grid-template-columns:minmax(76px,1fr) 44px 40px 80px;gap:4px}.invoice-date{font-size:10px}.invoice-open{font-size:10px;padding:6px 2px}}

#subscription-offer-dialog{width:460px;padding:28px;border-radius:20px}#subscription-offer-dialog h2{font-size:27px;line-height:1.2;margin:20px 0}.offer-price{font-size:62px;line-height:1.15;letter-spacing:-.04em;margin:16px 0}.offer-price span{font-size:17px;letter-spacing:0;color:#6B7280}#subscription-offer-dialog .benefits{margin:24px 0}#subscription-offer-dialog .benefits li{margin:13px 0}#subscription-offer-dialog .button{margin-top:8px}.offer-manage,.offer-later{display:block;text-align:center;margin:16px auto 0;font-size:13px}.utility-map-pane{position:relative}.utility-plan-overlay{position:absolute;inset:0;z-index:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:linear-gradient(145deg,#f9f4f0ee,#f1f4f7f5)}.utility-plan-overlay[hidden]{display:none}.utility-plan-overlay h2{font-size:26px;margin:0}.utility-plan-overlay p{max-width:310px;margin:0;color:#6B7280;line-height:1.6}.utility-plan-overlay .button{margin-top:8px}#utility-budget[hidden]{display:none}

.offer-price{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.offer-price span,#subscription-content .price span{font-size:28px;font-weight:750;color:#1A1A2E;white-space:nowrap}#subscription-content .price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}

.benefits li::before{content:"";display:inline-block;flex-shrink:0;width:20px;height:20px;margin-right:10px;vertical-align:middle;border-radius:50%;background:#22C55E url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/14px no-repeat}

.icon-button,.map-share-close{display:grid;place-items:center;padding:0;line-height:0}.icon-button>svg,.map-share-close>svg{display:block;margin:0;flex-shrink:0;width:18px;height:18px}.offer-brand{font-size:20px;font-weight:750;text-decoration:none;line-height:1.2}.offer-brand .brand-mark{width:32px;height:32px}.offer-brand small{font-size:11px}#subscription-offer-dialog .dialog-head{align-items:center}.map-share-close{width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:#F7F8FA}@media(max-width:759px){.map-share-close{width:44px;height:44px}}
.button:not(.secondary){font-weight:700}
.utility-safety-note{margin-top:20px}
@media(min-width:1000px){.utility-panel-controls>.map-legend{margin-bottom:20px}.utility-safety-note{margin-top:auto}}
.map-share-image-wrap{min-height:180px}
.map-share-image-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#F7F8FAE6;z-index:2}
.map-share-image-loading .guard-loading{justify-content:center;padding:0;text-align:center}

.offer-price,#subscription-content .price{flex-wrap:nowrap;gap:15px;overflow:visible}#subscription-content .price{font-size:62px;line-height:1.15}.offer-price .annual-highlight,#subscription-content .price .annual-highlight{display:inline-flex;align-items:center;gap:12px;color:#1A1A2E;text-shadow:none;white-space:nowrap}.offer-price .annual-slash,#subscription-content .price .annual-slash{font-size:32px;font-weight:500;color:#6B7280}.offer-price .annual-year,#subscription-content .price .annual-year{position:relative;display:inline-block;font-size:34px;font-weight:850;letter-spacing:-.02em;line-height:1.4;color:#000000;padding:1px 4px;isolation:isolate}.annual-brush{position:absolute;inset:-12px -17px;width:calc(100% + 34px);height:calc(100% + 24px);z-index:-1;overflow:visible;pointer-events:none}

.checkout-confirmation{max-width:640px;margin:48px auto 80px;text-align:center}.confirmation-card{border:1px solid var(--border);border-radius:20px;background:white;padding:44px 32px}.confirmation-card h1{font-size:34px;line-height:1.2;margin:24px 0 16px}.confirmation-card p{font-size:16px;line-height:1.7;color:var(--muted)}.confirmation-card .button{display:inline-flex;margin:18px 6px 0}.confirmation-card [hidden]{display:none}.confirmation-mark{width:84px;height:84px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#F9F3F0}.confirmation-mark svg{width:56px;height:56px}.confirmation-mark circle{stroke:#EAD7CF;stroke-width:2}.confirmation-mark path{stroke:#C26148;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.confirmation-mark[data-state=ready]{background:#ECFDF3}.confirmation-mark[data-state=ready] circle{stroke:#22C55E}.confirmation-mark[data-state=ready] path{stroke:#16A34A}.confirmation-help{margin-top:28px;font-size:13px!important}.confirmation-help a{color:var(--brand)}#confirmation-countdown{font-size:14px;min-height:24px}.confirmation-card .text-button{display:block;margin:18px auto}@media(max-width:600px){.checkout-confirmation{margin:28px auto 50px}.confirmation-card{padding:32px 22px}.confirmation-card h1{font-size:29px}}

.confirmation-mark[data-state=pending]>svg,.confirmation-mark[data-state=ready]>.confirmation-loader{display:none}.confirmation-loader .guard-loading{gap:0;padding:0}.confirmation-loader .guard-loading>span:last-child:empty{display:none}
