:root {
  --coral: #e23943;
  --coral-2: #f5525b;
  --coral-dark: #bf2634;
  --coral-soft: #ffe1e4;
  --blush: #fff8f7;
  --blush-2: #fff1ef;
  --ink: #141521;
  --muted: #6f7280;
  --line: #ece7e5;
  --white: #ffffff;
  --green: #18a66a;
  --green-soft: #e8f8f0;
  --gold: #f2a93b;
  --gold-soft: #fff5df;
  --purple: #7c5ce7;
  --purple-soft: #f0ecff;
  --blue: #4178e8;
  --blue-soft: #eaf1ff;
  --shadow: 0 12px 36px rgba(30, 18, 18, .08);
  --shadow-sm: 0 7px 22px rgba(30, 18, 18, .07);
  --radius-xl: 20px;
  --radius-lg: 16px;
  --radius-md: 12px;
  --radius-sm: 8px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--blush);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
img { max-width: 100%; display: block; }

.app-shell { min-height: 100vh; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 18px;
  height: 78px;
  padding: 0 28px;
  background: rgba(255,255,255,.93);
  border-bottom: 1px solid rgba(236,231,229,.9);
  backdrop-filter: blur(18px);
}
.brand-button {
  display: inline-flex;
  flex: 0 0 auto;
  min-width: 152px;
  align-items: center;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
}
.brand-logo { width: 150px; max-width: none; height: auto; }
.topbar-spacer { flex: 1 1 auto; min-width: 24px; }
.location-control, .role-control {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 0 14px;
  color: var(--ink);
  box-shadow: 0 3px 12px rgba(20,21,33,.04);
}
.location-control { flex: 0 1 215px; margin-left: 0; }
.role-control { flex: 0 0 auto; }
.location-control select { min-width: 0; max-width: 145px; }

.location-control select, .role-control select {
  border: 0;
  outline: 0;
  background: transparent;
  color: inherit;
  font-weight: 750;
}
.icon-button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--white);
  color: var(--ink);
}
.icon-button:hover { border-color: var(--coral); color: var(--coral); }
.avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--coral-2), var(--coral));
  color: var(--white);
  font-weight: 900;
}

.desktop-nav {
  position: fixed;
  top: 78px;
  left: 0;
  bottom: 0;
  z-index: 20;
  width: 230px;
  padding: 156px 18px 24px;
  background: #111c2e;
  border-right: 0;
}
.nav-label {
  margin: 0 12px 12px;
  color: #a0a0aa;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.nav-button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  margin-bottom: 6px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #555865;
  font-weight: 760;
  text-align: left;
}
.nav-button { color:#e6ebf2; }
.nav-button:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav-button.active {
  color: #fff;
  background: var(--coral);
}
.nav-button .nav-icon { width: 22px; height: 22px; }
.side-card {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 22px;
  padding: 18px;
  background: linear-gradient(145deg, #fff5f2, #ffe5e3);
  border: 1px solid #ffd7d3;
  border-radius: 14px;
}
.side-card strong { display: block; margin-bottom: 6px; }
.side-card p { margin: 0 0 14px; color: var(--muted); font-size: 13px; line-height: 1.45; }

.main-content {
  min-height: calc(100vh - 78px);
  margin-left: 230px;
  padding: 28px;
}
.page { max-width: 1380px; margin: 0 auto; }
.page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.eyebrow {
  margin: 0 0 8px;
  color: var(--coral-dark);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; font-size: clamp(31px, 4vw, 54px); line-height: 1.02; letter-spacing: -.04em; }
h2 { margin-bottom: 8px; font-size: clamp(24px, 2.5vw, 34px); line-height: 1.08; letter-spacing: -.025em; }
h3 { margin-bottom: 6px; font-size: 18px; }
.subtle { color: var(--muted); line-height: 1.55; }
.section { margin-top: 30px; }
.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 15px;
}
.section-head h2 { margin: 0; font-size: 23px; }
.text-button {
  border: 0;
  background: transparent;
  color: var(--coral-dark);
  font-weight: 850;
}

.hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  min-height: 410px;
  background: linear-gradient(120deg, #fff 10%, #fff3f0 100%);
  border: 1px solid #f0e6e3;
  border-radius: 22px;
  box-shadow: var(--shadow);
}
.hero::before, .hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.hero::before {
  width: 300px;
  height: 300px;
  right: 28%;
  top: -190px;
  background: rgba(255,93,99,.12);
}
.hero::after {
  width: 210px;
  height: 210px;
  left: 44%;
  bottom: -150px;
  background: rgba(255,117,111,.13);
}
.hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px;
}
.hero-copy h1 { max-width: 700px; }
.hero-copy .subtle { max-width: 620px; font-size: 17px; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.hero-visual {
  position: relative;
  min-height: 350px;
  background: linear-gradient(145deg, rgba(255,93,99,.9), rgba(255,117,111,.72));
}
.hero-visual img {
  width: 100%;
  height: 100%;
  min-height: 410px;
  object-fit: cover;
  mix-blend-mode: multiply;
  opacity: .92;
}
.hero-overlay {
  position: absolute;
  inset: auto 24px 24px 24px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow-sm);
}
.hero-overlay strong { display: block; font-size: 17px; }
.hero-overlay span { color: var(--muted); font-size: 13px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-weight: 850;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
  color: var(--white);
  background: linear-gradient(135deg, var(--coral-2), var(--coral));
  box-shadow: 0 10px 24px rgba(255,93,99,.26);
}
.btn-secondary { color: var(--ink); background: var(--white); border-color: var(--line); }
.btn-ghost { color: var(--coral-dark); background: var(--coral-soft); }
.btn-dark { color: var(--white); background: var(--ink); }
.btn-small { min-height: 36px; padding: 0 13px; border-radius: 11px; font-size: 13px; }
.btn-block { width: 100%; }

.quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.action-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  box-shadow: var(--shadow-sm);
  text-align: left;
}
.action-card:hover { border-color: #ffb4b0; transform: translateY(-2px); }
.action-card .action-icon {
  flex: 0 0 auto;
  width: 49px;
  height: 49px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: var(--coral-dark);
  background: var(--coral-soft);
}
.action-card strong { display: block; margin-bottom: 3px; font-size: 15px; }
.action-card span { display: block; color: var(--muted); font-size: 12px; line-height: 1.35; }

.chip-row { display: flex; gap: 9px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.chip-row::-webkit-scrollbar { display: none; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  color: #5d606c;
  font-weight: 750;
}
.chip.active { color: var(--white); border-color: var(--coral); background: var(--coral); }

.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.business-card, .offer-card, .panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.business-card { overflow: hidden; }
.business-image { position: relative; height: 180px; overflow: hidden; background: #f2ece9; }
.business-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.business-card:hover .business-image img { transform: scale(1.035); }
.business-badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 7px 10px;
  border-radius: 16px;
  color: var(--white);
  background: rgba(20,21,33,.82);
  font-size: 11px;
  font-weight: 900;
  backdrop-filter: blur(8px);
}
.business-badge.live { background: var(--green); }
.business-body { padding: 17px; }
.business-top { display: flex; align-items: flex-start; gap: 10px; }
.business-top > div { min-width: 0; flex: 1; }
.business-top h3 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.favorite-button {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--white);
  color: #999ba4;
}
.favorite-button.saved { color: var(--coral); background: var(--coral-soft); border-color: #ffc9c5; }
.meta-row { display: flex; flex-wrap: wrap; gap: 8px 13px; margin: 9px 0 13px; color: var(--muted); font-size: 12px; }
.meta-item { display: inline-flex; align-items: center; gap: 5px; }
.card-actions { display: flex; gap: 8px; }
.card-actions .btn { flex: 1; }

.live-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.offer-card { overflow: hidden; }
.offer-image { height: 135px; position: relative; }
.offer-image img { width: 100%; height: 100%; object-fit: cover; }
.offer-pill {
  position: absolute;
  left: 10px;
  bottom: 10px;
  padding: 6px 9px;
  border-radius: 16px;
  background: var(--green);
  color: var(--white);
  font-size: 10px;
  font-weight: 900;
}
.offer-body { padding: 14px; }
.offer-body h3 { font-size: 15px; }
.offer-body p { min-height: 38px; margin-bottom: 11px; color: var(--muted); font-size: 12px; line-height: 1.45; }

.offer-pill.boost { background: linear-gradient(135deg, var(--coral-2), var(--coral)); }
.boost-panel {
  margin: 10px 0 12px;
  padding: 12px;
  border: 1px solid #f3d4d8;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff7f8, #fff2f3);
}
.boost-top, .boost-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.boost-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--coral-soft);
  color: var(--coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.boost-count { color: var(--muted); font-size: 11px; font-weight: 800; }
.boost-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}
.boost-cell {
  padding: 10px;
  border-radius: 10px;
  background: rgba(255,255,255,.82);
  border: 1px solid #f5e4e6;
}
.boost-label { display: block; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.boost-cell strong { display: block; font-size: 14px; line-height: 1.2; }
.boost-cell small { display: block; margin-top: 4px; color: var(--coral-dark); font-size: 11px; font-weight: 800; }
.boost-progress {
  position: relative;
  overflow: hidden;
  height: 8px;
  margin-top: 10px;
  border-radius: 999px;
  background: #f3e2e4;
}
.boost-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--coral-2), var(--coral));
}
.boost-meta { margin-top: 8px; color: var(--muted); font-size: 11px; font-weight: 700; }
.boost-actions .btn { flex: 1; }
.offer-boost-card { border-color: #f1d2d5; }

.boost-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.saved-coupons-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.saved-coupon-card {
  background: var(--white);
  border: 1px dashed #efc8ce;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.saved-coupon-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #fff6f7, #fff1f3);
  border-bottom: 1px solid #f6dde1;
}
.saved-coupon-head h3 { margin: 4px 0 3px; font-size: 16px; }
.saved-coupon-head p { margin: 0; color: var(--muted); font-size: 12px; }
.saved-coupon-tag {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--coral-soft);
  color: var(--coral-dark);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.saved-coupon-code {
  align-self: flex-start;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--white);
  border: 1px solid #f0d8dc;
  font-size: 11px;
  font-weight: 900;
  color: var(--ink);
}
.saved-coupon-body {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 14px;
  padding: 14px 16px 16px;
}
.saved-coupon-body img {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 10px;
  background: #f3efec;
}
.saved-coupon-body p { margin: 0 0 10px; color: var(--muted); font-size: 13px; }
.saved-coupon-boost {
  display: grid;
  gap: 3px;
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 10px;
  background: #fff6f7;
  border: 1px solid #f4dadd;
}
.saved-coupon-boost strong { font-size: 13px; }
.saved-coupon-boost span { color: var(--coral-dark); font-size: 11px; font-weight: 800; }
.boost-analytics-list { display: grid; }
.boost-analytics-item {
  display: grid;
  gap: 8px;
  padding: 14px 0;
}
.boost-analytics-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.boost-analytics-stats span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border-radius: 10px;
  background: var(--blush-2);
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
}


