:root {
  --bg: #faf7f0;
  --card: #ffffff;
  --tx: #141210;
  --sub: #443f38;
  --sep: #d8cfc0;
  --fill: #ede5d8;
  --terra: #b84820;
  --terra-bg: #fdf1eb;
  --green: #0f6846;
  --green-bg: #e5f5ee;
  --cream-btn: #f5efe4;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--bg);
  color: var(--tx);
  font-size: 18.5px;
  line-height: 1.32;
  -webkit-font-smoothing: antialiased;
}

#phone {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--bg);
  display: flex;
  flex-direction: column;
}

@media (min-width: 500px) {
  body {
    background: #231f1b;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #phone {
    width: 390px;
    height: 844px;
    border-radius: 46px;
    box-shadow: 0 0 0 11px #171412, 0 0 0 13px #3d3630, 0 28px 75px rgba(0, 0, 0, 0.55);
  }
}

#app {
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Clean Top Bar */
.top-header {
  background: var(--card);
  border-bottom: 2px solid var(--sep);
  padding: 10px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

.app-brand {
  font-size: 23px;
  font-weight: 900;
  color: var(--tx);
  letter-spacing: -0.4px;
  cursor: pointer;
}

.app-loc {
  font-size: 16.5px;
  font-weight: 800;
  color: var(--green);
  background: var(--green-bg);
  padding: 4px 10px;
  border-radius: 99px;
}

/* Scrollable Container */
.scroll {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  padding: 12px 14px 18px;
  scrollbar-width: none;
}
.scroll::-webkit-scrollbar {
  display: none;
}

/* Big Unmistakable Back Button */
.back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: var(--card);
  border: 2.5px solid var(--tx);
  border-radius: 13px;
  padding: 8.5px 13px;
  font-family: inherit;
  font-size: 19px;
  font-weight: 800;
  color: var(--tx);
  cursor: pointer;
  margin-bottom: 9px;
  text-align: left;
}

.back-btn:active {
  background: var(--fill);
}

/* Headlines */
.hero-title {
  font-size: 26px;
  font-weight: 900;
  color: var(--tx);
  margin: 0 0 4px;
  letter-spacing: -0.4px;
  line-height: 1.15;
}

.hero-sub {
  font-size: 17.5px;
  font-weight: 600;
  color: var(--sub);
  margin: 0 0 11px;
  line-height: 1.28;
}

/* 6 Huge Category Buttons (2 cols x 3 rows) */
.cat-grid-v3 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.cat-btn-v3 {
  background: var(--card);
  border: 2px solid var(--sep);
  border-radius: 16px;
  padding: 13px 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.cat-btn-v3:active {
  border-color: var(--green);
  background: var(--green-bg);
}

.cat-ico-v3 {
  font-size: 28px;
  line-height: 1;
  margin-bottom: 2px;
}

.cat-label-v3 {
  font-size: 20px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.15;
}

.cat-count-v3 {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--green);
}

/* Warm "Add a Pro You Trust" Card */
.share-pro-card {
  width: 100%;
  background: var(--terra-bg);
  border: 2px solid #e6b8a4;
  border-radius: 16px;
  padding: 12px 14px;
  text-align: left;
  font-family: inherit;
  cursor: pointer;
  margin-bottom: 12px;
  display: block;
}

.share-pro-title {
  font-size: 19.5px;
  font-weight: 900;
  color: var(--terra);
  margin-bottom: 3px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.share-pro-desc {
  font-size: 16.5px;
  font-weight: 600;
  color: var(--tx);
  line-height: 1.28;
}

/* Separated Bottom Contractor Bar */
.contractor-bar {
  background: var(--fill);
  border: 2px solid var(--sep);
  border-radius: 15px;
  padding: 12px 14px;
  text-align: left;
}

.contractor-link-btn {
  width: 100%;
  background: none;
  border: 0;
  padding: 0;
  font-family: inherit;
  font-size: 17.5px;
  font-weight: 800;
  color: var(--tx);
  text-align: left;
  cursor: pointer;
  line-height: 1.28;
}

/* Screen 2: Category Screen & Spacious Pro Card */
.pro-card-v3 {
  background: var(--card);
  border: 2.5px solid var(--sep);
  border-radius: 18px;
  padding: 13px 14px;
  margin-bottom: 14px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.pro-header-v3 {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 8px;
}

.pro-avatar-v3 {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--terra);
  color: #fff;
  font-size: 19px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 3px solid var(--terra-bg);
}

.pro-name-v3 {
  font-size: 22.5px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.15;
}

.pro-trade-v3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--sub);
  margin-top: 2px;
  line-height: 1.2;
}

.pro-phone-banner {
  background: var(--cream-btn);
  border: 2px solid var(--sep);
  border-radius: 12px;
  padding: 7px 11px;
  font-size: 18.5px;
  font-weight: 900;
  color: var(--tx);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}

.neighbor-vouch-box {
  background: var(--green-bg);
  border: 2px solid #a8dfc6;
  border-radius: 14px;
  padding: 9px 11px;
  margin-bottom: 8px;
}

.vouch-headline {
  font-size: 18px;
  font-weight: 900;
  color: var(--green);
  margin-bottom: 5px;
}

.vouch-item {
  font-size: 16.5px;
  line-height: 1.26;
  color: var(--tx);
  margin-bottom: 5px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(15, 104, 70, 0.18);
}

.add-vouch-link {
  display: inline-block;
  margin-top: 2px;
  font-size: 16px;
  font-weight: 900;
  color: var(--green);
  text-decoration: underline;
  background: none;
  border: 0;
  padding: 0;
  font-family: inherit;
  cursor: pointer;
}

