:root {
  color-scheme: light;
  --ink: #182238;
  --muted: #687187;
  --surface: #ffffff;
  --canvas: #f3f6fb;
  --line: #e5e9f2;
  --brand: #516792;
  --accent: #ff4057;
  --shadow: 0 16px 40px rgba(24, 34, 56, .09);
}

* { box-sizing: border-box; }

html { background: var(--canvas); }

body {
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    radial-gradient(circle at 90% -10%, rgba(81, 103, 146, .16), transparent 26rem),
    var(--canvas);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button, input { font: inherit; }
button { cursor: pointer; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.app-shell {
  width: min(100%, 760px);
  min-height: 100vh;
  margin: 0 auto;
  padding: 0 18px 104px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
}

.brand { width: 128px; height: auto; display: block; }

.avatar {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 15px;
  color: #fff;
  background: var(--ink);
  font-weight: 800;
  text-decoration: none;
}

.account-status { position: relative; overflow: visible; padding: 0; }
.account-status.is-logged-in {
  width: 64px;
  height: 64px;
  border: 2px solid rgba(255,255,255,.92);
  background: linear-gradient(145deg,#1c76dc,#0a4597);
  box-shadow: 0 7px 18px rgba(7,55,121,.24);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .02em;
}
.account-status.is-logged-in::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 15px;
  height: 15px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #22c55e;
}
.account-status img {
  display:block;
  width:100%;
  height:100%;
  min-width:100%;
  padding:0;
  border-radius:50%;
  background:#fff;
  object-fit:cover;
}
.account-menu-wrap { position:relative; }
.account-menu-wrap>summary { list-style:none; cursor:pointer; }
.account-menu-wrap>summary::-webkit-details-marker { display:none; }
.account-menu {
  position:absolute;
  z-index:40;
  top:calc(100% + 10px);
  right:0;
  width:min(336px,calc(100vw - 24px));
  padding:14px;
  border:1px solid rgba(205,217,232,.92);
  border-radius:28px;
  background:rgba(255,255,255,.98);
  box-shadow:0 24px 56px rgba(16,48,92,.2);
}
.account-menu[hidden] { display:none; }
.account-menu-identity { display:flex; align-items:center; gap:13px; padding:5px 5px 13px; }
.account-menu-logo { display:grid; place-items:center; width:54px; height:54px; flex:0 0 54px; overflow:hidden; border:1px solid #dce5f1; border-radius:50%; background:#f5f8fc; }
.account-menu-logo img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.account-menu-identity strong { display:block; color:#17233a; font-size:1.1rem; line-height:1.15; }
.account-menu-identity span { display:block; margin-top:5px; overflow:hidden; color:#687992; font-size:.76rem; text-overflow:ellipsis; white-space:nowrap; }
.account-menu-divider { height:1px; margin:0 5px 10px; background:#e4eaf2; }
.account-menu button,
.account-menu a {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:43px;
  padding:0 11px;
  border:0;
  border-radius:11px;
  color:#173154;
  background:transparent;
  font-size:.8rem;
  font-weight:750;
  text-align:left;
  text-decoration:none;
}
.account-menu button:hover,
.account-menu button:focus-visible,
.account-menu a:hover,
.account-menu a:focus-visible { color:#0867d8; background:#edf5ff; }
.account-menu svg { flex:0 0 auto; width:19px !important; height:19px !important; }
.account-menu-option { gap:12px !important; min-height:70px !important; padding:8px 10px !important; border-radius:16px !important; }
.account-menu-option>span:last-child { display:grid; gap:3px; min-width:0; }
.account-menu-option strong { color:#17233a; font-size:.96rem; line-height:1.15; }
.account-menu-option small { color:#687992; font-size:.77rem; line-height:1.15; }
.account-menu-option-icon { display:grid; place-items:center; width:49px; height:49px; flex:0 0 49px; border-radius:16px; }
.account-menu-option-icon svg { width:25px !important; height:25px !important; fill:currentColor; stroke:currentColor; }
.account-menu-option-icon-store,
.account-menu-option-icon-heart { color:#bf7600; background:#fff0b9; }
.account-menu-home { justify-content:center; min-height:34px !important; margin-top:6px; color:#63758e !important; font-size:.72rem !important; }
.account-menu-home svg { width:16px !important; height:16px !important; }

.store-shortcut[hidden] { display: none !important; }

body.account-auth-open { overflow: hidden; }

.account-auth-modal[hidden] { display: none !important; }

.account-auth-modal {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: grid;
  place-items: center;
  padding: 14px;
  background: rgba(8, 24, 49, .68);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.account-auth-dialog {
  position: relative;
  width: min(430px, 100%);
  max-height: calc(100dvh - 28px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(5, 25, 57, .34);
}

.account-auth-dialog iframe {
  display: block;
  width: 100%;
  height: min(560px, calc(100dvh - 28px));
  border: 0;
  background: #fff;
}

.account-auth-close {
  position: absolute;
  top: 9px;
  right: 9px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #182238;
  background: rgba(240, 244, 250, .96);
  box-shadow: 0 5px 14px rgba(15, 35, 65, .14);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 520px) {
  .account-auth-modal { padding: 8px; }
  .account-auth-dialog { border-radius: 20px; }
  .account-auth-dialog iframe { height: calc(100dvh - 16px); }
}

.intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 18px 0 24px;
}

.eyebrow {
  margin: 0 0 5px;
  color: var(--brand);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(2rem, 9vw, 3.3rem); line-height: .98; letter-spacing: -.055em; }
h2 { margin-bottom: 0; font-size: 1.25rem; letter-spacing: -.025em; }

.notification-button {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  box-shadow: 0 8px 22px rgba(24, 34, 56, .08);
  font-size: 1.25rem;
}

.notification-count {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  place-items: center;
  min-width: 23px;
  height: 23px;
  padding: 0 6px;
  border: 3px solid var(--canvas);
  border-radius: 99px;
  color: #fff;
  background: var(--accent);
  font-size: .7rem;
  font-weight: 900;
}
.notification-count[hidden] { display: none; }
.push-permission { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 4px 0 12px; padding: 13px 14px; border: 1px solid #d9e7fb; border-radius: 16px; background: #f0f6ff; }
.push-permission[hidden] { display: none; }
.push-permission div { display: grid; gap: 2px; min-width: 0; }
.push-permission strong { color: var(--ink); font-size: .88rem; }
.push-permission small { color: var(--muted); font-size: .75rem; line-height: 1.25; }
.push-permission-actions { display: flex; flex: 0 0 auto; gap: 6px; }
.push-permission button { flex: 0 0 auto; min-height: 34px; padding: 0 13px; border: 0; border-radius: 99px; color: #fff; background: #126cdd; font-size: .76rem; font-weight: 800; cursor: pointer; }
.push-permission #push-permission-test { color: #126cdd; background: #fff; box-shadow: inset 0 0 0 1px #b8d2f5; }
.push-permission button:disabled { opacity: .62; cursor: wait; }

.search {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 56px;
  padding: 0 17px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 7px 24px rgba(24, 34, 56, .045);
  backdrop-filter: blur(12px);
}

.search:focus-within { border-color: var(--brand); box-shadow: 0 0 0 4px rgba(81, 103, 146, .12); }
.search-icon { color: var(--brand); font-size: 1.65rem; transform: rotate(-18deg); }
.search input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 1rem; }
.search input::placeholder { color: #8b93a5; }

.favorites { margin-top: 30px; }
.app-view[hidden] { display: none; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 15px; }
.section-heading span { color: var(--muted); font-size: .86rem; }
.store-list { display: grid; gap: 16px; }

.store-card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  min-height: 142px;
  overflow: hidden;
  border: 1px solid rgba(229, 233, 242, .9);
  border-radius: 20px;
  background: var(--surface);
  box-shadow: 0 10px 28px rgba(24, 34, 56, .07);
  animation: enter .35s ease both;
}
.store-card[hidden] { display: none; }

.cover { position: relative; display: grid; place-items: center; min-height: 100%; overflow: hidden; }
.cover::before, .cover::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255,255,255,.16); }
.cover::before { width: 110px; height: 110px; left: -70px; top: -25px; }
.cover::after { width: 80px; height: 80px; right: -50px; bottom: -30px; }
.cover .store-monogram { position: relative; z-index: 1; display: grid; place-items: center; width: 60px; height: 60px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; color: #fff; background: rgba(255,255,255,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.3); font-size: 1.4rem; font-weight: 850; backdrop-filter: blur(8px); }
.cover.has-photo .store-monogram { display: none; }
.store-logo { position: relative; z-index: 1; display: block; width: 64px; height: 64px; padding: 3px; border: 2px solid #f5c645; border-radius: 50%; background: #fff; box-shadow: 0 5px 14px rgba(15, 27, 51, .2); object-fit: contain; }
.cover-blue { background: linear-gradient(145deg, #182238, #5f77a8); }
.cover-orange { background: linear-gradient(145deg, #5e2a19, #e4853e); }
.cover-red { background: linear-gradient(145deg, #7f1d36, #ff4057); }
.cover-green { background: linear-gradient(145deg, #17483d, #31a784); }

.store-content { display: flex; flex-direction: column; min-width: 0; padding: 16px 14px 13px 4px; }
.store-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.category { margin-bottom: 6px; color: var(--brand); font-size: .69rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.store-card h3 { margin-bottom: 0; font-size: 1.08rem; line-height: 1.2; letter-spacing: -.025em; overflow-wrap: anywhere; }
.summary { display: -webkit-box; overflow: hidden; margin: 9px 0 13px; color: var(--muted); font-size: .86rem; line-height: 1.42; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.unread { display: grid; place-items: center; flex: 0 0 auto; min-width: 25px; height: 25px; padding: 0 7px; border-radius: 99px; color: #fff; background: var(--accent); font-size: .72rem; font-weight: 900; box-shadow: 0 5px 14px rgba(255, 64, 87, .27); }
.card-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; }
.open-store { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; border: 0; border-radius: 11px; color: #fff; background: var(--ink); font-size: .78rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.remove-store { min-height: 38px; padding: 0 10px; border: 0; border-radius: 10px; color: #7d4752; background: #f6f7fa; font-size: .76rem; font-weight: 700; text-decoration: none; }
.open-store:hover, .open-store:focus-visible { background: #31456a; }
.remove-store:hover, .remove-store:focus-visible { background: #fcecef; }

.empty-state { padding: 42px 20px; border: 1px dashed #ccd3e1; border-radius: 24px; text-align: center; }
.empty-state span { color: var(--accent); font-size: 2.4rem; }
.empty-state h3 { margin: 7px 0 5px; }
.empty-state p { margin-bottom: 0; color: var(--muted); }

.bottom-nav {
  position: fixed;
  z-index: 20;
  left: 50%;
  bottom: max(12px, env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: min(calc(100% - 28px), 600px);
  padding: 8px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 23px;
  background: rgba(24, 34, 56, .96);
  box-shadow: 0 18px 46px rgba(24, 34, 56, .3);
  transform: translateX(-50%);
  backdrop-filter: blur(18px);
}

.bottom-nav button { display: flex; flex-direction: column; align-items: center; gap: 3px; min-height: 51px; padding: 7px 4px; border: 0; border-radius: 16px; color: #aeb8cd; background: transparent; font-size: .7rem; }
.bottom-nav button span { font-size: 1.04rem; }
.bottom-nav button.active { color: #fff; background: rgba(255,255,255,.1); }

.nav-search-icon {
  position: relative;
  display: block;
  width: 15px;
  height: 15px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.nav-search-icon::after {
  content: "";
  position: absolute;
  right: -5px;
  bottom: -3px;
  width: 6px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: left center;
}

.directory-view { padding-top: 18px; }

body.directory-active .app-shell { width: min(100%, 1180px); }

.directory-header { margin-bottom: 20px; }

.directory-header h1 { font-size: clamp(2rem, 9vw, 3.3rem); }

.directory-search-panel {
  padding: 18px;
  border: 1px solid #efc24a;
  border-radius: 26px;
  background: rgba(255, 255, 255, .95);
  box-shadow: var(--shadow);
}

.directory-filter-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.directory-field { display: grid; gap: 7px; }
.directory-field > span { color: var(--ink); font-size: .83rem; font-weight: 800; }

.directory-field select {
  width: 100%;
  height: 52px;
  padding: 0 40px 0 14px;
  border: 1px solid #e2b844;
  border-radius: 16px;
  color: var(--ink);
  background: #fff;
  font-size: 1rem;
  outline: 0;
}

.directory-field select:disabled { color: #9aa2b2; background: #f4f5f8; }
.directory-field select:focus { border-color: var(--brand); box-shadow: 0 0 0 4px rgba(81, 103, 146, .12); }

.directory-query-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 16px;
}

.directory-query {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  height: 54px;
  padding: 0 16px;
  border: 1px solid #e2b844;
  border-radius: 17px;
  background: #fff;
}

.directory-query:focus-within { border-color: var(--brand); box-shadow: 0 0 0 4px rgba(81, 103, 146, .12); }
.directory-query input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 1rem; }
.directory-query input::placeholder { color: #9099aa; }

.directory-query-icon {
  position: relative;
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  border: 3px solid var(--ink);
  border-radius: 50%;
}

.directory-query-icon::after { content: ""; position: absolute; right: -7px; bottom: -4px; width: 8px; height: 3px; border-radius: 2px; background: var(--ink); transform: rotate(45deg); }

.directory-reset, .directory-submit {
  min-height: 54px;
  border: 0;
  border-radius: 17px;
  font-weight: 800;
}

.directory-reset { grid-column: 1 / -1; color: var(--ink); background: #eef1f6; }
.directory-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 58px; color: #fff; background: #263a5c; }
.directory-submit b { display: none; }

.popular-searches { margin: 22px 0 28px; }
.popular-searches > strong { display: block; margin-bottom: 12px; font-size: .92rem; }
.popular-searches > div { display: flex; gap: 9px; overflow-x: auto; padding: 2px 1px 8px; scrollbar-width: none; }
.popular-searches > div::-webkit-scrollbar { display: none; }
.popular-searches button { flex: 0 0 auto; min-height: 42px; padding: 0 18px; border: 1px solid #edc559; border-radius: 99px; color: #536075; background: rgba(255,255,255,.8); font-size: .85rem; font-weight: 700; }
.popular-searches button.active { color: #fff; border-color: var(--ink); background: var(--ink); }

.directory-results { scroll-margin-top: 16px; }
.directory-results-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 15px; }
.directory-results-header h2 { font-size: 1.35rem; }
.directory-results-count { color: var(--muted); font-size: .87rem; white-space: nowrap; }
.directory-results-grid { display: grid; grid-template-columns: 1fr; gap: 14px; touch-action: pan-y pinch-zoom; overscroll-behavior-x: contain; }
.directory-results-grid.is-touching { user-select: none; -webkit-user-select: none; }

.directory-result-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e8c76e;
  border-radius: 22px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 12px 28px rgba(24,34,56,.08);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.directory-result-card:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(24,34,56,.13); }
.directory-result-cover { position: relative; height: 132px; background-position: center; background-size: cover; }
.directory-result-cover.no-image { background: linear-gradient(145deg, #263a5c, #6e82aa); }
.directory-result-cover::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.2)); }
.directory-result-cover > span { position: absolute; z-index: 1; right: 0; bottom: 0; max-width: 86%; padding: 6px 11px; overflow: hidden; border-radius: 14px 0 0 0; color: #25344f; background: rgba(245,247,251,.94); font-size: .72rem; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.directory-result-body { display: grid; grid-template-columns: 62px minmax(0,1fr); gap: 12px; align-items: center; min-height: 94px; padding: 13px; }
.directory-result-avatar { display: grid; place-items: center; width: 62px; height: 62px; border: 3px solid #f4bd00; border-radius: 50%; background: #eef1f6 center / cover no-repeat; font-size: 1.2rem; font-weight: 900; }
.directory-result-copy { min-width: 0; }
.directory-result-copy strong { display: -webkit-box; overflow: hidden; margin-bottom: 6px; font-size: 1rem; line-height: 1.12; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.directory-result-copy span { display: block; overflow: hidden; color: #8992a4; font-size: .78rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.directory-result-actions { display: flex; gap: 9px; padding: 0 13px 13px; }
.directory-result-actions > * { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 12px; border-radius: 11px; font: inherit; font-size: .78rem; font-weight: 800; text-decoration: none; }
.directory-favorite-button { border: 1px solid #e5bed1; color: #c2235a; background: #fff4f8; cursor: pointer; }
.directory-favorite-button[aria-pressed="true"] { border-color: #eaa8c1; color: #fff; background: #cb245b; }
.directory-favorite-button:disabled { opacity: .6; cursor: wait; }
.directory-open-store { border: 1px solid #223a62; color: #fff; background: #223a62; }

.directory-result-skeleton { min-height: 226px; border-radius: 22px; background: linear-gradient(100deg, #e9edf4 30%, #f7f8fb 50%, #e9edf4 70%); background-size: 240% 100%; animation: shimmer 1.1s infinite linear; }
.directory-empty { padding: 42px 20px; border: 1px dashed #ccd3e1; border-radius: 22px; text-align: center; }
.directory-empty > span { color: var(--brand); font-size: 2.2rem; }
.directory-empty h3 { margin: 8px 0 5px; }
.directory-empty p { margin: 0; color: var(--muted); }
.directory-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 24px; flex-wrap: wrap; }
.directory-pagination button { min-height: 42px; padding: 0 15px; border: 1px solid var(--line); border-radius: 13px; color: var(--ink); background: #fff; font-weight: 750; }
.directory-pagination button:disabled { cursor: default; opacity: .45; }
.directory-pagination span { color: var(--muted); font-size: .82rem; }
.directory-swipe-hint { display: none; flex-basis: 100%; color: var(--muted); font-size: .72rem; text-align: center; }

@media (hover: none) and (pointer: coarse) {
  .directory-swipe-hint { display: block; }
}

.backdrop { position: fixed; z-index: 30; inset: 0; background: rgba(9, 15, 28, .52); backdrop-filter: blur(3px); }
.notification-panel { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; width: min(100%, 620px); max-height: 88vh; margin: auto; padding: 8px 20px max(26px, env(safe-area-inset-bottom)); overflow-y: auto; border-radius: 28px 28px 0 0; background: var(--surface); box-shadow: 0 -20px 60px rgba(9,15,28,.24); transform: translateY(105%); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.notification-panel.open { transform: translateY(0); }
.panel-handle { width: 46px; height: 5px; margin: 2px auto 18px; border-radius: 99px; background: #d9deea; }
.panel-header { display: flex; align-items: center; justify-content: space-between; }
.panel-header h2 { font-size: 1.55rem; }
.close-button { width: 42px; height: 42px; border: 0; border-radius: 14px; color: var(--ink); background: var(--canvas); font-size: 1.5rem; }
.mark-all { width: 100%; margin: 18px 0 7px; padding: 10px; border: 0; color: var(--brand); background: transparent; text-align: right; font-size: .82rem; font-weight: 750; }
.mark-all:disabled { cursor: default; opacity: .45; }
.notification-list { display: grid; gap: 6px; }
.notification-empty { margin: 16px 0 30px; padding: 20px; border-radius: 18px; color: var(--muted); background: #f3f7ff; text-align: center; }
.notification-item { display: grid; grid-template-columns: 46px minmax(0,1fr) 10px; gap: 12px; align-items: center; min-height: 74px; padding: 12px; border-radius: 17px; color: var(--ink); text-decoration: none; }
.notification-item:hover, .notification-item:focus-visible { background: #eef4ff; }
.notification-item.unread-item { background: #f0f6ff; }
.notification-copy { min-width: 0; }
.notification-copy strong { display: block; font-size: .9rem; }
.notification-item p { margin: 3px 0; color: var(--muted); font-size: .88rem; }
.notification-item time { color: #9299aa; font-size: .74rem; }
.notification-item i { width: 8px; height: 8px; border-radius: 50%; background: #146ce0; }
.event-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 15px; color: #fff; background: linear-gradient(145deg, #182238, #5f77a8); font-style: normal; font-weight: 900; }
.event-icon img { display: block; width: 100%; height: 100%; border-radius: inherit; background: #fff; object-fit: contain; }
.event-icon.orange { background: linear-gradient(145deg, #7f1d36, #ff6e4b); }
.event-icon.green { background: linear-gradient(145deg, #17483d, #31a784); }

.toast { position: fixed; z-index: 60; left: 50%; bottom: 94px; max-width: calc(100% - 36px); padding: 12px 18px; border-radius: 13px; color: #fff; background: var(--ink); box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translate(-50%, 12px); transition: .2s ease; font-size: .86rem; font-weight: 700; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

.landing-clone-shell {
  width: 100%;
  margin: 0;
}

.landing-clone-shell iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 320px;
  box-sizing: border-box;
  border: 0;
  background: #f5f7fb;
}

body:not(.directory-active) .landing-clone-shell { display: none !important; }

button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(81, 103, 146, .4); outline-offset: 2px; }

@keyframes enter { from { opacity: 0; transform: translateY(8px); } }
@keyframes shimmer { to { background-position: -140% 0; } }

@media (min-width: 680px) {
  .app-shell { padding-right: 24px; padding-left: 24px; }
  .store-list { grid-template-columns: 1fr 1fr; }
  .directory-filter-grid { grid-template-columns: .8fr 1.4fr 1.1fr; }
  .directory-query-row { grid-template-columns: minmax(0,1fr) 126px 146px; }
  .directory-reset { grid-column: auto; }
  .directory-submit { width: auto; }
  .directory-submit b { display: inline; }
  .directory-results-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (min-width: 1040px) {
  .directory-results-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

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

/* Visual da coleção pessoal */
:root { --ink: #17263d; --brand: #126bdc; --canvas: #f4f8ff; --muted: #69758a; }
body { background: radial-gradient(circle at 85% 16%, #eaf3ff 0, transparent 30rem), linear-gradient(180deg, #fff 0, #f4f8ff 42rem); }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.app-shell { width: min(100%, 960px); padding: 0 28px 132px; }

.topbar { position: relative; height: 138px; align-items: flex-start; padding-top: 26px; isolation: isolate; }
.brand { position: relative; z-index: 2; width: 172px; }
.header-ribbon { position: absolute; z-index: 0; top: 0; right: -28px; display: flex; align-items: center; width: 57%; height: 124px; padding-left: 55px; overflow: hidden; border-radius: 0 0 0 105px; color: #fff; background: linear-gradient(110deg, #294b9c, #103e78 55%, #0b2445); }
.header-ribbon::after { content: ""; position: absolute; right: -45px; bottom: -86px; width: 190px; height: 130px; border: 2px solid rgba(255,255,255,.14); border-radius: 50%; }
.header-ribbon span { position: relative; z-index: 1; margin-right: 94px; font: italic 1.25rem/1.05 "Segoe Script", "Brush Script MT", cursive; text-align: center; transform: rotate(-7deg); }
.topbar-actions { position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; margin-left: auto; }
.topbar-actions svg, .search svg, .favorite-count svg, .category svg, .card-tools svg, .open-store svg, .favorites-note svg, .bottom-nav svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.notification-button, .avatar { display: grid; place-items: center; flex: 0 0 auto; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.24); border-radius: 17px; color: #fff; background: rgba(255,255,255,.14); box-shadow: none; }
.avatar { border-radius: 50%; }
.notification-button svg, .avatar svg { width: 26px; height: 26px; }
.notification-count { top: -7px; right: -6px; min-width: 22px; height: 22px; border: 2px solid #fff; background: #f43b55; font-size: .68rem; }

.intro { position: relative; display: block; min-height: 202px; margin: 0 0 14px; isolation: isolate; overflow: clip; }
.intro > div:first-child { position: relative; z-index: 2; }
.eyebrow { margin-bottom: 7px; color: #677388; font-size: .78rem; letter-spacing: .16em; }
.intro h1 { font-size: clamp(3.2rem, 7vw, 5rem); line-height: 1; white-space: nowrap; }
.intro h1 span { color: #0e64ce; background: linear-gradient(105deg, #247de9, #054eae); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.intro-copy { max-width: min(55%, 460px); margin: 12px 0 0; color: #58677f; font-size: 1.08rem; line-height: 1.35; }

.search { height: 70px; padding: 0 24px; border: 1px solid #e5edfb; border-radius: 35px; background: #fff; box-shadow: 0 15px 32px rgba(36,80,142,.08); }
.search .search-icon { flex: 0 0 auto; width: 25px; height: 25px; color: #17263d; transform: none; }
.search input { font-size: 1.08rem; }
.search input::placeholder { color: #7b879e; }
.search .search-filter { flex: 0 0 auto; width: 23px; height: 23px; color: #263d60; }
.favorites { margin-top: 28px; }
.section-heading { align-items: center; margin-bottom: 17px; }
.section-heading h2 { font-size: 1.75rem; letter-spacing: -.04em; }
.favorite-count { display: inline-flex; align-items: center; gap: 7px; min-height: 35px; padding: 0 12px; border-radius: 99px; color: #0e61c9; background: #e9f1ff; font-size: .85rem; white-space: nowrap; }
.section-heading .favorite-count { color: #0e61c9; font-size: .85rem; }
.favorite-count svg { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.favorite-count #favorite-total { color: inherit; font-size: inherit; }
.store-list { grid-template-columns: 1fr; gap: 18px; }

.store-card { grid-template-columns: minmax(145px, 32%) minmax(0, 1fr); min-height: 222px; overflow: visible; border: 1px solid #e8eef8; border-radius: 26px; box-shadow: 0 18px 38px rgba(25,68,131,.08); }
.store-card[hidden] { display: none; }
.cover { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 220px; padding: 18px; border-radius: 25px 0 0 25px; background: linear-gradient(140deg, #165fc2, #062448); isolation: isolate; }
.cover::before { z-index: 1; inset: 0; width: auto; height: auto; border-radius: 25px 0 0 25px; background: linear-gradient(180deg, rgba(7,34,75,.18), rgba(4,25,55,.78)); }
.cover::after { z-index: 1; right: -38px; bottom: -54px; width: 110px; height: 110px; background: rgba(30,109,215,.42); }
.store-cover-photo { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; border-radius: 25px 0 0 25px; object-fit: cover; }
.cover .store-monogram, .store-logo { z-index: 2; width: 100px; height: 100px; flex: 0 0 auto; margin: auto 0; border: 3px solid #f8c938; border-radius: 50%; background: #fff; box-shadow: 0 9px 25px rgba(4,26,57,.28); }
.cover .store-monogram { color: #155ec1; font-size: 2.8rem; }
.store-logo { padding: 4px; object-fit: contain; }
.cover-caption { position: relative; z-index: 2; align-self: stretch; color: #fff; text-align: left; text-shadow: 0 2px 5px rgba(0,0,0,.4); }
.cover-caption strong { display: block; font-size: 1rem; line-height: 1.15; }
.cover-caption small { display: block; margin-top: 3px; font-size: .75rem; line-height: 1.25; }
.store-content { position: relative; padding: 20px 22px 18px 24px; }
.card-heading { display: block; }
.card-heading-copy { min-width: 0; }
.category { display: flex; align-items: center; gap: 7px; max-width: calc(100% - 126px); margin: 0 0 8px; color: #65748b; font-size: .73rem; letter-spacing: .06em; }
.category svg { flex: 0 0 auto; width: 18px; height: 20px; color: #65748b; fill: currentColor; stroke: none; }
.category span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.store-card h3 { margin-top: 16px; font-size: clamp(1.22rem, 3.2vw, 1.8rem); line-height: 1.1; }
.card-tools { position: absolute; top: 18px; right: 18px; display: flex; align-items: center; gap: 4px; }
.card-notification-button { position: absolute; z-index: 3; top: 10px; right: 10px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; color: #126cdd; background: #fff; box-shadow: 0 5px 14px rgba(7,37,84,.2); cursor: pointer; }
.card-notification-button[hidden] { display: none; }
.card-notification-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.card-notification-count { position: absolute; top: -5px; right: -6px; display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; border: 2px solid #fff; border-radius: 99px; color: #fff; background: #f43b55; font-size: .6rem; font-weight: 900; }
.card-notification-button:focus-visible { outline: 3px solid #126cdd; outline-offset: 3px; }
.card-menu-button { display: grid; place-items: center; width: 34px; height: 38px; padding: 0; border: 0; border-radius: 10px; color: #1b3559; background: transparent; }
.card-menu-button:hover, .card-menu-button:focus-visible { background: #edf3ff; }
.card-menu-button svg { width: 20px; height: 20px; fill: currentColor; stroke: none; }
.card-menu { position: absolute; z-index: 5; top: 42px; right: 0; min-width: 170px; padding: 5px; border: 1px solid #e1e8f2; border-radius: 13px; background: #fff; box-shadow: 0 14px 32px rgba(20,46,84,.18); }
.card-menu[hidden] { display: none; }
.remove-store { width: 100%; min-height: 38px; padding: 0 10px; color: #a3384a; background: transparent; text-align: left; }
.remove-store:hover, .remove-store:focus-visible { background: #fff0f3; }
.summary { display: -webkit-box; margin: 9px 0 10px; color: #4e5e74; font-size: .9rem; line-height: 1.3; -webkit-line-clamp: 2; }
.summary[hidden] { display: none; }
.store-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.store-tags[hidden] { display: none; }
.store-tags span { display: inline-block; max-width: 190px; padding: 5px 10px; overflow: hidden; border-radius: 99px; color: #29456e; background: #edf3ff; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.store-highlight { display: flex; align-items: center; gap: 10px; min-width: 0; margin: 2px 0 12px; padding: 10px 12px; border-radius: 18px; color: #126bdc; background: linear-gradient(105deg, #eaf3ff, #e3f0ff); text-decoration: none; }
.store-highlight:hover, .store-highlight:focus-visible { filter: brightness(.97); }
.store-highlight--offer { color: #08752c; background: linear-gradient(105deg, #e9faee, #e4f8eb); }
.store-highlight-icon { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.62); font-size: 1.25rem; font-weight: 800; }
.store-highlight--offer .store-highlight-icon { color: #fff; background: #09842f; }
.store-highlight-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.store-highlight-copy { display: grid; gap: 2px; min-width: 0; }
.store-highlight-copy strong { font-size: .82rem; line-height: 1.1; }
.store-highlight-copy small { color: #334b69; font-size: .71rem; line-height: 1.2; }
.store-highlight--offer .store-highlight-copy small { color: #305d3e; }
.store-highlight-arrow { flex: 0 0 auto; width: 17px; height: 17px; margin-left: auto; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.card-tools .open-store { min-height: 32px; padding: 0 10px; border-radius: 99px; background: linear-gradient(100deg, #0b3774, #0965cb); box-shadow: none; font-size: .7rem; }
.open-store:hover, .open-store:focus-visible { background: linear-gradient(100deg, #0a2c5e, #0753ae); }

.favorites-note { display: grid; grid-template-columns: 48px minmax(0,1fr) 1px 52px auto; align-items: center; gap: 17px; min-height: 98px; margin-top: 22px; padding: 16px 22px; border: 1px solid #fff; border-radius: 26px; color: #123663; background: linear-gradient(105deg, #e4efff, #f3f8ff); }
.favorites-note-heart { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: #0f6edd; background: #fff; }
.favorites-note-heart svg { width: 26px; height: 26px; fill: currentColor; stroke: none; }
.favorites-note p { margin: 0; font-size: 1.05rem; font-style: italic; line-height: 1.25; }
.favorites-note-divider { width: 1px; height: 52px; background: #a9c7f8; }
.favorites-note-shop { width: 46px !important; height: 46px !important; color: #1370df; }
.favorites-note small { color: #1c3553; font-size: .78rem; line-height: 1.3; }

.bottom-nav { width: min(calc(100% - 28px), 900px); padding: 9px; border-radius: 30px; background: linear-gradient(110deg, #15263d, #1b304d); box-shadow: 0 18px 38px rgba(17,36,62,.27); }
.bottom-nav button { justify-content: center; gap: 5px; min-height: 66px; border-radius: 22px; color: #fff; font-size: .82rem; }
.bottom-nav button svg { width: 25px; height: 25px; }
.bottom-nav #nav-favorites svg { fill: currentColor; stroke: none; }
.bottom-nav button.active { background: linear-gradient(110deg, #1380f3, #075bd3); box-shadow: 0 8px 18px rgba(6,84,197,.25); }

@media (max-width: 600px) {
  .app-shell { padding-right: 16px; padding-left: 16px; }
  .topbar { height: 112px; padding-top: 18px; }
  .brand { width: 138px; }
  .header-ribbon { right: -16px; width: 59%; height: 101px; border-radius: 0 0 0 76px; }
  .header-ribbon span { display: none; }
  .topbar-actions { gap: 7px; }
  .notification-button, .avatar { width: 40px; height: 40px; border-radius: 13px; }
  .avatar { border-radius: 50%; }
  .notification-button svg, .avatar svg { width: 22px; height: 22px; }
  .intro { min-height: 173px; }
  .intro h1 { font-size: clamp(2.35rem, 10vw, 3.45rem); }
  .intro-copy { max-width: 235px; font-size: .88rem; }
  .search { height: 59px; padding: 0 17px; border-radius: 28px; }
  .search input { font-size: .91rem; }
  .favorites { margin-top: 26px; }
  .section-heading h2 { font-size: 1.47rem; }
  .favorite-count { min-height: 31px; padding: 0 9px; font-size: .75rem; }
  .store-card { grid-template-columns: 108px minmax(0, 1fr); min-height: 184px; border-radius: 21px; }
  .cover { min-height: 182px; padding: 10px; border-radius: 20px 0 0 20px; }
  .cover::before, .store-cover-photo { border-radius: 20px 0 0 20px; }
  .cover .store-monogram, .store-logo { width: 70px; height: 70px; margin: auto 0; }
  .cover .store-monogram { font-size: 2rem; }
  .cover-caption { display: none; }
  .store-content { padding: 13px 12px 13px 14px; }
  .category { gap: 5px; max-width: calc(100% - 108px); margin-bottom: 5px; font-size: .65rem; letter-spacing: .025em; }
  .category svg { width: 15px; height: 18px; }
  .store-card h3 { margin-top: 14px; font-size: 1.13rem; }
  .card-tools { top: 12px; right: 9px; gap: 1px; }
  .card-tools .open-store { min-height: 28px; padding: 0 7px; font-size: .62rem; }
  .card-notification-button { top: 7px; right: 7px; width: 32px; height: 32px; }
  .card-notification-button svg { width: 18px; height: 18px; }
  .card-menu-button { width: 25px; height: 33px; }
  .card-menu-button svg { width: 17px; height: 17px; }
  .summary { margin: 7px 0; font-size: .74rem; -webkit-line-clamp: 2; }
  .store-tags { gap: 4px; margin-bottom: 8px; }
  .store-tags span { max-width: 136px; padding: 4px 7px; font-size: .65rem; }
  .store-highlight { gap: 7px; margin: 2px 0 10px; padding: 8px; border-radius: 13px; }
  .store-highlight-icon { flex-basis: 28px; width: 28px; height: 28px; font-size: .94rem; }
  .store-highlight-icon svg { width: 18px; height: 18px; }
  .store-highlight-copy strong { font-size: .7rem; }
  .store-highlight-copy small { font-size: .63rem; }
  .store-highlight-arrow { width: 13px; height: 13px; }
  .favorites-note { grid-template-columns: 42px minmax(0,1fr); gap: 11px; min-height: 72px; padding: 14px; border-radius: 20px; }
  .favorites-note-heart { width: 42px; height: 42px; }
  .favorites-note p { font-size: .84rem; }
  .favorites-note-divider, .favorites-note-shop, .favorites-note small { display: none !important; }
  .bottom-nav { bottom: max(8px, env(safe-area-inset-bottom)); width: min(calc(100% - 20px), 420px); padding: 5px; border-radius: 20px; }
  .bottom-nav button { min-height: 46px; gap: 2px; border-radius: 15px; font-size: .64rem; }
  .bottom-nav button svg { width: 18px; height: 18px; }
}

@media (max-width: 370px) {
  .brand { width: 120px; }
  .intro h1 { font-size: 2.25rem; }
  .store-card { grid-template-columns: 88px minmax(0,1fr); }
  .cover .store-monogram, .store-logo { width: 60px; height: 60px; }
  .store-content { padding-left: 10px; }
  .category { font-size: .61rem; }
  .card-menu-button { width: 21px; }
}

/* Arte enviada para o cabeçalho das lojas favoritas. */
body:not(.directory-active) .app-shell {
  position: relative;
  isolation: isolate;
  overflow: clip;
  width: min(100%, 820px);
}

body:not(.directory-active) .app-shell::before,
body:not(.directory-active) .app-shell::after {
  content: "";
  position: absolute;
  top: 0;
  pointer-events: none;
  z-index: 0;
}

body:not(.directory-active) .app-shell::before {
  left: 0;
  right: 0;
  height: 345px;
  border-radius: 0 0 30px 30px;
  background: linear-gradient(180deg, #fff 0%, #eef7ff 76%, #f5f9ff 100%);
}

body:not(.directory-active) .app-shell::after {
  top: 0;
  right: 0;
  width: 75%;
  height: auto;
  aspect-ratio: 1672 / 941;
  background: url("favorites-header-background-complete.svg") center top / contain no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 24%), linear-gradient(180deg, #000 0%, #000 75%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent, #000 24%), linear-gradient(180deg, #000 0%, #000 75%, transparent 100%);
  mask-composite: intersect;
}

body:not(.directory-active) .topbar,
body:not(.directory-active) .intro,
body:not(.directory-active) .search,
body:not(.directory-active) .favorite-quick-actions,
body:not(.directory-active) .favorites {
  position: relative;
  z-index: 1;
}
body:not(.directory-active):not(.profile-active) .topbar { z-index:5; }

body:not(.directory-active) .header-ribbon { display: none; }
body:not(.directory-active) .topbar { height: 88px; padding-top: 16px; }
.brand-lockup { position: relative; z-index: 2; display: block; width: 125px; height: 66px; overflow: hidden; }
.brand-lockup .brand { display: block; width: 160px; max-width: none; height: auto; transform: translate(-20px, -14px); }

body:not(.directory-active) .intro { min-height: 188px; margin: 0 0 12px; padding: 8px 0 0 8px; overflow: visible; }
body:not(.directory-active) .intro > div:first-child { max-width: 56%; }
body:not(.directory-active) .intro h1 { font-size: clamp(1.9rem, 4.2vw, 2.7rem); line-height: 1.04; letter-spacing: -.05em; white-space: normal; }
body:not(.directory-active) .intro h1 span { background: linear-gradient(115deg, #348dff, #0759c5); background-clip: text; -webkit-background-clip: text; }
body:not(.directory-active) .intro-copy { max-width: 315px; margin-top: 10px; color: #596783; font-size: clamp(.85rem, 1.8vw, 1rem); line-height: 1.3; }

body:not(.directory-active) .search { height: 52px; width: 100%; margin-left: 0; padding: 0 18px; border: 0; box-shadow: 0 9px 22px rgba(27,83,165,.1); }
body:not(.directory-active) .search input { font-size: .95rem; }
body:not(.directory-active) .search input::placeholder { color: #687b9e; }

.favorite-quick-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.favorite-quick-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: 38px; padding: 0 8px; border: 0; border-radius: 999px; color: #203755; background: #eaf0ff; font-size: .78rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.favorite-quick-actions button:hover, .favorite-quick-actions button:focus-visible { background: #dce8ff; }
.favorite-quick-actions button.is-active { color: #fff; background: #126cdd; box-shadow: 0 8px 18px rgba(18,108,221,.18); }
.favorite-quick-actions svg { flex: 0 0 auto; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.favorite-quick-actions [data-favorite-quick="all"] svg { fill: currentColor; stroke: none; }

body:not(.directory-active) .favorites { margin-top: 22px; }
body:not(.directory-active) .favorites .section-heading { align-items: center; }
body:not(.directory-active) .favorites .section-heading h2 { position: relative; padding-bottom: 8px; font-size: clamp(1.4rem, 2.4vw, 1.7rem); }

@media (min-width: 601px) {
  body:not(.directory-active) .app-shell {
    min-height: 0;
    padding-bottom: 24px;
  }

  body:not(.directory-active) .bottom-nav {
    position: relative;
    left: auto;
    bottom: auto;
    width: min(100%, 520px);
    margin: 28px auto 0;
    padding: 6px;
    border-radius: 22px;
    transform: none;
  }

  body:not(.directory-active) .bottom-nav button {
    min-height: 48px;
    gap: 2px;
    border-radius: 16px;
    font-size: .7rem;
  }

  body:not(.directory-active) .bottom-nav button svg {
    width: 19px;
    height: 19px;
  }
}
body:not(.directory-active) .favorites .section-heading h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 80px; height: 9px; background: url("minhas-lojas-underline.svg?v=2") left center / contain no-repeat; }
body:not(.directory-active) .favorite-count { gap: 9px; padding: 0; color: #243751; background: transparent; font-size: .92rem; font-weight: 600; }
body:not(.directory-active) .favorite-count svg { order: 2; width: 22px; height: 22px; fill: none; stroke: #126cdd; stroke-width: 2; }

@media (max-width: 600px) {
  body:not(.directory-active) .app-shell { min-height: 0; padding-bottom: 24px; }
  body:not(.directory-active) .app-shell::before { height: 330px; border-radius: 0 0 28px 28px; }
  body:not(.directory-active) .app-shell::after { top: 0; right: 0; width: 90%; }
  body:not(.directory-active) .topbar { height: 72px; padding-top: 12px; }
  .brand-lockup { width: 98px; height: 52px; }
  .brand-lockup .brand { width: 125px; transform: translate(-15px, -11px); }
  body:not(.directory-active) .intro { min-height: 0; padding-top: 0; }
  body:not(.directory-active) .intro > div:first-child { max-width: 58%; }
  body:not(.directory-active) .intro h1 { font-size: clamp(1.55rem, 6vw, 2rem); line-height: 1.05; }
  body:not(.directory-active) .intro-copy { max-width: 205px; margin-top: 9px; font-size: .76rem; line-height: 1.24; }
  body:not(.directory-active) .search { height: 48px; padding: 0 14px; }
  body:not(.directory-active) .search input { font-size: .82rem; }
  .favorite-quick-actions { gap: 5px; margin-top: 13px; }
  .favorite-quick-actions button { gap: 4px; min-height: 36px; padding: 0 3px; font-size: .62rem; letter-spacing: -.015em; }
  .favorite-quick-actions svg { width: 14px; height: 14px; }
  body:not(.directory-active) .favorites { margin-top: 26px; }
  body:not(.directory-active) .favorites .section-heading h2 { font-size: 1.55rem; }
  body:not(.directory-active) .favorite-count { font-size: .72rem; }
  body:not(.directory-active) .favorite-count svg { width: 19px; height: 19px; }
}

@media (max-width: 360px) {
  .brand-lockup { width: 94px; height: 49px; }
  .brand-lockup .brand { width: 119px; transform: translate(-14px, -10px); }
  body:not(.directory-active) .intro > div:first-child { max-width: 57%; }
  body:not(.directory-active) .intro h1 { font-size: 1.55rem; }
  .favorite-quick-actions { display: flex; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .favorite-quick-actions button { flex: 0 0 auto; padding: 0 12px; }
  .favorite-quick-actions::-webkit-scrollbar { display: none; }
}

/* Perfil pessoal do Meu Trilista */
body.profile-active { background: #eef4fc; }
.profile-view { position: relative; z-index: 2; padding: 16px 0 24px; }
.profile-view-header { padding: 10px 8px 24px; }
.profile-view-header h1 { margin-bottom: 0; color: #10213d; font-size: clamp(2.2rem, 7vw, 3.5rem); }
.profile-identity-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 20px; padding: 24px; overflow: hidden; border: 1px solid #e0e9f7; border-radius: 30px; background: linear-gradient(125deg,#102b55,#0d66ca); box-shadow: 0 22px 48px rgba(12,67,133,.2); color: #fff; }
.profile-avatar { display: grid; place-items: center; width: 94px; height: 94px; overflow: hidden; border: 4px solid rgba(255,255,255,.92); border-radius: 50%; background: linear-gradient(145deg,#6eb2ff,#1b6bd0); box-shadow: 0 12px 28px rgba(3,25,59,.28); color: #fff; font-size: 1.55rem; font-weight: 900; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-account-label { display: inline-flex; margin-bottom: 7px; padding: 5px 10px; border-radius: 99px; background: rgba(255,255,255,.14); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.profile-identity-copy h2 { margin: 0 0 5px; font-size: clamp(1.4rem,4vw,2rem); }
.profile-identity-copy p { margin: 0; overflow: hidden; color: #d3e6ff; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.profile-edit-primary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 17px; border: 1px solid rgba(255,255,255,.35); border-radius: 15px; color: #12335e; background: #fff; font-weight: 850; }
.profile-edit-primary svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.profile-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 16px; }
.profile-summary-grid article { display: flex; align-items: center; gap: 13px; min-height: 94px; padding: 17px; border: 1px solid #e2eaf6; border-radius: 24px; background: #fff; box-shadow: 0 13px 30px rgba(18,58,111,.07); }
.profile-summary-icon { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 16px; }
.profile-summary-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2; }
.profile-summary-icon.is-heart { color: #d92862; background: #fff0f5; }
.profile-summary-icon.is-heart svg { fill: currentColor; stroke: none; }
.profile-summary-icon.is-check { color: #087c52; background: #e9faf3; }
.profile-summary-grid strong,.profile-summary-grid small { display: block; }
.profile-summary-grid strong { color: #15253f; font-size: 1.12rem; }
.profile-summary-grid small { margin-top: 2px; color: #718099; }
.profile-details-card { margin-top: 16px; padding: 22px; border: 1px solid #e2eaf6; border-radius: 28px; background: #fff; box-shadow: 0 15px 34px rgba(18,58,111,.07); }
.profile-details-card > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.profile-details-card > header button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 12px; color: #0d62c5; background: #eaf3ff; font-weight: 800; }
.profile-loyalty-card { margin-top: 18px; overflow: hidden; border: 1px solid rgba(18,85,166,.2); border-radius: 28px; background: linear-gradient(145deg,#102c55,#0b69cb); box-shadow: 0 20px 42px rgba(12,67,133,.18); }
.profile-loyalty-card > header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:22px 22px 18px; color:#fff; }
.profile-loyalty-card > header .eyebrow { color:#a9d2ff; }
.profile-loyalty-card h2 { margin:3px 0 0; color:#fff; font-size:1.45rem; }
.profile-loyalty-lock { display:inline-flex; align-items:center; min-height:32px; padding:0 12px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#fff; background:rgba(255,255,255,.12); font-size:.68rem; font-weight:850; white-space:nowrap; }
.profile-loyalty-empty { margin:0 18px 18px; padding:18px; border:1px dashed rgba(255,255,255,.32); border-radius:18px; color:#e4f0ff; background:rgba(255,255,255,.08); font-size:.86rem; line-height:1.5; }
.profile-loyalty-stores { display:grid; gap:12px; padding:0 18px 18px; }
.profile-loyalty-store { padding:18px; border:1px solid rgba(255,255,255,.78); border-radius:21px; background:#fff; box-shadow:0 12px 26px rgba(4,37,79,.16); }
.profile-loyalty-store-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.profile-loyalty-store-title h3 { margin:0; color:#10213d; font-size:1.08rem; }
.profile-loyalty-store-title span { display:inline-flex; padding:6px 9px; border-radius:999px; color:#087c52; background:#e9faf3; font-size:.65rem; font-weight:850; text-align:center; }
.profile-loyalty-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:15px; }
.profile-loyalty-metrics div { min-width:0; padding:12px; border:1px solid #e1ebf8; border-radius:15px; background:linear-gradient(145deg,#f6faff,#edf5ff); text-align:center; }
.profile-loyalty-metrics strong,.profile-loyalty-metrics small { display:block; }
.profile-loyalty-metrics strong { color:#0d62c5; font-size:1.2rem; line-height:1; }
.profile-loyalty-metrics small { margin-top:6px; color:#6e7e95; font-size:.65rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.profile-loyalty-lists { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:13px; }
.profile-loyalty-list { min-width:0; padding:13px; border:1px solid #e7edf6; border-radius:15px; background:#f8fafd; }
.profile-loyalty-list h4 { margin:0 0 8px; color:#23344e; font-size:.78rem; }
.profile-loyalty-list p { margin:0; padding:7px 0; border-top:1px solid #e5ebf3; color:#718099; font-size:.72rem; line-height:1.4; }
.profile-loyalty-list p:first-of-type { border-top:0; }
.profile-detail-row { display: flex; align-items: center; gap: 14px; padding: 15px 2px; border-top: 1px solid #edf1f7; }
.profile-detail-row > span { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 14px; color: #176dce; background: #edf5ff; }
.profile-detail-row svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.profile-detail-row small,.profile-detail-row strong { display: block; }
.profile-detail-row small { margin-bottom: 3px; color: #7b879a; font-size: .72rem; text-transform: uppercase; }
.profile-detail-row strong { color: #23344e; font-size: .94rem; }

body.mt-profile-dialog-open { overflow: hidden; }
.mt-profile-modal[hidden] { display: none !important; }
.mt-profile-modal { position: fixed; z-index: 25000; inset: 0; display: grid; place-items: center; padding: 16px; background: rgba(6,22,47,.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.mt-profile-dialog { position: relative; width: min(100%,480px); max-height: calc(100dvh - 24px); overflow-y: auto; border: 1px solid rgba(255,255,255,.65); border-radius: 30px; background: #fff; box-shadow: 0 30px 90px rgba(1,20,48,.38); }
.mt-profile-dialog-head { padding: 27px 62px 20px 26px; color: #fff; background: linear-gradient(125deg,#12305d,#0c70dc); }
.mt-profile-dialog-head h2 { margin: 4px 0 7px; font-size: 1.65rem; }
.mt-profile-dialog-head p { margin: 0; color: #d8e9ff; font-size: .88rem; line-height: 1.4; }
.mt-profile-close { position: absolute; z-index: 2; top: 15px; right: 15px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: rgba(255,255,255,.16); font-size: 24px; }
.mt-profile-form { padding: 22px 26px 26px; }
.mt-profile-photo-field { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; }
.mt-profile-photo-preview { display: grid; place-items: center; flex: 0 0 72px; width: 72px; height: 72px; overflow: hidden; border: 3px solid #d9e9ff; border-radius: 50%; color: #1767c8; background: #edf5ff; font-weight: 900; }
.mt-profile-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.mt-profile-photo-field label { display: inline-flex; align-items: center; min-height: 40px; padding: 0 13px; border-radius: 12px; color: #155fb9; background: #eaf3ff; font-size: .82rem; font-weight: 800; cursor: pointer; }
.mt-profile-photo-field input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.mt-profile-photo-field small { display: block; margin-top: 6px; color: #7a8799; }
.mt-profile-field { display: grid; gap: 7px; margin-top: 14px; color: #33435a; font-size: .8rem; font-weight: 800; }
.mt-profile-field input { width: 100%; height: 51px; padding: 0 15px; border: 1px solid #dbe4f1; border-radius: 14px; color: #17263d; background: #f9fbfe; outline: none; }
.mt-profile-field input:focus { border-color: #2580e7; box-shadow: 0 0 0 4px rgba(37,128,231,.12); }
.mt-profile-private-note { display: flex; gap: 9px; margin: 16px 0; padding: 12px; border-radius: 14px; color: #53647d; background: #f1f6fc; font-size: .76rem; line-height: 1.4; }
.mt-profile-private-note svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: #1370d7; stroke-width: 2; }
.mt-profile-error { min-height: 20px; margin: 0 0 8px; color: #b42342; font-size: .8rem; font-weight: 700; }
.mt-profile-submit { width: 100%; min-height: 51px; border: 0; border-radius: 15px; color: #fff; background: linear-gradient(100deg,#1479e9,#0757bd); box-shadow: 0 11px 24px rgba(11,100,205,.23); font-weight: 900; }
.mt-profile-submit:disabled { opacity: .65; cursor: wait; }

@media (max-width:600px) {
  .profile-view { padding-top: 4px; }
  .profile-view-header { padding: 8px 2px 18px; }
  .profile-view-header h1 { font-size: 2.25rem; }
  .profile-identity-card { grid-template-columns: auto minmax(0,1fr); gap: 13px; padding: 18px; border-radius: 24px; }
  .profile-avatar { width: 72px; height: 72px; font-size: 1.2rem; }
  .profile-edit-primary { grid-column: 1/-1; width: 100%; }
  .profile-summary-grid { gap: 9px; }
  .profile-summary-grid article { min-height: 82px; padding: 12px; border-radius: 20px; }
  .profile-summary-icon { flex-basis: 40px; width: 40px; height: 40px; border-radius: 13px; }
  .profile-summary-grid strong { font-size: .92rem; }
  .profile-summary-grid small { font-size: .68rem; }
  .profile-details-card { padding: 18px; border-radius: 24px; }
  .profile-loyalty-card { border-radius: 24px; }
  .profile-loyalty-card > header { align-items:flex-start; padding:19px 18px 15px; }
  .profile-loyalty-lock { min-height:29px; padding:0 9px; font-size:.61rem; }
  .profile-loyalty-stores { padding:0 10px 10px; }
  .profile-loyalty-store { padding:14px; border-radius:18px; }
  .profile-loyalty-store-title { align-items:flex-start; flex-direction:column; gap:7px; }
  .profile-loyalty-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap: 6px; }
  .profile-loyalty-metrics div { padding: 11px 8px; }
  .profile-loyalty-lists { grid-template-columns: 1fr; gap: 10px; }
  .profile-detail-row strong { font-size: .82rem; }
  .mt-profile-modal { align-items: end; padding: 0; }
  .mt-profile-dialog { width: 100%; max-height: 94dvh; border-radius: 28px 28px 0 0; }
  .mt-profile-dialog-head { padding: 24px 58px 18px 20px; }
  .mt-profile-form { padding: 19px 20px max(22px,env(safe-area-inset-bottom)); }
}

/* As novidades ficam na central do sino; a Home destaca somente as lojas seguidas. */
.home-news-section { display:none !important; }
.home-stores-section { margin-top:36px; }

@media (max-width:600px) {
  .home-stores-section { margin-top:26px; }
}

/* O menu de conta segue o mesmo componente visual da página principal do Trilista. */
.account-menu {
  top:calc(100% + 10px);
  width:min(400px,calc(100vw - 24px));
  max-height:min(680px,calc(100vh - 82px));
  padding:0;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  border-radius:18px;
  background:#fff;
  box-shadow:0 22px 55px rgba(15,23,42,.2);
}
.account-menu-identity { gap:13px; padding:16px 17px; border-bottom:1px solid #edf0f5; }
.account-menu .account-menu-identity-avatar,
.account-menu .account-menu-store-logo {
  display:grid;
  flex:0 0 auto;
  place-items:center;
  margin:0;
  overflow:hidden;
  border-radius:50%;
  color:#172033;
  background:linear-gradient(135deg,#f4c430,#ffdf73) center/cover;
  font-weight:900;
}
.account-menu .account-menu-identity-avatar { width:50px; height:50px; box-shadow:0 0 0 4px #fff8df; font-size:.82rem; }
.account-menu .account-menu-identity-avatar img,
.account-menu .account-menu-store-logo img { display:block; width:100%; height:100%; padding:0; border-radius:inherit; object-fit:contain; }
.account-menu .account-menu-identity-copy { display:flex; min-width:0; flex:1; flex-direction:column; gap:3px; margin:0; }
.account-menu .account-menu-identity-copy strong,
.account-menu .account-menu-identity-copy small { display:block; overflow:hidden; margin:0; text-overflow:ellipsis; white-space:nowrap; }
.account-menu .account-menu-identity-copy strong { color:#172033; font-size:1rem; line-height:1.2; }
.account-menu .account-menu-identity-copy small { color:#64748b; font-size:.76rem; font-weight:500; }
.account-menu-scroll { max-height:min(465px,calc(100vh - 250px)); padding:12px 14px 14px; overflow-y:auto; overscroll-behavior:contain; }
.account-menu-section + .account-menu-section { margin-top:15px; }
.account-menu-section h3 { margin:0 0 7px 3px; color:#71809a; font-size:.66rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.account-menu-stores { display:grid; gap:7px; }
.account-menu .account-menu-option {
  display:flex;
  min-height:62px !important;
  align-items:center;
  gap:12px !important;
  padding:10px 12px !important;
  border:1px solid #e8ecf2;
  border-radius:13px !important;
  color:#172033;
  background:#fff;
  box-shadow:0 3px 12px rgba(15,23,42,.035);
  line-height:1.2;
}
.account-menu .account-menu-option:hover,
.account-menu .account-menu-option:focus-visible,
.account-menu .account-menu-option.is-active { border-color:rgba(244,196,48,.52); color:#172033; background:#fffaf0; }
.account-menu .account-menu-brand-icon,
.account-menu .account-menu-store-logo { width:40px; height:40px; flex-basis:40px; }
.account-menu .account-menu-brand-icon { display:block; overflow:hidden; border-radius:50%; background:#ffca05; box-shadow:0 0 0 1px rgba(244,196,48,.45); }
.account-menu .account-menu-brand-icon img { display:block; width:100%; height:100%; border-radius:inherit; object-fit:cover; }
.account-menu .account-menu-store-logo { font-size:.66rem; }
.account-menu .account-menu-store-logo.has-image { background:#fff; box-shadow:inset 0 0 0 1px #e5e9f0; }
.account-menu .account-menu-option > span:not(.account-menu-brand-icon):not(.account-menu-store-logo):not(.account-menu-create-store-icon):not(.account-menu-chevron) { display:flex; min-width:0; flex:1; flex-direction:column; gap:2px; margin:0; }
.account-menu .account-menu-option strong,
.account-menu .account-menu-option small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-menu .account-menu-option strong { color:#172033; font-size:.88rem; }
.account-menu .account-menu-option small { color:#71809a; font-size:.7rem; font-weight:600; }
.account-menu .account-menu-chevron { margin:0 0 0 auto; color:#71809a; font-size:1.25rem; font-weight:500; line-height:1; }
.account-menu-footer { display:grid; gap:1px; padding:10px 14px 12px; border-top:1px solid #edf0f5; background:linear-gradient(180deg,#fff,#fafbfc); }
.account-menu .account-menu-footer > button,
.account-menu .account-menu-footer > a { min-height:42px; padding:9px 7px; border-radius:0; color:#334155; font-size:.77rem; font-weight:700; }
.account-menu .account-menu-footer > button:hover,
.account-menu .account-menu-footer > button:focus-visible,
.account-menu .account-menu-footer > a:hover,
.account-menu .account-menu-footer > a:focus-visible { color:#172033; background:#fff8df; }
.account-menu .account-menu-footer > button > svg { width:22px !important; height:22px !important; padding:2px; fill:none; stroke:currentColor; stroke-width:1.8; }
.account-menu .account-menu-footer > a > svg { width:22px !important; height:22px !important; padding:2px; fill:none; stroke:currentColor; stroke-width:1.8; }
.account-menu .account-menu-footer > .account-menu-logout { color:#c81e3a; }

@media (max-width:480px) {
  .account-menu { right:-4px; width:min(400px,calc(100vw - 16px)); }
}

body .account-status.is-logged-in,
body:not(.directory-active):not(.profile-active) .account-status.is-logged-in {
  display:flex;
  width:auto;
  min-width:124px;
  height:46px;
  align-items:center;
  gap:8px;
  padding:4px 11px 4px 4px;
  border:1px solid rgba(15,23,42,.22);
  border-radius:999px;
  color:#172033;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.09);
  letter-spacing:0;
}
body .account-status.is-logged-in::after,
body:not(.directory-active):not(.profile-active) .account-status.is-logged-in::after { display:none; }
.account-trigger-avatar { position:relative; display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; overflow:visible; border-radius:50%; background:linear-gradient(135deg,#f4c430,#ffdf73); font-size:.68rem; font-weight:900; }
.account-trigger-avatar img { display:block; width:100%; height:100%; min-width:0; border-radius:inherit; object-fit:cover; }
.account-trigger-avatar::after,
.account-menu .account-menu-identity-avatar::after { content:""; position:absolute; right:-2px; bottom:-1px; width:10px; height:10px; border:2px solid #fff; border-radius:50%; background:#21bf73; box-shadow:0 2px 6px rgba(14,116,67,.24); }
.account-trigger-label { max-width:126px; overflow:hidden; font-size:.78rem; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.account-trigger-chevron { color:#64748b; font-size:.8rem; line-height:1; transition:transform .2s ease; }
.account-status[aria-expanded="true"] .account-trigger-chevron { transform:rotate(180deg); }
.account-menu-identity { position:relative; overflow:hidden; background:linear-gradient(112deg,#fff 0 58%,#fff8dc 100%); }
.account-menu-identity::after { content:""; position:absolute; z-index:0; top:-58px; right:-42px; width:180px; height:140px; border-radius:46% 0 0 70%; background:linear-gradient(135deg,rgba(255,218,78,.38),rgba(255,193,7,.72)); transform:rotate(-8deg); }
.account-menu-identity > * { position:relative; z-index:1; }
.account-menu .account-menu-identity-avatar { overflow:visible; border:2px solid #2fbe73; background-color:#fff; }
.account-menu .account-menu-identity { min-height:142px; gap:16px; padding:24px 26px 24px 20px; background:#f5faff url("../../src/img/account-menu-header-bg-blue.svg") center/cover no-repeat; }
.account-menu .account-menu-identity::after { display:none; }
.account-menu .account-menu-identity-avatar { width:72px; height:72px; flex-basis:72px; }
.account-menu .account-menu-identity-copy strong { font-size:1.18rem; }
.account-menu .account-menu-identity-copy small { font-size:.86rem; }

@media (max-width:480px) {
  .account-menu .account-menu-identity { min-height:132px; gap:13px; padding:21px 18px; }
  .account-menu .account-menu-identity-avatar { width:64px; height:64px; flex-basis:64px; }
  .account-menu .account-menu-identity-copy strong { font-size:1.05rem; }
  .account-menu .account-menu-identity-copy small { font-size:.78rem; }
}
.account-menu #account-menu-profile { border-color:rgba(244,196,48,.52); background:#fff8df; }
.account-menu .account-menu-store,
.account-menu .account-menu-store.is-active { border-color:color-mix(in srgb,var(--store-theme,#64748b) 25%,#e8ecf2); background:color-mix(in srgb,var(--store-theme,#64748b) 7%,#fff); }
.account-menu .account-menu-store:hover,
.account-menu .account-menu-store:focus-visible { border-color:color-mix(in srgb,var(--store-theme,#64748b) 38%,#d8dee8); background:color-mix(in srgb,var(--store-theme,#64748b) 11%,#fff); }
.account-menu .account-menu-create-store { border-color:#f0d26c; background:linear-gradient(135deg,#fffaf0,#fff7d6); }
.account-menu .account-menu-create-store:hover,
.account-menu .account-menu-create-store:focus-visible { border-color:#e2b82c; background:#fff4c4; }
.account-menu .account-menu-create-store-icon { display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border-radius:12px; color:#8a6200; background:#fff1b8; font-size:1.05rem; }

@media (max-width:480px) {
  body .account-status.is-logged-in,
  body:not(.directory-active):not(.profile-active) .account-status.is-logged-in { min-width:106px; height:42px; gap:6px; padding-right:8px; }
  .account-trigger-avatar { width:32px; height:32px; flex-basis:32px; }
  .account-trigger-label { max-width:92px; font-size:.7rem; }
}

.portal-loyalty{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:24px;margin:0 0 28px;padding:26px;overflow:hidden;border:1px solid rgba(255,204,44,.55);border-radius:30px;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(255,211,62,.28),transparent 31%),linear-gradient(135deg,#101c35,#183f77);box-shadow:0 22px 50px rgba(10,42,89,.18)}.portal-loyalty[hidden]{display:none!important}.portal-loyalty-copy{position:relative;z-index:1}.portal-loyalty-badge{display:inline-flex;padding:7px 11px;border-radius:999px;color:#5c3d00;background:#ffd64f;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.portal-loyalty h2{margin:13px 0 7px;font-size:clamp(1.55rem,4vw,2.35rem);line-height:1.05}.portal-loyalty-copy>p{max-width:450px;margin:0;color:#d9e8ff;line-height:1.5}.portal-loyalty-balance{display:inline-grid;gap:2px;margin-top:20px;padding:12px 16px;border:1px solid rgba(255,255,255,.15);border-radius:15px;background:rgba(255,255,255,.09)}.portal-loyalty-balance span{color:#bcd2ef;font-size:.7rem;font-weight:800;text-transform:uppercase}.portal-loyalty-balance strong{font-size:1.12rem}.portal-wheel-area{display:grid;justify-items:center;position:relative}.portal-wheel{display:grid;place-items:center;width:176px;height:176px;border:8px solid #fff;border-radius:50%;background:conic-gradient(#ffc928 0 18%,#2563eb 18% 36%,#ef4444 36% 54%,#16a36a 54% 72%,#8b5cf6 72% 86%,#ffc928 86%);box-shadow:0 12px 35px rgba(0,0,0,.3),inset 0 0 0 5px rgba(15,23,42,.18);transition:transform 1.8s cubic-bezier(.16,.78,.19,1)}.portal-wheel span{display:grid;place-items:center;width:65px;height:65px;border:5px solid #fff;border-radius:50%;color:#13264a;background:#ffd044;font-size:.82rem;font-weight:1000;text-transform:uppercase}.portal-wheel-pointer{position:absolute;z-index:2;top:-4px;width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:27px solid #fff;filter:drop-shadow(0 3px 3px rgba(0,0,0,.3))}.portal-wheel-area button{min-height:46px;margin-top:15px;padding:0 18px;border:0;border-radius:14px;color:#322300;background:linear-gradient(135deg,#ffe06a,#ffc21f);box-shadow:0 10px 22px rgba(255,194,31,.22);font-weight:900;cursor:pointer}.portal-wheel-area button:disabled{opacity:.65;cursor:not-allowed}.portal-wheel-status{min-height:19px;margin:9px 0 0;color:#d7e5f8;font-size:.75rem;font-weight:700;text-align:center}.portal-wheel-status.is-winner{color:#ffdf69}@media(max-width:700px){.portal-loyalty{grid-template-columns:1fr;padding:22px;text-align:center}.portal-loyalty-copy>p{margin-inline:auto}.portal-loyalty-balance{margin-top:16px}.portal-wheel-area{margin-top:4px}}
.portal-loyalty-consent,.portal-loyalty-activity{grid-column:1/-1;position:relative;z-index:3}.portal-loyalty-consent[hidden],.portal-loyalty-activity[hidden],.portal-wheel-area[hidden]{display:none!important}.portal-loyalty-consent{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;padding:18px;border:1px solid rgba(255,255,255,.19);border-radius:19px;background:rgba(255,255,255,.09)}.portal-loyalty-consent strong{font-size:1rem}.portal-loyalty-consent p{margin:6px 0 0;color:#d9e8ff;font-size:.78rem;line-height:1.5}.portal-loyalty-consent label{grid-column:1/-1;display:flex;align-items:flex-start;gap:9px;color:#eef6ff;font-size:.78rem;font-weight:700}.portal-loyalty-consent input{width:18px;height:18px;accent-color:#ffc928}.portal-loyalty-consent button{grid-column:2;grid-row:1;min-height:42px;padding:0 15px;border:0;border-radius:12px;color:#2f2200;background:#ffd044;font-weight:900}.portal-loyalty-consent button:disabled{opacity:.55}.portal-loyalty-activity{border:1px solid rgba(255,255,255,.16);border-radius:17px;background:rgba(6,18,39,.28)}.portal-loyalty-activity summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;cursor:pointer;font-weight:900}.portal-loyalty-activity summary span{color:#bcd2ef;font-size:.7rem;font-weight:700}.portal-activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 15px 15px}.portal-activity-grid>section{padding:14px;border-radius:14px;background:rgba(255,255,255,.08)}.portal-activity-grid h3{margin:0 0 10px;font-size:.82rem}.portal-activity-list{display:grid;gap:8px}.portal-activity-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:9px 0;border-top:1px solid rgba(255,255,255,.1)}.portal-activity-item:first-child{border-top:0}.portal-activity-item strong{font-size:.76rem}.portal-activity-item span{font-size:.72rem;font-weight:900}.portal-activity-item small{grid-column:1/-1;color:#bcd2ef;font-size:.65rem}.portal-activity-empty{color:#bcd2ef;font-size:.73rem}@media(max-width:700px){.portal-loyalty-consent{grid-template-columns:1fr;text-align:left}.portal-loyalty-consent button{grid-column:1;grid-row:auto;width:100%}.portal-activity-grid{grid-template-columns:1fr;text-align:left}.portal-loyalty-activity summary{align-items:flex-start;flex-direction:column;text-align:left}}

/* Vitrine de favoritos inspirada na referência visual de 29/09/2026. */
body:not(.directory-active):not(.profile-active) .store-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 450px;
  overflow: hidden;
  border: 1px solid #e2ebf8;
  border-radius: 27px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(22,74,145,.09);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
body:not(.directory-active):not(.profile-active) .store-card:hover { border-color:#c9dcf6; box-shadow:0 22px 44px rgba(22,74,145,.15); transform:translateY(-4px); }
body:not(.directory-active):not(.profile-active) .cover {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 174px;
  min-height: 174px;
  padding: 20px;
  overflow: visible;
  border-radius: 26px 26px 46% 46% / 26px 26px 22px 22px;
  background: radial-gradient(circle at 50% 42%,#fff 0 3.8rem,transparent 3.85rem),linear-gradient(145deg,#f8fbff,#eaf3ff);
  isolation: isolate;
}
body:not(.directory-active):not(.profile-active) .cover::before { z-index:-1; inset:0; width:auto; height:auto; border-radius:inherit; background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(224,238,255,.2)); }
body:not(.directory-active):not(.profile-active) .cover::after { display:none; }
body:not(.directory-active):not(.profile-active) .store-cover-photo { inset:0; border-radius:inherit; opacity:.15; filter:saturate(.8); }
body:not(.directory-active):not(.profile-active) .cover .store-monogram,
body:not(.directory-active):not(.profile-active) .store-logo {
  position: relative;
  z-index: 2;
  width: 116px;
  height: 116px;
  margin: 0;
  border: 4px solid #fff;
  outline: 4px solid #f5c521;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 12px 28px rgba(27,69,126,.18);
}
body:not(.directory-active):not(.profile-active) .cover .store-monogram { display:grid; place-items:center; color:#126cdd; font-size:2.9rem; }
body:not(.directory-active):not(.profile-active) .cover.has-photo .store-monogram { display:none; }
body:not(.directory-active):not(.profile-active) .card-notification-button { top:16px; right:16px; width:42px; height:42px; color:#fff; background:linear-gradient(145deg,#ff3b54,#ea1734); box-shadow:0 8px 18px rgba(239,34,64,.28); }
body:not(.directory-active):not(.profile-active) .card-notification-button>svg { display:none; }
body:not(.directory-active):not(.profile-active) .card-notification-count { position:static; min-width:0; height:auto; padding:0; border:0; background:transparent; font-size:1rem; }
body:not(.directory-active):not(.profile-active) .store-content { position:relative; display:flex; flex:1 1 auto; flex-direction:column; align-items:stretch; min-width:0; padding:18px 16px 15px; text-align:center; }
body:not(.directory-active):not(.profile-active) .card-heading { display:block; }
body:not(.directory-active):not(.profile-active) .card-heading-copy { padding:0 22px; }
body:not(.directory-active):not(.profile-active) .store-card h3 { margin:0; color:#122342; font-size:clamp(1.1rem,1.8vw,1.38rem); line-height:1.15; }
body:not(.directory-active):not(.profile-active) .store-location { display:flex; align-items:center; justify-content:center; gap:5px; margin:7px 0 0; overflow:hidden; color:#718098; font-size:.72rem; white-space:nowrap; }
body:not(.directory-active):not(.profile-active) .store-location svg { flex:0 0 auto; width:14px; height:14px; fill:currentColor; stroke:none; }
body:not(.directory-active):not(.profile-active) .store-location span { overflow:hidden; text-overflow:ellipsis; }
body:not(.directory-active):not(.profile-active) .card-tools { top:12px; right:10px; }
body:not(.directory-active):not(.profile-active) .card-menu-button { color:#64748b; }
body:not(.directory-active):not(.profile-active) .summary { margin:10px 2px 0; color:#64738a; font-size:.78rem; line-height:1.35; -webkit-line-clamp:2; }
body:not(.directory-active):not(.profile-active) .store-tags { display:none; }
body:not(.directory-active):not(.profile-active) .category { display:inline-flex; align-items:center; align-self:center; gap:7px; max-width:100%; min-height:31px; margin:auto 0 12px; padding:0 13px; border-radius:999px; color:#46678f; background:#edf4fd; font-size:.72rem; font-weight:650; letter-spacing:0; text-transform:none; }
body:not(.directory-active):not(.profile-active) .category svg { width:16px; height:16px; color:#46678f; fill:none; stroke:currentColor; stroke-width:2; }
body:not(.directory-active):not(.profile-active) .category span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body:not(.directory-active):not(.profile-active) .store-highlight { min-height:42px; margin:10px 0 12px; padding:7px 9px; border-radius:15px; text-align:left; }
body:not(.directory-active):not(.profile-active) .store-highlight-icon { flex-basis:28px; width:28px; height:28px; font-size:.86rem; }
body:not(.directory-active):not(.profile-active) .store-highlight-icon svg { width:17px; height:17px; }
body:not(.directory-active):not(.profile-active) .store-highlight-copy strong { font-size:.7rem; }
body:not(.directory-active):not(.profile-active) .store-highlight-copy small { overflow:hidden; font-size:.63rem; text-overflow:ellipsis; white-space:nowrap; }
body:not(.directory-active):not(.profile-active) .card-actions { margin-top:0; }
body:not(.directory-active):not(.profile-active) .open-store { display:grid; grid-template-columns:22px minmax(0,1fr) 20px; align-items:center; width:100%; min-height:52px; padding:0 15px; border-radius:16px; color:#0867d8; background:linear-gradient(105deg,#eaf3ff,#e0eeff); box-shadow:none; font-size:.9rem; font-weight:850; }
body:not(.directory-active):not(.profile-active) .open-store:hover,
body:not(.directory-active):not(.profile-active) .open-store:focus-visible { color:#fff; background:linear-gradient(105deg,#1677ea,#0759c7); }
body:not(.directory-active):not(.profile-active) .open-store svg { width:22px; height:22px; }
body:not(.directory-active):not(.profile-active) .open-store-arrow { justify-self:end; }

@media (min-width:701px) {
  body:not(.directory-active):not(.profile-active) { background:radial-gradient(circle at 96% 4%,rgba(39,125,237,.14) 0 9rem,transparent 9.1rem),radial-gradient(circle at 3% 96%,rgba(39,125,237,.11) 0 10rem,transparent 10.1rem),linear-gradient(135deg,#f9fcff 0%,#eef6ff 48%,#f9fcff 100%); }
  body:not(.directory-active):not(.profile-active) .app-shell { width:min(calc(100% - 40px),1280px); padding-right:34px; padding-bottom:138px; padding-left:34px; overflow:visible; }
  body:not(.directory-active):not(.profile-active) .app-shell::before { right:34px; left:34px; height:315px; border:1px solid rgba(255,255,255,.82); border-radius:0 0 42px 42px; background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(234,245,255,.88)); box-shadow:0 24px 70px rgba(31,91,171,.08); }
  body:not(.directory-active):not(.profile-active) .app-shell::after { right:20px; width:min(55%,680px); opacity:.68; }
  body:not(.directory-active):not(.profile-active) .topbar { height:94px; padding:19px 12px 0; }
  body:not(.directory-active):not(.profile-active) .intro { min-height:150px; margin-bottom:18px; padding:10px 22px 0; }
  body:not(.directory-active):not(.profile-active) .intro>div:first-child { max-width:48%; }
  body:not(.directory-active):not(.profile-active) .intro h1 { font-size:clamp(2.45rem,4vw,3.55rem); }
  body:not(.directory-active):not(.profile-active) .intro-copy { max-width:410px; }
  body:not(.directory-active):not(.profile-active) .search { width:min(720px,75%); margin:0 auto; border:1px solid #e0ebfa; }
  body:not(.directory-active):not(.profile-active) .favorite-quick-actions { width:min(650px,72%); margin:13px auto 0; }
  body:not(.directory-active):not(.profile-active) .favorites { margin-top:28px; padding:34px 30px 30px; border:1px solid rgba(220,232,248,.92); border-radius:36px; background:rgba(255,255,255,.9); box-shadow:0 28px 75px rgba(31,81,148,.12); backdrop-filter:blur(18px); }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading { margin-bottom:26px; padding:0 4px; }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2 { font-size:clamp(2rem,3vw,3rem); }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2::after { width:128px; height:12px; }
  body:not(.directory-active):not(.profile-active) .favorite-count { font-size:1rem; font-weight:750; }
  body:not(.directory-active):not(.profile-active) .favorite-count svg { width:31px; height:31px; stroke-width:2.1; }
  body:not(.directory-active):not(.profile-active) .store-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
}
@media (min-width:1080px) { body:not(.directory-active):not(.profile-active) .store-list { grid-template-columns:repeat(4,minmax(0,1fr)); } }

@media (max-width:700px) {
  body:not(.directory-active):not(.profile-active) .favorites { margin-top:22px; padding-top:20px; border-top:1px solid #e2ebf8; }
  body:not(.directory-active):not(.profile-active) .store-list { gap:13px; }
  body:not(.directory-active):not(.profile-active) .store-card { display:grid; grid-template-columns:112px minmax(0,1fr); min-height:198px; border-radius:22px; }
  body:not(.directory-active):not(.profile-active) .store-card:hover { transform:none; }
  body:not(.directory-active):not(.profile-active) .cover { align-self:stretch; min-height:100%; padding:12px; border-radius:21px 0 0 21px; background:linear-gradient(150deg,#f9fcff,#e5f0ff); }
  body:not(.directory-active):not(.profile-active) .store-cover-photo { border-radius:inherit; }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo { width:76px; height:76px; outline-width:3px; }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram { font-size:2rem; }
  body:not(.directory-active):not(.profile-active) .card-notification-button { top:9px; right:8px; width:32px; height:32px; }
  body:not(.directory-active):not(.profile-active) .card-notification-count { font-size:.76rem; }
  body:not(.directory-active):not(.profile-active) .store-content { min-width:0; padding:14px 12px 11px; text-align:left; }
  body:not(.directory-active):not(.profile-active) .card-heading-copy { padding:0 24px 0 0; }
  body:not(.directory-active):not(.profile-active) .store-card h3 { font-size:1rem; }
  body:not(.directory-active):not(.profile-active) .store-location { justify-content:flex-start; font-size:.65rem; }
  body:not(.directory-active):not(.profile-active) .summary { margin-top:7px; font-size:.69rem; -webkit-line-clamp:1; }
  body:not(.directory-active):not(.profile-active) .store-highlight { min-height:36px; margin:7px 0 8px; padding:6px 7px; }
  body:not(.directory-active):not(.profile-active) .store-highlight-icon { flex-basis:25px; width:25px; height:25px; }
  body:not(.directory-active):not(.profile-active) .store-highlight-copy strong { font-size:.65rem; }
  body:not(.directory-active):not(.profile-active) .store-highlight-copy small { font-size:.58rem; }
  body:not(.directory-active):not(.profile-active) .category { align-self:flex-start; min-height:26px; margin:12px 0 7px; padding:0 9px; font-size:.63rem; }
  body:not(.directory-active):not(.profile-active) .open-store { min-height:40px; border-radius:12px; font-size:.75rem; }
}
@media (max-width:380px) {
  body:not(.directory-active):not(.profile-active) .store-card { grid-template-columns:94px minmax(0,1fr); }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo { width:64px; height:64px; }
}

/* Reprodução fiel da referência: a coleção é a própria página no desktop. */
.store-news {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 13px 0 0;
  color: #64738d;
  font-size: .94rem;
}
.store-news[hidden] { display: none; }
.store-news svg { width: 21px; height: 21px; fill: #ff203d; stroke: #ff203d; }
.store-news strong { color: #ff203d; font-size: 1.02rem; }

@media (min-width:900px) {
  body:not(.directory-active):not(.profile-active) {
    background:
      radial-gradient(circle at 99% 0, rgba(76,145,238,.15) 0 8.5rem, transparent 8.6rem),
      radial-gradient(circle at 0 100%, rgba(76,145,238,.13) 0 10.5rem, transparent 10.6rem),
      linear-gradient(135deg,#fbfdff 0%,#eef7ff 52%,#fbfdff 100%);
  }
  body:not(.directory-active):not(.profile-active) .app-shell {
    width: 100%;
    min-height: 100vh;
    margin: 0;
    padding: 44px 16px 36px;
    overflow: visible;
  }
  body:not(.directory-active):not(.profile-active) .app-shell::before,
  body:not(.directory-active):not(.profile-active) .app-shell::after,
  body:not(.directory-active):not(.profile-active) .topbar,
  body:not(.directory-active):not(.profile-active) .intro,
  body:not(.directory-active):not(.profile-active) .portal-loyalty,
  body:not(.directory-active):not(.profile-active) .search,
  body:not(.directory-active):not(.profile-active) .favorite-quick-actions,
  body:not(.directory-active):not(.profile-active) .bottom-nav,
  body:not(.directory-active):not(.profile-active) .landing-clone-shell { display:none !important; }
  body:not(.directory-active):not(.profile-active) #favorites-view { display:block; }
  body:not(.directory-active):not(.profile-active) .favorites {
    width: 100%;
    min-height: calc(100vh - 80px);
    margin: 0;
    padding: 62px 40px 62px;
    border: 1px solid rgba(255,255,255,.94);
    border-radius: 52px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 26px 70px rgba(31,91,171,.11);
    backdrop-filter: blur(20px);
  }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading {
    align-items: center;
    margin: 0 12px 58px;
    padding: 0;
  }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2 {
    padding-bottom: 14px;
    color: #071a3c;
    font-size: clamp(3.35rem,4.7vw,5.35rem);
    font-weight: 850;
    letter-spacing: -.04em;
    line-height: 1;
  }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2::after {
    width: 235px;
    height: 15px;
  }
  body:not(.directory-active):not(.profile-active) .favorite-count {
    gap: 19px;
    color: #071a3c;
    font-size: clamp(1.45rem,2vw,2rem);
    font-weight: 650;
  }
  body:not(.directory-active):not(.profile-active) .favorite-count svg {
    width: 50px;
    height: 50px;
    stroke: #086cea;
    stroke-width: 1.9;
  }
  body:not(.directory-active):not(.profile-active) .store-list {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px;
  }
  body:not(.directory-active):not(.profile-active) .store-card {
    min-height: 618px;
    border: 1px solid #e1eaf7;
    border-radius: 34px;
    box-shadow: 0 14px 34px rgba(35,81,145,.07);
  }
  body:not(.directory-active):not(.profile-active) .store-card:hover { transform:none; }
  body:not(.directory-active):not(.profile-active) .cover {
    flex-basis: 290px;
    min-height: 290px;
    padding: 36px 26px 14px;
    overflow: visible;
    border-radius: 33px 33px 0 0;
    background: linear-gradient(180deg,#fff,#fbfdff);
  }
  body:not(.directory-active):not(.profile-active) .cover::before,
  body:not(.directory-active):not(.profile-active) .cover::after,
  body:not(.directory-active):not(.profile-active) .store-cover-photo { display:none; }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo {
    width: 218px;
    height: 218px;
    border: 5px solid #fff;
    outline: 5px solid #ffc400;
    box-shadow: 0 10px 28px rgba(30,69,120,.12);
  }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram { font-size:5.3rem; }
  body:not(.directory-active):not(.profile-active) .card-notification-button {
    top: 35px;
    right: 33px;
    width: 64px;
    height: 64px;
    border: 4px solid #fff;
    font-size: 1.3rem;
  }
  body:not(.directory-active):not(.profile-active) .card-notification-count { font-size:1.45rem; }
  body:not(.directory-active):not(.profile-active) .store-content {
    padding: 11px 18px 22px;
    text-align: center;
  }
  body:not(.directory-active):not(.profile-active) .card-heading-copy { padding:0; }
  body:not(.directory-active):not(.profile-active) .store-card h3 {
    font-size: clamp(1.65rem,2.2vw,2.3rem);
    font-weight: 850;
    letter-spacing: -.045em;
    line-height: 1.08;
  }
  body:not(.directory-active):not(.profile-active) .store-news { margin-top:14px; font-size:clamp(.95rem,1.35vw,1.25rem); }
  body:not(.directory-active):not(.profile-active) .store-news svg { width:25px; height:25px; }
  body:not(.directory-active):not(.profile-active) .store-news strong { font-size:clamp(1rem,1.4vw,1.35rem); }
  body:not(.directory-active):not(.profile-active) .card-tools { display:none; }
  body:not(.directory-active):not(.profile-active) .category {
    align-self: center;
    justify-content: center;
    width: calc(100% - 36px);
    min-height: 54px;
    margin: auto 18px 22px;
    padding: 0 16px;
    color: #49698e;
    background: linear-gradient(105deg,#edf5ff,#e5f0ff);
    font-size: clamp(.92rem,1.25vw,1.18rem);
    font-weight: 500;
  }
  body:not(.directory-active):not(.profile-active) .category svg { width:25px; height:25px; }
  body:not(.directory-active):not(.profile-active) .card-actions { margin:0; }
  body:not(.directory-active):not(.profile-active) .open-store {
    grid-template-columns: 32px minmax(0,1fr) 28px;
    min-height: 88px;
    padding: 0 28px;
    border-radius: 24px;
    font-size: clamp(1.18rem,1.65vw,1.55rem);
  }
  body:not(.directory-active):not(.profile-active) .open-store svg { width:32px; height:32px; stroke-width:2.2; }
  body:not(.directory-active):not(.profile-active) .favorites-note { display:none; }
}

@media (min-width:1200px) {
  body:not(.directory-active):not(.profile-active) .store-list { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (min-width:900px) and (max-height:850px) {
  body:not(.directory-active):not(.profile-active) .app-shell { padding-top:24px; padding-bottom:24px; }
  body:not(.directory-active):not(.profile-active) .favorites { min-height:calc(100vh - 48px); padding-top:40px; padding-bottom:38px; }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading { margin-bottom:24px; }
  body:not(.directory-active):not(.profile-active) .store-card { min-height:515px; }
  body:not(.directory-active):not(.profile-active) .cover { flex-basis:245px; min-height:245px; padding-top:30px; }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo { width:180px; height:180px; }
  body:not(.directory-active):not(.profile-active) .card-notification-button { top:28px; right:26px; width:56px; height:56px; }
  body:not(.directory-active):not(.profile-active) .open-store { min-height:70px; }
  body:not(.directory-active):not(.profile-active) .category { min-height:44px; margin-bottom:14px; }
}

/* A referência orienta a seção de lojas; a estrutura completa do app permanece. */
@media (min-width:900px) {
  body:not(.directory-active):not(.profile-active) .app-shell {
    width: min(100%,1280px);
    min-height: 100vh;
    margin: 0 auto;
    padding: 0 34px 138px;
  }
  body:not(.directory-active):not(.profile-active) .app-shell::before,
  body:not(.directory-active):not(.profile-active) .app-shell::after { display:block !important; }
  body:not(.directory-active):not(.profile-active) .app-shell::before {
    right:34px;
    left:34px;
    height:315px;
    border-radius:0 0 42px 42px;
  }
  body:not(.directory-active):not(.profile-active) .app-shell::after { right:20px; width:min(55%,680px); }
  body:not(.directory-active):not(.profile-active) .topbar { display:flex !important; height:94px; padding:19px 12px 0; }
  body:not(.directory-active):not(.profile-active) .intro { display:block !important; min-height:150px; margin-bottom:18px; padding:10px 22px 0; }
  body:not(.directory-active):not(.profile-active) .intro>div:first-child { max-width:48%; }
  body:not(.directory-active):not(.profile-active) .intro h1 { font-size:clamp(2.45rem,4vw,3.55rem); }
  body:not(.directory-active):not(.profile-active) .search { display:flex !important; width:min(720px,75%); margin:0 auto; }
  body:not(.directory-active):not(.profile-active) .favorite-quick-actions { display:grid !important; width:min(650px,72%); margin:13px auto 0; }
  body:not(.directory-active):not(.profile-active) .portal-loyalty:not([hidden]) { display:grid !important; }
  body:not(.directory-active):not(.profile-active) .bottom-nav { display:grid !important; }
  body:not(.directory-active):not(.profile-active) .landing-clone-shell { display:block !important; }
  body:not(.directory-active):not(.profile-active) .favorites {
    width:100%;
    min-height:0;
    margin-top:32px;
    padding:42px 36px 36px;
    border-radius:40px;
  }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading { margin:0 8px 40px; }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2 { font-size:clamp(2.8rem,4vw,4rem); }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2::after { width:180px; }
  body:not(.directory-active):not(.profile-active) .favorite-count { font-size:clamp(1.15rem,1.6vw,1.55rem); }
  body:not(.directory-active):not(.profile-active) .favorite-count svg { width:40px; height:40px; }
  body:not(.directory-active):not(.profile-active) .store-list {
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:18px;
    justify-content:center;
  }
  body:not(.directory-active):not(.profile-active) .favorites-note { display:grid; }
}

@media (min-width:900px) and (max-width:1199px) {
  body:not(.directory-active):not(.profile-active) .store-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Escala mais delicada no desktop: cartões nunca crescem para preencher a tela. */
@media (min-width:900px) {
  body:not(.directory-active):not(.profile-active) .app-shell {
    width:min(calc(100% - 32px),1180px);
    padding-right:26px;
    padding-left:26px;
  }
  body:not(.directory-active):not(.profile-active) .app-shell::before {
    right:26px;
    left:26px;
    height:270px;
    border-radius:0 0 34px 34px;
  }
  body:not(.directory-active):not(.profile-active) .app-shell::after { width:min(50%,570px); }
  body:not(.directory-active):not(.profile-active) .topbar { height:78px; padding:14px 8px 0; }
  body:not(.directory-active):not(.profile-active) .brand-lockup { width:112px; height:58px; }
  body:not(.directory-active):not(.profile-active) .brand-lockup .brand { width:143px; transform:translate(-18px,-13px); }
  body:not(.directory-active):not(.profile-active) .notification-button,
  body:not(.directory-active):not(.profile-active) .avatar { width:42px; height:42px; border-radius:14px; }
  body:not(.directory-active):not(.profile-active) .avatar { border-radius:50%; }
  body:not(.directory-active):not(.profile-active) .intro { min-height:126px; margin-bottom:12px; padding:6px 18px 0; }
  body:not(.directory-active):not(.profile-active) .intro h1 { font-size:clamp(2.15rem,3.4vw,3rem); }
  body:not(.directory-active):not(.profile-active) .intro-copy { max-width:360px; margin-top:8px; font-size:.9rem; }
  body:not(.directory-active):not(.profile-active) .search { width:min(650px,68%); height:54px; }
  body:not(.directory-active):not(.profile-active) .favorite-quick-actions { width:min(590px,62%); }
  body:not(.directory-active):not(.profile-active) .favorite-quick-actions button { min-height:36px; font-size:.74rem; }
  body:not(.directory-active):not(.profile-active) .favorites {
    width:min(100%,1080px);
    margin:28px auto 0;
    padding:30px 30px 28px;
    border-radius:32px;
  }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading { margin:0 4px 26px; }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2 {
    padding-bottom:10px;
    font-size:clamp(2.15rem,3.1vw,3rem);
  }
  body:not(.directory-active):not(.profile-active) .favorites .section-heading h2::after { width:120px; height:10px; }
  body:not(.directory-active):not(.profile-active) .favorite-count { gap:10px; font-size:1rem; }
  body:not(.directory-active):not(.profile-active) .favorite-count svg { width:29px; height:29px; }
  body:not(.directory-active):not(.profile-active) .store-list {
    grid-template-columns:repeat(auto-fit,minmax(240px,280px));
    gap:18px;
    justify-content:center;
  }
  body:not(.directory-active):not(.profile-active) .store-card {
    width:100%;
    min-height:390px;
    border-radius:25px;
  }
  body:not(.directory-active):not(.profile-active) .cover {
    flex-basis:185px;
    min-height:185px;
    padding:24px 20px 8px;
    border-radius:24px 24px 0 0;
  }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo {
    width:136px;
    height:136px;
    border-width:4px;
    outline-width:4px;
  }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram { font-size:3.6rem; }
  body:not(.directory-active):not(.profile-active) .card-notification-button {
    top:23px;
    right:22px;
    width:46px;
    height:46px;
    border-width:3px;
  }
  body:not(.directory-active):not(.profile-active) .card-notification-count { font-size:1rem; }
  body:not(.directory-active):not(.profile-active) .store-content { padding:8px 14px 15px; }
  body:not(.directory-active):not(.profile-active) .store-card h3 { font-size:1.35rem; }
  body:not(.directory-active):not(.profile-active) .store-news { margin-top:9px; font-size:.83rem; }
  body:not(.directory-active):not(.profile-active) .store-news svg { width:19px; height:19px; }
  body:not(.directory-active):not(.profile-active) .store-news strong { font-size:.9rem; }
  body:not(.directory-active):not(.profile-active) .category {
    width:calc(100% - 20px);
    min-height:38px;
    margin:18px 10px 12px;
    padding:0 12px;
    font-size:.78rem;
  }
  body:not(.directory-active):not(.profile-active) .category svg { width:18px; height:18px; }
  body:not(.directory-active):not(.profile-active) .open-store {
    grid-template-columns:24px minmax(0,1fr) 21px;
    min-height:56px;
    padding:0 18px;
    border-radius:16px;
    font-size:.94rem;
  }
  body:not(.directory-active):not(.profile-active) .open-store svg { width:23px; height:23px; }
  body:not(.directory-active):not(.profile-active) .favorites-note { min-height:76px; padding:12px 18px; border-radius:21px; }
}

/* Grupos pessoais de lojas favoritas. */
.favorite-quick-actions {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  overflow-x:auto;
  padding:2px 2px 5px;
  scrollbar-width:none;
}
.favorite-quick-actions::-webkit-scrollbar { display:none; }
.favorite-quick-actions>button { flex:0 0 auto; padding:0 15px; }
.favorite-groups-list { display:contents; }
.favorite-group-item { position:relative; display:inline-flex; flex:0 0 auto; }
.favorite-group-chip { padding-right:36px !important; }
.favorite-group-chip.is-active { color:#fff; background:#126cdd; box-shadow:0 8px 18px rgba(18,108,221,.18); }
.favorite-group-folder { position:relative; width:16px; height:12px; border:2px solid currentColor; border-radius:3px; }
.favorite-group-folder::before { content:""; position:absolute; top:-5px; left:1px; width:7px; height:4px; border:2px solid currentColor; border-bottom:0; border-radius:3px 3px 0 0; }
.favorite-group-chip small { display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:99px; color:#31547c; background:rgba(255,255,255,.68); font-size:.62rem; font-weight:900; }
.favorite-group-edit { position:absolute; top:50%; right:6px; width:27px !important; min-height:27px !important; padding:0 !important; border-radius:50% !important; color:#536b8b !important; background:rgba(255,255,255,.62) !important; font-size:.64rem !important; letter-spacing:-.08em; transform:translateY(-50%); }
.favorite-group-chip.is-active+.favorite-group-edit { color:#0d5ec4 !important; }
.create-favorite-group { border:1px dashed #96b9e9 !important; color:#0d62cb !important; background:#f7fbff !important; }
.create-favorite-group>span { font-size:1rem; font-weight:900; }

body.favorite-group-open { overflow:hidden; }
.favorite-group-modal[hidden] { display:none; }
.favorite-group-modal { position:fixed; z-index:25000; inset:0; display:grid; place-items:center; padding:18px; background:rgba(7,24,49,.64); backdrop-filter:blur(9px); }
.favorite-group-dialog { width:min(520px,100%); max-height:min(720px,calc(100dvh - 36px)); overflow:auto; border:1px solid rgba(255,255,255,.8); border-radius:28px; background:#fff; box-shadow:0 28px 80px rgba(5,25,57,.34); }
.favorite-group-dialog>header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 25px 17px; border-bottom:1px solid #e8eef7; }
.favorite-group-dialog>header span { color:#126cdd; font-size:.68rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.favorite-group-dialog>header h2 { margin:4px 0 0; font-size:1.55rem; }
.favorite-group-close { width:36px; height:36px; border:0; border-radius:50%; color:#314867; background:#edf3fb; font-size:1.45rem; line-height:1; }
#favorite-group-form { padding:20px 25px 24px; }
.favorite-group-name-field { display:grid; gap:7px; }
.favorite-group-name-field>span,
.favorite-group-dialog legend { color:#253d5d; font-size:.76rem; font-weight:850; }
.favorite-group-name-field input { width:100%; height:48px; padding:0 14px; border:1px solid #d8e3f1; border-radius:13px; color:#17263d; background:#f9fbfe; outline:0; }
.favorite-group-name-field input:focus { border-color:#2580e7; box-shadow:0 0 0 4px rgba(37,128,231,.12); }
.favorite-group-dialog fieldset { min-width:0; margin:20px 0 0; padding:0; border:0; }
.favorite-group-dialog fieldset>p { margin:4px 0 12px; color:#6a7890; font-size:.72rem; }
.favorite-group-store-options { display:grid; gap:8px; max-height:310px; overflow:auto; padding-right:3px; }
.favorite-group-store-option { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:11px; min-height:60px; padding:8px 12px; border:1px solid #e4ebf5; border-radius:15px; background:#fbfdff; cursor:pointer; }
.favorite-group-store-option:has(input:checked) { border-color:#9ec4f5; background:#eff6ff; }
.favorite-group-store-avatar { display:grid; place-items:center; width:44px; height:44px; overflow:hidden; border:2px solid #f7c71c; border-radius:50%; color:#126cdd; background:#fff; font-size:.9rem; font-weight:900; }
.favorite-group-store-avatar img { width:100%; height:100%; object-fit:contain; }
.favorite-group-store-copy { display:grid; gap:2px; min-width:0; }
.favorite-group-store-copy strong,
.favorite-group-store-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.favorite-group-store-copy strong { color:#17263d; font-size:.83rem; }
.favorite-group-store-copy small { color:#718098; font-size:.67rem; }
.favorite-group-store-option input { width:20px; height:20px; accent-color:#126cdd; }
.favorite-group-no-stores { padding:20px; border:1px dashed #cbd8e9; border-radius:14px; color:#68778e; text-align:center; }
.favorite-group-error { min-height:18px; margin:10px 0 0; color:#b42342; font-size:.74rem; font-weight:700; }
.favorite-group-dialog footer { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:8px; margin-top:5px; }
.favorite-group-dialog footer button { min-height:42px; padding:0 14px; border:0; border-radius:12px; font-size:.75rem; font-weight:850; }
.favorite-group-delete { color:#ad2940; background:#fff0f3; }
.favorite-group-cancel { color:#435773; background:#edf2f8; }
.favorite-group-save { color:#fff; background:linear-gradient(100deg,#1479e9,#0757bd); }
.favorite-group-dialog footer button:disabled { opacity:.6; cursor:wait; }

@media (min-width:900px) {
  body:not(.directory-active):not(.profile-active) .favorite-quick-actions { display:flex !important; width:min(760px,80%); }
}
@media (max-width:600px) {
  .favorite-quick-actions { display:flex; gap:6px; margin-right:-16px; padding-right:16px; }
  .favorite-quick-actions>button { padding:0 12px; }
  .favorite-group-dialog { max-height:calc(100dvh - 16px); border-radius:23px; }
  .favorite-group-modal { align-items:end; padding:8px; }
  .favorite-group-dialog>header { padding:20px 19px 14px; }
  #favorite-group-form { padding:16px 19px 20px; }
  .favorite-group-dialog footer { grid-template-columns:1fr 1fr; }
  .favorite-group-dialog footer span { display:none; }
  .favorite-group-delete { grid-column:1/-1; order:3; }
}

/* No smartphone, preserva os cards completos em duas colunas. */
@media (max-width:700px) {
  body:not(.directory-active):not(.profile-active) .account-status.is-logged-in {
    width:50px;
    height:50px;
  }
  body:not(.directory-active):not(.profile-active) .account-status.is-logged-in::after {
    width:12px;
    height:12px;
  }
  body:not(.directory-active):not(.profile-active) .store-list {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  body:not(.directory-active):not(.profile-active) .store-card {
    display:flex;
    flex-direction:column;
    min-height:0;
    border-radius:21px;
  }
  body:not(.directory-active):not(.profile-active) .cover {
    align-self:auto;
    flex:0 0 112px;
    min-height:112px;
    padding:7px 10px 4px;
    border-radius:20px 20px 0 0;
    background:linear-gradient(180deg,#fff,#f8fbff);
  }
  body:not(.directory-active):not(.profile-active) .store-cover-photo {
    border-radius:inherit;
    opacity:.26;
    filter:saturate(.9) contrast(.96);
  }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo {
    width:92px;
    height:92px;
    border-width:3px;
    outline-width:3px;
  }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram { font-size:2.35rem; }
  body:not(.directory-active):not(.profile-active) .card-notification-button {
    top:8px;
    right:8px;
    width:31px;
    height:31px;
    border:2px solid #fff;
  }
  body:not(.directory-active):not(.profile-active) .card-notification-count { font-size:.72rem; }
  body:not(.directory-active):not(.profile-active) .store-content {
    flex:1 1 auto;
    align-items:stretch;
    padding:9px 8px 10px;
    text-align:center;
  }
  body:not(.directory-active):not(.profile-active) .card-heading-copy { padding:0 16px; }
  body:not(.directory-active):not(.profile-active) .store-card h3 {
    min-height:2.15em;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:.9rem;
    line-height:1.08;
  }
  body:not(.directory-active):not(.profile-active) .store-news {
    justify-content:center;
    gap:4px;
    margin-top:6px;
    font-size:.66rem;
  }
  body:not(.directory-active):not(.profile-active) .store-news svg { width:14px; height:14px; }
  body:not(.directory-active):not(.profile-active) .store-news strong { font-size:.72rem; }
  body:not(.directory-active):not(.profile-active) .store-location,
  body:not(.directory-active):not(.profile-active) .summary,
  body:not(.directory-active):not(.profile-active) .store-highlight { display:none; }
  body:not(.directory-active):not(.profile-active) .card-tools { top:7px; right:5px; }
  body:not(.directory-active):not(.profile-active) .card-menu-button { width:27px; height:27px; }
  body:not(.directory-active):not(.profile-active) .category {
    align-self:center;
    justify-content:center;
    width:calc(100% - 6px);
    min-height:29px;
    margin:9px 3px;
    padding:0 7px;
    font-size:.62rem;
  }
  body:not(.directory-active):not(.profile-active) .category svg { width:14px; height:14px; }
  body:not(.directory-active):not(.profile-active) .open-store {
    grid-template-columns:19px minmax(0,1fr) 16px;
    min-height:44px;
    padding:0 8px;
    border-radius:13px;
    font-size:.73rem;
  }
  body:not(.directory-active):not(.profile-active) .open-store svg { width:18px; height:18px; }
}

@media (max-width:360px) {
  body:not(.directory-active):not(.profile-active) .store-list { gap:8px; }
  body:not(.directory-active):not(.profile-active) .cover { flex-basis:104px; min-height:104px; }
  body:not(.directory-active):not(.profile-active) .cover .store-monogram,
  body:not(.directory-active):not(.profile-active) .store-logo { width:80px; height:80px; }
  body:not(.directory-active):not(.profile-active) .store-card { min-height:0; }
}

/* O contador de novidades acompanha a logo da loja. */
body:not(.directory-active):not(.profile-active) .card-notification-button {
  top:50%;
  right:auto;
  left:50%;
  transform:translate(32px,-64px);
}

@media (min-width:900px) {
  body:not(.directory-active):not(.profile-active) .card-notification-button {
    transform:translate(40px,-76px);
  }
}

@media (max-width:700px) {
  body:not(.directory-active):not(.profile-active) .card-notification-button {
    top:50%;
    right:auto;
    left:50%;
    transform:translate(20px,-50px);
  }
}

/* Home pessoal e navegação do Meu Trilista. */
.app-view[hidden] { display:none !important; }
.bottom-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bottom-nav #nav-home svg,
.bottom-nav #nav-favorites svg { fill: none; stroke: currentColor; }

body.home-active,
body.following-active { background: linear-gradient(180deg, #f7fbff 0, #eef4fc 52%, #f8fbff 100%); }

.home-view { display: grid; gap: 18px; padding: 6px 0 24px; }
.home-welcome {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 24px;
  overflow: hidden;
  border-radius: 28px;
  color: #fff;
  background: linear-gradient(135deg, #102a52, #0969d5);
  box-shadow: 0 20px 42px rgba(14, 75, 148, .2);
}
.home-welcome::after { content:""; position:absolute; right:-52px; bottom:-82px; width:190px; height:190px; border:1px solid rgba(255,255,255,.17); border-radius:50%; }
.home-welcome > * { position: relative; z-index: 1; }
.home-welcome .eyebrow { color: #bcd9ff; }
.home-welcome h1 { margin: 5px 0 8px; font-size: clamp(1.75rem, 6vw, 2.7rem); line-height: 1.05; letter-spacing: -.035em; }
.home-welcome p:last-child { margin: 0; color: #dbeaff; font-size: .9rem; line-height: 1.4; }
.home-notification-shortcut { display:flex; align-items:center; gap:10px; min-width:108px; min-height:70px; padding:10px 14px; border:1px solid rgba(255,255,255,.22); border-radius:20px; color:#fff; background:rgba(255,255,255,.12); }
.home-notification-shortcut svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.9; }
.home-notification-shortcut span { display:grid; text-align:left; }
.home-notification-shortcut strong { font-size:1.35rem; line-height:1; }
.home-notification-shortcut small { margin-top:4px; color:#dbeaff; font-size:.67rem; }

.home-create-store-card {
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  align-items:center;
  gap:17px;
  padding:20px 22px;
  overflow:hidden;
  border:1px solid #f0cc4b;
  border-radius:26px;
  color:#17233a;
  background:linear-gradient(115deg,#fff8d9,#fffdf4 68%);
  box-shadow:0 13px 32px rgba(145,105,0,.1);
}
.home-create-store-card[hidden] { display:none !important; }
.home-create-store-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:19px; color:#6f5000; background:#f5c928; box-shadow:0 9px 20px rgba(178,132,0,.2); font-size:1.6rem; }
.home-create-store-copy { display:grid; gap:4px; min-width:0; }
.home-create-store-copy p { margin:0; color:#9a7200; font-size:.66rem; font-weight:900; letter-spacing:.13em; }
.home-create-store-copy h2 { margin:0; color:#17233a; font-size:1.14rem; line-height:1.15; letter-spacing:-.02em; }
.home-create-store-copy > span { color:#657187; font-size:.75rem; line-height:1.35; }
.home-create-store-card > a { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:0 16px; border-radius:14px; color:#172033; background:#f5c928; box-shadow:0 7px 16px rgba(178,132,0,.16); font-size:.76rem; font-weight:900; text-decoration:none; white-space:nowrap; }
.home-create-store-card > a:hover,
.home-create-store-card > a:focus-visible { background:#ffda42; outline:0; transform:translateY(-1px); }
.home-create-store-card > a span { font-size:1.1rem; }

.home-section { padding: 20px; border:1px solid #e3ebf6; border-radius:26px; background:#fff; box-shadow:0 13px 34px rgba(28,74,135,.07); }
.home-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:14px; }
.home-section-heading .eyebrow { margin-bottom:4px; color:#71809a; }
.home-section-heading h2 { margin:0; color:#14233e; font-size:clamp(1.2rem,4.2vw,1.55rem); letter-spacing:-.025em; }
.home-section-heading button { flex:0 0 auto; padding:8px 0 8px 10px; border:0; color:#0868d7; background:transparent; font-size:.76rem; font-weight:850; }
.home-news-list,
.home-stores-list { display:grid; gap:9px; }
.home-news-item,
.home-store-item { display:grid; grid-template-columns:48px minmax(0,1fr) auto auto; align-items:center; gap:11px; width:100%; min-height:66px; padding:8px 10px; border:1px solid #e8eef7; border-radius:18px; color:#17233a; background:#fbfdff; text-align:left; text-decoration:none; }
.home-news-item:hover,
.home-news-item:focus-visible,
.home-store-item:hover,
.home-store-item:focus-visible { border-color:#bcd5f4; background:#f1f7ff; outline:0; }
.home-list-avatar { display:grid; place-items:center; width:48px; height:48px; overflow:hidden; border:1px solid #dce6f4; border-radius:50%; color:#0b65cc; background:#edf5ff; font-size:.95rem; font-weight:900; }
.home-list-avatar img { display:block; width:100%; height:100%; object-fit:contain; background:#fff; }
.home-list-copy { display:grid; gap:4px; min-width:0; }
.home-list-copy strong,
.home-list-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-list-copy strong { color:#17233a; font-size:.91rem; }
.home-list-copy small { color:#748198; font-size:.73rem; }
.home-unread-badge { display:grid; place-items:center; min-width:25px; height:25px; padding:0 7px; border:2px solid #fff; border-radius:999px; color:#fff; background:#ef2946; box-shadow:0 5px 12px rgba(239,41,70,.22); font-size:.68rem; }
.home-list-arrow { color:#8190a7; font-size:1.5rem; line-height:1; }
.home-compact-empty { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; padding:13px; border:1px dashed #cfdbea; border-radius:18px; color:#607089; background:#f8fbff; }
.home-compact-empty[hidden] { display:none; }
.home-compact-empty > span { display:grid; place-items:center; width:46px; height:46px; border-radius:15px; color:#0b68d8; background:#e7f2ff; }
.home-compact-empty svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.9; }
.home-compact-empty div { display:grid; gap:3px; }
.home-compact-empty strong { color:#17233a; font-size:.86rem; }
.home-compact-empty small { font-size:.72rem; line-height:1.35; }
.home-compact-empty button { min-height:36px; padding:0 11px; border:0; border-radius:11px; color:#fff; background:#126cdd; font-size:.7rem; font-weight:850; }

/* A tela Seguindo reaproveita os cards existentes em formato mais compacto. */
body.following-active #favorites-view { flex-direction:column; }
body.following-active #favorites-view:not([hidden]) { display:flex; }
body.following-active #favorites-view .intro { order:1; }
body.following-active #favorites-view .search { order:2; }
body.following-active #favorites-view .favorite-quick-actions { order:3; }
body.following-active #favorites-view .favorites { order:4; }
body.following-active #favorites-view .portal-loyalty { order:5; }
body.following-active #favorites-view .intro { min-height:0; margin:0 0 16px; padding:4px 2px; }
body.following-active #favorites-view .intro > div:first-child { max-width:none; }
body.following-active #favorites-view .intro h1 { margin:0; font-size:clamp(2rem,7vw,3rem); }
body.following-active #favorites-view .portal-loyalty { margin-top:14px; }
body.following-active #favorites-view .favorites { width:100%; min-height:0; margin-top:22px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
body.following-active #favorites-view .favorites .section-heading { margin:0 0 16px; }
body.following-active #favorites-view .favorites .section-heading h2 { font-size:1.35rem; }
body.following-active #favorites-view .favorites .section-heading h2::after { width:82px; height:8px; }
body.following-active #favorites-view .favorite-count { gap:7px; font-size:.78rem; }
body.following-active #favorites-view .favorite-count svg { width:20px; height:20px; }
body.following-active #favorites-view .store-list { grid-template-columns:1fr; gap:11px; }
body.following-active #favorites-view .store-card { display:grid; grid-template-columns:88px minmax(0,1fr); min-height:126px; overflow:visible; border:1px solid #e2eaf5; border-radius:20px; background:#fff; box-shadow:0 10px 26px rgba(22,74,145,.07); transform:none; }
body.following-active #favorites-view .cover { align-self:stretch; min-height:124px; padding:9px; border-radius:19px 0 0 19px; background:linear-gradient(145deg,#f3f8ff,#e2efff); }
body.following-active #favorites-view .store-cover-photo { border-radius:inherit; }
body.following-active #favorites-view .cover .store-monogram,
body.following-active #favorites-view .store-logo { width:62px; height:62px; margin:auto; outline-width:2px; }
body.following-active #favorites-view .cover .store-monogram { font-size:1.5rem; }
body.following-active #favorites-view .store-content { min-width:0; padding:12px 11px 10px 12px; text-align:left; }
body.following-active #favorites-view .card-heading-copy { padding:0 24px 0 0; }
body.following-active #favorites-view .store-card h3 { margin:0; font-size:.95rem; }
body.following-active #favorites-view .category { align-self:flex-start; min-height:24px; max-width:100%; margin:8px 0 6px; padding:0 8px; font-size:.59rem; }
body.following-active #favorites-view .card-actions { margin-top:auto; }
body.following-active #favorites-view .open-store { min-height:36px; border-radius:11px; font-size:.7rem; }
body.following-active #favorites-view .card-notification-button { top:7px; right:7px; left:auto; width:29px; height:29px; transform:none; }
body.following-active #favorites-view .card-notification-count { font-size:.68rem; }
body.following-active #favorites-view .store-news { justify-content:flex-start; margin:5px 0 0; font-size:.67rem; }
body.following-active #favorites-view .store-news svg { width:15px; height:15px; }
body.following-active #favorites-view .store-news strong { font-size:.72rem; }
body.following-active #favorites-view .favorites-note { margin-top:18px; }

@media (min-width:680px) {
  .home-stores-list { grid-template-columns:1fr 1fr; }
  body.following-active #favorites-view .store-list { grid-template-columns:1fr 1fr; }
}

@media (max-width:679px) {
  .home-create-store-card { grid-template-columns:48px minmax(0,1fr); gap:13px; padding:17px; border-radius:22px; }
  .home-create-store-icon { width:48px; height:48px; border-radius:16px; font-size:1.45rem; }
  .home-create-store-copy h2 { font-size:1rem; }
  .home-create-store-card > a { grid-column:1 / -1; width:100%; }
}

@media (min-width:900px) {
  body.home-active .app-shell,
  body.following-active .app-shell { width:min(100%,860px); min-height:100vh; margin:0 auto; padding:0 24px 34px; }
  body.home-active .topbar,
  body.following-active .topbar { display:flex !important; }
  body.home-active .bottom-nav,
  body.following-active .bottom-nav { display:grid !important; }
  body.home-active .home-view { padding-top:8px; }
  body.following-active #favorites-view .intro { display:block !important; }
  body.following-active #favorites-view .search { display:flex !important; }
  body.following-active #favorites-view .favorite-quick-actions { display:grid !important; }
  body.following-active #favorites-view .portal-loyalty:not([hidden]) { display:grid !important; }
}

@media (max-width:600px) {
  body.home-active .app-shell,
  body.following-active .app-shell { padding-bottom:90px; }
  .home-view { gap:13px; padding-top:0; }
  .home-welcome { gap:10px; padding:19px 16px; border-radius:23px; }
  .home-welcome h1 { font-size:1.65rem; }
  .home-welcome p:last-child { max-width:220px; font-size:.76rem; }
  .home-notification-shortcut { min-width:82px; min-height:60px; padding:8px 10px; border-radius:17px; }
  .home-notification-shortcut svg { width:21px; height:21px; }
  .home-notification-shortcut strong { font-size:1.15rem; }
  .home-section { padding:15px 13px; border-radius:22px; }
  .home-section-heading { align-items:center; }
  .home-section-heading h2 { font-size:1.14rem; }
  .home-section-heading button { font-size:.7rem; }
  .home-news-item,
  .home-store-item { grid-template-columns:44px minmax(0,1fr) auto auto; min-height:60px; gap:9px; padding:7px 8px; border-radius:16px; }
  .home-list-avatar { width:44px; height:44px; }
  .home-list-copy strong { font-size:.84rem; }
  .home-list-copy small { font-size:.67rem; }
  .home-compact-empty { grid-template-columns:42px minmax(0,1fr); }
  .home-compact-empty > span { width:42px; height:42px; }
  .home-compact-empty button { grid-column:1/-1; width:100%; }
  .bottom-nav { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .bottom-nav button { min-width:0; padding-right:2px; padding-left:2px; }
}

/* Seguindo: o mesmo cartao horizontal usado na Home, com acao explicita. */
body.following-active #favorites-view .store-list {
  grid-template-columns:1fr;
  gap:12px;
}
body.following-active #favorites-view .store-card {
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  min-height:88px;
  padding:10px 12px;
  overflow:visible;
  border:1px solid #e2eaf5;
  border-radius:20px;
  background:#fbfdff;
  box-shadow:none;
}
body.following-active #favorites-view .store-card:hover {
  border-color:#bcd5f4;
  background:#f6faff;
}
body.following-active #favorites-view .cover {
  position:relative;
  align-self:center;
  width:64px;
  min-height:64px;
  height:64px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:50%;
  background:transparent;
  isolation:isolate;
}
body.following-active #favorites-view .cover::before,
body.following-active #favorites-view .cover::after,
body.following-active #favorites-view .store-cover-photo {
  display:none;
}
body.following-active #favorites-view .cover .store-monogram,
body.following-active #favorites-view .store-logo {
  width:58px;
  height:58px;
  margin:auto;
  padding:3px;
  border:1px solid #dce6f4;
  outline:0;
  border-radius:50%;
  background:#fff;
  box-shadow:none;
  object-fit:contain;
}
body.following-active #favorites-view .cover .store-monogram {
  display:grid;
  place-items:center;
  color:#0b65cc;
  background:#edf5ff;
  font-size:1.15rem;
}
body.following-active #favorites-view .cover.has-photo .store-monogram { display:none; }
body.following-active #favorites-view .store-content {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:12px;
  min-width:0;
  padding:0 28px 0 0;
  text-align:left;
}
body.following-active #favorites-view .card-heading {
  grid-column:1;
  grid-row:1;
  min-width:0;
}
body.following-active #favorites-view .card-heading-copy { padding:0; }
body.following-active #favorites-view .store-card h3 {
  display:block;
  min-height:0;
  margin:0;
  overflow:hidden;
  color:#17233a;
  font-size:.92rem;
  font-weight:850;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.following-active #favorites-view .store-news { display:none !important; }
body.following-active #favorites-view .category {
  grid-column:1;
  grid-row:2;
  align-self:start;
  justify-content:flex-start;
  width:auto;
  min-height:0;
  max-width:100%;
  margin:5px 0 0;
  padding:0;
  color:#73819a;
  background:transparent;
  font-size:.7rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
body.following-active #favorites-view .category svg { display:none; }
body.following-active #favorites-view .card-actions {
  grid-column:2;
  grid-row:1 / span 2;
  margin:0;
}
body.following-active #favorites-view .open-store {
  display:inline-flex;
  grid-template-columns:none;
  gap:6px;
  min-height:40px;
  padding:0 12px;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(110deg,#1380f3,#075bd3);
  box-shadow:0 6px 14px rgba(7,91,211,.18);
  font-size:.72rem;
  font-weight:850;
}
body.following-active #favorites-view .open-store:hover,
body.following-active #favorites-view .open-store:focus-visible {
  background:linear-gradient(110deg,#096edb,#064eb7);
}
body.following-active #favorites-view .open-store svg {
  width:17px;
  height:17px;
}
body.following-active #favorites-view .open-store-arrow { display:none; }
body.following-active #favorites-view .card-tools {
  top:5px;
  right:5px;
}
body.following-active #favorites-view .card-menu-button {
  width:27px;
  height:27px;
  border-radius:9px;
  color:#7687a1;
}
body.following-active #favorites-view .card-menu-button svg { width:16px; height:16px; }
body.following-active #favorites-view .card-notification-button {
  top:-4px;
  right:-3px;
  width:25px;
  height:25px;
}

@media (min-width:680px) {
  body.following-active #favorites-view .store-list { grid-template-columns:1fr 1fr; }
}

@media (max-width:480px) {
  body.following-active #favorites-view .store-card {
    grid-template-columns:54px minmax(0,1fr);
    min-height:78px;
    padding:8px 9px;
    border-radius:18px;
  }
  body.following-active #favorites-view .cover { width:54px; height:54px; min-height:54px; }
  body.following-active #favorites-view .cover .store-monogram,
  body.following-active #favorites-view .store-logo { width:50px; height:50px; }
  body.following-active #favorites-view .store-content { column-gap:8px; padding-right:23px; }
  body.following-active #favorites-view .store-card h3 { font-size:.82rem; }
  body.following-active #favorites-view .category { margin-top:3px; font-size:.63rem; }
  body.following-active #favorites-view .open-store {
    min-height:36px;
    padding:0 9px;
    border-radius:11px;
    font-size:.65rem;
  }
  body.following-active #favorites-view .open-store > svg:first-child { display:none; }
}

/* A lista de lojas pertence a Home; a segunda aba fica exclusiva para fidelidade. */
body.home-active #home-view .home-following-area {
  display:grid;
  gap:14px;
  padding:4px 0 12px;
}
body.home-active #home-view .home-following-area .search {
  display:flex;
  width:100%;
  margin:0;
}
body.home-active #home-view .home-following-area .favorite-quick-actions {
  display:grid;
  margin:0;
}
body.home-active #home-view .home-following-area .favorites {
  width:100%;
  min-height:0;
  margin:8px 0 0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
body.home-active #home-view .home-following-area .section-heading {
  align-items:center;
  margin:0 0 16px;
  padding:0;
}
body.home-active #home-view .home-following-area .section-heading h2 {
  padding-bottom:8px;
  color:#071a3c;
  font-size:1.35rem;
  line-height:1.05;
}
body.home-active #home-view .home-following-area .section-heading h2::after {
  width:82px;
  height:8px;
}
body.home-active #home-view .home-following-area .favorite-count {
  gap:7px;
  color:#071a3c;
  font-size:.78rem;
}
body.home-active #home-view .home-following-area .favorite-count svg {
  width:20px;
  height:20px;
  stroke:#086cea;
}
body.home-active #home-view .home-following-area .store-list {
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
body.home-active #home-view .home-following-area .store-card {
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  width:100%;
  min-height:88px;
  padding:10px 12px;
  overflow:visible;
  border:1px solid #e2eaf5;
  border-radius:20px;
  background:#fbfdff;
  box-shadow:none;
  transform:none;
}
body.home-active #home-view .home-following-area .store-card:hover {
  border-color:#bcd5f4;
  background:#f6faff;
}
body.home-active #home-view .home-following-area .cover {
  position:relative;
  display:flex;
  align-self:center;
  width:64px;
  min-height:64px;
  height:64px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:50%;
  background:transparent;
  isolation:isolate;
}
body.home-active #home-view .home-following-area .cover::before,
body.home-active #home-view .home-following-area .cover::after,
body.home-active #home-view .home-following-area .store-cover-photo { display:none; }
body.home-active #home-view .home-following-area .cover .store-monogram,
body.home-active #home-view .home-following-area .store-logo {
  position:relative;
  z-index:2;
  width:58px;
  height:58px;
  margin:auto;
  padding:3px;
  border:1px solid #dce6f4;
  outline:0;
  border-radius:50%;
  background:#fff;
  box-shadow:none;
  object-fit:contain;
}
body.home-active #home-view .home-following-area .cover .store-monogram {
  display:grid;
  place-items:center;
  color:#0b65cc;
  background:#edf5ff;
  font-size:1.15rem;
}
body.home-active #home-view .home-following-area .cover.has-photo .store-monogram { display:none; }
body.home-active #home-view .home-following-area .store-content {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:12px;
  min-width:0;
  padding:0 28px 0 0;
  text-align:left;
}
body.home-active #home-view .home-following-area .card-heading {
  grid-column:1;
  grid-row:1;
  min-width:0;
}
body.home-active #home-view .home-following-area .card-heading-copy { padding:0; }
body.home-active #home-view .home-following-area .store-card h3 {
  display:block;
  min-height:0;
  margin:0;
  overflow:hidden;
  color:#17233a;
  font-size:.92rem;
  font-weight:850;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.home-active #home-view .home-following-area .store-news { display:none !important; }
body.home-active #home-view .home-following-area .category {
  grid-column:1;
  grid-row:2;
  align-self:start;
  justify-content:flex-start;
  width:auto;
  min-height:0;
  max-width:100%;
  margin:5px 0 0;
  padding:0;
  color:#73819a;
  background:transparent;
  font-size:.7rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
body.home-active #home-view .home-following-area .category svg { display:none; }
body.home-active #home-view .home-following-area .card-actions {
  grid-column:2;
  grid-row:1 / span 2;
  margin:0;
}
body.home-active #home-view .home-following-area .open-store {
  display:inline-flex;
  grid-template-columns:none;
  gap:6px;
  min-height:40px;
  padding:0 12px;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(110deg,#1380f3,#075bd3);
  box-shadow:0 6px 14px rgba(7,91,211,.18);
  font-size:.72rem;
  font-weight:850;
}
body.home-active #home-view .home-following-area .open-store:hover,
body.home-active #home-view .home-following-area .open-store:focus-visible {
  background:linear-gradient(110deg,#096edb,#064eb7);
}
body.home-active #home-view .home-following-area .open-store svg { width:17px; height:17px; }
body.home-active #home-view .home-following-area .open-store-arrow { display:none; }
body.home-active #home-view .home-following-area .card-tools { top:5px; right:5px; }
body.home-active #home-view .home-following-area .card-menu-button {
  display:grid;
  width:27px;
  height:27px;
  border-radius:9px;
  color:#7687a1;
}
body.home-active #home-view .home-following-area .card-menu-button svg { width:16px; height:16px; }
body.home-active #home-view .home-following-area .card-notification-button {
  top:-4px;
  right:-3px;
  left:auto;
  width:25px;
  height:25px;
  transform:none;
}

@media (min-width:680px) {
  body.home-active #home-view .home-following-area .store-list { grid-template-columns:1fr 1fr; }
}

@media (max-width:480px) {
  body.home-active #home-view .home-following-area .store-card {
    grid-template-columns:54px minmax(0,1fr);
    min-height:78px;
    padding:8px 9px;
    border-radius:18px;
  }
  body.home-active #home-view .home-following-area .cover { width:54px; height:54px; min-height:54px; }
  body.home-active #home-view .home-following-area .cover .store-monogram,
  body.home-active #home-view .home-following-area .store-logo { width:50px; height:50px; }
  body.home-active #home-view .home-following-area .store-content { column-gap:8px; padding-right:23px; }
  body.home-active #home-view .home-following-area .store-card h3 { font-size:.82rem; }
  body.home-active #home-view .home-following-area .category { margin-top:3px; font-size:.63rem; }
  body.home-active #home-view .home-following-area .open-store {
    min-height:36px;
    padding:0 9px;
    border-radius:11px;
    font-size:.65rem;
  }
  body.home-active #home-view .home-following-area .open-store > svg:first-child { display:none; }
}

/* No Perfil, o menu da conta deve permanecer acima dos cartoes da pagina. */
body.profile-active .topbar {
  position:relative;
  z-index:50;
}
body.profile-active .account-menu-wrap,
body.profile-active .account-menu {
  z-index:60;
}
body.profile-active .profile-view { z-index:1; }

/* Fidelidade: a arte do cabecalho nao pode invadir a roleta nem os textos. */
body.following-active .app-shell::after { z-index:0; }
body.following-active #favorites-view {
  position:relative;
  z-index:1;
}
body.following-active #favorites-view .intro {
  position:relative;
  z-index:1;
}
body.following-active #favorites-view .portal-loyalty {
  position:relative;
  z-index:3;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 15%,rgba(255,211,62,.28),transparent 31%),
    linear-gradient(135deg,#101c35,#183f77);
}
body.following-active #favorites-view .portal-loyalty-copy,
body.following-active #favorites-view .portal-wheel-area,
body.following-active #favorites-view .portal-loyalty-consent,
body.following-active #favorites-view .portal-loyalty-activity {
  position:relative;
  z-index:2;
}

/* Composicao definitiva da pagina de Fidelidade. */
body.following-active {
  overflow-x:hidden;
  background:linear-gradient(180deg,#f7fbff 0,#edf4fc 100%);
}
body.following-active .app-shell {
  width:min(100%,1180px) !important;
  min-height:100vh;
  margin:0 auto !important;
  padding:0 28px 120px !important;
  overflow:visible !important;
}
body.following-active .app-shell::before {
  right:28px;
  left:28px;
  height:255px;
  border:1px solid rgba(218,232,249,.9);
  border-radius:0 0 34px 34px;
  background:linear-gradient(145deg,#fff,#edf6ff);
  box-shadow:0 18px 48px rgba(31,91,171,.08);
}
body.following-active .app-shell::after { display:none !important; }
body.following-active #favorites-view .intro {
  display:block !important;
  min-height:150px;
  margin:0;
  padding:18px 18px 22px;
}
body.following-active #favorites-view .intro > div:first-child { max-width:620px; }
body.following-active #favorites-view .intro h1 {
  margin:0;
  font-size:clamp(2.25rem,5vw,3.55rem);
}
body.following-active #favorites-view .intro-copy {
  max-width:560px;
  margin-top:10px;
  font-size:.98rem;
  line-height:1.45;
}
body.following-active #favorites-view .portal-loyalty {
  grid-template-columns:minmax(0,1fr) 290px;
  align-items:center;
  gap:34px;
  width:100%;
  margin:22px 0 0;
  padding:34px;
  border-radius:30px;
  box-shadow:0 22px 55px rgba(10,42,89,.18);
}
body.following-active #favorites-view .portal-loyalty-copy { align-self:center; }
body.following-active #favorites-view .portal-loyalty h2 {
  max-width:650px;
  margin:16px 0 10px;
  font-size:clamp(1.75rem,3.2vw,2.65rem);
  line-height:1.08;
}
body.following-active #favorites-view .portal-loyalty-copy > p {
  max-width:610px;
  font-size:.98rem;
  line-height:1.55;
}
body.following-active #favorites-view .portal-wheel-area {
  width:100%;
  align-self:center;
  padding:8px 0 0;
}
body.following-active #favorites-view .portal-wheel { width:190px; height:190px; }
body.following-active #favorites-view .portal-loyalty-consent {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px 24px;
  margin-top:4px;
  padding:22px 24px;
}
body.following-active #favorites-view .portal-loyalty-consent button {
  grid-column:2;
  grid-row:1 / span 2;
  min-width:210px;
}
body.following-active #favorites-view .portal-loyalty-consent label {
  grid-column:1;
  width:max-content;
  max-width:100%;
}

@media (max-width:840px) {
  body.following-active .app-shell { padding-right:18px !important; padding-left:18px !important; }
  body.following-active .app-shell::before { right:18px; left:18px; }
  body.following-active #favorites-view .portal-loyalty {
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    padding:26px;
    text-align:center;
  }
  body.following-active #favorites-view .portal-loyalty > * { min-width:0; }
  body.following-active #favorites-view .portal-loyalty h2,
  body.following-active #favorites-view .portal-loyalty-copy > p,
  body.following-active #favorites-view .portal-wheel-status {
    max-width:100%;
    overflow-wrap:anywhere;
  }
  body.following-active #favorites-view .portal-loyalty-copy > p { margin-inline:auto; }
  body.following-active #favorites-view .portal-loyalty-consent {
    grid-template-columns:1fr;
    text-align:left;
  }
  body.following-active #favorites-view .portal-loyalty-consent button {
    grid-column:1;
    grid-row:auto;
    width:100%;
    min-width:0;
  }
  body.following-active #favorites-view .portal-loyalty-consent label {
    width:auto;
  }
}

@media (max-width:600px) {
  body.following-active .app-shell { padding-right:14px !important; padding-bottom:96px !important; padding-left:14px !important; }
  body.following-active .app-shell::before { right:0; left:0; height:205px; border-radius:0 0 26px 26px; }
  body.following-active #favorites-view .intro { min-height:118px; padding:8px 4px 16px; }
  body.following-active #favorites-view .intro h1 { font-size:2rem; }
  body.following-active #favorites-view .intro-copy { max-width:310px; font-size:.78rem; }
  body.following-active #favorites-view .portal-loyalty { margin-top:14px; padding:22px 18px; border-radius:25px; }
  body.following-active #favorites-view .portal-loyalty h2 { font-size:1.55rem; }
  body.following-active #favorites-view .portal-loyalty-copy > p { font-size:.86rem; }
  body.following-active #favorites-view .portal-wheel { width:172px; height:172px; }
  body.following-active #favorites-view .portal-loyalty-consent { padding:18px; }
}

/* Home: dashboard pessoal compacto, limpo e mobile-first. */
body.home-active {
  overflow-x:hidden;
  background:linear-gradient(180deg,#f7fbff 0,#edf4fc 100%);
}
body.home-active:not(.directory-active):not(.profile-active) {
  background:linear-gradient(180deg,#f7fbff 0,#edf4fc 100%) !important;
}
body.home-active:not(.directory-active):not(.profile-active) .app-shell::after { display:none !important; }
body.home-active .topbar {
  height:78px;
  padding:10px 8px 0;
}
body.home-active .brand-lockup {
  width:116px;
  height:58px;
}
body.home-active .brand-lockup .brand {
  width:145px;
  transform:translate(-18px,-13px);
}
body.home-active .account-status:not(.is-logged-in) {
  display:flex;
  width:auto;
  min-width:104px;
  height:44px;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 16px;
  border:1px solid #e3ebf5;
  border-radius:999px;
  color:#123566;
  background:#fff;
  box-shadow:0 6px 18px rgba(18,69,139,.1);
}
body.home-active .account-status:not(.is-logged-in) svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
}
body.home-active .account-login-label {
  font-size:.76rem;
  font-weight:850;
  line-height:1;
}
body.home-active .home-view {
  gap:12px;
  padding-top:4px;
}
body.home-active .home-welcome {
  position:relative;
  display:block;
  min-height:210px;
  padding:34px 38px;
  overflow:visible;
  border:1px solid rgba(255,255,255,.22);
  border-radius:30px;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(9,43,94,.98) 0%,rgba(5,78,168,.94) 42%,rgba(0,105,224,.52) 68%,rgba(8,95,184,.16) 100%),
    url("home-hero-gallery.webp") center / cover no-repeat;
  box-shadow:0 16px 34px rgba(14,75,148,.16);
  isolation:isolate;
}
body.home-active .home-welcome::before {
  content:"";
  position:absolute;
  z-index:1;
  top:-36px;
  right:2%;
  width:56%;
  height:calc(100% + 36px);
  background:url("home-hero-woman.webp") right bottom / auto 100% no-repeat;
  opacity:1;
}
body.home-active .home-welcome::after {
  display:none;
}
body.home-active .home-welcome-copy {
  position:relative;
  z-index:2;
  display:grid;
  align-content:center;
  width:min(62%,610px);
  min-height:140px;
}
body.home-active .home-welcome h1 {
  margin:0;
  font-size:clamp(1.85rem,4vw,2.65rem);
  line-height:1.06;
}
body.home-active .home-welcome #home-summary {
  max-width:520px;
  margin:10px 0 0;
  color:#e5f1ff;
  font-size:.9rem;
  line-height:1.45;
}
body.home-active .home-dashboard-metrics {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-top:22px;
}
body.home-active .home-dashboard-chip {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.13);
  box-shadow:none;
  backdrop-filter:none;
  font-size:.72rem;
  font-weight:800;
  white-space:nowrap;
}
body.home-active .home-dashboard-chip svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
}
body.home-active .home-dashboard-chip:first-child svg { fill:currentColor; stroke:none; }
body.home-active .home-notification-shortcut {
  width:auto;
  min-width:0;
  min-height:38px;
  padding:0 13px;
  border-radius:999px;
}
body.home-active .home-notification-shortcut > span {
  display:inline-flex;
  align-items:center;
  gap:4px;
}
body.home-active .home-notification-shortcut strong,
body.home-active .home-notification-shortcut small {
  margin:0;
  color:inherit;
  font-size:.72rem;
  line-height:1;
}
body.home-active .home-following-area { gap:10px; padding-top:0; }
body.home-active #home-view .home-following-area .search {
  height:50px;
  padding:0 17px;
  border:1px solid #e2eaf5;
  border-radius:25px;
  background:#fff;
  box-shadow:0 7px 18px rgba(27,83,165,.07);
}
body.home-active #home-view .home-following-area .search input { font-size:.87rem; }
body.home-active #home-view .home-following-area .favorite-quick-actions {
  display:flex;
  gap:7px;
  width:100%;
  margin:0;
  padding:1px 0 3px;
  overflow-x:auto;
  scrollbar-width:none;
}
body.home-active #home-view .home-following-area .favorite-quick-actions::-webkit-scrollbar { display:none; }
body.home-active #home-view .home-following-area .favorite-quick-actions button {
  flex:0 0 auto;
  min-height:34px;
  padding:0 12px;
  border:1px solid #e1e8f2;
  color:#40516b;
  background:#fff;
  box-shadow:none;
  font-size:.69rem;
}
body.home-active #home-view .home-following-area .favorite-quick-actions button.is-active {
  border-color:#126cdd;
  color:#fff;
  background:#126cdd;
  box-shadow:none;
}
body.home-active #home-view .home-following-area .favorite-groups-list {
  display:flex;
  flex:0 0 auto;
  gap:7px;
}
body.home-active #home-view .home-following-area .favorites { margin-top:4px; }

@media (min-width:900px) {
  body.home-active .app-shell {
    width:min(100%,1060px) !important;
    padding:0 24px 38px !important;
  }
}

/* Respiro lateral consistente da Home em tablets e computadores. */
@media (min-width:700px) {
  body.home-active .app-shell {
    width:min(calc(100% - clamp(48px,6vw,96px)),1440px) !important;
    max-width:none;
    margin-right:auto;
    margin-left:auto;
    padding-right:0 !important;
    padding-left:0 !important;
  }
}

@media (max-width:600px) {
  body.home-active .app-shell { padding-right:12px; padding-left:12px; }
  body.home-active .topbar { height:66px; padding:7px 4px 0; }
  body.home-active .brand-lockup { width:94px; height:48px; }
  body.home-active .brand-lockup .brand { width:118px; transform:translate(-14px,-10px); }
  body.home-active .account-status.is-logged-in { max-width:132px; }
  body.home-active .home-view { gap:9px; }
  body.home-active .home-welcome {
    min-height:194px;
    padding:25px 20px;
    border-radius:24px;
  }
  body.home-active .home-welcome::before {
    top:-30px;
    right:-9%;
    width:72%;
    height:calc(100% + 30px);
    background-position:right bottom;
    opacity:1;
  }
  body.home-active .home-welcome::after {
    display:none;
  }
  body.home-active .home-welcome-copy {
    width:72%;
    min-height:144px;
  }
  body.home-active .home-welcome h1 { font-size:1.6rem; }
  body.home-active .home-welcome #home-summary { max-width:245px; margin-top:8px; font-size:.75rem; line-height:1.38; }
  body.home-active .home-dashboard-metrics { gap:6px; margin-top:17px; }
  body.home-active .home-dashboard-chip,
  body.home-active .home-notification-shortcut {
    min-height:32px;
    padding:0 10px;
    font-size:.62rem;
  }
  body.home-active .home-notification-shortcut strong,
  body.home-active .home-notification-shortcut small { font-size:.62rem; }
  body.home-active #home-view .home-following-area .search { height:46px; border-radius:23px; }
  body.home-active #home-view .home-following-area .favorite-quick-actions button { min-height:32px; padding:0 10px; font-size:.64rem; }
  body.home-active #home-view .home-following-area .favorites { margin-top:1px; }
}

.home-welcome-kicker,
.home-section-metrics,
.header-notification-shortcut { display:none; }

/* Composição mobile baseada na referência visual da Home. */
@media (max-width:480px) {
  body.home-active .app-shell { padding-right:12px; padding-left:12px; }
  body.home-active .topbar { height:68px; padding:8px 5px 0; }
  body.home-active .brand-lockup { width:84px; height:54px; }
  body.home-active .brand-lockup .brand { width:104px; transform:translate(-11px,-8px); }
  body.home-active .topbar-actions { gap:7px; }
  body.home-active .account-status:not(.is-logged-in) {
    display:flex;
    width:auto;
    min-width:92px;
    height:42px;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 14px;
    border:1px solid #e3ebf5;
    border-radius:999px;
    color:#123566;
    background:#fff;
    box-shadow:0 6px 18px rgba(18,69,139,.1);
  }
  body.home-active .account-status:not(.is-logged-in) svg { width:18px; height:18px; }
  body.home-active .account-login-label { font-size:.72rem; font-weight:850; line-height:1; }
  body.home-active .account-status.is-logged-in { min-width:124px; max-width:142px; height:42px; padding-right:10px; }
  body.home-active .home-view { gap:10px; padding-top:0; }
  body.home-active .home-welcome {
    width:100%;
    min-height:0;
    aspect-ratio:1.92 / 1;
    padding:clamp(14px,4.5vw,20px) clamp(17px,5.5vw,24px) clamp(12px,4vw,18px);
    border-radius:22px;
  }
  body.home-active .home-welcome::before {
    top:-15%;
    right:-24%;
    width:100%;
    height:115%;
    background-size:auto 100%;
    -webkit-clip-path:inset(0 24% 0 0 round 0 22px 22px 0);
    clip-path:inset(0 24% 0 0 round 0 22px 22px 0);
  }
  body.home-active .home-welcome-copy {
    width:100%;
    min-height:100%;
    align-content:start;
  }
  body.home-active .home-welcome-kicker {
    display:block;
    max-width:47%;
    margin:0 0 7px;
    color:#e4f1ff;
    font-size:clamp(.54rem,2.7vw,.72rem);
    font-weight:700;
    line-height:1.35;
    letter-spacing:.015em;
  }
  body.home-active .home-welcome h1 {
    max-width:49%;
    font-size:clamp(1.25rem,6.4vw,1.65rem);
    line-height:1.02;
  }
  body.home-active .home-welcome #home-summary {
    max-width:45%;
    margin-top:8px;
    color:#e8f3ff;
    font-size:clamp(.61rem,3vw,.78rem);
    line-height:1.34;
  }
  body.home-active .home-dashboard-metrics {
    display:none;
  }
  body.home-active #home-view .section-heading {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
  }
  body.home-active #home-view .section-heading .favorite-count { display:none; }
  body.home-active .home-section-metrics {
    display:grid;
    gap:4px;
    justify-items:end;
  }
  body.home-active .home-section-metric {
    display:flex;
    min-height:0;
    align-items:center;
    justify-content:flex-end;
    gap:5px;
    padding:0;
    border:0;
    color:#173154;
    background:transparent;
    box-shadow:none;
    font-size:clamp(.55rem,2.35vw,.66rem);
    font-weight:700;
    line-height:1.15;
    white-space:nowrap;
  }
  body.home-active .home-section-metric svg {
    width:14px;
    height:14px;
    flex:0 0 14px;
    fill:none;
    stroke:#0875e5;
    stroke-width:2;
  }
  body.home-active .home-section-metric:first-child svg { fill:#0875e5; stroke:none; }
  body.home-active .home-section-metric strong { font-weight:900; }
  body.home-active .home-section-metric small { font:inherit; }
}

/* Seletor de conta com o mesmo acabamento compacto do painel da loja. */
body .account-status.is-logged-in,
body:not(.directory-active):not(.profile-active) .account-status.is-logged-in,
body.home-active .account-status.is-logged-in {
  display:flex;
  width:fit-content;
  min-width:0;
  max-width:min(220px,100%);
  height:44px;
  min-height:44px;
  max-height:44px;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  padding:4px 11px 4px 4px;
  border:1px solid rgba(148,163,184,.34);
  border-radius:999px;
  color:#172033;
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 14px rgba(15,23,42,.08);
  backdrop-filter:blur(10px);
  box-sizing:border-box;
}

body .account-status.is-logged-in:hover,
body .account-status.is-logged-in[aria-expanded="true"] {
  border-color:rgba(100,116,139,.5);
  background:#fff;
  box-shadow:0 7px 20px rgba(15,23,42,.13);
}

body .account-status.is-logged-in:focus-visible {
  outline:3px solid rgba(37,99,235,.2);
  outline-offset:2px;
}

body .account-status.is-logged-in::after,
body:not(.directory-active):not(.profile-active) .account-status.is-logged-in::after {
  display:none;
}

body .account-status.is-logged-in .account-trigger-avatar {
  width:34px;
  height:34px;
  min-width:34px;
  min-height:34px;
  max-width:34px;
  max-height:34px;
  flex:0 0 34px;
  border:1px solid #e5e7eb;
  background:#fff8df;
}

body .account-status.is-logged-in .account-trigger-avatar img {
  object-fit:contain;
  background:#fff;
}

body .account-status.is-logged-in .account-trigger-avatar::after {
  right:-2px;
  bottom:-1px;
  width:7px;
  height:7px;
  border-width:2px;
}

body .account-status.is-logged-in .account-trigger-label {
  min-width:0;
  max-width:140px;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
}

body .account-status.is-logged-in .account-trigger-chevron {
  display:inline-block;
  width:auto;
  height:auto;
  flex:0 0 auto;
  margin-left:1px;
  color:#64748b;
  font-size:.62rem;
  line-height:1;
  transition:transform .2s ease;
}

body .account-status.is-logged-in[aria-expanded="true"] .account-trigger-chevron {
  transform:rotate(180deg);
}

@media (max-width:390px) {
  body .account-status.is-logged-in,
  body.home-active .account-status.is-logged-in {
    max-width:min(190px,calc(100vw - 150px));
  }

  body .account-status.is-logged-in .account-trigger-label {
    max-width:112px;
  }
}

@media (max-width:480px) {
  body .account-status.is-logged-in,
  body:not(.directory-active):not(.profile-active) .account-status.is-logged-in,
  body.home-active .account-status.is-logged-in {
    height:38px;
    min-height:38px;
    max-height:38px;
    max-width:min(190px,calc(100vw - 150px));
    gap:6px;
    padding:3px 10px 3px 4px;
  }

  body .account-status.is-logged-in .account-trigger-avatar {
    width:30px;
    height:30px;
    min-width:30px;
    min-height:30px;
    max-width:30px;
    max-height:30px;
    flex-basis:30px;
  }

  body .account-status.is-logged-in .account-trigger-label {
    max-width:112px;
    font-size:.72rem;
  }
}

/* Mantém avatares existentes perfeitamente circulares em qualquer navegador/tamanho de tela. */
body .account-status.is-logged-in .account-trigger-avatar,
.account-menu .account-menu-identity-avatar {
  aspect-ratio:1 / 1 !important;
  flex-grow:0 !important;
  flex-shrink:0 !important;
  border-radius:50% !important;
  box-sizing:border-box !important;
}

body .account-status.is-logged-in .account-trigger-avatar {
  inline-size:34px !important;
  block-size:34px !important;
  min-inline-size:34px !important;
  min-block-size:34px !important;
  max-inline-size:34px !important;
  max-block-size:34px !important;
}

body .account-status.is-logged-in .account-trigger-avatar > img,
.account-menu .account-menu-identity-avatar > img,
body .account-status.is-logged-in .account-trigger-avatar > .account-avatar-image,
.account-menu .account-menu-identity-avatar > .account-avatar-image {
  display:block !important;
  inline-size:100% !important;
  block-size:100% !important;
  min-inline-size:100% !important;
  min-block-size:100% !important;
  max-inline-size:100% !important;
  max-block-size:100% !important;
  aspect-ratio:1 / 1 !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:50% !important;
  object-fit:cover !important;
  object-position:center !important;
  clip-path:circle(50% at 50% 50%);
  -webkit-clip-path:circle(50% at 50% 50%);
  box-sizing:border-box !important;
}

.account-menu .account-menu-identity-avatar > img,
.account-menu .account-menu-identity-avatar > .account-avatar-image {
  object-fit:contain !important;
}

@media (max-width:480px) {
  body .account-status.is-logged-in .account-trigger-avatar {
    inline-size:30px !important;
    block-size:30px !important;
    min-inline-size:30px !important;
    min-block-size:30px !important;
    max-inline-size:30px !important;
    max-block-size:30px !important;
  }
}

/* Pré-lançamento da roleta: o jogo vira o elemento principal, sem liberar giros. */
body.following-active #favorites-view .portal-loyalty.is-preview {
  grid-template-columns:minmax(280px,390px) minmax(0,1fr);
  gap:clamp(30px,5vw,72px);
  min-height:430px;
  padding:clamp(30px,4vw,54px);
  background:
    radial-gradient(circle at 18% 26%,rgba(255,211,62,.24),transparent 28%),
    radial-gradient(circle at 88% 12%,rgba(99,179,237,.2),transparent 30%),
    linear-gradient(135deg,#101c35,#183f77);
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel-area {
  grid-column:1;
  grid-row:1;
  align-self:center;
  padding:18px 0 0;
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-loyalty-copy {
  grid-column:2;
  grid-row:1;
  align-self:center;
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel {
  width:clamp(230px,24vw,300px);
  height:clamp(230px,24vw,300px);
  border-width:10px;
  box-shadow:0 20px 48px rgba(0,0,0,.34),inset 0 0 0 6px rgba(15,23,42,.18);
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel span {
  width:clamp(72px,8vw,92px);
  height:clamp(72px,8vw,92px);
  font-size:clamp(.82rem,1.5vw,1rem);
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel-pointer {
  top:0;
  border-right-width:19px;
  border-left-width:19px;
  border-top-width:34px;
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel-area button {
  min-width:190px;
  min-height:48px;
  margin-top:20px;
  color:#fff5cf;
  border:1px solid rgba(255,214,79,.5);
  background:rgba(255,214,79,.16);
  box-shadow:none;
  opacity:1;
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel-status {
  max-width:260px;
  margin-top:11px;
  color:#c9dbf3;
  line-height:1.4;
}

body.following-active #favorites-view .portal-loyalty.is-preview .portal-loyalty-copy > p {
  max-width:520px;
}

@media (max-width:840px) {
  body.following-active #favorites-view .portal-loyalty.is-preview {
    grid-template-columns:minmax(0,1fr);
    gap:18px;
    min-height:0;
    padding:30px 24px;
  }

  body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel-area {
    grid-column:1;
    grid-row:1;
  }

  body.following-active #favorites-view .portal-loyalty.is-preview .portal-loyalty-copy {
    grid-column:1;
    grid-row:2;
    text-align:center;
  }

  body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel {
    width:240px;
    height:240px;
  }

  body.following-active #favorites-view .portal-loyalty.is-preview .portal-loyalty-copy > p {
    margin-inline:auto;
  }
}

@media (max-width:600px) {
  body.following-active #favorites-view .portal-loyalty.is-preview {
    padding:26px 18px 24px;
  }

  body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel {
    width:210px;
    height:210px;
  }

  body.following-active #favorites-view .portal-loyalty.is-preview .portal-wheel-pointer {
    border-right-width:16px;
    border-left-width:16px;
    border-top-width:29px;
  }
}

/* Vitrine dos jogos de fidelidade: somente demonstração, sem ações liberadas. */
body.following-active #favorites-view .portal-loyalty.loyalty-showcase {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  gap:28px;
  min-height:0;
  padding:clamp(24px,3vw,42px);
  background:
    radial-gradient(circle at 12% 12%,rgba(36,156,255,.2),transparent 30%),
    radial-gradient(circle at 88% 18%,rgba(255,192,44,.16),transparent 28%),
    linear-gradient(145deg,#071426,#102e5a 58%,#111a37);
}

.loyalty-showcase__header {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:8px 28px;
}

body.following-active #favorites-view .loyalty-showcase__header h2 {
  grid-column:1;
  max-width:none;
  margin:14px 0 2px;
  font-size:clamp(1.8rem,3.2vw,2.7rem);
}

.loyalty-showcase__header > p {
  grid-column:1;
  max-width:720px;
  margin:0;
  color:#d7e7fb;
  line-height:1.55;
}

.loyalty-showcase__header .portal-loyalty-badge {
  grid-column:1;
  width:max-content;
}

.loyalty-showcase__header .portal-loyalty-balance {
  grid-column:2;
  grid-row:1 / span 3;
  align-self:center;
  margin:0;
}

.loyalty-game-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  min-width:0;
}

.loyalty-game-card {
  min-width:0;
  overflow:hidden;
  padding:14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  background:rgba(2,9,22,.72);
  box-shadow:0 18px 38px rgba(0,0,0,.28);
}

.loyalty-game-card > header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:4px 5px 14px;
}

.loyalty-game-card > header span {
  color:#8fbce9;
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.loyalty-game-card > header h3 {
  margin:3px 0 0;
  color:#fff;
  font-size:1.16rem;
}

.loyalty-game-card > header > strong {
  flex:0 0 auto;
  padding:7px 10px;
  border:1px solid rgba(255,214,79,.5);
  border-radius:999px;
  color:#ffe27d;
  background:rgba(255,204,44,.11);
  font-size:.66rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.loyalty-game-frame {
  position:relative;
  height:clamp(610px,58vw,720px);
  overflow:hidden;
  border:1px solid rgba(123,213,255,.3);
  border-radius:18px;
  background:#020817;
  box-shadow:inset 0 0 30px rgba(27,158,255,.12);
}

.loyalty-game-card--cards .loyalty-game-frame {
  border-color:rgba(251,191,36,.32);
  background:#070314;
}

.loyalty-game-frame iframe {
  display:block;
  width:100%;
  height:100%;
  border:0;
  pointer-events:none;
}

.loyalty-game-lock {
  position:absolute;
  z-index:4;
  inset:0;
  cursor:not-allowed;
  background:linear-gradient(180deg,transparent 82%,rgba(1,6,16,.14));
}

.loyalty-game-card > p {
  min-height:38px;
  margin:13px 5px 2px;
  color:#b8cce5;
  font-size:.78rem;
  line-height:1.45;
}

body.following-active #favorites-view .loyalty-showcase .portal-loyalty-activity {
  margin-top:0;
}

@media (max-width:980px) {
  .loyalty-game-grid { grid-template-columns:minmax(0,1fr); }
  .loyalty-game-frame { height:clamp(600px,78vw,720px); }
}

@media (max-width:600px) {
  body.following-active #favorites-view .portal-loyalty.loyalty-showcase {
    gap:20px;
    padding:22px 12px;
  }
  .loyalty-showcase__header {
    grid-template-columns:minmax(0,1fr);
    padding:0 6px;
    text-align:center;
  }
  .loyalty-showcase__header .portal-loyalty-badge,
  .loyalty-showcase__header .portal-loyalty-balance {
    grid-column:1;
    grid-row:auto;
    justify-self:center;
  }
  .loyalty-showcase__header > p { grid-column:1; font-size:.84rem; }
  .loyalty-game-card { padding:9px; border-radius:19px; }
  .loyalty-game-card > header { align-items:flex-start; padding:5px 4px 11px; text-align:left; }
  .loyalty-game-card > header h3 { font-size:1rem; }
  .loyalty-game-frame { height:clamp(590px,178vw,700px); border-radius:14px; }
  .loyalty-game-card > p { margin-inline:4px; text-align:left; }
}