.two-column { display: grid; grid-template-columns: 1.05fr .95fr; gap: 18px; }
.three-column { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.panel { padding: 20px; }
.panel.flush { padding: 0; overflow: hidden; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 17px; }
.panel-header h3 { margin: 0; }

.map-panel {
  min-height: 440px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent 48%, rgba(255,255,255,.92) 49%, rgba(255,255,255,.92) 51%, transparent 52%) 0 0 / 110px 110px,
    linear-gradient(transparent 48%, rgba(255,255,255,.92) 49%, rgba(255,255,255,.92) 51%, transparent 52%) 0 0 / 110px 110px,
    linear-gradient(145deg, #dfeee5, #e9eef4 48%, #d7ebf4);
}
.map-water { position:absolute; right:-10%; bottom:-12%; width:58%; height:48%; background:#b9dceb; border-radius:55% 0 0 0; transform:rotate(-8deg); }
.map-road { position:absolute; height:16px; border-radius:999px; background:rgba(255,255,255,.95); box-shadow:0 0 0 2px rgba(210,205,200,.4); transform-origin:left center; }
.map-road.r1 { width:72%; left:8%; top:32%; transform:rotate(14deg); }
.map-road.r2 { width:64%; left:14%; top:70%; transform:rotate(-17deg); }
.map-road.r3 { width:48%; left:35%; top:8%; transform:rotate(72deg); }
.map-pin {
  position: absolute;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 4px solid var(--white);
  border-radius: 50% 50% 50% 12px;
  background: var(--coral);
  color: var(--white);
  box-shadow: 0 8px 16px rgba(41,42,54,.22);
  transform: rotate(-45deg);
}
.map-pin svg { transform: rotate(45deg); }
.map-pin.p1 { top: 24%; left: 26%; }
.map-pin.p2 { top: 51%; left: 57%; background: var(--green); }
.map-pin.p3 { top: 18%; right: 14%; background: var(--purple); }
.map-pin.p4 { bottom: 14%; left: 20%; background: var(--gold); }
.map-user {
  position: absolute;
  top: 48%; left: 43%;
  width: 22px; height: 22px;
  border: 5px solid var(--white);
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 0 7px rgba(65,120,232,.17), 0 7px 16px rgba(41,42,54,.2);
}
.map-label {
  position: absolute;
  left: 20px;
  bottom: 20px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 8px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(8px);
  font-size: 12px;
}

.itinerary-list { display: grid; gap: 0; }
.itinerary-item { position: relative; display: grid; grid-template-columns: 86px 26px minmax(0,1fr); gap: 10px; padding: 4px 0 18px; }
.itinerary-time { color: var(--coral-dark); font-size: 12px; font-weight: 900; }
.itinerary-track { position: relative; display:flex; justify-content:center; }
.itinerary-track::after { content:""; position:absolute; top:12px; bottom:-22px; width:2px; background:#f3d2cf; }
.itinerary-item:last-child .itinerary-track::after { display:none; }
.itinerary-dot { position:relative; z-index:2; width:12px; height:12px; border:3px solid var(--coral); border-radius:50%; background:var(--white); }
.itinerary-content { display:flex; gap:12px; min-width:0; }
.itinerary-content img { width:70px; height:56px; object-fit:cover; border-radius:8px; }
.itinerary-content strong { display:block; margin-bottom:4px; font-size:14px; }
.itinerary-content span { display:block; color:var(--muted); font-size:12px; }

.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.stat-card { padding:18px; background:var(--white); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-sm); }
.stat-icon { width:40px; height:40px; display:grid; place-items:center; margin-bottom:13px; border-radius:8px; color:var(--coral-dark); background:var(--coral-soft); }
.stat-card strong { display:block; margin-bottom:3px; font-size:25px; letter-spacing:-.03em; }
.stat-card span { color:var(--muted); font-size:12px; }
.trend { margin-left:6px; color:var(--green); font-size:11px; font-weight:900; }

.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; min-width:760px; }
th { padding:11px 12px; color:#989aa4; font-size:11px; text-align:left; text-transform:uppercase; letter-spacing:.08em; }
td { padding:13px 12px; border-top:1px solid var(--line); font-size:13px; }
.status { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border-radius:999px; font-size:11px; font-weight:850; }
.status.active { color:#107b4d; background:var(--green-soft); }
.status.pending { color:#a16c06; background:var(--gold-soft); }
.status.cold { color:#6f7280; background:#f2f2f4; }
.status.hot { color:var(--coral-dark); background:var(--coral-soft); }

.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1 / -1; }
.field label { font-size:12px; font-weight:850; }
.field input, .field select, .field textarea {
  width:100%;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--white);
  padding:12px 13px;
  color:var(--ink);
  outline:none;
}
.field textarea { min-height:98px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:#ffaaa5; box-shadow:0 0 0 4px rgba(255,93,99,.09); }
.form-footer { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }

.segmented { display:inline-flex; padding:4px; border:1px solid var(--line); border-radius:8px; background:#f6f5f5; }
.segmented button { min-height:34px; padding:0 12px; border:0; border-radius:8px; background:transparent; color:var(--muted); font-weight:800; }
.segmented button.active { background:var(--white); color:var(--ink); box-shadow:0 2px 8px rgba(20,21,33,.08); }

.pitch-launch {
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:340px;
  border:1px solid #ffd9d5;
  border-radius:18px;
  background:linear-gradient(135deg,#fff 0%,#fff0ed 100%);
  box-shadow:var(--shadow);
}
.pitch-copy { display:flex; flex-direction:column; justify-content:center; padding:36px; }
.pitch-image { min-height:340px; }
.pitch-image img { width:100%; height:100%; object-fit:cover; }

.pipeline-board { display:grid; grid-template-columns:repeat(4,minmax(230px,1fr)); gap:13px; overflow-x:auto; padding-bottom:6px; }
.pipeline-column { min-height:330px; padding:13px; border:1px solid var(--line); border-radius:14px; background:#f8f7f7; }
.pipeline-column-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; font-size:12px; font-weight:900; }
.pipeline-count { min-width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:var(--white); color:var(--muted); }
.lead-card { padding:13px; margin-bottom:10px; border:1px solid var(--line); border-radius:14px; background:var(--white); box-shadow:0 4px 12px rgba(20,21,33,.05); }
.lead-card strong { display:block; margin-bottom:5px; font-size:13px; }
.lead-card span { display:block; color:var(--muted); font-size:11px; line-height:1.45; }
.lead-value { margin-top:8px; color:var(--coral-dark)!important; font-weight:900; }

.progress-ring { --progress:74; width:126px; height:126px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--coral) calc(var(--progress)*1%), #f2e7e4 0); }
.progress-ring::before { content:""; width:94px; height:94px; border-radius:50%; background:var(--white); }
.progress-ring span { position:absolute; font-size:24px; font-weight:900; }
.goal-card { display:flex; align-items:center; gap:22px; }
.goal-card > div:last-child { flex:1; }

.modal-backdrop {
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:22px;
  background:rgba(12,13,20,.66);
  backdrop-filter:blur(9px);
}
.modal {
  width:min(760px,100%);
  max-height:calc(100vh - 44px);
  overflow:auto;
  border-radius:18px;
  background:var(--white);
  box-shadow:0 28px 80px rgba(0,0,0,.25);
}
.modal-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; padding:20px 22px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.modal-body { padding:22px; }

.pitch-mode {
  position:fixed;
  inset:0;
  z-index:200;
  display:grid;
  grid-template-rows:auto 1fr auto;
  background:var(--white);
}
.pitch-topbar { display:flex; align-items:center; gap:18px; height:76px; padding:0 30px; border-bottom:1px solid var(--line); }
.pitch-topbar .brand-logo { width:120px; }
.pitch-topbar .pitch-progress { flex:1; height:7px; overflow:hidden; border-radius:999px; background:#f2e8e6; }
.pitch-topbar .pitch-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--coral-2),var(--coral)); }
.pitch-stage { overflow:auto; display:grid; place-items:center; padding:32px; background:radial-gradient(circle at 85% 10%,#ffe4e0 0,transparent 27%), var(--blush); }
.pitch-slide { width:min(1200px,100%); min-height:min(690px,calc(100vh - 190px)); display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:var(--white); box-shadow:0 26px 80px rgba(52,33,31,.15); }
.pitch-slide.single { grid-template-columns:1fr; }
.pitch-slide-copy { display:flex; flex-direction:column; justify-content:center; padding:58px; }
.pitch-slide-copy h1 { font-size:clamp(38px,5vw,70px); }
.pitch-slide-copy p { max-width:650px; color:var(--muted); font-size:19px; line-height:1.6; }
.pitch-slide-visual { min-height:440px; background:linear-gradient(145deg,#fff1ee,#ffdcd8); }
.pitch-slide-visual img { width:100%; height:100%; object-fit:cover; }
.pitch-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:88px; padding:15px 30px; border-top:1px solid var(--line); background:var(--white); }
.pitch-dots { display:flex; gap:7px; }
.pitch-dot { width:9px; height:9px; border-radius:50%; background:#e8deda; }
.pitch-dot.active { width:28px; border-radius:999px; background:var(--coral); }
.pitch-stat-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-top:20px; }
.pitch-stat { padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--blush); }
.pitch-stat strong { display:block; font-size:32px; }
.roi-box { margin-top:20px; padding:20px; border-radius:20px; background:var(--ink); color:var(--white); }
.roi-result { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:16px; }
.roi-result div { padding:14px; border-radius:14px; background:rgba(255,255,255,.1); }
.roi-result strong { display:block; font-size:26px; }
.roi-result span { color:rgba(255,255,255,.7); font-size:11px; }

.toast {
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:300;
  max-width:360px;
  padding:14px 17px;
  border-radius:14px;
  background:var(--ink);
  color:var(--white);
  box-shadow:0 18px 40px rgba(0,0,0,.2);
  opacity:0;
  transform:translateY(15px);
  pointer-events:none;
  transition:.22s ease;
}
.toast.show { opacity:1; transform:none; }
.empty-state { padding:36px; text-align:center; color:var(--muted); }
.mobile-bottom-nav { display:none; }
.desktop-only { display:block; }
.mobile-only { display:none; }


.redemption-steps { display: grid; gap: 14px; margin-top: 18px; }
.redemption-steps > div { display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: start; }
.redemption-steps > div > span {
  width: 34px; height: 34px; display: grid; place-items: center;
  border-radius: 10px; background: var(--coral-soft); color: var(--coral-dark); font-weight: 900;
}
.redemption-steps p { margin: 0; line-height: 1.35; }
.redemption-steps small { color: var(--muted); }
.coupon-modal { width: min(720px, calc(100vw - 28px)); }
.coupon-qr-wrap { display: grid; justify-items: center; text-align: center; padding: 10px 0 18px; }
.coupon-qr { width: 240px; height: 240px; border: 10px solid var(--white); box-shadow: var(--shadow-sm); }
.coupon-code-large { margin-top: 14px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--blush); font-size: 20px; font-weight: 950; letter-spacing: .12em; }
.scanner-modal { width: min(680px, calc(100vw - 28px)); }
.scanner-frame { position: relative; overflow: hidden; min-height: 320px; border-radius: 14px; background: #111; }
.scanner-frame video { width: 100%; height: 360px; object-fit: cover; display: block; }
.scanner-target { position: absolute; inset: 50% auto auto 50%; width: 210px; height: 210px; transform: translate(-50%,-50%); border: 3px solid rgba(255,255,255,.95); border-radius: 14px; box-shadow: 0 0 0 999px rgba(0,0,0,.28); }
.success-modal { width: min(520px, calc(100vw - 28px)); text-align: center; }
.redemption-success-icon { width: 82px; height: 82px; display: grid; place-items: center; margin: 4px auto 18px; border-radius: 24px; background: var(--green-soft); color: var(--green); }
.admin-boost-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.admin-boost-card { min-width: 0; }
.admin-boost-reward { display: grid; gap: 4px; padding: 14px; border-radius: 12px; background: var(--blush-2); border: 1px solid #f3dde0; }
.admin-boost-reward > span { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.admin-boost-reward strong { font-size: 18px; }
.admin-boost-reward small { color: var(--coral-dark); font-weight: 800; }
.saved-coupon-card.redeemed { opacity: .72; }
.saved-coupon-card.redeemed .saved-coupon-code { text-decoration: line-through; }
.btn:disabled { opacity: .48; cursor: not-allowed; transform: none; }
.shared-boost-modal { width: min(650px, calc(100vw - 28px)); }
.shared-boost-modal .offer-card { box-shadow: none; }


.admin-boost-filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}
.admin-boost-filter h3 { margin-bottom: 3px; }
.compact-field { min-width: 190px; }
.compact-field label { font-size: 10px; }
.destination-boost-summary {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}
.destination-boost-card {
  display: grid;
  gap: 4px;
  padding: 15px;
  text-align: left;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--ink);
}
.destination-boost-card:hover,
.destination-boost-card.active { border-color: var(--coral); background: var(--coral-soft); }
.destination-boost-card span { font-size: 12px; font-weight: 850; }
.destination-boost-card strong { font-size: 25px; }
.destination-boost-card small { color: var(--muted); }
.boost-destination-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 11px;
  color: var(--coral-dark);
  font-size: 11px;
  font-weight: 850;
}

.partner-manage-grid {
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr);
  gap: 18px;
}
.partner-manage-main { min-width: 0; }
.partner-toolbox { display: grid; align-content: start; gap: 12px; }
.partner-tool-card {
  display: grid;
  gap: 7px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--blush);
}
.partner-tool-card > span,
.generated-link > span { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.partner-tool-card strong { font-size: 15px; }
.partner-tool-card small,
.generated-link strong { overflow-wrap: anywhere; color: var(--muted); font-size: 11px; line-height: 1.45; }
.partner-tool-card .btn { justify-self: start; }
.generated-link {
  display: grid;
  gap: 7px;
  margin-top: 15px;
  padding: 13px;
  border-radius: var(--radius-md);
  border: 1px solid #f0d6da;
  background: var(--coral-soft);
}
.generated-link .btn { justify-self: start; }
.partner-invite-list,
.partner-team-list { display: grid; }
.partner-invite-row,
.partner-team-row,
.ops-check-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px 0;
}
.partner-invite-row > div,
.partner-team-row > div:not(.avatar),
.ops-check-row > div { flex: 1; min-width: 0; }
.partner-invite-row strong,
.partner-team-row strong,
.ops-check-row strong { display: block; font-size: 13px; }
.partner-invite-row .subtle,
.partner-team-row .subtle,
.ops-check-row .subtle { display: block; font-size: 11px; margin-top: 3px; }
.compact-empty { padding: 22px 8px; }
.mini-progress {
  width: 110px;
  max-width: 100%;
  height: 7px;
  overflow: hidden;
  margin-bottom: 5px;
  border-radius: 999px;
  background: #eee8e7;
}
.mini-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--coral-2),var(--coral)); }
.table-actions { display: flex; gap: 6px; }
.team-add-form { align-items: end; }
.team-submit-field { align-self: end; }
.avatar.small { width: 36px; height: 36px; font-size: 12px; }
.small-icon { width: 34px; height: 34px; }
.ops-check-row .stat-icon { margin: 0; flex: 0 0 auto; }