.schedule-box-v3 {
  font-size: 17px;
  line-height: 1.26;
  color: var(--tx);
  margin-bottom: 9px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

/* Stacked Full-Width Big Buttons */
.stacked-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.full-btn {
  width: 100%;
  border-radius: 13px;
  padding: 11.5px 12px;
  font-family: inherit;
  font-size: 19px;
  font-weight: 900;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  text-align: center;
  line-height: 1.18;
}

.full-btn.cream {
  background: var(--cream-btn);
  color: var(--tx);
  border: 2.5px solid var(--tx);
}

.full-btn.green {
  background: var(--green);
  color: #ffffff;
  border: 2.5px solid var(--green);
}

.full-btn.orange {
  background: var(--terra);
  color: #ffffff;
  border: 2.5px solid var(--terra);
}

/* Screen 3: Full-Screen Request Step */
.step-block {
  background: var(--card);
  border: 2px solid var(--sep);
  border-radius: 15px;
  padding: 8.5px 11px;
  margin-bottom: 7px;
}

.step-label {
  font-size: 18px;
  font-weight: 900;
  color: var(--tx);
  margin: 0 0 5px;
  line-height: 1.18;
}

.choice-row {
  background: var(--bg);
  border: 2px solid var(--sep);
  border-radius: 11px;
  padding: 6.5px 9px;
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  font-size: 17px;
  font-weight: 800;
  color: var(--tx);
  line-height: 1.18;
}
.choice-row:last-child {
  margin-bottom: 0;
}

.choice-row.on {
  background: var(--green-bg);
  border-color: var(--green);
}

.choice-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--sub);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 900;
  color: #fff;
}

.choice-row.on .choice-dot {
  background: var(--green);
  border-color: var(--green);
}

.field-stack {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.input-v3 {
  width: 100%;
  font-family: inherit;
  font-size: 17px;
  font-weight: 800;
  padding: 6px 9px;
  border-radius: 10px;
  border: 2px solid var(--sep);
  background: var(--bg);
  color: var(--tx);
}

/* Contractor Screen Cards */
.pro-card-num {
  background: var(--card);
  border: 2px solid var(--sep);
  border-radius: 15px;
  padding: 8.5px 11px;
  margin-bottom: 7px;
}

.pro-card-heading {
  font-size: 18.5px;
  font-weight: 900;
  color: var(--tx);
  margin: 0 0 5px;
  line-height: 1.18;
}

.house-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 4px 0;
  border-bottom: 1px solid var(--sep);
}
.house-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.house-text {
  font-size: 17.5px;
  font-weight: 800;
  color: var(--tx);
  line-height: 1.18;
}

.house-sub {
  font-size: 15.5px;
  font-weight: 600;
  color: var(--sub);
}

.house-btns {
  display: flex;
  gap: 5px;
  flex-shrink: 0;
}

.mini-action {
  background: var(--cream-btn);
  border: 2px solid var(--sep);
  border-radius: 9px;
  padding: 5px 9px;
  font-family: inherit;
  font-size: 15.5px;
  font-weight: 800;
  color: var(--tx);
  cursor: pointer;
}

/* Bottom Sheet for Call/SMS Previews */
#sheet-bg {
  position: absolute;
  inset: 0;
  background: rgba(20, 18, 16, 0.58);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  z-index: 15;
}

#sheet {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 94%;
  overflow-y: auto;
  transform: translateY(105%);
  transition: transform 0.28s cubic-bezier(0.2, 0.9, 0.3, 1);
  background: var(--bg);
  border-radius: 24px 24px 0 0;
  padding: 12px 13px 14px;
  z-index: 16;
  box-shadow: 0 -10px 35px rgba(0, 0, 0, 0.35);
}

.open #sheet {
  transform: translateY(0);
}
.open #sheet-bg {
  opacity: 1;
  pointer-events: auto;
}

/* Toast Notification */
#toast {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translate(-50%, -140px);
  background: var(--tx);
  color: #fff;
  padding: 12px 18px;
  border-radius: 99px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
  transition: transform 0.25s ease;
  z-index: 30;
  font-size: 18px;
  font-weight: 800;
  white-space: nowrap;
  pointer-events: none;
}

/* v5 Contractor Sub-Tabs & Upfront Promise Card */
.pro-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 10px;
}

.pro-tab-btn {
  border: 2px solid var(--sep);
  background: var(--card);
  color: var(--sub);
  border-radius: 12px;
  padding: 8px 6px;
  font-family: inherit;
  font-size: 16.5px;
  font-weight: 800;
  cursor: pointer;
  text-align: center;
  line-height: 1.15;
}

.pro-tab-btn.on {
  background: var(--tx);
  color: #ffffff;
  border-color: var(--tx);
}

.promise-card {
  background: #ffffff;
  border: 2.5px solid var(--green);
  border-radius: 18px;
  padding: 10px 12px;
  margin-bottom: 8px;
  box-shadow: 0 4px 12px rgba(15, 104, 70, 0.07);
}

.promise-title {
  font-size: 19.5px;
  font-weight: 900;
  color: var(--green);
  margin: 0 0 6px;
  line-height: 1.18;
}

.promise-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.promise-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4.5px 0;
  border-bottom: 1px solid var(--sep);
  font-size: 15.5px;
  line-height: 1.24;
  color: var(--tx);
}

.promise-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.promise-check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--green-bg);
  color: var(--green);
  font-weight: 900;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.join-pro-card {
  background: var(--terra-bg);
  border: 2px solid #e6b8a4;
  border-radius: 16px;
  padding: 9.5px 12px;
}

.join-pro-title {
  font-size: 18px;
  font-weight: 900;
  color: var(--terra);
  margin: 0 0 3px;
  line-height: 1.18;
}

.join-pro-sub {
  font-size: 15px;
  font-weight: 600;
  color: var(--tx);
  margin: 0 0 7px;
  line-height: 1.22;
}

/* v6 Day-60 Stripe Billing Preview Button & Modal */
.stripe-preview-btn {
  margin-top: 8px;
  width: 100%;
  background: #ffffff;
  color: var(--tx);
  border: 2.5px solid var(--tx);
  border-radius: 13px;
  padding: 10.5px 12px;
  font-family: inherit;
  font-size: 17px;
  font-weight: 900;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  text-align: center;
  line-height: 1.18;
}

.stripe-preview-btn:active {
  background: var(--fill);
}

