:root {
  color-scheme: light;
  --bg: #f5f1eb;
  --surface: #ffffff;
  --ink: #241816;
  --muted: #746865;
  --line: #e8ded4;
  --brand: #8f1419;
  --brand-dark: #5d0e12;
  --gold: #c99a48;
  --green: #2d6a4f;
  --blue: #284f63;
  --soft: #fbf7f2;
  --shadow: 0 16px 44px rgba(47, 28, 19, 0.14);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html, body, .app-shell { max-width: 100%; overflow-x: hidden; }
[hidden], .view:not(.active-view) { display: none !important; }
body { margin: 0; min-height: 100vh; background: linear-gradient(180deg, #fff, rgba(255,255,255,0) 260px), var(--bg); color: var(--ink); }
button, input, select { font: inherit; }
button { cursor: pointer; }
input, select { min-width: 0; }

.app-shell { min-height: 100vh; padding: max(12px, env(safe-area-inset-top)) 14px 100px; }
.app-header, .view { margin: 0 auto; max-width: 1180px; width: 100%; }
.app-header { align-items: center; display: flex; justify-content: space-between; padding: 8px 0 16px; }
.brand-lockup { background: transparent; border: 0; color: inherit; display: grid; gap: 2px; min-height: 44px; padding: 0; text-align: left; }
.brand-lockup span, .eyebrow { color: var(--brand); font-size: 12px; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
.brand-lockup strong { font-size: 28px; line-height: 1.05; }
.icon-button { align-items: center; background: var(--ink); border: 0; border-radius: 999px; color: #fff; display: inline-flex; gap: 8px; min-height: 44px; padding: 0 15px; }

.view { display: grid; gap: 12px; min-width: 0; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(30px, 6vw, 52px); line-height: 1; margin-bottom: 8px; }
h2 { font-size: 20px; margin: 0; }
h3 { margin: 0; }
p { color: var(--muted); line-height: 1.55; }
.eyebrow { margin: 0 0 6px; }

.settings-grid { display: grid; gap: 12px; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); }
.settings-panel, .watch-settings, .search-panel, .product-card, .watch-card, .landed-card, .news-feature, .news-source-panel, .news-card, .news-detail, .source-product-group, .compact-product { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 25px rgba(62,38,23,.05); }
.settings-panel, .watch-settings { display: grid; gap: 10px; padding: 13px; }
.section-title-row, .section-heading, .status-row { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.section-heading { margin-bottom: 2px; }
.section-heading h2 { font-size: 28px; line-height: 1.05; }
.text-button { background: transparent; border: 0; color: var(--brand); font-weight: 900; padding: 0; }
.small-label { background: #f5ece2; border-radius: 999px; color: var(--brand); font-size: 12px; font-weight: 900; padding: 5px 9px; }

.feed-list, .source-summary, .source-manager, .watch-list { display: grid; gap: 9px; }
.feed-item, .source-summary article, .source-row, .watch-card, .article-grid article, .product-strip article { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; min-width: 0; padding: 12px; }
.feed-item { align-items: center; display: grid; gap: 8px; grid-template-columns: auto minmax(0, 1fr) auto; }
.feed-item span, .source-summary span, .watch-card span, .article-grid span, .product-strip span { color: var(--muted); font-size: 12px; font-weight: 800; }
.feed-item strong, .source-summary strong, .watch-card strong, .product-strip strong { overflow-wrap: anywhere; }
.feed-item button, .watch-actions button, .toggle, .secondary-action { background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--brand); font-weight: 900; min-height: 34px; padding: 0 12px; }
.source-summary article { align-items: center; display: flex; justify-content: space-between; }
.article-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.article-grid article { cursor: pointer; display: grid; gap: 5px; }
.news-layout { display: grid; gap: 12px; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); }
.news-feature, .news-source-panel, .news-detail { display: grid; gap: 12px; padding: 16px; }
.news-feature { background: linear-gradient(135deg, rgba(143,20,25,.94), rgba(40,79,99,.88)); color: #fff; min-height: 190px; align-content: end; }
.news-feature .eyebrow, .news-feature p { color: rgba(255,255,255,.78); }
.news-feature h3 { font-size: 30px; line-height: 1.08; }
.news-source-panel p { margin-bottom: 0; }
.source-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.source-pills span { background: #f5ece2; border-radius: 999px; color: var(--brand); font-size: 12px; font-weight: 900; padding: 7px 10px; }
.news-list { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.news-card { overflow: hidden; }
.news-card button { background: transparent; border: 0; color: inherit; display: grid; gap: 8px; height: 100%; padding: 14px; text-align: left; width: 100%; }
.news-card span, .news-card small { color: var(--brand); font-size: 12px; font-weight: 950; }
.news-card p { margin: 0; }
.news-detail h3 { font-size: 26px; margin-top: 8px; }
.article-lede { color: var(--ink); font-size: 17px; font-weight: 850; }
.product-strip { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.product-strip img { aspect-ratio: 1.25; border-radius: 8px; object-fit: cover; width: 100%; }
.product-strip article { display: grid; gap: 6px; }

.search-panel { display: grid; gap: 12px; padding: 14px; }
.search-box { display: grid; gap: 6px; }
.search-box span, .filter-row label, .settings-form label { color: var(--muted); font-size: 12px; font-weight: 900; }
.search-box input, .filter-row select, .settings-form input { background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); min-height: 44px; outline: none; padding: 0 12px; width: 100%; }
.filter-row { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.filter-row label, .settings-form label { display: grid; gap: 6px; }
.mode-row { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 6px; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 5px; }
.mode-button { background: transparent; border: 0; border-radius: 7px; color: var(--muted); font-size: 13px; font-weight: 950; min-height: 36px; }
.mode-button.active { background: #fff; box-shadow: 0 4px 16px rgba(62,38,23,.07); color: var(--brand); }
.quick-filters { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.chip { background: #fff; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); flex: 0 0 auto; font-weight: 900; min-height: 36px; padding: 0 13px; }
.chip.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.status-row p { margin: 0; }

.product-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.source-product-group { display: grid; gap: 10px; grid-column: 1 / -1; padding: 12px; }
.source-group-title { align-items: center; display: flex; justify-content: space-between; gap: 12px; }
.source-group-title span { color: var(--brand); display: block; font-size: 12px; font-weight: 950; }
.source-group-title strong { font-size: 18px; }
.source-group-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.compact-grid { grid-template-columns: 1fr; }
.compact-product { align-items: center; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto; padding: 10px; }
.compact-hit { align-items: center; background: transparent; border: 0; color: inherit; display: grid; gap: 10px; grid-template-columns: 64px minmax(0, 1fr); min-width: 0; padding: 0; text-align: left; }
.compact-hit img { aspect-ratio: 1; border-radius: 8px; object-fit: cover; width: 64px; }
.compact-hit span, .compact-hit small { color: var(--muted); display: block; font-size: 12px; font-weight: 850; }
.compact-hit strong { display: block; margin: 3px 0; overflow-wrap: anywhere; }
.watch-button.mini { min-height: 36px; padding: 0 12px; }
.product-card { display: grid; overflow: hidden; }
.product-hit { background: transparent; border: 0; color: inherit; display: grid; padding: 0; text-align: left; }
.image-wrap { background: #efe7df; aspect-ratio: 1.05; overflow: hidden; position: relative; }
.image-wrap img { height: 100%; object-fit: cover; width: 100%; }
.image-wrap .image-fallback { aspect-ratio: auto; border-radius: 0; height: 100%; }
.source-badge, .signal-badge { border-radius: 999px; font-size: 11px; font-weight: 950; left: 9px; padding: 5px 8px; position: absolute; top: 9px; }
.source-badge { background: rgba(255,255,255,.92); color: var(--ink); }
.signal-badge { background: var(--brand); color: #fff; left: auto; right: 9px; }
.product-copy { display: grid; gap: 6px; padding: 10px; }
.vendor { color: var(--brand); font-size: 12px; font-weight: 950; }
.product-copy h3 { font-size: 14px; line-height: 1.28; min-height: 36px; overflow-wrap: anywhere; }
.price-line { align-items: baseline; display: flex; gap: 8px; flex-wrap: wrap; }
.price { color: var(--ink); font-size: 18px; font-weight: 950; }
.compare-price { color: var(--muted); font-size: 12px; font-weight: 900; }
.card-meta { color: var(--muted); display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; font-weight: 800; }
.card-actions { border-top: 1px solid var(--line); display: grid; gap: 7px; grid-template-columns: 1fr 1fr; padding: 8px; }
.watch-button, .site-button { align-items: center; border-radius: 8px; display: inline-flex; font-size: 13px; font-weight: 950; justify-content: center; min-height: 38px; text-decoration: none; }
.watch-button { background: var(--brand); border: 0; color: #fff; }
.site-button { background: #fff; border: 1px solid var(--line); color: var(--ink); }

.watch-settings div { align-items: center; display: flex; justify-content: space-between; }
.watch-settings span { color: var(--muted); font-size: 12px; font-weight: 900; }
.watch-settings strong { color: var(--brand); }
.watch-card { align-items: center; display: grid; gap: 12px; grid-template-columns: 92px minmax(0, 1fr); }
.watch-card img { aspect-ratio: 1; border-radius: 8px; object-fit: cover; width: 92px; }
.watch-card p { margin: 6px 0 0; }
.watch-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.watch-actions a { align-items: center; background: var(--brand); border-radius: 8px; color: #fff; display: inline-flex; font-weight: 900; min-height: 34px; padding: 0 12px; text-decoration: none; }
.watch-card.archived { align-items: center; }
.watch-card.archived > div { min-width: 0; }
.watch-card.archived.no-image { align-items: stretch; grid-template-columns: minmax(0, 1fr); }
.watch-card.archived.no-image > div { align-items: center; display: grid; gap: 7px 16px; grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
.watch-card.archived.no-image span, .watch-card.archived.no-image strong, .watch-card.archived.no-image p { grid-column: 1; min-width: 0; }
.watch-card.archived.no-image strong { font-size: 18px; line-height: 1.2; }
.watch-card.archived.no-image p { color: var(--muted); line-height: 1.55; margin: 0; }
.watch-card.archived.no-image .watch-actions { align-self: center; grid-column: 2; grid-row: 1 / span 3; justify-content: flex-end; margin-top: 0; }
@supports selector(.watch-card:has(> img)) {
  .watch-card.archived:not(:has(> img)) { align-items: stretch; grid-template-columns: minmax(0, 1fr); }
  .watch-card.archived:not(:has(> img)) > div { align-items: center; display: grid; gap: 7px 16px; grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
  .watch-card.archived:not(:has(> img)) span, .watch-card.archived:not(:has(> img)) strong, .watch-card.archived:not(:has(> img)) p { grid-column: 1; min-width: 0; }
  .watch-card.archived:not(:has(> img)) .watch-actions { align-self: center; grid-column: 2; grid-row: 1 / span 3; justify-content: flex-end; margin-top: 0; }
}

.source-row { display: grid; gap: 12px; }
.source-row span { color: var(--muted); display: block; font-size: 12px; line-height: 1.45; margin-top: 4px; }
.source-toggles { display: flex; gap: 8px; flex-wrap: wrap; }
.toggle.on { background: var(--brand); border-color: var(--brand); color: #fff; }
.settings-form { display: grid; gap: 10px; }
.primary-button { align-items: center; background: var(--brand); border: 0; border-radius: 8px; color: #fff; display: inline-flex; font-weight: 950; justify-content: center; min-height: 44px; padding: 0 16px; text-decoration: none; }
.primary-button.secondary { background: #fff; border: 1px solid var(--line); color: var(--brand); }

.bottom-nav { align-items: center; background: rgba(255,255,255,.95); border: 1px solid var(--line); border-radius: 18px; bottom: max(12px, env(safe-area-inset-bottom)); box-shadow: 0 12px 36px rgba(40,22,16,.16); display: grid; gap: 4px; grid-template-columns: repeat(4, minmax(0, 1fr)); left: 50%; max-width: 620px; padding: 6px; position: fixed; transform: translateX(-50%); width: calc(100% - 24px); z-index: 15; }
.tab-button { align-items: center; background: transparent; border: 0; border-radius: 14px; color: var(--muted); display: grid; font-size: 12px; font-weight: 950; gap: 2px; justify-items: center; min-height: 56px; }
.tab-button span { font-size: 18px; line-height: 1; }
.tab-button.active { background: #f5ece2; color: var(--brand); }
body.capacitor-android .bottom-nav { display: grid; }
body.capacitor-native .app-shell { padding-bottom: 108px; }

.drawer { inset: 0; opacity: 0; pointer-events: none; position: fixed; transition: opacity .2s ease; z-index: 30; }
.drawer.open { opacity: 1; pointer-events: auto; }
.drawer-scrim { background: rgba(20,12,10,.42); inset: 0; position: absolute; }
.drawer-panel { background: var(--surface); border-radius: 18px 18px 0 0; bottom: 0; box-shadow: var(--shadow); left: 0; max-height: 92vh; overflow-y: auto; padding: 16px; position: absolute; right: 0; transform: translateY(24px); transition: transform .2s ease; }
.drawer.open .drawer-panel { transform: translateY(0); }
.close-button { background: #fff; border: 1px solid var(--line); border-radius: 999px; height: 38px; position: sticky; top: 0; width: 38px; z-index: 2; }
.product-detail-image img { aspect-ratio: 1.25; border-radius: 8px; object-fit: cover; width: 100%; }
.detail-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.detail-meta span { background: #f5ece2; border-radius: 999px; color: var(--brand); font-size: 12px; font-weight: 950; padding: 6px 9px; }
.detail-title { font-size: 26px; line-height: 1.1; margin: 12px 0; overflow-wrap: anywhere; }
.detail-summary-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 12px 0; }
.detail-summary-grid div, .landed-card .calc-results div { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 6px; padding: 12px; }
.detail-summary-grid span, .landed-card span { color: var(--muted); font-size: 12px; font-weight: 900; }
.landed-card { display: grid; gap: 9px; margin: 12px 0; padding: 14px; }
.landed-card p { margin: 0; }
.calc-form { display: grid; gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-form label { color: var(--muted); display: grid; font-size: 12px; font-weight: 900; gap: 6px; }
.calc-form input { background: #fff; border: 1px solid var(--line); border-radius: 8px; min-height: 42px; padding: 0 10px; width: 100%; }
.calc-results { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.detail-section { margin: 14px 0; }
.variant-list { display: grid; gap: 8px; margin-top: 9px; }
.variant-option { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; color: inherit; display: flex; justify-content: space-between; min-height: 48px; padding: 0 12px; }
.variant-option.active { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(143,20,25,.1); }
.detail-description { color: var(--muted); line-height: 1.55; }
.detail-description.collapsed { max-height: 150px; overflow: hidden; }
.drawer-sticky-actions { background: rgba(255,255,255,.94); border-top: 1px solid var(--line); bottom: 0; display: grid; gap: 8px; grid-template-columns: 1fr 1fr; margin: 16px -16px -16px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); position: sticky; }

.empty-state { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; color: var(--muted); padding: 14px; }
.account-empty { display: grid; gap: 10px; }

@media (min-width: 720px) {
  .app-shell { padding-left: 28px; padding-right: 28px; }
  .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .drawer-panel { border-radius: 18px 0 0 18px; bottom: 0; left: auto; max-height: 100vh; right: 0; top: 0; transform: translateX(24px); width: min(560px, 48vw); }
  .drawer.open .drawer-panel { transform: translateX(0); }
}

@media (min-width: 1040px) { .product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } .source-group-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } .compact-grid { grid-template-columns: 1fr; } }

@media (max-width: 719px) {
  .settings-grid, .news-layout { grid-template-columns: 1fr; }
  .detail-summary-grid, .article-grid, .product-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-strip { overflow-x: auto; }
  .product-strip article { min-width: 140px; }
  .section-heading h2 { font-size: 30px; }
  .filter-row, .calc-form, .calc-results { grid-template-columns: 1fr; }
}

/* v203 homepage radar: search, product value, personal signals and discovery. */
:root {
  --home-bg: #f4f3ed;
  --home-surface: #fffefa;
  --home-ink: #17221e;
  --home-muted: #65706b;
  --home-line: #d9ded7;
  --home-brand: #173d32;
  --home-brand-active: #225847;
  --home-cigar: #74472e;
  --home-gold: #c49a52;
  --home-price: #1d624a;
  --home-stock: #267252;
  --home-alert: #9b620f;
  --home-error: #a64235;
}

#radarView { gap: 20px; }
.home-search-section {
  background: var(--home-brand);
  border: 1px solid #123128;
  border-radius: 8px;
  box-shadow: 0 14px 32px rgba(23, 61, 50, .13);
  color: #fff;
  display: grid;
  gap: 15px;
  padding: clamp(22px, 4vw, 38px);
}
.home-search-copy { display: grid; gap: 6px; max-width: 680px; }
.home-search-copy .eyebrow { color: #dec58f; }
.home-search-copy h1 { color: #fff; font-size: 38px; line-height: 1.12; margin: 0; }
.home-search-copy p { color: rgba(255,255,255,.75); font-size: 15px; line-height: 1.5; margin: 0; }
.home-search-box { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; max-width: 850px; }
.home-search-box input { background: #fff; border: 1px solid #fff; border-radius: 7px; color: var(--home-ink); min-height: 54px; outline: none; padding: 0 16px; width: 100%; }
.home-search-box input:focus { border-color: #d4bd87; box-shadow: 0 0 0 3px rgba(222,197,143,.22); }
.home-search-box button { background: #d2ae68; border: 1px solid #d2ae68; border-radius: 7px; color: #193328; font-weight: 950; min-height: 54px; padding: 0 24px; }
.home-search-box button:hover { background: #dec183; border-color: #dec183; }
.home-search-suggestions { display: flex; flex-wrap: wrap; gap: 7px; min-height: 30px; }
.home-search-suggestions:empty { min-height: 0; }
.home-search-suggestions button { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: #fff; font-size: 12px; font-weight: 850; min-height: 30px; padding: 0 11px; }
.home-search-suggestions button:hover { background: rgba(255,255,255,.16); }
.home-search-feedback { color: #ffddd7; font-size: 13px; min-height: 0; margin: 0; }
.home-search-feedback:empty { display: none; }

.home-capabilities { background: var(--home-surface); border-bottom: 1px solid var(--home-line); border-top: 1px solid var(--home-line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-capabilities article { align-items: center; display: grid; gap: 12px; grid-template-columns: 42px minmax(0, 1fr); min-width: 0; padding: 16px 18px; }
.home-capabilities article + article { border-left: 1px solid var(--home-line); }
.home-capability-icon { align-items: center; background: #e7eee9; border-radius: 7px; color: var(--home-brand); display: flex; height: 42px; justify-content: center; width: 42px; }
.home-capability-icon svg { fill: none; height: 21px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 21px; }
.home-capabilities article > div { display: grid; gap: 3px; min-width: 0; }
.home-capabilities strong { color: var(--home-ink); font-size: 14px; line-height: 1.3; }
.home-capabilities p { color: var(--home-muted); font-size: 12px; line-height: 1.45; margin: 0; }

.home-user-summary { align-items: center; border-bottom: 1px solid var(--home-line); display: grid; gap: 10px; grid-template-columns: 34px minmax(0, 1fr) auto; padding: 0 2px 13px; }
.home-summary-marker { align-items: center; background: #e8f0eb; border-radius: 50%; color: var(--home-brand); display: inline-flex; height: 34px; justify-content: center; width: 34px; }
.home-summary-marker.unread { background: #f5ead5; color: var(--home-alert); }
.home-summary-marker svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 18px; }
.home-summary-copy { align-items: baseline; display: flex; flex-wrap: wrap; gap: 4px 10px; min-width: 0; }
.home-summary-copy strong { color: var(--home-ink); font-size: 14px; line-height: 1.3; }
.home-summary-copy p { color: var(--home-muted); font-size: 12px; margin: 0; }
.home-user-summary .text-button { white-space: nowrap; }

.home-intel-section, .home-ranking-section { display: grid; gap: 12px; }
.home-intel-section { background: transparent; border: 0; border-radius: 0; padding: 0; }
.home-section-heading, .home-intel-section .section-title-row { align-items: end; border-bottom: 1px solid var(--home-line); display: flex; gap: 12px; justify-content: space-between; padding: 2px 2px 11px; }
.home-section-heading .eyebrow, .home-intel-section .eyebrow { color: var(--home-cigar); margin-bottom: 3px; }
.home-section-heading h2, .home-intel-section h2 { color: var(--home-ink); font-size: 22px; line-height: 1.2; }
.home-intel-list { display: grid; gap: 1px; }
.home-intel-row { align-items: center; background: #fffefa; border: 0; border-bottom: 1px solid var(--home-line); border-left: 3px solid #bdcfc2; border-radius: 0; color: var(--home-ink); display: grid; gap: 10px; grid-template-columns: 58px minmax(0, 1fr) auto; min-height: 66px; padding: 10px 13px; text-align: left; width: 100%; }
.home-intel-row.unread { border-left-color: var(--home-gold); background: #fffdf7; }
.home-intel-kind { color: var(--home-alert); font-size: 12px; font-weight: 900; }
.home-intel-main { display: grid; gap: 3px; min-width: 0; }
.home-intel-main strong, .home-intel-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-intel-main small { color: var(--home-muted); }
.home-intel-action { color: var(--home-brand); font-size: 13px; font-weight: 900; }

.home-ranking-list { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-ranking-card { background: var(--home-surface); border: 1px solid var(--home-line); border-radius: 8px; min-width: 0; overflow: hidden; }
.home-ranking-card button { background: transparent; border: 0; color: inherit; display: grid; grid-template-columns: 112px minmax(0, 1fr); height: 100%; padding: 0; text-align: left; width: 100%; }
.home-ranking-media { background: #eceae3; display: block; height: 118px; overflow: hidden; position: relative; width: 112px; }
.home-ranking-media img { height: 100%; object-fit: contain; transition: transform .2s ease; width: 100%; }
.home-ranking-card button:hover img { transform: scale(1.025); }
.home-ranking-media .image-fallback { border-radius: 0; height: 100%; }
.home-ranking-media b { align-items: center; background: var(--home-brand); border: 2px solid #fff; border-radius: 50%; bottom: 10px; color: #e6c77f; display: flex; font-size: 14px; height: 32px; justify-content: center; left: 10px; position: absolute; width: 32px; }
.home-ranking-copy { align-content: center; display: grid; gap: 6px; padding: 11px 12px; }
.home-ranking-copy small { color: var(--home-cigar); font-size: 11px; font-weight: 900; }
.home-ranking-copy strong { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; font-size: 14px; line-height: 1.38; min-height: 39px; overflow: hidden; }
.home-ranking-copy > span { color: var(--home-brand); font-size: 12px; font-weight: 900; margin-top: 2px; }

.quote-card.quote-row.quote-decision-row { background: var(--home-surface); border: 1px solid var(--home-line); border-left: 3px solid var(--home-gold); border-radius: 8px; box-shadow: none; grid-template-columns: minmax(0, 1fr) 104px; min-height: 100px; }
.quote-decision-row .quote-open-hit { gap: 12px; grid-template-columns: 64px minmax(0, 1fr); min-height: 100px; padding: 12px; }
.quote-decision-row .quote-card-top { align-items: center; gap: 7px; }
.quote-decision-row .quote-card-top .quote-site-line { color: var(--home-muted); font-size: 11px; }
.quote-decision-row .quote-card-top b { background: #eef5ef; border: 1px solid #d4e3d6; color: var(--home-stock); }
.quote-decision-row .quote-row-main > strong { -webkit-line-clamp: 2; color: var(--home-ink); font-size: 15px; line-height: 1.3; }
.quote-row-prices { align-items: baseline; display: flex; flex-wrap: wrap; gap: 10px; }
.quote-primary-price { color: var(--home-price); font-size: 18px; font-weight: 950; }
.quote-pack-size { background: #f3f6f0; border: 1px solid #dce5d9; border-radius: 999px; color: #51645c; font-size: 11px; font-weight: 900; line-height: 1; padding: 4px 7px; white-space: nowrap; }
.quote-specifications { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.quote-specifications span { align-items: baseline; background: #f8faf6; border: 1px solid #e1e8df; border-radius: 6px; color: var(--home-ink); display: inline-flex; gap: 5px; max-width: 100%; min-width: 0; padding: 4px 6px; }
.quote-specifications b { font-size: 11px; font-weight: 900; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quote-specifications em { color: var(--home-price); font-size: 11px; font-style: normal; font-weight: 900; white-space: nowrap; }
.quote-specifications i { color: var(--home-muted); font-size: 11px; font-style: normal; font-weight: 850; }
.quote-estimate { align-items: baseline; color: var(--home-ink); display: inline-flex; gap: 5px; font-size: 12px; font-weight: 900; }
.quote-estimate em { color: var(--home-muted); font-size: 11px; font-style: normal; font-weight: 800; }
.quote-estimate b { color: var(--home-ink); font-size: 12px; }
.quote-estimate.total b { color: var(--home-price); }
.quote-updated { color: var(--home-muted); font-size: 11px; }
.quote-coupon-badge {
  background: #fff3d8;
  border: 1px solid #e3c98f;
  border-radius: 6px;
  color: #77501e;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  padding: 4px 6px;
  white-space: nowrap;
}
.quote-decision-row .quote-actions { background: #fbfcf8; border-left: 1px solid var(--home-line); gap: 7px; padding: 10px; }
.quote-decision-row .quote-actions .primary-button { min-height: 36px; padding: 0 8px; }
.quote-site-link { align-items: center; color: var(--home-brand); display: inline-flex; font-size: 12px; font-weight: 900; justify-content: center; min-height: 32px; text-decoration: none; }
.product-card.product-decision-card { background: var(--home-surface); border: 1px solid var(--home-line); border-radius: 8px; box-shadow: none; }
.product-decision-card .product-copy { gap: 6px; }
.product-decision-card .product-copy h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; font-size: 15px; line-height: 1.3; min-height: 39px; overflow: hidden; }
.product-decision-card .vendor { color: #7a4b30; font-size: 12px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-decision-card .price-line { align-items: baseline; }
.product-decision-card .price { color: var(--home-price); font-size: 18px; }
.product-decision-card .card-meta { color: var(--home-muted); gap: 7px; min-height: 18px; }
.product-decision-card .card-actions { background: #fbfcf8; border-top: 1px solid var(--home-line); grid-template-columns: minmax(0, 1fr) 54px; }
.product-decision-card .card-actions .watch-button { min-height: 38px; }
.product-decision-card .card-actions .site-button { color: var(--home-brand); min-height: 38px; }
.decision-actions .primary-button, .decision-actions .secondary-action { min-height: 46px; width: 100%; }

@media (max-width: 640px) {
  #radarView { gap: 16px; }
  .home-search-section { gap: 13px; padding: 20px 16px; }
  .home-search-copy h1 { font-size: 28px; }
  .home-search-copy p { font-size: 13px; }
  .home-search-box { grid-template-columns: minmax(0, 1fr) 104px; }
  .home-search-box input, .home-search-box button { min-height: 50px; }
  .home-search-box button { padding: 0 10px; }
  .home-capabilities { grid-template-columns: 1fr; }
  .home-capabilities article { min-height: 62px; padding: 10px 12px; }
  .home-capabilities article + article { border-left: 0; border-top: 1px solid var(--home-line); }
  .home-capability-icon { height: 38px; width: 38px; }
  .home-capabilities p { font-size: 11px; }
  .home-user-summary { grid-template-columns: 32px minmax(0, 1fr) auto; }
  .home-summary-marker { height: 32px; width: 32px; }
  .home-summary-copy { display: grid; gap: 2px; }
  .home-intel-row { grid-template-columns: 50px minmax(0, 1fr) auto; min-height: 64px; padding: 9px 10px; }
  .home-intel-main strong, .home-intel-main small { max-width: 100%; }
  .home-ranking-list { grid-template-columns: 1fr; }
  .home-ranking-card button { grid-template-columns: 104px minmax(0, 1fr); }
  .home-ranking-media { height: 106px; width: 104px; }
  .home-ranking-copy { align-content: center; padding: 10px 12px; }
  .home-ranking-copy strong { min-height: 39px; }
  .home-ranking-media b { bottom: 7px; height: 28px; left: 7px; width: 28px; }
  .quote-card.quote-row.quote-decision-row { grid-template-columns: 1fr; }
  .quote-decision-row .quote-open-hit { min-height: 0; }
  .quote-decision-row .quote-actions { border-left: 0; border-top: 1px solid var(--home-line); grid-template-columns: 1fr auto; }
  .quote-decision-row .quote-actions .primary-button { min-width: 0; }
  .product-decision-card .card-actions { grid-template-columns: minmax(0, 1fr) 54px; }
}
@media (max-width: 380px) {
  .home-search-section { padding-left: 14px; padding-right: 14px; }
  .home-search-copy h1 { font-size: 26px; }
  .home-search-box { grid-template-columns: minmax(0, 1fr) 94px; }
  .home-search-box input { padding: 0 11px; }
  .home-capabilities article { grid-template-columns: 36px minmax(0, 1fr); }
  .home-intel-row { grid-template-columns: 1fr auto; }
  .home-intel-kind { grid-column: 1 / -1; }
}

/* Cigar rankings and community points. */
.ranking-loading,
.ranking-empty,
.cigar-ranking-empty,
.points-empty {
  align-items: center;
  color: #68736f;
  display: grid;
  gap: 6px;
  justify-items: center;
  min-height: 100px;
  padding: 18px;
  text-align: center;
}

.ranking-empty strong,
.cigar-ranking-empty strong,
.points-empty strong { color: #26332f; font-size: 14px; }
.ranking-empty span,
.cigar-ranking-empty span,
.points-empty span { font-size: 12px; line-height: 1.55; }
.ranking-empty button,
.points-empty button { background: #18382f; border: 0; border-radius: 7px; color: #fff; cursor: pointer; font-weight: 900; min-height: 36px; padding: 0 14px; }

.cigar-rankings-view {
  margin: 0 auto;
  max-width: 980px;
  min-width: 0;
  padding-bottom: 80px;
  width: 100%;
}

.cigar-ranking-header {
  align-items: end;
  border-bottom: 1px solid #e4ded3;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 16px 0 20px;
}

.cigar-ranking-header h1 { font-size: 30px; letter-spacing: 0; margin: 4px 0 0; }
.cigar-ranking-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 14px 0 10px; }
.cigar-ranking-tabs button {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #65716c;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 900;
  min-height: 42px;
  padding: 0 16px;
  white-space: nowrap;
}
.cigar-ranking-tabs button.active { background: #eef4ef; border-color: #cdded3; color: #18382f; }
.cigar-ranking-tabs button:focus-visible,
.cigar-ranking-origins button:focus-visible { outline: 3px solid rgba(46, 99, 79, .2); outline-offset: 2px; }
.cigar-ranking-origins {
  background: #eaeee9;
  border: 1px solid #d8dfd9;
  border-radius: 8px;
  box-sizing: border-box;
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 18px 0 8px;
  max-width: 420px;
  padding: 5px;
  width: 100%;
}
.cigar-ranking-origins button {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: #52615c;
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
  min-height: 46px;
  padding: 0 18px;
  transition: background-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.cigar-ranking-origins button.active { background: #183e34; box-shadow: 0 2px 7px rgba(24, 62, 52, .18); color: #fff; }
.cigar-ranking-status { color: #7a847f; font-size: 11px; min-height: 28px; padding: 3px 2px 8px; }
.cigar-ranking-status:empty { display: none; }
.cigar-ranking-list { border-top: 1px solid #e8e3da; display: grid; }
.cigar-ranking-row {
  align-items: center;
  border-bottom: 1px solid #e8e3da;
  display: grid;
  gap: 14px;
  grid-template-columns: 42px 78px minmax(0, 1fr) auto;
  min-height: 108px;
  padding: 14px 4px;
}
.cigar-ranking-number { color: #66716c; font-size: 20px; font-weight: 950; text-align: center; }
.cigar-ranking-number.top { color: #8b3f36; font-size: 26px; }
.cigar-ranking-image { aspect-ratio: 1; background: #eef1ec; border-radius: 7px; object-fit: cover; width: 78px; }
.cigar-ranking-copy { display: grid; gap: 4px; min-width: 0; }
.cigar-ranking-copy > span { color: #8b3f36; font-size: 11px; font-weight: 900; }
.cigar-ranking-copy strong { font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
.cigar-ranking-copy p { color: #68736f; font-size: 12px; line-height: 1.5; margin: 0; }
.cigar-ranking-row > button { background: #fffdf8; border: 1px solid #d9d2c7; border-radius: 7px; color: #24322e; cursor: pointer; font-weight: 900; min-height: 38px; padding: 0 12px; }

.community-ranking-link {
  background: transparent;
  border: 0;
  color: #8b3f36;
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
  min-height: 40px;
  padding: 0 5px;
}
.community-featured { background: #f8ecce; border-radius: 4px; color: #795a1d; font-size: 10px; font-style: normal; font-weight: 950; margin-left: 5px; padding: 2px 5px; }

.profile-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Community workspace: discovery-first shell with a readable main rail. */
.community-view { max-width: 1180px; }
.community-header { margin-bottom: 12px; }
.community-search-bar {
  align-items: center;
  background: #fff;
  border: 1px solid #d9d6cf;
  border-radius: 8px;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(0, 1fr) 34px 78px;
  margin: 0 0 12px;
  max-width: none;
  min-height: 44px;
  padding: 4px 5px 4px 13px;
}
.community-search-bar:focus-within { border-color: #54776a; box-shadow: 0 0 0 2px rgba(43,99,78,.1); }
.community-search-bar input { background: transparent; border: 0; color: #18201d; font: inherit; min-width: 0; outline: 0; width: 100%; }
.community-search-bar .icon-command { min-height: 32px; min-width: 32px; }
.community-search-submit { align-items: center; background: #17483d; border: 0; border-radius: 6px; color: #fff; cursor: pointer; display: inline-flex; font: inherit; font-size: 13px; font-weight: 850; justify-content: center; min-height: 34px; padding: 0 16px; white-space: nowrap; width: 78px; }
.community-tabs { margin-bottom: 14px; }
.community-official-center { display: none; margin: 0 0 18px; }
.community-view[data-community-panel-mode="official"] .community-official-center { display: grid; }
.community-view[data-community-panel-mode="official"] .community-search-bar { max-width: 100%; }
.community-official-strip {
  align-items: center;
  background: #f7f4ed;
  border: 1px solid #e1dbcf;
  border-radius: 7px;
  color: #27332f;
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: 9px;
  grid-column: 1;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 42px;
  padding: 8px 11px;
  text-align: left;
}
.community-official-strip span { background: #8b3f36; border-radius: 4px; color: #fff; font-size: 10px; font-weight: 900; padding: 3px 5px; }
.community-official-strip strong { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.community-official-strip em { color: #527066; font-size: 11px; font-style: normal; font-weight: 850; }
.community-official-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-start; margin: -2px 0 24px; }
.community-author-context { align-items: center; background: #f2f5f1; border-left: 3px solid #365f51; display: flex; gap: 14px; justify-content: space-between; margin: 4px 0 12px; min-height: 48px; padding: 7px 10px 7px 12px; }
.community-author-context[hidden] { display: none; }
.community-author-context > div { display: grid; gap: 2px; min-width: 0; }
.community-author-context span { color: #6e7b76; font-size: 10px; font-weight: 850; }
.community-author-context strong { font-size: 13px; overflow-wrap: anywhere; }
.community-author-context > button { background: #fff; border: 1px solid #d8ded8; border-radius: 6px; color: #244c3d; cursor: pointer; flex: 0 0 auto; font: inherit; font-size: 12px; font-weight: 900; min-height: 34px; padding: 0 10px; }

@media (min-width: 1280px) {
  .community-view { max-width: 1180px; }
  #communityFeedPanel:not([hidden]) { align-items: start; display: grid; gap: 0 30px; grid-template-columns: minmax(0, 760px) minmax(240px, 1fr); }
  #communityFeedPanel > :not(.community-spotlight):not(.community-side-stack) { grid-column: 1; }
  #communityFeedPanel .community-spotlight { grid-column: 2; grid-row: 1 / span 7; margin: 0; max-width: none; position: sticky; top: 58px; width: 100%; }
  #communityFeedPanel .community-spotlight-track { display: grid; gap: 0; overflow: visible; }
  #communityFeedPanel .community-spotlight-card { border-bottom: 1px solid #e8e2d7; min-width: 0; padding: 14px 0; width: 100%; }
  #communityFeedPanel .community-spotlight-card:first-child { padding-top: 0; }
  #communityFeedPanel .community-spotlight-pager { display: none !important; }
  .community-filter-row, .community-tag-quick-filters, .community-feed { margin-left: 0; margin-right: 0; }
}

.community-search-panel { margin: 0 auto; max-width: 920px; }
.community-search-results { display: grid; gap: 22px; }
.community-search-results > section { border-bottom: 1px solid #ebe6dc; padding-bottom: 18px; }
.community-search-results h3 { font-size: 13px; margin: 0 0 10px; }
.community-search-facets { display: flex; flex-wrap: wrap; gap: 7px; }
.community-search-facets button, .community-search-facets span, .community-search-products button {
  background: #fff;
  border: 1px solid #ded9cf;
  border-radius: 6px;
  color: #33433e;
  font: inherit;
  font-size: 12px;
  min-height: 34px;
  padding: 7px 10px;
}
.community-search-facets button, .community-search-products button { cursor: pointer; }
.community-search-products { display: grid; gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.community-search-products button { overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.community-search-posts .community-feed { max-width: none; }

.community-post-kind { background: #eeece6; border-radius: 7px; display: grid; gap: 3px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 3px; }
.community-post-kind.single { display: none; }
.community-post-kind button { background: transparent; border: 0; border-radius: 5px; color: #626c68; cursor: pointer; font: inherit; font-size: 12px; font-weight: 850; min-height: 36px; }
.community-post-kind button.active { background: #fff; color: #173e34; box-shadow: 0 1px 3px rgba(32,43,39,.1); }
.community-post-kind button:disabled:not(.active) { cursor: not-allowed; opacity: .45; }
.community-giveaway-grid { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 110px; }
.community-giveaway-grid label { display: grid; gap: 6px; min-width: 0; }
.community-giveaway-grid label.wide { grid-column: 1 / -1; }
.community-giveaway-grid label span { color: #62706b; font-size: 11px; font-weight: 850; }
.community-giveaway-grid input, .community-giveaway-grid textarea, .community-custom-tag input { background: #fff; border: 1px solid #dcd6cb; border-radius: 6px; box-sizing: border-box; color: #18201d; font: inherit; min-height: 40px; padding: 9px 10px; width: 100%; }
.community-giveaway-grid textarea { line-height: 1.55; resize: vertical; }
.community-custom-tag { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; margin-top: 10px; max-width: 430px; }
.community-custom-tag .community-command { min-height: 40px; }

.community-giveaway-summary { background: #f8f4ed; border: 1px solid #d9cbbd; border-left: 3px solid #8b3f36; border-radius: 6px; display: grid; gap: 10px; padding: 13px 14px; }
.community-giveaway-summary header { align-items: center; display: flex; justify-content: space-between; }
.community-giveaway-summary header span { color: #8b3f36; font-size: 11px; font-weight: 900; }
.community-giveaway-summary header b { color: #5b645f; font-size: 10px; }
.community-giveaway-summary > strong { font-size: 16px; line-height: 1.4; }
.community-giveaway-summary > div { display: grid; gap: 10px; grid-template-columns: 1.4fr 1fr .7fr; }
.community-giveaway-summary > div span { display: grid; gap: 2px; min-width: 0; }
.community-giveaway-summary small { color: #7c827f; font-size: 10px; font-weight: 800; }
.community-giveaway-summary > div b { font-size: 12px; overflow-wrap: anywhere; }
.community-giveaway-summary p { color: #515d58; font-size: 12px; line-height: 1.65; margin: 0; white-space: pre-wrap; }
.community-giveaway-summary footer { align-items: center; display: flex; justify-content: flex-end; }
.community-giveaway-summary footer button { background: #8b3f36; border: 0; border-radius: 6px; color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 850; min-height: 36px; padding: 0 14px; }
.community-giveaway-summary footer em { color: #53635d; font-size: 11px; font-style: normal; font-weight: 850; }

@media (max-width: 899px) {
  .community-view { max-width: 100%; }
  .community-header { align-items: center; }
  .community-search-bar { max-width: none; }
  .community-tabs { gap: 20px; }
  #communityFeedPanel .community-spotlight { display: none; }
  .community-official-center-grid { grid-template-columns: 1fr; }
  .community-official-center-card + .community-official-center-card { border-left: 1px solid #ded8cc; }
}

@media (max-width: 560px) {
  .community-header { margin-bottom: 8px; }
  .community-header h1 { font-size: 25px; }
  .community-header .eyebrow, .community-header-actions .community-ranking-link { display: none; }
  .community-search-bar { margin-bottom: 8px; min-height: 40px; }
  .community-tabs { margin-bottom: 9px; min-height: 40px; }
  .community-tabs button { min-height: 40px; padding-left: 1px; padding-right: 1px; }
  .community-official-strip { min-height: 38px; padding: 6px 9px; }
  .community-spotlight { display: none; }
  .community-filter-row { padding-bottom: 8px; }
  .community-tag-quick-filters { margin-bottom: 7px; }
  .community-search-products { grid-template-columns: 1fr; }
  .community-giveaway-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .community-giveaway-grid label:nth-child(3) { grid-column: 1 / -1; }
  .community-giveaway-summary > div { grid-template-columns: 1fr 1fr; }
  .community-giveaway-summary > div span:last-child { grid-column: 1 / -1; }
}

.community-points-profile { background: transparent; border: 0; box-shadow: none; padding-left: 0; padding-right: 0; }
.community-points-panel { display: grid; gap: 16px; }
.points-balance {
  background: #18382f;
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: 6px;
  padding: 20px;
}
.points-balance > span { color: #c2d6ce; font-size: 12px; font-weight: 900; }
.points-balance > strong { font-size: 38px; line-height: 1; }
.points-balance > small { color: #aec4bb; font-size: 11px; }
.points-rule-list,
.points-ledger { border-top: 1px solid #e5dfd5; display: grid; padding-top: 12px; }
.points-section-title { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 7px; }
.points-section-title strong { font-size: 14px; }
.points-section-title span { color: #7a847f; font-size: 11px; }
.points-rule { align-items: center; border-bottom: 1px solid #eee9e0; display: flex; gap: 12px; justify-content: space-between; min-height: 44px; }
.points-rule strong { font-size: 13px; }
.points-rule span { color: #567166; font-size: 12px; font-weight: 850; }
.points-ledger-row { align-items: center; border-bottom: 1px solid #eee9e0; display: grid; gap: 10px; grid-template-columns: 34px minmax(0, 1fr) auto; min-height: 64px; padding: 8px 0; }
.points-ledger-icon { align-items: center; border-radius: 50%; display: inline-flex; font-size: 16px; font-weight: 950; height: 32px; justify-content: center; width: 32px; }
.points-ledger-icon.positive { background: #e7f3ed; color: #287257; }
.points-ledger-icon.negative { background: #faece9; color: #a64e45; }
.points-ledger-row > div { display: grid; gap: 4px; min-width: 0; }
.points-ledger-row strong { font-size: 13px; overflow-wrap: anywhere; }
.points-ledger-row small { color: #7a847f; font-size: 11px; }
.points-ledger-row > b { font-size: 16px; }
.points-ledger-row > b.positive { color: #287257; }
.points-ledger-row > b.negative { color: #a64e45; }
.points-more { background: #fffdf8; border: 1px solid #d9d2c7; border-radius: 7px; cursor: pointer; font-weight: 900; margin: 14px auto 0; min-height: 40px; min-width: 150px; }
.points-empty.compact { min-height: 88px; }

@media (max-width: 719px) {
  .cigar-rankings-view { padding-bottom: 110px; }
  .cigar-ranking-header { align-items: start; flex-direction: column; padding-top: 6px; }
  .cigar-ranking-header h1 { font-size: 24px; }
  .cigar-ranking-origins { margin-top: 14px; max-width: none; }
  .cigar-ranking-origins button { font-size: 15px; min-height: 44px; padding: 0 10px; }
  .cigar-ranking-tabs { gap: 4px; }
  .cigar-ranking-tabs button { flex: 1 0 auto; font-size: 13px; min-height: 40px; padding: 0 11px; }
  .cigar-ranking-row { gap: 9px; grid-template-columns: 28px 58px minmax(0, 1fr); min-height: 92px; padding: 11px 0; }
  .cigar-ranking-image { width: 58px; }
  .cigar-ranking-copy strong { font-size: 14px; }
  .cigar-ranking-row > button { grid-column: 3; justify-self: start; min-height: 34px; }
  .cigar-ranking-number,
  .cigar-ranking-number.top { font-size: 19px; }
  .community-header-actions { flex-wrap: wrap; justify-content: flex-end; }
  .community-ranking-link { min-height: 30px; order: 3; width: 100%; }
  .points-balance { padding: 17px; }
  .points-balance > strong { font-size: 34px; }
  .points-rule { align-items: start; flex-direction: column; gap: 3px; justify-content: center; padding: 7px 0; }
}

@media (max-width: 460px) {
  .detail-summary-grid, .article-grid { grid-template-columns: 1fr; }
  .product-grid, .source-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .watch-card, .compact-product { grid-template-columns: 1fr; }
  .watch-card.archived.no-image > div { grid-template-columns: 1fr; }
  .watch-card.archived.no-image .watch-actions { grid-column: 1; grid-row: auto; justify-content: flex-start; margin-top: 8px; }
  @supports selector(.watch-card:has(> img)) {
    .watch-card.archived:not(:has(> img)) > div { grid-template-columns: 1fr; }
    .watch-card.archived:not(:has(> img)) .watch-actions { grid-column: 1; grid-row: auto; justify-content: flex-start; margin-top: 8px; }
  }
  .watch-card img { width: 100%; }
}

.search-empty button { background: rgba(255,255,255,.95); border: 1px solid rgba(255,255,255,.32); border-radius: 999px; color: var(--brand); font-size: 12px; font-weight: 950; min-height: 34px; padding: 0 12px; }
.search-empty { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; color: var(--muted); display: grid; gap: 10px; grid-column: 1 / -1; padding: 16px; }
.search-empty strong { color: var(--ink); font-size: 20px; }
.search-empty p { display: none; }
.search-empty div { display: flex; flex-wrap: wrap; gap: 8px; }
.search-empty button { background: #fff; border-color: var(--line); }
.search-empty span { color: var(--brand); font-size: 12px; font-weight: 900; }
.product-strip article { cursor: pointer; }
.intel-card .image-wrap { aspect-ratio: 1.18; }
.intel-card .product-copy h3 { min-height: auto; }
.intel-price { background: #f5ece2; border-radius: 999px; color: var(--brand); font-size: 12px; font-weight: 950; padding: 4px 8px; }
.intel-price em { color: var(--muted); font-size: 10px; font-style: normal; margin-right: 4px; }
.intel-row { border-left: 4px solid var(--brand); }
.intel-snapshot, .alert-card, .watch-rule-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 25px rgba(62,38,23,.05); display: grid; gap: 10px; margin: 12px 0; padding: 14px; }
.intel-snapshot { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.intel-snapshot div { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 5px; padding: 10px; }
.intel-snapshot span, .rule-item span { color: var(--muted); font-size: 12px; font-weight: 900; }
.intel-snapshot strong, .rule-item strong { overflow-wrap: anywhere; }
.alert-options, .rule-form { display: grid; gap: 9px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.alert-options label, .rule-form label { color: var(--muted); display: grid; font-size: 12px; font-weight: 900; gap: 6px; }
.alert-options input, .rule-form input, .rule-form select { background: #fff; border: 1px solid var(--line); border-radius: 8px; min-height: 42px; padding: 0 10px; width: 100%; }
.rule-list { display: grid; gap: 9px; }
.rule-item { align-items: center; background: var(--soft); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto; padding: 12px; }
.rule-item p { margin: 4px 0 0; }
.rule-item button { background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--brand); font-weight: 900; min-height: 34px; padding: 0 12px; }
@media (max-width: 719px) { .intel-snapshot, .alert-options, .rule-form { grid-template-columns: 1fr; } }


.intel-card { grid-template-columns: 1fr; }
.intel-card .product-hit { align-items: start; display: grid; grid-template-columns: 58px minmax(0, 1fr); }
.intel-card .image-wrap { aspect-ratio: 1; border-right: 1px solid var(--line); min-height: 100%; }
.intel-card .image-wrap img { filter: saturate(.82); opacity: .78; }
.intel-card .product-copy { padding: 11px 12px; }
.intel-card .product-copy h3 { font-size: 14px; line-height: 1.32; }
.intel-card .price-line { gap: 6px; }
.intel-card .price { font-size: 16px; }
.intel-card .card-meta span { background: var(--soft); border: 1px solid var(--line); border-radius: 999px; padding: 3px 7px; }
.intel-dot { align-items: center; background: #f5ece2; border: 1px solid var(--line); border-radius: 8px; color: var(--brand); display: inline-flex; font-weight: 950; height: 42px; justify-content: center; width: 42px; }
.shipping-note { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: 12px; margin: 0; padding: 9px 10px; }
@media (min-width: 1040px) { .source-group-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 460px) { .product-grid, .source-group-grid { grid-template-columns: 1fr; } }

.site-intel-list { display: grid; gap: 10px; }
.site-intel-card { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 8px; padding: 10px; }
.site-intel-head { align-items: start; display: flex; gap: 10px; justify-content: space-between; }
.site-intel-head span { color: var(--muted); display: block; font-size: 12px; font-weight: 900; }
.site-intel-head strong { display: block; font-size: 18px; margin-top: 2px; }
.site-intel-head b { background: #fff; border: 1px solid var(--line); border-radius: 999px; color: var(--brand); font-size: 12px; padding: 5px 9px; }
.site-intel-grid { display: grid; gap: 7px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.site-intel-grid div { background: #fff; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 4px; padding: 9px; }
.site-intel-grid span, .source-summary small, .source-row small { color: var(--muted); font-size: 12px; font-weight: 850; }
.site-intel-grid strong { font-size: 14px; overflow-wrap: anywhere; }
.site-intel-grid small { color: var(--muted); font-size: 11px; font-weight: 800; }
.site-intel-card p { margin: 0; }
@media (max-width: 719px) { .site-intel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .site-intel-grid { grid-template-columns: 1fr; } }

.tool-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tool-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 25px rgba(62,38,23,.05); display: grid; gap: 12px; padding: 14px; }
.tool-home { display: grid; gap: 10px; }
.tool-entry {
  align-items: center;
  background: rgba(255,255,255,.96);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 22px rgba(23,35,31,.045);
  color: var(--ink);
  display: grid;
  gap: 12px;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  min-height: 78px;
  padding: 12px;
  text-align: left;
  width: 100%;
}
.tool-entry.primary {
  background: linear-gradient(135deg, #ffffff, #f5faf2);
  border-color: rgba(22,119,90,.18);
}
.tool-entry-icon {
  align-items: center;
  background: #f0f6ee;
  border: 1px solid #dbe6d8;
  border-radius: 8px;
  color: var(--green);
  display: inline-flex;
  font-size: 13px;
  font-weight: 950;
  height: 42px;
  justify-content: center;
  width: 42px;
}
.tool-entry-copy { display: grid; gap: 4px; min-width: 0; }
.tool-entry-copy strong { font-size: 16px; line-height: 1.2; }
.tool-entry-copy small { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tool-entry-side { align-items: center; color: var(--muted); display: inline-flex; gap: 8px; justify-content: flex-end; min-width: 0; }
.tool-entry-side b { color: var(--brand); font-size: 12px; font-weight: 950; max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tool-entry-side i { color: #9aa49f; font-size: 22px; font-style: normal; line-height: 1; }
.tool-detail { display: grid; gap: 10px; }
.tool-detail-head {
  align-items: center;
  background: rgba(255,255,255,.88);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 52px;
  padding: 10px 12px;
}
.tool-detail-head h3 { font-size: 18px; line-height: 1.2; text-align: right; }
.tool-back-button { min-height: 32px; }
.tool-detail-grid { grid-template-columns: 1fr; }
.tool-detail-grid .tool-panel,
.tool-detail-grid .fx-panel,
.tool-detail-grid .care-panel { grid-column: auto; }
.tool-form { display: grid; gap: 9px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tool-form.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tool-form label { color: var(--muted); display: grid; font-size: 12px; font-weight: 900; gap: 6px; }
.tool-form input { background: #fff; border: 1px solid var(--line); border-radius: 8px; min-height: 42px; padding: 0 10px; width: 100%; }
.tool-result { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.tool-result div { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 4px; padding: 10px; }
.tool-result span, .tool-result small { color: var(--muted); font-size: 12px; font-weight: 850; }
.tool-result strong { overflow-wrap: anywhere; }
.tool-result p { background: var(--soft); border: 1px solid var(--line); border-radius: 8px; grid-column: 1 / -1; margin: 0; padding: 10px; }
@media (max-width: 820px) { .tool-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
  .tool-entry { grid-template-columns: 38px minmax(0, 1fr) auto; min-height: 72px; padding: 11px; }
  .tool-entry-icon { height: 38px; width: 38px; }
  .tool-entry-copy strong { font-size: 15px; }
  .tool-entry-side b { max-width: 74px; }
  .tool-form, .tool-form.two, .tool-result { grid-template-columns: 1fr; }
}
.bottom-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (min-width: 1040px) { .source-product-group .source-group-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }


/* v10 cleanup: keep dense mobile pages readable. */
@media (max-width: 520px) {
  .status-row { align-items: flex-start; }
  .bottom-nav { border-radius: 14px; gap: 2px; padding: 5px; }
  .tab-button { min-height: 52px; }
}


/* v11 visual refresh */
:root {
  --bg: #f7f9f5;
  --surface: #ffffff;
  --ink: #18201d;
  --muted: #68736f;
  --line: #e3e9e1;
  --brand: #b4232a;
  --brand-dark: #79191f;
  --gold: #b8842f;
  --green: #16775a;
  --blue: #2b6f86;
  --soft: #f2f6ef;
  --mint: #e7f3ec;
  --amber-soft: #fbf0d8;
  --rose-soft: #fae8e8;
  --shadow: 0 18px 45px rgba(23, 35, 31, 0.09);
}

body {
  background:
    radial-gradient(circle at 18% -8%, rgba(22, 119, 90, .12), transparent 34%),
    radial-gradient(circle at 92% 8%, rgba(184, 132, 47, .16), transparent 28%),
    linear-gradient(180deg, #fbfcf8 0%, #f7f9f5 46%, #f4f7f2 100%);
}

.app-shell { padding-top: max(10px, env(safe-area-inset-top)); }
.app-header {
  background: rgba(251, 252, 248, .78);
  border: 1px solid rgba(227, 233, 225, .78);
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(25, 38, 34, .06);
  margin-bottom: 12px;
  padding: 10px 12px;
  position: sticky;
  top: max(8px, env(safe-area-inset-top));
  z-index: 12;
}
/* Embedded mobile browsers already exclude their chrome from the page viewport.
   Restrict top safe-area offsets to native and installed standalone shells. */
body:not(.capacitor-native) .app-shell { padding-top: 10px; }
body:not(.capacitor-native) .app-header { top: 8px; }
@media (display-mode: standalone) {
  body:not(.capacitor-native) .app-shell { padding-top: max(10px, env(safe-area-inset-top)); }
  body:not(.capacitor-native) .app-header { top: max(8px, env(safe-area-inset-top)); }
}
.brand-lockup span { color: var(--green); font-size: 11px; }
.brand-lockup strong { font-size: 23px; letter-spacing: 0; }
.icon-button {
  background: #18201d;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(24, 32, 29, .12);
  min-height: 40px;
  padding: 0 13px;
}
.icon-button span { font-size: 15px; }

h1 { font-weight: 950; letter-spacing: 0; }
.settings-panel, .watch-settings, .search-panel, .product-card, .watch-card, .landed-card, .news-feature, .news-source-panel, .news-card, .news-detail, .source-product-group, .compact-product, .tool-panel, .intel-snapshot, .alert-card, .watch-rule-panel {
  border-color: rgba(227, 233, 225, .92);
  box-shadow: 0 10px 28px rgba(23, 35, 31, .055);
}
.settings-panel, .watch-settings, .search-panel, .source-product-group, .tool-panel {
  border-radius: 8px;
}
.section-title-row h2, .section-title-row h3, .section-heading h2 { color: #18201d; }
.text-button { color: var(--green); }
.small-label {
  background: var(--mint);
  color: #17644d;
}
.feed-item, .source-summary article, .source-row, .article-grid article, .product-strip article, .empty-state {
  background: #f8faf6;
  border-color: rgba(227, 233, 225, .9);
}
.feed-item { border-left: 3px solid var(--green); }
.feed-item button, .watch-actions button, .toggle, .secondary-action {
  border-radius: 8px;
  color: var(--green);
}
.source-summary article b { color: var(--brand); }
.article-grid article {
  min-height: 96px;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.article-grid article:hover { border-color: rgba(22,119,90,.28); transform: translateY(-1px); }
.article-grid article strong { font-size: 15px; }
.article-grid article span { color: #68736f; line-height: 1.45; }

.section-heading {
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(227, 233, 225, .75);
  border-radius: 8px;
  padding: 12px 14px;
}
.section-heading h2 { font-size: 25px; }
.search-panel {
  background: rgba(255,255,255,.82);
}
.search-box input, .filter-row select, .settings-form input, .tool-form input, .calc-form input, .alert-options input, .rule-form input, .rule-form select {
  background: #fbfcf8;
  border-color: #dbe4d9;
  border-radius: 8px;
}
.search-box input:focus, .filter-row select:focus, .settings-form input:focus, .tool-form input:focus, .calc-form input:focus, .rule-form input:focus, .rule-form select:focus {
  border-color: rgba(22,119,90,.55);
  box-shadow: 0 0 0 3px rgba(22,119,90,.1);
}
.mode-row {
  background: #eef4ec;
  border-color: #dbe4d9;
  border-radius: 8px;
}
.mode-button.active {
  background: #fff;
  color: var(--green);
}
.chip { background: #fff; border-color: #dbe4d9; }
.chip.active { background: #18201d; border-color: #18201d; color: #fff; }

.product-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.product-card:hover { border-color: rgba(22,119,90,.28); transform: translateY(-1px); }
.intel-card .product-hit {
  grid-template-columns: 74px minmax(0, 1fr);
}
.intel-card .image-wrap {
  background: #eef4ec;
  border-right-color: #e1e8df;
}
.intel-card .image-wrap img { filter: none; opacity: 1; }
.source-badge {
  background: rgba(24,32,29,.82);
  color: #fff;
  left: 7px;
  top: 7px;
}
.signal-badge {
  background: #d8f0df;
  color: #143c2e;
  right: 7px;
  top: 7px;
}
.vendor { color: var(--green); }
.intel-card .price { color: #18201d; }
.intel-price {
  background: var(--amber-soft);
  color: #805719;
}
.intel-card .card-meta span {
  background: #f7f9f5;
  border-color: #e1e8df;
  color: #68736f;
}
.card-actions {
  background: #fbfcf8;
  border-top-color: #edf1eb;
}
.watch-button, .primary-button {
  background: var(--green);
  border-radius: 8px;
  box-shadow: 0 10px 22px rgba(22,119,90,.16);
}
.site-button, .primary-button.secondary {
  background: #fff;
  border-color: #dbe4d9;
  color: #18201d;
}
.watch-button.mini { background: #18201d; }

.product-strip article, .watch-card {
  background: #fff;
}
.watch-actions a { background: var(--green); border-radius: 8px; }
.news-feature {
  background: linear-gradient(135deg, rgba(24,32,29,.96), rgba(22,119,90,.82));
  border: 0;
}
.source-pills span, .detail-meta span, .intel-dot, .shipping-note {
  background: var(--mint);
  border-color: #d8eadf;
  color: #17644d;
}
.intel-row { border-left-color: var(--green); }
.detail-summary-grid div, .landed-card .calc-results div, .intel-snapshot div, .tool-result div, .site-intel-grid div {
  background: #f8faf6;
  border-color: #e1e8df;
}
.drawer-scrim { background: rgba(9, 15, 13, .46); }
.drawer-panel { border-radius: 8px 8px 0 0; }
.drawer-sticky-actions { background: rgba(255,255,255,.96); }

.bottom-nav {
  background: rgba(255,255,255,.9);
  border-color: rgba(219,228,217,.94);
  border-radius: 8px;
  box-shadow: 0 16px 42px rgba(23,35,31,.16);
  gap: 3px;
  max-width: 560px;
}
.tab-button {
  border-radius: 7px;
  color: #6f7a76;
  min-height: 54px;
}
.tab-button span {
  color: #93a09a;
  font-size: 17px;
  font-weight: 900;
}
.tab-button.active {
  background: #18201d;
  color: #fff;
}
.tab-button.active span { color: #d8f0df; }

@media (min-width: 720px) {
  .app-header { padding-left: 14px; padding-right: 14px; }
  .drawer-panel { border-radius: 8px 0 0 8px; }
}

@media (max-width: 719px) {
  .app-shell { padding-left: 12px; padding-right: 12px; }
  .app-header { margin-bottom: 10px; }
  .section-heading { padding: 11px 12px; }
  .section-heading h2 { font-size: 23px; }
  .source-product-group { background: transparent; border: 0; box-shadow: none; padding: 0; }
  .source-group-title {
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(227,233,225,.82);
    border-radius: 8px;
    padding: 10px 12px;
  }
}

/* P0 user profile */
.profile-avatar {
  overflow: hidden;
  padding: 0;
  position: relative;
}
.profile-avatar img,
.avatar-editor-preview img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.profile-avatar img[hidden],
.avatar-editor-preview img[hidden] { display: none; }
.profile-avatar span,
.avatar-editor-preview span {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  width: 100%;
}
.profile-avatar span[hidden],
.avatar-editor-preview span[hidden] { display: none; }
.profile-avatar:hover { background: rgba(255,255,255,.2); }
.profile-avatar:focus-visible { outline: 2px solid #f1d48d; outline-offset: 3px; }
.profile-editor-panel { padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
.profile-editor { display: grid; gap: 18px; }
.avatar-editor {
  align-items: center;
  border-bottom: 1px solid rgba(34,53,43,.12);
  display: grid;
  gap: 16px;
  grid-template-columns: 88px minmax(0, 1fr);
  padding: 2px 0 18px;
}
.avatar-editor-preview {
  align-items: center;
  background: #e8f0e9;
  border: 1px solid rgba(24,56,47,.15);
  border-radius: 8px;
  color: #18382f;
  display: flex;
  font-size: 30px;
  font-weight: 950;
  height: 88px;
  justify-content: center;
  overflow: hidden;
  width: 88px;
}
.avatar-editor-copy { display: grid; gap: 6px; min-width: 0; }
.avatar-editor-copy > strong { color: var(--ink); font-size: 17px; }
.avatar-editor-copy > span { color: var(--muted); font-size: 12px; font-weight: 800; }
.avatar-editor-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.avatar-file-action {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  min-height: 38px;
  padding: 0 13px;
}
.profile-name-field { display: grid; gap: 8px; }
.profile-name-field > span { align-items: center; color: var(--ink); display: flex; font-size: 14px; font-weight: 950; justify-content: space-between; }
.profile-name-field b { color: #65756c; font-size: 12px; }
.profile-name-field b.limit { color: #a62f2f; }
.profile-name-field input {
  background: #fff;
  border: 1px solid rgba(34,53,43,.2);
  border-radius: 8px;
  color: var(--ink);
  font-size: 16px;
  min-height: 48px;
  padding: 0 13px;
  width: 100%;
}
.profile-name-field input:focus { border-color: #456e5d; box-shadow: 0 0 0 3px rgba(69,110,93,.13); outline: 0; }
.profile-name-field small { color: var(--muted); font-size: 12px; line-height: 1.6; }
.profile-membership-readonly {
  align-items: center;
  background: #f2f6f2;
  border-left: 3px solid #8a623f;
  display: grid;
  gap: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px 14px;
}
.profile-membership-readonly span { color: var(--muted); font-size: 12px; font-weight: 900; }
.profile-membership-readonly strong { color: #18382f; font-size: 14px; text-align: right; }
.profile-save-feedback { color: var(--muted); font-size: 13px; font-weight: 800; line-height: 1.5; margin: 0; min-height: 20px; }
.profile-save-feedback[data-tone="success"] { color: #176b45; }
.profile-save-feedback[data-tone="error"] { color: #a62f2f; }
.profile-save-feedback[data-tone="info"] { color: #48665b; }
.profile-save-button { min-height: 50px; width: 100%; }
.profile-save-button:disabled,
.avatar-editor-actions button:disabled,
.avatar-file-action:has(+ input:disabled) { cursor: not-allowed; opacity: .58; }
@media (max-width: 520px) {
  .profile-editor-panel { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .avatar-editor { align-items: start; grid-template-columns: 72px minmax(0, 1fr); }
  .avatar-editor-preview { font-size: 26px; height: 72px; width: 72px; }
  .profile-membership-readonly { align-items: start; grid-template-columns: 1fr; }
  .profile-membership-readonly strong { text-align: left; }
}

@media (max-width: 520px) {
  h1 { font-size: 30px; }
  .brand-lockup strong { font-size: 21px; }
  .icon-button { min-height: 38px; padding: 0 11px; }
  .intel-card .product-hit { grid-template-columns: 72px minmax(0,1fr); }
  .card-actions { grid-template-columns: 1fr 1fr; }
  .bottom-nav { width: calc(100% - 18px); bottom: max(8px, env(safe-area-inset-bottom)); }
  .tab-button { font-size: 11px; min-height: 50px; }
}


/* v11.1 mobile flow polish */
.feed-list { gap: 8px; }
.feed-item {
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 11px 12px;
}
.feed-item span {
  background: var(--mint);
  border-radius: 999px;
  color: #17644d;
  display: inline-flex;
  font-size: 11px;
  justify-self: start;
  padding: 4px 8px;
}
.feed-item strong {
  grid-column: 1;
  line-height: 1.35;
}
.feed-item button {
  grid-column: 2;
  grid-row: 1 / span 2;
  min-width: 58px;
}

.search-panel { gap: 10px; }
.search-box { gap: 5px; }
.search-box span { font-size: 11px; }
.filter-row { gap: 8px; }
.mode-row { margin-top: 0; }
.quick-filters { scrollbar-width: none; }
.quick-filters::-webkit-scrollbar { display: none; }
.status-row {
  background: transparent;
  padding: 0 2px;
}
.status-row p { color: #4d5854; font-weight: 900; }
.sourceCount, .small-label { white-space: nowrap; }
.source-group-title { margin-bottom: 2px; }
.source-group-title strong { font-size: 17px; }
.product-grid { padding-bottom: 8px; }

.bottom-nav {
  backdrop-filter: blur(16px);
  padding: 4px;
}
.tab-button {
  gap: 1px;
  min-height: 49px;
}
.tab-button span { font-size: 16px; }

@media (max-width: 719px) {
  .filter-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .filter-row label {
    font-size: 0;
    gap: 0;
  }
  .filter-row select {
    font-size: 12px;
    min-height: 40px;
    padding: 0 7px;
  }
  .mode-row {
    gap: 4px;
    padding: 4px;
  }
  .mode-button {
    font-size: 12px;
    min-height: 34px;
  }
  .quick-filters {
    gap: 6px;
    margin-left: -2px;
    padding-bottom: 0;
  }
  .chip {
    font-size: 13px;
    min-height: 34px;
    padding: 0 12px;
  }
  .source-product-group {
    gap: 8px;
  }
}

@media (max-width: 520px) {
  .app-shell { padding-bottom: 92px; }
  .search-panel { padding: 12px; }
  .search-box input::placeholder { color: #7c8782; }
  .bottom-nav {
    border-radius: 8px;
    width: calc(100% - 22px);
  }
  .tab-button {
    min-height: 48px;
  }
  .tab-button span {
    font-size: 15px;
  }
  .feed-item strong {
    font-size: 14px;
  }
}


/* v11.2 cache-proof mobile product controls */
@media (max-width: 719px) {
  #productsView .filter-row {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }
  #productsView .filter-row label {
    display: block !important;
    font-size: 0 !important;
    gap: 0 !important;
  }
  #productsView .filter-row select {
    font-size: 12px !important;
    min-height: 39px !important;
    padding: 0 7px !important;
  }
  #productsView .search-panel {
    gap: 9px !important;
  }
}


/* v11.3 mobile product cards */
@media (max-width: 520px) {
  .source-group-grid {
    gap: 10px;
  }
  .product-card {
    border-radius: 8px;
  }
  .intel-card .product-hit {
    align-items: stretch;
    grid-template-columns: 112px minmax(0, 1fr) !important;
    min-height: 132px;
  }
  .intel-card .image-wrap {
    aspect-ratio: auto;
    min-height: 132px;
  }
  .intel-card .image-wrap img {
    height: 100%;
    object-fit: cover;
  }
  .source-badge {
    left: 6px;
    max-width: calc(100% - 12px);
    overflow: hidden;
    padding: 4px 7px;
    right: auto;
    text-overflow: ellipsis;
    top: 6px;
    white-space: nowrap;
  }
  .signal-badge {
    bottom: 6px;
    left: 6px;
    right: auto;
    top: auto;
  }
  .intel-card .product-copy {
    align-content: start;
    gap: 7px;
    padding: 12px 12px 10px;
  }
  .intel-card .product-copy h3 {
    display: -webkit-box;
    font-size: 14px;
    line-height: 1.34;
    margin: 0;
    max-height: 58px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
  .intel-card .price-line {
    align-items: center;
    gap: 7px;
  }
  .intel-card .price {
    font-size: 15px;
  }
  .intel-price {
    font-size: 11px;
    padding: 4px 7px;
  }
  .intel-card .card-meta {
    gap: 5px;
  }
  .intel-card .card-meta span {
    font-size: 11px;
    max-width: 100%;
  }
  .card-actions {
    padding: 8px;
  }
  .watch-button, .site-button {
    min-height: 36px;
  }
}


/* v11.4 compact status typography */
.source-summary article {
  gap: 10px;
}
.source-summary span, .source-row span {
  font-size: 11px;
  font-weight: 750;
  line-height: 1.35;
}
.source-summary article b {
  flex: 0 0 auto;
  font-size: 15px;
  white-space: nowrap;
}
@media (max-width: 520px) {
  .source-summary article {
    align-items: flex-start;
  }
  .source-summary strong {
    display: block;
    margin-bottom: 2px;
  }
}


/* v12 product model and admin boundary */
.source-admin-note { opacity: .72; }
.source-toggles .toggle { min-width: 92px; }
.source-admin-note.empty-state { color: #68736f; font-size: 12px; line-height: 1.45; padding: 10px 12px; text-align: left; }


/* v13 news tab and cigar-level tracking */
.cigar-watch-card { align-items: stretch; grid-template-columns: 1fr; }
.watch-card-hit { align-items: center; background: transparent; border: 0; color: inherit; cursor: pointer; display: grid; gap: 12px; grid-template-columns: 92px minmax(0, 1fr); min-width: 0; padding: 0; text-align: left; width: 100%; }
.watch-card-hit img { width: 92px; }
.watch-card-hit strong, .watch-card-hit p { overflow-wrap: anywhere; }
.watch-placeholder,
.image-fallback { align-items: center; aspect-ratio: 1.25; background: #eef4ec; border-radius: 8px; color: #55736a; display: flex; font-size: 13px; font-weight: 950; justify-content: center; width: 100%; }
.image-fallback { overflow: hidden; position: relative; }
.image-fallback::before { background: #5f7b69; border-radius: 999px; content: ""; height: 17%; transform: rotate(-14deg); width: 54%; }
.image-fallback::after { background: #d4e3d2; border-radius: 999px; content: ""; height: 20%; left: 22%; position: absolute; transform: rotate(-14deg); width: 12%; }
.watch-offers { display: grid; gap: 7px; margin: 10px 0; }
.watch-offer { align-items: center; background: #f8faf6; border: 1px solid #e1e8df; border-radius: 8px; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; padding: 9px 10px; }
.watch-offer span, .watch-offer small { color: #68736f; display: block; font-size: 11px; font-weight: 800; }
.watch-offer strong { font-size: 14px; }
.watch-offer a { background: #fff; border: 1px solid #dbe4d9; border-radius: 8px; color: #18201d; font-size: 12px; font-weight: 950; padding: 8px 10px; text-decoration: none; white-space: nowrap; }
@media (max-width: 520px) {
  .bottom-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tab-button { font-size: 10px; min-height: 47px; }
  .tab-button span { font-size: 14px; }
  .cigar-watch-card { grid-template-columns: 1fr; }
  .cigar-watch-card img { width: 100%; max-height: 180px; object-fit: cover; }
}


/* v14 multi-currency exchange center */
.fx-panel { grid-column: span 2; }
.fx-toolbar { display: grid; gap: 10px; grid-template-columns: minmax(140px,.55fr) minmax(0,1fr); }
.fx-toolbar label { color: #68736f; display: grid; font-size: 12px; font-weight: 900; gap: 6px; }
.fx-toolbar select, .tool-form select { background: #fbfcf8; border: 1px solid #dbe4d9; border-radius: 8px; color: #18201d; min-height: 44px; padding: 0 12px; width: 100%; }
.fx-rate-table { border: 1px solid #e1e8df; border-radius: 8px; overflow: hidden; }
.fx-note { background: #f8faf6; color: #68736f; font-size: 12px; font-weight: 800; padding: 10px 12px; }
.fx-table-head, .fx-rate-table article { align-items: center; display: grid; gap: 8px; grid-template-columns: 1.05fr repeat(4, minmax(0,.8fr)); padding: 10px 12px; }
.fx-table-head { background: #eef4ec; color: #53615b; font-size: 11px; font-weight: 950; }
.fx-rate-table article { border-top: 1px solid #edf1eb; font-size: 12px; }
.fx-rate-table strong span { color: #16775a; font-size: 10px; margin-right: 4px; }
.fx-rate-table b { color: #10231d; font-weight: 950; }
.fx-rate-table em { color: #005cff; font-style: normal; font-weight: 950; }
@media (max-width: 719px) {
  .fx-panel { grid-column: auto; }
  .fx-toolbar { grid-template-columns: 1fr; }
  .fx-rate-table { overflow-x: auto; }
  .fx-table-head, .fx-rate-table article { min-width: 600px; }
}


/* v15 cigar care advisor */
.care-panel { grid-column: span 2; }
.care-form { grid-template-columns: minmax(160px,.8fr) repeat(2, minmax(0,1fr)); }
.care-result { display: grid; gap: 10px; }
.care-summary { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.care-summary div, .care-advice-grid article { background: #f8faf6; border: 1px solid #e1e8df; border-radius: 8px; padding: 12px; }
.care-summary span, .care-advice-grid span { color: #68736f; display: block; font-size: 12px; font-weight: 900; margin-bottom: 5px; }
.care-summary strong, .care-advice-grid strong { color: #18201d; display: block; font-size: 20px; line-height: 1.1; }
.care-summary small { color: #68736f; display: block; font-size: 12px; font-weight: 800; margin-top: 5px; }
.care-advice-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.care-advice-grid b { color: #16775a; display: block; font-size: 18px; margin-top: 6px; }
.care-advice-grid p, .care-footnote { color: #68736f; font-size: 12px; font-weight: 750; line-height: 1.45; margin: 8px 0 0; }
.care-temperature-note { background: #fff8e7; border: 1px solid #ead7a4; border-radius: 8px; color: #5f5134; font-size: 12px; font-weight: 760; line-height: 1.55; margin: 0; padding: 10px 12px; }
.care-temperature-note strong { color: #2b2416; display: block; font-size: 13px; margin-bottom: 4px; }
.care-temperature-note span { display: block; }
@media (max-width: 719px) { .care-panel { grid-column: auto; } .care-form, .care-summary, .care-advice-grid { grid-template-columns: 1fr; } }

.care-advice-grid em { color: #53615b; display: block; font-size: 12px; font-style: normal; font-weight: 900; margin-top: 6px; }


/* v16 public homepage cleanup */
.hero-services {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr;
}
.hero-services div {
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 8px;
  padding: 12px;
}
.hero-services strong {
  color: #fff;
  display: block;
  font-size: 17px;
  line-height: 1.2;
}
.hero-services span {
  color: rgba(255,255,255,.72);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
  margin-top: 5px;
}
@media (max-width: 719px) {
  .hero-services { grid-template-columns: 1fr; }
}


/* v22 multi-site quotes */
.quote-panel {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(23, 35, 31, .055);
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  padding: 14px;
}
.quote-head {
  align-items: start;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.quote-head span {
  color: var(--green);
  display: block;
  font-size: 12px;
  font-weight: 950;
  margin-bottom: 3px;
}
.quote-head strong {
  display: block;
  font-size: 24px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.quote-head p {
  margin: 6px 0 0;
}
.quote-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.quote-load-more {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  grid-column: 1 / -1;
  padding: 4px 0 2px;
  text-align: center;
}
.quote-card {
  background: linear-gradient(180deg, #fff, #f8faf6);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
}
.quote-card.unavailable {
  opacity: .68;
}
.quote-card-top {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.quote-card-top span {
  color: var(--green);
  font-size: 12px;
  font-weight: 950;
}
.quote-card-top b {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--brand);
  font-size: 12px;
  padding: 4px 8px;
}
.quote-main {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 58px minmax(0, 1fr);
}
.quote-image {
  align-items: center;
  background: #eef4ec;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  display: flex;
  font-size: 12px;
  font-weight: 900;
  height: 58px;
  justify-content: center;
  overflow: hidden;
  width: 58px;
}
.quote-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.quote-main strong {
  display: block;
  font-size: 14px;
  line-height: 1.28;
  overflow-wrap: anywhere;
}
.quote-main small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 850;
  margin-top: 4px;
}
.quote-price-row {
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.quote-price-row div {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 3px;
  padding: 8px;
}
.quote-price-row span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}
.quote-price-row strong {
  font-size: 13px;
  overflow-wrap: anywhere;
}
.quote-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
}
.quote-actions button,
.quote-actions a {
  align-items: center;
  border-radius: 8px;
  display: inline-flex;
  font-size: 13px;
  font-weight: 950;
  justify-content: center;
  min-height: 38px;
  text-decoration: none;
}
.quote-actions button {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--green);
}
.quote-actions a {
  background: var(--brand);
  border: 0;
  color: #fff;
}
@media (max-width: 520px) {
  .quote-grid { grid-template-columns: 1fr; }
  .quote-head strong { font-size: 20px; }
  .quote-price-row { grid-template-columns: 1fr 1fr; }
}


/* v22 source badges on quote images */
.quote-image { position: relative; }
.quote-image b {
  background: rgba(24, 32, 29, .86);
  border-radius: 0 0 6px 0;
  color: #fff;
  font-size: 10px;
  font-weight: 950;
  left: 0;
  max-width: 56px;
  overflow: hidden;
  padding: 3px 5px;
  position: absolute;
  text-overflow: ellipsis;
  top: 0;
  white-space: nowrap;
}
.quote-card-top span {
  align-items: center;
  display: inline-flex;
  gap: 6px;
}
.quote-card-top span::before {
  background: currentColor;
  border-radius: 999px;
  content: "";
  height: 7px;
  width: 7px;
}

.quote-card:has(.quote-card-top span) { border-left: 4px solid #dbe4d9; }
.quote-card:has(.quote-card-top span:first-child) { border-left-color: #dbe4d9; }
.quote-card:has(.quote-card-top span) .quote-card-top span { font-size: 13px; }
.quote-card:has(.quote-card-top span) .quote-image b { box-shadow: 0 1px 5px rgba(0,0,0,.18); }


/* v24 indexed search cleanup */
.search-submit-row {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) 96px;
}
.search-submit-row button {
  background: var(--brand);
  border: 0;
  border-radius: 8px;
  color: #fff;
  font-weight: 950;
  min-height: 44px;
  padding: 0 14px;
}
.quote-only-grid {
  grid-template-columns: 1fr;
}
.quote-only-grid .quote-grid {
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
}
#productsView .mode-row {
  display: none;
}
@media (max-width: 719px) {
  .search-submit-row {
    grid-template-columns: minmax(0, 1fr) 74px;
  }
  .search-submit-row button {
    min-height: 42px;
    padding: 0 10px;
  }
}

/* v36 message center */
.message-button {
  align-items: center;
  background: #18382f;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 13px;
  font-weight: 950;
  gap: 6px;
  min-height: 38px;
  padding: 0 13px;
  position: relative;
}
.message-button svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; width: 18px; }
.message-button b {
  align-items: center;
  background: #c84b31;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 10px;
  justify-content: center;
  min-height: 18px;
  min-width: 18px;
  padding: 0 4px;
  position: absolute;
  right: -6px;
  top: -6px;
}
.message-button b.overflow { font-size: 13px; letter-spacing: 1px; line-height: 1; padding: 0 5px 2px; }
.notification-panel { display: grid; gap: 14px; padding: 18px; }
.notification-head { display: grid; gap: 6px; padding-right: 44px; }
.notification-head h2 { font-family: Georgia, "Times New Roman", "Microsoft YaHei", serif; font-size: 30px; }
.notification-head p { margin: 0; }
.notification-list { display: grid; gap: 10px; }
.notification-item {
  align-items: center;
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.12);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 13px;
}
.notification-item.unread { border-left: 4px solid #c6a15b; }
.notification-item span { color: #7b4a2d; display: block; font-size: 12px; font-weight: 950; letter-spacing: .04em; }
.notification-item strong { color: #211714; display: block; line-height: 1.35; margin-top: 4px; overflow-wrap: anywhere; }
.notification-item small { color: #74685f; display: block; font-size: 12px; margin-top: 5px; }
.notification-item button { background: #18382f; border: 0; border-radius: 8px; color: #fff; font-weight: 900; min-height: 34px; padding: 0 12px; }
.notification-empty { background: #fbfaf6; border: 1px dashed rgba(123,74,45,.28); border-radius: 8px; color: #665b53; display: grid; gap: 8px; padding: 16px; }
.notification-empty strong { color: #211714; font-size: 18px; }
@media (max-width: 520px) {
  .message-button span { display: none; }
  .message-button { border-radius: 999px; min-width: 38px; padding: 0 10px; }
  .notification-item { grid-template-columns: 1fr; }
}
/* v37 synced watch rules */
.rule-sync-hint {
  align-items: center;
  background: #f7f3ea;
  border: 1px solid rgba(124, 87, 46, .16);
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 11px 12px;
}
.rule-sync-hint strong { color: #1e332c; font-size: 13px; font-weight: 950; }
.rule-sync-hint span { color: #75665b; font-size: 12px; font-weight: 800; text-align: right; }
@media (max-width: 520px) {
  .rule-sync-hint { align-items: start; flex-direction: column; }
  .rule-sync-hint span { text-align: left; }
}
/* v37 account sync */
.account-panel { background: linear-gradient(135deg, #fffaf0, #f7fbf4); }
.account-form { display: grid; gap: 10px; }
.login-consent { align-items: flex-start; color: var(--muted); display: grid; font-size: 12px; gap: 8px; grid-template-columns: 18px minmax(0, 1fr); line-height: 1.6; }
.login-consent input { height: 16px !important; margin: 2px 0 0 !important; min-height: 0 !important; padding: 0 !important; width: 16px !important; }
.login-consent span { min-width: 0; }
.login-consent a { color: var(--brand); text-decoration: underline; }
.login-consent.invalid { color: #9a3c32; outline: 2px solid rgba(154,60,50,.22); outline-offset: 4px; border-radius: 4px; }
.login-consent-error { color: #9a3c32; font-size: 12px; line-height: 1.5; margin-top: -6px; }
.login-code-row { align-items: end; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto; }
.account-hint { color: #75665b; font-size: 12px; font-weight: 800; line-height: 1.55; margin: 0; }
@media (max-width: 520px) {
  .login-code-row { grid-template-columns: 1fr; }
}

/* v58 native profile center */
#settingsView { max-width: 780px; }
.profile-heading { margin-bottom: 4px; }
.profile-home, .profile-detail { display: grid; gap: 12px; }
.profile-card {
  background: linear-gradient(135deg, #142c26 0%, #253f34 52%, #70412b 100%);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  box-shadow: 0 20px 48px rgba(28, 35, 29, .20);
  color: #fff;
  display: grid;
  gap: 15px;
  overflow: hidden;
  padding: 18px;
  position: relative;
}
.profile-card::after {
  background: linear-gradient(135deg, rgba(198,161,91,.22), transparent 48%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.profile-card > * { position: relative; z-index: 1; }
.profile-main {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 56px minmax(0, 1fr) auto;
}
.profile-avatar {
  align-items: center;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 8px;
  color: #fff;
  display: inline-flex;
  font-size: 21px;
  font-weight: 950;
  height: 56px;
  justify-content: center;
  width: 56px;
}
.profile-copy { display: grid; gap: 5px; min-width: 0; }
.profile-copy h3 { color: #fff; font-family: Georgia, "Times New Roman", "Microsoft YaHei", serif; font-size: 24px; line-height: 1.12; overflow-wrap: anywhere; }
.profile-copy p { color: rgba(255,255,255,.76); font-size: 12px; font-weight: 800; line-height: 1.45; margin: 0; }
.member-status, .member-tier {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 11px;
  font-weight: 950;
  justify-self: start;
  padding: 4px 9px;
}
.member-tier { justify-self: end; white-space: nowrap; }
.profile-stats {
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 7px;
}
.profile-stats button {
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: #fff;
  cursor: pointer;
  display: grid;
  gap: 4px;
  min-height: 56px;
  place-items: center;
  text-align: center;
}
.profile-stats button:hover { background: rgba(255,255,255,.09); }
.profile-stats button:focus-visible { outline: 2px solid rgba(217,185,111,.9); outline-offset: 2px; }
.profile-stats strong { font-size: 22px; line-height: 1; }
.profile-stats span { color: rgba(255,255,255,.72); font-size: 11px; font-weight: 900; }
.profile-actions { display: grid; gap: 8px; }
.profile-primary-action {
  background: #d9b96f;
  border: 0;
  border-radius: 8px;
  color: #20170f;
  font-weight: 950;
  min-height: 46px;
  padding: 0 14px;
}
.trial-vip-banner, .profile-section, .profile-panel {
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(34,53,43,.12);
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(31,45,36,.06);
}

.registration-success-panel {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid #c9e5d5;
  border-radius: 8px;
  background: #f3fbf6;
}
.registration-success-copy { display: grid; gap: 6px; }
.registration-success-copy > span { color: #18794e; font-size: 12px; font-weight: 800; }
.registration-success-copy h3 { margin: 0; color: var(--ink); font-size: 20px; }
.registration-success-copy p, .registration-success-copy small { margin: 0; color: var(--muted); line-height: 1.6; }
.registration-success-copy p strong { color: var(--ink); }
.registration-success-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.registration-qr { display: grid; justify-items: start; gap: 8px; }
.registration-qr img { width: 180px; height: 180px; border: 1px solid #dce8e0; background: #fff; image-rendering: auto; }
.registration-qr span, .registration-success-feedback { color: var(--muted); font-size: 12px; line-height: 1.5; }
@media (max-width: 560px) {
  .registration-success-actions { display: grid; }
  .registration-success-actions > * { width: 100%; }
  .registration-qr img { width: 160px; height: 160px; }
}
.profile-panel-title span {
  color: #7b4a2d;
  display: block;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .04em;
  margin-bottom: 5px;
}
.trial-vip-banner {
  align-items: center;
  background: linear-gradient(135deg, #fffaf0, #eef7ef);
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 13px 14px;
  text-align: left;
  width: 100%;
}
.trial-vip-banner span {
  color: #7b4a2d;
  display: block;
  font-size: 11px;
  font-weight: 950;
  margin-bottom: 5px;
}
.trial-vip-banner strong {
  color: var(--ink);
  display: block;
  font-size: 16px;
  line-height: 1.25;
}
.trial-vip-banner small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.42;
  margin-top: 4px;
}
.trial-vip-banner b {
  background: #18382f;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  padding: 8px 10px;
  white-space: nowrap;
}
.membership-upsell-toast {
  align-items: center;
  background: #18382f;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  bottom: calc(82px + env(safe-area-inset-bottom));
  box-shadow: 0 18px 46px rgba(24, 56, 47, .28);
  color: #fff;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  left: 50%;
  max-width: min(640px, calc(100vw - 28px));
  padding: 14px 14px 14px 16px;
  position: fixed;
  transform: translateX(-50%);
  width: 100%;
  z-index: 90;
}
.membership-upsell-toast div { display: grid; gap: 4px; min-width: 0; padding-right: 22px; }
.membership-upsell-toast span { color: #f1cf86; font-size: 12px; font-weight: 950; }
.membership-upsell-toast strong { color: #fff; font-size: 16px; line-height: 1.25; }
.membership-upsell-toast p { color: rgba(255,255,255,.75); font-size: 12px; font-weight: 800; line-height: 1.45; margin: 0; }
.membership-upsell-action {
  background: #f1cf86;
  border: 0;
  border-radius: 8px;
  color: #18382f;
  font-weight: 950;
  min-height: 42px;
  padding: 0 14px;
  white-space: nowrap;
}
.membership-upsell-close {
  background: transparent;
  border: 0;
  color: rgba(255,255,255,.72);
  font-size: 20px;
  font-weight: 900;
  height: 32px;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 6px;
  top: 6px;
  width: 32px;
}
.free-saved-only-card {
  align-items: center;
  background: linear-gradient(135deg, #fff9ec, #f6efe3);
  border: 1px solid rgba(123,74,45,.16);
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 13px;
  text-align: left;
  width: 100%;
}
.free-saved-only-card div { display: grid; gap: 4px; min-width: 0; }
.free-saved-only-card span { color: #7b4a2d; font-size: 12px; font-weight: 950; }
.free-saved-only-card strong { color: var(--ink); font-size: 16px; line-height: 1.25; }
.free-saved-only-card p { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.45; margin: 0; }
.free-saved-only-card b {
  background: #18382f;
  border-radius: 8px;
  color: #fff;
  font-size: 13px;
  padding: 10px 12px;
  white-space: nowrap;
}
.profile-menu i {
  color: #9aa49f;
  font-size: 24px;
  font-style: normal;
  line-height: 1;
}
.upgrade-vip-entry {
  align-items: center;
  background: linear-gradient(135deg, #182b27, #55472f);
  border: 1px solid rgba(217,185,111,.36);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(24,56,47,.14);
  color: #fff;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 14px;
  text-align: left;
  width: 100%;
}
.upgrade-vip-entry span {
  color: #d9b96f;
  display: block;
  font-size: 11px;
  font-weight: 950;
  margin-bottom: 5px;
}
.upgrade-vip-entry strong {
  color: #fff;
  display: block;
  font-size: 16px;
  line-height: 1.25;
}
.upgrade-vip-entry small {
  color: rgba(255,255,255,.72);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  margin-top: 4px;
}
.upgrade-vip-entry b {
  background: #d9b96f;
  border-radius: 8px;
  color: #20170f;
  font-size: 12px;
  font-weight: 950;
  padding: 9px 11px;
  white-space: nowrap;
}
.profile-section { display: grid; gap: 12px; padding: 14px; }
.profile-menu { display: grid; gap: 8px; }
.profile-menu button {
  align-items: center;
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.11);
  border-radius: 8px;
  color: var(--ink);
  display: grid;
  gap: 11px;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  min-height: 70px;
  padding: 11px 12px;
  text-align: left;
  width: 100%;
}
.profile-menu button > span {
  align-items: center;
  background: #edf4ee;
  border-radius: 8px;
  color: #18382f;
  display: inline-flex;
  font-size: 13px;
  font-weight: 950;
  height: 40px;
  justify-content: center;
  width: 40px;
}
.profile-menu .profile-menu-assistant {
  background: #eef6ef;
  border-color: rgba(49,95,79,.28);
  box-shadow: 0 6px 18px rgba(49,95,79,.08);
}
.profile-menu .profile-menu-assistant > span { background: #dceee0; }
.profile-menu .profile-menu-assistant strong { color: #214f3e; }
.profile-menu strong { display: block; font-size: 15px; line-height: 1.2; }
.profile-menu small { color: var(--muted); display: block; font-size: 12px; font-weight: 800; line-height: 1.35; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-detail-head {
  align-items: center;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(34,53,43,.11);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  padding: 12px;
}
.profile-detail-head h3 { font-size: 18px; line-height: 1.2; }
.profile-panel { display: grid; gap: 14px; padding: 16px; }
.profile-panel-title h3 { color: var(--ink); font-size: 24px; line-height: 1.12; }
.profile-panel-title p { font-size: 13px; margin: 7px 0 0; }
.profile-login {
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  color: var(--ink);
  padding: 12px;
}
.login-mode-switch {
  background: #edf4ee;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 4px;
}
.login-mode-switch button {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: #55736a;
  font-weight: 950;
  min-height: 36px;
}
.login-mode-switch button.active {
  background: #fff;
  color: #18382f;
  box-shadow: 0 4px 12px rgba(34,53,43,.08);
}
.profile-login label {
  color: var(--muted);
  display: grid;
  font-size: 12px;
  font-weight: 900;
  gap: 6px;
}
.profile-login input {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 44px;
  outline: none;
  padding: 0 11px;
  width: 100%;
}
.login-forgot-password { justify-self: end; min-height: 32px; padding: 0; }
.profile-source-manager { gap: 8px; }
.site-alert-warning {
  align-items: center;
  background: #fff7e8;
  border: 1px solid #e7c98d;
  border-radius: 8px;
  color: #76501d;
  display: grid;
  gap: 4px 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px;
  text-align: left;
  width: 100%;
}
.site-alert-warning span { font-size: 12px; font-weight: 900; grid-column: 1; }
.site-alert-warning strong { color: #4f3514; font-size: 13px; grid-column: 1; line-height: 1.45; }
.site-alert-warning b { align-self: center; grid-column: 2; grid-row: 1 / span 2; white-space: nowrap; }
.profile-source-row {
  align-items: center;
  background: #fbfaf6;
  grid-template-columns: minmax(0, 1fr) auto;
}
.profile-source-row strong { color: var(--ink); }
.profile-source-row .toggle { min-height: 36px; white-space: nowrap; }

.wechat-reminder-content { display: grid; gap: 16px; min-height: 292px; }
.wechat-assistant-panel .profile-panel-title h3 { color: #214f3e; }
.wechat-status-skeleton { display: grid; gap: 12px; padding: 6px 0; }
.wechat-status-skeleton span { animation: skeleton-pulse 1.4s ease-in-out infinite; background: #edf0ec; border-radius: 6px; display: block; height: 58px; }
.wechat-status-skeleton span:nth-child(2) { height: 96px; }
.wechat-status-skeleton span:nth-child(3) { height: 44px; width: 46%; }
.wechat-status-line { align-items: center; display: grid; gap: 12px; grid-template-columns: 12px minmax(0, 1fr); padding-bottom: 14px; border-bottom: 1px solid rgba(34,53,43,.12); }
.wechat-status-icon { background: #3f765d; border-radius: 50%; box-shadow: 0 0 0 5px rgba(63,118,93,.12); display: block; height: 10px; width: 10px; }
.wechat-status-line strong, .wechat-status-line small { display: block; }
.wechat-status-line strong { color: var(--ink); font-size: 17px; }
.wechat-status-line small { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.5; margin-top: 4px; }
.wechat-status-detail { display: grid; gap: 0; }
.wechat-status-detail > div { align-items: center; border-bottom: 1px solid rgba(34,53,43,.09); display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); min-height: 52px; }
.wechat-status-detail span { color: var(--muted); font-size: 12px; font-weight: 900; }
.wechat-status-detail strong { color: var(--ink); font-size: 13px; line-height: 1.4; text-align: right; }
.wechat-qr-slot { align-items: center; aspect-ratio: 1; background: #fff; border: 1px solid rgba(34,53,43,.14); border-radius: 8px; display: flex; height: 218px; justify-content: center; justify-self: center; overflow: hidden; width: 218px; }
.wechat-qr-slot img { display: block; height: 216px; object-fit: contain; width: 216px; }
.wechat-authorization-block { display: grid; gap: 10px; justify-items: center; min-height: 276px; }
.wechat-authorization-block p { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.5; margin: 0; text-align: center; }
.wechat-action-message { color: var(--muted); font-size: 13px; line-height: 1.5; margin: 8px 0 0; }
.wechat-qr-slot.authorization { height: 242px; max-width: 100%; width: 242px; }
.wechat-qr-slot.authorization img { height: 240px; max-height: 100%; max-width: 100%; width: 240px; }
.wechat-qr-expired { align-items: center; color: var(--muted); display: grid; gap: 12px; justify-items: center; padding: 18px; text-align: center; }
.wechat-qr-expired strong { color: var(--ink); font-size: 15px; }
.wechat-qr-help { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.6; margin: -6px auto 0; max-width: 320px; text-align: center; }
.wechat-reminder-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.wechat-reminder-actions > button { flex: 1 1 180px; min-height: 44px; }
.wechat-channel-notice, .wechat-state-message { display: grid; gap: 8px; justify-items: start; }
.wechat-channel-notice { border-left: 3px solid #bc8d43; padding: 10px 0 10px 12px; }
.wechat-channel-notice strong, .wechat-state-message strong { color: var(--ink); font-size: 15px; }
.wechat-channel-notice span, .wechat-state-message span { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.5; }
.wechat-assistant-entry { display: grid; gap: 12px; justify-items: start; }
.wechat-assistant-qr { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; }
.wechat-assistant-qr img { background: #fff; border: 1px solid #dce5df; border-radius: 6px; display: block; height: 216px; object-fit: contain; padding: 6px; width: 216px; }
.wechat-assistant-qr span { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.55; max-width: 260px; }
.wechat-assistant-entry > strong { color: var(--ink); font-size: 15px; }
.wechat-assistant-entry > span { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.6; max-width: 420px; }
.wechat-assistant-actions { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.wechat-assistant-actions > button { min-height: 42px; }
.wechat-in-app .wechat-assistant-actions > button { flex: 1 1 160px; }
@media (max-width: 560px) {
  .wechat-assistant-qr { align-items: start; display: grid; gap: 8px; justify-items: start; width: 100%; }
  .wechat-assistant-qr img { height: min(216px, calc(100vw - 56px)); max-width: 100%; width: min(216px, calc(100vw - 56px)); }
  .wechat-assistant-qr span { max-width: 100%; }
}
.wechat-sync-warning { align-items: center; color: #76501d; display: flex; font-size: 12px; font-weight: 850; gap: 10px; justify-content: space-between; }
.wechat-sync-warning button { background: transparent; border: 0; color: #315f4f; font-weight: 950; padding: 8px; white-space: nowrap; }
.wecom-application-list { display: grid; border-top: 1px solid rgba(34,53,43,.09); }
.wecom-application-row { align-items: center; border-bottom: 1px solid rgba(34,53,43,.09); display: grid; gap: 16px; grid-template-columns: minmax(0,1fr) 42px; min-height: 62px; }
.wecom-application-row span, .wecom-application-row strong, .wecom-application-row small { display: block; min-width: 0; }
.wecom-application-row strong { color: var(--ink); font-size: 14px; }
.wecom-application-row small { color: var(--muted); font-size: 11px; font-weight: 800; margin-top: 4px; }
.wecom-application-row input[role="switch"] { appearance: none; background: #cbd3cf; border: 0; border-radius: 13px; cursor: pointer; height: 26px; margin: 0; position: relative; transition: background .16s ease; width: 42px; }
.wecom-application-row input[role="switch"]::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(20,35,28,.25); content: ""; height: 20px; left: 3px; position: absolute; top: 3px; transition: transform .16s ease; width: 20px; }
.wecom-application-row input[role="switch"]:checked { background: #3f765d; }
.wecom-application-row input[role="switch"]:checked::after { transform: translateX(16px); }
.wecom-application-row input[role="switch"]:disabled { cursor: not-allowed; opacity: .5; }
.wecom-application-row > b { color: #3f765d; font-size: 12px; justify-self: end; }
.wecom-binding-steps { display: grid; gap: 14px; }
.wecom-binding-steps ol { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.wecom-binding-steps li { align-items: start; display: grid; gap: 2px 10px; grid-template-columns: 22px minmax(0,1fr); }
.wecom-binding-steps li::before { align-items: center; background: #e7f1eb; border-radius: 50%; color: #315f4a; content: counter(list-item); display: flex; font-size: 11px; font-weight: 800; height: 22px; justify-content: center; grid-row: 1 / span 2; }
.wecom-binding-steps strong,.wecom-binding-steps span { min-width: 0; }
.wecom-binding-steps strong { color: var(--ink); font-size: 13px; }
.wecom-binding-steps span { color: var(--muted); font-size: 12px; line-height: 1.55; }
@keyframes skeleton-pulse { 0%,100% { opacity: .58; } 50% { opacity: 1; } }

@media (max-width: 390px) {
  .assistant-entry-card { grid-template-columns: 36px minmax(0, 1fr); }
  .assistant-entry-card .assistant-avatar { height: 36px; width: 36px; }
  .wechat-reminder-panel { padding-left: 13px; padding-right: 13px; }
  .wechat-status-detail > div { align-items: start; grid-template-columns: 1fr; gap: 4px; padding: 10px 0; }
  .wechat-status-detail strong { text-align: left; }
  .wechat-reminder-actions { display: grid; grid-template-columns: 1fr; }
  .wechat-reminder-actions > button { width: 100%; }
  .wechat-assistant-actions { display: grid; grid-template-columns: 1fr; }
  .wechat-assistant-actions > button { width: 100%; }
}
.membership-overview {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.membership-overview div, .benefit-list article, .security-list article, .preference-row {
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  min-width: 0;
  padding: 12px;
}
.membership-overview span, .security-list span {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 900;
  margin-bottom: 5px;
}
.membership-overview strong { color: var(--ink); display: block; font-size: 22px; line-height: 1.05; }
.membership-overview small { color: var(--muted); display: block; font-size: 12px; font-weight: 800; line-height: 1.4; margin-top: 6px; }
.benefit-list, .preference-list, .security-list { display: grid; gap: 8px; }
.benefit-list article { display: grid; gap: 5px; }
.benefit-list strong { color: var(--ink); font-size: 15px; }
.benefit-list span { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.45; }
.membership-panel { display: grid; gap: 10px; }
.membership-hero {
  align-items: start;
  background: linear-gradient(135deg, #18382f, #6f4525);
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 16px;
}
.membership-hero.vip { background: linear-gradient(135deg, #1b332d, #8a672e); }
.membership-hero span, .membership-hero b {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 11px;
  font-weight: 950;
  padding: 5px 9px;
  white-space: nowrap;
}
.membership-hero h4 { color: #fff; font-size: 26px; line-height: 1.1; margin: 10px 0 5px; }
.membership-hero p { color: rgba(255,255,255,.78); font-size: 13px; font-weight: 850; line-height: 1.45; margin: 0; }
.membership-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
}
.membership-actions.compact { grid-template-columns: 1fr; }
.membership-actions .primary-button, .membership-actions .secondary-action { min-height: 44px; width: 100%; }
.membership-value-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.membership-value-card {
  align-content: space-between;
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  min-height: 138px;
  padding: 12px;
}
.membership-value-card.locked { background: #f7f2ea; border-color: rgba(123,74,45,.16); }
.membership-value-card strong {
  color: var(--ink);
  display: block;
  font-size: 15px;
  line-height: 1.25;
}
.membership-value-card span {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
  margin-top: 5px;
}
.membership-value-card b {
  align-self: end;
  background: rgba(24,56,47,.08);
  border-radius: 999px;
  color: #18382f;
  font-size: 11px;
  font-weight: 950;
  justify-self: start;
  padding: 6px 9px;
}
.membership-value-card.locked b { background: rgba(123,74,45,.12); color: #7b4a2d; }
.membership-summary-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.membership-summary-grid article, .membership-note {
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  min-width: 0;
  padding: 12px;
}
.membership-summary-grid span, .membership-note small {
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.35;
}
.membership-summary-grid strong {
  color: var(--ink);
  display: block;
  font-size: 18px;
  line-height: 1.1;
  margin-top: 5px;
  overflow-wrap: anywhere;
}
.membership-quota-list { display: grid; gap: 8px; }
.membership-quota-row {
  align-items: center;
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(90px, 22%) auto;
  min-height: 76px;
  padding: 12px;
  text-align: left;
  width: 100%;
}
.membership-quota-row div { min-width: 0; }
.membership-quota-row span {
  color: var(--muted);
  display: block;
  font-size: 11px;
  font-weight: 950;
  margin-bottom: 3px;
}
.membership-quota-row strong { color: var(--ink); display: block; font-size: 18px; line-height: 1.15; }
.membership-quota-row small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  margin-top: 5px;
}
.membership-quota-row i {
  background: #ece5dc;
  border-radius: 999px;
  display: block;
  height: 8px;
  overflow: hidden;
  width: 100%;
}
.membership-quota-row i em {
  background: linear-gradient(90deg, #18382f, #c6a15b);
  border-radius: inherit;
  display: block;
  height: 100%;
}
.membership-quota-row > b {
  color: #7b4a2d;
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}
.membership-checkout {
  display: grid;
  gap: 10px;
  max-width: 100%;
  min-width: 0;
}
.membership-checkout-app {
  gap: 12px;
  overflow-x: clip;
}
.membership-checkout-app *,
.membership-checkout-app *::before,
.membership-checkout-app *::after {
  min-width: 0;
}
.membership-back {
  justify-self: start;
  min-height: 34px;
  padding: 0;
}
.membership-back.pill {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  min-height: 32px;
  padding: 0 12px;
}
.membership-pay-hero {
  background:
    linear-gradient(135deg, rgba(8,16,18,.96), rgba(24,56,47,.95) 58%, rgba(106,78,34,.95));
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: 14px;
  overflow: hidden;
  padding: 14px;
  position: relative;
  width: 100%;
}
.membership-pay-hero.svip {
  background:
    linear-gradient(135deg, rgba(10,12,20,.98), rgba(38,43,69,.96) 52%, rgba(117,84,45,.95));
}
.membership-pay-user span {
  color: rgba(255,255,255,.72);
  display: block;
  font-size: 12px;
  font-weight: 950;
  line-height: 1.35;
}
.membership-pay-user h4 {
  color: #fff;
  font-size: 28px;
  line-height: 1.05;
  margin: 6px 0 8px;
}
.membership-pay-user p {
  color: rgba(255,255,255,.78);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
  margin: 0;
  overflow-wrap: anywhere;
}
.membership-pay-ribbon {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  color: rgba(255,255,255,.9);
  font-size: 12px;
  font-weight: 950;
  justify-self: start;
  line-height: 1.35;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 8px 12px;
}
.membership-tier-tabs {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.membership-tier-tab {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: 4px;
  min-height: 72px;
  padding: 12px;
  text-align: left;
}
.membership-tier-tab.active {
  background: #fffdf8;
  border-color: #fffdf8;
  color: var(--ink);
}
.membership-tier-tab.disabled,
.membership-tier-tab:disabled {
  cursor: not-allowed;
  opacity: .55;
  filter: grayscale(.2);
}
.membership-tier-tab strong {
  color: inherit;
  font-size: 20px;
  line-height: 1.1;
}
.membership-tier-tab span {
  color: rgba(255,255,255,.68);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
}
.membership-tier-tab.active span { color: #7b4a2d; }
.membership-plan-stage,
.membership-checkout-perks,
.membership-application-methods {
  display: grid;
  gap: 8px;
}
.membership-app-plan-strip {
  display: flex;
  gap: 10px;
  margin: 0 -2px;
  overflow-x: auto;
  padding: 2px 2px 6px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  width: 100%;
}
.membership-app-plan-strip::-webkit-scrollbar { display: none; }
.membership-app-plan-card {
  align-content: start;
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.12);
  border-radius: 8px;
  color: inherit;
  display: grid;
  flex: 0 0 min(72%, 236px);
  gap: 8px;
  min-height: 180px;
  padding: 14px;
  position: relative;
  scroll-snap-align: start;
  text-align: left;
}
.membership-app-plan-card.active {
  background: linear-gradient(180deg, #f8f4e8, #fffdf8 68%);
  border-color: #18382f;
  box-shadow: inset 0 0 0 1px #18382f, 0 10px 22px rgba(24,56,47,.1);
}
.membership-app-plan-card.recommended::after {
  background: #18382f;
  border-radius: 999px;
  color: #fff;
  content: "推荐";
  font-size: 11px;
  font-weight: 950;
  padding: 5px 8px;
  position: absolute;
  right: 10px;
  top: 10px;
}
.membership-app-plan-card span {
  color: #7b4a2d;
  display: block;
  font-size: 11px;
  font-weight: 950;
  line-height: 1.35;
  padding-right: 42px;
}
.membership-app-plan-card strong {
  color: var(--ink);
  display: block;
  font-size: 20px;
  line-height: 1.15;
}
.membership-app-plan-card b {
  color: #18382f;
  display: block;
  font-size: 34px;
  line-height: 1;
  margin-top: 8px;
}
.membership-app-plan-card small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 850;
}
.membership-app-plan-card em {
  align-self: end;
  background: rgba(123,74,45,.1);
  border-radius: 6px;
  color: #7b4a2d;
  display: block;
  font-size: 12px;
  font-style: normal;
  font-weight: 950;
  margin: 6px -6px -6px;
  padding: 8px;
  text-align: center;
}
.membership-perk-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.membership-perk-grid article,
.membership-method-row {
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
}
.membership-perk-grid article {
  display: grid;
  gap: 4px;
  min-height: 72px;
  padding: 12px;
}
.membership-perk-grid strong,
.membership-method-row b {
  color: var(--ink);
  font-size: 15px;
  line-height: 1.25;
}
.membership-perk-grid span,
.membership-method-row span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
}
.membership-method-row {
  align-items: center;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 68px;
  padding: 12px;
  text-align: left;
  width: 100%;
}
.membership-method-row div { display: grid; gap: 4px; }
.membership-method-row i {
  border: 2px solid rgba(34,53,43,.18);
  border-radius: 999px;
  display: block;
  height: 22px;
  position: relative;
  width: 22px;
}
.membership-method-row.active i {
  background: #18382f;
  border-color: #18382f;
}
.membership-method-row.active i::after {
  background: #fff;
  border-radius: 999px;
  content: "";
  height: 8px;
  left: 5px;
  position: absolute;
  top: 5px;
  width: 8px;
}
.membership-order-state,
.membership-order-card {
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.12);
  border-radius: 8px;
  display: grid;
  gap: 6px;
  padding: 14px;
}
.membership-order-state strong,
.membership-order-card strong {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.25;
}
.membership-order-state p,
.membership-order-card small,
.membership-order-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
  margin: 0;
}
.membership-order-card {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
}
.membership-order-card div {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.membership-order-card b {
  color: #7b4a2d;
  font-size: 20px;
  white-space: nowrap;
}
.membership-order-history {
  display: grid;
  gap: 8px;
}
.membership-order-history .membership-order-card {
  align-items: start;
  grid-template-columns: minmax(0, 1fr);
}
.membership-order-history .membership-order-card.has-actions {
  grid-template-columns: minmax(0, 1fr) minmax(128px, auto);
}
.membership-order-actions {
  display: grid;
  gap: 6px;
  min-width: 128px;
}
.membership-order-actions .secondary-action {
  min-height: 36px;
  padding: 7px 10px;
  width: 100%;
}
.membership-manual-confirm-note {
  background: #f2f7f4;
  border-color: rgba(24,56,47,.2);
}
.membership-manual-support {
  align-items: center;
  background: #f2f7f4;
  border: 1px solid rgba(24,56,47,.2);
  border-radius: 8px;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  padding: 18px;
}
.membership-manual-support-copy {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.membership-support-kicker {
  color: #28735a;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .04em;
}
.membership-manual-support-copy strong {
  color: var(--ink);
  font-size: 20px;
  line-height: 1.25;
}
.membership-manual-support-copy p,
.membership-manual-support-copy small,
.membership-assistant-entry span,
.membership-assistant-link span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
  margin: 0;
}
.membership-manual-support-copy .primary-button,
.membership-manual-support-copy .secondary-action {
  justify-self: start;
  margin-top: 4px;
}
.membership-assistant-entry {
  align-items: center;
  display: grid;
  gap: 10px;
  min-width: 0;
}
.membership-assistant-entry-loading,
.membership-assistant-qr-missing {
  align-content: center;
  background: #fffdf8;
  border: 1px dashed rgba(34,53,43,.2);
  border-radius: 6px;
  min-height: 220px;
  padding: 16px;
  text-align: center;
}
.membership-assistant-qr {
  align-items: center;
  display: grid;
  gap: 7px;
  justify-items: center;
  min-width: 0;
}
.membership-assistant-qr img {
  aspect-ratio: 1;
  background: #fff;
  border: 6px solid #fff;
  border-radius: 4px;
  box-shadow: 0 3px 12px rgba(34,53,43,.12);
  display: block;
  height: auto;
  max-width: min(220px, 100%);
  object-fit: contain;
  width: 220px;
}
.membership-assistant-link {
  display: grid;
  gap: 5px;
  min-width: 0;
  width: 100%;
}
.membership-assistant-link code {
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.12);
  border-radius: 4px;
  color: #38594b;
  display: block;
  font-family: inherit;
  font-size: 11px;
  line-height: 1.4;
  overflow-wrap: anywhere;
  padding: 7px 8px;
  white-space: normal;
}
.membership-assistant-link .secondary-action {
  justify-self: start;
  min-height: 34px;
  padding: 6px 10px;
}
.membership-assistant-error {
  color: #8b4f35;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
}
@media (max-width: 700px) {
  .membership-manual-support {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
    padding: 14px;
  }
  .membership-manual-support-copy strong { font-size: 18px; }
  .membership-manual-support-copy .primary-button,
  .membership-manual-support-copy .secondary-action,
  .membership-assistant-link .secondary-action {
    justify-self: stretch;
    width: 100%;
  }
  .membership-assistant-entry { justify-items: stretch; }
  .membership-assistant-qr img { width: min(220px, 100%); }
}
.checkout-head {
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  display: grid;
  gap: 6px;
  padding: 14px;
}
.checkout-head span {
  color: #7b4a2d;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .04em;
}
.checkout-head h4 {
  color: var(--ink);
  font-size: 22px;
  line-height: 1.15;
}
.checkout-head p, .checkout-note {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
  margin: 0;
}
.membership-recommend, .membership-all-packages {
  display: grid;
  gap: 8px;
}
.membership-recommend-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.membership-recommend-card {
  align-content: space-between;
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.12);
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 10px;
  min-height: 188px;
  padding: 14px;
  text-align: left;
  width: 100%;
}
.membership-recommend-card.svip {
  background: linear-gradient(135deg, rgba(24,56,47,.08), rgba(198,161,91,.16));
}
.membership-recommend-card.active {
  border-color: #18382f;
  box-shadow: inset 0 0 0 1px #18382f, 0 10px 22px rgba(24,56,47,.1);
}
.membership-recommend-card span {
  background: rgba(24,56,47,.08);
  border-radius: 999px;
  color: #18382f;
  display: inline-flex;
  font-size: 11px;
  font-weight: 950;
  justify-self: start;
  padding: 6px 9px;
}
.membership-recommend-card strong {
  color: var(--ink);
  display: block;
  font-size: 22px;
  line-height: 1.15;
}
.membership-recommend-card p {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
  margin: 0;
}
.membership-recommend-card div {
  align-items: end;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}
.membership-recommend-card b {
  color: #18382f;
  font-size: 30px;
  line-height: 1;
}
.membership-recommend-card small {
  color: #7b4a2d;
  font-size: 12px;
  font-weight: 950;
  line-height: 1.35;
  text-align: right;
}
.vip-package-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.membership-package-group {
  display: grid;
  gap: 8px;
}
.membership-section-kicker {
  align-items: end;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  min-width: 0;
}
.membership-section-kicker span {
  color: #7b4a2d;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .04em;
}
.membership-section-kicker strong {
  color: var(--ink);
  font-size: 14px;
  overflow-wrap: anywhere;
  text-align: right;
}
.vip-package-card {
  align-content: start;
  background: #fffdf8;
  border: 1px solid rgba(34,53,43,.11);
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 8px;
  min-height: 164px;
  padding: 12px;
  position: relative;
  text-align: left;
  width: 100%;
}
.vip-package-card.active {
  border-color: #18382f;
  box-shadow: inset 0 0 0 1px #18382f, 0 8px 18px rgba(24,56,47,.08);
}
.vip-package-card.recommended::after {
  background: #18382f;
  border-radius: 999px;
  color: #fff;
  content: "推荐";
  font-size: 11px;
  font-weight: 950;
  padding: 5px 8px;
  position: absolute;
  right: 10px;
  top: 10px;
}
.vip-package-card div { min-width: 0; padding-right: 42px; }
.vip-package-card span {
  color: #7b4a2d;
  display: block;
  font-size: 11px;
  font-weight: 950;
  margin-bottom: 7px;
}
.vip-package-card strong {
  color: var(--ink);
  display: block;
  font-size: 18px;
  line-height: 1.15;
}
.vip-package-card small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  margin-top: 6px;
}
.vip-package-card b {
  color: #18382f;
  display: block;
  font-size: 26px;
  line-height: 1;
}
.vip-package-card em, .vip-package-card i {
  color: var(--muted);
  display: block;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.35;
}
.vip-package-card i { color: #7b4a2d; }
.checkout-summary {
  align-items: center;
  background: linear-gradient(135deg, #18382f, #6f4525);
  border-radius: 8px;
  color: #fff;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 14px;
}
.checkout-summary span {
  color: rgba(255,255,255,.7);
  display: block;
  font-size: 11px;
  font-weight: 950;
  margin-bottom: 4px;
}
.checkout-summary strong {
  color: #fff;
  display: block;
  font-size: 17px;
  line-height: 1.2;
}
.checkout-summary small {
  color: rgba(255,255,255,.75);
  display: block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  margin-top: 5px;
}
.checkout-summary b {
  color: #fff;
  font-size: 28px;
  white-space: nowrap;
}
.checkout-summary-app {
  background: linear-gradient(135deg, #18382f, #6f4525);
  box-shadow: 0 12px 26px rgba(24,56,47,.12);
}
.checkout-summary-app strong { font-size: 18px; }
.checkout-summary-app b { font-size: 30px; }
.checkout-pay-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 2px;
}
.checkout-pay-actions.single { grid-template-columns: 1fr; }
.checkout-pay-actions .primary-button, .checkout-pay-actions .secondary-action { min-height: 44px; width: 100%; }
.checkout-pay-actions.sticky {
  background: transparent;
  bottom: auto;
  border-radius: 8px;
  padding: 0;
  position: static;
  z-index: auto;
}
.checkout-note {
  background: #fbfaf6;
  border: 1px dashed rgba(123,74,45,.18);
  border-radius: 8px;
  padding: 10px 12px;
}
.membership-benefits { gap: 8px; }
.membership-benefits {
  display: grid;
}
.membership-benefit {
  align-items: center;
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px;
  text-align: left;
  width: 100%;
}
.membership-benefit.locked { background: #f7f2ea; border-color: rgba(123,74,45,.16); }
.membership-benefit strong { color: var(--ink); display: block; font-size: 15px; line-height: 1.25; }
.membership-benefit span { color: var(--muted); display: block; font-size: 12px; font-weight: 800; line-height: 1.45; margin-top: 4px; }
.membership-benefit > b {
  background: rgba(24,56,47,.08);
  border-radius: 999px;
  color: #18382f;
  font-size: 11px;
  font-weight: 950;
  padding: 6px 9px;
  white-space: nowrap;
}
.membership-benefit.locked > b { background: rgba(123,74,45,.12); color: #7b4a2d; }
.membership-note {
  border-style: dashed;
  display: grid;
  gap: 5px;
}
.membership-note strong { color: var(--ink); font-size: 14px; }
.membership-note p { color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.5; margin: 0; }
.preference-row {
  align-items: center;
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  text-align: left;
  width: 100%;
}
.preference-row strong { color: var(--ink); display: block; font-size: 15px; }
.preference-row small { color: var(--muted); display: block; font-size: 12px; font-weight: 800; line-height: 1.4; margin-top: 4px; }
.preference-row:disabled { cursor: wait; opacity: .72; }
.switch {
  background: #ebe4dc;
  border-radius: 999px;
  color: #76685e;
  font-size: 12px;
  font-weight: 950;
  min-width: 48px;
  padding: 6px 9px;
  text-align: center;
}
.switch.on { background: #18382f; color: #fff; }
.switch.pending { background: #e7e3dc; color: #625e57; min-width: 56px; }
.preference-sync-state {
  align-items: center;
  background: #fff6ed;
  border: 1px solid rgba(145, 77, 35, .2);
  border-radius: 8px;
  color: #744222;
  display: flex;
  font-size: 12px;
  font-weight: 800;
  gap: 12px;
  justify-content: space-between;
  line-height: 1.5;
  padding: 10px 12px;
}
.preference-sync-state button { color: #18382f; flex: 0 0 auto; font-weight: 950; }
.security-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.security-list strong { color: var(--ink); display: block; font-size: 16px; overflow-wrap: anywhere; }
.password-setter {
  background: #fbfaf6;
  border: 1px solid rgba(34,53,43,.1);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}
.password-setter > strong { color: var(--ink); font-size: 15px; }
.password-setter label {
  color: var(--muted);
  display: grid;
  font-size: 12px;
  font-weight: 900;
  gap: 6px;
}
.password-setter input {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 42px;
  padding: 0 11px;
}
.danger-action {
  background: #fff;
  border: 1px solid rgba(143,20,25,.22);
  border-radius: 8px;
  color: var(--brand);
  font-weight: 950;
  min-height: 42px;
  width: 100%;
}
.account-security-panel .account-empty {
  align-items: start;
  background: #fbfaf6;
  border: 1px dashed rgba(123,74,45,.24);
  border-radius: 8px;
  display: grid;
  gap: 9px;
  padding: 14px;
}
.account-security-panel .account-empty strong { color: var(--ink); font-size: 18px; }
.account-security-panel .account-empty p { margin: 0; }
@media (max-width: 520px) {
  .profile-detail { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  .profile-login input, .profile-login button { scroll-margin-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .profile-main { grid-template-columns: 50px minmax(0, 1fr); }
  .profile-avatar { height: 50px; width: 50px; }
  .member-tier { grid-column: 1 / -1; justify-self: start; }
  .profile-copy h3 { font-size: 21px; }
  .profile-menu button { grid-template-columns: 38px minmax(0, 1fr) auto; min-height: 68px; }
  .profile-menu button > span { height: 38px; width: 38px; }
  .login-code-row, .membership-overview, .security-list, .membership-actions, .membership-summary-grid, .membership-value-grid, .membership-recommend-grid { grid-template-columns: 1fr; }
  .membership-hero { grid-template-columns: 1fr; }
  .membership-hero b { justify-self: start; }
  .membership-quota-row { align-items: stretch; grid-template-columns: 1fr; }
  .membership-quota-row > b { justify-self: start; }
  .vip-package-list, .checkout-pay-actions, .checkout-summary { grid-template-columns: 1fr; }
  .membership-order-history .membership-order-card.has-actions { grid-template-columns: 1fr; }
  .membership-order-actions { grid-template-columns: 1fr 1fr; min-width: 0; }
  .membership-pay-user h4 { font-size: 25px; }
  .membership-pay-hero { padding: 12px; }
  .membership-pay-user p { font-size: 12px; }
  .membership-section-kicker { align-items: start; flex-direction: column; gap: 3px; }
  .membership-section-kicker strong { text-align: left; }
  .membership-tier-tabs, .membership-perk-grid { grid-template-columns: 1fr 1fr; }
  .membership-tier-tab { min-height: 66px; padding: 10px; }
  .membership-tier-tab strong { font-size: 18px; }
  .membership-app-plan-card { flex-basis: min(72%, 236px); min-height: 172px; }
  .membership-app-plan-card b { font-size: 32px; }
  .checkout-pay-actions.sticky { bottom: auto; }
  .membership-recommend-card div { align-items: start; flex-direction: column; }
  .membership-recommend-card small { text-align: left; }
  .checkout-summary b { justify-self: start; }
  .membership-benefit { align-items: start; grid-template-columns: 1fr; }
  .membership-benefit > b { justify-self: start; }
  .profile-source-row { align-items: stretch; grid-template-columns: 1fr; }
  .profile-source-row .source-toggles { justify-content: stretch; }
  .profile-source-row .toggle { width: 100%; }
}
/* v40 notification center polish */
.notification-title-row { align-items: center; display: flex; gap: 14px; justify-content: space-between; }
.notification-title-row h2 { margin: 0; }
.notification-title-row .text-button { white-space: nowrap; }
.notification-panel { gap: 18px; }
.notification-head { padding-right: 46px; }
.notification-head p { display: none; }
.notification-item { align-items: center; grid-template-columns: minmax(0, 1fr) auto; padding: 14px 13px; }
.notification-item.read { opacity: .68; }
.notification-copy { min-width: 0; }
.notification-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 7px; }
.notification-meta span { background: rgba(198, 161, 91, .16); border-radius: 999px; color: #7b4a2d; display: inline-flex; font-size: 11px; font-weight: 950; letter-spacing: 0; padding: 3px 8px; }
.notification-meta b { color: #31453d; font-size: 12px; font-weight: 950; }
.notification-item strong { -webkit-box-orient: vertical; -webkit-line-clamp: 2; display: -webkit-box; font-size: 16px; line-height: 1.32; overflow: hidden; }
.notification-item small { color: #897a70; font-weight: 800; }
.notification-item button { white-space: nowrap; }
@media (max-width: 520px) {
  .notification-title-row { align-items: flex-start; flex-direction: column; gap: 8px; }
  .notification-item strong { font-size: 15px; }
}
/* v41 intelligence notification cards */
.notification-list { gap: 12px; }
.notification-item.intel-notice { align-items: stretch; content-visibility: auto; contain-intrinsic-size: 96px; background: #fffdf7; border-color: rgba(36, 53, 43, .14); box-shadow: 0 8px 18px rgba(34, 28, 18, .04); grid-template-columns: minmax(0, 1fr) auto; padding: 14px; }
.notice-main { display: grid; gap: 10px; min-width: 0; }
.notice-top { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.notice-top span, .notice-top b, .notice-top em { border-radius: 999px; display: inline-flex; font-size: 11px; font-style: normal; font-weight: 950; line-height: 1; padding: 5px 8px; }
.notice-top span { background: rgba(198, 161, 91, .17); color: #7b4a2d; }
.notice-top b { background: rgba(24, 56, 47, .08); color: #18382f; }
.notice-top em { background: #eef4ec; color: #36533f; }
.intel-notice strong { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: #171512; display: -webkit-box; font-size: 17px; line-height: 1.32; margin: 0; overflow: hidden; }
.notice-price-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.notice-price-grid div { background: #f7f4ed; border: 1px solid rgba(124,87,46,.1); border-radius: 8px; min-width: 0; padding: 9px; }
.notice-price-grid span { color: #806f62; display: block; font-size: 11px; font-weight: 900; margin-bottom: 3px; }
.notice-price-grid b { color: #1c2f29; display: block; font-size: 13px; font-weight: 950; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notice-price-grid.pending div { background: #fbf8ef; border-style: dashed; }
.notice-price-grid.pending b { color: #8b7967; }
.notice-foot { color: #897a70; display: flex; flex-wrap: wrap; gap: 8px; }
.notice-foot small { font-size: 12px; font-weight: 800; }
.intel-notice > button { align-self: center; background: #18382f; border: 0; border-radius: 8px; color: #fff; font-weight: 950; min-height: 40px; padding: 0 14px; white-space: nowrap; }
.notification-item.read.intel-notice { opacity: .72; }
@media (max-width: 520px) {
  .notification-item.intel-notice { grid-template-columns: 1fr; }
  .notice-price-grid { grid-template-columns: 1fr 1fr; }
  .notice-price-grid div:last-child { grid-column: 1 / -1; }
}
/* v42 notification detail drawer */
.notice-detail { display: grid; gap: 15px; }
.drawer.notice-mode .drawer-panel { max-height: 96vh; }
.notice-detail-head { background: #f8f4eb; border: 1px solid rgba(124,87,46,.14); border-radius: 8px; padding: 15px; }
.notice-detail-head span { background: rgba(198,161,91,.18); border-radius: 999px; color: #7b4a2d; display: inline-flex; font-size: 12px; font-weight: 950; padding: 5px 9px; }
.notice-detail-head h2 { color: #171512; font-size: 24px; line-height: 1.22; margin: 10px 0 6px; }
.notice-detail-head p { color: #75665b; font-size: 13px; font-weight: 850; margin: 0; }
.notice-detail-image { background: #f4eee6; border-radius: 8px; overflow: hidden; }
.notice-detail-image img { aspect-ratio: 1.35; display: block; object-fit: cover; width: 100%; }
.notice-detail-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.notice-detail-grid div { background: #fffdf7; border: 1px solid rgba(36,53,43,.12); border-radius: 8px; padding: 12px; }
.notice-detail-grid span { color: #806f62; display: block; font-size: 12px; font-weight: 900; margin-bottom: 5px; }
.notice-detail-grid strong { color: #18382f; display: block; font-size: 17px; font-weight: 950; overflow-wrap: anywhere; }
.notice-record-section { background: #fbfaf6; border: 1px solid rgba(36,53,43,.10); border-radius: 8px; margin: 0; padding: 12px; }
.notice-actions-bar { grid-template-columns: 1fr 1fr; }
@media (min-width: 720px) {
  .drawer.notice-mode .drawer-panel { width: min(720px, 58vw); }
}
@media (max-width: 520px) {
  .drawer.notice-mode .drawer-panel { border-radius: 8px 8px 0 0; max-height: 96vh; min-height: 86vh; }
  .notice-detail-grid { grid-template-columns: 1fr 1fr; }
  .notice-detail-head h2 { font-size: 22px; }
  .notice-actions-bar { grid-template-columns: 1fr 1fr; }
}
/* v46 product-first notification center */
.notification-section-label { align-items: center; color: #6f6258; display: flex; font-size: 12px; font-weight: 850; justify-content: space-between; }
.notification-section-label strong { color: #211714; font-size: 14px; }
.notification-section-label span { color: #8a7b70; }
.notification-item.intel-notice { background: linear-gradient(135deg, #fffdf7, #f9f4ea); border-color: rgba(124,87,46,.16); box-shadow: 0 10px 26px rgba(34, 28, 18, .06); }
.notice-top span { background: #7b4a2d; color: #fff; }
.notice-top b { background: rgba(198,161,91,.16); color: #6f4525; }
.notice-top em { background: rgba(24,56,47,.1); color: #18382f; }
.intel-notice > button { min-width: 54px; }
@media (max-width: 520px) {
  .notification-section-label { align-items: flex-start; flex-direction: column; gap: 4px; }
  .intel-notice > button { justify-self: stretch; }
}
/* v51 message center as first-class tab */
.messages-heading { align-items: end; }
.messages-heading h2 { font-size: 34px; letter-spacing: 0; }
.messages-hero {
  align-items: center;
  background: linear-gradient(135deg, #18382f, #7b4a2d);
  border-radius: 8px;
  color: #fff;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 16px;
}
.messages-hero span { color: rgba(255,255,255,.7); display: block; font-size: 12px; font-weight: 950; margin-bottom: 5px; }
.messages-hero strong { display: block; font-size: 18px; line-height: 1.25; }
.messages-hero .secondary-action { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); color: #fff; flex: 0 0 auto; }
.message-filter-bar {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(36,53,43,.12);
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  min-width: 0;
  padding: 10px;
}
.message-filter-tabs {
  display: flex;
  gap: 8px;
  min-width: 0;
  overflow-x: auto;
  padding-bottom: 1px;
  scrollbar-width: none;
}
.message-filter-tabs::-webkit-scrollbar { display: none; }
.message-filter-tabs button {
  background: #f8faf6;
  border: 1px solid rgba(36,53,43,.12);
  border-radius: 999px;
  color: #53615b;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 950;
  min-height: 34px;
  padding: 0 12px;
  white-space: nowrap;
}
.message-filter-tabs button.active {
  background: #18382f;
  border-color: #18382f;
  color: #fff;
}
.message-source-filter {
  align-items: center;
  color: #75665b;
  display: flex;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 900;
  gap: 7px;
}
.message-source-filter select {
  background: #fbfcf8;
  border: 1px solid rgba(36,53,43,.14);
  border-radius: 8px;
  color: #18382f;
  font-weight: 900;
  min-height: 34px;
  min-width: 132px;
  padding: 0 10px;
}
.message-page-list { gap: 10px; }
.message-page-list .notification-section-label { padding: 0 2px 2px; }
.notification-item.intel-notice {
  content-visibility: auto;
  contain-intrinsic-size: 96px;
  border-radius: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 13px;
}
.notification-item.unread.intel-notice { border-left: 4px solid #7b4a2d; }
.notification-item.read.intel-notice { opacity: .58; }
.notice-actions { align-self: center; display: grid; gap: 8px; min-width: 58px; }
.notice-actions button { min-height: 34px; }
.notice-actions .ghost { background: #fff; border: 1px solid rgba(124,87,46,.14); color: #7c6c61; }
.notification-load-more {
  background: #fff;
  border: 1px solid rgba(24,56,47,.18);
  border-radius: 8px;
  color: #18382f;
  cursor: pointer;
  font-size: 13px;
  font-weight: 950;
  min-height: 42px;
  width: 100%;
}
.tab-button.has-message-badge { position: relative; }
.tab-button.has-message-badge::after {
  align-items: center;
  background: #c84b31;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  content: attr(data-message-badge);
  display: inline-flex;
  font-size: 10px;
  justify-content: center;
  min-height: 17px;
  min-width: 17px;
  padding: 0 4px;
  position: absolute;
  right: max(13%, 10px);
  top: 5px;
}
.tab-button.message-badge-overflow::after { font-size: 12px; letter-spacing: 1px; line-height: 1; padding: 0 4px 2px; }
.shortcut-row { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shortcut-row button {
  background: #fbfaf6;
  border: 1px solid rgba(124,87,46,.14);
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 5px;
  min-height: 74px;
  padding: 12px;
  text-align: left;
}
.shortcut-row strong { color: #18382f; font-size: 15px; }
.shortcut-row span { color: #75665b; font-size: 12px; font-weight: 850; line-height: 1.35; }
@media (max-width: 520px) {
  .messages-hero { align-items: stretch; flex-direction: column; }
  .messages-hero .secondary-action { width: 100%; }
  .message-filter-bar { align-items: stretch; flex-direction: column; padding: 9px; }
  .message-source-filter { justify-content: space-between; }
  .message-source-filter select { flex: 1; min-width: 0; }
  .notification-item.intel-notice { grid-template-columns: 1fr; }
  .notice-actions { grid-template-columns: 1fr 1fr; }
  .shortcut-row { grid-template-columns: 1fr; }
}



/* v92 customer-facing intelligence polish */
.section-subtitle { color: #74685f; font-size: 12px; font-weight: 750; line-height: 1.45; margin: 4px 0 0; }

.selected-source-link {
  align-items: center;
  background: #f7faf5;
  border: 1px solid #dfe8dc;
  border-radius: 8px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin: 4px 0 0;
  min-height: 48px;
  padding: 8px 10px;
}
.selected-source-main {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.selected-source-copy {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  gap: 8px;
  min-width: 0;
}
.selected-source-copy small {
  color: #718078;
  flex: 0 1 auto;
  font-size: 11px;
  font-weight: 800;
  min-width: 0;
  overflow-wrap: anywhere;
}
.selected-source-copy span {
  color: #718078;
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 900;
}
.selected-source-copy strong {
  color: #173b2f;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 950;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.selected-source-copy code {
  background: transparent;
  color: #52625b;
  flex: 1 1 auto;
  font-family: inherit;
  font-size: 12px;
  font-weight: 850;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.selected-source-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 7px;
}
.selected-source-actions a,
.selected-source-actions button {
  align-items: center;
  background: #fff;
  border: 1px solid #d4e2d8;
  border-radius: 7px;
  color: #0f6f54;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 12px;
  font-weight: 950;
  justify-content: center;
  min-height: 32px;
  padding: 0 10px;
  text-decoration: none;
  white-space: nowrap;
}
.selected-source-actions a {
  background: #16775a;
  border-color: #16775a;
  color: #fff;
}
.selected-source-actions button:disabled {
  color: #6d7d74;
  cursor: default;
}
.source-promotion {
  background: #fffdf7;
  border: 1px solid #eadfc8;
  border-radius: 8px;
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 9px 10px;
}
.source-promotion-head {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.source-promotion-head span,
.source-promotion-code span,
.source-promotion-validity {
  color: #8b6a36;
  font-size: 11px;
  font-weight: 900;
}
.source-promotion-head strong {
  color: #4f3522;
  font-size: 14px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.source-promotion-code {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
}
.source-promotion-code code {
  background: #f5ead5;
  border-radius: 5px;
  color: #5f3e21;
  flex: 1 1 160px;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 13px;
  font-weight: 950;
  min-width: 0;
  overflow-wrap: anywhere;
  padding: 4px 6px;
  white-space: normal;
  word-break: break-word;
}
.source-promotion-code button {
  background: #fff;
  border: 1px solid #d7c7a9;
  border-radius: 6px;
  color: #7a5426;
  cursor: pointer;
  flex: 0 0 auto;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  min-height: 30px;
  padding: 0 9px;
}
.source-promotion-code button:disabled {
  cursor: default;
  opacity: .75;
}
.message-promotion-snapshot {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  padding: 10px 12px;
  border-left: 3px solid #c58a42;
  background: #fff8ee;
}
.message-promotion-snapshot strong { color: #7a4a1e; }
.message-promotion-snapshot code { overflow-wrap: anywhere; word-break: break-word; font-weight: 700; }
.message-promotion-snapshot p, .message-promotion-snapshot small { margin: 0; color: #6d6257; }
.source-promotion-description,
.source-promotion-terms {
  color: #635b4d;
  font-size: 12px;
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}
.source-promotion-terms {
  color: #756a59;
}
@media (max-width: 719px) {
  .selected-source-link {
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    padding: 9px;
  }
  .selected-source-main {
    width: 100%;
  }
  .selected-source-copy {
    align-items: flex-start;
    flex-wrap: wrap;
    row-gap: 4px;
  }
  .selected-source-copy strong { max-width: calc(100% - 64px); }
  .selected-source-copy code {
    flex-basis: 100%;
    width: 100%;
  }
  .selected-source-actions a,
  .selected-source-actions button {
    flex: 1 1 0;
  }
  .source-promotion-code {
    align-items: stretch;
  }
  .source-promotion-code code {
    flex-basis: 100%;
  }
  .source-promotion-code button {
    width: 100%;
  }
}


/* v113 formal app shell and dashboard */
:root {
  --app-bg: #f7f5ef;
  --app-surface: #fffdf8;
  --app-surface-2: #f1eee6;
  --app-ink: #171b18;
  --app-muted: #68736c;
  --app-line: #ddd8cd;
  --app-leaf: #143b32;
  --app-leaf-2: #1f5a48;
  --app-cigar: #7a4b30;
  --app-gold: #bd9450;
  --app-red: #a64235;
  --app-shadow: 0 14px 34px rgba(35, 31, 24, .08);
  --bg: var(--app-bg);
  --surface: var(--app-surface);
  --ink: var(--app-ink);
  --muted: var(--app-muted);
  --line: var(--app-line);
  --brand: var(--app-leaf);
  --brand-dark: #0d261f;
  --gold: var(--app-gold);
  --green: var(--app-leaf-2);
}

body { background: var(--app-bg); color: var(--app-ink); }

.app-shell { padding-bottom: 96px; }
.app-header {
  align-items: center;
  max-width: 1040px;
  padding: 8px 2px 14px;
}
.brand-lockup span { color: var(--app-cigar); font-size: 11px; font-weight: 950; }
.brand-lockup strong { color: var(--app-ink); font-size: 22px; letter-spacing: 0; }
.message-button {
  background: var(--app-leaf);
  border: 1px solid rgba(255,255,255,.2);
  box-shadow: 0 8px 20px rgba(20,59,50,.16);
}
.view { max-width: 1040px; gap: 14px; }
.eyebrow { color: var(--app-cigar); font-size: 11px; font-weight: 950; letter-spacing: .08em; }
.text-button { color: var(--app-leaf); font-size: 13px; }

.bottom-nav {
  background: rgba(255,253,248,.94);
  border: 1px solid rgba(221,216,205,.96);
  border-radius: 8px;
  box-shadow: 0 16px 38px rgba(37,31,24,.16);
  gap: 4px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 430px;
  padding: 6px;
}
.tab-button {
  border-radius: 7px;
  color: #6a746e;
  font-size: 12px;
  gap: 4px;
  min-height: 52px;
}
.tab-button span {
  align-items: center;
  color: #718078;
  display: inline-flex;
  justify-content: center;
}
.tab-button svg {
  display: block;
  fill: none;
  height: 20px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  width: 20px;
}
.tab-button.active {
  background: var(--app-leaf);
  color: #fff;
}
.tab-button.active span { color: #dfc58d; }
.tab-button.has-message-badge::after { right: max(22%, 18px); }

@media (max-width: 560px) {
  .app-shell { padding-left: 12px; padding-right: 12px; }
  .app-header { padding-bottom: 10px; }
  .brand-lockup strong { font-size: 21px; }
  .bottom-nav { bottom: max(8px, env(safe-area-inset-bottom)); width: calc(100% - 18px); }
  .tab-button { min-height: 50px; }
}

/* v115 scalable search and quote stream */
#productsView { gap: 12px; }
#productsView .section-heading {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 2px 0 0;
}
#productsView .section-heading h2 { color: var(--app-ink); font-size: 26px; }
#productsView #refreshButton {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 40px;
  padding: 0 8px;
}
#productsView .search-panel {
  background: rgba(255,253,248,.94);
  border: 1px solid var(--app-line);
  border-radius: 8px;
  box-shadow: 0 10px 26px rgba(36,31,24,.055);
  gap: 10px;
  padding: 12px;
}
#productsView .search-box > span { color: var(--app-cigar); letter-spacing: .04em; }
#productsView .search-submit-row { grid-template-columns: minmax(0, 1fr) 86px; }
#productsView .search-submit-row input {
  background: #fff;
  border: 1px solid #e1dbcf;
  border-radius: 7px;
  min-height: 44px;
}
#productsView .search-submit-row button {
  background: var(--app-leaf);
  border-radius: 7px;
  min-height: 44px;
}
#productsView .filter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#productsView .filter-row select {
  background: #fff;
  border-color: #e1dbcf;
  border-radius: 7px;
  min-height: 40px;
}
#productsView .quick-filters { gap: 7px; }
#productsView .chip {
  border-color: #ddd8cd;
  min-height: 34px;
}
#productsView .chip.active {
  background: var(--app-leaf);
  border-color: var(--app-leaf);
}
#productsView .status-row {
  background: transparent;
  padding: 0 2px;
}
#productsView .status-row p,
#productsView .sourceCount { color: var(--app-muted); }
.quote-panel {
  background: transparent;
  border: 0;
  box-shadow: none;
  gap: 10px;
  padding: 0;
}
.quote-head {
  background: rgba(255,253,248,.92);
  border: 1px solid var(--app-line);
  border-radius: 8px;
  padding: 12px;
}
.quote-head span { color: var(--app-cigar); }
.quote-head strong { color: var(--app-ink); font-size: 20px; }
.quote-head p { color: var(--app-muted); font-size: 13px; }
.quote-only-grid .quote-grid,
.quote-grid {
  display: grid;
  gap: 9px;
  grid-template-columns: 1fr;
}
.quote-card.quote-row {
  align-items: center;
  content-visibility: auto;
  contain-intrinsic-size: 92px;
  background: rgba(255,253,248,.96);
  border: 1px solid var(--app-line);
  border-left: 3px solid var(--app-gold);
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(36,31,24,.045);
  display: grid;
  gap: 11px;
  grid-template-columns: 64px minmax(0, 1fr) 132px;
  min-height: 92px;
  padding: 10px;
}
.quote-card.quote-row.unavailable {
  border-left-color: #c9c2b6;
  opacity: .72;
}
.quote-card.quote-row.price-review {
  border-left-color: #b88d4f;
}
.quote-row .quote-card-top .quote-review-badge {
  background: #fff5df;
  border-color: #ecd5aa;
  color: #8b6332;
}
.quote-row-meta .price-review-text {
  color: #8b6332;
}
.quote-row .quote-image {
  align-items: center;
  background: #f1eee6;
  border: 1px solid #e1dbcf;
  border-radius: 7px;
  display: flex;
  height: 64px;
  justify-content: center;
  width: 64px;
}
.quote-row .quote-image .image-fallback {
  aspect-ratio: auto;
  border-radius: 0;
  height: 100%;
}
.quote-row .quote-image b { display: none; }
.quote-row-main { display: grid; gap: 4px; min-width: 0; }
.quote-row .quote-card-top {
  justify-content: start;
  gap: 8px;
}
.quote-row .quote-card-top span {
  color: var(--app-cigar);
  font-size: 11px;
  line-height: 1;
}
.quote-row .quote-card-top b {
  background: #eef5ef;
  border-color: #d8e4d8;
  color: var(--app-leaf);
  font-size: 11px;
  line-height: 1;
  padding: 4px 7px;
}
.quote-row-main > strong {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--app-ink);
  display: -webkit-box;
  font-size: 15px;
  line-height: 1.28;
  overflow: hidden;
}
.quote-row-main > small {
  color: var(--app-muted);
  font-size: 12px;
  font-weight: 850;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.quote-row-meta {
  align-items: center;
  color: var(--app-muted);
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  font-size: 12px;
  font-weight: 850;
}
.quote-row-meta b { color: var(--app-ink); font-weight: 950; }
.quote-row-meta .compare-price { color: #98745c; font-size: 12px; }
.quote-row .quote-actions {
  align-self: stretch;
  display: grid;
  gap: 7px;
  grid-template-columns: 1fr;
  min-width: 0;
}
.quote-row .quote-actions button,
.quote-row .quote-actions a {
  border-radius: 7px;
  font-size: 12px;
  min-height: 34px;
  padding: 0 8px;
}
.quote-row .quote-actions button {
  background: #fff;
  border-color: #ded8cc;
  color: var(--app-leaf);
}
.quote-row .quote-actions a { background: var(--app-leaf); }
.quote-load-more {
  background: #fffdf8;
  border: 1px dashed #d8d0c2;
  border-radius: 8px;
  color: var(--app-muted);
  padding: 12px;
}
.search-empty.search-guide {
  background: rgba(255,253,248,.95);
  border: 1px solid var(--app-line);
  box-shadow: 0 8px 18px rgba(36,31,24,.045);
}
.search-empty.search-guide strong { color: var(--app-ink); }
.search-empty.search-guide span { color: var(--app-cigar); }
@media (max-width: 640px) {
  #productsView .filter-row { grid-template-columns: 1fr; }
  #productsView .search-submit-row { grid-template-columns: minmax(0, 1fr) 72px; }
  .quote-card.quote-row {
    align-items: start;
    grid-template-columns: 56px minmax(0, 1fr);
    min-height: 0;
  }
  .quote-row .quote-image { height: 56px; width: 56px; }
  .quote-row .quote-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
  }
}


/* v117 profile module polish */
#settingsView { gap: 12px; }
#settingsView .section-heading.profile-heading {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 2px 0 0;
}
#settingsView .section-heading.profile-heading h2 {
  color: var(--app-ink, var(--ink));
  font-size: 28px;
}
.profile-card {
  background: linear-gradient(135deg, #132c25 0%, #244233 58%, #7a5230 100%);
  box-shadow: 0 18px 42px rgba(24, 34, 28, .18);
}
.profile-card::before {
  background: radial-gradient(circle at 14% 8%, rgba(217,185,111,.22), transparent 34%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.profile-stats button,
.trial-vip-banner,
.upgrade-vip-entry,
.profile-menu button,
.profile-primary-action {
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.trial-vip-banner:hover,
.upgrade-vip-entry:hover,
.profile-menu button:hover {
  border-color: rgba(24,56,47,.22);
  transform: translateY(-1px);
}
.profile-menu button:active,
.trial-vip-banner:active,
.upgrade-vip-entry:active,
.profile-primary-action:active { transform: translateY(0); }
.profile-menu button {
  background: #fffdf8;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  min-height: 72px;
}
.profile-menu .profile-menu-icon {
  align-items: center;
  background: #eef5ef;
  border: 1px solid rgba(24,56,47,.1);
  border-radius: 8px;
  color: #18382f;
  display: inline-flex;
  height: 42px;
  justify-content: center;
  width: 42px;
}
.profile-menu .profile-menu-icon svg {
  fill: none;
  height: 22px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.9;
  width: 22px;
}
.profile-menu small {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  line-height: 1.38;
  overflow: hidden;
  white-space: normal;
}
.profile-menu i { font-size: 21px; justify-self: end; }
.upgrade-vip-entry small { line-height: 1.48; }
.profile-primary-action { box-shadow: 0 8px 18px rgba(217,185,111,.18); }
@media (max-width: 520px) {
  #settingsView .section-heading.profile-heading h2 { font-size: 26px; }
  .profile-card { padding: 16px; }
  .profile-main .member-tier { grid-column: 2; justify-self: start; }
  .profile-menu button { grid-template-columns: 40px minmax(0, 1fr) 16px; min-height: 70px; padding: 11px; }
  .profile-menu .profile-menu-icon { height: 40px; width: 40px; }
  .profile-menu .profile-menu-icon svg { height: 21px; width: 21px; }
  .trial-vip-banner,
  .upgrade-vip-entry { align-items: stretch; grid-template-columns: 1fr; }
  .trial-vip-banner b,
  .upgrade-vip-entry b { justify-self: start; }
  .avatar-file-action,
  .avatar-editor-actions .text-button { min-height: 42px; }
  .profile-save-button {
    bottom: calc(72px + env(safe-area-inset-bottom));
    box-shadow: 0 10px 24px rgba(24, 56, 47, .22);
    position: sticky;
    z-index: 4;
  }
}

/* v118 watch radar module */
#watchView { gap: 12px; }
#watchView .section-heading.watch-heading {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 2px 0 0;
}
#watchView .section-heading.watch-heading h2 {
  color: var(--app-ink, var(--ink));
  font-size: 28px;
  line-height: 1.15;
}
.watch-overview-card {
  align-items: stretch;
  background: #fffdf8;
  border: 1px solid var(--app-line, var(--line));
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(36,31,24,.07);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr);
  margin: 0;
  padding: 14px;
}
.watch-overview-copy {
  align-content: center;
  display: grid;
  gap: 6px;
  min-width: 0;
}
.watch-overview-copy span,
.watch-sync-card span,
.watch-rule-main span,
.watch-card-copy span {
  color: var(--app-cigar, #7a5230);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
}
.watch-overview-copy strong {
  color: var(--app-ink, #18201d);
  font-size: 20px;
  line-height: 1.22;
  overflow-wrap: anywhere;
}
.watch-overview-copy p,
.watch-sync-card p,
.watch-rule-main p,
.watch-card-copy p,
.watch-empty-state p {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  line-height: 1.48;
  margin: 0;
}
.watch-overview-stats {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.watch-overview-stats article {
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px;
}
.watch-overview-stats span {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.watch-overview-stats strong {
  color: var(--app-leaf, #18382f);
  font-size: 22px;
  line-height: 1;
}
.watch-rule-panel {
  background: #fffdf8;
  border-color: var(--app-line, var(--line));
  margin: 0;
}
.watch-rule-hits-panel {
  background: #fffdf8;
  border: 1px solid var(--app-line, var(--line));
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(36,31,24,.07);
  display: grid;
  gap: 12px;
  padding: 14px;
}
.watch-rule-hit-head {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
}
.watch-rule-hit-head div {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.watch-rule-hit-head span {
  color: var(--app-cigar, #7a5230);
  font-size: 11px;
  font-weight: 950;
}
.watch-rule-hit-head strong {
  color: var(--app-ink, #18201d);
  font-size: 20px;
  line-height: 1.2;
}
.watch-rule-hit-head p {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  line-height: 1.48;
  margin: 0;
}
.watch-rule-save-feedback {
  align-items: center;
  background: #f7fbf6;
  border: 1px solid #dbe9d7;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: 10px;
  padding: 12px;
}
.watch-rule-save-feedback div {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.watch-rule-save-feedback span {
  color: var(--app-leaf, #18382f);
  font-size: 11px;
  font-weight: 950;
}
.watch-rule-save-feedback strong {
  color: var(--app-ink, #18201d);
  font-size: 16px;
  line-height: 1.28;
  overflow-wrap: anywhere;
}
.watch-rule-save-feedback p,
.watch-rule-save-feedback small {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
  margin: 0;
}
.watch-rule-save-feedback small {
  color: #7b4a2d;
}
.watch-rule-save-feedback button {
  background: #fff;
  border: 1px solid #d8e4d8;
  border-radius: 7px;
  color: var(--app-leaf, #18382f);
  font-weight: 950;
  min-height: 36px;
  padding: 0 12px;
  white-space: nowrap;
}
.watch-rule-panel .section-title-row { align-items: end; }
.watch-rule-panel .rule-form {
  grid-template-columns: minmax(0, 1.25fr) minmax(150px, .85fr) minmax(120px, .7fr) auto;
}
.watch-rule-panel .rule-form input,
.watch-rule-panel .rule-form select {
  background: #fbfcf8;
  border-color: #ded8cc;
  color: var(--app-ink, #18201d);
}
.watch-sync-card {
  align-items: center;
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 11px 12px;
}
.watch-sync-card strong {
  color: var(--app-ink, #18201d);
  display: block;
  font-size: 14px;
  margin-top: 2px;
}
.watch-sync-card b,
.watch-status-pill,
.watch-rule-meta b {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  font-size: 11px;
  font-weight: 950;
  justify-content: center;
  line-height: 1;
  min-height: 24px;
  padding: 0 9px;
  white-space: nowrap;
}
.watch-sync-card b,
.watch-rule-meta b.synced,
.watch-status-pill.active {
  background: #eef5ef;
  border: 1px solid #d8e4d8;
  color: var(--app-leaf, #18382f);
}
.watch-rule-meta b.local,
.watch-status-pill.idle {
  background: #f7efe3;
  border: 1px solid #eadbc7;
  color: var(--app-cigar, #7a5230);
}
.watch-rule-meta b.saved-only {
  background: #fff4dd;
  border: 1px solid #ead5a5;
  color: #7b4a2d;
}
.watch-empty-inline,
.watch-empty-state {
  background: #fbfcf8;
  border: 1px dashed #d8d0c2;
  border-radius: 8px;
  display: grid;
  gap: 6px;
  padding: 13px;
}
.watch-empty-inline strong,
.watch-empty-state strong {
  color: var(--app-ink, #18201d);
  font-size: 15px;
}
.watch-empty-inline span {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  line-height: 1.45;
}
.watch-empty-state .primary-button { justify-self: start; margin-top: 4px; }
.rule-item.watch-rule-item {
  align-items: center;
  background: #fff;
  border-color: #e7e1d6;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  padding: 11px;
}
.watch-rule-main { display: grid; gap: 4px; min-width: 0; }
.watch-rule-main strong {
  color: var(--app-ink, #18201d);
  font-size: 15px;
  line-height: 1.25;
}
.watch-rule-meta {
  align-items: end;
  display: grid;
  gap: 5px;
  justify-items: end;
}
.watch-rule-meta small {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}
.watch-rule-hit-badge {
  align-items: center;
  background: #f7efe3;
  border: 1px solid #eadbc7;
  border-radius: 999px;
  color: var(--app-cigar, #7a5230);
  display: inline-flex;
  font-size: 11px;
  font-weight: 950;
  justify-content: center;
  min-height: 24px;
  padding: 0 9px;
  white-space: nowrap;
}
.watch-rule-hit-badge.active {
  background: #eef5ef;
  border-color: #d8e4d8;
  color: var(--app-leaf, #18382f);
}
.watch-rule-actions {
  display: grid;
  gap: 7px;
  grid-template-columns: auto auto;
}
.watch-rule-item button,
.watch-actions button {
  border-radius: 7px;
  min-height: 34px;
}
.watch-list { gap: 10px; }
.watch-radar-card {
  background: #fffdf8;
  border-color: var(--app-line, #e7e1d6);
  box-shadow: 0 10px 24px rgba(36,31,24,.055);
  content-visibility: auto;
  contain-intrinsic-size: auto 260px;
  display: grid;
  gap: 10px;
  overflow: hidden;
  padding: 12px;
}
.watch-radar-card .watch-card-hit {
  align-items: center;
  grid-template-columns: 82px minmax(0, 1fr) auto;
}
.watch-radar-card .watch-card-hit img,
.watch-radar-card .watch-placeholder {
  aspect-ratio: 1;
  border: 1px solid #e4dfd4;
  border-radius: 8px;
  height: 82px;
  object-fit: cover;
  width: 82px;
}
.watch-radar-card .watch-placeholder {
  background: #eef5ef;
  color: var(--app-leaf, #18382f);
  font-size: 12px;
}
.watch-card-copy {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.watch-card-copy strong {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--app-ink, #18201d);
  display: -webkit-box;
  font-size: 15px;
  line-height: 1.3;
  overflow: hidden;
}
.watch-card-copy p {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  overflow: hidden;
}
.watch-radar-card .watch-offers {
  gap: 7px;
  margin: 0;
}
.watch-radar-card .watch-offer {
  background: #f8faf6;
  border-color: #e1e8df;
  min-width: 0;
}
.watch-offer-more {
  color: var(--app-muted, #68736f);
  font-size: 12px;
  font-weight: 850;
  padding: 2px 4px 0;
}
.watch-radar-card .watch-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
}
.watch-radar-card.archived .watch-card-hit { cursor: default; }
@media (max-width: 719px) {
  #watchView .section-heading.watch-heading h2 { font-size: 26px; }
  .watch-overview-card { grid-template-columns: 1fr; padding: 12px; }
  .watch-overview-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .watch-rule-hit-head { align-items: stretch; grid-template-columns: 1fr; }
  .watch-rule-hit-head .secondary-action { justify-self: start; }
  .watch-rule-save-feedback { align-items: stretch; grid-template-columns: 1fr; }
  .watch-rule-save-feedback button { width: 100%; }
  .watch-rule-panel .rule-form { grid-template-columns: 1fr; }
  .membership-upsell-toast { align-items: stretch; grid-template-columns: 1fr; padding-right: 16px; }
  .membership-upsell-toast div { padding-right: 24px; }
  .membership-upsell-action { width: 100%; }
  .free-saved-only-card { align-items: stretch; grid-template-columns: 1fr; }
  .free-saved-only-card b { justify-self: start; }
  .rule-item.watch-rule-item { align-items: stretch; grid-template-columns: minmax(0, 1fr) auto; }
  .watch-rule-meta { align-items: start; grid-column: 1 / -1; grid-row: 2; justify-items: start; }
  .watch-rule-hit-badge { grid-column: 1; grid-row: 3; justify-self: start; }
  .watch-rule-actions { grid-column: 1 / -1; grid-row: 4; grid-template-columns: 1fr 1fr; }
  .watch-rule-item button { width: 100%; }
  .watch-radar-card .watch-card-hit { align-items: start; grid-template-columns: 70px minmax(0, 1fr); }
  .watch-radar-card .watch-card-hit img,
  .watch-radar-card .watch-placeholder { height: 70px; width: 70px; }
  .watch-status-pill { grid-column: 1 / -1; justify-self: start; margin-top: 2px; }
}
@media (max-width: 420px) {
  .watch-overview-stats { grid-template-columns: 1fr; }
  .watch-radar-card .watch-actions { grid-template-columns: 1fr; }
}
/* v119 message center polish */
#messagesView { gap: 12px; }
#messagesView .section-heading.messages-heading {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 2px 0 0;
}
#messagesView .section-heading.messages-heading h2 {
  color: var(--app-ink, #18201d);
  font-size: 28px;
  line-height: 1.15;
}
.message-overview-card {
  align-items: stretch;
  background: #fffdf8;
  border: 1px solid var(--app-line, #e7e1d6);
  box-shadow: 0 12px 30px rgba(36,31,24,.07);
  color: inherit;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr) auto;
  margin: 0;
  padding: 14px;
}
.message-overview-copy {
  align-content: center;
  display: grid;
  gap: 6px;
  min-width: 0;
}
.message-overview-copy span,
.message-notice-card .notice-top span,
.message-notice-card .notice-top b,
.message-notice-card .notice-top i,
.message-notice-card .notice-top em {
  letter-spacing: 0;
}
.message-overview-copy span {
  color: var(--app-cigar, #7a5230);
  font-size: 11px;
  font-weight: 950;
}
.message-overview-copy strong {
  color: var(--app-ink, #18201d);
  font-size: 20px;
  line-height: 1.22;
  overflow-wrap: anywhere;
}
.message-overview-copy p {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  line-height: 1.48;
  margin: 0;
}
.message-overview-stats {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.message-overview-stats article {
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px;
}
.message-overview-stats span {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.message-overview-stats strong {
  color: var(--app-leaf, #18382f);
  font-size: 22px;
  line-height: 1;
}
.message-overview-card .secondary-action {
  align-self: center;
  background: #fff;
  border: 1px solid #ded8cc;
  color: var(--app-leaf, #18382f);
  min-height: 38px;
  white-space: nowrap;
}
.message-overview-card .secondary-action:disabled,
.messages-heading .text-button:disabled {
  cursor: default;
  opacity: .45;
}
.message-filter-bar {
  background: #fffdf8;
  border-color: var(--app-line, #e7e1d6);
  box-shadow: 0 8px 20px rgba(36,31,24,.045);
}
.message-filter-tabs button {
  border-radius: 8px;
  position: relative;
}
.message-filter-tabs button::after {
  color: currentColor;
  content: attr(data-count);
  font-size: 10px;
  font-weight: 950;
  margin-left: 6px;
  opacity: .72;
}
.message-filter-tabs button.active {
  background: var(--app-leaf, #18382f);
  border-color: var(--app-leaf, #18382f);
}
.message-section-label {
  align-items: center;
  background: #fffdf8;
  border: 1px solid var(--app-line, #e7e1d6);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 11px 12px;
}
.message-section-label div { display: grid; gap: 3px; min-width: 0; }
.message-section-label strong {
  color: var(--app-ink, #18201d);
  font-size: 15px;
}
.message-section-label span {
  color: var(--app-muted, #68736f);
  font-size: 12px;
}
.message-section-label b {
  background: #eef5ef;
  border: 1px solid #d8e4d8;
  border-radius: 999px;
  color: var(--app-leaf, #18382f);
  font-size: 11px;
  font-weight: 950;
  padding: 6px 9px;
  white-space: nowrap;
}
.message-page-list { gap: 10px; }
.notification-item.message-notice-card {
  background: #fffdf8;
  border-color: var(--app-line, #e7e1d6);
  box-shadow: 0 10px 24px rgba(36,31,24,.055);
  contain-intrinsic-size: auto 162px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px;
}
.notification-item.message-notice-card.unread {
  border-left: 4px solid var(--app-cigar, #7a5230);
}
.notification-item.message-notice-card.watch-hit {
  border-color: rgba(24,56,47,.24);
}
.notification-item.message-notice-card.read {
  opacity: .66;
}
.message-notice-card .notice-main { gap: 9px; }
.message-notice-card .notice-top { gap: 6px; }
.message-notice-card .notice-top span,
.message-notice-card .notice-top b,
.message-notice-card .notice-top i,
.message-notice-card .notice-top em {
  border-radius: 999px;
  display: inline-flex;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  padding: 5px 8px;
}
.message-notice-card .notice-top span {
  background: var(--app-cigar, #7a5230);
  color: #fff;
}
.message-notice-card .notice-top b {
  background: #f7efe3;
  color: var(--app-cigar, #7a5230);
}
.message-notice-card .notice-top i,
.message-notice-card .notice-top em {
  background: #eef5ef;
  color: var(--app-leaf, #18382f);
}
.message-notice-card strong {
  color: var(--app-ink, #18201d);
  font-size: 15px;
  line-height: 1.32;
  margin: 0;
}
.message-notice-card .notice-price-grid {
  gap: 7px;
}
.message-notice-card .notice-price-grid div {
  background: #f8faf6;
  border-color: #e1e8df;
  padding: 8px;
}
.message-notice-card .notice-price-grid span {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
}
.message-notice-card .notice-price-grid b {
  color: var(--app-ink, #18201d);
  font-size: 13px;
}
.message-notice-card .notice-foot small {
  color: var(--app-muted, #68736f);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.message-notice-card .notice-actions {
  min-width: 64px;
}
.message-notice-card .notice-actions button {
  border-radius: 7px;
  min-height: 34px;
}
.message-notice-card .notice-actions .ghost {
  background: #fff;
  border-color: #ded8cc;
  color: var(--app-muted, #68736f);
}
.message-empty-state {
  background: #fffdf8;
  border: 1px dashed #d8d0c2;
  border-radius: 8px;
  display: grid;
  gap: 7px;
  padding: 14px;
}
.message-empty-state strong {
  color: var(--app-ink, #18201d);
  font-size: 16px;
}
.message-empty-state p {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  line-height: 1.48;
  margin: 0;
}
.message-empty-state .primary-button { justify-self: start; margin-top: 4px; }
@media (max-width: 719px) {
  #messagesView .section-heading.messages-heading h2 { font-size: 26px; }
  .message-overview-card { grid-template-columns: 1fr; padding: 12px; }
  .message-overview-card .secondary-action { justify-self: stretch; }
  .message-overview-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .message-section-label { align-items: stretch; grid-template-columns: 1fr; }
  .message-section-label b { justify-self: start; }
  .notification-item.message-notice-card { grid-template-columns: 1fr; }
  .message-notice-card .notice-actions { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px) {
  .message-overview-stats { grid-template-columns: 1fr; }
  .message-notice-card .notice-price-grid { grid-template-columns: 1fr; }
  .message-notice-card .notice-actions { grid-template-columns: 1fr; }
}

/* service message center */
.assistant-entry-card,
.user-message-card {
  align-items: center;
  background: #fffdf8;
  border: 1px solid rgba(38, 54, 45, .14);
  border-radius: 8px;
  box-shadow: 0 10px 26px rgba(34, 28, 18, .05);
  display: grid;
  gap: 12px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 14px;
}
.assistant-entry-card { cursor: pointer; }
.assistant-entry-card.unread,
.user-message-card.unread { border-left: 4px solid #8f1419; }
.assistant-avatar {
  align-items: center;
  background: #18382f;
  border-radius: 50%;
  color: #fff;
  display: grid;
  font-weight: 950;
  height: 42px;
  width: 42px;
}
.assistant-entry-copy,
.user-message-main { display: grid; gap: 6px; min-width: 0; }
.assistant-entry-copy div,
.user-message-top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.assistant-entry-copy strong,
.user-message-card strong { color: #211714; font-size: 16px; line-height: 1.28; overflow-wrap: anywhere; }
.assistant-entry-copy span,
.assistant-entry-copy em,
.user-message-top span,
.user-message-top em,
.user-message-top i {
  background: rgba(198, 161, 91, .16);
  border-radius: 999px;
  color: #7b4a2d;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  padding: 3px 8px;
}
.assistant-entry-copy p,
.assistant-entry-copy small,
.user-message-card p,
.user-message-top b {
  color: #6f6258;
  font-size: 12px;
  margin: 0;
}
.assistant-entry-card button,
.user-message-actions button,
.user-message-actions a {
  align-items: center;
  background: #18382f;
  border: 0;
  border-radius: 8px;
  color: #fff;
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  text-decoration: none;
  white-space: nowrap;
}
.user-message-actions {
  display: grid;
  gap: 8px;
  justify-items: stretch;
}
.user-message-actions .ghost,
.user-message-actions a.ghost {
  background: #f6efe4;
  color: #533a2d;
}
.product-message-card {
  grid-template-columns: 76px minmax(0, 1fr) auto;
}
.product-message-card > img,
.product-message-image-empty {
  aspect-ratio: 1;
  background: #f3eadf;
  border-radius: 8px;
  color: #7b4a2d;
  display: grid;
  font-size: 12px;
  font-weight: 900;
  object-fit: contain;
  place-items: center;
  width: 76px;
}
.product-message-change {
  align-items: center;
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 7px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 7px 9px;
}
.product-message-change span { color: #756b64; font-size: 12px; text-decoration: line-through; }
.product-message-change i { color: #8a7b70; font-style: normal; }
.product-message-change strong { color: #8f1419; font-size: 13px; }
.product-message-change.restock strong { color: #17644d; }
.product-message-card .user-message-top i {
  background: #eef5ef;
  color: #36533f;
}
.product-message-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.product-message-meta span {
  background: #f6efe4;
  border-radius: 999px;
  color: #533a2d;
  font-size: 12px;
  font-weight: 850;
  padding: 4px 8px;
}
.assistant-drawer {
  display: grid;
  gap: 16px;
  padding: 18px;
}
.drawer.assistant-mode .drawer-panel {
  background: #fffaf2;
  border-radius: 0;
  inset: 0;
  left: auto;
  max-height: 100vh;
  padding: 0;
  right: 0;
  top: 0;
  width: min(980px, 100vw);
}
.drawer.assistant-mode .close-button {
  right: 18px;
  top: 18px;
  z-index: 2;
}
.drawer.assistant-mode .assistant-drawer {
  min-height: 100vh;
  padding: 28px;
}
.drawer.assistant-mode .assistant-drawer > .drawer-head {
  border-bottom: 1px solid rgba(38, 54, 45, .12);
  padding: 0 54px 18px 0;
}
.drawer.assistant-mode .support-submit-panel,
.drawer.assistant-mode .support-thread-list,
.drawer.assistant-mode .support-reply-panel,
.drawer.assistant-mode .support-bubble-list {
  background: #fff;
  border: 1px solid rgba(38, 54, 45, .12);
  border-radius: 8px;
  padding: 16px;
}
.drawer.assistant-mode .support-detail-drawer {
  grid-template-rows: auto auto minmax(0, 1fr) auto;
}
.drawer.assistant-mode .support-bubble-list {
  align-content: start;
  max-height: calc(100vh - 260px);
  overflow-y: auto;
}
.drawer.assistant-mode .support-reply-panel {
  bottom: 0;
  position: sticky;
}
.assistant-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.assistant-quick-actions button {
  background: #f6efe4;
  border: 1px solid rgba(123, 74, 45, .18);
  border-radius: 999px;
  color: #533a2d;
  font-weight: 850;
  min-height: 34px;
  padding: 0 12px;
}
.support-submit-panel,
.support-thread-list,
.support-reply-panel {
  display: grid;
  gap: 10px;
}
.support-submit-panel h3,
.support-thread-list h3 { margin: 0; }
.support-submit-panel label,
.support-reply-panel label {
  color: #533a2d;
  display: grid;
  font-size: 12px;
  font-weight: 900;
  gap: 5px;
}
.support-submit-panel select,
.support-submit-panel textarea,
.support-reply-panel textarea {
  background: #fff;
  border: 1px solid rgba(38, 54, 45, .18);
  border-radius: 8px;
  color: #211714;
  font: inherit;
  min-height: 40px;
  padding: 10px;
}
.support-file-label input { margin-top: 4px; }
.support-thread-row {
  background: #fffdf8;
  border: 1px solid rgba(38, 54, 45, .12);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 12px;
  text-align: left;
}
.support-thread-row span,
.support-thread-row small { color: #6f6258; font-size: 12px; }
.support-thread-row strong { color: #211714; }
.support-bubble-list { display: grid; gap: 10px; }
.support-bubble {
  background: #f7f2e9;
  border-radius: 8px;
  display: grid;
  gap: 6px;
  max-width: 88%;
  min-width: 0;
  padding: 10px 12px;
}
.support-bubble.admin {
  background: #18382f;
  color: #fff;
  justify-self: start;
}
.support-bubble.user { justify-self: end; }
.support-bubble span { font-size: 11px; font-weight: 850; opacity: .75; }
.support-bubble p { margin: 0; white-space: pre-wrap; }
.support-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
  min-width: 0;
}
.support-attachments img {
  border-radius: 8px;
  max-height: 180px;
  max-width: min(240px, 100%);
  object-fit: contain;
}
.support-qr-figure {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(27, 55, 45, .18);
  border-radius: 8px;
  color: #375448;
  display: grid;
  gap: 8px;
  margin: 2px 0 0;
  box-sizing: border-box;
  max-width: min(292px, 100%);
  min-width: 0;
  overflow: hidden;
  padding: 10px;
  text-align: center;
  width: min(292px, 100%);
}
.support-attachments .support-qr-figure img {
  background: #fff;
  border-radius: 2px;
  display: block;
  height: auto;
  max-height: none;
  max-width: 100%;
  min-width: 0;
  object-fit: contain;
  padding: 0;
  width: min(260px, 100%);
}
.support-qr-figure figcaption {
  color: #53685e;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.5;
}
.support-qr-link {
  background: #1c5b49;
  border-radius: 6px;
  color: #fff;
  display: inline-flex;
  font-size: 13px;
  font-weight: 850;
  justify-content: center;
  padding: 8px 12px;
  text-decoration: none;
}
.support-qr-link:focus-visible,
.support-qr-link:hover { background: #154a3c; }
@media (max-width: 560px) {
  .support-bubble.has-qr {
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
  }
  .support-bubble.has-qr .support-attachments,
  .support-bubble.has-qr .support-qr-figure {
    width: 100%;
  }
  .support-bubble.has-qr .support-qr-figure { padding: 8px; }
  .support-attachments .support-qr-figure img {
    aspect-ratio: 1;
    height: auto;
    width: min(260px, 100%);
  }
  .assistant-entry-card {
    align-items: start;
    grid-template-columns: 42px minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    padding: 12px;
  }
  .assistant-entry-card .assistant-avatar { grid-column: 1; grid-row: 1; }
  .assistant-entry-card .assistant-entry-copy { grid-column: 2; grid-row: 1; }
  .assistant-entry-card > button {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: stretch;
    margin-top: 2px;
    min-height: 44px;
    width: 100%;
  }
  .drawer.assistant-mode .assistant-drawer { padding: 18px 14px; }
  .drawer.assistant-mode .support-bubble-list { max-height: calc(100vh - 240px); }
  .support-bubble { max-width: 100%; }
  .support-bubble-list.page-thread { padding-bottom: 28px; }
  .assistant-entry-card,
  .user-message-card { grid-template-columns: 1fr; }
  .product-message-card { align-items: start; grid-template-columns: 72px minmax(0, 1fr); }
  .product-message-card > img,
  .product-message-image-empty { max-height: 72px; width: 72px; }
  .product-message-card .user-message-actions { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
  .user-message-actions { grid-template-columns: 1fr 1fr; }
}

.message-workspace {
  background: #fffdf8;
  border: 1px solid rgba(38, 54, 45, .12);
  border-radius: 8px;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: calc(100vh - 170px);
  overflow: hidden;
}
.messages-heading {
  align-items: end;
  margin-bottom: 12px;
}
.messages-heading p {
  color: #6f6258;
  font-size: 13px;
  margin: 3px 0 0;
}
#messagesView > .messages-hero,
#messagesView > .message-filter-bar {
  display: none;
}
#messagesView .message-page-list {
  gap: 0;
}
.message-workspace.guest { min-height: 360px; }
.message-workspace.support-active {
  height: max(460px, calc(100dvh - 270px));
  min-height: 0;
}
.message-workspace.support-active .message-inbox-panel { overflow-y: auto; }
.message-inbox-panel {
  background: #f7f5ef;
  border-right: 1px solid rgba(38, 54, 45, .12);
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 12px;
}
.message-inbox-row {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #211714;
  display: grid;
  gap: 10px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  min-height: 62px;
  padding: 10px;
  text-align: left;
  width: 100%;
}
.message-inbox-row:hover,
.message-inbox-row.active {
  background: #fff;
  border-color: rgba(38, 54, 45, .14);
  box-shadow: 0 8px 18px rgba(34, 28, 18, .06);
}
.message-inbox-row > span:not(.assistant-avatar) {
  align-items: center;
  background: #e9efe8;
  border-radius: 50%;
  color: #18382f;
  display: grid;
  font-weight: 950;
  height: 38px;
  place-items: center;
  width: 38px;
}
.message-inbox-row strong,
.message-inbox-row small {
  display: block;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.message-inbox-row small { color: #6f6258; font-size: 12px; margin-top: 2px; }
.message-inbox-row:not(.assistant) small { display: none; }
.message-inbox-row:not(.assistant) { min-height: 56px; }
.message-inbox-row em,
.message-inbox-row b {
  background: #efe7da;
  border-radius: 999px;
  color: #6f4a2f;
  font-size: 12px;
  font-style: normal;
  font-weight: 950;
  min-width: 24px;
  padding: 3px 7px;
  text-align: center;
}
.message-inbox-row.unread b {
  background: #8f1419;
  color: #fff;
}
.message-content-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  padding: 14px;
}
.message-content-panel.support-mode {
  background: #fff;
  display: block;
  height: 100%;
  overflow: hidden;
  padding: 0;
}
.message-content-head {
  align-items: center;
  border-bottom: 1px solid rgba(38, 54, 45, .1);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 0 0 12px;
}
.message-content-head strong {
  color: #211714;
  display: block;
  font-size: 18px;
}
.message-content-head span,
.message-content-head b {
  color: #6f6258;
  font-size: 12px;
}
.message-content-actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
}
.message-delete-all {
  background: #fff8f5;
  border: 1px solid #d8b9b4;
  border-radius: 7px;
  color: #8f2d24;
  font-size: 12px;
  font-weight: 900;
  min-height: 34px;
  padding: 0 12px;
  white-space: nowrap;
}
.message-delete-all:not(:disabled):hover {
  background: #fff0eb;
  border-color: #bd8178;
}
.message-delete-all:disabled {
  cursor: default;
  opacity: .45;
}
.message-feed-list {
  align-content: start;
  display: grid;
  gap: 10px;
  overflow: auto;
  padding: 12px 2px 2px;
}
.support-service-page {
  background: #fff;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}
.support-service-header {
  align-items: center;
  border-bottom: 1px solid rgba(38, 54, 45, .1);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  min-height: 82px;
  padding: 14px 22px;
}
.support-service-identity {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}
.support-service-identity > div {
  display: grid;
  gap: 1px;
  min-width: 0;
}
.support-service-identity > div > span {
  color: #8f1419;
  font-size: 11px;
  font-weight: 950;
}
.support-service-identity strong {
  color: #18201d;
  font-size: 19px;
  line-height: 1.25;
}
.support-service-identity small {
  color: #6f6258;
  font-size: 12px;
}
.support-service-header > button {
  background: #18382f;
  border: 0;
  border-radius: 8px;
  color: #fff;
  font-size: 13px;
  font-weight: 950;
  min-height: 38px;
  padding: 0 15px;
}
.support-history-strip {
  align-items: center;
  background: #f8f7f3;
  border-bottom: 1px solid rgba(38, 54, 45, .1);
  display: grid;
  gap: 14px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 10px 22px;
}
.support-history-title {
  display: grid;
  gap: 1px;
  min-width: 64px;
}
.support-history-title strong { color: #18201d; font-size: 13px; }
.support-history-title span { color: #786c63; font-size: 11px; }
.support-side {
  border-right: 1px solid rgba(38, 54, 45, .1);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  min-width: 0;
  padding-right: 12px;
}
.support-side-head {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 10px;
}
.support-side-head strong { display: block; font-size: 17px; }
.support-side-head small { color: #6f6258; font-size: 12px; }
.support-side-head button,
.support-thread-row.active {
  background: #18382f;
  color: #fff;
}
.support-side-head button {
  border: 0;
  border-radius: 8px;
  font-weight: 950;
  min-height: 34px;
  padding: 0 12px;
}
.support-thread-list {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px;
  scrollbar-width: thin;
}
.support-thread-row {
  background: #fff;
  border: 1px solid rgba(38, 54, 45, .12);
  border-radius: 6px;
  display: grid;
  flex: 0 0 230px;
  gap: 2px 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  padding: 8px 10px;
  text-align: left;
}
.support-thread-row span {
  color: #6f4a2f;
  font-size: 11px;
  font-weight: 950;
}
.support-thread-row strong {
  color: #211714;
  font-size: 13px;
  grid-column: 1 / -1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.support-thread-row small {
  color: #786c63;
  font-size: 11px;
  grid-column: 2;
  grid-row: 1;
}
.support-thread-row.unread { border-left: 3px solid #8f1419; }
.support-thread-row.active {
  background: #eaf1ec;
  border-color: #9db5a8;
  box-shadow: none;
  color: #18201d;
}
.support-thread-row.active span,
.support-thread-row.active small { color: #4f675c; }
.support-chat-panel {
  box-sizing: border-box;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  height: 100%;
  margin: 0 auto;
  max-width: 900px;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  padding: 18px 28px 20px;
  width: 100%;
}
.support-compose-intro {
  border-bottom: 1px solid rgba(38, 54, 45, .1);
  display: grid;
  gap: 5px;
  padding: 2px 0 18px;
}
.support-compose-intro span,
.support-conversation-head span {
  color: #8f1419;
  font-size: 11px;
  font-weight: 950;
}
.support-compose-intro strong,
.support-conversation-head strong {
  color: #18201d;
  font-size: 22px;
  line-height: 1.25;
}
.support-compose-intro p,
.support-conversation-head p {
  color: #6f6258;
  font-size: 13px;
  line-height: 1.55;
  margin: 0;
}
.support-conversation-head {
  align-items: start;
  border-bottom: 1px solid rgba(38, 54, 45, .1);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 2px 0 18px;
}
.support-conversation-head > div { display: grid; gap: 4px; min-width: 0; }
.support-conversation-head em {
  background: #eaf1ec;
  border-radius: 999px;
  color: #18382f;
  flex: 0 0 auto;
  font-size: 12px;
  font-style: normal;
  font-weight: 950;
  padding: 5px 9px;
}
.support-chat-head {
  border-bottom: 1px solid rgba(38, 54, 45, .1);
  display: grid;
  gap: 5px;
  padding-bottom: 12px;
}
.support-chat-head.detail {
  grid-template-columns: auto minmax(0, 1fr);
}
.support-chat-head.detail .text-button {
  grid-row: 1 / 4;
  align-self: start;
}
.support-chat-head span {
  color: #8f1419;
  font-size: 12px;
  font-weight: 950;
}
.support-chat-head strong {
  color: #211714;
  font-size: 20px;
  line-height: 1.25;
}
.support-chat-head p {
  color: #6f6258;
  line-height: 1.55;
  margin: 0;
}
.support-chat-panel .assistant-quick-actions {
  padding: 12px 0 0;
}
.support-chat-panel .assistant-quick-actions button.active {
  background: #18382f;
  color: #fff;
}
.support-submit-panel.page-compose {
  align-self: start;
  margin-top: 20px;
}
.support-submit-panel.page-compose,
.support-reply-panel {
  background: #fff;
  border: 1px solid rgba(38, 54, 45, .12);
  border-radius: 8px;
  padding: 18px;
}
.support-form-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr 1fr;
}
.support-form-grid label {
  color: #453a33;
  display: grid;
  font-size: 12px;
  font-weight: 900;
  gap: 7px;
}
.support-form-grid label.wide { grid-column: 1 / -1; }
.support-form-grid select,
.support-form-grid textarea,
.support-form-grid input[type="file"] {
  background: #fff;
  border: 1px solid #d8d6cf;
  border-radius: 6px;
  color: #211714;
  font: inherit;
  width: 100%;
}
.support-form-grid select { min-height: 42px; padding: 0 10px; }
.support-form-grid textarea { line-height: 1.55; min-height: 148px; padding: 11px; resize: vertical; }
.support-form-grid input[type="file"] { min-height: 42px; padding: 6px; }
.support-form-grid input[type="file"]::file-selector-button {
  background: #eef3ef;
  border: 0;
  border-radius: 5px;
  color: #18382f;
  font-weight: 950;
  margin-right: 9px;
  min-height: 28px;
  padding: 0 10px;
}
.support-form-actions {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-top: 15px;
}
.support-form-actions small { color: #786c63; font-size: 12px; }
.support-form-actions .primary-button { min-width: 128px; }
.support-bubble-list.page-thread {
  align-content: start;
  display: grid;
  gap: 12px;
  min-height: 0;
  overflow-y: auto;
  padding: 18px 4px 14px;
}
.assistant-welcome-thread {
  align-items: end;
}
.assistant-welcome-thread .support-bubble {
  max-width: min(560px, 88%);
}
.support-bubble.admin p,
.support-bubble.admin span { color: #fff; }
.support-reply-panel {
  align-items: center;
  background: #fff;
  border: 1px solid #d9ded9;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(30, 48, 41, .08);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 0;
  padding: 10px;
  position: static;
}
.support-reply-panel textarea {
  background: #f6f7f4;
  border: 1px solid transparent;
  border-radius: 6px;
  line-height: 1.5;
  max-height: 120px;
  min-height: 54px;
  padding: 10px 12px;
  resize: none;
}
.support-reply-panel textarea:focus {
  background: #fff;
  border-color: #8ca89b;
  outline: 0;
}
.support-composer-actions {
  align-items: center;
  display: flex;
  gap: 8px;
}
.support-image-action {
  align-items: center;
  background: #eef3ef;
  border: 1px solid #dbe5de;
  border-radius: 6px;
  color: #18382f;
  cursor: pointer;
  display: flex;
  font-size: 12px;
  font-weight: 950;
  justify-content: center;
  max-width: 150px;
  min-height: 42px;
  min-width: 86px;
  padding: 0 12px;
}
.support-image-action:hover { background: #e4eee7; }
.support-image-action input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}
.support-image-action span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.support-reply-panel .primary-button {
  min-height: 42px;
  min-width: 88px;
}
@media (max-width: 760px) {
  .message-workspace,
  .support-workspace {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
  }
  .message-inbox-panel {
    border-bottom: 1px solid rgba(38, 54, 45, .12);
    border-right: 0;
    grid-auto-flow: row;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-x: visible;
    padding: 8px;
    scrollbar-width: none;
  }
  .message-inbox-panel::-webkit-scrollbar { display: none; }
  .message-inbox-row {
    gap: 8px;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    min-height: 54px;
    padding: 8px;
  }
  .message-inbox-row.assistant {
    grid-column: 1 / -1;
  }
  .message-inbox-row > span:not(.assistant-avatar),
  .message-inbox-row .assistant-avatar {
    height: 32px;
    width: 32px;
  }
  .message-inbox-row small { display: none; }
  .support-side {
    border-bottom: 1px solid rgba(38, 54, 45, .1);
    border-right: 0;
    max-height: 260px;
    padding: 0 0 12px;
  }
  .support-service-page { min-height: calc(100dvh - 156px); }
  .support-service-header { min-height: 72px; padding: 11px 12px; }
  .support-service-header > button { min-height: 36px; padding: 0 12px; }
  .support-history-strip {
    align-items: stretch;
    gap: 7px;
    grid-template-columns: 1fr;
    padding: 9px 10px;
  }
  .support-history-title { align-items: center; display: flex; justify-content: space-between; }
  .support-thread-row { flex-basis: 210px; }
  .message-workspace.support-active {
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .message-content-panel.support-mode,
  .support-service-page {
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .support-chat-panel {
    height: auto;
    min-height: 0;
    overflow: visible;
    padding: 12px 10px 14px;
  }
  .support-bubble-list.page-thread {
    max-height: none;
    overflow: visible;
  }
  .support-form-grid { grid-template-columns: 1fr; }
  .support-form-grid label.wide { grid-column: auto; }
  .support-form-actions { align-items: stretch; flex-direction: column; }
  .support-form-actions .primary-button { width: 100%; }
  .support-reply-panel { grid-template-columns: 1fr; }
  .support-reply-panel textarea { grid-column: auto; }
  .support-composer-actions { display: grid; grid-template-columns: minmax(0, 1fr) 88px; }
  .support-image-action { max-width: none; width: 100%; }
  .message-content-panel { padding: 10px; }
  .message-content-head { align-items: flex-start; }
  .message-content-actions { align-items: flex-end; flex-direction: column; gap: 6px; }
  .message-delete-all { min-height: 32px; }
  .message-workspace {
    align-content: start;
    min-height: calc(100dvh - 156px);
  }
  .messages-heading { margin-bottom: 8px; }
}

@media (max-width: 380px) {
  .message-inbox-row {
    gap: 6px;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    padding: 7px 6px;
  }
  .message-inbox-row > span:not(.assistant-avatar),
  .message-inbox-row .assistant-avatar {
    height: 28px;
    width: 28px;
  }
  .message-inbox-row strong { font-size: 14px; }
  .message-inbox-row em,
  .message-inbox-row b {
    font-size: 11px;
    min-width: 20px;
    padding: 2px 5px;
  }
}

@media (min-width: 900px) {
  body:not(.capacitor-native) .bottom-nav {
    backdrop-filter: blur(16px);
    background: rgba(255, 253, 248, .96);
    border: 1px solid rgba(221, 216, 205, .96);
    bottom: 12px;
    box-shadow: 0 16px 38px rgba(37, 31, 24, .16);
    gap: 4px;
    padding: 4px;
    position: fixed;
    top: auto;
    width: min(520px, calc(100% - 24px));
  }
  body:not(.capacitor-native) .tab-button {
    align-items: center;
    border-radius: 8px;
    display: grid;
    font-size: 12px;
    gap: 2px;
    justify-content: center;
    min-height: 54px;
  }
  body:not(.capacitor-native) .tab-button span { font-size: 18px; }
  body:not(.capacitor-native) #messageButton { visibility: visible; }
  body:not(.capacitor-native) .app-shell { padding-bottom: 120px; }
}
/* v120 search results polish */
.search-overview-card {
  align-items: stretch;
  background: #fffdf8;
  border: 1px solid var(--app-line, #e7e1d6);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(36,31,24,.055);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr);
  padding: 12px;
}
.search-overview-copy {
  align-content: center;
  display: grid;
  gap: 6px;
  min-width: 0;
}
.search-overview-copy span {
  color: var(--app-cigar, #7a5230);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
}
.search-overview-copy strong {
  color: var(--app-ink, #18201d);
  font-size: 19px;
  line-height: 1.22;
  overflow-wrap: anywhere;
}
.search-overview-copy p {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  line-height: 1.48;
  margin: 0;
}
.search-overview-stats {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.search-overview-stats article {
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px;
}
.search-overview-stats span {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.search-overview-stats strong {
  color: var(--app-leaf, #18382f);
  font-size: 22px;
  line-height: 1;
}
.quote-head.quote-head-polished {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr);
}
.quote-promotion-summary {
  align-items: center;
  background: #fffaf0;
  border: 1px solid #e6d4ae;
  border-left: 3px solid #bd9450;
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr);
  padding: 11px 12px;
}
.quote-promotion-summary-copy { display: grid; gap: 3px; }
.quote-promotion-summary-copy > span { color: #8b6332; font-size: 11px; font-weight: 900; }
.quote-promotion-summary-copy > strong { color: var(--app-ink, #18201d); font-size: 15px; line-height: 1.3; }
.quote-promotion-summary-copy > small,
.quote-promotion-items > small { color: var(--app-muted, #68736f); font-size: 11px; font-weight: 800; line-height: 1.4; }
.quote-promotion-items { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.quote-promotion-item { align-items: center; background: #fff; border: 1px solid #e3d4b7; border-radius: 7px; display: flex; gap: 7px; min-height: 36px; padding: 4px 5px 4px 9px; }
.quote-promotion-item span { color: #5e4a34; font-size: 12px; font-weight: 900; }
.quote-promotion-item code { color: #77501e; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; font-weight: 950; }
.quote-promotion-item button,
.product-promotion-code button { background: #18382f; border: 0; border-radius: 6px; color: #fff; cursor: pointer; font-size: 12px; font-weight: 900; min-height: 28px; padding: 0 9px; }
.comparison-result-group { display: grid; gap: 10px; margin-top: 14px; }
.comparison-result-group + .comparison-result-group { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(24,56,47,.14); }
.comparison-result-group > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.comparison-result-group > header div { display: grid; gap: 2px; }
.comparison-result-group > header span { color: var(--app-cigar, #9a633e); font-size: 10px; font-weight: 900; }
.comparison-result-group > header strong { color: var(--app-ink, #18201d); font-size: 17px; }
.comparison-result-group > header small { color: var(--app-muted, #68736f); font-size: 11px; font-weight: 800; }
.comparison-result-group.related > header span { color: #7a7469; }
.comparison-group-empty { min-height: 72px; display: grid; place-items: center; padding: 15px; border: 1px dashed rgba(24,56,47,.2); border-radius: 7px; color: var(--app-muted, #68736f); font-size: 12px; text-align: center; }
.quote-card.quote-row.quote-result-card {
  border-left-color: var(--app-leaf, #18382f);
  contain-intrinsic-size: auto 108px;
  min-height: 100px;
}
.quote-card.quote-row.quote-result-card.watched {
  border-color: rgba(24,56,47,.24);
  box-shadow: 0 10px 24px rgba(24,56,47,.07);
}
.quote-card.quote-row.quote-result-card.price-review {
  border-left-color: #b88d4f;
}
.quote-result-card .quote-card-top b.quote-trust-badge {
  background: #eef5ef;
  border-color: #d8e4d8;
  color: var(--app-leaf, #18382f);
}
.quote-result-card .quote-card-top b.quote-review-badge {
  background: #fff5df;
  border-color: #ecd5aa;
  color: #8b6332;
}
.quote-result-card .quote-row-meta {
  gap: 5px 9px;
}
.quote-result-card .quote-row-meta span {
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 999px;
  padding: 4px 7px;
}
.quote-result-card .quote-actions .primary-button:disabled {
  background: #eef0eb;
  border-color: #d8ddd5;
  color: #737a75;
  cursor: not-allowed;
}
.quote-result-card .quote-actions a,
.quote-result-card .quote-actions button {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  text-decoration: none;
}
.quote-skeleton-grid { gap: 9px; }
.quote-skeleton {
  animation: quoteSkeletonPulse 1.2s ease-in-out infinite;
  border-left-color: #e2ded4;
  grid-template-columns: 64px minmax(0, 1fr) 90px;
  opacity: .82;
}
.quote-skeleton div,
.quote-skeleton section span,
.quote-skeleton section strong,
.quote-skeleton section p,
.quote-skeleton aside {
  background: linear-gradient(90deg, #f0ece3, #faf8f1, #f0ece3);
  border-radius: 7px;
  min-height: 14px;
}
.quote-skeleton div { height: 64px; }
.quote-skeleton section { display: grid; gap: 8px; }
.quote-skeleton section strong { min-height: 18px; width: 72%; }
.quote-skeleton section p { width: 58%; }
.quote-skeleton aside { height: 42px; }
@keyframes quoteSkeletonPulse {
  0%, 100% { opacity: .72; }
  50% { opacity: 1; }
}
@media (max-width: 719px) {
  .search-overview-card { grid-template-columns: 1fr; }
  .quote-head.quote-head-polished { align-items: stretch; grid-template-columns: 1fr; }
  .quote-result-card .quote-row-meta span { border-radius: 8px; }
}
@media (max-width: 520px) {
  .search-overview-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .quote-card.quote-row.quote-result-card { grid-template-columns: 56px minmax(0, 1fr); }
  .quote-result-card .quote-card-top { gap: 5px; }
  .quote-result-card .quote-row-meta { display: grid; grid-template-columns: 1fr 1fr; }
  .quote-result-card .quote-row-meta span { min-width: 0; }
  .quote-skeleton { grid-template-columns: 56px minmax(0, 1fr); }
  .quote-skeleton aside { display: none; }
  .comparison-result-group > header { align-items: flex-start; flex-direction: column; gap: 4px; }
}
@media (max-width: 390px) {
  .search-overview-stats { grid-template-columns: 1fr; }
  .quote-result-card .quote-row-meta { grid-template-columns: 1fr; }
}
/* v121 product decision drawer */
.drawer .drawer-panel {
  overscroll-behavior: contain;
}
.decision-detail {
  color: var(--app-ink, #18201d);
  display: grid;
  gap: 13px;
  padding-bottom: 2px;
}
.decision-detail * { min-width: 0; }
.decision-hero {
  background: #fffdf8;
  border: 1px solid var(--app-line, #e7e1d6);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: 168px minmax(0, 1fr);
  padding: 12px;
}
.decision-hero-image {
  align-items: center;
  background: #f4f0e8;
  border: 1px solid #e5ded2;
  border-radius: 8px;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.decision-hero-image img {
  aspect-ratio: 1;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.decision-hero-image .image-fallback { aspect-ratio: auto; border-radius: 0; height: 100%; }
.decision-image-empty {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  font-weight: 950;
}
.decision-hero-copy {
  align-content: start;
  display: grid;
  gap: 10px;
}
.decision-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.decision-meta span {
  background: #eef5ef;
  border: 1px solid #d8e4d8;
  border-radius: 999px;
  color: var(--app-leaf, #18382f);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  padding: 6px 8px;
  white-space: nowrap;
}
.decision-detail .detail-title {
  color: var(--app-ink, #18201d);
  font-size: 22px;
  line-height: 1.18;
  margin: 0;
}
.decision-price-card {
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  display: grid;
  gap: 6px;
  padding: 11px;
}
.decision-price-card > span,
.decision-summary-grid span,
.decision-snapshot span,
.decision-offer span,
.decision-calc-card .calc-form label,
.decision-alert-card .alert-options label {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
}
.decision-price-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.decision-price-values.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.decision-price-values > div { display: grid; gap: 4px; padding: 2px 12px; }
.decision-price-values > div:first-child { padding-left: 0; }
.decision-price-values > div + div { border-left: 1px solid #dce5dc; }
.decision-price-values span { color: var(--app-muted, #68736f); font-size: 10px; font-weight: 900; }
.decision-price-values strong { color: var(--app-ink, #18201d); font-size: 15px; line-height: 1.25; overflow-wrap: anywhere; }
.decision-price-values .primary strong { color: var(--app-leaf, #18382f); font-size: 21px; }
.decision-price-values .primary strong.price-review-text { color: #8b6332; font-size: 16px; }
.decision-price-card p {
  color: var(--app-muted, #68736f);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.42;
  margin: 0;
  overflow-wrap: anywhere;
}
.decision-summary-grid,
.decision-snapshot {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.decision-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.decision-summary-grid div,
.decision-snapshot div {
  background: #fff;
  border: 1px solid #e7e1d6;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  padding: 10px;
}
.decision-summary-grid strong {
  color: var(--app-leaf, #18382f);
  font-size: 18px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.decision-summary-grid small,
.decision-snapshot strong {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.decision-snapshot {
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  padding: 9px;
}
.decision-snapshot div { background: #fffdf8; border-color: #ede7dc; }
.decision-snapshot strong { color: var(--app-ink, #18201d); font-size: 12px; }
.decision-section {
  background: #fff;
  border: 1px solid var(--app-line, #e7e1d6);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 12px;
}
.decision-section .section-title-row h3 {
  color: var(--app-ink, #18201d);
  font-size: 16px;
  line-height: 1.2;
}
.decision-offers {
  display: grid;
  gap: 7px;
}
.decision-offer {
  align-items: center;
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-left: 3px solid var(--app-leaf, #18382f);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 58px;
  padding: 9px 10px;
}
.decision-offer.current { background: #eef5ef; border-color: rgba(24,56,47,.26); }
.decision-offer.unavailable { opacity: .72; }
.decision-offer.price-review { border-left-color: #b88d4f; }
.decision-offer strong {
  color: var(--app-ink, #18201d);
  display: block;
  font-size: 14px;
  line-height: 1.22;
  margin-top: 2px;
  overflow-wrap: anywhere;
}
.decision-offer small {
  color: var(--app-muted, #68736f);
  display: block;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
  margin-top: 2px;
}
.decision-offer a {
  align-items: center;
  background: #fff;
  border: 1px solid #ded8cc;
  border-radius: 8px;
  color: var(--app-ink, #18201d);
  display: inline-flex;
  font-size: 12px;
  font-weight: 950;
  justify-content: center;
  min-height: 34px;
  padding: 0 10px;
  text-decoration: none;
  white-space: nowrap;
}
.decision-empty {
  background: #fffdf8;
  border: 1px dashed #d8d0c2;
  border-radius: 8px;
  color: var(--app-muted, #68736f);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.45;
  padding: 12px;
}
.decision-calc-card,
.decision-alert-card { background: #fffdf8; }
.decision-calc-card .shipping-note,
.decision-alert-card .shipping-note {
  background: #f8faf6;
  border-color: #e1e8df;
  color: var(--app-muted, #68736f);
}
.decision-calc-card .calc-form,
.decision-alert-card .alert-options {
  gap: 8px;
}
.decision-calc-card .calc-form input,
.decision-alert-card .alert-options input {
  border-color: #ded8cc;
  box-shadow: none;
}
.decision-calc-card .calc-results {
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.decision-calc-card .calc-results div {
  background: #fff;
  border-color: #e7e1d6;
  min-height: 64px;
}
.decision-calc-card .calc-results strong {
  color: var(--app-leaf, #18382f);
  overflow-wrap: anywhere;
}

.decision-calc-summary {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.decision-calc-summary div {
  background: #fff;
  border: 1px solid #e7e1d6;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  min-height: 56px;
  padding: 9px;
}

.decision-calc-summary span {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
}

.decision-calc-summary strong {
  color: var(--app-leaf, #18382f);
  font-size: 15px;
  overflow-wrap: anywhere;
}

.decision-calc-card.collapsed-calc .calc-form,
.decision-calc-card.collapsed-calc .calc-results {
  display: none;
}

.decision-calc-card:not(.collapsed-calc) .decision-calc-summary {
  display: none;
}

.decision-calc-card .section-title-row .text-button {
  font-size: 12px;
  white-space: nowrap;
}
.decision-alert-card .primary-button { justify-self: start; min-width: 132px; }
.decision-variant {
  gap: 10px;
  min-height: 54px;
}
.decision-variant span {
  display: grid;
  gap: 3px;
  line-height: 1.25;
  text-align: left;
}
.decision-variant small {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 850;
}
.decision-variant strong {
  color: var(--app-ink, #18201d);
  font-size: 13px;
  white-space: nowrap;
}
.decision-specification-section { background: #fbfcf8; border: 1px solid #e1e8df; border-radius: 8px; display: grid; gap: 9px; padding: 12px; }
.decision-specification-section header { display: grid; gap: 3px; }
.decision-specification-section header span { color: var(--app-cigar, #7b4a2d); font-size: 11px; font-weight: 900; }
.decision-specification-section header h3 { color: var(--app-ink, #18201d); font-size: 15px; line-height: 1.3; margin: 0; }
.decision-actions {
  backdrop-filter: blur(12px);
  grid-template-columns: 1fr 1fr;
}
.decision-actions .secondary-action,
.decision-actions .primary-button {
  align-items: center;
  display: inline-flex;
  font-size: 14px;
  justify-content: center;
  line-height: 1;
  min-height: 46px;
  padding: 0 14px;
  text-align: center;
  text-decoration: none;
  width: 100%;
}
.decision-actions .secondary-action { background: #fffdf8; border: 1px solid #d8d2c7; color: var(--app-leaf, #18382f); }
@media (min-width: 720px) {
  .drawer:not(.notice-mode) .drawer-panel { width: min(680px, 54vw); }
}
@media (max-width: 719px) {
  .decision-hero { grid-template-columns: 132px minmax(0, 1fr); }
  .decision-detail .detail-title { font-size: 20px; }
  .decision-summary-grid,
  .decision-snapshot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-calc-card .calc-form,
  .decision-alert-card .alert-options { grid-template-columns: 1fr 1fr; }
  .decision-calc-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .drawer:not(.notice-mode) .drawer-panel { max-height: 96vh; min-height: 84vh; padding: 12px; }
  .decision-detail { gap: 10px; }
  .decision-hero { grid-template-columns: 1fr; padding: 10px; }
  .decision-hero-image img { aspect-ratio: 1.35; }
  .decision-price-values.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-price-values.three .primary { border-bottom: 1px solid #dce5dc; grid-column: 1 / -1; padding: 2px 0 10px; }
  .decision-price-values.three .primary + div { border-left: 0; padding: 10px 10px 2px 0; }
  .decision-price-values.three > div:last-child { padding: 10px 0 2px 10px; }
  .decision-summary-grid { grid-template-columns: 1fr 1fr; }
  .decision-snapshot { grid-template-columns: 1fr 1fr; }
  .decision-section { padding: 10px; }
  .decision-calc-card .calc-form,
  .decision-alert-card .alert-options,
  .decision-calc-card .calc-results,
  .decision-calc-summary { grid-template-columns: 1fr; }
  .decision-actions { margin-left: -12px; margin-right: -12px; padding-left: 12px; padding-right: 12px; }
}
@media (max-width: 390px) {
  .decision-summary-grid,
  .decision-snapshot { grid-template-columns: 1fr; }
  .decision-offer { grid-template-columns: 1fr; }
  .decision-offer a { width: 100%; }
}
/* v122 product list to decision flow */
.product-card.product-decision-card {
  content-visibility: auto;
  contain-intrinsic-size: auto 154px;
  border-color: #e7e1d6;
  box-shadow: none;
}
.product-card.product-decision-card.watched {
  border-color: rgba(24,56,47,.25);
  box-shadow: none;
}
.product-card.product-decision-card.price-review { border-left: 3px solid #b88d4f; }
.product-card.product-decision-card.unavailable { opacity: .76; }

.reminder-rights-badge {
  border: 1px solid rgba(80, 64, 48, .18);
  border-radius: 999px;
  color: #4b3525;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  padding: 5px 7px;
  white-space: nowrap;
}

.reminder-rights-badge.vip { background: #edf8f2; color: #137a55; }
.reminder-rights-badge.svip { background: #fff4df; color: #9a5b00; }
.reminder-rights-badge.active { background: #eaf7f4; color: #0f6b58; }
.reminder-rights-badge.pending { background: #f3f4f6; color: #64748b; }
.reminder-rights-badge.saved { background: #f7efe8; color: #79523b; }
.drawer-reminder-status.vip,
.drawer-reminder-status.svip,
.drawer-reminder-status.active,
.drawer-reminder-status.saved {
  font-weight: 950;
}
.product-decision-card .product-hit {
  cursor: pointer;
  transition: background .16s ease;
}
.product-decision-card .product-hit:hover { background: #fffdf8; }
.product-decision-card .image-wrap {
  background: #f1eee6;
}
.product-decision-card .source-badge,
.product-decision-card .signal-badge {
  max-width: calc(100% - 14px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-decision-card.watched .signal-badge {
  background: #18382f;
  color: #fff;
}
.product-decision-card .signal-badge.reminder-signal {
  border: 1px solid rgba(80, 64, 48, .15);
  max-width: calc(100% - 18px);
}
.product-decision-card .signal-badge.reminder-signal.vip {
  background: #edf8f2;
  color: #137a55;
}
.product-decision-card .signal-badge.reminder-signal.svip {
  background: #fff4df;
  color: #9a5b00;
}
.product-decision-card .signal-badge.reminder-signal.active {
  background: #eaf7f4;
  color: #0f6b58;
}
.product-decision-card .signal-badge.reminder-signal.saved {
  background: #f7efe8;
  color: #79523b;
}
.product-decision-card.price-review .signal-badge:not(.reminder-signal) {
  background: #fff5df;
  border: 1px solid #ecd5aa;
  color: #8b6332;
}
.product-decision-card .product-copy h3 {
  color: var(--app-ink, #18201d);
}
.product-decision-card .price-review-text {
  color: #8b6332;
}
.product-decision-card .intel-price.review {
  background: #fff5df;
  color: #8b6332;
}
.product-decision-card .card-meta span {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.product-decision-card .card-actions button,
.product-decision-card .card-actions a {
  min-width: 0;
  white-space: nowrap;
}
.quote-card.quote-row.quote-decision-row {
  cursor: pointer;
  grid-template-columns: minmax(0, 1fr) 104px;
  padding: 0;
}
.quote-decision-row .quote-open-hit {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  display: grid;
  gap: 11px;
  grid-template-columns: 64px minmax(0, 1fr);
  min-height: 100px;
  padding: 10px;
  text-align: left;
}
.quote-decision-row .quote-open-hit:hover {
  background: #fffdf8;
}
.quote-decision-row .quote-actions {
  align-self: stretch;
  background: #fbfcf8;
  border-left: 1px solid #edf1eb;
  gap: 6px;
  grid-template-columns: 1fr;
  padding: 9px;
}
.quote-decision-row .quote-actions button,
.quote-decision-row .quote-actions a {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  text-decoration: none;
}
.quote-decision-row .quote-actions .primary-button { background: var(--home-brand); border: 1px solid var(--home-brand); color: #fff; }
.quote-decision-row .quote-actions .quote-site-link { background: transparent; border: 0; color: var(--home-brand); font-size: 12px; font-weight: 900; min-height: 32px; }
.quote-decision-row .quote-image .image-fallback { color: #69736e; font-size: 10px; line-height: 1.2; padding: 5px; text-align: center; }
.quote-result-card .quote-card-top b.quote-trust-badge,
.quote-result-card .quote-card-top b.quote-review-badge {
  white-space: nowrap;
}
.decision-price-card .price-review-text,
.decision-summary-grid .price-review-text {
  color: #8b6332;
}
@media (max-width: 640px) {
  .quote-card.quote-row.quote-decision-row {
    grid-template-columns: 1fr;
  }
  .quote-decision-row .quote-card-top {
    align-items: center;
    flex-wrap: wrap;
  }
  .quote-decision-row .quote-card-top .quote-brand-line {
    flex-basis: 100%;
    line-height: 1.25;
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
  }
  .quote-decision-row .quote-open-hit {
    grid-template-columns: 56px minmax(0, 1fr);
    min-height: 0;
    padding: 10px;
  }
  .quote-decision-row .quote-actions {
    border-left: 0;
    border-top: 1px solid #edf1eb;
    grid-template-columns: 1fr auto;
  }
  .quote-decision-row .quote-actions button,
  .quote-decision-row .quote-actions a {
    min-height: 36px;
  }
}
@media (max-width: 420px) {
  .product-decision-card .card-actions {
    grid-template-columns: minmax(0, 1fr) 54px;
  }
}
/* v123 search controls polish */
#productsView .search-panel {
  position: relative;
}
#productsView .search-submit-row {
  align-items: stretch;
  --search-button-width: 86px;
  gap: 6px;
  grid-template-columns: minmax(0, 1fr) var(--search-button-width);
  position: relative;
}
#productsView .search-submit-row input { min-width: 0; padding-right: 48px; }
#productsView .search-submit-row input::-webkit-search-cancel-button { display: none; }
#productsView .search-submit-row input.has-value {
  border-color: rgba(24,56,47,.36);
  box-shadow: 0 0 0 3px rgba(24,56,47,.07);
}
#productsView .search-submit-row .clear-search-button {
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: var(--app-muted, #68736f);
  font-size: 22px;
  font-weight: 950;
  min-height: 44px;
  min-width: 42px;
  padding: 0;
  position: absolute;
  right: calc(var(--search-button-width) + 6px);
  top: 0;
  width: 42px;
  z-index: 2;
}
#productsView .clear-search-button[hidden] {
  display: none;
}
#productsView #searchButton:disabled {
  cursor: default;
  opacity: .72;
}
#productsView #searchButton { min-width: 0; white-space: nowrap; width: 100%; }
#productsView.searching #searchButton {
  background: #273a34;
  color: #fff;
}
#productsView.searching .search-panel::after {
  background: linear-gradient(90deg, rgba(24,56,47,.12), rgba(184,141,79,.34), rgba(24,56,47,.12));
  border-radius: 999px;
  bottom: -1px;
  content: "";
  height: 2px;
  left: 14px;
  position: absolute;
  right: 14px;
}
#productsView .filter-row select.active-filter {
  border-color: rgba(24,56,47,.38);
  color: var(--app-leaf, #18382f);
  font-weight: 900;
}
#productsView .quick-filters .chip {
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
#productsView .quick-filters .chip:active {
  transform: translateY(1px);
}
@media (max-width: 719px) {
  #productsView .search-submit-row {
    --search-button-width: 68px;
    grid-template-columns: minmax(0, 1fr) var(--search-button-width) !important;
  }
  #productsView .clear-search-button {
    min-width: 0;
    padding: 0;
  }
  #productsView .search-submit-row button {
    font-size: 12px;
  }
}

/* Brand and Chinese-name presentation. */
.brand-click {
  background: transparent;
  border: 0;
  color: var(--app-leaf, #18382f);
  cursor: pointer;
  font: inherit;
  font-weight: 950;
  padding: 0;
  text-align: left;
  text-decoration: underline;
  text-decoration-color: rgba(24,56,47,.26);
  text-underline-offset: 3px;
}
.quote-brand-line .brand-click::before {
  content: none;
}
.quote-brand-line,
.vendor {
  overflow-wrap: anywhere;
}
.quote-title-zh,
.product-title-zh,
.detail-title-zh {
  color: var(--app-muted, #68736f);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.35;
  margin: -2px 0 0;
  overflow-wrap: anywhere;
}
.product-title-zh {
  margin-top: -3px;
}
.decision-brand-block {
  align-items: center;
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 8px;
  display: grid;
  gap: 5px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 9px 10px;
}
.decision-brand-block span {
  color: var(--app-muted, #68736f);
  font-size: 11px;
  font-weight: 900;
}
.decision-brand-block button {
  background: transparent;
  border: 0;
  color: var(--app-leaf, #18382f);
  cursor: pointer;
  font: inherit;
  font-weight: 950;
  min-width: 0;
  overflow-wrap: anywhere;
  padding: 0;
  text-align: left;
}
@media (min-width: 720px) and (max-width: 899px) {
  body:not(.capacitor-native) .bottom-nav {
    display: grid;
  }
  body:not(.capacitor-native) .app-shell {
    padding-bottom: 104px;
  }
}
body.membership-checkout-active .bottom-nav {
  display: none;
}
body.membership-checkout-active .app-shell {
  padding-bottom: max(18px, env(safe-area-inset-bottom));
}

/* Community P0 */
.desktop-primary-nav { display: none; }
.bottom-nav { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.bottom-nav { transition: opacity .18s ease, transform .22s ease; }
body.community-detail-active .bottom-nav { opacity: 0; pointer-events: none; transform: translate(-50%, calc(100% + 40px)); }
body.community-composer-active .bottom-nav { opacity: 0; pointer-events: none; transform: translate(-50%, calc(100% + 40px)); }
.community-view { color: var(--app-ink, #18201d); max-width: 980px; }
.community-header {
  align-items: end;
  border-bottom: 1px solid var(--app-line, #e7e1d6);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 14px 2px 18px;
}
.community-header h1 { font-size: 30px; letter-spacing: 0; line-height: 1.1; margin: 4px 0 0; }
.community-header-actions, .community-composer-actions { align-items: center; display: flex; gap: 8px; }
.community-command {
  border: 1px solid transparent;
  border-radius: 7px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  min-height: 42px;
  padding: 0 16px;
}
.community-command.primary { background: #18382f; color: #fff; }
.community-command.secondary { background: #fffdf8; border-color: #dcd5c8; color: #24322e; }
.community-command:disabled { cursor: default; opacity: .55; }
.community-tabs { background: var(--app-bg, #faf8f3); border-bottom: 1px solid #e7e1d6; display: flex; gap: 22px; isolation: isolate; min-height: 44px; overflow-x: auto; overscroll-behavior-x: contain; position: sticky; scrollbar-width: none; top: 0; z-index: 12; }
.community-tabs::-webkit-scrollbar { display: none; }
.community-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: #68736f;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 900;
  padding: 0 2px;
}
.community-tabs button.active { border-bottom-color: #8b3f36; color: #18201d; }
.community-tabs button:focus-visible { outline: 2px solid #17483d; outline-offset: -2px; }
.community-official-center {
  border-bottom: 1px solid #e7e1d6;
  display: none;
  gap: 14px;
  padding: 19px 0 18px;
}
.community-official-center-head { align-items: center; display: flex; gap: 16px; justify-content: space-between; }
.community-official-center-head > div { display: grid; gap: 3px; min-width: 0; }
.community-official-center-head h2 { font-size: 22px; line-height: 1.2; margin: 0; }
.community-official-center-head p { color: #68736f; font-size: 12px; line-height: 1.45; margin: 0; }
.community-official-center-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
.community-official-center-card { background: #fffdf8; border: 1px solid #ded8cc; border-radius: 8px; display: grid; gap: 8px; min-height: 158px; min-width: 0; overflow: hidden; padding: 15px 17px 16px; }
.community-official-center-card.notice { border-top: 3px solid #9b5549; }
.community-official-center-card.activity { border-top: 3px solid #2e6a50; }
.community-official-center-card + .community-official-center-card { border-left: 1px solid #ded8cc; }
.community-official-center-card[data-community-card-action] { cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.community-official-center-card[data-community-card-action]:hover { background: #fff; border-color: #bdc8bf; box-shadow: 0 8px 22px rgba(34, 48, 42, .07); transform: translateY(-1px); }
.community-official-center-card[data-community-card-action]:focus-visible { box-shadow: 0 0 0 3px rgba(139, 63, 54, .14); outline: 2px solid #8b3f36; outline-offset: 2px; }
.community-official-center-card.activity { align-items: stretch; grid-template-columns: minmax(112px, 32%) minmax(0, 1fr); padding: 0; }
.community-official-center-card.activity > img, .community-official-center-media-empty { background: #eef1ed; display: block; height: 100%; min-height: 158px; object-fit: contain; width: 100%; }
.community-official-center-media-empty { align-items: center; color: #6d7c75; display: flex; font-size: 12px; font-weight: 900; justify-content: center; }
.community-official-center-card-copy { display: grid; gap: 8px; min-width: 0; padding: 16px 18px; }
.community-official-center-card-head { align-items: center; display: flex; gap: 8px; justify-content: space-between; }
.community-official-center-card-head span { background: #f5e9e5; border-radius: 999px; color: #8b3f36; font-size: 10px; font-weight: 900; padding: 3px 7px; }
.community-official-center-card.activity .community-official-center-card-head span { background: #eaf3ed; color: #2e6a50; }
.community-official-center-card-head time { color: #7c8682; font-size: 10px; white-space: nowrap; }
.community-official-center-card strong { display: -webkit-box; font-size: 17px; line-height: 1.35; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.community-official-center-card p { color: #65716d; display: -webkit-box; font-size: 12px; line-height: 1.55; margin: 0; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.community-official-center-card.activity p { -webkit-line-clamp: 2; }
.community-official-center-card-facts { align-items: end; display: flex; gap: 10px; justify-content: space-between; min-width: 0; }
.community-official-center-card-facts > span { display: grid; gap: 2px; min-width: 0; }
.community-official-center-card-facts small { color: #7b8580; font-size: 10px; font-weight: 850; }
.community-official-center-card-facts b { color: #65716d; font-size: 12px; font-weight: 750; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.community-official-center-card-facts em { border-radius: 999px; flex: 0 0 auto; font-size: 10px; font-style: normal; font-weight: 900; padding: 4px 7px; white-space: nowrap; }
.community-official-center-card-facts em.pending { background: #f2efe7; color: #716957; }
.community-official-center-card-facts em.joined { background: #eaf3ed; color: #2e6a50; }
.community-official-center-card-facts em.rejected { background: #f8e9e7; color: #963e36; }
.community-official-center-action { align-items: center; border-bottom: 1px solid currentColor; color: #17483d; display: inline-flex; font-size: 12px; font-weight: 900; gap: 4px; justify-self: start; padding-bottom: 2px; }
.community-official-center-status { min-height: 18px; }
.community-section-bar { box-sizing: border-box; margin: 0 auto; max-width: 900px; padding: 10px 0; width: 100%; }
.community-section-bar > span { border-left: 1px solid #d9d3c8; font-weight: 850; margin-right: auto; padding-left: 12px; }
.community-notice-heading, .community-my-activities-heading { align-items: end; display: flex; gap: 18px; justify-content: space-between; margin: 0 auto; max-width: 900px; padding: 18px 0 12px; width: 100%; }
.community-notice-heading > div, .community-my-activities-heading > div { display: grid; gap: 3px; min-width: 0; }
.community-notice-heading > div > span, .community-my-activities-heading > div > span { color: #8b3f36; font-size: 11px; font-weight: 900; }
.community-notice-heading h2, .community-my-activities-heading h2 { font-size: 22px; line-height: 1.25; margin: 0; }
.community-notice-heading p, .community-my-activities-heading p { color: #68736f; font-size: 12px; line-height: 1.45; margin: 0; }
.community-notice-list { display: grid; gap: 12px; margin: 0 auto; max-width: 900px; width: 100%; }
.community-notice-card-item { background: #fff; border: 1px solid #e2ddd3; border-radius: 6px; min-width: 0; }
.community-notice-card-item > button { background: transparent; border: 0; color: inherit; cursor: pointer; display: block; padding: 17px 18px 18px; text-align: left; width: 100%; }
.community-notice-card-item > button:hover { background: #fbfaf6; }
.community-notice-card-item > button:focus-visible { outline: 2px solid #17483d; outline-offset: 2px; }
.community-notice-copy { display: grid; gap: 6px; min-width: 0; }
.community-notice-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.community-notice-meta em { color: #8b3f36; font-size: 11px; font-style: normal; font-weight: 900; }
.community-notice-badge { background: #f5efe5; border-radius: 999px; color: #7a6047 !important; padding: 2px 6px; }
.community-notice-meta time { color: #7c8682; font-size: 11px; }
.community-notice-copy strong { font-size: 17px; line-height: 1.4; overflow-wrap: anywhere; }
.community-notice-copy p { color: #65716d; display: -webkit-box; font-size: 13px; line-height: 1.55; margin: 0; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.community-notice-validity { color: #77817d; font-size: 11px; line-height: 1.45; }
.community-notice-link { color: #17483d; font-size: 12px; font-weight: 900; }
.community-notice-detail { margin: 0 auto; max-width: 820px; padding-bottom: 96px; width: 100%; }
.community-notice-detail-card { display: grid; gap: 20px; padding: 20px 0 36px; }
.community-notice-detail-card > header { border-bottom: 1px solid #e7e1d6; display: grid; gap: 8px; padding-bottom: 18px; }
.community-notice-detail-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.community-notice-detail-meta span { color: #8b3f36; font-size: 11px; font-weight: 900; }
.community-notice-detail-meta time { color: #7c8682; font-size: 11px; }
.community-notice-detail-card h2 { font-size: 28px; line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.community-notice-detail-card > header p { color: #5f6c67; font-size: 14px; line-height: 1.65; margin: 0; }
.community-notice-detail-meta .community-notice-badge { color: #7a6047; }
.community-notice-detail-card .community-notice-validity { color: #77817d; font-size: 12px; }
.community-notice-detail-content { color: #26332f; font-size: 15px; line-height: 1.78; }
.community-notice-detail-card > footer { align-items: center; border-top: 1px solid #e7e1d6; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; padding-top: 15px; }
.community-my-activities-filters { background: #f2f0ea; border: 1px solid #e1dbd0; border-radius: 9px; display: grid; gap: 3px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0 auto 16px; max-width: 900px; padding: 3px; width: 100%; }
.community-my-activities-filters button { background: transparent; border: 0; border-radius: 6px; color: #68736f; cursor: pointer; font-size: 12px; font-weight: 900; min-height: 36px; overflow: hidden; padding: 7px 8px; text-overflow: ellipsis; white-space: nowrap; }
.community-my-activities-filters button:hover { color: #17483d; }
.community-my-activities-filters button:focus-visible { outline: 2px solid #17483d; outline-offset: -1px; }
.community-my-activities-filters button.active { background: #fffdf8; color: #17483d; }
.community-my-activities-list { border-top: 1px solid #e7e1d6; display: grid; margin: 0 auto; max-width: 900px; width: 100%; }
.community-my-activity-item { align-items: center; border-bottom: 1px solid #e7e1d6; display: flex; gap: 14px; justify-content: space-between; padding: 15px 0; }
.community-my-activity-item > div { display: grid; gap: 4px; min-width: 0; }
.community-my-activity-status { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; }
.community-my-activity-status > span { color: #8b3f36; font-size: 11px; font-weight: 900; }
.community-my-activity-status em { background: #f8e9e7; border-radius: 999px; color: #963e36; font-size: 10px; font-style: normal; font-weight: 900; padding: 2px 6px; }
.community-my-activity-item strong { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.community-my-activity-item p { color: #68736f; font-size: 12px; line-height: 1.5; margin: 0; }
.community-my-activity-item small { color: #77817d; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.community-my-activity-item > button { background: transparent; border: 0; color: #17483d; cursor: pointer; font-size: 12px; font-weight: 900; white-space: nowrap; }
.community-my-activity-item > button:hover { border-bottom: 1px solid currentColor; margin-bottom: -1px; }
.community-my-activity-item.needs-action > button { color: #8b3f36; }
.community-my-activity-item.has-issue p { color: #963e36; }
.community-my-activity-item.is-muted > div > strong { color: #68736f; }
.community-my-activity-item.is-muted .community-my-activity-status > span, .community-my-activity-item.is-muted p, .community-my-activity-item.is-muted small, .community-my-activity-item.is-muted > button { color: #8a928f; }
.community-my-activity-item.is-muted.has-issue .community-my-activity-status > span, .community-my-activity-item.is-muted.has-issue p { color: #9a665f; }
.community-view[data-community-panel-mode="notices"] .community-official-center,
.community-view[data-community-panel-mode="activities"] .community-official-center,
.community-view[data-community-panel-mode="my-activities"] .community-official-center,
.community-view[data-community-panel-mode="detail"] .community-official-center,
.community-view[data-community-panel-mode="activity-detail"] .community-official-center { display: none; }
.community-panel { min-width: 0; }
.community-panel:not([hidden]) { animation: none; }
.community-view[data-community-panel-mode="activities"] .community-search-bar,
.community-view[data-community-panel-mode="activities"] .community-tabs,
.community-view[data-community-panel-mode="notices"] .community-search-bar,
.community-view[data-community-panel-mode="notices"] .community-tabs,
.community-view[data-community-panel-mode="my-activities"] .community-search-bar,
.community-view[data-community-panel-mode="my-activities"] .community-tabs,
.community-view[data-community-panel-mode="mine"] .community-search-bar,
.community-view[data-community-panel-mode="mine"] .community-tabs,
.community-view[data-community-panel-mode="detail"] .community-tabs,
.community-view[data-community-panel-mode="activity-detail"] .community-tabs { display: none; }
.community-filter-row, .community-mine-toolbar, .community-panel-bar {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}
.community-tag-quick-filters { display: flex; gap: 6px; margin: -4px auto 10px; max-width: 760px; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; padding: 0 1px 3px; scrollbar-width: none; width: 100%; }
.community-tag-quick-filters::-webkit-scrollbar { display: none; }
.community-tag-quick-filters button { background: #fffdf8; border: 1px solid #e1dbd0; border-radius: 999px; color: #66716d; cursor: pointer; flex: 0 0 auto; font: inherit; font-size: 11px; font-weight: 850; min-height: 32px; padding: 0 10px; }
.community-tag-quick-filters button:hover { border-color: #b9cdbd; color: #17483d; }
.community-tag-quick-filters button.active { background: #eaf1ea; border-color: #c7ddca; color: #17483d; }
.community-tag-quick-filters button:focus-visible { outline: 2px solid #17483d; outline-offset: 1px; }
.community-filter-row, .community-mine-toolbar { padding: 6px 0 12px; }
.community-filter-row label, .community-mine-toolbar label { align-items: center; display: flex; gap: 8px; }
.community-filter-controls { align-items: center; display: flex; flex-wrap: wrap; gap: 10px 14px; min-width: 0; }
.community-filter-row label span, .community-mine-toolbar label span { color: #68736f; font-size: 12px; font-weight: 850; }
.community-filter-row select, .community-mine-toolbar select {
  background: #fffdf8;
  border: 1px solid #ddd6ca;
  border-radius: 7px;
  color: #26332f;
  min-height: 38px;
  padding: 0 32px 0 10px;
}
#communityContentFilter { min-width: 138px; }

@media (max-width: 560px) {
  .community-search-bar { grid-template-columns: minmax(0, 1fr) 32px 64px; padding-left: 11px; }
  .community-search-submit { min-width: 64px; padding: 0 10px; width: 64px; }
  .community-filter-row { align-items: flex-start; }
  .community-filter-controls { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); width: calc(100% - 50px); }
  .community-filter-controls label { align-items: stretch; display: grid; gap: 4px; }
  .community-filter-controls select, #communityContentFilter { min-width: 0; width: 100%; }
}
.icon-command {
  align-items: center;
  background: #fffdf8;
  border: 1px solid #ddd6ca;
  border-radius: 7px;
  color: #26332f;
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 40px;
  font-size: 19px;
  height: 40px;
  justify-content: center;
  padding: 0;
}
.community-state { color: #68736f; font-size: 13px; min-height: 20px; padding: 4px 0; }
.community-state.error { color: #963e36; }
.community-state.success { color: #2e6a50; font-weight: 850; }
.community-live-refresh { align-items: center; background: #eef5ee; border: 1px solid #cfe0d1; border-radius: 7px; color: #244c3d; display: flex; font-size: 12px; font-weight: 800; gap: 10px; justify-content: space-between; margin: 10px 0; min-height: 40px; padding: 4px 6px 4px 11px; }
.community-live-refresh button { background: #18382f; border: 1px solid #18382f; border-radius: 5px; color: #fff; cursor: pointer; flex: 0 0 auto; font: inherit; font-weight: 900; min-height: 30px; padding: 0 10px; }
.community-live-refresh button:focus-visible { outline: 2px solid #17483d; outline-offset: 2px; }
.community-spotlight { border-bottom: 1px solid #e7e1d6; display: grid; gap: 11px; margin: 0 -2px 10px; padding: 16px 2px 17px; min-width: 0; }
.community-spotlight[hidden] { display: none; }
.community-spotlight > header { align-items: end; display: flex; gap: 18px; justify-content: space-between; margin: 0 auto; max-width: 760px; width: 100%; }
.community-spotlight-title { display: grid; gap: 2px; }
.community-spotlight-title > span { color: #8b3f36; font-size: 11px; font-weight: 900; letter-spacing: .01em; }
.community-spotlight-title > h2 { font-size: 20px; line-height: 1.2; margin: 0; }
.community-spotlight-pager { align-items: center; display: flex; gap: 6px; }
.community-spotlight-pager[hidden] { display: none; }
.community-spotlight-pager > span { color: #68736f; font-size: 12px; font-weight: 850; margin-right: 5px; white-space: nowrap; }
.community-spotlight-pager button { align-items: center; background: #fffdf8; border: 1px solid #ddd6ca; border-radius: 7px; color: #17483d; cursor: pointer; display: inline-flex; font-size: 16px; height: 34px; justify-content: center; padding: 0; width: 34px; }
.community-spotlight-pager button:disabled { color: #a7ada9; cursor: default; opacity: .56; }
.community-spotlight-track { display: flex; gap: 14px; margin: 0 auto; max-width: 760px; min-width: 0; -webkit-overflow-scrolling: touch; overflow-x: auto; overscroll-behavior-inline: contain; padding: 0 1px 3px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; width: 100%; }
.community-spotlight-track.single { overflow-x: hidden; padding-bottom: 0; }
.community-spotlight-track::-webkit-scrollbar { display: none; }
.community-spotlight-card { background: #fff; border: 1px solid #e2ddd3; border-radius: 8px; box-shadow: 0 2px 7px rgba(38,51,47,.035); flex: 0 0 100%; min-width: 0; overflow: hidden; scroll-snap-align: start; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.community-spotlight-card:hover { border-color: #c9d2c9; box-shadow: 0 8px 22px rgba(38,51,47,.09); transform: translateY(-2px); }
.community-spotlight-card:focus-within { border-color: #8b3f36; box-shadow: 0 0 0 3px rgba(139,63,54,.13); }
.community-spotlight-card > button { background: transparent; border: 0; color: inherit; cursor: pointer; display: block; padding: 0; text-align: left; width: 100%; }
.community-spotlight-card img, .community-spotlight-media-empty { aspect-ratio: 16 / 9; background: #f2f3ef; display: block; height: auto; object-fit: contain; width: 100%; }
.community-spotlight-media-empty.notice { background: #f0eee7; position: relative; }
.community-spotlight-media-empty.notice::after { color: #8a8171; content: '公告'; font-size: 14px; font-weight: 900; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); }
.community-spotlight-copy { align-items: center; display: grid; gap: 3px 16px; grid-template-columns: minmax(0, 1fr) auto; min-height: 52px; min-width: 0; padding: 8px 14px; }
.community-spotlight-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.community-spotlight-meta em { color: #8b3f36; font-size: 11px; font-style: normal; font-weight: 900; }
.community-spotlight-meta time { color: #7c8682; font-size: 11px; }
.community-spotlight-copy strong { display: -webkit-box; font-size: 15px; grid-column: 1; line-height: 1.4; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.community-spotlight-action { align-items: center; color: #17483d; display: inline-flex; font-size: 12px; font-weight: 900; gap: 5px; grid-column: 2; grid-row: 1 / 3; white-space: nowrap; }
.community-feed { border-top: 1px solid #ece6db; display: grid; margin: 0 auto; max-width: 760px; width: 100%; }
.community-activity-heading { align-items: end; display: flex; gap: 18px; justify-content: space-between; margin: 0 auto; max-width: 900px; padding: 18px 0 12px; width: 100%; }
.community-activity-heading > div { display: grid; gap: 3px; min-width: 0; }
.community-activity-heading > div > span { color: #8b3f36; font-size: 11px; font-weight: 900; }
.community-activity-heading h2 { color: #18201d; font-size: 22px; line-height: 1.25; margin: 0; }
.community-activity-heading p { color: #68736f; font-size: 12px; line-height: 1.45; margin: 0; }
.community-activity-heading > strong { color: #68736f; flex: 0 0 auto; font-size: 12px; font-weight: 900; white-space: nowrap; }
.community-activity-filter-row { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin: 0 auto; max-width: 900px; padding: 6px 0 12px; width: 100%; }
.community-activity-stage-filters { display: flex; gap: 4px; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
.community-activity-stage-filters::-webkit-scrollbar { display: none; }
.community-activity-stage-filters button { background: transparent; border: 1px solid transparent; border-radius: 6px; color: #66716d; cursor: pointer; flex: 0 0 auto; font: inherit; font-size: 12px; font-weight: 850; min-height: 36px; padding: 0 10px; }
.community-activity-stage-filters button:hover { background: #f2f4ef; color: #244c3d; }
.community-activity-stage-filters button.active { background: #eaf1ea; border-color: #cfe0d1; color: #17483d; }
.community-activity-stage-filters button:focus-visible { outline: 2px solid #17483d; outline-offset: 1px; }
.community-activity-filter-actions, .community-activity-filter-row label { align-items: center; display: flex; gap: 8px; }
.community-activity-filter-row label span { color: #68736f; font-size: 12px; font-weight: 850; }
.community-activity-filter-row select { background: #fffdf8; border: 1px solid #ddd6ca; border-radius: 7px; color: #26332f; min-height: 38px; padding: 0 32px 0 10px; }
.community-activity-list { display: grid; gap: 16px; margin: 0 auto; max-width: 900px; width: 100%; }
.community-activity-card { background: #fff; border: 1px solid #e4ded3; border-radius: 8px; box-shadow: 0 2px 7px rgba(38,51,47,.035); min-width: 0; overflow: hidden; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.community-activity-card:hover { border-color: #c9d2c9; box-shadow: 0 8px 22px rgba(38,51,47,.09); transform: translateY(-2px); }
.community-activity-card:focus-within { border-color: #8b3f36; box-shadow: 0 0 0 3px rgba(139,63,54,.13); }
.community-activity-card.is-ended { background: #f6f6f3; border-color: #e1e1da; box-shadow: none; }
.community-activity-card.is-ended .community-activity-cover { filter: grayscale(.65); opacity: .72; }
.community-activity-card.is-ended .community-activity-card-body > strong,
.community-activity-card.is-ended .community-activity-card-link { color: #68716d; }
.community-activity-card.is-ended .community-activity-card-body > p,
.community-activity-card.is-ended .community-activity-card-facts b { color: #808783; }
.community-activity-card.has-issue { border-color: #e1c3ad; }
.community-activity-card > button { background: transparent; border: 0; color: inherit; cursor: pointer; display: grid; grid-template-columns: minmax(240px, 34%) minmax(0, 1fr); padding: 0; text-align: left; width: 100%; }
.community-activity-cover { aspect-ratio: 4 / 3; background: #f1f3ef; min-height: 220px; overflow: hidden; position: relative; width: 100%; }
.community-activity-cover img { height: 100%; object-fit: contain; width: 100%; }
.community-activity-cover .image-fallback { aspect-ratio: auto; border-radius: 0; height: 100%; }
.community-activity-cover > span { background: rgba(24,56,47,.9); border-radius: 5px; color: #fff; font-size: 11px; font-weight: 900; left: 10px; padding: 5px 8px; position: absolute; top: 10px; }
.community-activity-cover > .community-activity-cover-empty { align-items: center; background: transparent; color: #687b74; display: flex; font-size: 12px; height: 100%; justify-content: center; left: auto; padding: 0; position: static; top: auto; width: 100%; }
.community-activity-card-body { align-content: center; display: grid; gap: 10px; min-height: 220px; padding: 22px 24px; }
.community-activity-card-meta { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; }
.community-activity-card-meta em { color: #8b3f36; font-size: 10px; font-style: normal; font-weight: 900; }
.community-activity-card-meta .community-activity-participated { background: #edf5ef; border-radius: 999px; color: #2e6a50; padding: 3px 7px; }
.community-activity-card-meta .community-activity-participated.restricted { background: #f8eee6; color: #8b6332; }
.community-activity-card-body > strong { font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; }
.community-activity-card-body > p { color: #65716d; display: -webkit-box; font-size: 12px; line-height: 1.55; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.community-activity-card-facts { border-top: 1px solid #eee9df; color: #77817d; display: grid; font-size: 11px; gap: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2px; }
.community-activity-card-facts > span { display: grid; gap: 3px; min-width: 0; padding: 9px 8px 0 0; }
.community-activity-card-facts > span + span { border-left: 1px solid #eee9df; padding-left: 10px; }
.community-activity-card-facts small { color: #7b8580; font-size: 10px; font-weight: 850; }
.community-activity-card-facts b { color: #53605b; font-size: 11px; font-weight: 850; line-height: 1.4; overflow-wrap: anywhere; }
.community-activity-card-link { align-items: center; color: #17483d; display: inline-flex; font-size: 12px; font-weight: 900; gap: 5px; }
.community-activity-detail { margin: 0 auto; max-width: 820px; min-width: 0; padding-bottom: 96px; width: 100%; }
.community-activity-detail-card { background: #fff; display: grid; gap: 22px; padding: 22px 0 36px; }
.community-activity-detail-card > header { display: grid; gap: 18px; grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr); }
.community-activity-detail-cover { aspect-ratio: 16 / 10; background: #e9eee9; border-radius: 8px; overflow: hidden; position: relative; }
.community-activity-detail-cover img { height: 100%; object-fit: contain; width: 100%; }
.community-activity-detail-heading { align-content: center; display: grid; gap: 10px; }
.community-activity-detail-heading > div { display: flex; flex-wrap: wrap; gap: 7px; }
.community-activity-detail-heading em { color: #8b3f36; font-size: 11px; font-style: normal; font-weight: 900; }
.community-activity-detail-heading .community-activity-detail-status { background: #edf5ef; border: 1px solid #d3e3d6; border-radius: 999px; color: #2e6a50; padding: 3px 7px; }
.community-activity-detail-heading h2 { font-size: 27px; line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.community-activity-detail-heading p { color: #5f6c67; font-size: 14px; line-height: 1.65; margin: 0; }
.community-activity-facts { border-bottom: 1px solid #e7e1d6; border-top: 1px solid #e7e1d6; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.community-activity-facts > div { display: grid; gap: 5px; min-width: 0; padding: 13px 12px; }
.community-activity-facts > div:not(:nth-child(3n+1)) { border-left: 1px solid #eee9df; }
.community-activity-facts > div:nth-child(n+4) { border-top: 1px solid #eee9df; }
.community-activity-facts.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.community-activity-facts.compact > div { border-left: 0; border-top: 0; }
.community-activity-facts.compact > div:nth-child(even) { border-left: 1px solid #eee9df; }
.community-activity-facts.compact > div:nth-child(n+3) { border-top: 1px solid #eee9df; }
.community-activity-facts.single { grid-template-columns: 1fr; }
.community-activity-facts.single > div { border-left: 0; border-top: 0; }
.community-activity-facts span, .community-activity-prize > span, .community-activity-result > span, .community-activity-eligibility > span { color: #7b6552; font-size: 10px; font-weight: 900; }
.community-activity-facts strong { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.community-activity-prize, .community-activity-result, .community-activity-eligibility { border-left: 3px solid #8b3f36; display: grid; gap: 5px; padding: 10px 13px; }
.community-activity-prize { background: #faf7f1; }
.community-activity-result { background: #f5f7f5; border-left-color: #718078; }
.community-activity-result.winner { background: #eef7f0; border-left-color: #2e6a50; }
.community-activity-eligibility { background: #f5f7f5; border-left-color: #718078; }
.community-activity-eligibility.qualified { background: #eef7f0; border-left-color: #2e6a50; }
.community-activity-eligibility.failed { background: #faf7f1; border-left-color: #a56b45; }
.community-activity-prize strong, .community-activity-result strong, .community-activity-eligibility strong { font-size: 16px; }
.community-activity-prize p, .community-activity-result p, .community-activity-eligibility p { color: #65716d; font-size: 12px; line-height: 1.55; margin: 0; }
.community-activity-winners { border-top: 1px solid #e7e3da; display: grid; gap: 13px; padding-top: 16px; }
.community-activity-winners > header { align-items: end; display: flex; gap: 12px; justify-content: space-between; }
.community-activity-winners > header > div { display: grid; gap: 3px; }
.community-activity-winners > header span { color: #7b6552; font-size: 10px; font-weight: 900; }
.community-activity-winners > header h3 { font-size: 17px; margin: 0; }
.community-activity-winners > header > strong { color: #5e6a66; font-size: 11px; }
.community-activity-winner-grid { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); }
.community-activity-winner { align-items: center; background: #f5f7f5; border: 1px solid #e0e6e2; border-radius: 7px; display: grid; gap: 3px 9px; grid-template-columns: 42px minmax(0, 1fr); min-height: 62px; padding: 9px; position: relative; }
.community-activity-winner-rank { color: #5e7169; font-size: 9px; font-weight: 900; grid-column: 2; }
.community-activity-winner-avatar { align-items: center; background: #dfe9e4; border-radius: 50%; color: #24493c; display: flex; grid-row: 1 / span 2; height: 42px; justify-content: center; overflow: hidden; position: relative; width: 42px; }
.community-activity-winner-avatar img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; z-index: 1; }
.community-activity-winner-avatar b { font-size: 14px; }
.community-activity-winner > strong { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.community-activity-winner-empty, .community-activity-winner-note { color: #66716d; font-size: 12px; line-height: 1.55; margin: 0; }
.community-activity-description { display: grid; gap: 9px; }
.community-activity-description h3 { font-size: 17px; margin: 0; }
.community-activity-description p { color: #26332f; font-size: 15px; line-height: 1.78; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.community-activity-description.task-details { display: block; }
.community-activity-description.task-details summary { color: #26332f; cursor: pointer; font-size: 13px; font-weight: 900; }
.community-activity-description.task-details p { margin-top: 10px; }
.community-activity-task-feedback { border-left: 3px solid #17483d; display: grid; gap: 10px; padding: 12px 14px; }
.community-activity-task-feedback > div { display: grid; gap: 4px; }
.community-activity-task-feedback.task-intro { align-items: center; grid-template-columns: minmax(0, 1fr) auto; }
.community-activity-task-feedback span { color: #2e6a50; font-size: 10px; font-weight: 900; }
.community-activity-task-feedback strong { font-size: 16px; }
.community-activity-task-feedback p { color: #65716d; font-size: 12px; line-height: 1.55; margin: 0; }
.community-activity-task-feedback label { color: #26332f; display: grid; font-size: 12px; font-weight: 900; gap: 6px; }
.community-activity-task-feedback textarea { background: #fffdf8; border: 1px solid #d9d3c8; border-radius: 7px; color: #26332f; font: inherit; line-height: 1.55; min-height: 118px; padding: 10px 11px; resize: vertical; }
.community-activity-task-feedback textarea:focus { border-color: #17483d; outline: 2px solid rgba(23,72,61,.14); outline-offset: 1px; }
.community-activity-task-feedback > small { color: #77817d; font-size: 11px; line-height: 1.45; }
.community-activity-task-inline-action { justify-self: start; }
.community-activity-task-feedback.submitted { background: #f4f7f4; border-left-color: #718078; }
.community-activity-task-feedback.submitted span { color: #718078; }
.community-activity-feedback-error { color: #963e36 !important; font-weight: 850; }
@media (min-width: 720px) {
  .community-activity-detail-card > footer.community-activity-task-footer { display: none; }
}
.community-activity-association { align-items: center; background: #f8f7f2; border: 1px solid #e4ded3; border-radius: 7px; display: grid; gap: 3px; grid-template-columns: minmax(0, 1fr) auto; padding: 10px 12px; }
.community-activity-association > div { display: grid; gap: 3px; }
.community-activity-association span { color: #7b6552; font-size: 10px; font-weight: 900; }
.community-activity-association button { background: transparent; border: 0; color: #18382f; cursor: pointer; font-weight: 900; }
.community-activity-utilities { align-items: start; border-top: 1px solid #e7e1d6; display: flex; flex-wrap: wrap; gap: 10px 20px; justify-content: space-between; padding-top: 14px; }
.community-activity-utilities details { color: #68736f; font-size: 11px; max-width: 520px; }
.community-activity-utilities summary { cursor: pointer; font-size: 12px; font-weight: 850; }
.community-activity-utilities p { line-height: 1.55; margin: 7px 0 0; }
.community-activity-utilities button { background: transparent; border: 0; color: #17483d; cursor: pointer; font-size: 12px; font-weight: 900; padding: 0; }
.community-activity-detail-card > footer { align-items: center; border-top: 1px solid #e7e1d6; display: flex; gap: 16px; justify-content: space-between; padding-top: 15px; }
.community-activity-detail-card > footer.action-only { justify-content: flex-end; }
.community-activity-detail-card > footer > div { display: grid; gap: 3px; }
.community-activity-detail-card > footer span { color: #77817d; font-size: 10px; }
.community-activity-detail-card > footer strong { font-size: 12px; }
.community-mine-list { border-top: 1px solid #ece6db; display: grid; }
.community-post {
  background: #fff;
  border-bottom: 1px solid #e9e3d8;
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 18px 2px 20px;
  transition: background-color .18s ease;
}
.community-post:hover { background: #fffefa; }
.community-post-head { align-items: center; display: grid; gap: 10px; grid-template-columns: 42px minmax(0, 1fr) auto; }
.community-avatar {
  align-items: center;
  aspect-ratio: 1;
  background: #e9eee9;
  border-radius: 50%;
  color: #36564d;
  display: flex;
  font-size: 14px;
  font-weight: 950;
  justify-content: center;
  overflow: hidden;
}
.community-avatar img { height: 100%; object-fit: cover; width: 100%; }
.community-author-avatar, button.community-author { background: transparent; border: 0; color: inherit; cursor: pointer; font: inherit; min-width: 0; padding: 0; text-align: left; }
.community-author-avatar { border-radius: 50%; display: block; height: 42px; width: 42px; }
.community-author-avatar .community-avatar { height: 100%; width: 100%; }
.community-author { display: grid; gap: 2px; min-width: 0; }
button.community-author:hover strong { color: #17483d; text-decoration: underline; text-underline-offset: 2px; }
.community-author-avatar:focus-visible, button.community-author:focus-visible { outline: 2px solid #17483d; outline-offset: 2px; }
.community-author strong { font-size: 14px; overflow-wrap: anywhere; }
.community-author span, .community-post-time { color: #77817d; font-size: 11px; }
.community-official { color: #8b3f36; font-style: normal; font-weight: 900; margin-left: 5px; }
.community-post-content {
  background: transparent;
  border: 0;
  color: #202925;
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  line-height: 1.72;
  overflow-wrap: anywhere;
  padding: 0;
  text-align: left;
  white-space: pre-wrap;
}
.community-post-content.clamped { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden; }
.community-images { display: grid; gap: 4px; max-width: 720px; min-width: 0; }
.community-images.one { grid-template-columns: minmax(0, 640px); }
.community-images.two, .community-images.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.community-images.many { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.community-image-button { background: #eef0ec; border: 0; border-radius: 5px; cursor: pointer; overflow: hidden; padding: 0; position: relative; }
.community-image-button img { aspect-ratio: 1; display: block; height: 100%; object-fit: cover; width: 100%; }
.community-image-button .image-fallback { aspect-ratio: auto; border-radius: 0; height: 100%; }
.community-post-detail .community-image-button img { transition: transform .2s ease; }
.community-post-detail .community-image-button:hover img { transform: scale(1.006); }
.community-images.one .community-image-button img { aspect-ratio: 4 / 3; max-height: 560px; }
.community-image-more { align-items: center; background: rgba(20,29,26,.68); color: #fff; display: flex; font-size: 18px; font-weight: 950; inset: 0; justify-content: center; position: absolute; }
.community-image-count { background: rgba(20,29,26,.82); border-radius: 4px; color: #fff; font-size: 11px; font-weight: 900; padding: 4px 7px; position: absolute; right: 8px; top: 8px; }
.community-tags, .community-post-actions, .community-status-line { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.community-tag { background: #eff4ef; border: 1px solid #dce6dc; border-radius: 999px; color: #36564d; font-size: 11px; font-weight: 850; padding: 4px 8px; }
.community-association { align-items: center; background: #f8f7f2; border: 1px solid #e4ded3; border-radius: 7px; display: grid; gap: 3px; grid-template-columns: minmax(0, 1fr) auto; padding: 10px 12px; }
.community-association > div { display: grid; gap: 2px; min-width: 0; }
.community-association span { color: #7b6552; font-size: 11px; font-weight: 900; }
.community-association strong { font-size: 13px; overflow-wrap: anywhere; }
.community-association button { background: transparent; border: 0; color: #18382f; cursor: pointer; font-weight: 900; }
.community-post-actions { border-top: 1px solid #f0ece4; padding-top: 10px; }
.community-post-actions button {
  background: transparent;
  border: 0;
  color: #5e6b67;
  cursor: pointer;
  font-size: 13px;
  font-weight: 850;
  min-height: 34px;
  padding: 0 10px 0 0;
}
.community-post-actions button.active { color: #8b3f36; }
.community-post-actions button:hover { color: #18382f; }
.community-load-more { background: #fffdf8; border: 1px solid #ded7cb; border-radius: 7px; color: #24322e; cursor: pointer; font-weight: 900; margin: 14px auto 0; min-height: 42px; min-width: 160px; }
.community-empty { color: #68736f; padding: 48px 12px; text-align: center; }
.community-empty strong { color: #26332f; display: block; font-size: 16px; margin-bottom: 6px; }
.community-panel-bar { border-bottom: 1px solid #e7e1d6; min-height: 52px; }
.community-composer > .community-panel-bar { justify-content: flex-start; }
.community-panel-bar > div { display: grid; gap: 2px; min-width: 0; }
.community-panel-bar span { color: #68736f; font-size: 12px; }
.community-detail-bar { justify-content: flex-start; margin: 0 auto; max-width: 760px; }
.community-detail-bar > span { font-weight: 850; }
.community-detail { margin: 0 auto; max-width: 760px; min-width: 0; padding-bottom: 96px; width: 100%; }
.community-post-detail { border-bottom: 0; gap: 18px; padding: 22px 0 36px; }
.community-detail-author { align-items: center; display: grid; gap: 10px; grid-template-columns: 44px minmax(0, 1fr) auto; }
.community-detail-author .community-avatar { width: 44px; }
.community-detail-author .community-author-avatar { height: 44px; width: 44px; }
.community-detail-author .community-author strong { font-size: 15px; }
.community-detail-state {
  align-items: center;
  background: #f6f8f5;
  border-left: 3px solid #6c7d75;
  display: grid;
  gap: 12px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 11px 13px;
}
.community-detail-state.pending_review { background: #fff9e9; border-left-color: #b48731; }
.community-detail-state.published { background: #f0f7f1; border-left-color: #3b7257; }
.community-detail-state.rejected, .community-detail-state.hidden, .community-detail-state.deleted { background: #fff4f1; border-left-color: #a65045; }
.community-detail-state > div { display: grid; gap: 3px; min-width: 0; }
.community-detail-state > div strong { font-size: 13px; }
.community-detail-state p { color: #65716d; font-size: 12px; line-height: 1.5; margin: 0; }
.community-detail-content { display: grid; gap: 15px; min-width: 0; }
.community-detail-content > p { color: #202925; font-size: 17px; line-height: 1.78; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.community-detail-content .community-images { max-width: none; width: 100%; }
.community-detail-content .community-images.one { grid-template-columns: minmax(0, 1fr); }
.community-detail-content .community-images.one .community-image-button { width: 100%; }
.community-detail-content .community-images.one .community-image-button img { aspect-ratio: auto; background: #f1f3ef; height: auto; max-height: 720px; object-fit: contain; }
.community-detail-content .community-tags { margin-top: -2px; }
.community-detail-content .community-association { margin-top: 1px; }
.community-rich-content { display: grid; gap: 17px; min-width: 0; }
.community-rich-content h2 { color: #18201d; font-size: 22px; line-height: 1.4; margin: 10px 0 -2px; overflow-wrap: anywhere; }
.community-rich-content h2:first-child { margin-top: 0; }
.community-rich-content p { color: #202925; font-size: 17px; line-height: 1.78; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.community-rich-content blockquote { background: #f7f8f5; border-left: 3px solid #87978f; color: #42504b; font-size: 16px; line-height: 1.72; margin: 2px 0; overflow-wrap: anywhere; padding: 11px 14px; white-space: pre-wrap; }
.community-rich-content ul { color: #202925; display: grid; gap: 7px; font-size: 16px; line-height: 1.68; margin: 0; padding-left: 24px; }
.community-rich-content li { padding-left: 2px; }
.community-rich-content figure { display: grid; gap: 7px; margin: 3px 0; min-width: 0; }
.community-rich-content figure > button { background: #f1f3ef; border: 0; border-radius: 6px; cursor: pointer; overflow: hidden; padding: 0; width: 100%; }
.community-rich-content figure img { display: block; height: auto; max-height: 760px; object-fit: contain; width: 100%; }
.community-rich-content figcaption { color: #737d79; font-size: 11px; line-height: 1.55; padding: 0 2px; text-align: center; }
.community-detail .community-review-reason { background: #fff6f3; border-left: 3px solid #a65045; display: grid; gap: 4px; padding: 10px 12px; }
.community-detail .community-review-reason strong { color: #7d3d35; font-size: 12px; }
.community-detail .community-review-reason span { color: #713f38; font-size: 12px; line-height: 1.55; }
.community-detail-actions { align-items: center; border-top: 1px solid #e7e1d6; display: flex; gap: 16px; justify-content: space-between; padding-top: 15px; }
.community-detail-actions > div:first-child { display: grid; gap: 2px; }
.community-detail-actions > div:first-child strong { font-size: 13px; }
.community-detail-actions > div:first-child span { color: #7a8480; font-size: 11px; }
.community-detail-actions > div:last-child { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.community-detail-actions button {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #42514c;
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
  min-height: 38px;
  padding: 0 13px;
  transition: border-color .16s ease, transform .16s ease;
}
.community-comments { border-top: 1px solid #e7e1d6; display: grid; gap: 14px; margin-top: 6px; padding-top: 20px; }
.community-comments > header { align-items: end; display: flex; gap: 16px; justify-content: space-between; }
.community-comments > header > div { align-items: baseline; display: flex; gap: 8px; }
.community-comments > header strong { font-size: 17px; }
.community-comments > header span, .community-comments > header small { color: #74807b; font-size: 11px; }
.community-comment-composer { background: #f7f8f5; border: 1px solid #dde3dc; border-radius: 7px; display: grid; gap: 8px; padding: 11px; }
.community-comment-composer textarea { background: transparent; border: 0; color: #202925; font: inherit; font-size: 14px; line-height: 1.55; min-height: 58px; outline: 0; padding: 0; resize: vertical; width: 100%; }
.community-comment-composer > div { align-items: center; display: flex; justify-content: space-between; }
.community-comment-composer span { color: #7a8480; font-size: 11px; }
.community-comment-composer button, .community-comment-login, .community-comment-more { background: #17483b; border: 1px solid #17483b; border-radius: 6px; color: #fff; cursor: pointer; font-size: 12px; font-weight: 900; min-height: 36px; padding: 0 14px; }
.community-comment-composer button:disabled { cursor: wait; opacity: .58; }
.community-comment-login { background: #fff; color: #17483b; justify-self: start; }
.community-comment-status { color: #6f7b76; font-size: 12px; min-height: 18px; }
.community-comment-status.success { color: #2e6a50; }
.community-comment-status.pending { color: #8b6725; }
.community-comment-status.error { color: #963e36; }
.community-comment-list { display: grid; }
.community-comment { border-top: 1px solid #efebe3; display: grid; gap: 10px; grid-template-columns: 34px minmax(0, 1fr); padding: 13px 0; }
.community-comment:first-child { border-top: 0; }
.community-comment-avatar { align-items: center; aspect-ratio: 1; background: #e9eee9; border-radius: 50%; color: #36564d; display: flex; font-size: 12px; font-weight: 950; justify-content: center; overflow: hidden; width: 34px; }
.community-comment-avatar img { height: 100%; object-fit: cover; width: 100%; }
.community-comment > div:last-child { display: grid; gap: 5px; min-width: 0; }
.community-comment header { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.community-comment header strong { font-size: 13px; }
.community-comment header time { color: #87908d; font-size: 10px; margin-left: auto; }
.community-comment header .pending, .community-comment header .rejected { background: #fff4d9; border-radius: 999px; color: #80601e; font-size: 10px; font-weight: 850; padding: 3px 7px; }
.community-comment header .rejected { background: #fff0ed; color: #8d4137; }
.community-comment p { color: #29332f; font-size: 13px; line-height: 1.62; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.community-comment > div:last-child > button { background: transparent; border: 0; color: #7c8581; cursor: pointer; font-size: 11px; justify-self: start; padding: 2px 0; }
.community-comment > div:last-child > button:disabled { cursor: wait; opacity: .55; }
.community-comment-reason { color: #8d4137; font-size: 11px; }
.community-comment-loading, .community-comment-empty { color: #79837f; font-size: 12px; padding: 22px 0; text-align: center; }
.community-comment-empty.error { align-items: center; display: grid; gap: 6px; justify-items: center; }
.community-comment-empty.error strong { color: #5f3833; font-size: 13px; }
.community-comment-more { background: #fff; color: #17483b; justify-self: center; min-width: 140px; }
.community-detail-actions button.secondary { background: #fffdf8; border-color: #dcd5c8; }
.community-detail-actions button.danger { background: #fff4f1; border-color: #e8c8c1; color: #963e36; }
.community-detail-actions button.active { color: #8b3f36; }
.community-detail-actions button:hover { border-color: #bfc8c3; transform: translateY(-1px); }
.community-detail-actions button.danger:hover { border-color: #d9988f; }
.community-detail-actions button:focus-visible, .community-image-button:focus-visible { box-shadow: 0 0 0 3px rgba(24,56,47,.12); outline: 2px solid #315e50; outline-offset: 2px; }
.community-detail-actions.public { justify-content: flex-end; }
.community-detail-skeleton { animation: community-skeleton-pulse 1.2s ease-in-out infinite; display: grid; gap: 14px; padding: 24px 0; }
.community-detail-skeleton > span { background: #e8ebe7; border-radius: 50%; height: 44px; width: 44px; }
.community-detail-skeleton > div { display: grid; gap: 7px; margin-top: -56px; padding-left: 56px; }
.community-detail-skeleton i, .community-detail-skeleton b { background: #e8ebe7; border-radius: 4px; display: block; height: 13px; }
.community-detail-skeleton i:first-child { width: 140px; }
.community-detail-skeleton i:last-child { width: 90px; }
.community-detail-skeleton b { height: 18px; width: 82%; }
.community-detail-skeleton b:last-child { height: 360px; margin-top: 8px; width: min(100%, 680px); }
@keyframes community-skeleton-pulse { 50% { opacity: .52; } }
.community-mine-item {
  align-items: start;
  background: #fff;
  border-bottom: 1px solid #e9e3d8;
  cursor: pointer;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) 96px;
  min-width: 0;
  padding: 16px 2px;
  text-align: left;
}
.community-mine-copy { display: grid; gap: 7px; min-width: 0; }
.community-mine-copy p { display: -webkit-box; font-size: 14px; line-height: 1.55; margin: 0; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.community-mine-thumb { aspect-ratio: 1; background: #eef0ec; border-radius: 5px; object-fit: cover; width: 96px; }
.community-status { border: 1px solid #d9ddd8; border-radius: 999px; color: #5e6b67; font-size: 11px; font-weight: 900; padding: 4px 8px; }
.community-status.pending_review { background: #fff5db; border-color: #efdfa9; color: #775719; }
.community-status.published { background: #eaf3ec; border-color: #ccdfd0; color: #28533f; }
.community-status.rejected, .community-status.hidden, .community-status.deleted { background: #f8e9e6; border-color: #e8c8c1; color: #8b3f36; }
.community-review-reason { background: #fff6f3; border-left: 3px solid #a65045; color: #713f38; font-size: 12px; line-height: 1.5; padding: 8px 10px; }
.community-composer { margin: 0 auto; max-width: 800px; width: 100%; }
.community-composer form { display: grid; gap: 18px; padding-top: 16px; }
.community-content-field { display: grid; gap: 8px; }
.community-content-field > span, .community-compose-heading { align-items: center; display: flex; font-size: 13px; font-weight: 900; justify-content: space-between; }
.community-content-field b, .community-compose-heading span { color: #77817d; font-size: 11px; }
.community-content-field textarea {
  background: #fff;
  border: 1px solid #ddd6ca;
  border-radius: 7px;
  color: #202925;
  font: inherit;
  font-size: 15px;
  line-height: 1.65;
  min-height: 210px;
  padding: 13px;
  resize: vertical;
  width: 100%;
}
.community-content-field textarea:focus, .community-association-search input:focus { border-color: #48685e; box-shadow: 0 0 0 3px rgba(24,56,47,.07); outline: 0; }
.community-compose-section { border-top: 1px solid #e9e3d8; display: grid; gap: 10px; padding-top: 15px; }
.community-image-queue { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.community-upload-item { aspect-ratio: 1; background: #eef0ec; border-radius: 6px; min-width: 0; overflow: hidden; position: relative; }
.community-upload-item img { height: 100%; object-fit: cover; width: 100%; }
.community-upload-overlay { background: linear-gradient(transparent, rgba(20,27,24,.8)); bottom: 0; color: #fff; display: grid; gap: 5px; left: 0; padding: 26px 7px 7px; position: absolute; right: 0; }
.community-upload-overlay span { font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.community-upload-progress { background: rgba(255,255,255,.35); border-radius: 999px; height: 3px; overflow: hidden; }
.community-upload-progress i { background: #fff; display: block; height: 100%; width: 0; }
.community-upload-actions { display: flex; gap: 4px; position: absolute; right: 5px; top: 5px; }
.community-upload-actions button { background: rgba(255,255,255,.92); border: 0; border-radius: 5px; color: #26332f; cursor: pointer; height: 30px; min-width: 30px; padding: 0; }
.community-image-picker { align-items: center; border: 1px dashed #b9b5aa; border-radius: 7px; color: #4e5d58; cursor: pointer; display: inline-flex; gap: 7px; justify-content: center; min-height: 44px; padding: 0 14px; width: fit-content; }
.community-image-picker span { font-size: 20px; }
.community-image-picker strong { font-size: 13px; }
.community-image-picker.disabled { background: #f1f2ef; border-style: solid; color: #8a928e; cursor: not-allowed; }
.community-association-search { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) 72px; }
.community-association-search input { border: 1px solid #ddd6ca; border-radius: 7px; font: inherit; min-height: 42px; padding: 0 11px; }
.community-association-search button { background: #263b35; border: 0; border-radius: 7px; color: #fff; cursor: pointer; font-weight: 900; }
.community-product-results { display: grid; gap: 5px; max-height: 260px; overflow-y: auto; }
.community-product-option { align-items: center; background: #fff; border: 1px solid #e5dfd4; border-radius: 6px; cursor: pointer; display: grid; gap: 8px; grid-template-columns: 42px minmax(0, 1fr); padding: 7px; text-align: left; }
.community-product-option img, .community-product-option .empty { aspect-ratio: 1; background: #eef0ec; border-radius: 4px; object-fit: cover; width: 42px; }
.community-product-option div { display: grid; gap: 2px; min-width: 0; }
.community-product-option strong { font-size: 12px; overflow-wrap: anywhere; }
.community-product-option span { color: #77817d; font-size: 11px; }
.community-association-selected { background: #f5f7f2; border: 1px solid #dfe5dc; border-radius: 7px; display: grid; gap: 3px; padding: 10px; }
.community-tag-choices { display: flex; flex-wrap: wrap; gap: 7px; }
.community-tag-choice { background: #fffdf8; border: 1px solid #ddd6ca; border-radius: 999px; color: #56635f; cursor: pointer; font-size: 12px; font-weight: 850; min-height: 34px; padding: 0 11px; }
.community-tag-choice.active { background: #e9f0ea; border-color: #b8cdbd; color: #244c3d; }
.community-consents { background: #f8f7f2; border: 1px solid #e4ded3; border-radius: 7px; display: grid; gap: 9px; padding: 11px; }
.community-consents label { align-items: center; display: flex; font-size: 12px; gap: 8px; }
.community-consents input { accent-color: #18382f; height: 17px; width: 17px; }
.community-form-error { background: #fff0ec; border: 1px solid #e9cbc4; border-radius: 7px; color: #853d35; font-size: 12px; line-height: 1.5; padding: 9px 11px; }
.community-composer-actions { background: rgba(250,248,243,.95); border-top: 1px solid #e1dbd0; bottom: 0; justify-content: flex-end; padding: 10px 0 max(10px, env(safe-area-inset-bottom)); position: sticky; z-index: 4; }
.community-weak-network { background: #fff5dc; color: #785a21; font-size: 12px; padding: 7px 10px; }
.community-lightbox { align-items: center; background: rgba(12,16,14,.92); display: flex; inset: 0; justify-content: center; padding: 48px 16px; position: fixed; z-index: 50; }
.community-lightbox img { max-height: 100%; max-width: 100%; object-fit: contain; }
.community-lightbox button { background: #fff; border: 0; border-radius: 50%; font-size: 22px; height: 38px; position: absolute; right: 14px; top: max(14px, env(safe-area-inset-top)); width: 38px; }
body.community-lightbox-open, body.community-modal-open { overflow: hidden; }
.community-confirm-overlay {
  align-items: center;
  background: rgba(18,24,21,.46);
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 0;
  padding: 18px;
  pointer-events: none;
  position: fixed;
  transition: opacity .18s ease;
  z-index: 55;
}
.community-confirm-overlay.open { opacity: 1; pointer-events: auto; }
.community-confirm {
  background: #fffdf9;
  border: 1px solid #ded8cc;
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(28,35,31,.22);
  display: grid;
  gap: 10px;
  max-width: 390px;
  padding: 20px;
  transform: translateY(8px);
  transition: transform .18s ease;
  width: 100%;
}
.community-confirm-overlay.open .community-confirm { transform: translateY(0); }
.community-confirm > span { color: #7b6552; font-size: 11px; font-weight: 900; }
.community-confirm h2 { font-size: 20px; letter-spacing: 0; margin: 0; }
.community-confirm p { color: #66716d; font-size: 13px; line-height: 1.55; margin: 0; }
.community-confirm > div { display: flex; gap: 8px; justify-content: flex-end; margin-top: 5px; }
.community-confirm button { border: 1px solid #d8d2c7; border-radius: 7px; cursor: pointer; font-size: 13px; font-weight: 900; min-height: 40px; padding: 0 15px; }
.community-confirm button.secondary { background: #fff; color: #35443f; }
.community-confirm button.primary { background: #18382f; border-color: #18382f; color: #fff; }
.community-confirm button.danger { background: #a5483e; border-color: #a5483e; color: #fff; }
.community-confirm button:focus-visible { box-shadow: 0 0 0 3px rgba(24,56,47,.12); outline: 2px solid #315e50; outline-offset: 2px; }
.community-consent-dialog {
  background: #fffdf9;
  border: 1px solid #ded8cc;
  border-radius: 8px;
  box-shadow: 0 22px 60px rgba(28,35,31,.22);
  display: grid;
  gap: 13px;
  max-height: calc(100dvh - 36px);
  max-width: 460px;
  overflow-y: auto;
  padding: 22px;
  transform: translateY(8px);
  transition: transform .18s ease;
  width: 100%;
}
.community-confirm-overlay.open .community-consent-dialog { transform: translateY(0); }
.community-consent-dialog > span { color: #7b6552; font-size: 11px; font-weight: 900; }
.community-consent-dialog h2 { color: #18201d; font-size: 20px; letter-spacing: 0; line-height: 1.35; margin: 0; }
.community-consent-dialog > p { color: #66716d; font-size: 13px; line-height: 1.65; margin: 0; }
.community-consent-check {
  align-items: start;
  background: #f6f7f3;
  border: 1px solid #dfe5dc;
  border-radius: 7px;
  color: #35443f;
  cursor: pointer;
  display: grid;
  font-size: 13px;
  gap: 10px;
  grid-template-columns: 18px minmax(0, 1fr);
  line-height: 1.65;
  padding: 13px;
}
.community-consent-check input { accent-color: #18382f; height: 17px; margin: 3px 0 0; width: 17px; }
.community-consent-links { display: inline; }
.community-consent-links a { color: #245746; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.community-consent-error { background: #fff0ec; border: 1px solid #e9cbc4; border-radius: 7px; color: #853d35; font-size: 12px; line-height: 1.5; padding: 9px 11px; }
.community-consent-dialog footer { display: flex; gap: 8px; justify-content: flex-end; }
.community-consent-dialog button { border: 1px solid #d8d2c7; border-radius: 7px; cursor: pointer; font-size: 13px; font-weight: 900; min-height: 42px; padding: 0 16px; }
.community-consent-dialog button.secondary { background: #fff; color: #35443f; }
.community-consent-dialog button.primary { background: #18382f; border-color: #18382f; color: #fff; }
.community-consent-dialog button:disabled { cursor: not-allowed; opacity: .48; }
.community-consent-dialog a:focus-visible, .community-consent-dialog input:focus-visible, .community-consent-dialog button:focus-visible { box-shadow: 0 0 0 3px rgba(24,56,47,.12); outline: 2px solid #315e50; outline-offset: 2px; }
@media (max-width: 480px) {
  .community-consent-overlay { align-items: flex-end; padding: 12px; }
  .community-consent-dialog { max-height: calc(100dvh - 24px - env(safe-area-inset-top)); padding: 18px; padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
  .community-consent-dialog footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
  .community-consent-dialog button { min-width: 0; padding: 0 10px; width: 100%; }
}
.product-community-section {
  background: #fff;
  border: 1px solid var(--app-line, #e7e1d6);
  border-radius: 8px;
  display: grid;
  gap: 11px;
  padding: 12px;
}
.product-promotion-section {
  background: #fffaf0;
  border: 1px solid #e6d4ae;
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}
.product-promotion-section > header { align-items: end; display: flex; gap: 12px; justify-content: space-between; }
.product-promotion-section > header > div { display: grid; gap: 3px; }
.product-promotion-section > header span { color: #8b6332; font-size: 11px; font-weight: 900; }
.product-promotion-section > header h3 { color: var(--app-ink, #18201d); font-size: 16px; line-height: 1.25; margin: 0; }
.product-promotion-section > header small { color: #75654d; font-size: 11px; font-weight: 800; }
.product-promotion-code { align-items: center; background: #fff; border: 1px solid #e3d4b7; border-radius: 7px; display: flex; gap: 10px; justify-content: space-between; padding: 8px 9px; }
.product-promotion-code > div { display: grid; gap: 3px; }
.product-promotion-code span { color: #75654d; font-size: 11px; font-weight: 800; }
.product-promotion-code code { color: #77501e; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 16px; font-weight: 950; overflow-wrap: anywhere; }
.product-promotion-section > p,
.product-promotion-note { color: #625848; font-size: 12px; line-height: 1.45; margin: 0; }
.product-promotion-note { color: var(--app-muted, #68736f); font-weight: 800; }
.product-promotion-loading { min-height: 82px; }
.product-promotion-loading > header { align-items: start; }
.product-community-section > header { align-items: end; display: flex; gap: 12px; justify-content: space-between; }
.product-community-section > header > div { display: grid; gap: 3px; }
.product-community-section > header span { color: #8b6332; font-size: 11px; font-weight: 900; }
.product-community-section > header h3 { color: var(--app-ink, #18201d); font-size: 16px; line-height: 1.25; margin: 0; }
.product-community-section > header .text-button { flex: 0 0 auto; font-size: 12px; min-height: 32px; padding: 0 8px; }
.product-community-list { display: grid; gap: 7px; }
.product-community-item {
  align-items: center;
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 7px;
  color: var(--app-ink, #18201d);
  cursor: pointer;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) 64px;
  min-height: 76px;
  padding: 7px 7px 7px 10px;
  text-align: left;
  width: 100%;
}
.product-community-item:hover { background: #f1f6ef; border-color: #ccdacf; }
.product-community-item:focus-visible { outline: 2px solid var(--app-leaf, #18382f); outline-offset: 2px; }
.product-community-copy { display: grid; gap: 7px; }
.product-community-copy strong {
  display: -webkit-box;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.48;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.product-community-copy small { color: var(--app-muted, #68736f); font-size: 11px; font-weight: 800; line-height: 1.3; }
.product-community-item img,
.product-community-image-empty { aspect-ratio: 1; background: #ecefe9; border-radius: 6px; display: block; object-fit: cover; width: 64px; }
.product-community-state {
  align-items: start;
  background: #f8faf6;
  border: 1px solid #e1e8df;
  border-radius: 7px;
  color: var(--app-muted, #68736f);
  display: grid;
  font-size: 12px;
  gap: 4px;
  line-height: 1.45;
  min-height: 62px;
  padding: 11px;
}
.product-community-state strong { color: var(--app-ink, #18201d); font-size: 13px; }
.product-community-state button { background: #fff; border: 1px solid #d8d2c7; border-radius: 7px; color: var(--app-leaf, #18382f); cursor: pointer; font-size: 12px; font-weight: 900; justify-self: start; min-height: 32px; padding: 0 10px; }
.product-community-state.error { background: #fff8f6; border-color: #ead3cd; }

@media (max-width: 520px) {
  .quote-promotion-summary { align-items: stretch; grid-template-columns: 1fr; }
  .quote-promotion-items { align-items: stretch; display: grid; justify-content: stretch; }
  .quote-promotion-item { justify-content: space-between; }
  .product-promotion-section { padding: 10px; }
  .product-promotion-section > header { align-items: start; }
  .product-promotion-code { align-items: stretch; flex-direction: column; }
  .product-promotion-code button { min-height: 36px; width: 100%; }
  .product-community-section { padding: 10px; }
  .product-community-item { grid-template-columns: minmax(0, 1fr) 58px; min-height: 70px; }
  .product-community-item img,
  .product-community-image-empty { width: 58px; }
}

@media (min-width: 900px) {
  body:not(.capacitor-native) .app-header {
    background: transparent;
    border: 0;
    box-shadow: none;
    display: grid !important;
    gap: 18px;
    grid-template-columns: 1fr auto 1fr;
    padding: 8px 0 16px;
  }
  body:not(.capacitor-native) .brand-lockup { grid-column: 1; grid-row: 1; }
  body:not(.capacitor-native) .desktop-primary-nav { align-items: center; display: flex; gap: 30px; grid-column: 2; grid-row: 1; justify-content: center; }
  body:not(.capacitor-native) .desktop-primary-nav button { background: transparent; border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: #4f5d57; font-size: 15px; font-weight: 850; line-height: 1.4; min-height: 44px; padding: 0 3px; }
  body:not(.capacitor-native) .desktop-primary-nav button:hover { color: var(--home-brand); }
  body:not(.capacitor-native) .desktop-primary-nav button.active { border-bottom-color: var(--home-brand); color: var(--home-brand); }
  body:not(.capacitor-native) #messageButton { grid-column: 3; grid-row: 1; justify-self: end; min-width: 40px; padding: 0 10px; }
  body:not(.capacitor-native) #messageButton span { display: none; }
  body:not(.capacitor-native) .bottom-nav { display: none !important; }
  body:not(.capacitor-native) .app-shell { padding-bottom: 44px; }
}
@media (min-width: 720px) {
  .community-spotlight-card img,
  .community-spotlight-media-empty { aspect-ratio: auto; height: clamp(280px, 26vw, 360px); }
}
@media (max-width: 719px) {
  .community-header { align-items: center; padding-top: 6px; }
  .community-header h1 { font-size: 24px; }
  .community-header-actions .secondary { display: none; }
  .community-official-center-grid { grid-template-columns: 1fr; }
  .community-official-center-card { min-height: 0; padding: 14px; }
  .community-official-center-card + .community-official-center-card { border-left: 1px solid #ded8cc; }
  .community-official-center-card.activity { grid-template-columns: 96px minmax(0, 1fr); padding: 0; }
  .community-official-center-card.activity > img, .community-official-center-card.activity .community-official-center-media-empty { min-height: 132px; }
  .community-official-center-card-copy { gap: 6px; padding: 13px 14px; }
  .community-command { min-height: 40px; padding: 0 12px; }
  .community-post { padding: 14px 0 17px; }
  .community-post-head { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .community-author-avatar { height: 38px; width: 38px; }
  .community-post-content { font-size: 14px; line-height: 1.65; }
  .community-spotlight { padding-top: 13px; }
  .community-spotlight-card { flex-basis: min(330px, calc(100vw - 42px)); }
  .community-spotlight-track.single .community-spotlight-card { flex-basis: 100%; }
  .community-spotlight-copy { min-height: 58px; padding: 10px 12px; }
  .community-spotlight-copy strong { font-size: 14px; }
  .community-spotlight-pager button { height: 32px; width: 32px; }
  .community-notice-heading { align-items: start; gap: 12px; padding-top: 15px; }
  .community-my-activities-heading { padding-top: 15px; }
  .community-notice-copy strong { font-size: 15px; }
  .community-notice-copy p { font-size: 12px; }
  .community-notice-detail { padding-bottom: 112px; }
  .community-notice-detail-card { gap: 16px; padding-top: 17px; }
  .community-notice-detail-card h2 { font-size: 23px; }
  .community-notice-detail-card > footer { align-items: stretch; display: grid; }
  .community-notice-detail-card > footer .community-command { width: 100%; }
  .community-detail-bar { min-height: 48px; }
  .community-detail { padding-bottom: 112px; }
  .community-post-detail { gap: 15px; padding: 17px 0 28px; }
  .community-detail-author { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .community-detail-author .community-avatar { width: 40px; }
  .community-detail-author .community-author-avatar { height: 40px; width: 40px; }
  .community-detail-content > p { font-size: 15px; line-height: 1.72; }
  .community-rich-content { gap: 14px; }
  .community-rich-content h2 { font-size: 19px; }
  .community-rich-content p { font-size: 15px; line-height: 1.72; }
  .community-rich-content blockquote, .community-rich-content ul { font-size: 14px; }
  .community-detail-state { align-items: start; gap: 9px; grid-template-columns: 1fr; }
  .community-detail-state .community-status { justify-self: start; }
  .community-detail-actions { align-items: stretch; display: grid; }
  .community-detail-actions > div:last-child { justify-content: flex-start; }
  .community-detail-actions button { min-height: 40px; }
  .community-comments > header { align-items: start; display: grid; gap: 4px; }
  .community-comment-composer { padding: 10px; }
  .community-detail-skeleton b:last-child { height: 280px; }
  .community-image-queue { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .community-composer-actions { bottom: calc(72px + env(safe-area-inset-bottom)); margin: 0 -12px; padding-left: 12px; padding-right: 12px; }
  body.community-composer-active .community-composer-actions { bottom: 0; }
  .community-composer-actions .community-command { flex: 1 1 0; }
  .community-activity-heading { align-items: start; padding: 15px 0 10px; }
  .community-activity-heading h2 { font-size: 20px; }
  .community-activity-heading p { max-width: 260px; }
  .community-activity-filter-row { align-items: stretch; flex-direction: column; gap: 8px; }
  .community-activity-stage-filters { margin: 0 -2px; padding: 0 2px; }
  .community-activity-filter-actions { justify-content: space-between; }
  .community-activity-card > button { grid-template-columns: 1fr; }
  .community-activity-cover { aspect-ratio: 16 / 9; min-height: 0; }
  .community-activity-card-body { min-height: 0; padding: 17px 16px 18px; }
  .community-activity-card-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .community-activity-card-facts > span:nth-child(3) { border-left: 0; grid-column: 1 / -1; padding-left: 0; }
  .community-activity-detail { padding-bottom: 112px; }
  .community-activity-detail-card { gap: 17px; padding: 17px 0 28px; }
  .community-activity-detail-card > header { grid-template-columns: 1fr; }
  .community-activity-detail-heading h2 { font-size: 24px; }
  .community-activity-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .community-activity-facts > div:not(:nth-child(3n+1)) { border-left: 0; }
  .community-activity-facts > div:nth-child(even) { border-left: 1px solid #eee9df; }
  .community-activity-facts > div:nth-child(n+3) { border-top: 1px solid #eee9df; }
  .community-activity-task-feedback.task-intro { grid-template-columns: 1fr; }
  .community-activity-task-inline-action { display: none; }
  .community-activity-detail-card > footer { align-items: stretch; display: grid; }
  .community-activity-detail-card > footer .community-command { width: 100%; }
  .community-view[data-community-panel-mode="activity-detail"] .community-activity-detail-card > footer.action-only {
    align-items: stretch;
    background: rgba(255,253,248,.97);
    border-top: 1px solid #ddd6ca;
    bottom: 0;
    box-shadow: 0 -4px 16px rgba(38,51,47,.08);
    display: flex;
    left: 0;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    position: fixed;
    right: 0;
    z-index: 35;
  }
  .community-view[data-community-panel-mode="activity-detail"] .community-activity-detail-card > footer.action-only .community-command { min-height: 44px; }
}
@media (max-width: 390px) {
  .bottom-nav .tab-button { font-size: 10px !important; min-width: 0; padding-left: 1px !important; padding-right: 1px !important; }
  .bottom-nav .tab-button span { font-size: 17px !important; }
  .community-header-actions .community-command { font-size: 12px; padding: 0 10px; }
  .community-mine-toolbar { align-items: stretch; flex-direction: column; }
  .community-mine-toolbar .community-command { width: 100%; }
  .community-mine-item { grid-template-columns: minmax(0, 1fr) 76px; }
  .community-mine-thumb { width: 76px; }
  .community-images.many { gap: 3px; }
  .community-image-queue { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .community-tabs { gap: 16px; }
  .community-activity-card-facts { align-items: start; display: grid; gap: 4px; }
  .community-activity-detail-heading h2 { font-size: 22px; }
  .community-activity-facts { grid-template-columns: 1fr; }
  .community-activity-facts > div:nth-child(even) { border-left: 0; }
  .community-activity-facts > div:nth-child(n+2) { border-top: 1px solid #eee9df; }
  .community-activity-facts.compact { grid-template-columns: 1fr; }
  .community-activity-facts.compact > div:nth-child(even) { border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .community-panel:not([hidden]), .community-detail-skeleton { animation: none; }
  .bottom-nav, .community-detail-actions button, .community-post-detail .community-image-button img, .community-confirm-overlay, .community-confirm, .community-spotlight-card, .community-activity-card { transition: none; }
  .community-spotlight-card:hover, .community-activity-card:hover { transform: none; }
  html { scroll-behavior: auto; }
}

/* Keep the three account metrics stable after the legacy profile rules above. */
.profile-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Feed media is a preview; the detail view remains the full-size reading surface. */
#communityFeed .community-images.one { max-width: 440px; width: 100%; }
#communityFeed .community-images.one .community-image-button { aspect-ratio: 4 / 3; max-height: 320px; width: 100%; }
#communityFeed .community-images.one .community-image-button img { aspect-ratio: auto; height: 100%; max-height: none; object-fit: cover; width: 100%; }

@media (min-width: 900px) {
  #communityFeed .community-post-giveaway {
    column-gap: 18px;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    row-gap: 10px;
  }
  #communityFeed .community-post-giveaway > .community-post-head,
  #communityFeed .community-post-giveaway > .community-post-content { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway > .community-images.one {
    align-self: start;
    grid-column: 1;
    grid-row: 3 / span 4;
    max-width: 260px;
  }
  #communityFeed .community-post-giveaway > .community-images.one .community-image-button { aspect-ratio: 4 / 3; max-height: 195px; }
  #communityFeed .community-post-giveaway > .community-images.one img { object-fit: contain; }
  #communityFeed .community-post-giveaway > .community-giveaway-summary { grid-column: 2; grid-row: 3; }
  #communityFeed .community-post-giveaway > .community-association { grid-column: 2; grid-row: 4; }
  #communityFeed .community-post-giveaway > .community-tags { grid-column: 2; grid-row: 5; }
  #communityFeed .community-post-giveaway > .community-post-actions { grid-column: 2; grid-row: 6; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div span:first-child { grid-column: 1 / -1; }
}

@media (min-width: 1280px) {
  #communityFeedPanel .community-spotlight { gap: 8px; }
  #communityFeedPanel .community-spotlight > header { align-items: center; }
  #communityFeedPanel .community-spotlight-title > h2 { font-size: 17px; }
  #communityFeedPanel .community-spotlight-track { gap: 0; }
  #communityFeedPanel .community-spotlight-card { padding: 10px 0; }
  #communityFeedPanel .community-spotlight-card > button {
    align-items: stretch;
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
  }
  #communityFeedPanel .community-spotlight-card img,
  #communityFeedPanel .community-spotlight-card .community-spotlight-media-empty {
    aspect-ratio: 1;
    height: 88px;
    min-height: 0;
    object-fit: cover;
  }
  #communityFeedPanel .community-spotlight-copy {
    align-content: center;
    display: grid;
    grid-template-columns: 1fr;
    min-height: 88px;
    padding: 8px 10px;
  }
  #communityFeedPanel .community-spotlight-copy strong { -webkit-line-clamp: 2; font-size: 13px; grid-column: 1; }
  #communityFeedPanel .community-spotlight-action { display: none; }
}

@media (min-width: 1280px) {
  #communityFeed { align-items: start; border-top: 0; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #communityFeed > .community-post { border: 1px solid #e4ded3; border-radius: 8px; gap: 10px; overflow: hidden; padding: 14px; }
  #communityFeed > .community-post-giveaway, #communityFeed > .community-empty { grid-column: 1 / -1; }
  #communityFeed > .community-post:not(.community-post-giveaway) .community-post-content.clamped { -webkit-line-clamp: 3; }
  #communityFeed > .community-post:not(.community-post-giveaway) .community-images.one { max-width: none; }
  #communityFeed > .community-post:not(.community-post-giveaway) .community-images.one .community-image-button { aspect-ratio: 4 / 3; max-height: none; }
  #communityFeed > .community-post:not(.community-post-giveaway) .community-association { padding: 8px 10px; }
}

@media (min-width: 900px) and (max-width: 1279px) {
  .community-view { max-width: 820px; }
  #communityFeedPanel .community-spotlight-card > button { align-items: stretch; display: grid; grid-template-columns: 200px minmax(0, 1fr); }
  #communityFeedPanel .community-spotlight-card img,
  #communityFeedPanel .community-spotlight-card .community-spotlight-media-empty { aspect-ratio: auto; height: 120px; min-height: 0; object-fit: contain; }
  #communityFeedPanel .community-spotlight-copy { align-content: center; min-height: 120px; }
  #communityFeed .community-post-giveaway { grid-template-columns: 224px minmax(0, 1fr); }
  #communityFeed .community-post-giveaway > .community-images.one { max-width: 224px; }
  #communityFeed .community-post-giveaway > .community-images.one .community-image-button { aspect-ratio: 4 / 3; max-height: 168px; }
  #communityFeed .community-post-giveaway > .community-images.one img { object-fit: contain; }
}

/* Community workspace: keep every content type in one readable stream. */
.community-view { max-width: 1180px; }
#communityFeed { align-items: stretch; border-top: 0; display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); max-width: none; }
#communityFeed > .community-post {
  background: #fffdf9;
  border: 1px solid #e4ded3;
  border-radius: 10px;
  gap: 11px;
  overflow: hidden;
  padding: 16px 17px 15px;
}
#communityFeed > .community-post:hover { background: #fff; border-color: #cbd5cc; }
#communityFeed > .community-post:not(.community-post-giveaway) .community-images { max-width: 420px; }
#communityFeed > .community-post:not(.community-post-giveaway) .community-images.one .community-image-button { max-height: 280px; }
#communityFeed .community-post-content.clamped { -webkit-line-clamp: 4; }
#communityFeed .community-post-giveaway > .community-association,
#communityFeed .community-post-giveaway > .community-tags { display: none; }

@media (min-width: 900px) {
  #communityFeed .community-post-giveaway {
    column-gap: 18px;
    grid-template-columns: minmax(170px, 220px) minmax(0, 1fr);
  }
  #communityFeed .community-post-giveaway > .community-post-head,
  #communityFeed .community-post-giveaway > .community-post-content { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway > .community-images.one {
    align-self: start;
    grid-column: 1;
    grid-row: 3;
    max-width: 220px;
  }
  #communityFeed .community-post-giveaway > .community-images.one .community-image-button { aspect-ratio: 4 / 3; max-height: 165px; }
  #communityFeed .community-post-giveaway > .community-images.one img { object-fit: contain; }
  #communityFeed .community-post-giveaway > .community-giveaway-summary { grid-column: 2; grid-row: 3; }
  #communityFeed .community-post-giveaway > .community-post-actions { grid-column: 2; grid-row: 4; }
  #communityFeed .community-post-giveaway .community-giveaway-summary { gap: 8px; padding: 11px 13px; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div span:first-child { grid-column: 1 / -1; }
}

@media (max-width: 899px) {
  #communityFeed > .community-post { border-radius: 8px; padding: 14px; }
  #communityFeed > .community-post:not(.community-post-giveaway) .community-images.one { max-width: 250px; }
  #communityFeed > .community-post:not(.community-post-giveaway) .community-images.one .community-image-button { max-height: 205px; }
  #communityFeed .community-post-giveaway {
    column-gap: 11px;
    grid-template-columns: 104px minmax(0, 1fr);
  }
  #communityFeed .community-post-giveaway > .community-post-head,
  #communityFeed .community-post-giveaway > .community-post-content { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway > .community-images.one {
    align-self: start;
    grid-column: 1;
    grid-row: 3;
    max-width: 104px;
  }
  #communityFeed .community-post-giveaway > .community-images.one .community-image-button { aspect-ratio: 1; max-height: 104px; }
  #communityFeed .community-post-giveaway > .community-images.one img { object-fit: contain; }
  #communityFeed .community-post-giveaway > .community-giveaway-summary { grid-column: 2; grid-row: 3; }
  #communityFeed .community-post-giveaway > .community-post-actions { grid-column: 2; grid-row: 4; }
  #communityFeed .community-post-giveaway .community-giveaway-summary { gap: 7px; min-width: 0; padding: 10px; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > strong { font-size: 14px; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div { gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div span:first-child { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div span:last-child { grid-column: auto; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div b { font-size: 11px; }
  #communityFeed .community-post-giveaway .community-giveaway-summary footer { justify-content: flex-start; }
  #communityFeed .community-post-giveaway .community-giveaway-summary footer button { min-height: 32px; padding: 0 10px; }
}

/* Community workspace v51: one continuous stream with functional navigation. */
.community-stream-heading {
  align-items: end;
  border-top: 1px solid #e8e2d8;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-top: 2px;
  padding: 15px 0 11px;
}
.community-stream-heading > div { display: grid; gap: 2px; min-width: 0; }
.community-stream-heading span { color: #8b3f36; font-size: 10px; font-weight: 900; }
.community-stream-heading h2 { font-size: 19px; line-height: 1.25; margin: 0; }
.community-stream-heading p { color: #6a7571; font-size: 12px; line-height: 1.45; margin: 0; }
.community-side-stack { display: contents; }
.community-side-rail { display: none; min-width: 0; }
.community-side-rail > header { border-bottom: 1px solid #e6e0d5; display: grid; gap: 4px; padding: 0 0 14px; }
.community-side-rail > header span { color: #8b3f36; font-size: 10px; font-weight: 900; }
.community-side-rail > header strong { font-size: 18px; }
.community-side-rail > header p { color: #6b7672; font-size: 12px; line-height: 1.5; margin: 0; }
.community-side-rail nav { display: grid; }
.community-side-rail nav button {
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #e8e2d8;
  color: #25332e;
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: 3px;
  min-height: 62px;
  padding: 10px 3px;
  text-align: left;
}
.community-side-rail nav button:hover { color: #17483d; padding-left: 7px; }
.community-side-rail nav button:focus-visible { outline: 2px solid #17483d; outline-offset: 2px; }
.community-side-rail nav button span { font-size: 13px; font-weight: 900; }
.community-side-rail nav button small { color: #74807b; font-size: 11px; line-height: 1.35; }

#communityFeed {
  background: #fff;
  border: 1px solid #e3ddd2;
  border-radius: 8px;
  gap: 0;
  overflow: hidden;
}
#communityFeed > .community-post {
  background: #fff;
  border: 0;
  border-bottom: 1px solid #e9e4da;
  border-radius: 0;
  gap: 9px;
  padding: 17px 18px 15px;
}
#communityFeed > .community-post:last-child { border-bottom: 0; }
#communityFeed > .community-post:hover { background: #fffdf9; border-color: #e9e4da; }
#communityFeed .community-post-content.clamped { -webkit-line-clamp: 3; }
#communityFeed .community-tags { display: none; }
#communityFeed .community-association {
  align-items: center;
  background: transparent;
  border: 0;
  border-left: 2px solid #d9ded7;
  border-radius: 0;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  min-height: 32px;
  padding: 3px 0 3px 9px;
}
#communityFeed .community-association > div { display: flex; gap: 7px; overflow: hidden; }
#communityFeed .community-association span { flex: 0 0 auto; }
#communityFeed .community-association strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#communityFeed .community-association button { flex: 0 0 auto; white-space: nowrap; }
#communityFeed .community-post-actions { border-top: 0; gap: 14px; padding-top: 2px; }
#communityFeed .community-post-actions button { min-height: 30px; padding-right: 0; }

@media (min-width: 720px) {
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) {
    column-gap: 20px;
    grid-template-columns: minmax(0, 1fr) 196px;
  }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-post-head,
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-post-content,
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-association,
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-tags,
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-post-actions { grid-column: 1; }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-images {
    align-self: start;
    grid-column: 2;
    grid-row: 1 / span 6;
    max-width: none;
    width: 196px;
  }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-images.one .community-image-button {
    aspect-ratio: 4 / 3;
    height: 147px;
    max-height: 147px;
  }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-images.one img { object-fit: cover; }
  #communityFeed .community-post-giveaway {
    column-gap: 16px;
    grid-template-columns: 154px minmax(0, 1fr);
  }
  #communityFeed .community-post-giveaway > .community-post-head,
  #communityFeed .community-post-giveaway > .community-post-content { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway > .community-images.one {
    grid-column: 1;
    grid-row: 3;
    max-width: 154px;
  }
  #communityFeed .community-post-giveaway > .community-images.one .community-image-button { aspect-ratio: 4 / 3; height: 116px; max-height: 116px; }
  #communityFeed .community-post-giveaway > .community-giveaway-summary { grid-column: 2; grid-row: 3; }
  #communityFeed .community-post-giveaway > .community-post-actions { grid-column: 2; grid-row: 4; }
}

@media (min-width: 1280px) {
  #communityFeedPanel:not([hidden]) { gap: 0 34px; grid-template-columns: minmax(0, 780px) minmax(250px, 1fr); }
  #communityFeedPanel > :not(.community-spotlight):not(.community-side-rail):not(.community-side-stack) { grid-column: 1; }
  #communityFeedPanel .community-side-rail { display: block; grid-column: 2; grid-row: 1 / span 5; }
  #communityFeedPanel .community-spotlight { grid-column: 2; grid-row: 6 / span 5; margin-top: 18px; position: static; }
  #communityFeedPanel .community-official-strip { display: none !important; }
  #communityFeedPanel .community-stream-heading { padding-top: 9px; }
}

@media (max-width: 719px) {
  .community-stream-heading { padding: 10px 0 8px; }
  .community-stream-heading h2 { font-size: 17px; }
  .community-stream-heading p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
  #communityFeed { border-left: 0; border-radius: 0; border-right: 0; margin-left: -2px; margin-right: -2px; width: calc(100% + 4px); }
  #communityFeed > .community-post { padding: 14px 12px 12px; }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) {
    column-gap: 12px;
    grid-template-columns: minmax(0, 1fr) 104px;
  }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-post-head { grid-column: 1 / -1; }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-post-content,
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-association { grid-column: 1; }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-images {
    align-self: start;
    grid-column: 2;
    grid-row: 2 / span 3;
    max-width: 104px;
    width: 104px;
  }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-images.one .community-image-button {
    aspect-ratio: 1;
    height: 104px;
    max-height: 104px;
  }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-images.one img { object-fit: cover; }
  #communityFeed > .community-post-has-media:not(.community-post-giveaway) > .community-post-actions { grid-column: 1 / -1; }
  #communityFeed .community-post-content { line-height: 1.55; }
  #communityFeed .community-post-content.clamped { -webkit-line-clamp: 3; }
  #communityFeed .community-post-giveaway { column-gap: 10px; grid-template-columns: 92px minmax(0, 1fr); }
  #communityFeed .community-post-giveaway > .community-post-head,
  #communityFeed .community-post-giveaway > .community-post-content { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway > .community-images.one { grid-column: 1; grid-row: 3; max-width: 92px; }
  #communityFeed .community-post-giveaway > .community-images.one .community-image-button { aspect-ratio: 1; height: 92px; max-height: 92px; }
  #communityFeed .community-post-giveaway > .community-giveaway-summary { grid-column: 2; grid-row: 3; }
  #communityFeed .community-post-giveaway > .community-post-actions { grid-column: 1 / -1; grid-row: 4; }
  #communityFeed .community-post-giveaway .community-giveaway-summary { gap: 5px; padding: 8px 9px; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > strong {
    display: -webkit-box;
    font-size: 13px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  #communityFeed .community-post-giveaway > .community-post-content.clamped { -webkit-line-clamp: 2; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div span:first-child b {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div { gap: 5px 8px; }
  #communityFeed .community-post-giveaway .community-giveaway-summary > div span:first-child { grid-column: 1 / -1; }
  #communityFeed .community-post-giveaway .community-giveaway-summary footer button { min-height: 30px; }
}

@media (max-width: 560px) {
  .community-header { padding-bottom: 10px; }
  .community-search-bar { min-height: 38px; }
  .community-tabs { min-height: 38px; }
  .community-tabs button { min-height: 38px; }
  .community-filter-row { padding: 3px 0 6px; }
  .community-filter-row label > span {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }
  .community-filter-controls { gap: 7px; }
  .community-filter-row select, #communityContentFilter { min-height: 36px; }
  .community-tag-quick-filters { margin-bottom: 4px; }
  .community-tag-quick-filters button { min-height: 30px; }
}

/* Community workspace v52: clear content zones and reliable detail return. */
.community-detail-bar {
  background: rgba(250,248,243,.97);
  gap: 12px;
  padding: 7px 0;
  position: sticky;
  top: 44px;
  z-index: 13;
}
.community-back-command {
  align-items: center;
  background: #18382f;
  border: 1px solid #18382f;
  border-radius: 7px;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 auto;
  font: inherit;
  gap: 7px;
  min-height: 38px;
  padding: 0 13px 0 10px;
}
.community-back-command span { color: inherit; font-size: 18px; line-height: 1; }
.community-back-command strong { font-size: 13px; }
.community-back-command:hover { background: #244c40; border-color: #244c40; }
.community-back-command:focus-visible { outline: 2px solid #17483d; outline-offset: 2px; }
.community-detail-bar > #communityDetailContext { border-left: 1px solid #d9d3c8; padding-left: 12px; }
.community-author-topic {
  color: #68756f !important;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#communityFeed > .community-post { scroll-margin-top: 104px; }
#communityFeed > .community-post .community-post-head {
  border-bottom: 1px solid #eee9df;
  padding-bottom: 10px;
}
#communityFeed > .community-post .community-post-content { padding-top: 3px; }
#communityFeed > .community-post .community-post-actions {
  border-top: 1px solid #eee9df;
  margin-top: 3px;
  padding-top: 8px;
}
#communityFeed .community-post-giveaway > .community-giveaway-summary {
  background: #faf6ef;
  border: 0;
  border-left: 3px solid #8b3f36;
  border-radius: 0;
}
#communityFeed .community-post-giveaway .community-giveaway-summary header {
  border-bottom: 1px solid #eadfd1;
  padding-bottom: 6px;
}
#communityFeed .community-post-giveaway > .community-images { background: #f1f3ef; border-radius: 5px; }
#communityFeed .community-post-giveaway > .community-post-actions { grid-column: 1 / -1; }
.community-return-highlight { box-shadow: inset 3px 0 0 #8b3f36; }
#communityFeed > .community-post[tabindex="-1"]:focus { outline: 0; }

.community-post-detail .community-detail-author {
  border-bottom: 1px solid #e7e1d6;
  padding-bottom: 14px;
}
.community-post-detail .community-detail-content { padding-top: 2px; }

.community-post-more { position: relative; }
.community-post-more > summary {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #66736d;
  cursor: pointer;
  display: inline-flex;
  font-size: 19px;
  font-weight: 950;
  justify-content: center;
  list-style: none;
  min-height: 34px;
  min-width: 34px;
  padding: 0 5px;
}
.community-post-more > summary::-webkit-details-marker { display: none; }
.community-post-more > summary:hover, .community-post-more[open] > summary { background: #f3f5f1; border-color: #d9e0d9; color: #18382f; }
.community-post-more > button {
  background: #fffdf8;
  border: 1px solid #d9d3c8;
  border-radius: 7px;
  box-shadow: 0 8px 20px rgba(31,42,37,.12);
  color: #42514c;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 850;
  min-height: 36px;
  padding: 0 13px;
  position: absolute;
  right: 0;
  top: calc(100% + 5px);
  white-space: nowrap;
  z-index: 8;
}
.community-post-more > button:hover { background: #f8f6ef; color: #18382f; }

@media (max-width: 719px) {
  .community-detail-bar { margin: 0 -2px; padding: 6px 2px; top: 38px; }
  .community-back-command { min-height: 36px; padding-left: 9px; padding-right: 11px; }
  .community-detail-bar > #communityDetailContext {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  #communityFeed > .community-post .community-post-head { padding-bottom: 9px; }
  #communityFeed > .community-post .community-post-actions { margin-top: 2px; padding-top: 7px; }
}

@media (prefers-reduced-motion: no-preference) {
  #communityFeed > .community-post { transition: background-color .18s ease, box-shadow .18s ease; }
}

/* Community workspace v53: compact desktop discovery controls around the real stream. */
.community-more-menu { position: relative; }
.community-more-menu > summary { height: 40px; list-style: none; min-width: 40px; width: 40px; }
.community-more-menu > summary::-webkit-details-marker { display: none; }
.community-more-menu > summary span { font-size: 20px; font-weight: 900; line-height: 1; transform: translateY(-2px); }
.community-more-menu[open] > summary { background: #eef2ed; border-color: #cbd6cd; color: #17483d; }
.community-more-menu-popover {
  background: #fffdf9;
  border: 1px solid #d9d3c8;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(31,42,37,.14);
  display: grid;
  min-width: 216px;
  overflow: hidden;
  position: absolute;
  right: 0;
  top: calc(100% + 7px);
  z-index: 30;
}
.community-more-menu-popover button {
  background: transparent;
  border: 0;
  border-bottom: 1px solid #ebe6dc;
  color: #26332f;
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: 2px;
  min-height: 54px;
  padding: 9px 12px;
  text-align: left;
}
.community-more-menu-popover button:last-child { border-bottom: 0; }
.community-more-menu-popover button:hover, .community-more-menu-popover button:focus-visible { background: #f2f5f1; color: #17483d; outline: 0; }
.community-more-menu-popover strong { font-size: 13px; }
.community-more-menu-popover span { color: #74807b; font-size: 11px; line-height: 1.35; }

@media (min-width: 720px) {
  .community-view { row-gap: 8px; }
  .community-header { margin-bottom: 0; padding-bottom: 14px; padding-top: 10px; }
  .community-search-bar { justify-self: start; margin-bottom: 0; max-width: 760px; min-height: 42px; width: 100%; }
  .community-tabs { margin-bottom: 0; min-height: 40px; }
  .community-tabs button { min-height: 40px; }
  .community-filter-row { padding: 0 0 8px; }
  .community-tag-quick-filters { margin: 0 0 4px; max-width: none; padding-bottom: 2px; }
  .community-stream-heading { align-items: center; margin-top: 0; padding: 9px 0 10px; }
  .community-stream-heading .icon-command { flex: 0 0 40px; width: 40px; }
}

@media (min-width: 1280px) {
  .community-more-menu { display: none; }
  .community-search-bar { max-width: 780px; }
  #communityFeedPanel .community-filter-row { grid-column: 1; grid-row: 1; }
  #communityFeedPanel .community-tag-quick-filters { grid-column: 1; grid-row: 2; }
  #communityFeedPanel .community-stream-heading { grid-column: 1; grid-row: 3; }
  #communityFeedPanel #communityFeedStatus { grid-column: 1; grid-row: 4; }
  #communityFeedPanel #communityFeed { grid-column: 1; grid-row: 5; }
  #communityFeedPanel #communityLoadMore { grid-column: 1; grid-row: 6; }
  #communityFeedPanel .community-side-stack {
    align-self: start;
    display: grid;
    gap: 20px;
    grid-column: 2;
    grid-row: 3 / span 4;
    min-width: 0;
  }
  #communityFeedPanel .community-side-stack .community-side-rail {
    display: block;
    grid-column: auto;
    grid-row: auto;
  }
  #communityFeedPanel .community-side-stack .community-spotlight {
    grid-column: auto;
    grid-row: auto;
    margin: 0;
    max-width: none;
    position: static;
    width: 100%;
  }
}

@media (min-width: 900px) and (max-width: 1279px) {
  #communityFeedPanel .community-spotlight { display: none !important; }
}

@media (max-width: 600px) {
  .community-header { margin-bottom: 4px; }
  .community-header-actions { gap: 6px; }
  .community-more-menu > summary { height: 38px; min-height: 38px; min-width: 38px; }
  .community-more-menu-popover { max-height: min(340px, calc(100vh - 160px)); overflow-y: auto; }
  .community-header h1 { margin-top: 0; }
  .community-search-bar { margin-bottom: 4px; min-height: 36px; }
  .community-tabs { margin-bottom: 4px; min-height: 36px; }
  .community-tabs button { min-height: 36px; }
  .community-stream-heading { display: none; }
  .community-filter-row { display: none; }
  .community-filter-row:not([hidden]) { align-items: stretch; display: flex; padding: 4px 0 8px; }
  .community-filter-row:not([hidden]) .community-filter-controls { width: 100%; }
  .community-filter-row { padding: 2px 0 4px; }
  .community-tag-quick-filters { gap: 5px; padding-bottom: 4px; }
  .community-tag-quick-filters button { min-height: 30px; padding: 4px 9px; }
  /* The official summary is the quickest way to understand what needs attention.
     Keep it compact on phones; the larger spotlight remains desktop-only. */
  .community-official-center { display: grid !important; gap: 8px; padding: 8px 0 10px; }
  .community-official-center-head { align-items: center; gap: 8px; }
  .community-official-center-head h2 { font-size: 17px; }
  .community-official-center-head p { font-size: 11px; }
  .community-official-center-grid { gap: 8px; }
  .community-official-center-card { border-radius: 7px; min-height: 0; padding: 11px 12px; }
  .community-official-center-card.activity { grid-template-columns: 72px minmax(0, 1fr); }
  .community-official-center-card.activity > img,
  .community-official-center-card.activity .community-official-center-media-empty { min-height: 94px; }
  .community-official-center-card-copy { gap: 5px; padding: 10px 11px; }
  .community-official-center-card strong { font-size: 14px; }
  .community-official-center-card p { -webkit-line-clamp: 2; font-size: 11px; }
  .community-official-center-card-facts { gap: 6px; }
  .community-official-center-card-facts small { font-size: 9px; }
  .community-official-center-card-facts b { font-size: 11px; }
  .community-official-center-action { font-size: 11px; }
  .community-spotlight { display: none !important; }
  .community-official-strip { display: none !important; }
}
/* Brand discovery and directory */
.home-quick-tools,.home-brand-discovery,.brand-library-view{margin-top:24px}
.home-quick-tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.home-quick-tool-grid button{display:flex;align-items:center;gap:10px;min-height:68px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;color:inherit}
.home-quick-tool-grid button:hover{border-color:var(--brand)}
.home-quick-tool-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-weight:900;font-size:14px}
.home-quick-tool-grid strong,.home-quick-tool-grid small{display:block}.home-quick-tool-grid small{margin-top:3px;color:var(--muted);font-size:12px}
.home-brand-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.home-brand-card,.brand-library-card{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;min-width:0;min-height:92px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:inherit;text-align:left}
.home-brand-card:hover,.brand-library-card:hover{border-color:var(--brand)}
.brand-logo-placeholder{display:grid;place-items:center;position:relative;overflow:hidden;flex:0 0 40px;width:40px;height:40px;border-radius:8px;background:#eef2ed;color:var(--brand);font-weight:900}
.brand-logo-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.home-brand-card>.brand-logo-placeholder,.brand-library-card>.brand-logo-placeholder{grid-column:1;grid-row:1/span 2}
.home-brand-card>span,.brand-library-card>span{grid-column:2;min-width:0}
.home-brand-card strong,.brand-library-card strong{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;line-height:1.35;min-height:2.7em;overflow:hidden;overflow-wrap:anywhere;white-space:normal}.home-brand-card small,.brand-library-card small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}
.home-brand-count{grid-column:2;margin:6px 0 0;color:var(--brand);font-size:12px;font-weight:800;white-space:nowrap}
.home-brand-card-skeleton{pointer-events:none}.home-brand-card-skeleton .brand-logo-placeholder,.home-brand-card-skeleton i,.home-brand-card-skeleton em,.home-brand-card-skeleton b{display:block;background:linear-gradient(100deg,#e9ede8 20%,#f7f9f6 42%,#e9ede8 64%);background-size:240% 100%;animation:home-brand-skeleton 1.35s ease-in-out infinite}.home-brand-card-skeleton .brand-logo-placeholder{border:0;color:transparent}.home-brand-card-skeleton i{width:88%;height:14px;border-radius:4px}.home-brand-card-skeleton em{width:62%;height:11px;margin-top:9px;border-radius:4px}.home-brand-card-skeleton b{grid-column:2;width:70px;height:11px;margin-top:9px;border-radius:4px}@keyframes home-brand-skeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}
.home-brand-status,.brand-library-status{min-height:20px;color:var(--muted);font-size:13px}
.brand-library-controls{display:grid;grid-template-columns:180px minmax(220px,1fr);gap:12px;align-items:end;margin:18px 0}
.brand-library-controls label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}
.brand-library-controls input,.brand-library-controls select{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:inherit}
.brand-library-initials{grid-column:1/-1;display:flex;gap:6px;overflow:auto;padding-bottom:3px}
.brand-library-initials button{flex:0 0 34px;min-height:34px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:inherit;white-space:nowrap}.brand-library-initials button:first-child{flex-basis:46px}.brand-library-initials button.active{background:var(--brand);border-color:var(--brand);color:#fff}
@media (min-width:768px){.brand-library-initials{gap:5px;overflow:visible;padding-bottom:0}.brand-library-initials button{flex:1 1 30px;min-width:30px}.brand-library-initials button:first-child{flex:0 0 46px}}
.brand-library-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.brand-library-more{margin:18px auto}
.brand-detail-panel{margin-top:24px;padding:22px 0 0;border:0;border-top:1px solid var(--line);background:transparent}
.brand-library-view.brand-detail-open>.section-heading,.brand-library-view.brand-detail-open>.brand-library-controls,.brand-library-view.brand-detail-open>.brand-library-status,.brand-library-view.brand-detail-open>.brand-library-list,.brand-library-view.brand-detail-open>.brand-library-more{display:none!important}.brand-library-view.brand-detail-open>.brand-detail-panel{margin-top:0;padding-top:0;border-top:0}.brand-detail-back{display:inline-flex;align-items:center;min-height:38px;margin:0 0 18px;padding:0;border:0;background:transparent;color:var(--brand);font-size:13px;font-weight:850;text-align:left}.brand-detail-back:hover{text-decoration:underline;text-underline-offset:3px}
.brand-detail-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 24px;align-items:center;padding:2px 0 20px}
.brand-detail-head{display:flex;gap:14px;align-items:center;min-width:0}.brand-detail-head .brand-logo-placeholder{flex-basis:52px;width:52px;height:52px;border:1px solid rgba(221,216,205,.72)}.brand-detail-head>div{min-width:0}.brand-detail-head h3{margin:0;overflow-wrap:anywhere;font-size:22px;line-height:1.25}.brand-detail-meta{margin:4px 0 0;color:var(--muted);font-size:13px}
.brand-detail-summary{grid-column:1;display:flex;align-items:center;gap:7px;margin:0;color:var(--muted);font-size:13px;font-weight:750}.brand-detail-summary i{font-style:normal;color:#a5aaa5}.brand-detail-actions{grid-column:2;grid-row:1/span 2}.brand-follow-action{min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--brand);font-weight:850;transition:border-color .16s ease,background-color .16s ease}.brand-follow-action:hover{border-color:var(--brand);background:#f7faf6}.brand-follow-action:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.brand-product-heading{display:grid;grid-template-columns:48px minmax(0,1fr) auto 14px;gap:12px;align-items:center;margin-top:8px;padding:10px 10px 9px;border-bottom:1px solid var(--line);color:var(--muted)}.brand-product-heading h4{grid-column:1/3;margin:0;color:var(--ink);font-size:15px}.brand-product-heading span{font-size:12px;font-weight:750}.brand-product-heading i{width:14px}
.brand-product-list{display:grid}.brand-product-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto 14px;gap:12px;align-items:center;width:100%;min-height:68px;padding:8px 10px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:inherit;text-align:left;font:inherit;transition:background-color .14s ease}.brand-product-row:hover,.brand-product-row:focus-visible{background:#f1f4ef}.brand-product-row:active{background:#e9eee8}.brand-product-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.brand-product-row strong{min-width:0;overflow-wrap:anywhere;font-size:14px;line-height:1.45}.brand-product-row>span:not(.brand-product-image){color:var(--brand);font-size:13px;font-weight:850;white-space:nowrap}.brand-product-row i{color:#849089;font-size:20px;font-style:normal;line-height:1;text-align:right;transition:transform .14s ease}.brand-product-row:hover i{transform:translateX(2px)}
.brand-product-image{position:relative;display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#f1f4ef;color:#7c8982;font-size:10px;font-weight:800}.brand-product-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}.brand-product-image img+span{display:none}.brand-product-image.fallback{font-size:10px}
.brand-product-more{display:block;min-height:42px;margin:18px auto 0;padding:0 16px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--brand);font-weight:850}.brand-product-more:hover{border-color:var(--brand)}.brand-product-empty{display:grid;gap:5px;padding:30px 10px;border-bottom:1px solid var(--line);color:var(--muted)}.brand-product-empty strong{color:var(--ink)}.brand-product-empty span{font-size:13px}
.brand-detail-summary-delayed,.brand-product-delayed strong{color:#8a5a22}.brand-product-delayed{padding:28px 10px;background:#fffaf2;border-top:1px solid #eadbc6;border-bottom-color:#eadbc6}
.brand-detail-loading{display:grid;gap:16px;max-width:760px;color:var(--muted);font-size:13px}.brand-detail-loading-head{display:flex;align-items:center;gap:14px}.brand-detail-loading-head>i{width:52px;height:52px;border-radius:8px;background:#e7eae5}.brand-detail-loading-head>span{display:grid;gap:8px;flex:1}.brand-detail-loading-head b,.brand-detail-loading-list b{display:block;border-radius:4px;background:linear-gradient(90deg,#e7e9e5 25%,#f3f4f1 45%,#e7e9e5 65%);background-size:240% 100%;animation:brand-detail-pulse 1.25s ease-in-out infinite}.brand-detail-loading-head b:first-child{width:min(280px,70%);height:18px}.brand-detail-loading-head b:last-child{width:120px;height:12px}.brand-detail-loading-list{display:grid}.brand-detail-loading-list b{height:52px;border-radius:0;border-bottom:1px solid var(--line)}.brand-detail-error{display:grid;gap:6px;justify-items:start;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.brand-detail-error strong{font-size:16px}.brand-detail-error span{color:var(--muted);font-size:13px}.brand-detail-error button{min-height:38px;margin-top:8px;padding:0 13px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--brand);font-weight:850}@keyframes brand-detail-pulse{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (max-width:767px){.home-quick-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-brand-list{grid-template-columns:repeat(2,minmax(0,1fr))}.home-brand-card strong{-webkit-line-clamp:unset;display:block;font-size:13px;min-height:4.05em}.home-brand-card small{line-height:1.35;min-height:2.7em;overflow-wrap:anywhere;white-space:normal}.brand-library-view>.section-heading{align-items:flex-start}.brand-library-view>.section-heading>div{min-width:0}.brand-library-view>.section-heading>.text-button{flex:0 0 auto;padding-left:8px;white-space:nowrap}.brand-library-controls{grid-template-columns:1fr}.brand-library-list{grid-template-columns:1fr}.brand-library-initials{grid-column:auto}.brand-detail-panel{margin-top:18px;padding:18px 0 calc(92px + env(safe-area-inset-bottom))}.brand-detail-back{margin-bottom:14px}.brand-detail-overview{grid-template-columns:minmax(0,1fr) auto;gap:12px 10px;padding-bottom:16px}.brand-detail-head{grid-column:1/-1;gap:11px}.brand-detail-head .brand-logo-placeholder{flex-basis:44px;width:44px;height:44px}.brand-detail-head h3{font-size:18px}.brand-detail-summary{grid-column:1;grid-row:2;font-size:12px}.brand-detail-actions{grid-column:2;grid-row:2;align-self:center}.brand-follow-action{min-height:36px;padding:0 10px;font-size:13px}.brand-product-heading{grid-template-columns:40px minmax(0,1fr) auto 10px;gap:8px;margin-top:4px;padding:9px 4px}.brand-product-heading i{width:10px}.brand-product-row{grid-template-columns:40px minmax(0,1fr) auto 10px;gap:8px;min-height:60px;padding:7px 4px}.brand-product-image{width:40px;height:40px}.brand-product-row strong{font-size:13px}.brand-product-row>span:not(.brand-product-image){font-size:12px}.brand-detail-loading-list b{height:56px}}
@media (prefers-reduced-motion:reduce){.brand-detail-loading-head b,.brand-detail-loading-list b{animation:none}.brand-product-row,.brand-product-row i,.brand-follow-action{transition:none}}
.membership-payment-native{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px;margin:16px 0;border:1px solid rgba(205,164,118,.35);background:rgba(255,255,255,.04);text-align:center}.membership-payment-native img{display:block;width:280px;height:280px;max-width:100%;image-rendering:auto}.membership-payment-native p{margin:0;color:var(--muted,#9d9a96);font-size:13px}

/* Qiawen v3 wordmark: the complete Chinese name is the primary brand asset. */
.brand-lockup {
  align-items: center;
  display: inline-flex;
  justify-self: start;
  min-height: 44px;
  white-space: nowrap;
}
.brand-lockup .brand-wordmark {
  display: block;
  flex: 0 0 auto;
  height: auto;
  width: 190px;
}
@media (max-width: 899px) {
  .brand-lockup .brand-wordmark { width: 156px; }
}

/* Help center: dense, task-oriented reading surface shared by desktop and mobile. */
.help-center-view{background:var(--surface,#f7f8f6);min-height:calc(100vh - 76px);padding:clamp(22px,4vw,52px) clamp(16px,4vw,56px) 72px;color:var(--ink,#20302a)}
.help-shell{width:min(1180px,100%);margin:0 auto}.help-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin:0 auto 22px}.help-heading h1{font-size:clamp(30px,4vw,48px);line-height:1.12;margin:8px 0 6px;letter-spacing:0}.help-heading p{margin:0;color:var(--muted,#69736e);font-size:16px}.help-heading.compact h1{font-size:clamp(28px,3.2vw,40px)}.help-heading.compact{margin-bottom:14px}.help-heading .eyebrow{color:var(--accent,#b36d32);font-size:11px;letter-spacing:.08em;font-weight:700}.help-back-button{border:0;background:transparent;color:var(--accent,#8f522d);font:inherit;font-weight:700;cursor:pointer;padding:8px 0}.help-back-button.inline{display:block;font-size:14px;margin-bottom:12px}.help-updated{display:block;color:var(--muted,#69736e);margin-top:12px}.help-search{width:min(820px,100%);margin:0 auto 34px}.help-search label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.help-search>div{display:flex;min-height:48px;background:#fff;border:1px solid rgba(38,58,48,.22);border-radius:7px;overflow:hidden;box-shadow:0 2px 10px rgba(26,45,37,.05)}.help-search input{flex:1;min-width:0;border:0;padding:0 15px;font:inherit;font-size:16px;outline:none;background:transparent}.help-search button{border:0;border-left:1px solid rgba(38,58,48,.12);background:#1f5a47;color:#fff;font:inherit;font-weight:700;padding:0 22px;cursor:pointer}.help-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:42px;align-items:start}.help-layout aside{position:sticky;top:92px}.help-category-nav{display:flex;flex-direction:column;gap:4px}.help-category-nav a{display:flex;gap:10px;align-items:flex-start;text-decoration:none;color:inherit;padding:11px 10px;border-left:3px solid transparent;border-radius:3px}.help-category-nav a:hover,.help-category-nav a.active{background:#e8efeb;border-left-color:#28735a}.help-category-nav strong,.help-category-nav small{display:block}.help-category-nav strong{font-size:14px}.help-category-nav small{font-size:12px;color:var(--muted,#69736e);line-height:1.4;margin-top:3px}.help-category-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid rgba(40,115,90,.28);color:#28735a;font-size:11px;border-radius:50%;font-weight:700}.help-section{margin-bottom:38px}.help-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:11px;border-bottom:1px solid rgba(38,58,48,.12);padding-bottom:10px}.help-section-heading h2{margin:0;font-size:20px}.help-section-heading span{color:var(--muted,#69736e);font-size:13px}.help-article-list{border-top:1px solid rgba(38,58,48,.08)}.help-article-row{border-bottom:1px solid rgba(38,58,48,.1)}.help-article-row a{display:flex;align-items:center;justify-content:space-between;gap:18px;text-decoration:none;color:inherit;padding:15px 3px}.help-article-row a:hover{background:rgba(40,115,90,.04)}.help-article-row-main{min-width:0}.help-article-row-main strong,.help-article-row-main small{display:block}.help-article-row-main strong{font-size:16px;line-height:1.45}.help-article-row-main small{color:var(--muted,#69736e);font-size:13px;line-height:1.5;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.help-article-row-meta{flex:0 0 auto;color:var(--muted,#69736e);font-size:12px;white-space:nowrap}.help-article-row-meta i{font-size:18px;font-style:normal;margin-left:5px;color:#28735a}.help-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid rgba(38,58,48,.12);background:rgba(38,58,48,.12)}.help-category-grid a{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:3px;background:#fff;padding:17px;text-decoration:none;color:inherit}.help-category-grid a:hover{background:#f5faf7}.help-category-grid .help-category-icon{grid-row:span 2}.help-category-grid strong{font-size:15px}.help-category-grid small{font-size:12px;color:var(--muted,#69736e);line-height:1.45}.help-onboarding{display:flex;flex-direction:column;border-left:1px solid rgba(38,58,48,.13)}.help-onboarding a{display:flex;gap:12px;align-items:center;padding:11px 14px;text-decoration:none;color:inherit}.help-onboarding a:hover{background:rgba(40,115,90,.04)}.help-onboarding b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e6efe9;color:#28735a;font-size:12px}.help-onboarding strong,.help-onboarding small{display:block}.help-onboarding small{font-size:12px;color:var(--muted,#69736e);margin-top:2px}.help-contact{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid rgba(38,58,48,.16);padding-top:20px;margin-top:28px}.help-contact strong{font-size:17px}.help-contact p{margin:4px 0 0;color:var(--muted,#69736e);font-size:13px}.help-button{min-height:42px;border:1px solid transparent;border-radius:5px;padding:0 17px;font:inherit;font-weight:700;cursor:pointer}.help-button.primary{background:#1f5a47;color:#fff}.help-button.secondary{background:#fff;border-color:rgba(38,58,48,.22);color:#285b48}.help-button:focus-visible,.help-search button:focus-visible,.help-search input:focus-visible,.help-category-nav a:focus-visible,.help-article-row a:focus-visible{outline:3px solid rgba(198,123,55,.38);outline-offset:2px}.help-article-page{width:min(820px,100%);margin:0 auto}.help-article-content{font-size:16px;line-height:1.75}.help-article-content h2,.help-article-content h3,.help-article-content h4{margin:29px 0 9px;line-height:1.35}.help-article-content p{margin:0 0 15px}.help-steps,.help-list{padding-left:28px;margin:9px 0 20px}.help-steps li,.help-list li{padding-left:5px;margin:9px 0}.help-callout{margin:18px 0;padding:13px 15px;border-left:3px solid #28735a;background:#eef6f1}.help-callout.warning{border-left-color:#bb7135;background:#fff5e9}.help-callout.success{border-left-color:#28735a}.help-faq{border-bottom:1px solid rgba(38,58,48,.13);padding:12px 0}.help-faq summary{cursor:pointer;font-weight:700}.help-faq p{margin:9px 0 0;color:var(--muted,#69736e)}.help-media{margin:22px 0}.help-media img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#edf0ee;border:1px solid rgba(38,58,48,.12)}.help-media figcaption{font-size:12px;color:var(--muted,#69736e);margin-top:6px}.help-use-button{margin:30px 0 10px;min-width:132px}.help-related{margin-top:42px}.help-feedback{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid rgba(38,58,48,.16);padding:20px 0;margin-top:35px}.help-feedback>div{display:flex;gap:8px}.help-feedback.submitted{align-items:center}.help-feedback.submitted strong{color:#28735a}.help-reason-list{display:flex;flex-wrap:wrap;gap:7px}.help-reason{border:1px solid rgba(38,58,48,.2);background:#fff;border-radius:4px;padding:8px 10px;cursor:pointer;font:inherit;font-size:13px}.help-feedback small{display:block;color:var(--muted,#69736e);font-size:12px}.help-search-page{width:min(820px,100%);margin:0 auto}.help-no-results{padding:24px 0}.help-no-results strong{font-size:18px}.help-no-results p,.help-muted{color:var(--muted,#69736e)}.help-no-results .help-category-nav{margin-top:22px}.help-state{width:min(760px,100%);margin:12vh auto;text-align:center;padding:24px}.help-state strong{display:block;font-size:18px}.help-state p{color:var(--muted,#69736e);margin:8px 0 18px}.help-state.error{color:#7e3d2d}.help-state .help-button{margin-top:5px}.help-article-content mark,.help-article-row mark{background:#ffe0a8;color:inherit;padding:0 2px}.help-center-active .app-header{position:relative;z-index:2}
@media (max-width: 800px){.help-center-view{padding:20px 14px 56px}.help-layout{display:block}.help-layout aside{position:static;overflow:auto;margin:0 -14px 25px;padding:0 14px}.help-category-nav{flex-direction:row;width:max-content}.help-category-nav a{min-width:165px;border-left:0;border-bottom:3px solid transparent;border-radius:0}.help-category-nav a.active,.help-category-nav a:hover{border-left:0;border-bottom-color:#28735a}.help-category-nav small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:145px}.help-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.help-heading{display:block}.help-heading .help-back-button{margin-top:14px}.help-article-content{font-size:15px;line-height:1.7}.help-article-row a{padding:13px 2px}.help-article-row-main small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.help-contact,.help-feedback{display:block}.help-contact .help-button,.help-feedback>div{margin-top:14px}.help-feedback>div{display:flex}.help-button{min-height:44px}.help-reason-list{margin-top:12px}}
@media (max-width: 390px){.help-category-grid{grid-template-columns:1fr}.help-search button{padding:0 14px}.help-heading h1{font-size:30px}.help-article-row-meta{font-size:11px}}
.help-stale-notice{width:min(1180px,100%);margin:0 auto 18px;padding:10px 13px;border-left:3px solid #bb7135;background:#fff5e9;color:#684329;font-size:13px;line-height:1.5}.help-media button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:left}.help-media-fallback{display:grid;place-items:center;width:100%;aspect-ratio:16/9;padding:20px;background:#edf0ee;border:1px solid rgba(38,58,48,.12);color:var(--muted,#69736e);text-align:center;overflow-wrap:anywhere}
.help-replacement-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin-top:8px}
.help-heading h1{font-size:42px}.help-heading.compact h1{font-size:36px}@media(max-width:800px){.help-heading h1{font-size:32px}.help-heading.compact h1{font-size:30px}}
.help-center-view.active-view{display:block}.help-center-view .help-shell{width:100%;max-width:1180px;min-width:0}
@media(max-width:800px){.help-center-view{padding-bottom:96px}}
.support-context-banner{display:grid;gap:4px;margin:0 0 14px;padding:12px 14px;border-left:3px solid #28735a;background:#f2f7f4;color:#20302a}.support-context-banner span,.support-context-banner small{font-size:12px;color:#607069}.support-context-banner strong{font-size:14px}.support-context-banner a{width:max-content;margin-top:3px;color:#17654c;font-size:13px;font-weight:700;text-decoration:none}.support-context-banner a:focus-visible{outline:2px solid #28735a;outline-offset:3px}