.pitch-boost-demo {
  margin-top: 20px;
  padding: 18px;
  border: 1px solid #f1d4d8;
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg,#fff8f8,#fff1f3);
}
.pitch-visual-card { display: grid; place-items: center; padding: 42px; background: linear-gradient(145deg,#fff4f5,#f9e7e9); }
.share-demo-card,
.coupon-pitch-card {
  width: min(420px,100%);
  display: grid;
  gap: 14px;
  padding: 30px;
  border: 1px solid #f0d7da;
  border-radius: var(--radius-xl);
  background: var(--white);
  box-shadow: var(--shadow);
}
.share-demo-card h2 { margin: 0; }
.share-demo-card p { font-size: 15px; }
.coupon-pitch-card { justify-items: center; text-align: center; }
.coupon-pitch-card img { width: 210px; height: 210px; }
.coupon-pitch-card strong { font-size: 22px; }
.coupon-pitch-card small { color: var(--muted); }
.pitch-dots { flex-wrap: wrap; justify-content: center; max-width: 280px; }

@media (max-width: 1100px) {
  .partner-manage-grid { grid-template-columns: 1fr; }
  .destination-boost-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hero { grid-template-columns:1fr; }
  .hero-visual { max-height:340px; }
  .hero-visual img { min-height:340px; }
  .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .live-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .boost-rail, .saved-coupons-grid { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pitch-launch { grid-template-columns:1fr; }
  .pitch-image { max-height:320px; }
}

@media (max-width: 760px) {
  body { background:var(--white); }
  .topbar { height:68px; padding:0 14px; gap:7px; }
  .brand-button { flex:0 0 112px; min-width:112px; }
  .brand-logo { width:112px; }
  .topbar-spacer { flex:1 1 auto; min-width:4px; }
  .location-control {
    flex:0 1 142px;
    min-width:88px;
    max-width:142px;
    min-height:39px;
    margin-left:0;
    padding:0 9px;
    overflow:hidden;
  }
  .location-control svg { flex:0 0 auto; }
  .location-control select {
    width:100%;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .location-control span, .role-control, .topbar .icon-button { display:none; }
  .main-content { margin-left:0; padding:14px 14px 92px; min-height:calc(100vh - 68px); }
  .page-header { align-items:flex-start; flex-direction:column; margin-bottom:18px; }
  h1 { font-size:36px; }
  .hero { min-height:0; border-radius:18px; box-shadow:none; }
  .hero-copy { padding:27px 22px; }
  .hero-copy .subtle { font-size:14px; }
  .hero-buttons .btn { flex:1; }
  .hero-visual { min-height:260px; }
  .hero-visual img { min-height:260px; }
  .hero-overlay { inset:auto 14px 14px; }
  .quick-grid { grid-template-columns:repeat(3,minmax(130px,1fr)); overflow-x:auto; margin-right:-14px; padding-right:14px; }
  .action-card { flex-direction:column; align-items:flex-start; min-height:155px; }
  .card-grid, .live-grid, .two-column, .three-column, .pitch-launch, .pitch-slide { grid-template-columns:1fr; }
  .card-grid { gap:12px; }
  .live-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .boost-rail, .saved-coupons-grid { grid-template-columns:1fr; }
  .offer-image { height:110px; }
  .offer-body { padding:11px; }
  .offer-body p { display:none; }
  .saved-coupon-body { grid-template-columns: 1fr; }
  .saved-coupon-body img { width: 100%; height: 140px; }
  .boost-grid { grid-template-columns: 1fr; }
  .boost-cell { padding: 8px; }
  .boost-meta { flex-direction: column; align-items: flex-start; gap: 4px; }
  .boost-actions { flex-direction: column; }
  .business-image { height:165px; }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .stat-card { padding:14px; }
  .stat-card strong { font-size:21px; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .map-panel { min-height:350px; }
  .panel { padding:16px; }
  .mobile-bottom-nav {
    position:fixed;
    left:0; right:0; bottom:0;
    z-index:40;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    min-height:72px;
    padding:7px 6px calc(7px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96);
    border-top:1px solid var(--line);
    backdrop-filter:blur(18px);
  }
  .mobile-nav-button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border:0; background:transparent; color:#8a8c96; font-size:10px; font-weight:800; }
  .mobile-nav-button.active { color:var(--coral); }
  .mobile-nav-button svg { width:21px; height:21px; }
  .desktop-only { display:none!important; }
  .mobile-only { display:block; }
  .pitch-stage { padding:14px; }
  .pitch-slide { min-height:calc(100vh - 176px); border-radius:16px; }
  .pitch-slide-copy { padding:28px 23px; }
  .pitch-slide-copy h1 { font-size:39px; }
  .pitch-slide-copy p { font-size:15px; }
  .pitch-slide-visual { min-height:250px; }
  .pitch-controls { min-height:78px; padding:12px 15px; }
  .pitch-topbar { height:66px; padding:0 15px; }
  .pitch-topbar .brand-logo { width:96px; }
  .pitch-stat-grid, .roi-result { grid-template-columns:1fr; }
  .toast { left:14px; right:14px; bottom:88px; }
  .admin-boost-filter { align-items:flex-start; flex-direction:column; }
  .admin-boost-filter .compact-field { width:100%; }
  .destination-boost-summary { grid-template-columns:1fr 1fr; }
  .partner-manage-grid { grid-template-columns:1fr; }
  .table-actions { flex-direction:column; }
  .partner-team-row { align-items:flex-start; flex-wrap:wrap; }
  .pitch-visual-card { padding:20px; }
  .share-demo-card, .coupon-pitch-card { padding:20px; }
  .pitch-dots { max-width:150px; gap:5px; }
}

  .admin-boost-grid { grid-template-columns:1fr; }
  .scanner-frame { min-height:260px; }
  .scanner-frame video { height:300px; }
  .coupon-qr { width:210px; height:210px; }

/* Firebase MVP additions */
.backend-badge {
  border: 0;
  cursor: pointer;
  white-space: nowrap;
  text-transform: none;
  font-size: 11px;
}

.account-button,
.signin-button {
  flex: 0 0 auto;
}

.account-button {
  border: 0;
  cursor: pointer;
}

.avatar.large {
  width: 62px;
  height: 62px;
  font-size: 20px;
}

.notice-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  margin: 0 0 18px;
  border: 1px solid rgba(244, 95, 100, .22);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255, 241, 241, .96), rgba(255, 255, 255, .98));
  box-shadow: var(--shadow-soft);
}

.notice-card strong { color: var(--ink); }
.notice-card span:not(.status) { color: var(--muted); font-size: 13px; flex: 1; }
.notice-card.compact { flex-wrap: wrap; }
.notice-card.compact .status { margin-left: auto; }

.auth-modal { max-width: 570px; }
.account-modal { max-width: 610px; }
.setup-modal { max-width: 650px; }

.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 6px;
  margin-bottom: 22px;
  border-radius: 8px;
  background: var(--surface-soft);
}

.auth-tab {
  border: 0;
  border-radius: 8px;
  padding: 11px 14px;
  font: inherit;
  font-weight: 850;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}

.auth-tab.active {
  color: var(--coral-dark);
  background: white;
  box-shadow: 0 7px 24px rgba(44, 35, 37, .08);
}

.auth-message {
  margin-bottom: 15px;
  padding: 12px 14px;
  border-radius: 8px;
  color: var(--coral-dark);
  background: var(--surface-soft);
  font-weight: 750;
  font-size: 13px;
}

.auth-footnote {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.account-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.account-hero h2,
.account-hero p { margin: 0; }

.setup-steps {
  margin: 22px 0;
  padding-left: 22px;
  color: var(--ink);
}

.setup-steps li { margin: 10px 0; }
.setup-steps code {
  padding: 2px 6px;
  border-radius: 6px;
  color: var(--coral-dark);
  background: var(--surface-soft);
}

body.is-syncing::after {
  content: '';
  position: fixed;
  z-index: 9999;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--coral), transparent);
  animation: yipp-sync 1s linear infinite;
}

@keyframes yipp-sync {
  from { transform: translateX(-100%); }
  to { transform: translateX(100%); }
}

@media (max-width: 760px) {
  .backend-badge { display: none; }
  .signin-button { padding-inline: 12px; }
  .notice-card { align-items: flex-start; flex-wrap: wrap; }
  .notice-card .btn { width: 100%; }
}

@media (max-width: 390px) {
  .topbar { padding-inline: 10px; gap: 5px; }
  .brand-button { flex-basis: 104px; min-width: 104px; }
  .brand-logo { width: 104px; }
  .location-control { max-width: 122px; min-width: 78px; padding-inline: 7px; }
  .location-control svg { display: none; }
  .signin-button { padding-inline: 9px; }
  .destination-boost-summary { grid-template-columns: 1fr; }
}


/* Header alignment and dashboard preview controls */
.brand-button { overflow: visible; }
.location-control { position: relative; z-index: 1; }
.role-control select, .location-control select { cursor: pointer; }
.role-control select:disabled { cursor: not-allowed; opacity: .6; }

@media (max-width: 980px) and (min-width: 761px) {
  .topbar { gap: 10px; padding-inline: 18px; }
  .brand-button { min-width: 142px; }
  .brand-logo { width: 140px; }
  .location-control { flex-basis: 180px; padding-inline: 10px; }
  .location-control span { display: none; }
  .role-control { padding-inline: 10px; }
  .backend-badge { display: none; }
}