.stripe-modal-box {
  background: #ffffff;
  border: 2.5px solid var(--sep);
  border-radius: 20px;
  padding: 15px 15px 14px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.stripe-top-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.stripe-header-title {
  font-size: 19.5px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.2;
  margin: 0;
}

.stripe-close-x {
  background: var(--cream-btn);
  border: 2px solid var(--sep);
  border-radius: 10px;
  width: 34px;
  height: 34px;
  font-size: 17px;
  font-weight: 900;
  color: var(--tx);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.stripe-trial-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--green-bg);
  color: var(--green);
  border: 2px solid #9ad9be;
  border-radius: 99px;
  padding: 5px 12px;
  font-size: 16px;
  font-weight: 900;
  margin-bottom: 10px;
}

.stripe-price-box {
  background: var(--bg);
  border: 2px solid var(--sep);
  border-radius: 15px;
  padding: 11px 13px;
  margin-bottom: 12px;
}

.stripe-amount-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 4px;
}

.stripe-amount-big {
  font-size: 31px;
  font-weight: 900;
  color: var(--tx);
  letter-spacing: -0.6px;
  line-height: 1.05;
}

.stripe-amount-per {
  font-size: 19px;
  font-weight: 800;
  color: var(--sub);
}

.stripe-terms-line {
  font-size: 16px;
  font-weight: 700;
  color: var(--tx);
  line-height: 1.28;
}

.stripe-sec-label {
  font-size: 15.5px;
  font-weight: 900;
  color: var(--sub);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 7px;
}

.apple-pay-btn {
  width: 100%;
  background: #000000;
  color: #ffffff;
  border: 2.5px solid #000000;
  border-radius: 13px;
  padding: 12px 14px;
  font-family: inherit;
  font-size: 21px;
  font-weight: 900;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 10px;
  letter-spacing: -0.2px;
}

.stripe-or-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--sub);
  font-size: 14.5px;
  font-weight: 800;
  margin: 8px 0;
}

.stripe-or-divider::before,
.stripe-or-divider::after {
  content: "";
  flex: 1;
  height: 1.5px;
  background: var(--sep);
}

.stripe-card-preview {
  background: var(--bg);
  border: 2px solid var(--tx);
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 18px;
  font-weight: 900;
  color: var(--tx);
  margin-bottom: 10px;
  font-variant-numeric: tabular-nums;
}

.stripe-card-meta {
  font-size: 15.5px;
  font-weight: 800;
  color: var(--sub);
}

.stripe-founder-note {
  margin-top: 11px;
  background: #f3efe6;
  border: 1.5px dashed #b9ae9c;
  border-radius: 12px;
  padding: 9px 11px;
  font-size: 15px;
  font-weight: 700;
  font-style: italic;
  color: var(--tx);
  line-height: 1.3;
  text-align: left;
}

/* v7 Legal Protection Guardrails: Shield Badges, Checkboxes, Footer & Legal Modal */
.cat-tip-note {
  background: #fff9eb;
  border: 1.5px solid #e7c97a;
  border-radius: 10px;
  padding: 4.5px 9px;
  font-size: 13.8px;
  font-weight: 700;
  font-style: italic;
  color: var(--tx);
  margin-bottom: 6px;
  line-height: 1.2;
}

.pro-shield-badge {
  background: #eef6ff;
  border: 2px solid #9ec2ea;
  border-radius: 10px;
  padding: 5px 8px;
  font-size: 14.2px;
  font-weight: 900;
  color: #0d3c6e;
  margin-bottom: 5px;
  line-height: 1.18;
  display: flex;
  align-items: center;
  gap: 5px;
}

.pro-shield-badge.roc {
  background: #e9f7ef;
  border-color: #8ed1ad;
  color: #0c563a;
}

.roc-crosslink-bar {
  background: #e9f7ef;
  border: 2px solid #8ed1ad;
  border-radius: 11px;
  padding: 5.5px 9px;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 13.8px;
  font-weight: 800;
  color: #0c563a;
  cursor: pointer;
  line-height: 1.18;
}

.ack-check-box {
  background: #ffffff;
  border: 2px solid var(--green);
  border-radius: 13px;
  padding: 8px 10px;
  margin-bottom: 8px;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  cursor: pointer;
  text-align: left;
}

.ack-check-icon {
  font-size: 19px;
  line-height: 1;
  margin-top: 1px;
  flex-shrink: 0;
}

.ack-check-text {
  font-size: 15px;
  font-weight: 800;
  color: var(--tx);
  line-height: 1.24;
}

.ack-terms-inline {
  display: inline-block;
  margin-top: 2px;
  color: var(--green);
  font-weight: 900;
  text-decoration: underline;
  font-size: 14.5px;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}

.legal-footer-box {
  margin-top: 6px;
  background: #f2ece1;
  border: 2px solid var(--sep);
  border-radius: 13px;
  padding: 7px 9px;
  font-size: 13px;
  line-height: 1.22;
  color: var(--sub);
}

.legal-footer-line {
  margin-bottom: 3.5px;
}

.legal-footer-line b {
  color: var(--tx);
}

.legal-footer-btn {
  margin-top: 4px;
  width: 100%;
  background: #ffffff;
  border: 2px solid var(--tx);
  border-radius: 9px;
  padding: 5px 8px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 900;
  color: var(--tx);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

/* Compact overrides on Category screen so Pro Card + Shield + Footer Disclaimer fit cleanly */
.cat-compact .pro-card-v3 {
  padding: 7px 9.5px;
  margin-bottom: 5px;
}
.cat-compact .pro-header-v3 {
  margin-bottom: 4px;
  gap: 8px;
}
.cat-compact .pro-avatar-v3 {
  width: 36px;
  height: 36px;
  font-size: 15px;
}
.cat-compact .pro-name-v3 {
  font-size: 18.5px;
}
.cat-compact .pro-trade-v3 {
  font-size: 14px;
}
.cat-compact .pro-phone-banner {
  padding: 3.5px 8px;
  font-size: 15.5px;
  margin-bottom: 4px;
}
.cat-compact .neighbor-vouch-box {
  padding: 4.5px 7.5px;
  margin-bottom: 4px;
}
.cat-compact .vouch-headline {
  font-size: 15px;
  margin-bottom: 1.5px;
}
.cat-compact .vouch-item {
  font-size: 13.8px;
  margin-bottom: 1.5px;
  padding-bottom: 0;
  line-height: 1.16;
}
.cat-compact .schedule-box-v3 {
  font-size: 13.8px;
  margin-bottom: 4.5px;
  gap: 1px;
  line-height: 1.16;
}
.cat-compact .stacked-actions {
  gap: 4px;
}
.cat-compact .stacked-actions .full-btn {
  padding: 6px 9px;
  font-size: 15.5px;
}
.cat-compact .legal-footer-box {
  margin-top: 4px;
  padding: 5.5px 8px;
  font-size: 12.2px;
  line-height: 1.18;
}
.cat-compact .legal-footer-line {
  margin-bottom: 2.5px;
}
.cat-compact .legal-footer-btn {
  margin-top: 3px;
  padding: 4px 7px;
  font-size: 13.4px;
}

/* Legal Protection Modal */
.legal-modal-card {
  background: #ffffff;
  border: 2.5px solid var(--tx);
  border-radius: 18px;
  padding: 11px 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

.legal-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.legal-modal-title {
  font-size: 18px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.15;
  margin: 0;
}

.legal-modal-sub {
  font-size: 13.8px;
  font-weight: 800;
  color: var(--green);
  background: var(--green-bg);
  border: 1.5px solid #9ad9be;
  border-radius: 99px;
  padding: 2.5px 9px;
  display: inline-block;
  margin-bottom: 6px;
}

.legal-sec-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 7px;
}

.legal-sec-item {
  background: var(--bg);
  border: 1.5px solid var(--sep);
  border-radius: 10px;
  padding: 6px 8.5px;
  font-size: 13.8px;
  line-height: 1.2;
  color: var(--tx);
}

.legal-sec-item b {
  display: block;
  font-size: 14.6px;
  font-weight: 900;
  color: var(--tx);
  margin-bottom: 1.5px;
}

.legal-summary-checks {
  background: #eef6ff;
  border: 1.5px solid #9ec2ea;
  border-radius: 10px;
  padding: 5.5px 8px;
  font-size: 13.4px;
  font-weight: 800;
  color: #0d3c6e;
  line-height: 1.2;
  margin-bottom: 7px;
}

/* v8: 3-Section Grouped 12-Category Home Screen Layout */
.home-v8-wrap .hero-title {
  font-size: 22px;
  margin-bottom: 2px;
}

.home-v8-wrap .hero-sub {
  font-size: 14.8px;
  margin-bottom: 6px;
  line-height: 1.22;
}

.cat-sec-group {
  margin-bottom: 6px;
}

.cat-sec-header {
  font-size: 15.2px;
  font-weight: 900;
  color: var(--green);
  background: var(--green-bg);
  border: 1.5px solid #a8dfc6;
  border-radius: 9px;
  padding: 3.5px 9px;
  margin: 0 0 4.5px;
  letter-spacing: -0.1px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.cat-grid-v8 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5.5px;
}

.cat-btn-v8 {
  background: var(--card);
  border: 2px solid var(--sep);
  border-radius: 13px;
  padding: 6.5px 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
}

.cat-btn-v8:active {
  border-color: var(--green);
  background: var(--green-bg);
}

.cat-top-v8 {
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
}

.cat-ico-v8 {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}

.cat-label-v8 {
  font-size: 15px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.12;
  letter-spacing: -0.2px;
}

.cat-sub-v8 {
  font-size: 12.6px;
  font-weight: 600;
  font-style: italic;
  color: var(--sub);
  line-height: 1.15;
}

.cat-count-v8 {
  font-size: 12px;
  font-weight: 800;
  color: var(--green);
  line-height: 1.1;
}

.home-v8-bottom-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-top: 6px;
}

.home-v8-add-btn {
  background: var(--terra-bg);
  border: 2px solid #e6b8a4;
  border-radius: 12px;
  padding: 6.5px 8px;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.home-v8-add-title {
  font-size: 14px;
  font-weight: 900;
  color: var(--terra);
  line-height: 1.15;
  margin-bottom: 1.5px;
}

.home-v8-add-sub {
  font-size: 12px;
  font-weight: 700;
  color: var(--tx);
  line-height: 1.15;
}

.home-v8-pro-btn {
  background: var(--fill);
  border: 2px solid var(--sep);
  border-radius: 12px;
  padding: 6.5px 8px;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.home-v8-pro-title {
  font-size: 14px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.15;
  margin-bottom: 1.5px;
}

.home-v8-pro-sub {
  font-size: 12px;
  font-weight: 700;
  color: var(--green);
  line-height: 1.15;
}

/* v9: Live Netlify Form Capture Badge & Direct SMS Button */
.netlify-saved-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--green-bg);
  color: var(--green);
  border: 1.5px solid #9ad9be;
  border-radius: 99px;
  padding: 4px 11px;
  font-size: 14.5px;
  font-weight: 900;
  margin-bottom: 10px;
}

.direct-sms-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  background: var(--terra);
  color: #ffffff;
  border: 2.5px solid var(--terra);
  border-radius: 13px;
  padding: 13px 12px;
  font-family: inherit;
  font-size: 18.5px;
  font-weight: 900;
  text-decoration: none;
  cursor: pointer;
  margin-bottom: 9px;
  text-align: center;
  line-height: 1.18;
}

.direct-sms-btn:active {
  opacity: 0.92;
}

/* =====================================================================
   v10: NEIGHBOR-VETTED CONTRACTOR APP — 4-SCREEN FLOW + ADMIN VIEW
   ===================================================================== */

/* Pinned Favorites Bar on Home Screen */
.pinned-strip-v10 {
  background: #fff9eb;
  border: 2px solid #e7c97a;
  border-radius: 12px;
  padding: 5.5px 8px;
  margin-bottom: 6px;
}