/* Yipp QR no-download pitch slides */
.pitch-stat-emphasis {
  border-color: #efb8bf;
  background: linear-gradient(180deg,#fff3f5,#ffe7ea);
}
.pitch-stat-emphasis strong { color: var(--coral-dark); font-size: 48px; }
.pitch-source-note {
  margin-top: 16px;
  padding: 10px 12px;
  border-left: 3px solid var(--coral);
  background: var(--blush-2);
  color: var(--muted);
  font-size: 12px !important;
  line-height: 1.45 !important;
}
.qr-entry-demo {
  width: min(430px,100%);
  display: grid;
  justify-items: center;
  gap: 12px;
  padding: 30px;
  border: 1px solid #efcfd4;
  border-radius: var(--radius-xl);
  background: var(--white);
  box-shadow: var(--shadow);
  text-align: center;
}
.qr-entry-demo img { width: 240px; height: 240px; object-fit: contain; }
.qr-entry-demo h2 { margin: 0; }
.qr-entry-demo p { margin: 0; color: var(--muted); font-size: 14px; }
.qr-demo-url {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--blush);
  color: var(--coral-dark);
  font-size: 13px;
  font-weight: 850;
}
.qr-benefit-list { display: grid; gap: 12px; margin-top: 20px; }
.qr-benefit-list > div { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.qr-benefit-list > div > svg { color: var(--coral-dark); margin-top: 2px; }
.qr-benefit-list p { margin: 0; font-size: 15px; line-height: 1.4; }
.qr-benefit-list strong, .qr-benefit-list span { display: block; }
.qr-benefit-list span { margin-top: 2px; color: var(--muted); font-size: 13px; }
.browser-entry-flow {
  width: min(460px,100%);
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 12px;
  align-items: center;
}
.browser-entry-flow > div:nth-child(odd) {
  min-height: 180px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 18px;
  border: 1px solid #efd7db;
  border-radius: var(--radius-lg);
  background: var(--white);
  text-align: center;
}
.browser-entry-flow > div:nth-child(odd) > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin: 0 auto;
  border-radius: 50%;
  background: var(--coral);
  color: var(--white);
  font-weight: 900;
}
.browser-entry-flow small { color: var(--muted); line-height: 1.35; }
.friction-compare { width: min(500px,100%); display: grid; gap: 16px; }
.friction-path {
  display: grid;
  gap: 8px;
  padding: 24px;
  border-radius: var(--radius-lg);
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
}
.friction-path > span { font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.friction-path strong { font-size: 20px; line-height: 1.35; }
.friction-path small { color: var(--muted); }
.friction-path.bad { border-color: #ead3d3; background: #fff8f8; }
.friction-path.bad > span { color: #9d4b50; }
.friction-path.good { border-color: #efbfc5; background: linear-gradient(180deg,#fff5f6,#ffe9ec); }
.friction-path.good > span, .friction-path.good strong { color: var(--coral-dark); }
.friction-vs { justify-self: center; font-weight: 950; color: var(--muted); }
.qr-network-demo {
  width: min(520px,100%);
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
  align-items: center;
}
.qr-network-center {
  grid-column: 2;
  grid-row: 1 / span 2;
  min-height: 210px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  padding: 24px;
  border: 2px solid #efbcc3;
  border-radius: 50%;
  background: var(--white);
  box-shadow: var(--shadow);
  text-align: center;
}
.qr-network-center img { width: 120px; }
.qr-network-node {
  min-height: 96px;
  display: grid;
  place-items: center;
  gap: 7px;
  padding: 14px;
  border: 1px solid #efd9dc;
  border-radius: var(--radius-lg);
  background: var(--white);
  color: var(--coral-dark);
  text-align: center;
}
.qr-network-node span { color: var(--ink); font-size: 12px; font-weight: 850; }

@media (max-width: 760px) {
  .qr-entry-demo { padding:20px; }
  .qr-entry-demo img { width:190px; height:190px; }
  .browser-entry-flow { grid-template-columns:1fr; }
  .browser-entry-flow > div:nth-child(even) { transform:rotate(90deg); justify-self:center; }
  .browser-entry-flow > div:nth-child(odd) { min-height:auto; }
  .qr-network-demo { grid-template-columns:1fr 1fr; }
  .qr-network-center { grid-column:1 / -1; grid-row:auto; border-radius:var(--radius-xl); min-height:150px; }
}

/* Build 12: featured merchants, merchant command center, full-screen swipe pitch, admin management */
.featured-merchant-section { overflow: hidden; }
.featured-merchant-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 14px) / 2);
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 2px 2px 12px;
  scrollbar-width: thin;
}
.featured-merchant-card {
  scroll-snap-align: start;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(130px, 38%) 1fr;
  min-height: 150px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
}
.featured-merchant-image { position: relative; min-height: 150px; background: #f4efed; }
.featured-merchant-image img { width: 100%; height: 100%; object-fit: cover; }
.featured-merchant-image span {
  position: absolute;
  left: 10px;
  top: 10px;
  padding: 6px 9px;
  border-radius: 8px;
  color: white;
  background: linear-gradient(135deg,var(--coral-2),var(--coral));
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.featured-merchant-body { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px; }
.featured-merchant-body h3 { margin: 0 0 5px; font-size: 17px; }
.featured-merchant-body p { margin: 0; color: var(--muted); font-size: 12px; }
.featured-merchant-body > strong { display: inline-flex; align-items: center; gap: 4px; color: var(--coral-dark); white-space: nowrap; }

.merchant-date-actions { display: flex; align-items: center; gap: 10px; }
.merchant-date-actions select,
.merchant-dashboard-lower select {
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
  font-weight: 750;
}
.merchant-dashboard-shell { display: grid; gap: 18px; }
.merchant-kpi-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.merchant-kpi-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 46px minmax(0,1fr) 88px;
  align-items: center;
  gap: 12px;
  min-height: 118px;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  box-shadow: var(--shadow-sm);
  color: var(--coral);
}
.merchant-kpi-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--coral-soft); color: var(--coral-dark); }
.merchant-kpi-card span { display: block; color: var(--muted); font-size: 12px; font-weight: 750; }
.merchant-kpi-card strong { display: block; margin: 4px 0 2px; color: var(--ink); font-size: 26px; letter-spacing: -.04em; }
.merchant-kpi-card small { color: var(--green); font-size: 11px; font-weight: 900; }
.merchant-kpi-card svg { width: 88px; height: 34px; opacity: .9; }
.merchant-dashboard-main { display: grid; grid-template-columns: minmax(0,1.75fr) minmax(320px,.85fr); gap: 18px; }
.merchant-map-card { min-width: 0; }
.merchant-heatmap { min-height: 410px; }
.merchant-heat {
  position: absolute;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(226,57,67,.58) 0, rgba(226,57,67,.22) 35%, rgba(226,57,67,0) 72%);
  pointer-events: none;
}
.merchant-heat.h1 { left: 14%; top: 15%; }
.merchant-heat.h2 { left: 42%; top: 36%; transform: scale(1.25); }
.merchant-heat.h3 { right: 12%; top: 18%; }
.merchant-heat.h4 { left: 24%; bottom: 6%; transform: scale(.86); }
.merchant-live-offers { min-width: 0; }
.merchant-offer-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 14px 0; }
.merchant-offer-thumb { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: var(--coral-soft); color: var(--coral-dark); }
.merchant-offer-copy { min-width: 0; }
.merchant-offer-copy strong,.merchant-offer-copy span,.merchant-offer-copy small { display: block; }
.merchant-offer-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.merchant-offer-copy span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.merchant-offer-copy small { margin-top: 4px; color: var(--coral-dark); font-size: 10px; font-weight: 850; }
.merchant-offer-actions { grid-column: 2 / -1; display: flex; gap: 7px; justify-content: flex-end; }
.merchant-dashboard-lower { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.75fr); gap: 18px; }
.merchant-line-chart { height: 300px; display: grid; grid-template-rows: 1fr auto; gap: 10px; padding: 15px 8px 0; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); background: repeating-linear-gradient(to bottom, transparent 0, transparent 59px, rgba(236,231,229,.8) 60px); }
.merchant-line-chart svg { width: 100%; height: 100%; overflow: visible; }
.merchant-chart-labels { display: flex; justify-content: space-between; color: var(--muted); font-size: 10px; }
.merchant-conversion-card { display: grid; align-content: start; }
.merchant-funnel-row { display: grid; gap: 7px; padding: 11px 0; border-top: 1px solid var(--line); }
.merchant-funnel-row:first-of-type { border-top: 0; }
.merchant-funnel-row > div:first-child { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
.merchant-funnel-track { overflow: hidden; height: 8px; border-radius: 999px; background: #f2e5e6; }
.merchant-funnel-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--coral-2),var(--coral)); }
.merchant-spend-summary { margin-top: 15px; padding: 17px; border-radius: 12px; background: var(--ink); color: white; }
.merchant-spend-summary span,.merchant-spend-summary strong,.merchant-spend-summary small { display: block; }
.merchant-spend-summary strong { margin: 6px 0; font-size: 34px; }
.merchant-spend-summary small { color: rgba(255,255,255,.72); }
.merchant-offer-manage-row { padding: 16px 0; }
.merchant-offer-manage-head { display: flex; justify-content: space-between; gap: 12px; }
.merchant-offer-manage-head strong,.merchant-offer-manage-head span { display: block; }
.featured-order-status { display: flex; align-items: center; gap: 6px; margin: 10px 0; padding: 9px 10px; border-radius: 8px; color: var(--coral-dark); background: var(--coral-soft); font-size: 11px; font-weight: 850; }