.pinned-strip-header {
  font-size: 12.8px;
  font-weight: 900;
  color: #7c4a0d;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pinned-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.pinned-chip-btn {
  background: #ffffff;
  border: 1.5px solid #d4a74a;
  border-radius: 99px;
  padding: 3.5px 9px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 800;
  color: var(--tx);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.cat-pin-toggle {
  margin-left: auto;
  background: var(--bg);
  border: 1.5px solid var(--sep);
  border-radius: 7px;
  padding: 1.5px 5px;
  font-size: 11.5px;
  font-weight: 800;
  color: var(--sub);
  cursor: pointer;
  line-height: 1.1;
  flex-shrink: 0;
}

.cat-pin-toggle.on {
  background: #fff4d6;
  border-color: #d4a74a;
  color: #7c4a0d;
}

.home-admin-bar-v10 {
  margin-top: 5px;
  width: 100%;
  background: #eef6ff;
  border: 1.5px solid #9ec2ea;
  border-radius: 10px;
  padding: 5px 9px;
  font-family: inherit;
  font-size: 13.2px;
  font-weight: 800;
  color: #0d3c6e;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Screen 2: Clean Scannable Category List Cards (Sorted by Rating + Reviews) */
.cat-list-v10 .back-btn {
  padding: 7px 11px;
  font-size: 17px;
  margin-bottom: 6px;
}

.cat-list-v10 .hero-title {
  font-size: 21.5px;
  margin-bottom: 4px;
}

.cat-pro-row-v10 {
  background: var(--card);
  border: 2.5px solid var(--sep);
  border-radius: 16px;
  padding: 10px 11.5px;
  margin-bottom: 8px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.04);
}

.cat-pro-top-v10 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 5px;
}

.cat-pro-avatar-v10 {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #ffffff;
  font-size: 17px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 2.5px solid var(--terra-bg);
}

.cat-pro-name-v10 {
  font-size: 19px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.14;
}

.cat-pro-rating-v10 {
  font-size: 14.8px;
  font-weight: 900;
  color: var(--green);
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.gold-stars {
  color: #b45309;
  letter-spacing: 0.5px;
}

.cat-pro-preview-v10 {
  font-size: 14.8px;
  font-weight: 700;
  color: var(--sub);
  margin: 4px 0 7px;
  line-height: 1.22;
}

.cat-pro-actions-v10 {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 6px;
}

.btn-open-profile-v10 {
  background: var(--green);
  color: #ffffff;
  border: 2px solid var(--green);
  border-radius: 11px;
  padding: 8.5px 9px;
  font-family: inherit;
  font-size: 15.5px;
  font-weight: 900;
  cursor: pointer;
  text-align: center;
  line-height: 1.15;
}

.btn-quick-call-v10 {
  background: var(--cream-btn);
  color: var(--tx);
  border: 2px solid var(--tx);
  border-radius: 11px;
  padding: 8.5px 8px;
  font-family: inherit;
  font-size: 14.8px;
  font-weight: 900;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.15;
}

/* Screen 3: Contractor Profile (Tap-to-Call + Tap-to-Text + Verified Neighbor Trust Block) */
.profile-v10 .back-btn {
  padding: 6.5px 11px;
  font-size: 16.5px;
  margin-bottom: 6px;
}

.profile-header-card-v10 {
  background: var(--card);
  border: 2.5px solid var(--sep);
  border-radius: 16px;
  padding: 10px 12px;
  margin-bottom: 7px;
}

.profile-top-row-v10 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.profile-avatar-v10 {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: #ffffff;
  font-size: 18px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 3px solid var(--terra-bg);
}

.profile-name-v10 {
  font-size: 20.5px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.14;
}

.profile-trade-v10 {
  font-size: 14.8px;
  font-weight: 700;
  color: var(--sub);
  margin-top: 2px;
  line-height: 1.18;
}

.profile-spec-line-v10 {
  font-size: 14.4px;
  font-weight: 700;
  color: var(--tx);
  background: var(--bg);
  border: 1.5px solid var(--sep);
  border-radius: 10px;
  padding: 5.5px 8.5px;
  margin-top: 5px;
  line-height: 1.22;
}

.primary-contact-stack-v10 {
  display: flex;
  flex-direction: column;
  gap: 6.5px;
  margin-bottom: 8px;
}

.giant-call-btn-v10 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  background: var(--green);
  color: #ffffff;
  border: 2.5px solid var(--green);
  border-radius: 14px;
  padding: 11.5px 12px;
  font-family: inherit;
  font-size: 18.5px;
  font-weight: 900;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(15, 104, 70, 0.18);
}

.giant-text-btn-v10 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  background: var(--terra);
  color: #ffffff;
  border: 2.5px solid var(--terra);
  border-radius: 14px;
  padding: 11px 12px;
  font-family: inherit;
  font-size: 18px;
  font-weight: 900;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(184, 72, 32, 0.16);
}

/* The Neighbor Trust Block */
.trust-block-v10 {
  background: #ffffff;
  border: 2.5px solid var(--green);
  border-radius: 16px;
  padding: 9.5px 11px;
  margin-bottom: 7px;
}

.trust-rating-banner-v10 {
  font-size: 16.5px;
  font-weight: 900;
  color: var(--tx);
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.18;
}

.verified-only-badge-v10 {
  background: var(--green-bg);
  border: 1.5px solid #9ad9be;
  border-radius: 10px;
  padding: 5px 8px;
  font-size: 13.2px;
  font-weight: 800;
  color: var(--green);
  margin-bottom: 7px;
  line-height: 1.2;
}

.verified-only-badge-v10 span {
  display: block;
  font-weight: 600;
  color: var(--tx);
  font-size: 12.6px;
  margin-top: 1px;
}

.review-card-v10 {
  background: var(--bg);
  border: 1.5px solid var(--sep);
  border-radius: 11px;
  padding: 6.5px 9px;
  margin-bottom: 5.5px;
}

.review-quote-v10 {
  font-size: 14.8px;
  font-weight: 700;
  color: var(--tx);
  line-height: 1.22;
  margin-bottom: 3px;
}

.review-meta-row-v10 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 13.4px;
  font-weight: 900;
  color: var(--green);
}

.flag-review-btn-v10 {
  background: none;
  border: 0;
  padding: 0;
  font-family: inherit;
  font-size: 12.2px;
  font-weight: 700;
  color: var(--sub);
  text-decoration: underline;
  cursor: pointer;
}

.btn-leave-review-v10 {
  margin-top: 6px;
  width: 100%;
  background: #fff9eb;
  border: 2px solid #d4a74a;
  border-radius: 12px;
  padding: 9px 10px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 900;
  color: var(--tx);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* Screen 4: Leave a Verified Neighbor Review */
.review-form-v10 .back-btn {
  padding: 6.5px 11px;
  font-size: 16.5px;
  margin-bottom: 6px;
}

.star-picker-row-v10 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-top: 4px;
}

.star-tap-btn-v10 {
  flex: 1;
  background: var(--bg);
  border: 2px solid var(--sep);
  border-radius: 11px;
  padding: 6px 0;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: #c4b9a5;
  text-align: center;
}

.star-tap-btn-v10.on {
  background: #fff8e6;
  border-color: #d97706;
  color: #d97706;
}

.verify-gate-box-v10 {
  background: var(--green-bg);
  border: 2px solid #9ad9be;
  border-radius: 15px;
  padding: 8.5px 10.5px;
  margin-bottom: 7px;
}

.verify-gate-title-v10 {
  font-size: 16.5px;
  font-weight: 900;
  color: var(--green);
  margin: 0 0 3px;
}

.verify-gate-sub-v10 {
  font-size: 13.4px;
  font-weight: 700;
  color: var(--tx);
  margin: 0 0 6px;
  line-height: 1.2;
}

.field-label-v10 {
  font-size: 13.5px;
  font-weight: 900;
  color: var(--tx);
  margin: 4px 0 2px;
  display: block;
}

.verify-rule-note-v10 {
  margin-top: 6px;
  background: #ffffff;
  border: 1.5px solid #9ad9be;
  border-radius: 9px;
  padding: 5px 8px;
  font-size: 13px;
  font-weight: 800;
  color: var(--green);
  line-height: 1.2;
}

/* Lightweight Admin View (Darin) */
.admin-v10 .back-btn {
  padding: 6px 11px;
  font-size: 16px;
  margin-bottom: 6px;
}

.admin-header-pill-v10 {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #eef6ff;
  border: 1.5px solid #9ec2ea;
  border-radius: 99px;
  padding: 3px 10px;
  font-size: 13px;
  font-weight: 900;
  color: #0d3c6e;
  margin-bottom: 4px;
}

.admin-queue-card-v10 {
  background: var(--card);
  border: 2px solid var(--sep);
  border-radius: 14px;
  padding: 8px 10px;
  margin-bottom: 7px;
}