.feature-offer-modal { max-width: 660px; }
.feature-price-hero { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px; padding: 18px; margin-bottom: 18px; border-radius: 14px; background: linear-gradient(135deg,var(--coral-dark),var(--coral)); color: white; }
.feature-price-hero > div { display: flex; align-items: flex-end; gap: 5px; }
.feature-price-hero span { font-size: 44px; font-weight: 950; letter-spacing: -.05em; }
.feature-price-hero small { margin-bottom: 8px; font-weight: 800; }
.feature-price-hero p { margin: 0; color: rgba(255,255,255,.86); line-height: 1.5; }
.feature-total-card { display: grid; align-content: center; gap: 3px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--blush); }
.feature-total-card span { color: var(--muted); font-size: 11px; }
.feature-total-card strong { font-size: 28px; }
.card-on-file { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.card-on-file > div { flex: 1; }
.card-on-file strong,.card-on-file span { display: block; }
.card-on-file span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.feature-agreement { grid-template-columns: 20px 1fr; align-items: start; }
.feature-agreement input { margin-top: 3px; }
.feature-agreement span { color: var(--muted); font-size: 12px; line-height: 1.5; }
.admin-manage-modal { max-width: 720px; }
.admin-modal-actions { display: flex; justify-content: flex-end; gap: 10px; }

body.pitch-active { overflow: hidden; }
.pitch-mode {
  position: fixed;
  inset: 0;
  z-index: 9999;
  width: 100vw;
  height: 100dvh;
  min-height: 100vh;
  display: block;
  overflow: hidden;
  background: var(--blush);
  touch-action: pan-y;
}
.pitch-stage { width: 100%; height: 100%; overflow: auto; display: grid; place-items: center; padding: 28px; background: radial-gradient(circle at 86% 8%,#ffe1e2 0,transparent 29%), var(--blush); }
.pitch-slide { width: min(1440px,100%); min-height: calc(100dvh - 56px); max-height: none; border-radius: 18px; }
.pitch-slide.single { min-height: calc(100dvh - 56px); }
.pitch-floating-close {
  position: fixed;
  top: max(14px,env(safe-area-inset-top));
  right: max(14px,env(safe-area-inset-right));
  z-index: 10003;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: rgba(20,21,33,.82);
  color: white;
  box-shadow: 0 12px 28px rgba(20,21,33,.2);
}
.pitch-floating-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 10002; height: 5px; background: rgba(255,255,255,.65); }
.pitch-floating-progress span { display: block; height: 100%; background: linear-gradient(90deg,var(--coral-2),var(--coral)); }
.pitch-floating-count { position: fixed; top: max(17px,env(safe-area-inset-top)); left: max(18px,env(safe-area-inset-left)); z-index: 10002; padding: 8px 11px; border-radius: 9px; background: rgba(255,255,255,.88); box-shadow: var(--shadow-sm); font-size: 12px; font-weight: 900; }
.pitch-floating-dots { position: fixed; left: 50%; bottom: max(16px,env(safe-area-inset-bottom)); z-index: 10002; transform: translateX(-50%); display: flex; gap: 6px; max-width: 72vw; overflow-x: auto; padding: 8px 10px; border-radius: 999px; background: rgba(255,255,255,.86); box-shadow: var(--shadow-sm); }
.pitch-floating-dots .pitch-dot { flex: 0 0 auto; border: 0; }
.pitch-swipe-hint { position: fixed; right: max(18px,env(safe-area-inset-right)); bottom: max(18px,env(safe-area-inset-bottom)); z-index: 10002; padding: 8px 11px; border-radius: 9px; background: rgba(20,21,33,.78); color: white; font-size: 11px; font-weight: 800; pointer-events: none; }
.pitch-pricing-slide .pitch-slide-copy { justify-content: flex-start; overflow: auto; }
.pitch-pricing-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.pitch-price-card { position: relative; display: flex; flex-direction: column; min-height: 430px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: var(--shadow-sm); }
.pitch-price-card.featured { border: 2px solid var(--coral); transform: translateY(-8px); }
.pitch-price-ribbon { align-self: flex-start; margin: -8px 0 12px; padding: 6px 8px; border-radius: 7px; background: var(--coral); color: white; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.pitch-price-card > p { margin-bottom: 10px; color: var(--ink); font-size: 16px; font-weight: 900; }
.pitch-price { display: flex; align-items: flex-end; gap: 5px; }
.pitch-price strong { font-size: 42px; letter-spacing: -.05em; }
.pitch-price span { margin-bottom: 7px; color: var(--muted); font-size: 12px; }
.pitch-price-card > small { margin: 6px 0 18px; color: var(--coral-dark); font-weight: 850; }
.pitch-price-features { display: grid; gap: 10px; flex: 1; margin-bottom: 20px; }
.pitch-price-features span { display: flex; gap: 7px; align-items: flex-start; color: var(--muted); font-size: 12px; line-height: 1.4; }

@media (max-width: 1050px) {
  .merchant-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .merchant-dashboard-main,.merchant-dashboard-lower { grid-template-columns: 1fr; }
  .pitch-pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pitch-price-card.featured { transform: none; }
}

@media (max-width: 720px) {
  .featured-merchant-rail { grid-auto-columns: calc((100% - 10px) / 2); gap: 10px; }
  .featured-merchant-card { grid-template-columns: 1fr; min-height: 260px; }
  .featured-merchant-image { min-height: 150px; }
  .featured-merchant-body { align-items: flex-start; flex-direction: column; padding: 12px; }
  .featured-merchant-body h3 { font-size: 14px; }
  .merchant-date-actions { width: 100%; flex-wrap: wrap; }
  .merchant-date-actions select,.merchant-date-actions .btn { flex: 1; }
  .merchant-kpi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .merchant-kpi-card { grid-template-columns: 40px 1fr; min-height: 105px; padding: 12px; }
  .merchant-kpi-card svg { display: none; }
  .merchant-kpi-card strong { font-size: 21px; }
  .merchant-dashboard-main,.merchant-dashboard-lower { gap: 12px; }
  .merchant-heatmap { min-height: 320px; }
  .merchant-offer-row { grid-template-columns: 38px minmax(0,1fr) auto; }
  .merchant-offer-actions { grid-column: 1 / -1; }
  .merchant-line-chart { height: 240px; }
  .pitch-stage { padding: 0; align-items: stretch; }
  .pitch-slide,.pitch-slide.single { width: 100%; min-height: 100dvh; border: 0; border-radius: 0; box-shadow: none; }
  .pitch-slide-copy { padding: 64px 22px 76px; }
  .pitch-slide-visual { min-height: 330px; }
  .pitch-swipe-hint { display: none; }
  .pitch-floating-count { top: 13px; left: 12px; }
  .pitch-floating-close { top: 10px; right: 10px; width: 42px; height: 42px; }
  .pitch-floating-dots { bottom: 10px; max-width: 88vw; }
  .pitch-pricing-grid { grid-template-columns: 1fr; }
  .pitch-price-card { min-height: 0; }
  .feature-price-hero { grid-template-columns: 1fr; }
  .admin-modal-actions { flex-direction: column-reverse; }
}
.offer-featured-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  color: var(--coral-dark);
  box-shadow: var(--shadow-sm);
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.merchant-analytics-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
@media (max-width: 1200px) { .merchant-analytics-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 720px) { .merchant-analytics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* Build 14: reliable pitch gestures + public City Partner application */
.pitch-mode {
  touch-action: pan-y pinch-zoom;
  overscroll-behavior: none;
  -webkit-user-select: none;
  user-select: none;
}
.pitch-stage {
  touch-action: pan-y;
  overscroll-behavior: contain;
  will-change: transform;
  -webkit-user-select: none;
  user-select: none;
}
.pitch-stage input,
.pitch-stage select,
.pitch-stage textarea,
.pitch-stage button,
.pitch-stage label {
  -webkit-user-select: auto;
  user-select: auto;
}

.partner-apply-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 28px;
  border: 1px solid #efcfd3;
  border-radius: var(--radius-lg);
  background: linear-gradient(120deg, #fff 0%, #fff0f2 100%);
  box-shadow: var(--shadow-sm);
}
.partner-apply-cta h2 { margin-bottom: 8px; }
.partner-apply-cta p:last-child { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.55; }
.partner-apply-cta .btn { flex: 0 0 auto; }

.partner-application-hero {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  align-items: center;
  gap: 28px;
  padding: 34px;
  margin-bottom: 22px;
  border: 1px solid #efcfd3;
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, #fff 0%, #fff1f3 65%, #ffe5e8 100%);
  box-shadow: var(--shadow);
}
.partner-application-hero h2 { max-width: 760px; font-size: clamp(30px,4vw,54px); }
.partner-application-hero p:last-child { max-width: 760px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.partner-hero-stat {
  display: grid;
  gap: 5px;
  padding: 26px;
  border-radius: 16px;
  background: var(--ink);
  color: var(--white);
}
.partner-hero-stat strong { font-size: clamp(54px,8vw,92px); line-height: .9; letter-spacing: -.07em; }
.partner-hero-stat span { font-weight: 900; }
.partner-hero-stat small { color: rgba(255,255,255,.72); line-height: 1.45; }

.partner-opportunity-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 18px;
}
.partner-opportunity-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 470px;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.partner-opportunity-card:hover { transform: translateY(-2px); }
.partner-opportunity-card.selected { border: 2px solid var(--coral); box-shadow: 0 18px 46px rgba(190,38,52,.14); }
.partner-opportunity-card.owner { background: linear-gradient(180deg,#fff,#fff7f8); }
.partner-opportunity-card.director { background: linear-gradient(180deg,#fff,#f8f7ff); }
.partner-opportunity-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.partner-opportunity-head > span { color: var(--coral-dark); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.partner-opportunity-head > strong { padding: 6px 8px; border-radius: 8px; background: var(--coral-soft); color: var(--coral-dark); font-size: 10px; text-transform: uppercase; }
.partner-opportunity-card h2 { margin: 14px 0 8px; }
.partner-opportunity-price { color: var(--muted); font-size: 16px; font-weight: 800; }
.partner-opportunity-commission { display: flex; align-items: flex-end; gap: 8px; margin: 18px 0; }
.partner-opportunity-commission strong { font-size: 52px; line-height: .9; letter-spacing: -.06em; }
.partner-opportunity-commission span { margin-bottom: 5px; color: var(--muted); font-weight: 800; }
.partner-opportunity-features { display: grid; gap: 12px; flex: 1; margin: 4px 0 24px; }
.partner-opportunity-features span { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.partner-opportunity-features svg { flex: 0 0 auto; color: var(--coral); }

.partner-application-layout { align-items: start; }
.partner-application-explainer { position: sticky; top: 96px; }
.partner-economics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 22px 0; }
.partner-economics > div {
  display: grid;
  gap: 4px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--blush);
}
.partner-economics span { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.partner-economics strong { font-size: 24px; }
.partner-economics small { color: var(--muted); line-height: 1.35; }
.partner-terms-note { padding: 16px; border-left: 4px solid var(--coral); background: var(--coral-soft); }
.partner-terms-note strong { color: var(--coral-dark); }
.partner-terms-note p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

.partner-application-success { max-width: 900px; margin: 0 auto; padding: 42px; text-align: center; }
.partner-application-success > p.subtle { max-width: 680px; margin: 0 auto 24px; }
.partner-success-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 24px 0; text-align: left; }
.partner-success-summary > div { display: grid; gap: 4px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--blush); }
.partner-success-summary span { color: var(--muted); font-size: 11px; }

.admin-application-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.admin-application-card { padding: 20px; }
.admin-application-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.admin-application-summary > div { display: grid; gap: 4px; padding: 11px; border-radius: 10px; background: var(--blush); }
.admin-application-summary span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.admin-application-summary strong { font-size: 13px; }
.admin-inline-select { min-height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); font-weight: 800; }
.partner-application-review-modal { max-width: 900px; }
.partner-review-hero { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding: 18px; border-radius: 14px; background: linear-gradient(120deg,#fff5f6,#fff); }
.partner-review-hero h2 { margin: 8px 0 4px; }
.partner-review-hero p { margin: 0; color: var(--muted); }
.partner-review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 16px 0; }
.partner-review-grid > div { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.partner-review-grid span,.partner-review-notes span { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.partner-review-notes { display: grid; gap: 10px; margin-bottom: 18px; }
.partner-review-notes > div { padding: 14px; border-left: 3px solid var(--coral); background: var(--blush); }
.partner-review-notes p { margin: 6px 0 0; color: var(--muted); line-height: 1.5; }

@media (max-width: 950px) {
  .partner-application-hero { grid-template-columns: 1fr; }
  .partner-opportunity-grid,.admin-application-grid { grid-template-columns: 1fr; }
  .partner-application-explainer { position: static; }
}

@media (max-width: 720px) {
  .partner-apply-cta { align-items: flex-start; flex-direction: column; padding: 22px; }
  .partner-apply-cta .btn { width: 100%; }
  .partner-application-hero { padding: 24px 20px; }
  .partner-opportunity-card { min-height: 0; padding: 22px; }
  .partner-economics,.partner-success-summary,.partner-review-grid { grid-template-columns: 1fr; }
  .partner-application-success { padding: 28px 18px; }
  .admin-application-card .card-actions { align-items: stretch; flex-direction: column; }
  .admin-inline-select { width: 100%; }
}

/* Build 15: merchant command center redesigned from the supplied dashboard reference */
.merchant-app-shell {
  min-height: 100vh;
  background: #f7f8fa;
  color: #171922;
}
.merchant-workspace {
  min-height: 100vh;
  margin-left: 252px;
}
.merchant-desktop-nav {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 50;
  width: 252px;
  display: flex;
  flex-direction: column;
  padding: 0 18px 20px;
  overflow-y: auto;
  border-right: 0;
  background: #111c2e;
}
.merchant-brand {
  height: 88px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid #eceef2;
  background: transparent;
  text-align: left;
}
.merchant-brand img {
  width: 84px;
  height: auto;
  flex: 0 0 auto;
}
.merchant-brand > span {
  display: grid;
  gap: 1px;
  padding-left: 10px;
  border-left: 1px solid #eceef2;
}
.merchant-brand strong {
  font-size: 14px;
  line-height: 1.1;
}
.merchant-brand small {
  color: #777b87;
  font-size: 11px;
}
.merchant-nav-list {
  display: grid;
  gap: 5px;
  padding: 18px 0;
}
.merchant-nav-button {
  width: 100%;
  min-height: 43px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #e6ebf2;
  text-align: left;
  font-size: 13px;
  font-weight: 690;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}
.merchant-nav-button:hover {
  transform: translateX(2px);
  background: rgba(255,255,255,.08);
  color: #fff;
}
.merchant-nav-button.active {
  color: #fff;
  background: linear-gradient(135deg, #ef4652, #db2e3b);
  box-shadow: 0 9px 20px rgba(219,46,59,.18);
}
.menu-scrim{display:none;border:0;padding:0}
.merchant-grow-card {
  margin-top: auto;
  padding: 0 14px 14px;
  overflow: hidden;
  border: 1px solid #eceef2;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(35,42,56,.06);
}
.merchant-grow-card strong {
  display: block;
  margin: 13px 0 7px;
  font-size: 13px;
}
.merchant-grow-card p {
  margin: 0 0 13px;
  color: #767b88;
  font-size: 11px;
  line-height: 1.55;
}
.merchant-grow-card .btn {
  min-height: 37px;
  border-radius: 7px;
  font-size: 11px;
}
.merchant-grow-art {
  position: relative;
  height: 125px;
  margin: 0 -14px;
  overflow: hidden;
  background: linear-gradient(180deg, #fff4f4 0%, #ffe4e7 55%, #f8bdc3 100%);
}
.merchant-grow-art::before,
.merchant-grow-art::after {
  content: "";
  position: absolute;
  bottom: -22px;
  width: 150px;
  height: 100px;
  transform: rotate(42deg);
  border-radius: 18px;
  background: #ee5a65;
}
.merchant-grow-art::before { left: -55px; background: #f6a0a8; }
.merchant-grow-art::after { right: -48px; background: #df3a48; }
.merchant-grow-art > span {
  position: absolute;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,185,117,.75);
}
.merchant-grow-art > span:nth-child(1) { top: 20px; left: 28px; }
.merchant-grow-art > span:nth-child(2) { width: 14px; height: 14px; top: 54px; right: 34px; background: #fff; }
.merchant-grow-art > span:nth-child(3) { width: 8px; height: 8px; top: 24px; right: 68px; background: #fff; }
.merchant-grow-art > div {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 20px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  transform: translateX(-50%);
  border-radius: 50% 50% 50% 8px;
  background: #cf2937;
  color: #fff;
  box-shadow: 0 10px 20px rgba(191,38,52,.25);
}
.merchant-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  height: 72px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 28px;
  border-bottom: 1px solid #e8eaee;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(16px);
}
.merchant-menu-button,
.merchant-top-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #4f5562;
}
.merchant-menu-button:hover,
.merchant-top-icon:hover { background: #f4f5f7; color: var(--coral-dark); }
.merchant-top-icon { position: relative; border-radius: 50%; font-weight: 900; }
.merchant-top-icon > span {
  position: absolute;
  top: 7px;
  right: 6px;
  width: 7px;
  height: 7px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--coral);
}
.merchant-topbar-spacer { flex: 1; }
.merchant-mobile-brand { display: none; align-items: center; gap: 8px; }
.merchant-mobile-brand img { width: 88px; }
.merchant-mobile-brand span { color: #777b87; font-size: 11px; font-weight: 800; }
.merchant-top-location {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 11px;
  min-height: 36px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  color: #5d6370;
  background: #fff;
}
.merchant-top-location select {
  max-width: 145px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #343946;
  font-size: 12px;
  font-weight: 750;
}
.merchant-owner-control {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 9px;
  padding-left: 12px;
  border-left: 1px solid #e8eaee;
}
.merchant-owner-avatar {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(135deg,var(--coral-2),var(--coral-dark));
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}
.merchant-owner-control > div { min-width: 0; }
.merchant-owner-control strong,
.merchant-owner-control span { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.merchant-owner-control strong { font-size: 11px; }
.merchant-owner-control span { margin-top: 2px; color: #8a8e98; font-size: 9px; }
.merchant-owner-control select {
  width: 23px;
  height: 32px;
  border: 0;
  outline: 0;
  color: #4f5562;
  background: transparent;
  font-size: 0;
  cursor: pointer;
}
.merchant-owner-control select option { color: #20242d; font-size: 12px; }
.merchant-main-content {
  min-height: calc(100vh - 72px);
  padding: 22px 28px 34px;
  background: #f8f9fb;
}
.merchant-page { max-width: 1500px; margin: 0 auto; }
.merchant-page .page-header h1 { font-size: clamp(28px,3vw,42px); }
.merchant-dashboard-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 20px;
}
.merchant-dashboard-heading h1 {
  margin: 0 0 5px;
  color: #15171e;
  font-size: clamp(25px,2.6vw,34px);
  line-height: 1.1;
  letter-spacing: -.035em;
}
.merchant-dashboard-heading p { margin: 0; color: #777c89; font-size: 12px; }
.merchant-dashboard-controls { display: flex; align-items: center; gap: 10px; }
.merchant-dashboard-controls label,
.merchant-filter-button {
  min-height: 39px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid #e1e4e9;
  border-radius: 8px;
  background: #fff;
  color: #4a505d;
  box-shadow: 0 3px 10px rgba(35,42,56,.025);
}
.merchant-dashboard-controls select { border: 0; outline: 0; background: transparent; font-size: 11px; font-weight: 720; }
.merchant-filter-button { font-size: 11px; font-weight: 750; }
.merchant-status-strip {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: -7px 0 15px;
  color: #777c89;
  font-size: 10px;
}
.merchant-status-strip strong { color: #313641; }
.merchant-notice { margin-bottom: 15px; }
.merchant-dashboard-v2 { gap: 16px; }
.merchant-kpi-grid-v2 {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}
.merchant-kpi-card-v2 {
  min-width: 0;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  grid-template-rows: auto auto;
  gap: 8px 11px;
  padding: 15px;
  border: 1px solid #e7e9ed;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(34,41,54,.05);
}
.merchant-kpi-icon-v2 {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  grid-row: 1;
  border-radius: 50%;
  background: #ffe7e9;
  color: var(--coral);
}
.merchant-kpi-copy-v2 { min-width: 0; }
.merchant-kpi-copy-v2 span,
.merchant-kpi-copy-v2 strong,
.merchant-kpi-copy-v2 small { display: block; }
.merchant-kpi-copy-v2 span { color: #373c48; font-size: 11px; font-weight: 760; }
.merchant-kpi-copy-v2 strong { margin: 3px 0; font-size: clamp(22px,2vw,29px); line-height: 1; letter-spacing: -.035em; }
.merchant-kpi-copy-v2 small { color: #8a8f9a; font-size: 9px; }
.merchant-kpi-trend {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  color: var(--coral);
}
.merchant-kpi-trend b { color: #179b5d; font-size: 9px; }
.merchant-kpi-trend svg { width: 76px; height: 27px; }
.merchant-secondary-metrics {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}
.merchant-secondary-metrics article {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 3px 16px;
  padding: 12px 16px;
  border: 1px solid #e7e9ed;
  border-radius: 10px;
  background: #fff;
}
.merchant-secondary-metrics span { display: inline-flex; align-items: center; gap: 7px; color: #555b68; font-size: 11px; font-weight: 740; }
.merchant-secondary-metrics strong { grid-row: 1 / span 2; grid-column: 2; font-size: 22px; letter-spacing: -.035em; }
.merchant-secondary-metrics small { color: #8a8f9a; font-size: 9px; }
.merchant-dashboard-main-v2 {
  grid-template-columns: minmax(0,1.6fr) minmax(310px,.82fr);
  gap: 14px;
}
.merchant-dashboard-v2 .panel {
  border: 1px solid #e7e9ed;
  border-radius: 11px;
  box-shadow: 0 7px 20px rgba(34,41,54,.045);
}
.merchant-panel-title {
  min-height: 48px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
  padding-bottom: 11px;
  border-bottom: 1px solid #eceef2;
}
.merchant-panel-title h3 { margin: 0 0 3px; font-size: 13px; }
.merchant-panel-title span { color: #8b909a; font-size: 9px; }
.merchant-map-toggle {
  display: flex;
  overflow: hidden;
  border: 1px solid #e1e4e9;
  border-radius: 7px;
}
.merchant-map-toggle button {
  min-height: 31px;
  padding: 0 12px;
  border: 0;
  background: #fff;
  color: #676d79;
  font-size: 9px;
  font-weight: 750;
}
.merchant-map-toggle button.active { background: var(--coral); color: #fff; }
.merchant-map-v2 {
  position: relative;
  min-height: 342px;
  overflow: hidden;
  border-radius: 9px;
  background: #e9eadf;
  isolation: isolate;
}
.merchant-map-water-v2 {
  position: absolute;
  inset: 0 auto 0 0;
  width: 23%;
  background: linear-gradient(135deg,#8fd2e8,#c8edf5);
  clip-path: polygon(0 0,100% 0,68% 25%,94% 48%,56% 69%,86% 100%,0 100%);
}
.merchant-map-grid-v2 {
  position: absolute;
  inset: 0;
  opacity: .65;
  background:
    repeating-linear-gradient(18deg,transparent 0 31px,rgba(255,255,255,.96) 32px 36px),
    repeating-linear-gradient(101deg,transparent 0 45px,rgba(255,255,255,.92) 46px 50px),
    repeating-linear-gradient(0deg,transparent 0 74px,rgba(210,211,198,.8) 75px 76px);
}
.merchant-road-v2 { position: absolute; z-index: 1; height: 9px; border: 3px solid #fff; border-radius: 999px; background: #f3d5b9; box-shadow: 0 0 0 1px rgba(205,178,149,.45); }
.merchant-road-v2.road-a { width: 78%; left: 19%; top: 44%; transform: rotate(-8deg); }
.merchant-road-v2.road-b { width: 58%; left: 34%; top: 66%; transform: rotate(18deg); }
.merchant-road-v2.road-c { width: 47%; left: 29%; top: 21%; transform: rotate(31deg); }
.merchant-map-label-v2 { position: absolute; z-index: 2; color: #9a978e; font-size: 8px; font-weight: 700; transform: rotate(-8deg); }
.merchant-map-label-v2.l1 { left: 26%; top: 47%; }
.merchant-map-label-v2.l2 { left: 59%; top: 32%; transform: rotate(31deg); }
.merchant-map-label-v2.l3 { right: 16%; bottom: 18%; transform: rotate(18deg); }
.merchant-heat-v2 {
  position: absolute;
  z-index: 2;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: radial-gradient(circle,rgba(239,56,68,.78) 0,rgba(239,56,68,.4) 28%,rgba(239,56,68,.12) 55%,transparent 73%);
}
.merchant-heat-v2.h1 { left: 22%; top: 20%; }
.merchant-heat-v2.h2 { left: 40%; top: 44%; transform: scale(1.28); }
.merchant-heat-v2.h3 { right: 9%; top: 17%; transform: scale(.82); }
.merchant-heat-v2.h4 { left: 29%; bottom: -4%; transform: scale(.78); }
.merchant-heat-v2.h5 { right: 23%; bottom: 8%; transform: scale(.7); }
.merchant-pin-v2 {
  position: absolute;
  z-index: 4;
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  transform: rotate(45deg);
  border: 3px solid #fff;
  border-radius: 50% 50% 50% 7px;
  background: var(--coral);
  color: #fff;
  box-shadow: 0 7px 15px rgba(191,38,52,.23);
}
.merchant-pin-v2 svg { transform: rotate(-45deg); }
.merchant-pin-v2.p1 { left: 27%; top: 27%; }
.merchant-pin-v2.p2 { right: 18%; top: 29%; }
.merchant-pin-v2.p3 { left: 35%; bottom: 14%; }
.merchant-pin-v2.business { left: 51%; top: 48%; width: 48px; height: 48px; border-radius: 50% 50% 50% 10px; background: #c82534; }
.merchant-map-zoom { position: absolute; z-index: 5; left: 10px; top: 10px; display: grid; overflow: hidden; border-radius: 5px; box-shadow: 0 4px 12px rgba(35,42,56,.16); }
.merchant-map-zoom button { width: 28px; height: 28px; border: 0; border-bottom: 1px solid #e7e9ed; background: #fff; font-weight: 850; }
.merchant-map-info { position: absolute; z-index: 5; right: 10px; bottom: 10px; width: 28px; height: 28px; border: 0; border-radius: 50%; background: rgba(255,255,255,.96); color: #555b68; font-weight: 900; box-shadow: 0 4px 12px rgba(35,42,56,.12); }
.merchant-live-offers-v2 { min-width: 0; }
.merchant-offer-row-new {
  display: grid;
  grid-template-columns: 54px minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
}
.merchant-offer-row-new > img { width: 54px; height: 48px; border-radius: 7px; object-fit: cover; }
.merchant-offer-row-new > div:nth-child(2) { min-width: 0; }
.merchant-offer-row-new strong,
.merchant-offer-row-new span,
.merchant-offer-row-new small { display: block; }
.merchant-offer-row-new strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.merchant-offer-row-new span { margin-top: 4px; color: #858a95; font-size: 8px; }
.merchant-offer-row-new small { margin-top: 3px; color: var(--coral-dark); font-size: 7px; font-weight: 800; }
.merchant-offer-score { min-width: 46px; text-align: center; }
.merchant-offer-score b { display: block; font-size: 11px; }
.merchant-offer-score span { margin: 1px 0 5px; font-size: 7px; }
.merchant-offer-score .status { display: inline-flex; padding: 3px 7px; font-size: 7px; }
.merchant-offer-actions-new { grid-column: 2 / -1; display: flex; justify-content: flex-end; gap: 7px; margin-top: -5px; }
.merchant-offer-actions-new button { padding: 0; font-size: 8px; }
.merchant-dashboard-lower-v2 { grid-template-columns: minmax(0,1.55fr) minmax(300px,.72fr); gap: 14px; }
.merchant-trend-card-v2 .merchant-line-chart { height: 250px; }
.merchant-trend-card-v2 select {
  min-height: 32px;
  padding: 0 9px;
  border: 1px solid #e1e4e9;
  border-radius: 7px;
  background: #fff;
  font-size: 9px;
  font-weight: 720;
}
.merchant-conversion-card-v2 { align-content: start; }
.merchant-conversion-card-v2 .merchant-spend-summary { border-radius: 9px; }
.merchant-mobile-nav { display: none; }

@media (max-width: 1220px) {
  .merchant-workspace { margin-left: 220px; }
  .merchant-desktop-nav { width: 220px; }
  .merchant-brand img { width: 72px; }
  .merchant-kpi-grid-v2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .merchant-dashboard-main-v2,
  .merchant-dashboard-lower-v2 { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .merchant-workspace { margin-left: 0; }
  .merchant-desktop-nav {
    width: min(280px,86vw);
    transform: translateX(-105%);
    transition: transform .22s ease;
    box-shadow: 20px 0 45px rgba(20,25,35,.15);
  }
  .merchant-app-shell.nav-open .merchant-desktop-nav { transform: translateX(0); }
  .menu-scrim {
    position: fixed;
    inset: 0;
    z-index: 45;
    background: rgba(17,20,28,.35);
    backdrop-filter: blur(2px);
  }
  .merchant-app-shell.nav-open .menu-scrim,
  .app-shell.nav-open .menu-scrim { display:block; }
  .merchant-app-shell.nav-open .merchant-desktop-nav { z-index: 55; }
  .merchant-mobile-brand { display: flex; }
  .merchant-top-location { display: none; }
  .merchant-main-content { padding-bottom: 88px; }
  .merchant-mobile-nav { display: flex; }
}
@media (max-width: 680px) {
  .merchant-topbar { height: 64px; padding: 0 12px; gap: 6px; }
  .merchant-topbar .backend-badge,
  .merchant-topbar .merchant-top-icon[aria-label="Help"],
  .merchant-owner-control > div { display: none; }
  .merchant-owner-control { padding-left: 6px; border-left: 0; }
  .merchant-owner-control select { width: 20px; }
  .merchant-main-content { min-height: calc(100vh - 64px); padding: 16px 12px 90px; }
  .merchant-dashboard-heading { align-items: stretch; flex-direction: column; gap: 13px; }
  .merchant-dashboard-controls { display: grid; grid-template-columns: 1fr auto; }
  .merchant-dashboard-controls label { min-width: 0; }
  .merchant-dashboard-controls select { min-width: 0; width: 100%; }
  .merchant-kpi-grid-v2 { grid-template-columns: 1fr 1fr; gap: 9px; }
  .merchant-kpi-card-v2 { grid-template-columns: 34px minmax(0,1fr); padding: 11px; }
  .merchant-kpi-icon-v2 { width: 34px; height: 34px; }
  .merchant-kpi-copy-v2 span { font-size: 9px; }
  .merchant-kpi-copy-v2 strong { font-size: 20px; }
  .merchant-kpi-trend svg { display: none; }
  .merchant-secondary-metrics { grid-template-columns: 1fr; }
  .merchant-secondary-metrics article { padding: 11px 12px; }
  .merchant-map-v2 { min-height: 285px; }
  .merchant-offer-row-new { grid-template-columns: 46px minmax(0,1fr) auto; }
  .merchant-offer-row-new > img { width: 46px; height: 43px; }
  .merchant-trend-card-v2 .merchant-line-chart { height: 220px; }
}

/* BUILD 16 — Passport, live video, demand intelligence, Prospect Map, Yipp Leads, ROI, Budget + Surprise Me */
.btn-surprise{background:#17191f;color:#fff;border-color:#17191f;font-weight:900;letter-spacing:.04em}.btn-surprise:hover{transform:translateY(-1px)}

/* Passport */
.passport-hero{margin:24px 0 10px;background:linear-gradient(135deg,#1b1d24 0%,#272a33 58%,#3a2528 100%);color:#fff;border-radius:24px;padding:34px;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:34px;align-items:center;overflow:hidden;position:relative}.passport-hero:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-80px;top:-120px}.passport-sponsored{display:inline-flex;background:rgba(255,255,255,.12);padding:8px 12px;border-radius:999px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.passport-hero h2{font-size:30px;margin:15px 0 8px}.passport-hero p{max-width:700px;color:rgba(255,255,255,.76);line-height:1.6}.passport-summary{display:flex;gap:10px;align-items:baseline;margin-top:24px;flex-wrap:wrap}.passport-summary strong{font-size:30px}.passport-summary span{font-size:12px;color:rgba(255,255,255,.62);margin-right:15px}.passport-book{justify-self:end;width:220px;aspect-ratio:.74;background:linear-gradient(145deg,#ef4854,#c92d3a);border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.28);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.22);position:relative;z-index:1}.passport-book svg{margin-bottom:15px}.passport-book strong{font-size:40px;letter-spacing:-.06em}.passport-book>span{letter-spacing:.22em;font-size:12px;font-weight:900}.passport-book small{margin-top:30px;border-top:1px solid rgba(255,255,255,.28);padding-top:12px;width:70%;text-align:center;color:rgba(255,255,255,.75)}
.passport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.passport-trail{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 10px 26px rgba(21,24,33,.04)}.passport-trail.complete{border-color:#f0abb1;background:linear-gradient(180deg,#fff 0%,#fff9f9 100%)}.passport-trail-top{display:flex;gap:12px;align-items:flex-start}.passport-trail-top>div:nth-child(2){flex:1}.passport-trail-top h3{margin:2px 0 3px;font-size:19px}.passport-trail-top span:not(.passport-complete){font-size:12px;color:var(--muted)}.passport-trail-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff0f2;color:var(--coral-dark)}.passport-complete{display:inline-flex;gap:5px;align-items:center;background:#e8f7ed;color:#17763b;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900}.passport-stamp-row{display:flex;gap:8px;margin:22px 0 12px}.passport-stamp{width:34px;height:34px;border:1.5px dashed #d7d9df;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#a1a4ac;font-weight:900}.passport-stamp.earned{background:var(--coral);color:white;border-style:solid;border-color:var(--coral)}.passport-progress{height:6px;background:#f0f1f4;border-radius:99px;overflow:hidden}.passport-progress span{display:block;height:100%;background:var(--coral);border-radius:99px}.passport-reward{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:12px;color:var(--muted)}.passport-reward strong{color:var(--text)}.passport-history{display:flex;align-items:center;gap:12px;padding:13px 0}.passport-history-mark{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff0f2;color:var(--coral-dark)}.passport-history>div{flex:1}.passport-history strong,.passport-history span{display:block}.passport-history>div span{font-size:11px;color:var(--muted);margin-top:3px}.passport-how>div{display:flex;gap:12px;align-items:flex-start;margin:16px 0}.passport-how>div>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#1d2027;color:white;font-weight:900;font-size:12px}.passport-how p{margin:4px 0 0;line-height:1.5;color:var(--muted)}.passport-how p strong{color:var(--text)}

/* Live vertical merchant video */
.yipp-video-section{overflow:hidden}.yipp-video-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,220px);gap:14px;overflow-x:auto;padding:3px 3px 14px;scroll-snap-type:x mandatory;scrollbar-width:thin}.yipp-video-card{scroll-snap-align:start;cursor:pointer}.yipp-video-frame{aspect-ratio:9/14;border-radius:17px;overflow:hidden;position:relative;background:#15171c;box-shadow:0 10px 28px rgba(20,24,32,.14)}.yipp-video-frame img,.yipp-video-frame video{width:100%;height:100%;object-fit:cover;display:block}.yipp-video-frame:after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(transparent,rgba(0,0,0,.55));pointer-events:none}.yipp-video-play{position:absolute;left:12px;bottom:12px;z-index:2;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:#1b1d23}.yipp-video-live{position:absolute;right:10px;top:10px;z-index:2;background:var(--coral);color:white;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;text-transform:uppercase}.yipp-video-copy{padding:10px 4px}.yipp-video-copy strong,.yipp-video-copy span{display:block}.yipp-video-copy strong{font-size:13px}.yipp-video-copy span{font-size:11px;color:var(--muted);margin-top:3px}.merchant-video-layout{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(420px,1.2fr);gap:18px}.merchant-video-list{display:grid}.merchant-video-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.merchant-video-row:first-child{border-top:0}.merchant-video-thumb{width:56px;height:76px;border-radius:10px;background:#1a1d23;display:grid;place-items:center;overflow:hidden;color:white}.merchant-video-thumb video{width:100%;height:100%;object-fit:cover}.merchant-video-row strong,.merchant-video-row span{display:block}.merchant-video-row span{font-size:11px;color:var(--muted);margin-top:4px}

/* Vacation Budget + Surprise */
.budget-hero{background:linear-gradient(135deg,#fff7f8,#fff);border:1px solid #f1d8db;border-radius:22px;padding:28px;display:grid;grid-template-columns:280px 1fr;gap:26px;align-items:center}.budget-hero>div>strong{font-size:56px;letter-spacing:-.06em;display:block}.budget-hero>div>span:last-child{font-size:12px;color:var(--muted)}.budget-controls{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) auto;gap:10px;align-items:end}.budget-controls label{font-size:11px;font-weight:800;color:var(--muted)}.budget-controls input,.budget-controls select{margin-top:6px;width:100%;height:42px}.budget-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.budget-plan-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:20px}.budget-plan-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.budget-plan-head span{font-size:11px;font-weight:900;text-transform:uppercase;color:var(--muted)}.budget-plan-head strong{font-size:28px}.budget-stops{display:grid;gap:11px}.budget-stops>div{display:flex;gap:9px;align-items:flex-start}.budget-stops>div>span{width:25px;height:25px;border-radius:50%;background:#f1f2f5;display:grid;place-items:center;font-size:10px;font-weight:900}.budget-stops>div div{min-width:0}.budget-stops strong,.budget-stops small{display:block}.budget-stops strong{font-size:12px}.budget-stops small{font-size:10px;color:var(--muted);margin-top:2px}.budget-math{border-top:1px solid var(--line);margin:16px 0;padding-top:12px;display:grid;gap:7px}.budget-math span{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.budget-math .budget-save{color:#15783d}.surprise-banner{background:#17191f;color:white;border-radius:22px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}.surprise-banner h2{font-size:28px;margin:7px 0}.surprise-banner p{color:rgba(255,255,255,.68);max-width:650px}.surprise-yipp{display:inline-block;color:var(--coral);font-size:12px;font-weight:950;letter-spacing:.14em}.surprise-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.surprise-choice input{position:absolute;opacity:0}.surprise-choice span{height:46px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;font-size:12px;font-weight:850;cursor:pointer}.surprise-choice input:checked+span{background:#fff0f2;border-color:#f5aab1;color:var(--coral-dark)}.surprise-submit{font-size:18px;letter-spacing:.05em}.surprise-result-modal{background:#15171d;color:#fff;overflow:hidden}.surprise-countdown{min-height:450px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.surprise-countdown span{font-size:12px;letter-spacing:.18em;color:rgba(255,255,255,.55);font-weight:900}.surprise-countdown strong{font-size:150px;line-height:1;color:var(--coral);letter-spacing:-.08em}.surprise-countdown small{color:rgba(255,255,255,.55)}.surprise-reveal{display:flex;flex-direction:column;padding-bottom:22px}.surprise-reveal[hidden]{display:none}.surprise-reveal-image{height:300px;margin:-1px -1px 20px}.surprise-reveal-image img{width:100%;height:100%;object-fit:cover}.surprise-reveal>p,.surprise-reveal>h2,.surprise-reveal>.meta-row,.surprise-reveal>.card-actions{margin-left:24px;margin-right:24px}.surprise-reveal h2{font-size:32px;margin-top:5px}.surprise-reveal>p:not(.eyebrow){color:rgba(255,255,255,.68)}.surprise-reveal .meta-row{color:rgba(255,255,255,.7)}

/* Merchant Yipp Leads + ROI */
.lead-funnel{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:22px 0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.lead-funnel-step{position:relative;min-height:140px;padding:22px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}.lead-funnel-step:last-child{border-right:0}.lead-funnel-step>span{color:var(--coral-dark);margin-bottom:8px}.lead-funnel-step strong{font-size:30px}.lead-funnel-step small{color:var(--muted);margin-top:3px}.lead-funnel-step b{position:absolute;right:-11px;z-index:2;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:11px;color:var(--muted)}.lead-action-row{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.lead-action-row:first-of-type{border-top:0}.lead-action-row span{color:var(--coral-dark)}.lead-action-row strong{font-size:13px}.lead-action-row b{font-size:14px}.roi-live-card>strong{font-size:54px;letter-spacing:-.05em;display:block;margin:12px 0 0}.roi-live-card>span{font-size:12px;color:var(--muted)}.roi-live-math{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:13px 0;font-size:12px}.roi-live-math:first-of-type{margin-top:20px}.roi-statement{background:#151820;color:#fff;border-radius:22px;padding:30px}.roi-statement-brand{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:18px}.roi-statement-brand img{width:96px;filter:brightness(0) invert(1)}.roi-statement-brand span{font-size:11px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.08em}.roi-statement h2{font-size:32px;line-height:1.28;max-width:920px;margin:26px 0}.roi-statement h2 strong{color:#ff7b85}.roi-statement-grid{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid rgba(255,255,255,.12);border-radius:15px;overflow:hidden}.roi-statement-grid>div{padding:18px;border-right:1px solid rgba(255,255,255,.1)}.roi-statement-grid>div:last-child{border-right:0}.roi-statement-grid span,.roi-statement-grid strong{display:block}.roi-statement-grid span{font-size:10px;color:rgba(255,255,255,.55);margin-bottom:5px}.roi-statement-grid strong{font-size:20px}.roi-statement>p{color:rgba(255,255,255,.48);font-size:10px;margin:16px 0;max-width:920px}

/* Demand Gap intelligence */
.demand-destination-select{height:42px;min-width:190px}.demand-gap-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:18px}.demand-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.demand-row:first-of-type{border-top:0}.demand-rank{width:28px;height:28px;border-radius:50%;background:#f1f2f5;display:grid;place-items:center;font-size:11px;font-weight:900}.demand-copy strong,.demand-copy span{display:block}.demand-copy strong{font-size:13px}.demand-copy span{font-size:10px;color:var(--muted);margin-top:4px}.demand-opportunity-card{background:linear-gradient(160deg,#fff8f8,#fff)}.demand-opportunity-card h2{font-size:30px;line-height:1.2;margin:10px 0}.demand-opportunity-card>p{color:var(--muted);line-height:1.55}.demand-opportunity-example{background:#191b21;color:white;border-radius:15px;padding:18px;margin:22px 0}.demand-opportunity-example span,.demand-opportunity-example strong,.demand-opportunity-example small{display:block}.demand-opportunity-example span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#ff8089}.demand-opportunity-example strong{font-size:16px;margin:9px 0}.demand-opportunity-example small{color:rgba(255,255,255,.55)}.search-demand-form{display:grid;grid-template-columns:1fr auto;gap:8px}.search-demand-form input{height:46px}.search-result-summary{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.search-result-summary span{color:var(--muted);text-align:right}

/* City Partner Prospect Map */
.prospect-layout{display:grid;grid-template-columns:minmax(520px,1.15fr) minmax(430px,.85fr);gap:18px}.prospect-map{min-height:650px;position:relative;overflow:hidden;background:linear-gradient(145deg,#f0eee5,#eef3e9)}.prospect-map:before{content:"";position:absolute;inset:-10%;background:repeating-linear-gradient(26deg,transparent 0 38px,rgba(255,255,255,.8) 39px 43px),repeating-linear-gradient(117deg,transparent 0 68px,rgba(255,255,255,.55) 69px 73px);opacity:.9}.prospect-map:after{content:"";position:absolute;width:30%;height:110%;background:#bfe4f1;left:-8%;top:-6%;transform:rotate(-10deg);border-radius:50%}.prospect-map-grid{position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(95,161,72,.15),transparent 16%),radial-gradient(circle at 45% 72%,rgba(95,161,72,.18),transparent 18%)}.prospect-map-label{position:absolute;left:18px;bottom:18px;z-index:4;background:rgba(255,255,255,.94);padding:12px 15px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08)}.prospect-map-label strong,.prospect-map-label span{display:block}.prospect-map-label span{font-size:10px;color:var(--muted);margin-top:3px}.prospect-pin{position:absolute;z-index:3;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50% 50% 50% 10%;rotate:-45deg;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.22);display:grid;place-items:center;background:#78808f;color:#fff}.prospect-pin svg{rotate:45deg}.prospect-pin.stage-yipp-merchant{background:#2da466}.prospect-pin.stage-prospect{background:#7c838f}.prospect-pin.stage-contacted{background:#e6a33a}.prospect-pin.stage-presentation{background:#ef4854}.prospect-pin.stage-follow-up{background:#8269d4}.prospect-pin.stage-declined{background:#40434b}.prospect-pin.stage-closed{background:#1f9260}.prospect-list{max-height:650px;overflow:auto}.prospect-stage-legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 8px}.prospect-stage-legend span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;background:#f2f3f5;border-radius:999px;padding:5px 7px}.prospect-row{display:grid;grid-template-columns:12px minmax(0,1fr) 105px 130px;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.prospect-dot{width:9px;height:9px;border-radius:50%;background:#7c838f}.prospect-dot.stage-yipp-merchant{background:#2da466}.prospect-dot.stage-contacted{background:#e6a33a}.prospect-dot.stage-presentation{background:#ef4854}.prospect-dot.stage-follow-up{background:#8269d4}.prospect-dot.stage-declined{background:#40434b}.prospect-dot.stage-closed{background:#1f9260}.prospect-row strong,.prospect-row span{display:block}.prospect-row>div:nth-child(2)>strong{font-size:12px}.prospect-row>div:nth-child(2)>span{font-size:9px;color:var(--muted);margin-top:3px}.prospect-money{text-align:right}.prospect-money strong{font-size:12px;color:var(--coral-dark)}.prospect-money span{font-size:8px;color:var(--muted)}.prospect-stage-select{height:34px;font-size:10px}

/* Business action panel */
.business-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.business-action-grid button{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:65px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--text);font-size:10px;font-weight:800;cursor:pointer}.business-action-grid button:hover{background:#fff5f6;border-color:#f2b8bd;color:var(--coral-dark)}

@media (max-width:1100px){.passport-grid,.budget-plan-grid{grid-template-columns:1fr 1fr}.budget-controls{grid-template-columns:1fr 1fr}.merchant-video-layout,.demand-gap-layout,.prospect-layout{grid-template-columns:1fr}.prospect-map{min-height:500px}.roi-statement-grid{grid-template-columns:repeat(3,1fr)}.roi-statement-grid>div:nth-child(3){border-right:0}.lead-funnel{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto}.passport-hero{grid-template-columns:1fr 190px}.passport-book{width:180px}}
@media (max-width:720px){.passport-hero{grid-template-columns:1fr;padding:24px}.passport-book{justify-self:start;width:150px}.passport-grid,.budget-plan-grid{grid-template-columns:1fr}.budget-hero{grid-template-columns:1fr}.budget-controls{grid-template-columns:1fr 1fr}.budget-controls .btn{grid-column:1/-1}.surprise-banner{align-items:flex-start;flex-direction:column}.surprise-choice-grid{grid-template-columns:1fr 1fr}.yipp-video-rail{grid-auto-columns:44vw}.merchant-video-layout{grid-template-columns:1fr}.merchant-video-row{grid-template-columns:56px minmax(0,1fr)}.merchant-video-row .btn{grid-column:2}.lead-funnel{grid-template-columns:repeat(5,135px)}.roi-statement{padding:22px}.roi-statement h2{font-size:25px}.roi-statement-grid{grid-template-columns:1fr 1fr}.roi-statement-grid>div{border-bottom:1px solid rgba(255,255,255,.1)}.demand-row{grid-template-columns:30px minmax(0,1fr) auto}.demand-row .btn{grid-column:2/-1;justify-self:start}.prospect-row{grid-template-columns:10px minmax(0,1fr) 90px}.prospect-row select,.prospect-row>.status{grid-column:2/-1}.business-action-grid{grid-template-columns:1fr 1fr}.search-result-summary{display:block}.search-result-summary span{display:block;text-align:left;margin-top:4px}.prospect-map{min-height:430px}.passport-hero h2{font-size:25px}}

@media print{.merchant-sidebar,.merchant-topbar,.sidebar,.topbar,.page-header-actions,.btn{display:none!important}.merchant-main,.main-content{margin:0!important;padding:0!important}.roi-statement{break-inside:avoid;background:#fff!important;color:#111!important;border:1px solid #ddd}.roi-statement h2 strong,.roi-statement-grid strong{color:#111!important}.roi-statement-brand span,.roi-statement>p,.roi-statement-grid span{color:#555!important}.roi-statement-brand img{filter:none}.roi-statement-grid{border-color:#ddd}.roi-statement-grid>div{border-color:#ddd}}
.passport-reward-hero{background:linear-gradient(135deg,#17191f,#302326);color:#fff;border-radius:18px;padding:28px;text-align:center;margin-bottom:20px}.passport-reward-hero svg{color:#ff6d77}.passport-reward-hero span,.passport-reward-hero strong{display:block}.passport-reward-hero span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);margin:12px 0 5px}.passport-reward-hero strong{font-size:28px;letter-spacing:.04em}

/* Build 17 — Yipp Right Now + Yipp Pulse */
.right-now-mode-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0 12px;color:var(--muted);font-size:12px;font-weight:800}
.right-now-mode{border:1px solid var(--line);background:#fff;padding:7px 10px;border-radius:9px;font:inherit;color:var(--charcoal);cursor:pointer}
.right-now-mode.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.yipp-me-hero-button{width:100%;display:grid;grid-template-columns:1fr auto;grid-template-areas:'title arrow' 'sub arrow';align-items:center;text-align:left;gap:2px 14px;border:0;border-radius:18px;padding:18px 20px;margin:0 0 12px;background:linear-gradient(135deg,var(--coral-dark),var(--coral));color:#fff;box-shadow:0 16px 35px rgba(226,57,67,.22);cursor:pointer}
.yipp-me-hero-button>span{grid-area:title;font-size:30px;font-weight:950;letter-spacing:-.04em}.yipp-me-hero-button>small{grid-area:sub;font-weight:750;opacity:.9}.yipp-me-hero-button>svg{grid-area:arrow}
.right-now-section{margin-top:18px}.right-now-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(330px,42%);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px}.right-now-card{scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}.right-now-image{height:170px;position:relative}.right-now-image img{width:100%;height:100%;object-fit:cover}.ready-now-badge{position:absolute;left:12px;top:12px;padding:7px 9px;border-radius:8px;background:#1f9d67;color:#fff;font-size:10px;font-weight:950;letter-spacing:.04em}.right-now-copy{padding:15px}.right-now-copy h3{margin:3px 0}.right-now-boost{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0;padding:10px;border-radius:10px;background:var(--coral-soft);color:var(--coral-dark)}.right-now-boost span{font-size:10px;font-weight:900;text-transform:uppercase}.right-now-reasons{display:grid;gap:5px;margin:10px 0 13px}.right-now-reasons span{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--muted);font-weight:750}.right-now-reasons svg{color:#1f9d67}
.surprise-why{display:grid;gap:6px;margin:14px 0;padding:12px;border-radius:12px;background:#fff7f8;border:1px solid #f2d9dc}.surprise-why strong{font-size:12px}.surprise-why span{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
.merchant-right-now-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:14px;margin:16px 0}.merchant-ready-card,.merchant-demand-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:18px;box-shadow:var(--shadow-sm)}.merchant-ready-card{display:flex;justify-content:space-between;align-items:center;gap:18px}.merchant-ready-card.active{border-color:#a8dfc8;background:linear-gradient(135deg,#f4fff9,#fff)}.merchant-ready-card h2{margin:2px 0 5px}.merchant-ready-card p{margin:0;color:var(--muted);max-width:620px}.merchant-ready-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.merchant-demand-card{display:flex;flex-direction:column;justify-content:center}.merchant-demand-card>strong{font-size:34px;letter-spacing:-.04em}.merchant-demand-card>span{font-weight:800}.merchant-demand-card>small{color:var(--muted);margin:4px 0 7px}.pulse-mini-banner{display:flex;align-items:end;gap:10px;padding:14px;border-radius:12px;background:linear-gradient(135deg,#fff1f3,#fff);margin-bottom:16px}.pulse-mini-banner strong{font-size:34px;color:var(--coral-dark)}.pulse-mini-banner span{font-weight:800;padding-bottom:5px}
.pulse-destination-select{min-width:180px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;font-weight:800}.pulse-hero{display:grid;grid-template-columns:1.3fr .9fr;gap:20px;align-items:center;padding:24px;border-radius:18px;background:linear-gradient(135deg,#191a24,#2e3140);color:#fff}.pulse-hero p{color:#d8dae4;max-width:700px}.pulse-live-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pulse-live-stack div{padding:14px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.pulse-live-stack strong{display:block;font-size:26px}.pulse-live-stack span{display:block;font-size:10px;color:#d7d9e1}.pulse-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pulse-demand-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px 14px;align-items:center;padding:16px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.pulse-demand-card.hot{border-color:#efb5bc;background:linear-gradient(180deg,#fff9fa,#fff)}.pulse-demand-rank{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--coral-soft);color:var(--coral-dark);font-weight:950}.pulse-demand-label{display:block;color:var(--muted);font-size:11px;font-weight:850}.pulse-demand-card strong{font-size:23px}.pulse-demand-card small{display:block;color:var(--muted)}.pulse-demand-supply{text-align:right}.pulse-demand-supply strong{display:block;font-size:18px}.pulse-demand-supply span{font-size:10px;color:var(--muted)}.pulse-gap-meter{grid-column:1/-1;height:7px;border-radius:999px;background:#f1e6e8;overflow:hidden}.pulse-gap-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--coral-2),var(--coral))}.pulse-card-footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;font-weight:800;color:var(--coral-dark)}.pulse-recruit-row{display:flex;gap:12px;align-items:center;padding:13px 0}.pulse-recruit-row>div{flex:1}.pulse-recruit-row span{display:block;color:var(--muted);font-size:11px}.pulse-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:22px 0}.pulse-flow span{padding:9px 11px;border-radius:9px;background:var(--blush-2);font-weight:850;font-size:12px}
.group-empty{text-align:center;max-width:720px;margin:30px auto;padding:40px;border:1px solid var(--line);border-radius:18px;background:#fff}.group-empty p{color:var(--muted);font-size:16px}.group-qr-mark{width:80px;height:80px;display:grid;place-items:center;margin:0 auto 12px;border-radius:18px;background:var(--coral-soft);color:var(--coral-dark)}.group-decision-hero{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center;padding:22px;border-radius:17px;background:#1f202b;color:#fff}.group-decision-hero h2{font-size:38px;margin:2px 0}.group-decision-hero p{color:#d9dbe2}.group-share-box{display:flex;gap:8px}.group-share-box input{min-width:0;flex:1;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:10px}.group-vote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.group-vote-card{display:grid;grid-template-columns:140px 1fr;gap:14px;padding:12px;border-radius:15px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.group-vote-card.leading{border-color:#a8dfc8}.group-vote-card img{width:140px;height:100%;min-height:170px;object-fit:cover;border-radius:10px}.group-vote-card h3{margin:8px 0 3px}.group-vote-card p{margin:0;color:var(--muted);font-size:12px}.group-vote-count{display:flex;align-items:baseline;gap:5px;margin:12px 0}.group-vote-count strong{font-size:27px}.group-vote-count span{font-size:11px;color:var(--muted)}.group-winner{text-align:center;padding:24px;border-radius:18px;background:linear-gradient(135deg,#e9fff4,#fff);border:1px solid #bfe7d3}.group-winner>span{text-transform:uppercase;font-size:10px;font-weight:950;color:#138657}.group-winner h2{margin:7px 0 14px}

@media(max-width:900px){.right-now-rail{grid-auto-columns:78%}.merchant-right-now-grid,.pulse-hero,.group-decision-hero{grid-template-columns:1fr}.merchant-ready-card{align-items:flex-start;flex-direction:column}.merchant-ready-actions{justify-content:flex-start}.pulse-grid,.group-vote-grid{grid-template-columns:1fr}.pulse-live-stack{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.yipp-me-hero-button>span{font-size:26px}.right-now-rail{grid-auto-columns:90%}.pulse-live-stack{grid-template-columns:1fr}.group-share-box{flex-direction:column}.group-vote-card{grid-template-columns:100px 1fr}.group-vote-card img{width:100px;min-height:150px}.merchant-ready-actions{width:100%}.merchant-ready-actions .btn{flex:1}.pulse-demand-card{grid-template-columns:auto 1fr}.pulse-demand-supply{grid-column:2;text-align:left}.pulse-card-footer{align-items:flex-start;flex-direction:column}}
.notifications-modal{max-width:520px}.notification-list{display:grid;gap:8px;margin-bottom:18px}.notification-item{width:100%;display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.notification-item.unread{border-color:#f2a1a8;background:#fff7f8}.notification-item.unread:after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:var(--primary);right:14px}.notification-item{position:relative}.notification-item-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#eef2f7;color:#1a2b42}.notification-item.unread .notification-item-icon{background:#ffe7e9;color:var(--primary)}.notification-item strong,.notification-item small{display:block;padding-right:12px}.notification-item small{margin-top:4px;color:var(--muted);line-height:1.35}