.admin-queue-title-v10 {
  font-size: 15.8px;
  font-weight: 900;
  color: var(--tx);
  margin: 0 0 5px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.admin-badge-count {
  background: var(--terra-bg);
  color: var(--terra);
  border: 1.5px solid #e6b8a4;
  border-radius: 99px;
  padding: 1.5px 8px;
  font-size: 12.5px;
  font-weight: 900;
}

.admin-item-box-v10 {
  background: var(--bg);
  border: 1.5px solid var(--sep);
  border-radius: 11px;
  padding: 6.5px 8.5px;
  margin-bottom: 5px;
}
.admin-item-box-v10:last-child {
  margin-bottom: 0;
}

.admin-item-main-v10 {
  font-size: 14.2px;
  font-weight: 800;
  color: var(--tx);
  line-height: 1.2;
  margin-bottom: 2px;
}

.admin-item-sub-v10 {
  font-size: 13px;
  font-weight: 700;
  color: var(--sub);
  line-height: 1.18;
  margin-bottom: 5px;
}

.admin-btn-row-v10 {
  display: flex;
  gap: 6px;
}

.admin-approve-btn {
  flex: 1.35;
  background: var(--green);
  color: #ffffff;
  border: 1.5px solid var(--green);
  border-radius: 8px;
  padding: 5.5px 7px;
  font-family: inherit;
  font-size: 13.2px;
  font-weight: 900;
  cursor: pointer;
}

.admin-reject-btn {
  flex: 0.85;
  background: #ffffff;
  color: #991b1b;
  border: 1.5px solid #dc2626;
  border-radius: 8px;
  padding: 5.5px 7px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.footer-btn-row-v10 {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 5px;
  margin-top: 4px;
}

/* v11: Clean full-width span when a category section has an odd number of tiles */
.cat-grid-v8 > .cat-btn-v8:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}


/* v12: Real Launch Mode (0 Sample Providers Yet) */
.launch-banner-v12 {
  background: #fff9eb;
  border: 2px solid #d4a74a;
  border-radius: 14px;
  padding: 8.5px 11px;
  margin-bottom: 10px;
}

.launch-banner-title-v12 {
  font-size: 16px;
  font-weight: 900;
  color: #8a5300;
  margin-bottom: 2px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.launch-banner-sub-v12 {
  font-size: 14px;
  font-weight: 700;
  color: var(--tx);
  line-height: 1.25;
}

.cat-count-v8.open-spots {
  color: #8a5300;
  background: #fff8e6;
  border: 1.5px solid #e7c97a;
  border-radius: 8px;
  padding: 2px 6px;
  display: inline-block;
  font-size: 13.2px;
  font-weight: 900;
}

.empty-cat-card-v12 {
  background: var(--card);
  border: 2.5px solid var(--tx);
  border-radius: 17px;
  padding: 14px 13px;
  margin-bottom: 10px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

.empty-cat-pill-v12 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff8e6;
  color: #8a5300;
  border: 1.5px solid #e7c97a;
  border-radius: 99px;
  padding: 4px 11px;
  font-size: 14px;
  font-weight: 900;
  margin-bottom: 8px;
}

.empty-cat-title-v12 {
  font-size: 20.5px;
  font-weight: 900;
  color: var(--tx);
  line-height: 1.18;
  margin: 0 0 6px;
  letter-spacing: -0.3px;
}

.empty-cat-desc-v12 {
  font-size: 15.2px;
  font-weight: 700;
  color: var(--sub);
  line-height: 1.3;
  margin: 0 0 12px;
}

.empty-cat-steps-v12 {
  background: var(--bg);
  border: 1.5px solid var(--sep);
  border-radius: 12px;
  padding: 9px 11px;
  margin-bottom: 12px;
  font-size: 14.4px;
  font-weight: 700;
  color: var(--tx);
  line-height: 1.32;
}

.empty-cat-steps-v12 div {
  margin-bottom: 4px;
}
.empty-cat-steps-v12 div:last-child {
  margin-bottom: 0;
}

.empty-btn-recommend-v12 {
  width: 100%;
  background: var(--terra);
  color: #ffffff;
  border: 2.5px solid var(--terra);
  border-radius: 13px;
  padding: 12px 12px;
  font-family: inherit;
  font-size: 17.5px;
  font-weight: 900;
  cursor: pointer;
  text-align: center;
  margin-bottom: 8px;
  display: block;
}

.empty-btn-pro-v12 {
  width: 100%;
  background: var(--green);
  color: #ffffff;
  border: 2.5px solid var(--green);
  border-radius: 13px;
  padding: 12px 12px;
  font-family: inherit;
  font-size: 17px;
  font-weight: 900;
  cursor: pointer;
  text-align: center;
  display: block;
}

.mode-toggle-bar-v12 {
  background: #eef6ff;
  border: 2px solid #9ec2ea;
  border-radius: 12px;
  padding: 8px 10px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.mode-toggle-text-v12 {
  font-size: 13.5px;
  font-weight: 800;
  color: #0d3c6e;
  line-height: 1.2;
}

.mode-toggle-btn-v12 {
  background: #0d3c6e;
  color: #ffffff;
  border: 0;
  border-radius: 8px;
  padding: 6px 10px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
}


.header-save-app-btn {
  background: var(--green);
  color: #ffffff;
  border: none;
  border-radius: 99px;
  padding: 5px 10px;
  font-family: inherit;
  font-size: 13.8px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  box-shadow: 0 2px 5px rgba(15, 104, 70, 0.25);
}

.save-app-green-btn-v17 {
  width: 100%;
  background: var(--green);
  color: #ffffff;
  border: 2px solid #09472f;
  border-radius: 12px;
  padding: 10px 13px;
  margin-top: 8px;
  margin-bottom: 6px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  text-align: left;
  box-shadow: 0 3px 8px rgba(15, 104, 70, 0.22);
}

/* v19: Live Bouncing Pointer to Safari Bottom Center Share Icon */
@keyframes rpBounceDown {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}

.safari-share-pointer-v19 {
  margin-top: 8px;
  background: #0f6846;
  color: #ffffff;
  border: 2.5px solid #073b26;
  border-radius: 14px;
  padding: 9px 11px 8px;
  text-align: center;
  box-shadow: 0 6px 18px rgba(15, 104, 70, 0.32);
}

.safari-share-pointer-top-v19 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 15.5px;
  font-weight: 900;
  line-height: 1.22;
}

.ios-share-svg-badge-v19 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #ffffff;
  color: #007aff;
  border-radius: 8px;
  flex-shrink: 0;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.safari-bounce-arrow-v19 {
  font-size: 24px;
  line-height: 1;
  margin-top: 3px;
  display: inline-block;
  animation: rpBounceDown 1.1s infinite ease-in-out;
}

/* v22: Share App & Share Pro Buttons */
.app-brand-wrap {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  line-height: 1.05;
}

.app-loc-sub {
  font-size: 12.2px;
  font-weight: 800;
  color: var(--green);
  margin-top: 1px;
}

.header-share-app-btn {
  background: var(--terra);
  color: #ffffff;
  border: none;
  border-radius: 99px;
  padding: 5.5px 10px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  box-shadow: 0 2px 5px rgba(184, 72, 32, 0.25);
}

.save-share-row-v22 {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
  margin-bottom: 6px;
}

.share-app-terra-btn-v22 {
  width: 100%;
  background: var(--terra);
  color: #ffffff;
  border: 2px solid #8f3515;
  border-radius: 12px;
  padding: 10px 13px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  text-align: left;
  box-shadow: 0 3px 8px rgba(184, 72, 32, 0.22);
}

.share-pro-btn-v22 {
  width: 100%;
  background: var(--cream-btn);
  color: var(--tx);
  border: 2.5px solid var(--tx);
  border-radius: 13px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 16.5px;
  font-weight: 900;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
}

/* v37 Smart Home Search */
.srch-wrap{background:var(--card);border:2.5px solid var(--terra);border-radius:16px;padding:12px;margin:0 0 12px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.srch-title{display:block;font-size:21px;font-weight:900;color:var(--tx);margin-bottom:8px}
.srch-input-row{position:relative}
.srch-input{width:100%;box-sizing:border-box;font-size:19px;min-height:56px;padding:12px 50px 12px 14px;border:2px solid var(--sep);border-radius:12px;background:#fff;color:var(--tx);-webkit-appearance:none;appearance:none}
.srch-input:focus{outline:none;border-color:var(--terra);box-shadow:0 0 0 3px var(--terra-bg)}
.srch-input::-webkit-search-cancel-button{display:none}
.srch-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:none;border-radius:50%;background:var(--fill);font-size:18px;color:var(--sub);cursor:pointer}
.srch-results:empty{display:none}
.srch-results{margin-top:8px}
.srch-label{font-size:15px;font-weight:800;color:var(--sub);margin:10px 2px 6px;text-transform:uppercase;letter-spacing:.3px}
.srch-row{display:flex;align-items:center;gap:10px;width:100%;min-height:62px;text-align:left;background:var(--cream-btn);border:2px solid var(--sep);border-radius:12px;padding:10px 12px;margin-bottom:7px;cursor:pointer;font-family:inherit;color:var(--tx)}
.srch-row:active{background:var(--terra-bg);border-color:var(--terra)}
.srch-ico{font-size:28px;flex:0 0 auto}
.srch-avatar{flex:0 0 42px;height:42px;border-radius:50%;color:#fff;font-weight:900;font-size:16px;display:flex;align-items:center;justify-content:center}
.srch-txt{flex:1;display:flex;flex-direction:column;min-width:0}
.srch-txt b{font-size:18px;line-height:1.2}
.srch-txt small{font-size:15px;color:var(--sub);line-height:1.25;margin-top:2px}
.srch-go{font-size:28px;color:var(--terra);font-weight:900}
.srch-nomatch{background:var(--green-bg);border:2px solid var(--green);border-radius:12px;padding:12px}
.srch-nomatch-title{font-size:18px;font-weight:900;color:var(--tx)}
.srch-nomatch-sub{font-size:16px;color:var(--sub);margin:4px 0 10px}
.srch-nomatch-btn{width:100%;min-height:54px;font-size:18px;font-weight:800;background:var(--green);color:#fff;border:none;border-radius:12px;cursor:pointer}
.srch-tell-link{width:100%;min-height:48px;margin-top:2px;background:none;border:none;color:var(--green);font-size:16px;font-weight:800;text-decoration:underline;cursor:pointer}

/* v48: Founding Pro share page */
.share-pro-page{padding:16px 16px 28px;font-size:15.5px;line-height:1.4}
.share-pro-page .sp-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.share-pro-page .sp-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;flex:none}
.share-pro-page .sp-initials{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:24px}
.share-pro-page .sp-badge{font-size:12.5px;font-weight:700;color:#b84a24}
.share-pro-page .sp-name{margin:2px 0;font-size:20px}
.share-pro-page .sp-cat{color:#666;font-size:14px}
.share-pro-page .sp-title{margin:16px 0 8px;font-size:18px}
.share-pro-page .sp-label{font-size:13px;font-weight:700;color:#555;margin:10px 0 4px}
.share-pro-page .sp-link{display:block;word-break:break-all;color:#b84a24;font-weight:600}
.share-pro-page .sp-text{width:100%;box-sizing:border-box;font:inherit;padding:10px;border:1px solid #d8cfc0;border-radius:10px;background:#faf7f0}
.share-pro-page .sp-btns{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.share-pro-page .sp-btns .full-btn{padding:11px;font-size:17px;text-align:center}
.share-pro-page .sp-tip{margin-top:12px;padding:10px;border-radius:10px;background:#fff6e0;border:1px solid #f0d89a;font-size:14.5px}
.share-pro-page .sp-qr-wrap{text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}
.share-pro-page .sp-qr{width:220px;height:220px;image-rendering:pixelated;border:1px solid #ddd;border-radius:8px}
.share-pro-page .sp-qr-cap,.share-pro-page .sp-qr-hint{font-size:13px;color:#666}
.share-pro-page .sp-privacy{margin-top:16px;padding:10px;border-radius:10px;background:#eef7ee;border:1px solid #bcdcbc;font-size:14px;font-weight:600}
.share-pro-page .sp-foot{margin-top:8px;font-size:12.5px;color:#777;text-align:center}
.share-pro-page .sp-multi{margin-top:8px;font-size:13.5px;color:#555;line-height:1.35}

/* v60: For Pros section */
.for-pros-v60{background:#fff;border:2px solid var(--green);border-radius:16px;padding:12px 13px;margin:12px 0}
.for-pros-title-v60{font-size:20px;font-weight:900;color:var(--green);margin-bottom:4px}
.for-pros-price-v60{font-size:15.5px;font-weight:800;line-height:1.35;margin-bottom:4px}
.for-pros-sub-v60{font-size:14px;color:#4a423a;line-height:1.35;margin-bottom:8px}
.for-pros-btn-v60{padding:12px;font-size:18px;margin:0 0 6px}
.for-pros-link-v60{display:block;text-align:center;font-size:14.5px;font-weight:800;color:var(--green)}

/* v62: update bar */
.rp-update-bar{position:fixed;left:0;right:0;top:0;z-index:9999;display:flex;align-items:stretch;gap:0;background:var(--green);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.25);padding-top:env(safe-area-inset-top)}
.rp-update-go{flex:1;background:none;border:0;color:#fff;font:inherit;font-weight:900;font-size:15.5px;padding:11px 12px;text-align:left;cursor:pointer}
.rp-update-x{background:none;border:0;color:#fff;font-size:24px;font-weight:700;padding:0 14px;cursor:pointer;line-height:1}

/* np-v1: NeighborPicks brand */
.app-brand { display:flex; align-items:center; gap:7px; }
.np-logo-mark { width:26px; height:26px; border-radius:7px; flex-shrink:0; }
.np-comm-switch { background:none; border:none; padding:0 0 0 4px; font:inherit; font-size:11.5px; font-weight:700; color:#777; text-decoration:underline; cursor:pointer; }
.np-disclaimer { font-size:12.5px; color:#555; }

.top-header .app-brand { font-size:19px !important; gap:5px; }
.top-header .np-logo-mark { width:22px; height:22px; }

/* np-v2: rebrand home-screen nudge */
#np-nudge{position:fixed;left:0;right:0;bottom:0;z-index:9998;padding:10px 10px calc(10px + env(safe-area-inset-bottom));}
.np-nudge-card{position:relative;max-width:460px;margin:0 auto;background:#fff;border:2px solid var(--green);border-radius:16px;box-shadow:0 6px 24px rgba(0,0,0,.25);padding:14px 16px 12px;font-size:14.5px;line-height:1.35;color:#222}
.np-nudge-card p{margin:6px 0}
.np-nudge-card a{color:var(--green);font-weight:800}
.np-nudge-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:900;color:var(--green);padding-right:24px}
.np-nudge-small{font-size:12.5px;color:#666}
.np-nudge-x{position:absolute;top:6px;right:8px;background:none;border:0;font-size:24px;line-height:1;color:#666;cursor:pointer}
.np-nudge-ok{display:block;width:100%;margin-top:8px;background:var(--green);color:#fff;border:0;border-radius:10px;padding:10px;font:inherit;font-weight:900;cursor:pointer}
