/* ─────────────────────────────────────────────────────────────────────────
   Surface CSS — auto-classified from legacy components/layout/app CSS files.
   Edit this file. Legacy files (*.style.css) are preserved but not loaded.
   Load order: tokens.css → base.css → surface.shared.css → surface.<name>.css
   ───────────────────────────────────────────────────────────────────────── */

.site-main {
  display: block;
}

.info-overlay__brand .logo__mark {
  stroke: #1f8f5f;
}

.info-overlay__brand .logo__wordmark-text {
  color: #1f8f5f;
}

.info-overlay__plan-link.is-active {
  background: rgba(31, 143, 95, 0.18);
  color: #0f3f2b;
}

.info-overlay__content .section {
  padding: clamp(46px, 5.5vw, 72px) 0;
  border-top: 1px solid rgba(31, 143, 95, 0.1);
}

.info-overlay__content .section--soft {
  background: linear-gradient(180deg, rgba(31, 143, 95, 0.05) 0%, rgba(31, 143, 95, 0.02) 100%);
}

.info-overlay__content .section--tint {
  background: linear-gradient(180deg, rgba(31, 143, 95, 0.08) 0%, rgba(31, 143, 95, 0.03) 100%);
}

.info-overlay__content .section-eyebrow,
.info-overlay__content .section-title,
.info-overlay__content .statement-title,
.info-overlay__content .split-panel__title,
.info-overlay__content .feature-card__title,
.info-overlay__content .compare-card__title,
.info-overlay__content .legal-block__title,
.info-overlay__content .cta-band__title {
  color: #123425;
}

.info-overlay__content .section-sub,
.info-overlay__content .statement-copy,
.info-overlay__content .split-copy,
.info-overlay__content .feature-card__body,
.info-overlay__content .compare-card__list li,
.info-overlay__content .legal-block__body,
.info-overlay__content .cta-band__body,
.info-overlay__content .pc-note {
  color: #355344;
}

.info-overlay__content,
.info-overlay__content p,
.info-overlay__content li,
.info-overlay__content h3,
.info-overlay__content h4,
.info-overlay__content .legal-head__meta,
.info-overlay__content .legal-block__list li,
.info-overlay__content .feature-card__link,
.info-overlay__content .section-eyebrow,
.info-overlay__content .panel-eyebrow,
.info-overlay__content a:not(.btn) {
  color: #234f39;
}

.info-overlay__content .feature-card,
.info-overlay__content .compare-card,
.info-overlay__content .cta-band,
.info-overlay__content .split-panel {
  background: #ffffff;
  border: 1px solid rgba(31, 143, 95, 0.12);
  box-shadow: 0 6px 18px rgba(7, 21, 16, 0.06);
}

.admin-bottom-nav__item.is-active {
  color: #1f8f5f;
}

.admin-bottom-nav__item.is-active .admin-bottom-nav__icon {
  background: rgba(31, 143, 95, 0.12);
}

.admin-shell__brand .logo__mark {
  stroke: #2aac76;
}

.admin-shell__brand .logo__wordmark-text {
  color: #ffffff;
  font-size: 1.05rem;
}

.admin-drawer__brand .logo__mark {
  stroke: var(--accent-1);
}

.admin-drawer__brand .logo__wordmark-text {
  color: var(--text-strong);
}

.admin-nav-item.is-active {
  background: rgba(42, 172, 118, 0.14);
  color: #ffffff;
  font-weight: 600;
}

.admin-nav-item.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 3px;
  background: #2aac76;
  border-radius: 0 3px 3px 0;
}

.admin-nav-item.is-active .admin-nav-item__icon {
  opacity: 1;
}

.admin-shell__nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.60);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background var(--t-fast), color var(--t-fast);
}

.admin-desktop-topbar__section {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
  white-space: nowrap;
}

.admin-desktop-topbar__sep {
  font-size: 0.875rem;
  color: var(--text-muted);
  opacity: 0.4;
}

.admin-shell__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.admin-shell__title {
  margin: 6px 0 0;
  color: var(--text-strong);
  font-size: clamp(1.8rem, 3vw, 2.45rem);
  font-weight: 780;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.admin-shell__intro {
  margin: 0;
  max-width: 68ch;
  color: var(--text-body);
  font-size: 1rem;
  line-height: 1.7;
}

.admin-shell__header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.admin-shell__badge {
  /* Deprecated — removed from topbar. Kept for any residual markup. */
  display: none;
}

.sys-switcher-pill.is-active {
  background: #ffffff;
  color: #2aac76;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.sys-nav-item.is-active {
  background: rgba(42, 172, 118, 0.12);
  color: #071510;
}

.sys-panel.is-active {
  display: block;
}

body.is-sys-overlay-open {
  overflow: hidden;
}

.container {
  width: min(100%, var(--content-max));
  margin: 0 auto;
  padding-inline: clamp(22px, 4vw, 56px);
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--nav-h);
  background: transparent;
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(0px);
  transition: background var(--t-base), border-color var(--t-base), box-shadow var(--t-base), backdrop-filter var(--t-base);
}

.site-header.is-scrolled {
  background: rgba(7, 21, 16, 0.88);
  border-bottom-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(16px);
}

.site-header__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-inline: clamp(24px, 3vw, 44px);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  height: 100%;
}

.site-brand {
  display: inline-flex;
  align-items: center;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.logo__mark {
  flex-shrink: 0;
}

.logo__wordmark-text {
  display: inline-block;
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  -webkit-text-fill-color: unset;
  color: #ffffff;
  font-size: 1.38rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  padding-bottom: 0.06em;
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-width: 0;
  gap: 6px;
}

.site-nav__primary {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: 6px;
}

.site-nav--app .site-nav__primary {
  display: none;
}

.site-nav--app {
  justify-content: flex-end;
}

.site-nav__actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 10px;
}

.site-nav__cta {
  margin-left: 8px;
  white-space: nowrap;
}

.site-nav__auth {
  white-space: nowrap;
}

.site-nav__auth[hidden] {
  display: none !important;
}

.nav-link {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.18;
  transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast);
}

.nav-link:hover {
  background: rgba(255, 255, 255, 0.07);
  color: #ffffff;
}

.nav-link.is-active {
  background: rgba(31, 143, 95, 0.20);
  color: #2aac76;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.nav-toggle span {
  width: 20px;
  height: 1.5px;
  margin-inline: auto;
  background: #ffffff;
  border-radius: 999px;
  transition: transform var(--t-fast), opacity var(--t-fast);
}

.nav-toggle.is-active span:first-child {
  transform: translateY(6.5px) rotate(45deg);
}

.nav-toggle.is-active span:nth-child(2) {
  opacity: 0;
}

.nav-toggle.is-active span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

.page-hero__eyebrow,
.section-eyebrow,
.panel-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--accent-blue);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.page-hero__eyebrow::before,
.section-eyebrow::before,
.panel-eyebrow::before {
  content: '';
  display: block;
  width: 22px;
  height: 1px;
  background: var(--grad-brand);
}

.cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.page-hero__panel {
  position: relative;
  z-index: 1;
  padding: clamp(24px, 4vw, 32px);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(12px);
}

.hero-support__layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(24px, 4vw, 44px);
  align-items: center;
}

.hero-support {
  padding-top: clamp(18px, 3vw, 28px);
}

.platform-preview {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.25rem 0;
}

.pp-card {
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 14px;
  padding: 1.125rem 1.375rem;
  transition: border-color 0.2s;
}

.pp-card--live {
  border-color: rgba(42, 172, 118, 0.25);
}

.pp-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.625rem;
  gap: 0.75rem;
}

.pp-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.675rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: #2aac76;
  background: rgba(42, 172, 118, 0.12);
  border: 1px solid rgba(42, 172, 118, 0.22);
  padding: 3px 9px 3px 7px;
  border-radius: 999px;
  flex-shrink: 0;
}

.pp-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #2aac76;
  animation: pp-pulse 1.8s ease-in-out infinite;
}

@keyframes pp-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.7); }
}

.pp-card__venue {
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pp-card__event {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #ffffff;
  margin: 0 0 0.625rem;
  line-height: 1.4;
}

.pp-card__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.pp-viewers {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.775rem;
  color: rgba(255, 255, 255, 0.38);
}

.pp-tag {
  font-size: 0.675rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.07);
  padding: 2px 8px;
  border-radius: 999px;
}

.pp-card__dist {
  font-size: 0.775rem;
  color: rgba(255, 255, 255, 0.38);
  margin-left: auto;
}

.pp-card__product-name {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 0.5rem;
  letter-spacing: -0.02em;
}

.pp-price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.pp-price {
  font-size: 1.125rem;
  font-weight: 700;
  color: #2aac76;
  letter-spacing: -0.02em;
}

.pp-card__dispensary {
  font-size: 0.775rem;
  color: rgba(255, 255, 255, 0.38);
}

.pp-card__quote {
  font-size: 0.9375rem;
  font-style: italic;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.55;
  margin: 0 0 0.625rem;
}

.pp-card__attr {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0.02em;
}

.page-hero__panel-title,
.section-title,
.statement-title,
.cta-band__title,
.compare-card__title,
.split-panel__title,
.feature-card__title,
.step-card__title,
.site-footer__brand-name {
  color: var(--text-strong);
  letter-spacing: -0.035em;
}

.page-hero__panel-title {
  margin: 14px 0 12px;
  font-size: 1.58rem;
  font-weight: 700;
  line-height: 1.1;
}

.page-hero__panel-body,
.split-panel__body,
.split-copy,
.statement-copy,
.section-sub,
.feature-card__body,
.compare-card__list li,
.step-card__body {
  color: var(--text-reading);
}

.form-note,
.site-footer__brand-copy,
.site-footer__meta p {
  color: rgba(255, 255, 255, 0.78);
}

.page-hero__panel-list,
.split-panel__list,
.compare-card__list,
.form-detail-list {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.page-hero__panel-list li,
.split-panel__list li,
.compare-card__list li,
.form-detail-list li {
  display: flex;
  gap: 10px;
  align-items: start;
  line-height: 1.58;
}

.page-hero__panel-list li::before,
.split-panel__list li::before,
.compare-card__list li::before,
.form-detail-list li::before {
  content: '→';
  color: var(--accent-blue);
  flex-shrink: 0;
}

.section {
  position: relative;
  padding: clamp(72px, 8vw, 120px) 0;
}

.section--soft {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(31, 143, 95, 0.04) 100%);
}

.section--tint {
  background: linear-gradient(180deg, rgba(31, 143, 95, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
}

.section--warm {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(31, 143, 95, 0.04) 100%);
}

.pc-icon .icon svg {
  width: 28px;
  height: 28px;
}

.pricing-cards-section--horizontal .container {
  width: min(100%, 1400px);
}

.section-intro,
.statement-wrap {
  max-width: 900px;
}

.section-intro {
  margin-bottom: clamp(24px, 3vw, 34px);
}

.section-title,
.statement-title,
.cta-band__title {
  margin: 18px 0 18px;
  font-size: clamp(2.1rem, 4.5vw, 3.9rem);
  font-weight: 760;
  line-height: 1.02;
}

.section-sub,
.statement-body,
.split-stack {
  max-width: 68ch;
}

.section-sub {
  font-size: 1.08rem;
  font-weight: 460;
  line-height: 1.84;
}

.split-layout,
.form-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: clamp(24px, 5vw, 56px);
  align-items: start;
}

.site-footer {
  padding: 32px 0 48px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.18) 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-inline: clamp(24px, 3vw, 44px);
  display: grid;
  gap: 20px;
}

.site-footer__brand {
  display: flex;
  gap: 14px;
  align-items: start;
}

.site-footer__brand-copy {
  max-width: 52ch;
}

.site-footer .logo__wordmark-text {
  font-size: 1.28rem;
}

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 16px;
}

.site-footer__meta {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 16px;
}

.footer__link {
  color: var(--text-muted);
  font-size: 0.92rem;
  font-weight: 600;
}

.admin-drawer-item.is-active {
  background: rgba(31,143,95,0.14);
  color: var(--accent-blue);
}

@media (max-width: 1040px) {
  .page-hero {
    height: auto;
  }

  .page-hero__stack {
    min-height: calc(100svh - var(--nav-h) - clamp(30px, 5vw, 46px));
    transform: translateY(-4vh);
    padding-top: 0;
  }

  .split-layout,
  .form-layout,
  .hero-support__layout {
    grid-template-columns: 1fr;
  }

  .page-hero__copy {
    max-width: none;
  }

  .fh-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .feature-highlight--flip .fh-inner {
    direction: ltr;
  }

  .fh-callout {
    position: static;
  }
}

@media (max-width: 900px) {
  .nav-toggle {
    display: inline-flex;
  }

  .site-nav {
    position: absolute;
    top: calc(var(--nav-h) - 4px);
    right: 18px;
    left: 18px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 16px;
    border-radius: var(--r-md);
    background: rgba(7, 21, 16, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.10);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(20px);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity var(--t-base), transform var(--t-base);
  }

  .site-nav__primary {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    width: 100%;
  }

  .site-nav.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .nav-link,
  .site-nav__cta,
  .site-nav__auth {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
    border-radius: var(--r-xs);
    padding: 12px 16px;
  }

  .site-nav__actions {
    display: grid;
    gap: 8px;
    width: 100%;
  }
}

@media (max-width: 720px) {
  .page-hero {
    padding-top: calc(var(--nav-h) + 18px);
  }

  .page-hero__stack {
    min-height: calc(100svh - var(--nav-h) - 36px);
    transform: translateY(-2vh);
    padding-top: 0;
  }

  .page-hero__scroll {
    bottom: 14px;
  }

  .page-hero__title {
    width: 100%;
    min-height: auto;
  }

  .page-hero__body {
    min-height: auto;
  }


  .logo__wordmark-text {
    font-size: 1.24rem;
  }

  .hero-support__visual .hero-visual,
  .hero-visual {
    min-height: 216px;
  }

  .hero-visual__ring--one {
    width: 142px;
    height: 142px;
  }

  .hero-visual__ring--two {
    width: 208px;
    height: 208px;
  }

  .page-hero__actions,
  .cta-band__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .site-footer__brand {
    flex-direction: column;
    gap: 10px;
  }

  .site-footer__nav {
    gap: 8px 14px;
  }

  .site-footer__meta p {
    font-size: 0.8rem;
  }
}

.page-hero--compact {
  min-height: unset;
  height: auto;
  padding: calc(var(--nav-h) + clamp(28px, 4vw, 48px)) 0 clamp(32px, 4vw, 52px);
}

.page-header {
  padding: calc(var(--nav-h) + 3.25rem) 0 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.page-header__inner {
  max-width: 680px;
}

.page-header__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #2aac76;
  margin: 0 0 1rem;
}

.page-header__title {
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.1;
  letter-spacing: -0.035em;
  margin: 0 0 1rem;
}

.page-header__body {
  font-size: 1.0625rem;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.7;
  margin: 0;
  max-width: 580px;
}

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

@keyframes splash-glow-drift {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(3%, 4%) scale(1.08); }
}

@keyframes splash-bounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(5px); }
}

.bt-profile-head {
  margin-bottom: 2.5rem;
}

.bt-profile-identity {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 14px;
}

.bt-profile-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #1a3d2a;
  border: 2px solid rgba(42,172,118,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  color: #2aac76;
  flex-shrink: 0;
}

.bt-profile-identity__main {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-top: 4px;
}

.bt-profile-name {
  font-size: clamp(1.4rem, 4vw, 2rem);
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.2;
}

.bt-profile-bio {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.65);
  line-height: 1.6;
  margin: 0 0 14px;
  max-width: 60ch;
}

.bt-profile-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  font-size: 0.84rem;
  color: rgba(255,255,255,0.55);
  margin-bottom: 14px;
}

.bt-meta-item strong { color: rgba(255,255,255,0.8); }

.bt-meta-item--rating { display: flex; align-items: center; gap: 5px; }

.bt-dispos-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.bt-dispos-label {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.4);
  font-weight: 500;
}

.bt-reviews-section {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 2rem;
}

.bt-section-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 1.25rem;
}

.bt-section-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  margin: 0;
}

.bt-review-count {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.4);
}

.bt-empty {
  color: rgba(255,255,255,0.4);
  font-size: 0.875rem;
  padding: 1rem 0;
}

.feature-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.feature-card,
.compare-card,
.split-panel,
.step-card,
.intake-form,
.cta-band {
  position: relative;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35);
}

.feature-card,
.compare-card,
.step-card {
  display: grid;
  align-content: start;
  height: 100%;
  padding: 24px;
}

.split-panel {
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 24px;
}

.feature-card {
  display: flex;
  flex-direction: column;
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}

.feature-card:hover,
.compare-card:hover,
.step-card:hover,
.split-panel:hover {
  transform: translateY(-1px);
  border-color: rgba(31, 143, 95, 0.35);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
}

.feature-card__eyebrow {
  margin-bottom: 12px;
  color: var(--accent-blue);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.feature-card__title,
.compare-card__title,
.step-card__title,
.split-panel__title {
  margin: 0 0 10px;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.18;
}

.split-panel__title {
  margin: 8px 0 12px;
}

.feature-card__icon,
.compare-card__icon,
.step-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
  border-radius: 18px;
  background: rgba(31, 143, 95, 0.08);
  color: var(--accent-blue);
  border: 1px solid rgba(31, 143, 95, 0.12);
}

.compare-card__icon,
.step-card__icon {
  margin-bottom: 14px;
}

.feature-card__icon .icon svg,
.compare-card__icon .icon svg,
.step-card__icon .icon svg {
  width: 30px;
  height: 30px;
}

.feature-card__body,
.split-panel__body,
.compare-card__list li,
.step-card__body,
.statement-copy,
.split-copy {
  font-size: 1.1rem;
  line-height: 1.84;
  font-weight: 460;
}

.feature-card__actions {
  margin-top: auto;
  padding-top: 16px;
}

.feature-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent-blue);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
}

.feature-card__link::after {
  content: '→';
  font-size: 0.96rem;
}

.feature-card__link:hover {
  color: var(--text-strong);
}

.form-note,
.form-intro,
.site-footer__brand-copy,
.site-footer__meta p {
  font-size: 1.02rem;
  line-height: 1.74;
}

.statement-body,
.split-stack {
  display: grid;
  gap: 18px;
}

.compare-grid,
.steps-grid {
  display: grid;
  gap: 18px;
}

.compare-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.steps-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.step-card__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-bottom: 14px;
  border-radius: 999px;
  background: rgba(31, 143, 95, 0.1);
  color: var(--accent-blue);
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.cta-band {
  padding: clamp(28px, 5vw, 42px);
  background: linear-gradient(135deg, rgba(31, 143, 95, 0.18) 0%, rgba(42, 172, 118, 0.12) 45%, rgba(31, 143, 95, 0.06) 100%);
}

.cta-band__body {
  max-width: 58ch;
  margin: 0 0 24px;
  color: var(--text-body);
  font-size: 1rem;
  line-height: 1.72;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.94rem;
  font-weight: 700;
  transition: transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}

.btn:hover {
  transform: translateY(-1px);
}

.btn--primary {
  background: #1f8f5f;
  color: #fff;
  box-shadow: 0 12px 26px rgba(31, 143, 95, 0.35);
}

.btn--secondary {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.18);
}

.btn--small {
  min-height: 42px;
  padding-inline: 16px;
  font-size: 0.86rem;
}

.intake-form {
  padding: clamp(24px, 4vw, 30px);
}

.chat-message {
  display: flex;
  width: 100%;
  align-self: flex-start;
  animation: chat-rise 220ms ease;
}

.chat-message--user {
  justify-content: flex-end;
}

.chat-message__bubble {
  max-width: min(100%, 66%);
  padding: 15px 18px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(31, 143, 95, 0.08);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.chat-message--assistant .chat-message__bubble {
  background: linear-gradient(135deg, rgba(31, 143, 95, 0.16) 0%, rgba(56, 199, 147, 0.1) 100%);
  border-color: rgba(31, 143, 95, 0.14);
  border-bottom-left-radius: 12px;
}

.chat-message--user .chat-message__bubble {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  border-bottom-right-radius: 12px;
}

.chat-message__bubble p {
  margin: 0;
  color: var(--text-strong);
  font-size: 0.98rem;
  line-height: 1.72;
}

.chat-message__rich {
  display: grid;
  gap: 10px;
}

.chat-message__rich p {
  margin: 0;
}

.chat-message__rich ul {
  margin: 0;
  padding-left: 1.15rem;
  display: grid;
  gap: 7px;
}

.chat-message__rich li {
  color: var(--text-strong);
  font-size: 0.96rem;
  line-height: 1.6;
}

.chat-message__rich-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.chat-message__rich-links a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(31, 143, 95, 0.12);
  color: var(--text-strong);
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
}

.chat-message__bubble--typing {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.chat-message__bubble--typing span {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(31, 143, 95, 0.5);
  animation: chat-pulse 1s ease-in-out infinite;
}

.chat-message__bubble--typing span:nth-child(2) {
  animation-delay: 0.12s;
}

.chat-message__bubble--typing span:nth-child(3) {
  animation-delay: 0.24s;
}

.chat-chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border-radius: 100px;
  border: 1.5px solid rgba(31, 143, 95, 0.28);
  background: rgba(31, 143, 95, 0.04);
  color: var(--text-body);
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  line-height: 1;
}

.chat-chip:hover {
  background: rgba(31, 143, 95, 0.10);
  border-color: rgba(31, 143, 95, 0.5);
  color: var(--text-strong);
}

.chat-chip--selected {
  background: #1a6e47;
  border-color: #1a6e47;
  color: #fff;
}

.chat-chip--selected:hover {
  background: #145a3b;
  border-color: #145a3b;
  color: #fff;
}

.chat-chip--done {
  background: #1a6e47;
  border-color: #1a6e47;
  color: #fff;
  margin-left: 4px;
}

.chat-chip--done:hover:not(:disabled) {
  background: #145a3b;
}

.chat-chip--done:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.assessment-tracker__group {
  padding: 18px 0;
  border-bottom: 1px solid rgba(31, 143, 95, 0.08);
}

.assessment-tracker__group:last-child {
  border-bottom: 0;
}

.assessment-tracker__grouphead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.assessment-tracker__title {
  margin: 0;
  color: var(--text-strong);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.assessment-tracker__summary {
  margin: 6px 0 0;
  color: var(--text-muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.assessment-tracker__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(31, 143, 95, 0.1);
  color: var(--text-body);
  font-size: 0.78rem;
  font-weight: 700;
}

.assessment-tracker__list {
  display: grid;
  gap: 4px;
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
}

.assessment-tracker__item {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 10px 0;
}

.assessment-tracker__item.is-current {
  background: rgba(255, 255, 255, 0.24);
  border-radius: 14px;
  padding-inline: 10px;
  margin-inline: -10px;
}

.assessment-tracker__group:not(.is-open) .assessment-tracker__list {
  display: none;
}

.assessment-tracker__group.is-done .assessment-tracker__pill {
  color: var(--accent-blue);
}

.assessment-tracker__group.is-open .assessment-tracker__pill {
  background: rgba(31, 143, 95, 0.12);
  color: var(--accent-blue);
}

.assessment-tracker__box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-top: 3px;
  border-radius: 999px;
  border: 1px solid rgba(31, 143, 95, 0.22);
  background: rgba(255, 255, 255, 0.05);
  color: transparent;
  font-size: 0.75rem;
  font-weight: 800;
}

.assessment-tracker__item.is-done .assessment-tracker__box {
  background: rgba(31, 143, 95, 0.16);
  color: var(--accent-blue);
}

.assessment-tracker__copy {
  display: grid;
  gap: 4px;
}

.assessment-tracker__copy strong {
  color: var(--text-strong);
  font-size: 0.93rem;
}

.assessment-tracker__copy span {
  color: var(--text-body);
  font-size: 0.87rem;
  line-height: 1.5;
}

.assessment-toast {
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(26, 31, 39, 0.94);
  border: 1px solid rgba(31, 143, 95, 0.18);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.5;
  animation: toast-rise 220ms ease;
}

.assessment-toast--success {
  background: linear-gradient(135deg, rgba(26, 31, 39, 0.96) 0%, rgba(56, 199, 147, 0.82) 100%);
}

body.is-assessment-entry-overlay-open {
  overflow: hidden;
}

.assessment-entry-overlay {
  position: fixed;
  inset: 0;
  z-index: 260;
  display: grid;
  place-items: center;
  padding: 16px;
  overflow: hidden;
}

.assessment-entry-overlay[hidden] {
  display: none !important;
}

.assessment-entry-overlay__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(18, 24, 34, 0.48);
  backdrop-filter: blur(18px);
}

.assessment-entry-overlay__sheet {
  position: relative;
  z-index: 1;
  width: min(1240px, 100%);
  height: min(calc(100vh - 32px), 100%);
  max-height: calc(100vh - 32px);
  margin: 0 auto;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  border-radius: 34px;
  background:
    radial-gradient(circle at 14% 14%, rgba(31, 143, 95, 0.14), transparent 26%),
    radial-gradient(circle at 85% 12%, rgba(56, 199, 147, 0.1), transparent 22%),
    linear-gradient(180deg, rgba(7, 21, 16, 0.98) 0%, rgba(7, 21, 16, 0.92) 50%, rgba(7, 21, 16, 0.98) 100%);
  border: 1px solid rgba(31, 143, 95, 0.14);
  box-shadow: 0 36px 96px rgba(14, 20, 31, 0.22);
  overflow: hidden;
}

.assessment-entry-overlay__scroll {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.assessment-entry-overlay__content {
  display: grid;
  gap: 28px;
  padding: clamp(28px, 4vw, 44px);
}

.assessment-entry-overlay__hero,
.assessment-entry-overlay__section-head,
.assessment-entry-overlay__experience {
  display: grid;
  gap: 12px;
}

.assessment-entry-overlay__hero {
  max-width: 82ch;
}

.assessment-entry-overlay__eyebrow,
.assessment-entry-overlay__card-eyebrow,
.assessment-entry-overlay__section-eyebrow {
  margin: 0;
  color: var(--accent-blue);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.assessment-entry-overlay__title {
  margin: 0;
  color: var(--text-strong);
  font-size: clamp(2.3rem, 4vw, 4rem);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 0.96;
}

.assessment-entry-overlay__intro,
.assessment-entry-overlay__lead,
.assessment-entry-overlay__card-body,
.assessment-entry-overlay__section-intro,
.assessment-entry-overlay__experience-note,
.assessment-entry-overlay__links a,
.assessment-entry-overlay__list li {
  color: var(--text-body);
  font-size: 1rem;
  line-height: 1.76;
}

.assessment-entry-overlay__lead,
.assessment-entry-overlay__experience-note {
  color: var(--text-strong);
  font-weight: 560;
}

.assessment-entry-overlay__grid,
.assessment-entry-overlay__detail-grid {
  display: grid;
  gap: 18px;
}

.assessment-entry-overlay__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.assessment-entry-overlay__detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.assessment-entry-overlay__card,
.assessment-entry-overlay__detail-card,
.assessment-entry-overlay__experience {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 24px;
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(31, 143, 95, 0.1);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.23);
}

.assessment-entry-overlay__experience {
  background: linear-gradient(135deg, rgba(31, 143, 95, 0.1) 0%, rgba(56, 199, 147, 0.08) 100%);
}

.assessment-entry-overlay__card-title,
.assessment-entry-overlay__detail-title,
.assessment-entry-overlay__section-title {
  margin: 0;
  color: var(--text-strong);
  font-size: 1.28rem;
  font-weight: 760;
  letter-spacing: -0.03em;
  line-height: 1.08;
}

.assessment-entry-overlay__list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 1.1rem;
}

.assessment-entry-overlay__list--compact {
  gap: 7px;
}

.assessment-entry-overlay__footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 16px;
  padding: 22px clamp(24px, 4vw, 44px);
  border-top: 1px solid rgba(31, 143, 95, 0.1);
  background: rgba(255, 255, 255, 0.06);
}

.assessment-entry-overlay__consent {
  display: grid;
  gap: 12px;
}

.assessment-entry-overlay__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.assessment-entry-overlay__links a {
  text-decoration: none;
}

.assessment-entry-overlay__helper {
  margin: 0;
  color: var(--text-body);
  font-size: 0.94rem;
  line-height: 1.6;
}

.assessment-entry-overlay__check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--text-strong);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.5;
}

.assessment-entry-overlay__check input {
  margin-top: 0.18rem;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}

.assessment-entry-overlay__continue {
  min-width: 260px;
}

.assessment-entry-overlay__continue:disabled {
  opacity: 0.48;
  cursor: not-allowed;
  box-shadow: none;
}

.section--auth-entry {
  padding-top: calc(var(--nav-h) + 52px);
}

.auth-entry {
  display: grid;
  justify-items: center;
}

.auth-card {
  width: min(100%, 560px);
  padding: 32px;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--line-subtle);
  box-shadow: 0 20px 52px rgba(0, 0, 0, 0.32);
}

.auth-card__title {
  margin-top: 14px;
}

.auth-form {
  display: grid;
  gap: 14px;
  margin-top: 22px;
}

.auth-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
}

.auth-card__links a {
  text-decoration: none;
}

.admin-metrics {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-metric {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
}

.admin-metric__label {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.admin-metric__value {
  margin: 0;
  color: var(--text-strong);
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
}

.admin-table-shell--roomy {
  min-height: 320px;
}

.admin-table__identity,
.admin-table__select {
  display: grid;
  gap: 4px;
}

.admin-table__select {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}

.admin-table__select.is-selected .admin-table__strong,
.admin-table__select:hover .admin-table__strong {
  color: var(--accent-blue);
}

.admin-table__strong {
  color: var(--text-strong);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.28;
}

.admin-table__meta {
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.admin-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(25, 31, 42, 0.07);
  border: 1px solid rgba(25, 31, 42, 0.10);
  color: var(--text-body);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  text-transform: capitalize;
  white-space: nowrap;
}

.admin-pill--role-admin,
.admin-pill--session-active {
  background: rgba(31, 143, 95, 0.12);
  border-color: rgba(31, 143, 95, 0.16);
  color: var(--accent-blue);
}

.admin-pill--status-active,
.admin-pill--password-ready {
  background: rgba(56, 199, 147, 0.14);
  border-color: rgba(56, 199, 147, 0.18);
  color: #0f6358;
}

.admin-pill--status-pending-password-setup,
.admin-pill--password-missing,
.admin-pill--session-ready-for-account {
  background: rgba(245, 184, 77, 0.16);
  border-color: rgba(245, 184, 77, 0.2);
  color: #8b5a00;
}

.admin-pill--status-disabled,
.admin-pill--status-archived,
.admin-pill--session-unlinked,
.admin-pill--surface-private {
  background: rgba(25, 31, 42, 0.08);
  border-color: rgba(25, 31, 42, 0.12);
  color: var(--text-muted);
}

.admin-pill--surface-admin {
  background: rgba(31, 143, 95, 0.12);
  border-color: rgba(31, 143, 95, 0.16);
  color: var(--accent-blue);
}

.admin-pill--surface-public {
  background: rgba(56, 199, 147, 0.14);
  border-color: rgba(56, 199, 147, 0.18);
  color: #0f6358;
}

.admin-workspace,
.admin-activity-grid {
  display: grid;
  gap: 14px;
}

.admin-stat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-stat {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(31, 143, 95, 0.1);
}

.admin-stat__label {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.admin-stat__value {
  margin: 0;
  color: var(--text-strong);
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
}

.admin-workspace {
  grid-template-columns: 1fr;
  align-items: start;
}

.admin-workspace__list {
  display: grid;
  gap: 18px;
}

.admin-editor {
  position: sticky;
  top: 24px;
  display: grid;
  gap: 14px;
  padding: 18px;
}

.admin-editor--deep {
  align-content: start;
}

.admin-detail-stack {
  gap: 14px;
}

.admin-kv__row {
  display: grid;
  grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr);
  gap: 8px;
  align-items: start;
}

.admin-kv__row dt {
  color: var(--text-muted);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-timeline__item {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(250, 249, 246, 0.96);
  border: 1px solid rgba(31, 143, 95, 0.08);
}

.admin-timeline__head,
.admin-timeline__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.admin-timeline__time {
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 600;
  white-space: nowrap;
}

.admin-table__link {
  color: var(--accent-blue);
  font-weight: 700;
  text-decoration: none;
}

.admin-table__link:hover {
  color: var(--text-strong);
}

body.is-admin-overlay-open {
  overflow: hidden;
}

.admin-overlay__grid--three {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-editor__head,
.admin-password-form__head {
  display: grid;
  gap: 8px;
}

.field select,
.field input,
.field textarea {
  width: 100%;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-subtle);
  background: rgba(250, 249, 246, 0.96);
  color: var(--text-strong);
  padding: 11px 12px;
  outline: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}

.field select:focus,
.field input:focus,
.field textarea:focus {
  border-color: rgba(31, 143, 95, 0.28);
  box-shadow: 0 0 0 3px rgba(31, 143, 95, 0.1);
}

@keyframes chat-rise {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes chat-pulse {
  0%,
  80%,
  100% {
    opacity: 0.35;
    transform: translateY(0);
  }

  40% {
    opacity: 1;
    transform: translateY(-2px);
  }
}

@keyframes toast-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.field {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
}

.field label {
  color: var(--text-body);
  font-size: 0.9rem;
  font-weight: 600;
}

.field input,
.field textarea {
  width: 100%;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-subtle);
  background: rgba(250, 249, 246, 0.96);
  color: var(--text-strong);
  padding: 14px 15px;
  outline: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}

.field input:focus,
.field textarea:focus {
  border-color: rgba(31, 143, 95, 0.28);
  box-shadow: 0 0 0 3px rgba(31, 143, 95, 0.1);
}

.field textarea {
  min-height: 100px;
  resize: vertical;
}

.sticker-capture__option.is-active {
  border-color: rgba(42, 172, 118, 0.56);
  background: rgba(31, 143, 95, 0.24);
  box-shadow: inset 0 0 0 1px rgba(42, 172, 118, 0.22);
}

@media (max-width: 1080px) {
  .feature-grid,
  .steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sticker-capture__options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .assessment-entry-overlay__detail-grid {
    grid-template-columns: 1fr;
  }

  .assessment-shell {
    grid-template-columns: 1fr;
  }

  .assessment-tracker {
    border-left: 0;
    border-top: 1px solid rgba(31, 143, 95, 0.08);
  }
}

@media (max-width: 860px) {
  .feature-grid,
  .compare-grid,
  .steps-grid {
    grid-template-columns: 1fr;
  }

  .sticker-capture__options {
    grid-template-columns: 1fr;
  }

  .assessment-entry-overlay {
    padding: 12px;
  }

  .assessment-entry-overlay__sheet {
    min-height: calc(100vh - 24px);
    border-radius: 24px;
  }

  .assessment-entry-overlay__grid,
  .assessment-entry-overlay__detail-grid {
    grid-template-columns: 1fr;
  }

  .assessment-entry-overlay__footer {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .assessment-entry-overlay__links,
  .assessment-entry-overlay__continue {
    width: 100%;
  }

  .assessment-entry-overlay__continue {
    min-width: 0;
  }

  .section--assessment-app {
    padding: calc(var(--nav-h) + 12px) 12px 16px;
  }

  .assessment-shell {
    height: auto;
    max-height: none;
    border-radius: 24px;
  }

  .assessment-chatpane__header,
  .assessment-chatpane__thread,
  .assessment-chatpane__composer {
    padding-left: 20px;
    padding-right: 20px;
  }

  .assessment-chatpane__composer-frame {
    grid-template-columns: 1fr;
  }

  .assessment-chatpane__send {
    width: 100%;
  }

  .chat-message__bubble {
    max-width: 100%;
  }

  .assessment-chatpane__title {
    font-size: clamp(1.8rem, 8vw, 2.45rem);
  }

  .assessment-tracker__header,
  .assessment-tracker__groups {
    padding-left: 20px;
    padding-right: 20px;
  }

  .assessment-tracker__grouphead {
    flex-direction: column;
    align-items: start;
  }

  .assessment-toaststack {
    left: 12px;
    right: 12px;
    bottom: 12px;
    width: auto;
  }

  .assessment-authgate__dialog,
  .auth-card {
    width: 100%;
    padding: 24px;
  }
}

.admin-catalog-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  padding: 4px 0 12px;
}

.admin-catalog-stat {
  font-size: 0.82rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.admin-catalog-stat strong {
  font-weight: 700;
  color: var(--text-strong);
}

.admin-catalog-stat em {
  font-style: normal;
  color: #b02020;
}

.admin-catalog-stat--muted { color: rgba(100,100,100,0.5); }

.admin-catalog-notice {
  font-size: 0.82rem;
  color: var(--text-muted);
  padding: 8px 0;
  margin: 0;
}

.admin-catalog-pager {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  flex-wrap: wrap;
}

.admin-catalog-pager-info {
  font-size: 0.78rem;
  color: var(--text-muted);
}

.admin-catalog-brand-logo {
  width: 20px;
  height: 20px;
  object-fit: contain;
  border-radius: 4px;
  vertical-align: middle;
  margin-right: 4px;
}

.admin-token {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  white-space: nowrap;
  background: rgba(31, 143, 95, 0.08);
  color: var(--text-muted);
}

.admin-token--active,
.admin-token--success,
.admin-token--extracted { background: rgba(31, 143, 95, 0.12); color: #1a6e47; }

.admin-token--error,
.admin-token--failed { background: rgba(200, 40, 40, 0.1); color: #b02020; }

.admin-token--identified { background: rgba(100, 120, 200, 0.1); color: #3a4fa0; }

.admin-token--pending { background: rgba(180, 120, 20, 0.1); color: #7a5010; }

.admin-token--muted { background: rgba(0,0,0,0.05); color: var(--text-muted); }

.admin-table-row { }

.admin-table-cell { font-size: 0.82rem; }

.admin-table-cell--primary { font-weight: 600; color: var(--text-strong); }

.admin-table-cell--mono { font-family: var(--font-mono, monospace); font-size: 0.76rem; }

.admin-table-cell--muted { color: var(--text-muted); }

.admin-engine-metric-value--green { color: #1f8f5f; }

.admin-engine-metric-value--red { color: #b02020; }

.admin-vault-mint-feedback--success {
  background: rgba(31,143,95,0.06);
  border: 1px solid rgba(31,143,95,0.18);
  color: #1a6e47;
}

.admin-vault-mint-feedback--error {
  background: rgba(200,40,40,0.06);
  border: 1px solid rgba(200,40,40,0.18);
  color: #b02020;
}

.user-shell {
  display: grid;
  grid-template-columns: 220px 1fr;
  min-height: 100vh;
}

.user-shell__sidebar {
  display: flex;
  flex-direction: column;
  background: #f5faf7;
  border-right: 1px solid rgba(31, 143, 95, 0.1);
  padding: 24px 0;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
}

.user-shell__brand {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 20px 24px;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid rgba(31, 143, 95, 0.08);
  margin-bottom: 12px;
}

.user-shell__nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 12px;
  flex: 1;
}

.user-shell__nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-body);
  transition: background 0.1s, color 0.1s;
}

.user-shell__nav-link:hover,
.user-shell__nav-link.is-active {
  background: rgba(31, 143, 95, 0.08);
  color: var(--text-strong);
}

.user-shell__nav-link.is-active {
  font-weight: 700;
}

.user-shell__sidebar-footer {
  padding: 16px 16px 0;
  border-top: 1px solid rgba(31, 143, 95, 0.08);
  margin-top: 12px;
}

.user-shell__sidebar-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.user-auth-badge-inner {
  font-size: 0.78rem;
  color: var(--text-muted);
}

.user-auth-name {
  font-weight: 600;
  color: var(--text-strong);
}

.user-shell__body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #fafcfb;
}

.user-shell__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 32px 40px 24px;
  border-bottom: 1px solid rgba(31, 143, 95, 0.08);
  background: rgba(255, 255, 255, 0.6);
  gap: 16px;
}

.user-shell__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text-strong);
  margin: 4px 0 6px;
  line-height: 1.2;
}

.user-shell__intro {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin: 0;
  max-width: 540px;
}

.user-shell__header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.user-shell__content {
  padding: 32px 40px;
  flex: 1;
  width: 100%;
  box-sizing: border-box;
}

.app-detail-pane {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.app-detail-pane[hidden] { display: none; }

.user-view-wrap .app-detail-pane:not([hidden]) {
  position: fixed;
  inset: 0;
  z-index: 200;
  flex: none;
  background: #fafcfb;
}

.user-view-wrap .app-detail-pane:not([hidden]) .app-detail-pane__head {
  padding-top: calc(env(safe-area-inset-top, 44px) + 10px);
}

.up-hero {
  background: #fff;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(31, 143, 95, .1);
  flex-shrink: 0;
}

.up-banner {
  height: 110px;
  background: linear-gradient(130deg, #1f8f5f 0%, #27ae60 55%, #52c97a 100%);
}

.up-avatar-wrap {
  padding: 0 20px;
  margin-top: -40px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

.up-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--accent-1, #27ae60);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 700;
  border: 3px solid #fff;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}

.up-avatar--photo {
  background-size: cover;
  background-position: center;
  font-size: 0;
}

.up-avatar-wrap .btn { margin-bottom: 4px; }

.up-follow-action { display: flex; align-items: flex-end; padding-bottom: 4px; flex: 1; justify-content: flex-end; }

.up-identity {
  padding: 10px 20px 0;
}

.up-name {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-heading);
}

.up-handle {
  font-size: .8rem;
  color: var(--accent-1, #27ae60);
  margin-top: 2px;
}

.up-location {
  font-size: .78rem;
  color: var(--text-muted);
  margin-top: 2px;
}

.up-bio {
  padding: 10px 20px 0;
  font-size: .86rem;
  color: var(--text-body);
  line-height: 1.5;
}

.up-follows-you {
  display: inline-block;
  font-size: .7rem;
  color: var(--text-muted);
  background: rgba(31,143,95,.08);
  border-radius: 20px;
  padding: 2px 8px;
  margin: 6px 20px 0;
}

.up-stats {
  display: flex;
  padding: 14px 20px 14px;
  border-top: 1px solid rgba(31, 143, 95, .06);
  margin-top: 14px;
}

.up-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  gap: 2px;
}

.up-stat + .up-stat { border-left: 1px solid rgba(31, 143, 95, .1); }

.up-stat__n {
  font-size: .98rem;
  font-weight: 700;
  color: var(--text-heading);
}

.up-stat__l {
  font-size: .68rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.up-tabs {
  display: flex;
  border-bottom: 2px solid rgba(31, 143, 95, .1);
  background: #fff;
  overflow-x: auto;
  scrollbar-width: none;
  flex-shrink: 0;
}

.up-tabs::-webkit-scrollbar { display: none; }

.up-tab {
  flex: 0 0 auto;
  padding: 11px 16px;
  font-size: .8rem;
  font-weight: 600;
  color: var(--text-muted);
  border: none;
  background: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  white-space: nowrap;
  transition: color .12s;
}

.up-tab--active {
  color: var(--accent-1, #1f8f5f);
  border-bottom-color: var(--accent-1, #1f8f5f);
}

.up-tab-panel { display: none; padding-bottom: 60px; }

.up-tab-panel--active { display: block; }

.up-activity {
  display: flex;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(31, 143, 95, .06);
}

.up-activity__icon { font-size: 1.05rem; flex-shrink: 0; margin-top: 1px; }

.up-activity__body { flex: 1; min-width: 0; }

.up-activity__label { font-size: .88rem; color: var(--text-body); line-height: 1.3; }

.up-activity__state { color: var(--text-muted); font-weight: 400; }

.up-activity__stars { color: var(--accent-1, #27ae60); font-size: .82rem; margin: 3px 0; }

.up-activity__text {
  font-size: .8rem;
  color: var(--text-muted);
  line-height: 1.4;
  margin-top: 3px;
}

.up-activity__time { font-size: .73rem; color: var(--text-muted); margin-top: 4px; }

.up-coming-soon {
  padding: 48px 20px;
  text-align: center;
  color: var(--text-muted);
  font-size: .88rem;
  line-height: 1.6;
}

.up-coming-soon__icon { font-size: 2rem; margin-bottom: 8px; }

.app-detail-pane__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(31, 143, 95, 0.08);
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(6px);
  gap: 12px;
  flex-shrink: 0;
}

.app-detail-pane__head-left { display: flex; align-items: center; gap: 4px; }

.app-detail-pane__head-right { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.app-detail-pane__back-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(31,143,95,.12); border: 1.5px solid rgba(31,143,95,.25); cursor: pointer;
  color: var(--accent-1, #1f8f5f); transition: background .12s;
}

.app-detail-pane__back-btn:hover { background: rgba(31,143,95,.22); }

.app-detail-pane__close-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  background: #ebebeb; border: 1.5px solid #d0d0d0; cursor: pointer;
  color: #333; transition: background .12s;
}

.app-detail-pane__close-btn:hover { background: #ddd; }

.app-detail-pane__tray-pin {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  background: #f3f3f3; border: 1.5px solid #e0e0e0; cursor: pointer;
  color: #888; transition: color .12s, background .12s, border-color .12s;
}

.app-detail-pane__tray-pin:hover, .app-detail-pane__tray-pin.is-pinned { color: #e6900a; background: #fff8e8; border-color: rgba(230,144,10,.3); }

.page-tray {
  position: fixed; inset: 0; z-index: 400;
  display: flex; flex-direction: column; justify-content: flex-end;
}

.page-tray[hidden] { display: none; }

.page-tray__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.35); }

.page-tray__sheet {
  position: relative; z-index: 1;
  background: #fff; border-radius: 20px 20px 0 0;
  max-height: 92vh; display: flex; flex-direction: column;
  box-shadow: 0 -4px 32px rgba(0,0,0,.14);
  animation: tray-up .22s ease-out;
}

@keyframes tray-up { from { transform: translateY(100%); } to { transform: translateY(0); } }

.page-tray__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px 14px; flex-shrink: 0;
}

.page-tray__title { font-weight: 700; font-size: 1.05rem; color: #111; }

.page-tray__head-actions { display: flex; align-items: center; gap: 10px; }

.page-tray__clear { background: none; border: none; cursor: pointer; font-size: .78rem; color: #bbb; padding: 0; }

.page-tray__clear:hover { color: #e74c3c; }

.page-tray__close-btn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(0,0,0,.06); border: none; cursor: pointer; color: #555; }

.page-tray__tabs {
  display: flex; align-items: center; gap: 6px;
  padding: 0 16px 12px; overflow-x: auto; flex-shrink: 0;
  scrollbar-width: none;
  border-bottom: 1px solid rgba(31,143,95,.08);
}

.page-tray__tabs::-webkit-scrollbar { display: none; }

.page-tray__tab {
  flex-shrink: 0;
  background: #f3f4f5; border: 1.5px solid transparent; border-radius: 20px;
  padding: 5px 14px; font-size: .8rem; font-weight: 600; color: #666;
  cursor: pointer; transition: background .12s, color .12s, border-color .12s;
  white-space: nowrap;
}

.page-tray__tab:hover { background: #e9f5ee; color: var(--accent-1, #1f8f5f); }

.page-tray__tab.is-active {
  background: rgba(31,143,95,.12); border-color: rgba(31,143,95,.3);
  color: var(--accent-1, #1f8f5f);
}

.page-tray__body { overflow-y: auto; flex: 1; padding-bottom: env(safe-area-inset-bottom, 16px); }

.tray-section-label { font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); padding: 12px 20px 4px; }

.tray-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 20px; cursor: pointer;
  border-bottom: 1px solid rgba(31,143,95,.05);
  transition: background .1s;
}

.tray-item:hover { background: rgba(31,143,95,.04); }

.tray-item__icon {
  flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%;
  background: var(--accent-1, #1f8f5f); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem; font-weight: 700; background-size: cover; background-position: center;
}

.tray-item__icon--photo { font-size: 0; }

.tray-item__icon--dispo { background: #27ae60; }

.tray-item__icon--brand { background: #8e44ad; }

.tray-item__icon--product { background: #2980b9; }

.tray-item__icon--user { background: #1f8f5f; }

.tray-item__body { flex: 1; min-width: 0; }

.tray-item__name { font-weight: 600; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.tray-item__sub { font-size: .75rem; color: var(--text-muted); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.tray-item__actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }

.tray-item__pin-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%; background: none; border: none;
  cursor: pointer; color: #ccc; transition: color .12s;
}

.tray-item__pin-btn:hover, .tray-item__pin-btn.is-pinned { color: #f39c12; }

.tray-item__remove-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%; background: none; border: none;
  cursor: pointer; color: #ddd; transition: color .12s;
}

.tray-item__remove-btn:hover { color: #e74c3c; }

.tray-empty { padding: 32px 20px; text-align: center; color: var(--text-muted); font-size: .9rem; }

.tray-workspace { display: flex; flex-direction: column; gap: 12px; padding: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom, 16px)); }

.tray-ws-toolbar { display: flex; align-items: center; justify-content: flex-end; }

.tray-ws-new-group {
  width: 100%;
  padding: 9px 0;
  border-radius: 10px;
  border: 1.5px dashed var(--accent-tint-lg, rgba(31,143,95,0.20));
  background: transparent;
  color: var(--accent-1, #1f8f5f);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background .12s;
}

.tray-ws-new-group:hover { background: var(--accent-tint-xs); }

.tray-ws-group {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.15));
  border-radius: 12px;
  overflow: hidden;
}

.tray-ws-group__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.11));
}

.tray-ws-group__name { font-weight: 700; font-size: 0.88rem; flex: 1; color: var(--text-strong, #111); }

.tray-ws-group__count {
  font-size: 0.68rem; font-weight: 700; padding: 2px 7px;
  border-radius: 10px; background: var(--accent-tint-xs); color: var(--text-muted);
}

.tray-ws-group__del {
  width: 24px; height: 24px; border-radius: 50%; background: none; border: none;
  cursor: pointer; color: #ccc; display: flex; align-items: center; justify-content: center;
  transition: color .12s;
}

.tray-ws-group__del:hover { color: #e74c3c; }

.tray-ws-group__body { display: flex; flex-direction: column; }

.tray-ws-empty {
  padding: 18px 14px;
  font-size: 0.8rem;
  color: var(--text-muted);
  text-align: center;
  font-style: italic;
}

.tray-ws-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.11));
}

.tray-ws-item:last-child { border-bottom: none; }

.tray-ws-item__thumb {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  object-fit: cover;
  background: var(--bg-elevated, #f0ece4);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  overflow: hidden;
}

.tray-ws-item__thumb img { width: 100%; height: 100%; object-fit: cover; }

.tray-ws-item__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }

.tray-ws-item__name { font-weight: 600; font-size: 0.85rem; color: var(--text-strong, #111); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.tray-ws-item__meta { font-size: 0.72rem; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.tray-ws-item__prices {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.78rem; margin-top: 2px; flex-wrap: wrap;
}

.tray-ws-price-pin { color: var(--text-muted); }

.tray-ws-price-pin--changed { text-decoration: line-through; }

.tray-ws-price-current { font-weight: 700; color: var(--text-strong, #111); }

.tray-ws-price-delta {
  font-size: 0.68rem; font-weight: 700; padding: 1px 5px; border-radius: 6px;
}

.tray-ws-price-delta--down { background: rgba(39,174,96,0.12); color: #219653; }

.tray-ws-price-delta--up { background: rgba(231,76,60,0.10);  color: #c0392b; }

.tray-ws-item__notes {
  width: 100%;
  box-sizing: border-box;
  font-size: 0.76rem;
  padding: 5px 8px;
  border: 1.5px solid var(--border-subtle, rgba(255, 255, 255, 0.15));
  border-radius: 7px;
  resize: vertical;
  min-height: 30px;
  max-height: 80px;
  margin-top: 5px;
  outline: none;
  font-family: inherit;
  color: var(--text-body, #333);
  background: var(--bg-elevated, #f7f3ec);
  transition: border-color .12s;
}

.tray-ws-item__notes:focus { border-color: var(--accent-1, #1f8f5f); }

.tray-ws-item__actions {
  display: flex; align-items: flex-start; gap: 4px; flex-shrink: 0; padding-top: 2px;
}

.tray-ws-item__action {
  width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer;
  color: #ccc; transition: color .12s;
}

.tray-ws-item__action:hover { color: #e74c3c; }

.tray-ws-global-empty {
  padding: 36px 20px;
  text-align: center;
  color: var(--text-muted);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}

.tray-ws-global-empty__icon { color: var(--accent-tint-lg, rgba(31,143,95,0.20)); }

.tray-ws-global-empty__title { font-weight: 700; font-size: 0.95rem; color: var(--text-strong, #111); }

.tray-ws-global-empty__sub { font-size: 0.8rem; line-height: 1.5; max-width: 240px; }

.feed-workspace-btn {
  width: 28px; height: 28px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--accent-tint-xs, rgba(31,143,95,0.05));
  border: 1px solid transparent;
  cursor: pointer; color: var(--text-muted);
  transition: background .12s, color .12s;
  flex-shrink: 0;
}

.feed-workspace-btn:hover { background: var(--accent-tint-sm); color: var(--accent-1); }

.feed-workspace-btn--active {
  background: var(--accent-tint-sm);
  color: var(--accent-1);
  border-color: var(--accent-tint-lg);
}

.app-detail-pane__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.app-detail-pane__body {
  flex: 1;
  overflow-y: auto;
  background: #fafcfb;
  padding-bottom: 40px;
}

.user-view {
  display: flex;
  flex-direction: column;
  gap: 0;
}

@media (max-width: 767px) {
  .user-view { gap: 0; }
}

.user-section {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(31, 143, 95, 0.1);
  border-radius: 14px;
  padding: 20px 24px;
}

.user-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}

.user-section__title {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text-strong);
  margin: 0;
  letter-spacing: -0.01em;
}

.user-section__count {
  font-size: 0.78rem;
  color: var(--text-muted);
  font-weight: 400;
}

.user-kv {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 8px 16px;
  font-size: 0.84rem;
}

.user-kv dt {
  color: var(--text-muted);
  font-weight: 600;
}

.user-kv dd {
  margin: 0;
  color: var(--text-body);
}

.user-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.user-form-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.user-form-row--split {
  display: grid;
  grid-template-columns: 1fr 80px;
  gap: 10px;
}

.user-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.user-input {
  padding: 9px 12px;
  border: 1px solid rgba(31, 143, 95, 0.18);
  border-radius: 8px;
  background: #fff;
  font-size: 0.88rem;
  color: var(--text-body);
  width: 100%;
  box-sizing: border-box;
}

.user-input--sm { width: 100%; }

.user-input:focus {
  outline: none;
  border-color: var(--focus-border, rgba(31,143,95,0.40));
  box-shadow: var(--focus-ring, 0 0 0 3px rgba(31,143,95,0.12));
}

.user-form-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.user-btn {
  display: inline-flex;
  align-items: center;
  padding: 9px 16px;
  border: 1px solid rgba(31, 143, 95, 0.25);
  border-radius: 8px;
  background: #fff;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--text-body);
  transition: background 0.1s;
  text-decoration: none;
}

.user-btn:hover:not(:disabled) { background: rgba(31, 143, 95, 0.06); color: var(--text-strong); }

.user-btn:disabled { opacity: 0.5; cursor: not-allowed; }

.user-btn--ghost { background: transparent; border-color: transparent; color: var(--text-muted); }

.user-btn--ghost:hover:not(:disabled) { background: rgba(0,0,0,0.04); }

.user-feedback {
  font-size: 0.82rem;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(31, 143, 95, 0.06);
  color: #1a6e47;
  border: 1px solid rgba(31, 143, 95, 0.15);
}

.user-feedback--error { background: rgba(200, 40, 40, 0.06); color: #b02020; border-color: rgba(200,40,40,0.15); }

.user-feedback--header { font-size: 0.78rem; }

.app-toast {
  position: fixed;
  top: calc(56px + env(safe-area-inset-top, 0px));
  left: 12px;
  right: 12px;
  z-index: 300;
  background: #1c2333;
  color: #f0f4ff;
  font-size: 0.88rem;
  font-weight: 500;
  padding: 12px 16px;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.28), 0 2px 6px rgba(0,0,0,0.18);
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.2s ease, transform 0.22s ease;
}

.app-toast--visible {
  opacity: 1;
  transform: translateY(0);
}

.app-toast__icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}

.app-toast--success .app-toast__icon { background: rgba(56,199,147,0.18); color: #38c793; }

.app-toast--error   .app-toast__icon { background: rgba(248,113,113,0.18); color: #f87171; }

.app-toast--info    .app-toast__icon { background: rgba(91,143,249,0.18); color: #5b8ff9; }

.app-toast__msg {
  flex: 1;
  line-height: 1.35;
}

.notif-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid var(--border-subtle, rgba(0,0,0,0.08));
  border-radius: 14px;
  margin-bottom: 8px;
  position: relative;
  transition: background 0.1s;
}

.notif-item--unread {
  background: rgba(255,255,255,0.97);
  border-color: rgba(31,143,95,0.35);
}

.notif-item__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
}

.notif-item__avatar--empty {
  background: var(--bg-tint, rgba(0,0,0,0.06));
  border-radius: 50%;
}

.notif-item__body {
  flex: 1;
  min-width: 0;
}

.notif-item__text {
  font-size: 0.875rem;
  color: var(--text-primary, #1a1f27);
  line-height: 1.45;
}

.notif-item__time {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 3px;
}

.notif-item__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #1f8f5f;
  flex-shrink: 0;
  margin-top: 6px;
}

.user-empty {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin: 0;
  padding: 4px 0;
}

.user-follows-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.user-follow-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  background: rgba(31, 143, 95, 0.06);
  border: 1px solid rgba(31, 143, 95, 0.14);
  border-radius: 20px;
  font-size: 0.8rem;
  color: var(--text-body);
}

.user-follow-chip--sm { font-size: 0.75rem; padding: 3px 8px; }

.user-follow-chip em { font-style: normal; color: var(--text-muted); font-size: 0.72rem; }

.user-follow-remove {
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1;
  padding: 0;
  display: flex;
  align-items: center;
}

.user-follow-remove:hover { color: #b02020; }

.stashbank-following-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.stashbank-following-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin-bottom: 10px;
}

.stashbank-loyalty-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.stashbank-loyalty-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 10px;
  background: rgba(31,143,95,0.04);
  border-radius: 8px;
  font-size: 0.82rem;
}

.stashbank-loyalty-brand { color: var(--text-body); font-weight: 600; }

.stashbank-loyalty-tokes { color: #1a6e47; font-weight: 700; font-size: 0.78rem; }

@media (max-width: 720px) {
  .user-shell { grid-template-columns: 1fr; }
  .user-shell__sidebar { position: static; height: auto; flex-direction: row; flex-wrap: wrap; padding: 12px 16px; }
  .user-shell__brand { padding: 0 12px 0 0; border-bottom: 0; margin-bottom: 0; }
  .user-shell__nav { flex-direction: row; flex: none; padding: 0; }
  .user-shell__sidebar-footer { display: none; }
  .user-shell__content { padding: 20px 16px; }
  .user-shell__header { padding: 20px 16px; }
  .app-detail-pane__head { padding: 12px 16px; }
  .stashbank-following-grid { grid-template-columns: 1fr; }
}

.stashbank-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}

@media (max-width: 620px) {
  .stashbank-hero { grid-template-columns: 1fr; }
}

.stashbank-earn-card {
  background: var(--accent-tint-xs);
  border: 1px solid var(--accent-tint-md);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.stashbank-earn-card-label {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--text-strong);
}

.stashbank-earn-card-amount {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--accent-blue);
  letter-spacing: -0.02em;
}

.stashbank-stake-form-row .user-input {
  flex: 1;
  min-width: 140px;
}

.stashbank-stake-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: rgba(31,143,95,0.04);
  border: 1px solid rgba(31,143,95,0.1);
  border-radius: 10px;
  margin-bottom: 8px;
  font-size: 0.84rem;
  gap: 12px;
}

.stashbank-stake-info { display: flex; flex-direction: column; gap: 4px; }

.stashbank-stake-yield { font-size: 0.72rem; color: var(--accent-blue); font-weight: 700; }

.stashbank-stake-meta { display: flex; align-items: center; gap: 10px; font-size: 0.78rem; color: var(--text-muted); }

.stashbank-leaderboard {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.stashbank-leaderboard-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 0.84rem;
  background: rgba(255,255,255,0.6);
  border: 1px solid rgba(31,143,95,0.06);
}

.stashbank-leaderboard-row--top {
  border-color: rgba(251,191,36,0.25);
  background: rgba(251,191,36,0.04);
}

.stashbank-leaderboard-rank {
  width: 28px;
  text-align: center;
  font-weight: 800;
  color: var(--text-muted);
  font-size: 0.78rem;
}

.stashbank-leaderboard-row--top .stashbank-leaderboard-rank {
  color: #d97706;
}

.stashbank-leaderboard-name {
  flex: 1;
  font-weight: 600;
  color: var(--text-body);
}

.stashbank-leaderboard-tokes {
  font-weight: 800;
  color: var(--text-strong);
  font-size: 0.9rem;
}

.user-view--tabbed {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}

.user-view--discover .tab-panel {
  overflow: auto;
  flex: 1;
  gap: 0;
}

.tabs {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: var(--accent-tint-xs, rgba(31,143,95,0.05));
  border-radius: 14px;
  flex-shrink: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  margin-bottom: 8px;
}

.tabs::-webkit-scrollbar {
  display: none;
}

.tab {
  flex: 1;
  text-align: center;
  padding: 9px 16px;
  border-radius: 10px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-muted);
  background: transparent;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--t-fast, 0.18s ease), background var(--t-fast, 0.18s ease), box-shadow var(--t-fast, 0.18s ease);
  line-height: 1.3;
}

.tab:hover:not(.tab--active) {
  color: var(--text-body);
  background: rgba(31,143,95,0.05);
}

.tab--active {
  background: #fff;
  color: #1f8f5f;
  font-weight: 700;
  box-shadow: 0 1px 6px rgba(0,0,0,0.10);
}

.tab-panel {
  flex: 1;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 0 16px;
}

.tab-panel__inner {
  padding: 24px 28px;
  width: 100%;
  box-sizing: border-box;
}

.tab-panel > .view-section {
  margin-bottom: 0;
  margin-top: 0;
}

@media (max-width: 520px) {
  .tab {
    min-width: 0;
    padding: 9px 10px;
    font-size: 0.82rem;
  }
}

.discover-panel {
  padding: 20px 24px;
  width: 100%;
  box-sizing: border-box;
}

.discover-fav-section {
  margin-bottom: 28px;
}

.discover-fav-section__head {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.discover-fav-cap {
  font-weight: 400;
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text-soft);
}

.discover-following-group {
  margin-bottom: 24px;
}

.discover-following-group__head {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.discover-saved-group {
  margin-bottom: 24px;
}

.discover-saved-group__head {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 10px 18px 6px;
  margin-bottom: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.discover-saved-group__head--fav {
  color: #92400e;
}

.discover-saved-group__fav-star {
  color: #d97706;
  font-size: 0.85rem;
}

.dc-group {
  margin-bottom: 20px;
}

.dc-group__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 2px 8px;
  border-bottom: 1.5px solid rgba(31,143,95,0.12);
  margin-bottom: 8px;
}

.dc-group__name {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--text-strong, #1a1f27);
  letter-spacing: -0.01em;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dc-group__count {
  background: rgba(31,143,95,0.1);
  color: #1a6e47;
  border-radius: 100px;
  padding: 1px 8px;
  font-size: 0.7rem;
  font-weight: 700;
  flex-shrink: 0;
}

.dc-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px 10px 10px;
  background: rgba(255,255,255,0.82);
  border: 1.5px solid rgba(255, 255, 255, 0.11);
  border-radius: 12px;
  transition: border-color 0.15s, box-shadow 0.15s;
  cursor: pointer;
  margin-bottom: 6px;
}

.dc-card:last-child { margin-bottom: 0; }

.dc-card:hover {
  border-color: rgba(31,143,95,0.25);
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}

.dc-card:active {
  background: rgba(31,143,95,0.03);
  border-color: rgba(31,143,95,0.3);
}

.dc-card__avatar {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.dc-card__avatar--dispo {
  background: rgba(31,143,95,0.1);
  color: #1a6e47;
}

.dc-card__avatar--brand {
  background: rgba(124,58,237,0.08);
  color: #6d28d9;
}

.dc-card__avatar--product {
  background: rgba(31,143,95,0.07);
  color: rgba(31,143,95,0.5);
}

.dc-card__body {
  flex: 1;
  min-width: 0;
}

.dc-card__name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-strong, #1a1f27);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 3px;
  letter-spacing: -0.01em;
}

.dc-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.dc-card__chip {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 100px;
  font-size: 0.67rem;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.09);
  color: var(--text-muted, #48505d);
  text-transform: capitalize;
  line-height: 1.4;
}

.dc-card__chip--type {
  background: rgba(31,143,95,0.1);
  color: #1a6e47;
}

.dc-card__star {
  font-size: 0.85rem;
  color: #ca8a04;
  flex-shrink: 0;
  line-height: 1;
}

.dc-card__chevron {
  color: var(--text-muted, #48505d);
  opacity: 0.4;
  flex-shrink: 0;
}

.discover-following-count {
  background: rgba(31,143,95,0.12);
  color: #1a6e47;
  border-radius: 100px;
  padding: 1px 8px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}

.fav-star-btn {
  background: none;
  border: 1.5px solid rgba(0,0,0,0.1);
  border-radius: 6px;
  color: var(--text-muted);
  font-size: 1rem;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.12s, border-color 0.12s, background 0.12s;
  flex-shrink: 0;
  line-height: 1;
}

.fav-star-btn:hover:not(:disabled) {
  border-color: rgba(234,179,8,0.5);
  color: #ca8a04;
  background: rgba(234,179,8,0.06);
}

.fav-star-btn--active {
  color: #ca8a04;
  border-color: rgba(234,179,8,0.4);
  background: rgba(234,179,8,0.08);
}

.fav-star-btn--active:hover:not(:disabled) {
  background: rgba(234,179,8,0.15);
}

.fav-star-btn:disabled {
  opacity: 0.4;
  cursor: default;
}

.discover-search-zip {
  width: 90px;
  flex-shrink: 0;
  padding: 8px 10px;
  border-radius: 9px;
  border: 1.5px solid rgba(0,0,0,0.12);
  font-size: 0.85rem;
  background: var(--bg-surface);
}

.discover-search-q {
  flex: 1;
  min-width: 120px;
  padding: 8px 12px;
  border-radius: 9px;
  border: 1.5px solid rgba(0,0,0,0.12);
  font-size: 0.85rem;
  background: var(--bg-surface);
}

.discover-search-q--wide { flex: 2; }

.discover-search-q:focus, .discover-search-zip:focus {
  outline: none;
  border-color: var(--accent-1);
  box-shadow: 0 0 0 3px var(--accent-tint-sm);
}

.discover-search-btn {
  padding: 8px 16px;
  border-radius: 9px;
  border: none;
  background: var(--accent-1);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.discover-search-btn:hover { filter: brightness(1.08); }

.discover-search-btn:active { filter: brightness(0.95); }

.discover-search-query {
  flex: 1;
  min-width: 120px;
}

.discover-search-select {
  padding: 7px 10px;
  border-radius: 8px;
  border: 1.5px solid rgba(0,0,0,0.12);
  font-size: 0.85rem;
  background: #fff;
}

.discover-search-meta,
.discover-meta {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-bottom: 14px;
}

.discover-list-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 18px;
  background: var(--bg-surface, #fff);
  border: 1.5px solid var(--border-subtle, rgba(0,0,0,0.08));
  border-radius: 12px;
  transition: border-color 0.15s, box-shadow 0.15s;
  cursor: pointer;
}

.discover-list-card:hover {
  border-color: rgba(31,143,95,0.25);
  box-shadow: 0 2px 10px rgba(0,0,0,0.07);
}

.discover-card--following .discover-list-card,
.discover-list-card.discover-card--following {
  border-color: rgba(31,143,95,0.35);
  background: rgba(255,255,255,0.95);
}

.discover-list-card__main {
  flex: 1;
  min-width: 0;
}

.discover-list-card__name {
  font-weight: 700;
  font-size: 0.93rem;
  color: var(--text-strong);
  line-height: 1.3;
  margin-bottom: 4px;
}

.discover-list-card__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}

.discover-list-card__badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 100px;
  font-size: 0.72rem;
  font-weight: 600;
  background: rgba(0,0,0,0.06);
  color: var(--text-muted);
}

.discover-list-card__badge--products {
  background: rgba(31,143,95,0.1);
  color: #1a6e47;
}

.discover-list-card__addr {
  font-size: 0.75rem;
  color: var(--text-soft);
}

.discover-list-card__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}

.discover-list-card__link {
  font-size: 0.75rem;
  color: #1a6e47;
  text-decoration: none;
  font-weight: 600;
}

.discover-follow-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 100px;
  border: 1.5px solid rgba(31,143,95,0.3);
  background: transparent;
  color: #1a6e47;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  white-space: nowrap;
}

.discover-follow-btn:hover:not(:disabled) {
  background: rgba(31,143,95,0.08);
  border-color: rgba(31,143,95,0.5);
}

.discover-follow-btn--active {
  background: #1a6e47;
  border-color: #1a6e47;
  color: #fff;
}

.discover-follow-btn--active:hover:not(:disabled) {
  background: #145a3b;
}

.discover-follow-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.discover-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 16px;
  padding: 10px 0;
}

.discover-cta {
  padding: 16px 20px;
  background: rgba(31,143,95,0.06);
  border: 1.5px solid rgba(31,143,95,0.2);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin: 16px 28px 24px;
}

.discover-cta__text {
  font-size: 0.9rem;
  color: var(--text-body);
}

.discover-type-row {
  display: flex;
  gap: 6px;
}

.discover-type-btn {
  flex: 1;
  padding: 8px 4px;
  border: 1.5px solid var(--border-subtle);
  border-radius: 8px;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.12s, color 0.12s, background 0.12s;
  text-align: center;
}

.discover-type-btn:hover { border-color: rgba(31,143,95,0.3); color: var(--text-body); }

.discover-type-btn--active {
  border-color: var(--accent-1);
  color: var(--accent-1);
  background: rgba(31,143,95,0.06);
}

.discover-filters-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 10px 18px 0;
}

.discover-filters-row > [hidden] { display: none; }

.discover-filters-sep {
  width: 1px;
  height: 20px;
  background: var(--border-subtle);
}

.discover-price-input {
  width: 80px;
  padding: 5px 8px;
  border: 1.5px solid var(--border-subtle);
  border-radius: 8px;
  font-size: 0.82rem;
  background: var(--bg-surface);
  color: var(--text-body);
}

.discover-price-input:focus { outline: none; border-color: var(--accent-1); }

.discover-results-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px 0 18px;
}

.discover-results-list--in-group {
  padding: 0;
}

.discover-saved-list-pad {
  padding: 14px 18px;
}

.discover-skel-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px 0 18px;
}

.discover-skel-card {
  height: 81px;
  border-radius: 12px;
  background: rgba(25,31,42,0.05);
  animation: feed-skel-pulse 1.4s ease-in-out infinite;
}

.discover-skel-card:nth-child(2) { animation-delay: 0.12s; }

.discover-skel-card:nth-child(3) { animation-delay: 0.24s; }

.discover-saved-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 18px 4px;
  gap: 12px;
}

.discover-saved-count {
  font-size: 0.8rem;
  color: var(--text-muted);
  font-weight: 600;
}

.discover-sort-chips {
  display: flex;
  gap: 6px;
}

.discover-list-card__logo {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.discover-list-card__logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.discover-list-card__logo--empty {
  background: var(--bg-tint, rgba(0,0,0,0.06));
  color: var(--text-muted);
}

.discover-unfollow-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid var(--border-subtle);
  background: transparent;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.12s, color 0.12s, background 0.12s;
}

.discover-unfollow-btn:hover {
  border-color: #dc2626;
  color: #dc2626;
  background: rgba(220,38,38,0.06);
}

.user-activity-log {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.activity-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.activity-row:last-child {
  border-bottom: none;
}

.activity-row__icon {
  font-size: 1rem;
  width: 22px;
  text-align: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.activity-row__body {
  flex: 1;
  min-width: 0;
}

.activity-row__label {
  font-size: 0.83rem;
  font-weight: 600;
  color: var(--text-body);
}

.activity-row__detail {
  font-size: 0.76rem;
  color: var(--text-muted);
  margin-top: 1px;
}

.activity-row__time {
  font-size: 0.72rem;
  color: var(--text-soft);
  white-space: nowrap;
  flex-shrink: 0;
}

.user-kv--wide dt {
  min-width: 160px;
}

.feed-filter-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 24px;
  background: var(--surface);
  border-bottom: 1px solid rgba(0,0,0,0.07);
  flex-shrink: 0;
}

.feed-filter-bar__label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text-muted);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.feed-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.feed-type-chip {
  padding: 5px 12px;
  border-radius: 100px;
  border: 1.5px solid rgba(0,0,0,0.1);
  background: transparent;
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
  white-space: nowrap;
}

.feed-type-chip:hover {
  border-color: rgba(31,143,95,0.3);
  color: var(--text-body);
}

.feed-type-chip--active {
  background: rgba(31,143,95,0.1);
  border-color: rgba(31,143,95,0.35);
  color: #1a6e47;
}

.feed-save-btn {
  font-size: 0.75rem;
  padding: 5px 12px;
}

.feed-filter-saved {
  font-size: 0.75rem;
  color: #1a6e47;
  font-weight: 600;
}

.feed-empty-state {
  padding: 48px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  color: var(--text-muted);
}

.feed-group {
  margin-bottom: 28px;
}

.feed-group__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1.5px solid rgba(31,143,95,0.12);
}

.feed-group__name {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text-strong);
}

.feed-group__loc {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.feed-product-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.feed-product-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 10px;
  transition: border-color 0.15s;
  height: 72px;
  box-sizing: border-box;
  overflow: hidden;
}

.feed-product-card:hover {
  border-color: rgba(31,143,95,0.2);
}

.feed-product-card__img {
  width: 52px;
  height: 52px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(0,0,0,0.05);
  display: flex;
  align-items: center;
  justify-content: center;
}

.feed-product-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feed-product-card__img--empty::after {
  content: '🌿';
  font-size: 1.4rem;
  opacity: 0.3;
}

.feed-product-card__body {
  flex: 1;
  min-width: 0;
}

.feed-product-card__name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 3px;
}

.feed-product-card__brand {
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.feed-product-card__badges {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  overflow: hidden;
}

.feed-badge {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 100px;
  font-size: 0.68rem;
  font-weight: 600;
  background: rgba(0,0,0,0.06);
  color: var(--text-muted);
  text-transform: capitalize;
}

.feed-badge--type {
  background: rgba(31,143,95,0.1);
  color: #1a6e47;
}

.feed-badge--thc {
  background: rgba(124,58,237,0.08);
  color: #6d28d9;
}

.feed-product-card__price {
  flex-shrink: 0;
  text-align: right;
}

.feed-price {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-strong);
}

.feed-product-card__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
  flex-shrink: 0;
}

.feed-product-card--following {
  border-color: rgba(31,143,95,0.3);
  background: rgba(31,143,95,0.02);
}

.feed-follow-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 12px;
  border-radius: 100px;
  border: 1.5px solid rgba(0,0,0,0.1);
  background: transparent;
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  white-space: nowrap;
}

.feed-follow-btn:hover:not(:disabled) {
  border-color: rgba(31,143,95,0.4);
  color: #1a6e47;
}

.feed-follow-btn--active {
  background: rgba(31,143,95,0.1);
  border-color: rgba(31,143,95,0.35);
  color: #1a6e47;
}

.feed-follow-btn--active:hover:not(:disabled) {
  background: rgba(31,143,95,0.18);
}

.feed-follow-btn:disabled {
  opacity: 0.4;
  cursor: default;
}

@keyframes terms-gate-in {
  from { opacity: 0; transform: scale(.88) translateY(12px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

.profile-page {
  min-height: 100vh;
  background: var(--surface-bg, #f7f8fa);
}

.profile-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1.25rem;
  background: #fff;
  border-bottom: 1px solid var(--border-light, rgba(0,0,0,.07));
  position: sticky;
  top: 0;
  z-index: 100;
}

.profile-header__back {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted, #666);
  text-decoration: none;
  white-space: nowrap;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background .1s, color .1s;
}

.profile-header__back:hover {
  background: rgba(0,0,0,.04);
  color: var(--text-strong);
}

.profile-header__brand {
  flex: 1;
  display: flex;
  align-items: center;
  text-decoration: none;
}

.profile-header__brand svg,
.profile-header__brand img {
  height: 28px;
  width: auto;
}

.profile-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.profile-shell {
  max-width: 900px;
  margin: 0 auto;
}

.profile-hero {
  background: #fff;
  border-bottom: 1px solid var(--border-light, rgba(0,0,0,.07));
  padding: 2rem 1.5rem 1.5rem;
}

.profile-hero__layout {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}

.profile-hero__img {
  width: 96px;
  height: 96px;
  border-radius: 12px;
  object-fit: contain;
  background: var(--surface-2, #f0f1f3);
  flex-shrink: 0;
  border: 1px solid var(--border-light, rgba(0,0,0,.07));
}

.profile-hero__body {
  flex: 1;
  min-width: 0;
}

.profile-hero__name {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--text-strong);
  margin: 0 0 0.3rem;
  line-height: 1.2;
}

.profile-hero__meta {
  font-size: 0.9rem;
  color: var(--text-muted);
  margin: 0 0 0.9rem;
}

.profile-hero__meta a {
  color: inherit;
  text-decoration: none;
}

.profile-hero__meta a:hover {
  text-decoration: underline;
}

.profile-hero__stats {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin: 0 0 1rem;
}

.profile-hero__stat {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.profile-hero__stat-n {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--text-strong);
  line-height: 1;
}

.profile-hero__stat-label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text-muted);
}

.profile-about-kv {
  margin-top: .5rem;
  font-size: .85rem;
}

.profile-body {
  padding: 1.25rem 1.5rem 3rem;
}

.profile-filter-bar {
  padding: 0 0 1rem;
}

.profile-type-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.profile-type-count {
  font-size: 0.72em;
  font-weight: 400;
  opacity: .65;
}

.profile-pager {
  padding: 1rem 0;
  text-align: center;
}

.profile-section {
  margin-bottom: 2rem;
}

.profile-section__head {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted);
  margin-bottom: .75rem;
}

.profile-also-at {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.profile-dispo-card {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  background: #fff;
  border: 1px solid var(--border-light, rgba(0,0,0,.07));
  border-radius: 10px;
  text-decoration: none;
  transition: border-color .1s, box-shadow .1s;
}

.profile-dispo-card:hover {
  border-color: rgba(31,143,95,.3);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.profile-dispo-card__name {
  font-size: .9rem;
  font-weight: 700;
  color: var(--text-strong);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-dispo-card__meta {
  font-size: .8rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.profile-dispo-card__price {
  font-size: .85rem;
  font-weight: 700;
  color: var(--text-strong);
  white-space: nowrap;
}

.profile-dispo-card__arrow {
  font-size: .85rem;
  color: var(--text-muted);
  flex-shrink: 0;
}

.profile-auth-cta {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text-muted);
}

.profile-auth-cta p {
  margin-bottom: 1rem;
}

.product-dispo-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border-light, rgba(0,0,0,.07));
  border-radius: 12px;
  flex-wrap: wrap;
}

.product-dispo-card__info {
  flex: 1;
  min-width: 0;
}

.product-dispo-card__name {
  display: block;
  font-size: .9rem;
  font-weight: 700;
  color: var(--text-strong, #1a1f27);
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color .12s;
}

.product-dispo-card__name:hover { color: var(--accent-1); }

.product-dispo-card__meta {
  font-size: .78rem;
  color: var(--text-muted);
  margin-top: 2px;
}

.product-dispo-card__price {
  font-size: 1rem;
  font-weight: 800;
  color: var(--text-strong);
  white-space: nowrap;
  flex-shrink: 0;
}

.product-order-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 10px;
  background: var(--accent-1, #1f8f5f);
  color: #fff;
  font-size: .85rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .12s, box-shadow .12s;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(31,143,95,.25);
}

.product-order-btn:hover {
  background: #177a51;
  box-shadow: 0 3px 12px rgba(31,143,95,.35);
  color: #fff;
}

.dispo-page {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.dispo-hero {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 24px 20px 20px;
  border-bottom: 1px solid var(--border-color, #e8e8e8);
}

.dispo-hero__logo-wrap {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--surface-raised, #f4f4f4);
  border: 1px solid var(--border-color, #e5e5e5);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dispo-hero__logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.dispo-hero__logo--empty {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e8f5ee 0%, #d0ead9 100%);
}

.dispo-hero__body {
  flex: 1;
  min-width: 0;
}

.dispo-hero__name {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary, #111);
  line-height: 1.3;
}

.dispo-hero__meta {
  font-size: .8rem;
  color: var(--text-muted, #888);
  margin-top: 3px;
}

.dispo-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 9px;
}

.dispo-badge {
  display: inline-flex;
  align-items: center;
  font-size: .67rem;
  font-weight: 600;
  letter-spacing: .03em;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--surface-raised, #f0f0f0);
  color: var(--text-secondary, #555);
}

.dispo-badge--med { background: #eaf4ef; color: #1a7a46; }

.dispo-badge--rec { background: #e8f0fe; color: #1a56db; }

.dispo-badge--pickup { background: #f0ebff; color: #6c35cc; }

.dispo-badge--delivery { background: #fff5e6; color: #b35c00; }

.dispo-badge--curbside { background: #fef3c7; color: #92400e; }

.dispo-hero__stats {
  margin-top: 10px;
}

.dispo-body {
  padding: 0;
}

.dispo-hours {
  display: grid;
  grid-template-columns: 3.5rem 1fr;
  gap: 0;
}

.dispo-hours__row {
  display: contents;
}

.dispo-hours__day,
.dispo-hours__time {
  padding: 5px 0;
  font-size: .81rem;
  border-bottom: 1px solid var(--border-subtle, #f2f2f2);
  color: var(--text-secondary, #555);
}

.dispo-hours__day {
  font-weight: 500;
  padding-right: 12px;
}

.dispo-hours__row--today .dispo-hours__day,
.dispo-hours__row--today .dispo-hours__time {
  font-weight: 700;
  color: var(--brand-green, #1a7f5a);
}

.dispo-hours__closed {
  color: var(--text-muted, #bbb);
  font-style: italic;
}

.dispo-description {
  font-size: .83rem;
  color: var(--text-secondary, #555);
  line-height: 1.55;
  margin: 0;
  white-space: pre-line;
}

.dispo-products-section .pd-section__title {
  margin-bottom: 0;
}

.pd-page {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.pd-hero {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 24px 24px 20px;
  background: var(--bg-surface, #fff);
  border-bottom: 1px solid rgba(31,143,95,.08);
}

.pd-hero__img-wrap {
  flex-shrink: 0;
  width: 110px;
  height: 110px;
}

.pd-hero__img {
  width: 110px;
  height: 110px;
  object-fit: contain;
  border-radius: 12px;
  background: var(--bg-elevated, #f5f7f5);
  display: block;
}

.pd-hero__img--empty {
  width: 110px;
  height: 110px;
  border-radius: 12px;
  background: var(--bg-elevated, #f0f2f0);
}

.pd-hero__body {
  flex: 1;
  min-width: 0;
}

.pd-hero__name {
  font-size: 1rem;
  font-weight: 800;
  color: var(--text-strong, #1a1f27);
  line-height: 1.3;
  margin-bottom: 6px;
}

.pd-hero__brand {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  color: var(--text-muted, #666);
  margin-bottom: 8px;
}

.pd-hero__brand-logo {
  width: 18px;
  height: 18px;
  object-fit: contain;
  border-radius: 3px;
}

.pd-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 12px;
}

.pd-hero__price {
  font-size: .85rem;
  color: var(--text-muted);
  margin-top: 8px;
}

.pd-hero__price strong {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--text-strong);
}

.pd-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.pd-badge--medical { background: #e8f4fd; color: #1a6fa0; }

.pd-badge--rec { background: #e8fdf0; color: #1a7a4a; }

.pd-badge--featured { background: #fff8e1; color: #a07800; }

.pd-body {
  flex: 1;
  padding: 0 0 48px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.pd-section {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(0,0,0,.05);
}

.pd-section__title {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-muted, #888);
  margin-bottom: 12px;
}

.pd-empty-row {
  font-size: .82rem;
  color: var(--text-muted, #999);
  font-style: italic;
  margin: 0;
  padding: 2px 0;
}

.pd-facts-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pd-facts-grid--hero {
  margin-top: 4px;
}

.pd-fact {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--bg-elevated, #f5f7f5);
  border-radius: 10px;
  padding: 8px 14px;
  min-width: 64px;
  gap: 2px;
}

.pd-fact__label {
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text-muted);
}

.pd-fact__val {
  font-size: .9rem;
  font-weight: 800;
  color: var(--text-strong);
}

.pd-fact--thc .pd-fact__val { color: #1f8f5f; }

.pd-fact--cbd .pd-fact__val { color: #2563a0; }

.pd-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pd-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--bg-elevated, #f5f7f5);
  border-radius: 10px;
}

.pd-option__size {
  flex: 1;
  font-size: .88rem;
  font-weight: 600;
  color: var(--text-strong);
}

.pd-option__price {
  font-size: .95rem;
  font-weight: 800;
  color: var(--text-strong);
}

.pd-option__med {
  font-size: .72rem;
  color: #1a6fa0;
  font-weight: 600;
}

.pd-effects {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.pd-effect-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pd-effect-label {
  width: 90px;
  flex-shrink: 0;
  font-size: .78rem;
  font-weight: 600;
  color: var(--text-body, #333);
  text-transform: capitalize;
}

.pd-effect-bar-wrap {
  flex: 1;
  height: 7px;
  background: rgba(0,0,0,.07);
  border-radius: 99px;
  overflow: hidden;
}

.pd-effect-bar {
  height: 100%;
  background: linear-gradient(90deg, #1f8f5f, #38c793);
  border-radius: 99px;
  transition: width .4s ease;
}

.pd-effect-val {
  width: 32px;
  text-align: right;
  font-size: .72rem;
  font-weight: 700;
  color: var(--text-muted);
  flex-shrink: 0;
}

.pd-gallery {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
}

.pd-gallery__img {
  width: 100px;
  height: 100px;
  object-fit: contain;
  border-radius: 10px;
  background: var(--bg-elevated, #f5f7f5);
  flex-shrink: 0;
  cursor: pointer;
}

@media (max-width: 600px) {
  .pd-hero { flex-direction: column; gap: 16px; }
  .pd-hero__img-wrap, .pd-hero__img, .pd-hero__img--empty { width: 100%; height: 180px; }
  .pd-section { padding: 16px; }
}

.profile-link {
  color: #1a6e47;
  text-decoration: none;
}

.profile-link:hover {
  text-decoration: underline;
}

.profile-toast {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  background: #1a6e47;
  color: #fff;
  font-size: .875rem;
  font-weight: 700;
  padding: .6rem 1.25rem;
  border-radius: 100px;
  opacity: 0;
  transition: opacity .2s, transform .2s;
  pointer-events: none;
  z-index: 9999;
  white-space: nowrap;
}

.profile-toast--show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.discover-list-card__main {
  cursor: pointer;
}

.feed-product-card__body {
  cursor: pointer;
}

@media (max-width: 600px) {
  .profile-hero {
    padding: 1.25rem 1rem 1rem;
  }
  .profile-body {
    padding: 1rem 1rem 3rem;
  }
  .profile-header {
    padding: .65rem 1rem;
  }
  .profile-hero__name {
    font-size: 1.3rem;
  }
  .profile-hero__img {
    width: 72px;
    height: 72px;
  }
}

.ob-step {
  animation: ob-step-in 0.22s ease;
}

@keyframes ob-step-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ob-step__q {
  font-size: clamp(1.4rem, 5vw, 1.75rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--text-main, #1a1a1a);
  margin: 0 0 0.6rem;
}

.ob-step__hint {
  font-size: 0.875rem;
  color: var(--text-soft, #888);
  margin: 0 0 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.ob-step__location {
  font-size: 0.8rem;
  color: var(--brand-green, #1a6e47);
  font-weight: 600;
  background: #e8f7ef;
  padding: 0.15rem 0.55rem;
  border-radius: 100px;
}

.ob-step__options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
}

.ob-step__options--col1 {
  grid-template-columns: 1fr;
}

.ob-option {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  border: 2px solid var(--line-subtle, #e8e8e4);
  background: #fff;
  cursor: pointer;
  text-align: left;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-main, #1a1a1a);
  transition: border-color 0.12s, background 0.12s, transform 0.08s;
  line-height: 1.3;
  width: 100%;
}

.ob-option:hover {
  border-color: var(--brand-green, #1a6e47);
  background: #f0faf5;
}

.ob-option:active {
  transform: scale(0.97);
}

.ob-option--selected {
  border-color: var(--brand-green, #1a6e47);
  background: #e8f7ef;
  color: var(--brand-green, #1a6e47);
}

.ob-option__icon {
  font-size: 1.3rem;
  flex-shrink: 0;
  line-height: 1;
}

.ob-option__text {
  display: flex;
  flex-direction: column;
}

.ob-option__sub {
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--text-soft, #888);
  margin-top: 0.1rem;
}

.ob-option--selected .ob-option__sub {
  color: var(--brand-green, #1a6e47);
  opacity: 0.75;
}

.ob-btn-primary {
  display: block;
  width: 100%;
  padding: 0.9rem 1.5rem;
  background: #1f8f5f;
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, opacity 0.15s;
  text-align: center;
}

.ob-btn-primary:hover:not(:disabled) {
  background: #155a3a;
}

.ob-btn-primary:disabled {
  opacity: 0.35;
  cursor: default;
}

.ob-btn--mt {
  margin-top: 0.75rem;
}

.ob-step__mode {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--brand-green, #1a6e47);
  background: #e8f7ef;
  border-radius: 100px;
  padding: 0.18rem 0.6rem;
  margin-bottom: 0.75rem;
}

.ob-step--welcome {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: 3rem;
}

.ob-welcome__badge {
  font-size: 3.5rem;
  margin-bottom: 1.25rem;
  line-height: 1;
}

.ob-welcome__title {
  font-size: 2.25rem;
  font-weight: 900;
  color: var(--text-main, #1a1a1a);
  margin: 0 0 0.6rem;
  letter-spacing: -0.03em;
}

.ob-welcome__sub {
  font-size: 1.05rem;
  color: var(--text-soft, #888);
  line-height: 1.55;
  max-width: 320px;
  margin: 0 0 2.25rem;
}

.ob-step--follow .ob-step__q {
  margin-bottom: 0.3rem;
}

.ob-follow__zip-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.6rem;
}

.ob-follow__zip-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted, #6b7482);
  white-space: nowrap;
  flex-shrink: 0;
}

.ob-follow__zip {
  width: 6.5rem;
  padding: 0.55rem 0.75rem;
  border: 2px solid var(--line-subtle, #e8e8e4);
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  outline: none;
  background: #fff;
  box-sizing: border-box;
  letter-spacing: 0.04em;
  color: var(--text-strong, #1a1f27);
}

.ob-follow__zip:focus {
  border-color: var(--brand-green, #1a6e47);
}

.ob-follow__input {
  display: block;
  width: 100%;
  padding: 0.8rem 1rem;
  border: 2px solid var(--line-subtle, #e8e8e4);
  border-radius: 10px;
  font-size: 1rem;
  outline: none;
  background: #fff;
  margin-bottom: 0.75rem;
  box-sizing: border-box;
  color: var(--text-strong, #1a1f27);
}

.ob-follow__input:focus {
  border-color: var(--brand-green, #1a6e47);
  box-shadow: 0 0 0 3px rgba(31,143,95,0.12);
}

.ob-follow__list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-height: 320px;
  overflow-y: auto;
  margin-bottom: 1rem;
  padding-right: 2px;
}

.ob-follow__loading,
.ob-follow__empty {
  font-size: 0.875rem;
  color: var(--text-soft, #888);
  text-align: center;
  padding: 1.5rem 0;
  margin: 0;
}

.ob-follow-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.9rem;
  border-radius: 10px;
  border: 1.5px solid var(--line-subtle, #e8e8e4);
  background: #fff;
}

.ob-follow-card__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.ob-follow-card__name {
  font-weight: 700;
  font-size: 0.9rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

.ob-follow-card__sub {
  font-size: 0.75rem;
  color: var(--text-soft, #888);
}

.ob-follow-btn {
  flex-shrink: 0;
  padding: 0.42rem 0.9rem;
  border-radius: 8px;
  border: 2px solid var(--brand-green, #1a6e47);
  background: none;
  color: var(--brand-green, #1a6e47);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, color 0.12s;
}

.ob-follow-btn:hover:not(:disabled) {
  background: #e8f7ef;
}

.ob-follow-btn--following {
  background: #1f8f5f;
  color: #fff;
}

.ob-follow-btn--following:hover:not(:disabled) {
  background: #155a3a;
}

.ob-step--done {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: 3rem;
}

.ob-done__icon {
  font-size: 3.5rem;
  margin-bottom: 1.25rem;
  line-height: 1;
}

.ob-done__title {
  font-size: 2.25rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  margin: 0 0 0.5rem;
}

.ob-done__sub {
  font-size: 1rem;
  color: #6b7482;
  margin: 0 0 1.5rem;
}

.ob-done__tokes {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #e8f7ef;
  border: 2px solid var(--brand-green, #1a6e47);
  border-radius: 100px;
  padding: 0.55rem 1.4rem;
  font-weight: 800;
  color: var(--brand-green, #1a6e47);
  font-size: 1.05rem;
}

@keyframes ob-toast-in {
  from { opacity: 0; transform: translateX(-50%) translateY(8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

#sw-update-banner {
  position: fixed;
  bottom: 88px; /* above bottom nav on mobile */
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #1a1a1a;
  color: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.28);
  font-size: 13px;
  font-weight: 500;
  z-index: 9999;
  white-space: nowrap;
  animation: sw-banner-in 0.22s ease;
}

#sw-update-banner[hidden] { display: none; }

#sw-update-banner svg { flex-shrink: 0; opacity: 0.7; }

#sw-update-banner [data-sw-update-reload] {
  background: #1f8f5f;
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}

#sw-update-banner [data-sw-update-reload]:hover {
  background: #17734d;
}

#sw-update-banner [data-sw-update-dismiss] {
  background: transparent;
  border: none;
  color: rgba(255,255,255,0.55);
  cursor: pointer;
  font-size: 15px;
  padding: 2px 4px;
  line-height: 1;
  flex-shrink: 0;
  transition: color 0.15s;
}

#sw-update-banner [data-sw-update-dismiss]:hover {
  color: #fff;
}

@keyframes sw-banner-in {
  from { opacity: 0; transform: translateX(-50%) translateY(10px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@media (min-width: 900px) {
  /* desktop: above the fold bottom-right, clear of sidebar */
  #sw-update-banner {
    bottom: 24px;
    left: auto;
    right: 24px;
    transform: none;
    animation: sw-banner-in-right 0.22s ease;
  }
}

@keyframes sw-banner-in-right {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes install-btn-bounce {
  0%, 100% { transform: translateY(0); }
  30%       { transform: translateY(-6px); }
  60%       { transform: translateY(-3px); }
}

.pwa-ios-tip {
  position: fixed;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%);
  background: #1a1a1a;
  color: #fff;
  padding: 14px 18px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
  max-width: 280px;
  text-align: center;
  z-index: 9999;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3);
  animation: sw-banner-in 0.2s ease;
}

.pwa-ios-tip__close {
  display: block;
  margin: 8px auto 0;
  background: none;
  border: none;
  color: rgba(255,255,255,0.55);
  cursor: pointer;
  font-size: 15px;
  padding: 2px 8px;
}

.view-section {
  background: var(--bg-surface);
  border: 1px solid var(--line-subtle);
  border-radius: var(--r-xs, 12px);
  overflow: hidden;
  margin-bottom: var(--space-sm, 12px);
}

.view-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 13px 16px 11px;
  border-bottom: 1px solid var(--line-subtle);
}

.view-section__title {
  font-size: var(--fs-sm, 0.82rem);
  font-weight: var(--fw-bold, 700);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0;
}

.view-section__count {
  font-size: var(--fs-xs, 0.72rem);
  color: var(--text-soft);
  font-weight: var(--fw-semi, 600);
}

.view-section__action {
  font-size: var(--fs-xs, 0.72rem);
  font-weight: var(--fw-semi, 600);
  color: var(--accent-blue);
  text-decoration: none;
  margin-left: auto;
}

.view-section__action:hover {
  text-decoration: underline;
}

.view-section__body {
  padding: 14px 16px;
}

.view-section--seamless .view-section__head {
  border-bottom: none;
}

.view-section--mt {
  margin-top: 16px;
}

.view-section__action-row {
  padding: var(--space-sm, 12px) 0 0;
}

.user-section {
  background: var(--bg-surface);
  border: 1px solid var(--line-subtle);
  border-radius: var(--r-xs, 12px);
  overflow: hidden;
  margin-bottom: var(--space-sm, 12px);
}

.user-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 13px 16px 11px;
  border-bottom: 1px solid var(--line-subtle);
}

.user-section__title {
  font-size: var(--fs-sm, 0.82rem);
  font-weight: var(--fw-bold, 700);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0;
}

.user-section__count {
  font-size: var(--fs-xs, 0.72rem);
  color: var(--text-soft);
  font-weight: var(--fw-semi, 600);
}

.user-empty--padded {
  padding: 3rem 1.5rem;
}

.kv-rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--line-subtle);
}

.kv-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line-subtle);
}

.kv-row:last-child {
  border-bottom: none;
}

.kv-row__label {
  font-size: var(--fs-xs, 0.72rem);
  font-weight: var(--fw-semi, 600);
  color: var(--text-muted);
  flex-shrink: 0;
  min-width: 110px;
}

.kv-row__value {
  font-size: var(--fs-sm, 0.82rem);
  color: var(--text-body);
  text-align: right;
  word-break: break-word;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--space-xl, 40px) var(--space-md, 20px);
}

.empty-state__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--accent-tint-sm, rgba(31,143,95,0.08));
  color: var(--accent-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin-bottom: var(--space-sm, 12px);
  flex-shrink: 0;
}

.empty-state__title {
  font-size: var(--fs-md, 1rem);
  font-weight: var(--fw-bold, 700);
  color: var(--text-strong);
  margin: 0 0 6px;
}

.empty-state__sub {
  font-size: var(--fs-sm, 0.82rem);
  color: var(--text-muted);
  max-width: 28ch;
  line-height: 1.55;
  margin: 0;
}

.empty-state__action {
  margin-top: 16px;
}

.empty-state__cta {
  margin-top: var(--space-sm, 12px);
}

.empty-state--sm {
  padding: var(--space-md, 20px) var(--space-sm, 12px);
}

.empty-state--sm .empty-state__icon {
  width: 36px;
  height: 36px;
  font-size: 1rem;
  margin-bottom: var(--space-xs, 8px);
}

.empty-state--sm .empty-state__title {
  font-size: var(--fs-base, 0.9rem);
}

.avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  font-weight: var(--fw-bold, 700);
  background: var(--accent-tint-md, rgba(31,143,95,0.12));
  color: var(--accent-blue);
  line-height: 1;
  user-select: none;
}

.avatar--sm { width: 36px; height: 36px; font-size: var(--fs-sm, 0.82rem); }

.avatar--md { width: 52px; height: 52px; font-size: var(--fs-md, 1rem); }

.avatar--lg { width: 72px; height: 72px; font-size: 1.5rem; }

.ref-row { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line-subtle, rgba(255, 255, 255, 0.09)); }

.ref-row:last-child { border-bottom: none; }

.ref-row__avatar { flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; background: var(--accent-tint-sm); color: var(--accent-1); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 0.95rem; }

.ref-row__info { flex: 1; min-width: 0; }

.ref-row__name { font-size: 0.9rem; font-weight: 600; color: var(--text-strong); }

.ref-row__date { font-size: 0.75rem; color: var(--text-muted); margin-top: 2px; }

.ref-status-badge { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; flex-shrink: 0; }

.ref-status-badge--pending { background: #fff3cd; color: #856404; }

.ref-status-badge--qualified { background: #cff4fc; color: #0c5460; }

.ref-status-badge--validated { background: #d1e7dd; color: #0a3622; }

.friend-card { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--border-subtle, #f0f0f0); cursor: pointer; }

.friend-card:last-child { border-bottom: none; }

.friend-card__avatar { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; background: var(--accent-1, #27ae60); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.1rem; background-size: cover; background-position: center; }

.friend-card__avatar--photo { font-size: 0; }

.friend-card__info { flex: 1; min-width: 0; }

.friend-card__name { font-weight: 600; font-size: 0.92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.friend-card__meta { font-size: 0.78rem; color: var(--text-muted); margin-top: 2px; }

.friend-card__action { flex-shrink: 0; }

.friend-card__dual-action { display: flex; gap: 6px; flex-shrink: 0; }

.up-friend-card { padding: 12px 20px; }

.up-friend-card:last-child { border-bottom: none; }

.up-friends-loading { padding: 24px 20px; color: var(--text-muted); font-size: 0.9rem; }

.fr-section-label { font-size: 0.72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); padding: 12px 4px 4px; }

.fr-card { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--border-subtle, #f0f0f0); cursor: pointer; }

.fr-card:last-child { border-bottom: none; }

.fr-card__actions { display: flex; gap: 8px; margin-left: auto; flex-shrink: 0; }

.up-req-row { display: flex; gap: 8px; }

.app-bottom-tab__badge { position: absolute; top: 4px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: #e74c3c; color: #fff; font-size: 0.62rem; font-weight: 700; display: flex; align-items: center; justify-content: center; pointer-events: none; }

.app-bottom-tab { position: relative; }

.zen-admin-stations {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.zen-admin-station {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid var(--border-subtle, rgba(0,0,0,0.08));
  border-radius: 14px;
}

.zen-admin-station__emoji { font-size: 1.5rem; line-height: 1; flex-shrink: 0; }

.zen-admin-station__info { flex: 1; min-width: 0; }

.zen-admin-station__name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text-strong);
}

.zen-admin-station__desc {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 2px;
}

.zen-admin-station__badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1f8f5f;
  background: rgba(31,143,95,0.1);
  border: 1px solid rgba(31,143,95,0.25);
  border-radius: 20px;
  padding: 3px 9px;
  flex-shrink: 0;
}

.zen-admin-station__badge--work {
  color: #4a9eff;
  background: rgba(30,90,200,0.1);
  border-color: rgba(30,90,200,0.28);
}

.zen-admin-mode-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.zen-admin-mode-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid var(--border-subtle, rgba(0,0,0,0.08));
  border-radius: 14px;
}

.zen-admin-mode-card--soon {
  opacity: 0.5;
}

.zen-admin-mode-card__dir {
  font-size: 1.2rem;
  flex-shrink: 0;
  width: 28px;
}

.zen-admin-mode-card__name {
  flex: 1;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text-strong);
}

.zen-admin-mode-card__status {
  font-size: 0.72rem;
  color: var(--text-muted);
}

.zen-page-section__sub {
  font-size: 0.82rem;
  color: var(--text-muted);
  padding: 0 4px;
  margin-bottom: 12px;
  line-height: 1.5;
}

.zen-mode-card {
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-left: 4px solid var(--zen-card-color, #1f8f5f);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.zen-mode-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.zen-mode-card__emoji {
  font-size: 1.6rem;
  line-height: 1;
  flex-shrink: 0;
}

.zen-mode-card__name {
  font-size: 1rem;
  font-weight: 800;
  color: var(--text-strong);
  line-height: 1.1;
}

.zen-mode-card__tagline {
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-top: 1px;
}

.zen-mode-card__badge {
  margin-left: auto;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--zen-card-color, #1f8f5f);
  background: color-mix(in srgb, var(--zen-card-color, #1f8f5f) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--zen-card-color, #1f8f5f) 30%, transparent);
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
  flex-shrink: 0;
}

.zen-mode-card__app {
  font-size: 0.8rem;
  color: var(--text-secondary, #555);
  font-weight: 500;
}

.zen-mode-card__stations {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.zen-mode-card__stations span {
  font-size: 0.7rem;
  color: var(--text-muted);
  background: var(--bg-subtle, #f5f5f5);
  border-radius: 6px;
  padding: 2px 8px;
}

.zen-app-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 10px;
}

.zen-app-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.zen-app-card__body {
  flex: 1;
  min-width: 0;
}

.zen-app-card__name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text-strong);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.zen-app-card__mode {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(31,143,95,0.1);
  color: #1f8f5f;
  border-radius: 6px;
  padding: 2px 7px;
}

.zen-app-card__desc {
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.5;
}

.zen-page-stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-subtle);
}

.zen-page-stat-label {
  font-size: 0.875rem;
  color: var(--text-strong);
}

.zen-page-stat-value {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f8f5f;
}

.budtender-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px 3px 7px;
  background: #1a3d2a;
  border: 1px solid #2aac76;
  border-radius: 20px;
  color: #2aac76;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.5;
}

.bt-dispo-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  background: rgba(42,172,118,0.08);
  border: 1px solid rgba(42,172,118,0.25);
  border-radius: 16px;
  color: #90c9b0;
  font-size: 0.78rem;
  font-weight: 500;
}

.bt-dispo-chip--removable {
  cursor: default;
}

.bt-chip-remove {
  background: none;
  border: none;
  color: #90c9b0;
  cursor: pointer;
  font-size: 0.9rem;
  padding: 0 0 0 3px;
  line-height: 1;
  opacity: 0.7;
}

.bt-chip-remove:hover { opacity: 1; }

.bt-review-card {
  padding: 14px 0;
  border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.07));
}

.bt-review-card:last-child { border-bottom: none; }

.bt-review-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.bt-review-card__reviewer {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-strong, #fff);
}

.bt-review-card__date {
  font-size: 0.78rem;
  color: var(--text-muted, rgba(255,255,255,0.45));
  margin-left: auto;
}

.bt-review-card__body {
  font-size: 0.875rem;
  color: var(--text-secondary, rgba(255,255,255,0.7));
  margin: 0;
  line-height: 1.55;
}

.bt-star,
.bt-star-btn {
  color: rgba(255,255,255,0.2);
  font-size: 1rem;
  line-height: 1;
}

.bt-star--on,
.bt-star-btn--on {
  color: #f5a623;
}

.bt-star-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px;
  transition: color 0.12s;
}

.bt-star-btn:hover { color: #f5a623; }

.bt-rating-stars {
  display: inline-flex;
  gap: 1px;
}

.bt-status {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.bt-status--approved { border-color: rgba(42,172,118,0.3); background: rgba(42,172,118,0.06); }

.bt-status--pending { border-color: rgba(255,193,7,0.2); background: rgba(255,193,7,0.04); }

.bt-status--rejected { border-color: rgba(220,53,69,0.2); background: rgba(220,53,69,0.04); }

.bt-status__note {
  margin: 0;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.6);
  line-height: 1.45;
}

.bt-apply-prompt {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.6);
  margin: 0 0 12px;
  line-height: 1.5;
}

.bt-dispo-search-wrap {
  position: relative;
}

.bt-dispo-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #1a2520;
  border: 1px solid rgba(42,172,118,0.25);
  border-radius: 8px;
  z-index: 200;
  max-height: 220px;
  overflow-y: auto;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}

.bt-dispo-result {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding: 10px 14px;
  color: rgba(255,255,255,0.85);
  font-size: 0.84rem;
  cursor: pointer;
  transition: background 0.1s;
}

.bt-dispo-result:last-child { border-bottom: none; }

.bt-dispo-result:hover { background: rgba(42,172,118,0.1); }

.bt-dispo-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.bt-dispos-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 14px;
}

.bt-dispos-label {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.4);
  font-weight: 500;
  margin-right: 2px;
}

.bt-attachments-pending {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.bt-attach-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.bt-attach-name {
  font-size: 0.84rem;
  color: rgba(255,255,255,0.8);
  flex: 1;
}

.bt-review-form {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 20px;
}

.bt-review-form__title {
  font-size: 0.9rem;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  margin: 0 0 12px;
}

.bt-star-picker {
  display: flex;
  gap: 4px;
  margin-bottom: 12px;
}

.bt-review-textarea {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 8px;
  color: rgba(255,255,255,0.85);
  font-size: 0.875rem;
  padding: 10px 12px;
  resize: vertical;
  margin-bottom: 10px;
  font-family: inherit;
}

.bt-review-textarea:focus {
  outline: none;
  border-color: rgba(42,172,118,0.5);
}

.bt-form-msg {
  font-size: 0.82rem;
  margin: 8px 0 0;
}

.bt-form-msg--error { color: #ff6b6b; }

.bt-review-prompt {
  font-size: 0.84rem;
  color: rgba(255,255,255,0.5);
  margin-bottom: 16px;
}

.bt-review-prompt--done { color: #2aac76; }

.bt-attach-section { margin-top: 16px; }

@media (max-width: 768px) {

  /* ── Panels ─────────────────────────────────────────────────── */
  .admin-panel,
  .admin-metric,
  .admin-editor {
    padding: 14px;
    border-radius: 16px;
  }

  .admin-panel__head {
    gap: 8px;
  }

  /* Panel head with actions: stack on narrow screens */
  .admin-panel__head--actions {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .admin-panel__head--actions > button,
  .admin-panel__head--actions > .btn {
    align-self: flex-start;
  }

  /* ── Overview: compact table — 3 panels in preview grid ────── */
  /* The 3rd column (date) is secondary on mobile — hide it */
  .admin-table--compact th:last-child,
  .admin-table--compact td:last-child {
    display: none;
  }

  /* Compact tables must NOT be forced to 520 px on mobile */
  .admin-table--compact {
    min-width: 0;
  }

  /* Wide tables: enforce horizontal scroll instead of collapsing */
  .admin-table:not(.admin-table--compact) {
    min-width: 580px;
  }

  /* ── Table cells ─────────────────────────────────────────────── */
  .admin-table th,
  .admin-table td {
    padding: 10px 10px;
    font-size: 0.78rem;
  }

  /* ── Table shell: full-bleed + scroll hint ───────────────────── */
  .admin-table-shell,
  .admin-table-wrap {
    border-radius: 12px;
    min-width: 0;      /* critical: grid item must not grow beyond track width */
    /* Fade-out right edge as a scroll affordance */
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
    mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
  }
  /* Once fully scrolled, restore the right edge */
  .admin-table-shell.is-scrolled-end,
  .admin-table-wrap.is-scrolled-end {
    -webkit-mask-image: none;
    mask-image: none;
  }
  /* Compact tables don't need the hint since they fit */
  .admin-table-shell:has(.admin-table--compact),
  .admin-table-wrap:has(.admin-table--compact) {
    -webkit-mask-image: none;
    mask-image: none;
  }

  /* ── Filters (admin-filters grid) ───────────────────────────── */
  .admin-filters {
    grid-template-columns: 1fr;
  }

  /* ── Catalog filter bar (flex-based) ────────────────────────── */
  .admin-filter-bar {
    flex-direction: column;
  }
  .admin-filter-input,
  .admin-filter-select {
    width: 100%;
    flex: none;
    min-width: 0;
  }
  .admin-filter-input--sm {
    flex: none;
    width: 100%;
  }

  /* ── Catalog tabs: horizontal scroll ────────────────────────── */
  .admin-catalog-tabs {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap;
    padding-bottom: 1px;
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
    mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
  }
  .admin-catalog-tabs::-webkit-scrollbar { display: none; }

  .admin-catalog-tab-btn {
    flex-shrink: 0;
    padding: 8px 12px;
    font-size: 0.8rem;
    white-space: nowrap;
  }
  .admin-catalog-tab-btn--engine {
    margin-left: 0;
  }

  /* ── Catalog stats ───────────────────────────────────────────── */
  .admin-catalog-stats {
    gap: 8px 16px;
  }

  /* ── Engine metric grid: 2-up ───────────────────────────────── */
  .admin-engine-metric-grid {
    flex-wrap: wrap;
  }
  .admin-engine-metric {
    flex: 0 0 50%;
    min-width: 0;
    box-sizing: border-box;
  }
  .admin-engine-metric:nth-child(even) {
    border-right: 0;
  }
  .admin-engine-metric:nth-child(n+3) {
    border-top: 1px solid rgba(31, 143, 95, 0.07);
  }

  /* ── Engine header: stack ───────────────────────────────────── */
  .admin-engine-header {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .admin-engine-progress-wrap {
    min-width: 0;
  }
  .admin-engine-actions {
    justify-content: flex-start;
  }

  /* ── Engine panels / log ────────────────────────────────────── */
  .admin-engine-panel {
    border-radius: 10px;
  }
  .admin-engine-log {
    font-size: 0.68rem;
    max-height: 240px;
  }

  /* ── Quantum sync secret input row ──────────────────────────── */
  [data-engine-internal-secret] {
    max-width: 100% !important;
    width: 100%;
  }

  /* ── Catalog pager ──────────────────────────────────────────── */
  .admin-catalog-pager {
    flex-wrap: wrap;
    gap: 8px;
  }

  /* ── System tabs (surface inventory) ────────────────────────── */
  .admin-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap;
    padding-bottom: 0;
  }
  .admin-tabs::-webkit-scrollbar { display: none; }
  .admin-tab {
    flex-shrink: 0;
    white-space: nowrap;
  }

  /* ── Overlay / detail sheet ─────────────────────────────────── */
  .admin-overlay__sheet {
    max-height: 92vh;
    border-radius: 20px 20px 0 0;
    padding: 16px;
    overflow-y: auto;
  }
  .admin-overlay__header {
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
  }
  .admin-overlay__header > button {
    flex-shrink: 0;
    margin-top: 4px;
  }
  .admin-overlay__grid--two,
  .admin-overlay__grid--three {
    grid-template-columns: 1fr;
  }

  /* ── Detail cards inside overlay ────────────────────────────── */
  .admin-detail-card {
    padding: 12px;
    border-radius: 14px;
  }
  .admin-kv__row {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  /* ── Timeline / activity inside overlay ─────────────────────── */
  .admin-timeline__head,
  .admin-timeline__meta {
    flex-direction: column;
    align-items: flex-start;
  }

  /* ── Tap-target size for all admin buttons ───────────────────── */
  .btn {
    min-height: 40px;
  }

  /* ── Stat grid: 2-up ────────────────────────────────────────── */
  .admin-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* ── Metrics: 2-up ─────────────────────────────────────────── */
  .admin-metrics {
    grid-template-columns: repeat(2, 1fr);
  }
}

html {
  /* Green so OS splash → first paint gap is green, not black */
  background: #1f8f5f;
  /* Disable pull-to-refresh and over-scroll bounce on root */
  overscroll-behavior: none;
}

body {
  overscroll-behavior: none;
  /* Prevent long-press text selection on UI chrome */
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.app-content,
input,
textarea,
[contenteditable] {
  -webkit-user-select: text;
  user-select: text;
}

#zen-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #071510;
  flex-direction: column;
  font-family: Inter, system-ui, sans-serif;
  overflow: hidden;
  color: #fff;
}

@media (orientation: landscape) and (max-height: 600px) {
  #zen-overlay { display: flex; }
}

.zen-atmo {
  position: absolute;
  pointer-events: none;
}

.zen-atmo--glow1 {
  width: 50vw;
  height: 50vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(31,143,95,0.22) 0%, transparent 65%);
  top: -10vw;
  left: -5vw;
  animation: zen-glow-drift 12s ease-in-out infinite alternate;
}

.zen-atmo--glow2 {
  width: 40vw;
  height: 40vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(10,90,60,0.18) 0%, transparent 65%);
  bottom: -8vw;
  right: -4vw;
  animation: zen-glow-drift 9s ease-in-out infinite alternate-reverse;
}

.zen-atmo--particles {
  inset: 0;
  background-image:
    radial-gradient(1px 1px at 12% 30%, rgba(255,255,255,0.25) 0%, transparent 100%),
    radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.18) 0%, transparent 100%),
    radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.22) 0%, transparent 100%),
    radial-gradient(1px 1px at 80% 55%, rgba(255,255,255,0.15) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 80%, rgba(255,255,255,0.20) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 45%, rgba(31,200,100,0.3) 0%, transparent 100%);
}

.zen-topbar {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(14px + env(safe-area-inset-top, 0px)) calc(120px + env(safe-area-inset-right, 0px)) 10px calc(120px + env(safe-area-inset-left, 0px));
  flex-shrink: 0;
}

.zen-mode-badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1f8f5f;
  background: rgba(31,143,95,0.15);
  border: 1px solid rgba(31,143,95,0.3);
  border-radius: 20px;
  padding: 4px 12px;
  white-space: nowrap;
}

.zen-topbar-right {
  position: absolute;
  right: calc(16px + env(safe-area-inset-right, 0px));
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
}

.zen-settings-gear {
  background: none;
  border: none;
  color: rgba(255,255,255,0.35);
  padding: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
  -webkit-tap-highlight-color: transparent;
  flex-shrink: 0;
}

.zen-settings-gear:hover { color: rgba(255,255,255,0.75); }

.zen-brand-corner {
  position: absolute;
  left: calc(16px + env(safe-area-inset-left, 0px));
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}

.zen-brand-corner__icon {
  width: 26px;
  height: 26px;
  color: rgba(255,255,255,0.55);
  flex-shrink: 0;
}

.zen-wordmark {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.55);
  text-transform: lowercase;
  line-height: 1;
}

.zen-safe-window {
  flex: 1;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  margin: 0 calc(12px + env(safe-area-inset-right, 0px)) 0 calc(12px + env(safe-area-inset-left, 0px));
  min-height: 0;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(0,0,0,0.25);
}

.zen-window-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 18px 4px;
  flex-shrink: 0;
}

.zen-window-title {
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: rgba(255,255,255,0.85);
  line-height: 1;
}

.zen-window-back {
  display: flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  font-family: inherit;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0;
  cursor: pointer;
  flex-shrink: 0;
  transition: color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-window-back:hover { color: rgba(255,255,255,0.65); }

.zen-window-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}

.zen-window-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
  -webkit-tap-highlight-color: transparent;
  flex-shrink: 0;
}

.zen-window-btn:active { transform: scale(0.88); }

.zen-window-btn--pin {
  background: rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.55);
}

.zen-window-btn--pin:hover {
  background: rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.9);
}

.zen-window-btn--close {
  background: rgba(220,60,60,0.18);
  color: rgba(220,100,100,0.9);
}

.zen-window-btn--close:hover {
  background: rgba(220,60,60,0.35);
  color: #fff;
}

.zen-window-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.zen-window-body .zen-app-frame { display: none; position: relative; }

.zen-window-body.is-app-open .zen-launcher { display: none; }

.zen-window-body.is-app-open .zen-app-frame.is-open { display: flex; flex: 1; flex-direction: column; min-height: 0; }

.zen-runtime {
  position: absolute;
  bottom: 6px;
  left: 16px;
  font-size: 1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.5);
  pointer-events: none;
  z-index: 4;
  line-height: 1;
}

.zen-breath {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.zen-breath-ring {
  width: clamp(100px, 22vw, 160px);
  height: clamp(100px, 22vw, 160px);
  border-radius: 50%;
  border: 2px solid rgba(31,143,95,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 4s ease-in-out, border-color 0.5s ease, background 0.5s ease;
  background: rgba(31,143,95,0.06);
}

.zen-breath-ring--inhale {
  transform: scale(1.55);
  border-color: rgba(31,200,100,0.7);
  background: rgba(31,200,100,0.1);
  transition: transform 4s ease-in-out, border-color 0.5s ease, background 0.5s ease;
}

.zen-breath-ring--hold {
  transform: scale(1.55);
  border-color: rgba(31,200,100,0.9);
  background: rgba(31,200,100,0.15);
  transition: transform 0.1s ease, border-color 0.3s ease, background 0.3s ease;
}

.zen-breath-ring--exhale {
  transform: scale(1);
  border-color: rgba(31,143,95,0.4);
  background: rgba(31,143,95,0.06);
  transition: transform 6s ease-in-out, border-color 0.5s ease, background 0.5s ease;
}

.zen-breath-ring--rest {
  transform: scale(1);
  border-color: rgba(31,143,95,0.25);
  background: rgba(31,143,95,0.03);
  transition: transform 0.5s ease, border-color 0.5s ease, background 0.5s ease;
}

.zen-breath-label {
  font-size: clamp(0.75rem, 1.8vw, 1rem);
  font-weight: 700;
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.05em;
  text-align: center;
}

.zen-breath-phase {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #1f8f5f;
  min-height: 1em;
}

.zen-breath-count {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.25);
  min-height: 1em;
}

.zen-breath-start {
  margin-top: 6px;
  background: rgba(31,143,95,0.18);
  border: 1px solid rgba(31,143,95,0.35);
  color: rgba(255,255,255,0.75);
  border-radius: 20px;
  padding: 7px 24px;
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-breath-start:hover { background: rgba(31,143,95,0.3); }

.zen-focus {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.zen-focus-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #4a9eff;
  min-height: 1em;
}

.zen-focus-timer {
  font-size: clamp(2.8rem, 8vw, 5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #fff;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.zen-focus-sub {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.3);
  min-height: 1em;
}

.zen-focus-btn {
  margin-top: 10px;
  background: rgba(30,90,200,0.2);
  border: 1px solid rgba(74,158,255,0.35);
  color: rgba(255,255,255,0.8);
  border-radius: 20px;
  padding: 8px 30px;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-focus-btn:hover { background: rgba(30,90,200,0.35); }

.zen-focus-reset {
  background: none;
  border: none;
  color: rgba(255,255,255,0.2);
  font-family: inherit;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 4px 10px;
  transition: color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-focus-reset:hover { color: rgba(255,255,255,0.5); }

.zen-burst {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.zen-burst-phase {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #fb923c;
  min-height: 1em;
}

.zen-burst-ring {
  width: clamp(110px, 22vw, 160px);
  height: clamp(110px, 22vw, 160px);
  border-radius: 50%;
  border: 3px solid rgba(249,115,22,0.35);
  background: rgba(249,115,22,0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  transition: border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.zen-burst-ring--work {
  border-color: rgba(249,115,22,0.85);
  background: rgba(249,115,22,0.12);
  box-shadow: 0 0 28px rgba(249,115,22,0.25);
  animation: zen-burst-pulse 1s ease-in-out infinite;
}

.zen-burst-ring--rest {
  border-color: rgba(249,115,22,0.25);
  background: rgba(249,115,22,0.03);
  box-shadow: none;
}

.zen-burst-ring--done {
  border-color: rgba(249,115,22,0.9);
  background: rgba(249,115,22,0.15);
  box-shadow: 0 0 40px rgba(249,115,22,0.3);
}

@keyframes zen-burst-pulse {
  0%, 100% { box-shadow: 0 0 20px rgba(249,115,22,0.2); }
  50%       { box-shadow: 0 0 40px rgba(249,115,22,0.45); }
}

.zen-burst-timer {
  font-size: clamp(2.8rem, 7vw, 4.5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #fff;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.zen-burst-timer-unit {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.3);
}

.zen-burst-sets {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.3);
  min-height: 1em;
}

.zen-burst-btns {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 6px;
}

.zen-burst-btn {
  background: rgba(249,115,22,0.2);
  border: 1px solid rgba(249,115,22,0.4);
  color: #fff;
  border-radius: 20px;
  padding: 8px 26px;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-burst-btn:hover { background: rgba(249,115,22,0.35); }

.zen-burst-reset {
  background: none;
  border: none;
  color: rgba(255,255,255,0.2);
  font-family: inherit;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 4px 8px;
  transition: color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-burst-reset:hover { color: rgba(255,255,255,0.5); }

#zen-overlay[data-zen-mode="pumped"] .zen-burst-phase { color: #fb923c; }

#zen-overlay[data-zen-mode="pumped"] .zen-burst-btn {
  background: rgba(249,115,22,0.2);
  border-color: rgba(249,115,22,0.4);
}

.zen-spin {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
}

.zen-spin-result {
  font-size: clamp(1rem, 2.8vw, 1.4rem);
  font-weight: 700;
  color: rgba(255,255,255,0.55);
  letter-spacing: -0.01em;
  text-align: center;
  min-height: 2em;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  transition: opacity 0.2s ease;
}

.zen-spin-result--reveal {
  color: #fff;
  animation: zen-spin-reveal 0.4s ease forwards;
}

@keyframes zen-spin-reveal {
  0%   { opacity: 0; transform: scale(0.88); }
  100% { opacity: 1; transform: scale(1); }
}

.zen-spin-btn {
  width: clamp(100px, 22vw, 150px);
  height: clamp(100px, 22vw, 150px);
  border-radius: 50%;
  background: rgba(220,38,38,0.12);
  border: 2px solid rgba(220,38,38,0.35);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
  -webkit-tap-highlight-color: transparent;
}

.zen-spin-btn:hover {
  background: rgba(220,38,38,0.2);
  border-color: rgba(220,38,38,0.6);
}

.zen-spin-btn:active { transform: scale(0.92); }

.zen-spin-wheel {
  font-size: clamp(2.5rem, 7vw, 4rem);
  line-height: 1;
  display: block;
  transform-origin: center;
  will-change: transform;
}

.zen-spin-sub {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.2);
}

.zen-launcher {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  padding: 12px 18px 16px;
  overflow-y: auto;
}

.zen-launcher-title {
  display: none;
}

.zen-launcher-apps {
  display: grid;
  grid-template-columns: repeat(auto-fill, 96px);
  gap: 12px;
  width: 100%;
}

.zen-app-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  color: #fff;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
}

.zen-app-icon__tile {
  width: 80px;
  height: 80px;
  border-radius: 20px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, transform 0.12s ease;
}

.zen-app-icon__tile svg {
  width: 34px;
  height: 34px;
  color: rgba(255,255,255,0.8);
}

.zen-app-icon:active .zen-app-icon__tile,
.zen-app-icon:hover .zen-app-icon__tile {
  background: rgba(255,255,255,0.14);
  transform: scale(0.94);
}

.zen-app-icon__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: rgba(255,255,255,0.55);
}

.zen-app-icon[data-zen-pinned] {
  position: relative;
}

.zen-app-icon[data-zen-pinned]::after {
  content: '';
  position: absolute;
  top: 6px;
  right: 6px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.9;
  box-shadow: 0 0 4px rgba(255,255,255,0.4);
}

.zen-launcher-hint {
  margin-top: auto;
  padding-top: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.2);
}

.zen-player {
  position: relative;
  z-index: 2;
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  gap: 0;
  padding: 0 20px 4px;
  min-height: 0;
}

.zen-art-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.zen-art {
  position: relative;
  width: clamp(72px, 14vw, 110px);
  height: clamp(72px, 14vw, 110px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.zen-art-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(31,143,95,0.35);
}

.zen-art-ring--1 { animation: zen-ring-pulse 3s ease-in-out infinite; }

.zen-art-ring--2 { animation: zen-ring-pulse 3s ease-in-out infinite 0.8s; transform: scale(1.25); }

.zen-art-ring--3 { animation: zen-ring-pulse 3s ease-in-out infinite 1.6s; transform: scale(1.55); }

.zen-art-emoji {
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  line-height: 1;
  filter: drop-shadow(0 0 20px rgba(31,200,100,0.5));
  animation: zen-float 5s ease-in-out infinite;
  position: relative;
  z-index: 1;
}

.zen-viz-bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 32px;
}

.zen-viz-bar {
  width: 3px;
  height: 20%;
  background: linear-gradient(to top, #1f8f5f, rgba(31,200,100,0.4));
  border-radius: 2px;
  transition: height 0.1s ease;
}

.zen-controls-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.zen-now-playing {
  text-align: center;
}

.zen-now-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #1f8f5f;
  margin-bottom: 5px;
}

.zen-now-name {
  font-size: clamp(1rem, 2.5vw, 1.4rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #fff;
  line-height: 1.1;
}

.zen-now-desc {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.4);
  margin-top: 3px;
}

.zen-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.zen-controls > div, .zen-controls > button {
  /* play + pin sit in a row */
}

.zen-controls .zen-play-btn ~ .zen-pin-station-btn,
.zen-controls .zen-pin-station-btn {
  /* already flex children, no extra needed */
}

.zen-controls {
  flex-direction: row;
  align-items: center;
  gap: 14px;
}

.zen-play-btn {
  width: clamp(52px, 10vw, 72px);
  height: clamp(52px, 10vw, 72px);
  border-radius: 50%;
  background: #1f8f5f;
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 0 0 0 rgba(31,143,95,0.4);
  transition: transform 0.15s ease, background 0.15s ease;
}

.zen-play-btn:active { transform: scale(0.93); }

.zen-play-btn.is-playing {
  animation: zen-play-pulse 2.5s ease-in-out infinite;
}

.zen-play-btn.is-buffering {
  opacity: 0.6;
  animation: zen-spin 1s linear infinite;
}

.zen-pin-station-btn {
  background: none;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: rgba(255,255,255,0.4);
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
  flex-shrink: 0;
}

.zen-pin-station-btn.is-pinned {
  color: #fff;
  border-color: rgba(255,255,255,0.7);
  background: rgba(255,255,255,0.12);
}

.zen-dock-icon--radio.is-pinned {
  box-shadow: 0 0 0 2px rgba(255,255,255,0.45), 0 2px 8px rgba(0,0,0,0.35);
}

.zen-vol-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}

.zen-vol-icon {
  color: rgba(255,255,255,0.35);
  flex-shrink: 0;
}

.zen-vol-slider {
  -webkit-appearance: none;
  appearance: none;
  width: clamp(80px, 12vw, 130px);
  height: 3px;
  border-radius: 2px;
  background: rgba(255,255,255,0.15);
  outline: none;
  cursor: pointer;
}

.zen-vol-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #1f8f5f;
  cursor: pointer;
}

.zen-stations-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-left: 20px;
  border-left: 1px solid rgba(255,255,255,0.06);
  max-height: 100%;
  overflow-y: auto;
}

.zen-stations-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.25);
  margin-bottom: 2px;
}

.zen-station-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.zen-station-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(255,255,255,0.04);
  border: 1px solid transparent;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s ease, border-color 0.15s ease;
  color: #fff;
  font-family: inherit;
}

.zen-station-item:hover { background: rgba(255,255,255,0.08); }

.zen-station-item.is-active {
  background: rgba(31,143,95,0.18);
  border-color: rgba(31,143,95,0.4);
}

.zen-station-item__emoji { font-size: 1.2rem; line-height: 1; flex-shrink: 0; }

.zen-station-item__info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.zen-station-item__name {
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.zen-station-item__desc {
  font-size: 0.65rem;
  color: rgba(255,255,255,0.4);
}

.zen-footer {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  padding: 4px 20px 8px;
  flex-shrink: 0;
}

.zen-footer-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.2);
}

.zen-rotate-icon {
  display: inline-block;
  font-size: 0.95rem;
  animation: zen-rotate-phone 2.8s ease-in-out infinite;
}

@keyframes zen-float {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50%       { transform: translateY(-8px) rotate(3deg); }
}

@keyframes zen-glow-drift {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(4%, 6%) scale(1.08); }
}

@keyframes zen-ring-pulse {
  0%, 100% { opacity: 0.35; transform: scale(var(--s, 1)); }
  50%       { opacity: 0.08; transform: scale(calc(var(--s, 1) * 1.08)); }
}

@keyframes zen-play-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(31,143,95,0.5); }
  50%       { box-shadow: 0 0 0 12px rgba(31,143,95,0); }
}

@keyframes zen-spin {
  to { transform: rotate(360deg); }
}

@keyframes zen-rotate-phone {
  0%, 35%   { transform: rotate(0deg); }
  55%, 100% { transform: rotate(-90deg); }
}

.zen-mode-toggle {
  display: flex;
  background: rgba(255,255,255,0.07);
  border-radius: 20px;
  padding: 2px;
  gap: 0;
}

.zen-mode-btn {
  background: none;
  border: none;
  color: rgba(255,255,255,0.45);
  font-family: inherit;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 4px 9px;
  border-radius: 18px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.zen-mode-btn.is-active {
  background: rgba(255,255,255,0.14);
  color: #fff;
}

.zen-mode-btn[data-zen-pinned]::after {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.85;
  margin-left: 4px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.zen-dock-handle {
  flex-shrink: 0;
  position: relative;
  margin-top: -14px; /* icons overlap safe-window bottom edge */
  height: 56px;
  z-index: 4;
  padding: 0 calc(12px + env(safe-area-inset-left, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) calc(12px + env(safe-area-inset-right, 0px));
}

.zen-dock-handle__bar {
  position: absolute;
  bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  left: 50%;
  transform: translateX(-50%);
  width: 75%;
  max-width: calc(100% - 24px);
  height: 7px;
  border-radius: 999px;
  background: rgba(210,210,215,0.28);
}

[data-zen-dock-apps] {
  position: absolute;
  bottom: calc(8px + env(safe-area-inset-bottom, 0px) + 1px); /* sit on top of bar */
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 8px;
  z-index: 2;
}

.zen-dock-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--dock-color) 80%, #000 20%);
  border: 1.5px solid color-mix(in srgb, var(--dock-color) 70%, #fff 30%);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

.zen-dock-icon:active {
  transform: scale(0.88);
}

.zen-dock-icon svg {
  width: 26px;
  height: 26px;
  stroke: rgba(255,255,255,0.92);
  fill: none;
}

#zen-overlay[data-zen-mode="work"] {
  background: #060d1a;
}

#zen-overlay[data-zen-mode="work"] .zen-atmo--glow1 {
  background: radial-gradient(circle, rgba(30,90,200,0.22) 0%, transparent 65%);
}

#zen-overlay[data-zen-mode="work"] .zen-atmo--glow2 {
  background: radial-gradient(circle, rgba(10,50,140,0.18) 0%, transparent 65%);
}

#zen-overlay[data-zen-mode="work"] .zen-atmo--particles {
  background-image:
    radial-gradient(1px 1px at 12% 30%, rgba(255,255,255,0.2) 0%, transparent 100%),
    radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.15) 0%, transparent 100%),
    radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.18) 0%, transparent 100%),
    radial-gradient(1px 1px at 80% 55%, rgba(255,255,255,0.12) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 80%, rgba(255,255,255,0.16) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 45%, rgba(60,140,255,0.35) 0%, transparent 100%);
}

#zen-overlay[data-zen-mode="work"] .zen-mode-badge {
  color: #4a9eff;
  background: rgba(30,90,200,0.15);
  border-color: rgba(30,90,200,0.35);
}

#zen-overlay[data-zen-mode="work"] .zen-art-ring {
  border-color: rgba(30,100,220,0.35);
}

#zen-overlay[data-zen-mode="work"] .zen-art-emoji {
  filter: drop-shadow(0 0 20px rgba(60,140,255,0.55));
}

#zen-overlay[data-zen-mode="work"] .zen-viz-bar {
  background: linear-gradient(to top, #1a5ccc, rgba(60,140,255,0.4));
}

#zen-overlay[data-zen-mode="work"] .zen-now-label {
  color: #4a9eff;
}

#zen-overlay[data-zen-mode="work"] .zen-play-btn {
  background: #1a5ccc;
}

#zen-overlay[data-zen-mode="work"] .zen-play-btn.is-playing {
  animation: zen-play-pulse-work 2.5s ease-in-out infinite;
}

#zen-overlay[data-zen-mode="work"] .zen-vol-slider::-webkit-slider-thumb {
  background: #4a9eff;
}

#zen-overlay[data-zen-mode="work"] .zen-station-item.is-active {
  background: rgba(30,90,200,0.18);
  border-color: rgba(30,90,200,0.45);
}

@keyframes zen-play-pulse-work {
  0%, 100% { box-shadow: 0 0 0 0 rgba(30,90,200,0.55); }
  50%       { box-shadow: 0 0 0 12px rgba(30,90,200,0); }
}

#zen-overlay[data-zen-mode="work"] .zen-app-icon__tile {
  background: rgba(74,158,255,0.1);
  border-color: rgba(74,158,255,0.2);
}

#zen-overlay[data-zen-mode="work"] .zen-app-back {
  color: rgba(74,158,255,0.45);
}

#zen-overlay[data-zen-mode="pumped"] { background: #1a0d00; }

#zen-overlay[data-zen-mode="pumped"] .zen-atmo--glow1 {
  background: radial-gradient(circle, rgba(249,115,22,0.22) 0%, transparent 65%);
}

#zen-overlay[data-zen-mode="pumped"] .zen-atmo--glow2 {
  background: radial-gradient(circle, rgba(180,60,0,0.16) 0%, transparent 65%);
}

#zen-overlay[data-zen-mode="pumped"] .zen-atmo--particles {
  background-image:
    radial-gradient(1px 1px at 12% 30%, rgba(255,255,255,0.2) 0%, transparent 100%),
    radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.15) 0%, transparent 100%),
    radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.18) 0%, transparent 100%),
    radial-gradient(1px 1px at 80% 55%, rgba(255,255,255,0.12) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 80%, rgba(255,255,255,0.16) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 45%, rgba(249,115,22,0.4)  0%, transparent 100%);
}

#zen-overlay[data-zen-mode="pumped"] .zen-mode-badge {
  color: #fb923c;
  background: rgba(249,115,22,0.12);
  border-color: rgba(249,115,22,0.3);
}

#zen-overlay[data-zen-mode="pumped"] .zen-art-ring { border-color: rgba(249,115,22,0.35); }

#zen-overlay[data-zen-mode="pumped"] .zen-art-emoji { filter: drop-shadow(0 0 20px rgba(249,115,22,0.55)); }

#zen-overlay[data-zen-mode="pumped"] .zen-viz-bar { background: linear-gradient(to top, #c2410c, rgba(249,115,22,0.4)); }

#zen-overlay[data-zen-mode="pumped"] .zen-now-label { color: #fb923c; }

#zen-overlay[data-zen-mode="pumped"] .zen-play-btn { background: #c2410c; }

#zen-overlay[data-zen-mode="pumped"] .zen-play-btn.is-playing { animation: zen-play-pulse-pumped 2.5s ease-in-out infinite; }

#zen-overlay[data-zen-mode="pumped"] .zen-vol-slider::-webkit-slider-thumb { background: #fb923c; }

#zen-overlay[data-zen-mode="pumped"] .zen-station-item.is-active {
  background: rgba(249,115,22,0.15);
  border-color: rgba(249,115,22,0.4);
}

#zen-overlay[data-zen-mode="pumped"] .zen-app-icon__tile {
  background: rgba(249,115,22,0.1);
  border-color: rgba(249,115,22,0.2);
}

#zen-overlay[data-zen-mode="pumped"] .zen-app-back { color: rgba(249,115,22,0.45); }

@keyframes zen-play-pulse-pumped {
  0%, 100% { box-shadow: 0 0 0 0 rgba(249,115,22,0.55); }
  50%       { box-shadow: 0 0 0 12px rgba(249,115,22,0); }
}

#zen-overlay[data-zen-mode="party"] { background: #1a0004; }

#zen-overlay[data-zen-mode="party"] .zen-atmo--glow1 {
  background: radial-gradient(circle, rgba(220,38,38,0.22) 0%, transparent 65%);
}

#zen-overlay[data-zen-mode="party"] .zen-atmo--glow2 {
  background: radial-gradient(circle, rgba(153,22,22,0.16) 0%, transparent 65%);
}

#zen-overlay[data-zen-mode="party"] .zen-atmo--particles {
  background-image:
    radial-gradient(1px 1px at 12% 30%, rgba(255,255,255,0.2) 0%, transparent 100%),
    radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.15) 0%, transparent 100%),
    radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.18) 0%, transparent 100%),
    radial-gradient(1px 1px at 80% 55%, rgba(255,255,255,0.12) 0%, transparent 100%),
    radial-gradient(1px 1px at 90% 80%, rgba(255,255,255,0.16) 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 45%, rgba(220,38,38,0.45)  0%, transparent 100%);
}

#zen-overlay[data-zen-mode="party"] .zen-mode-badge {
  color: #f87171;
  background: rgba(220,38,38,0.12);
  border-color: rgba(220,38,38,0.3);
}

#zen-overlay[data-zen-mode="party"] .zen-art-ring { border-color: rgba(220,38,38,0.35); }

#zen-overlay[data-zen-mode="party"] .zen-art-emoji { filter: drop-shadow(0 0 20px rgba(220,38,38,0.55)); }

#zen-overlay[data-zen-mode="party"] .zen-viz-bar { background: linear-gradient(to top, #991b1b, rgba(220,38,38,0.4)); }

#zen-overlay[data-zen-mode="party"] .zen-now-label { color: #f87171; }

#zen-overlay[data-zen-mode="party"] .zen-play-btn { background: #991b1b; }

#zen-overlay[data-zen-mode="party"] .zen-play-btn.is-playing { animation: zen-play-pulse-party 2.5s ease-in-out infinite; }

#zen-overlay[data-zen-mode="party"] .zen-vol-slider::-webkit-slider-thumb { background: #f87171; }

#zen-overlay[data-zen-mode="party"] .zen-station-item.is-active {
  background: rgba(220,38,38,0.15);
  border-color: rgba(220,38,38,0.4);
}

#zen-overlay[data-zen-mode="party"] .zen-app-icon__tile {
  background: rgba(220,38,38,0.1);
  border-color: rgba(220,38,38,0.2);
}

#zen-overlay[data-zen-mode="party"] .zen-app-back { color: rgba(220,38,38,0.45); }

@keyframes zen-play-pulse-party {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,0.55); }
  50%       { box-shadow: 0 0 0 12px rgba(220,38,38,0); }
}

.zen-settings-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 30;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.zen-settings-dialog {
  background: rgba(8,18,10,0.97);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 24px 20px 20px;
  width: min(300px, 88vw);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.zen-settings-dialog__title {
  font-size: 1.1rem;
  font-weight: 800;
  color: rgba(255,255,255,0.9);
  letter-spacing: -0.02em;
}

.zen-settings-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.zen-settings-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.4);
}

.zen-settings-select {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 10px;
  color: rgba(255,255,255,0.85);
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 9px 12px;
  appearance: none;
  -webkit-appearance: none;
  outline: none;
}

.zen-settings-actions {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}

.zen-settings-save {
  flex: 1;
  background: rgba(31,143,95,0.22);
  border: 1px solid rgba(31,143,95,0.45);
  border-radius: 10px;
  color: #fff;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 10px;
  cursor: pointer;
  transition: background 0.15s ease;
}

.zen-settings-save:hover { background: rgba(31,143,95,0.38); }

.zen-settings-cancel {
  flex: 1;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  color: rgba(255,255,255,0.55);
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 10px;
  cursor: pointer;
  transition: background 0.15s ease;
}

.zen-settings-cancel:hover { background: rgba(255,255,255,0.1); }

#zen-overlay[data-zen-mode="drive"] { background: #130d00; }

#zen-overlay[data-zen-mode="drive"] .zen-atmo--glow1 { background: radial-gradient(circle, rgba(245,158,11,0.2) 0%, transparent 65%); }

#zen-overlay[data-zen-mode="drive"] .zen-atmo--glow2 { background: radial-gradient(circle, rgba(180,100,0,0.14) 0%, transparent 65%); }

#zen-overlay[data-zen-mode="drive"] .zen-atmo--particles { background-image: radial-gradient(1px 1px at 12% 30%, rgba(255,255,255,0.18) 0%,transparent 100%), radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.13) 0%,transparent 100%), radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.16) 0%,transparent 100%), radial-gradient(1px 1px at 80% 55%, rgba(255,255,255,0.1) 0%,transparent 100%), radial-gradient(1px 1px at 50% 45%, rgba(245,158,11,0.4) 0%,transparent 100%); }

#zen-overlay[data-zen-mode="drive"] .zen-mode-badge { color: #fbbf24; background: rgba(245,158,11,0.12); border-color: rgba(245,158,11,0.3); }

#zen-overlay[data-zen-mode="drive"] .zen-art-ring { border-color: rgba(245,158,11,0.35); }

#zen-overlay[data-zen-mode="drive"] .zen-art-emoji { filter: drop-shadow(0 0 20px rgba(245,158,11,0.5)); }

#zen-overlay[data-zen-mode="drive"] .zen-viz-bar { background: linear-gradient(to top, #b45309, rgba(245,158,11,0.4)); }

#zen-overlay[data-zen-mode="drive"] .zen-now-label { color: #fbbf24; }

#zen-overlay[data-zen-mode="drive"] .zen-play-btn { background: #b45309; }

#zen-overlay[data-zen-mode="drive"] .zen-play-btn.is-playing { animation: zen-play-pulse-drive 2.5s ease-in-out infinite; }

#zen-overlay[data-zen-mode="drive"] .zen-vol-slider::-webkit-slider-thumb { background: #fbbf24; }

#zen-overlay[data-zen-mode="drive"] .zen-station-item.is-active { background: rgba(245,158,11,0.15); border-color: rgba(245,158,11,0.4); }

#zen-overlay[data-zen-mode="drive"] .zen-app-icon__tile { background: rgba(245,158,11,0.1); border-color: rgba(245,158,11,0.2); }

@keyframes zen-play-pulse-drive { 0%,100% { box-shadow: 0 0 0 0 rgba(245,158,11,0.55); } 50% { box-shadow: 0 0 0 12px rgba(245,158,11,0); } }

#zen-overlay[data-zen-mode="sleep"] { background: #05020f; }

#zen-overlay[data-zen-mode="sleep"] .zen-atmo--glow1 { background: radial-gradient(circle, rgba(99,102,241,0.18) 0%, transparent 65%); }

#zen-overlay[data-zen-mode="sleep"] .zen-atmo--glow2 { background: radial-gradient(circle, rgba(67,56,202,0.12) 0%, transparent 65%); }

#zen-overlay[data-zen-mode="sleep"] .zen-atmo--particles { background-image: radial-gradient(1px 1px at 15% 25%, rgba(255,255,255,0.15) 0%,transparent 100%), radial-gradient(1px 1px at 40% 65%, rgba(255,255,255,0.1) 0%,transparent 100%), radial-gradient(1px 1px at 65% 15%, rgba(255,255,255,0.13) 0%,transparent 100%), radial-gradient(1px 1px at 85% 50%, rgba(255,255,255,0.08) 0%,transparent 100%), radial-gradient(1px 1px at 50% 40%, rgba(99,102,241,0.38) 0%,transparent 100%); }

#zen-overlay[data-zen-mode="sleep"] .zen-mode-badge { color: #a5b4fc; background: rgba(99,102,241,0.12); border-color: rgba(99,102,241,0.3); }

#zen-overlay[data-zen-mode="sleep"] .zen-art-ring { border-color: rgba(99,102,241,0.3); }

#zen-overlay[data-zen-mode="sleep"] .zen-art-emoji { filter: drop-shadow(0 0 20px rgba(99,102,241,0.5)); }

#zen-overlay[data-zen-mode="sleep"] .zen-viz-bar { background: linear-gradient(to top, #4338ca, rgba(99,102,241,0.35)); }

#zen-overlay[data-zen-mode="sleep"] .zen-now-label { color: #a5b4fc; }

#zen-overlay[data-zen-mode="sleep"] .zen-play-btn { background: #4338ca; }

#zen-overlay[data-zen-mode="sleep"] .zen-play-btn.is-playing { animation: zen-play-pulse-sleep 3.5s ease-in-out infinite; }

#zen-overlay[data-zen-mode="sleep"] .zen-vol-slider::-webkit-slider-thumb { background: #a5b4fc; }

#zen-overlay[data-zen-mode="sleep"] .zen-station-item.is-active { background: rgba(99,102,241,0.14); border-color: rgba(99,102,241,0.38); }

#zen-overlay[data-zen-mode="sleep"] .zen-app-icon__tile { background: rgba(99,102,241,0.1); border-color: rgba(99,102,241,0.2); }

@keyframes zen-play-pulse-sleep { 0%,100% { box-shadow: 0 0 0 0 rgba(99,102,241,0.45); } 50% { box-shadow: 0 0 0 16px rgba(99,102,241,0); } }

#zen-overlay[data-zen-mode="play"] { background: #030f00; }

#zen-overlay[data-zen-mode="play"] .zen-atmo--glow1 { background: radial-gradient(circle, rgba(132,204,22,0.18) 0%, transparent 65%); }

#zen-overlay[data-zen-mode="play"] .zen-atmo--glow2 { background: radial-gradient(circle, rgba(77,124,15,0.12) 0%, transparent 65%); }

#zen-overlay[data-zen-mode="play"] .zen-atmo--particles { background-image: radial-gradient(1px 1px at 12% 30%, rgba(255,255,255,0.18) 0%,transparent 100%), radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.13) 0%,transparent 100%), radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,0.16) 0%,transparent 100%), radial-gradient(1px 1px at 50% 45%, rgba(132,204,22,0.4) 0%,transparent 100%); }

#zen-overlay[data-zen-mode="play"] .zen-mode-badge { color: #bef264; background: rgba(132,204,22,0.12); border-color: rgba(132,204,22,0.3); }

#zen-overlay[data-zen-mode="play"] .zen-art-ring { border-color: rgba(132,204,22,0.3); }

#zen-overlay[data-zen-mode="play"] .zen-art-emoji { filter: drop-shadow(0 0 20px rgba(132,204,22,0.5)); }

#zen-overlay[data-zen-mode="play"] .zen-viz-bar { background: linear-gradient(to top, #4d7c0f, rgba(132,204,22,0.4)); }

#zen-overlay[data-zen-mode="play"] .zen-now-label { color: #bef264; }

#zen-overlay[data-zen-mode="play"] .zen-play-btn { background: #4d7c0f; }

#zen-overlay[data-zen-mode="play"] .zen-play-btn.is-playing { animation: zen-play-pulse-play 2.5s ease-in-out infinite; }

#zen-overlay[data-zen-mode="play"] .zen-vol-slider::-webkit-slider-thumb { background: #bef264; }

#zen-overlay[data-zen-mode="play"] .zen-station-item.is-active { background: rgba(132,204,22,0.14); border-color: rgba(132,204,22,0.38); }

#zen-overlay[data-zen-mode="play"] .zen-app-icon__tile { background: rgba(132,204,22,0.1); border-color: rgba(132,204,22,0.2); }

@keyframes zen-play-pulse-play { 0%,100% { box-shadow: 0 0 0 0 rgba(132,204,22,0.5); } 50% { box-shadow: 0 0 0 12px rgba(132,204,22,0); } }

.zen-cruise { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }

.zen-cruise-phase { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:#fbbf24; min-height:1em; }

.zen-cruise-odometer { font-size:clamp(2.8rem,8vw,4.8rem); font-weight:800; letter-spacing:-0.04em; color:#fff; font-variant-numeric:tabular-nums; line-height:1; }

.zen-cruise-sub { font-size:0.65rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.25); }

.zen-cruise-btns { display:flex; gap:10px; align-items:center; margin-top:8px; }

.zen-cruise-btn { background:rgba(245,158,11,0.18); border:1px solid rgba(245,158,11,0.38); color:#fff; border-radius:20px; padding:8px 26px; font-family:inherit; font-size:0.8rem; font-weight:700; letter-spacing:0.06em; cursor:pointer; transition:background 0.15s ease; -webkit-tap-highlight-color:transparent; }

.zen-cruise-btn:hover { background:rgba(245,158,11,0.32); }

.zen-cruise-reset { background:none; border:none; color:rgba(255,255,255,0.2); font-family:inherit; font-size:0.65rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; padding:4px 8px; transition:color 0.15s ease; -webkit-tap-highlight-color:transparent; }

.zen-cruise-reset:hover { color:rgba(255,255,255,0.5); }

.zen-cruise-break { font-size:0.85rem; font-weight:700; color:#fbbf24; min-height:1.4em; transition:opacity 0.3s; }

.zen-sleeptimer { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }

.zen-sleeptimer-label { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:#a5b4fc; }

.zen-sleeptimer-display { font-size:clamp(2.8rem,8vw,4.8rem); font-weight:800; letter-spacing:-0.04em; color:#fff; font-variant-numeric:tabular-nums; line-height:1; }

.zen-sleeptimer-presets { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }

.zen-sleep-preset { background:rgba(99,102,241,0.12); border:1px solid rgba(99,102,241,0.28); color:rgba(255,255,255,0.7); border-radius:20px; padding:6px 14px; font-family:inherit; font-size:0.8rem; font-weight:700; cursor:pointer; transition:background 0.15s,border-color 0.15s; -webkit-tap-highlight-color:transparent; }

.zen-sleep-preset:hover { background:rgba(99,102,241,0.24); }

.zen-sleep-preset.is-active { background:rgba(99,102,241,0.28); border-color:rgba(99,102,241,0.6); color:#fff; }

.zen-sleeptimer-hint { font-size:0.7rem; color:rgba(255,255,255,0.28); text-align:center; padding:0 16px; min-height:1.4em; }

.zen-trivia { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:12px 18px; overflow-y:auto; }

.zen-trivia-score { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:#bef264; min-height:1em; }

.zen-trivia-q { font-size:clamp(0.88rem,2.2vw,1.1rem); font-weight:700; color:rgba(255,255,255,0.9); text-align:center; line-height:1.4; max-width:380px; }

.zen-trivia-answers { display:flex; flex-direction:column; gap:8px; width:100%; max-width:360px; }

.zen-trivia-ans { background:rgba(132,204,22,0.08); border:1px solid rgba(132,204,22,0.2); color:rgba(255,255,255,0.8); border-radius:12px; padding:10px 14px; font-family:inherit; font-size:0.82rem; font-weight:600; text-align:left; cursor:pointer; transition:background 0.15s,border-color 0.15s; -webkit-tap-highlight-color:transparent; }

.zen-trivia-ans:hover:not(:disabled) { background:rgba(132,204,22,0.16); }

.zen-trivia-ans.is-correct { background:rgba(34,197,94,0.22); border-color:rgba(34,197,94,0.6); color:#fff; }

.zen-trivia-ans.is-wrong { background:rgba(239,68,68,0.18); border-color:rgba(239,68,68,0.5); color:rgba(255,255,255,0.5); }

.zen-trivia-next { background:rgba(132,204,22,0.18); border:1px solid rgba(132,204,22,0.38); color:#fff; border-radius:20px; padding:8px 22px; font-family:inherit; font-size:0.8rem; font-weight:700; cursor:pointer; transition:background 0.15s; -webkit-tap-highlight-color:transparent; }

.zen-trivia-next:hover { background:rgba(132,204,22,0.3); }

.zen-trivia-start { background:rgba(132,204,22,0.18); border:1px solid rgba(132,204,22,0.38); color:#fff; border-radius:20px; padding:10px 28px; font-family:inherit; font-size:0.88rem; font-weight:700; cursor:pointer; transition:background 0.15s; -webkit-tap-highlight-color:transparent; }

.zen-trivia-start:hover { background:rgba(132,204,22,0.3); }

.app-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 240px;
  background: var(--bg-surface);
  border-right: 1px solid var(--border-subtle);
  display: none; /* hidden by default — shown only at desktop via min-width query */
  flex-direction: column;
  z-index: 200;
  overflow-y: auto;
  overflow-x: hidden;
}

.app-sidebar__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 20px 16px;
  text-decoration: none;
  flex-shrink: 0;
}

.app-sidebar__brand > span:first-child {
  color: var(--accent-1);
}

.app-sidebar__wordmark {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.06em;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.app-sidebar__nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 12px;
  flex: 1;
}

.app-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: var(--r-md);
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: background var(--t-fast), color var(--t-fast);
  position: relative;
  white-space: nowrap;
}

.app-nav-item:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}

.app-nav-item.is-active {
  background: rgba(91, 143, 249, 0.12);
  color: var(--accent-1);
  font-weight: 600;
}

.app-nav-item.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 3px;
  background: var(--accent-1);
  border-radius: 0 3px 3px 0;
}

.app-nav-item__icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.app-nav-item__icon svg {
  width: 20px;
  height: 20px;
}

.app-nav-item__label {
  flex: 1;
}

.app-nav-item__badge {
  background: var(--accent-1);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  min-width: 20px;
  text-align: center;
  line-height: 1.4;
}

.app-nav-item__dot {
  width: 8px;
  height: 8px;
  background: var(--accent-1);
  border-radius: 50%;
  flex-shrink: 0;
}

.app-sidebar__user {
  padding: 16px 16px 20px;
  border-top: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.app-sidebar__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-elevated);
  border: 1.5px solid var(--border-medium);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent-1);
  flex-shrink: 0;
  overflow: hidden;
}

.app-sidebar__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.app-sidebar__user-info {
  flex: 1;
  min-width: 0;
}

.app-sidebar__user-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-sidebar__user-sub {
  font-size: 11px;
  color: var(--text-muted);
}

.app-sidebar__tokes-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  margin: 0 12px 8px;
  background: rgba(91, 143, 249, 0.07);
  border: 1px solid var(--border-accent);
  border-radius: var(--r-md);
  text-decoration: none;
  transition: background var(--t-fast);
}

.app-sidebar__tokes-row:hover {
  background: rgba(91, 143, 249, 0.13);
}

.app-sidebar__tokes-icon {
  display: flex;
  color: var(--accent-1);
  font-size: 16px;
  flex-shrink: 0;
}

.app-sidebar__tokes-label {
  font-size: 12px;
  color: var(--text-muted);
  flex: 1;
}

.app-sidebar__tokes-value {
  font-size: 13px;
  font-weight: 700;
  color: var(--accent-1);
}

.app-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin-left: 0; /* desktop override adds 240px via min-width query */
}

.app-content {
  flex: 1;
  /* Mobile: account for bottom nav + safe area */
  padding: 16px 16px calc(60px + env(safe-area-inset-bottom, 0px) + 16px);
  width: 100%;
  box-sizing: border-box;
}

.app-content--wide {
  max-width: 1200px;
}

.app-content--centered {
  margin: 0 auto;
}

.app-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(56px + env(safe-area-inset-top, 0px));
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: 4px;
  padding-right: 12px;
  background: #1f8f5f;
  border-bottom: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.18);
  position: sticky;
  top: 0;
  z-index: 150;
  flex-shrink: 0;
  gap: 4px;
}

.app-topbar__menu-btn {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  border-radius: 10px;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}

.app-topbar__menu-btn svg {
  width: 22px;
  height: 22px;
}

.app-topbar__left {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.app-topbar__wordmark {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.06em;
  color: #fff;
  -webkit-text-fill-color: #fff;
  white-space: nowrap;
}

.app-topbar__page-title {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #fff;
  -webkit-text-fill-color: #fff;
  white-space: nowrap;
}

.app-topbar__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.app-topbar__btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  transition: background var(--t-fast);
  position: relative;
  text-decoration: none;
}

.app-topbar__btn:hover {
  background: rgba(255,255,255,0.25);
  color: #fff;
}

.app-topbar__btn svg {
  width: 18px;
  height: 18px;
}

.app-topbar__btn-dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 7px;
  height: 7px;
  background: var(--accent-1);
  border-radius: 50%;
  border: 2px solid var(--bg-base);
}

.app-bottom-nav {
  display: block;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--bg-surface);
  border-top: 1px solid var(--border-subtle);
  box-shadow: 0 -2px 8px rgba(0,0,0,0.08);
  z-index: 200;
  /* Height: 60px tabs + home indicator safe area */
  padding-bottom: env(safe-area-inset-bottom, 0px);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.app-bottom-nav__inner {
  display: flex;
  height: 72px;
  align-items: stretch;
}

button.app-bottom-tab {
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

.app-bottom-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  text-decoration: none;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 500;
  transition: color var(--t-fast);
  position: relative;
  padding: 8px 4px 7px;
  -webkit-tap-highlight-color: transparent;
  min-width: 0;
}

.app-bottom-tab:hover,
.app-bottom-tab.is-active {
  color: var(--accent-1);
}

.app-bottom-tab.is-active .app-bottom-tab__label {
  font-weight: 700;
}

.app-bottom-tab.is-active .app-bottom-tab__icon svg {
  stroke: var(--accent-1);
}

.app-bottom-tab.is-active::after {
  content: '';
  position: absolute;
  top: 0;
  left: 15%;
  right: 15%;
  height: 3px;
  background: var(--accent-1);
  border-radius: 0 0 3px 3px;
}

.app-bottom-tab__icon {
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.app-bottom-tab__icon svg {
  width: 30px;
  height: 30px;
  stroke-width: 2;
  transition: transform var(--t-fast);
}

.app-bottom-tab.is-active .app-bottom-tab__icon svg {
  transform: scale(1.1);
}

.app-bottom-tab__dot {
  position: absolute;
  top: -1px;
  right: -2px;
  width: 8px;
  height: 8px;
  background: var(--accent-1);
  border-radius: 50%;
  border: 2px solid var(--bg-surface);
}

.zr-widget {
  --zr-color: #1f8f5f;
  position: fixed;
  right: 14px;
  bottom: calc(72px + env(safe-area-inset-bottom, 0px) + 12px);
  z-index: 900;
  display: none; /* hidden until zen radio is ready */
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.zr-fab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px 7px 9px;
  background: var(--bg-surface);
  border: 1.5px solid var(--zr-color);
  border-radius: 999px;
  color: var(--zr-color);
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,0.12);
  transition: background 0.2s, color 0.2s, box-shadow 0.2s, transform 0.13s;
  font-family: inherit;
}

.zr-fab:active { transform: scale(0.95); }

.zr-fab.is-playing {
  background: var(--zr-color);
  color: #fff;
  box-shadow: 0 3px 14px rgba(0,0,0,0.18), 0 0 0 3px color-mix(in srgb, var(--zr-color) 22%, transparent);
}

.zr-fab__icon { display: flex; align-items: center; justify-content: center; }

.zr-fab__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  max-width: 110px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.zr-fab__playing-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: transparent;
  flex-shrink: 0;
  transition: background 0.2s;
}

.zr-fab.is-playing .zr-fab__playing-dot { background: rgba(255,255,255,0.7); }

.zr-panel {
  width: 320px;
  background: var(--bg-surface);
  border: 1.5px solid var(--border-subtle);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  overflow: hidden;
  transform-origin: bottom right;
}

.zr-panel[hidden] { display: none !important; }

.zr-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 12px 9px;
  background: var(--zr-color);
  color: #fff;
}

.zr-panel__now { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.zr-panel__station {
  font-size: 0.85rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.zr-panel__mode-badge {
  font-size: 0.63rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.82;
}

.zr-panel__close {
  background: rgba(255,255,255,0.2);
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  flex-shrink: 0;
  margin-left: 8px;
}

.zr-panel__close:hover { background: rgba(255,255,255,0.35); }

.zr-panel__body {
  display: flex;
  min-height: 0;
  max-height: 320px;
  overflow: hidden;
}

.zr-panel__mode-sidebar {
  display: flex;
  flex-direction: column;
  width: 48px;
  flex-shrink: 0;
  background: var(--bg-base);
  border-right: 1px solid var(--border-subtle);
  overflow-y: auto;
  scrollbar-width: none;
}

.zr-panel__mode-sidebar::-webkit-scrollbar { display: none; }

.zr-mode {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  cursor: pointer;
  background: none;
  border: none;
  border-left: 3px solid transparent;
  font-family: inherit;
  font-size: 1.35rem;
  transition: background 0.13s, border-color 0.13s;
  padding: 0;
  position: relative;
}

.zr-mode:hover { background: rgba(0,0,0,0.05); }

.zr-mode.is-active {
  background: color-mix(in srgb, var(--zr-color) 12%, transparent);
  border-left-color: var(--zr-color);
}

.zr-mode__dot { display: none; }

.zr-mode__label { font-size: 1.3rem; line-height: 1; }

.zr-panel__main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.zr-panel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 14px 16px 10px;
}

.zr-ctrl {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-primary, #191f2a);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  border-radius: 50%;
  transition: background 0.15s;
}

.zr-ctrl:hover { background: var(--bg-base); }

.zr-ctrl--play {
  width: 48px;
  height: 48px;
  background: var(--zr-color);
  color: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.18);
  padding: 0;
}

.zr-ctrl--play:hover { filter: brightness(1.08); background: var(--zr-color); }

.zr-ctrl--play:active { transform: scale(0.93); }

.zr-panel__stations {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow-y: auto;
  border-top: 1px solid var(--border-subtle);
}

.zr-station {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  font-size: 0.8rem;
  cursor: pointer;
  background: none;
  border: none;
  text-align: left;
  font-family: inherit;
  color: var(--text-primary, #191f2a);
  transition: background 0.12s;
  border-radius: 0;
}

.zr-station:hover { background: var(--bg-base); }

.zr-station.is-active {
  background: color-mix(in srgb, var(--zr-color) 10%, transparent);
  color: var(--zr-color);
  font-weight: 700;
}

.zr-station__emoji { font-size: 1rem; flex-shrink: 0; }

.zr-station__info { display: flex; flex-direction: column; min-width: 0; }

.zr-station__name { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.zr-station__desc { font-size: 0.68rem; opacity: 0.55; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.app-bottom-tab__badge {
  position: absolute;
  top: -4px;
  right: -6px;
  min-width: 16px;
  height: 16px;
  background: #e53e3e;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  padding: 0 4px;
  border-radius: 8px;
  border: 2px solid var(--bg-surface);
  white-space: nowrap;
}

.app-bottom-tab__badge--tokes,
[data-nav-badge="tokes"] {
  background: #c9940a;
}

.app-topbar__tokes-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 9px;
  height: 9px;
  min-width: unset;
  background: #c9940a;
  border-radius: 50%;
  border: 2px solid var(--bg-base, #1a2a1e);
  font-size: 0;
  padding: 0;
}

.app-bottom-tab__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  border: 1.5px solid rgba(255,255,255,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255,255,255,0.9);
  background-size: cover;
  background-position: center;
  overflow: hidden;
  letter-spacing: 0;
}

.app-bottom-tab.is-active .app-bottom-tab__avatar {
  border-color: var(--accent-1);
}

.app-bottom-tab__avatar.is-photo {
  font-size: 0;
  color: transparent;
}

.app-bottom-tab__icon--avatar {
  display: flex;
  align-items: center;
  justify-content: center;
}

.app-topbar__btn--avatar {
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0;
}

.app-topbar__btn--avatar.is-photo,
.app-sidebar__avatar.is-photo,
.app-drawer__avatar.is-photo {
  background-size: cover;
  background-position: center;
  font-size: 0;
  color: transparent;
}

.app-bottom-tab__label {
  line-height: 1;
}

.app-bottom-tab--featured {
  color: var(--accent-1);
}

.app-bottom-tab--featured .app-bottom-tab__icon {
  width: 52px;
  height: 52px;
  background: transparent;
  border-radius: 50%;
  box-shadow: none;
  margin-top: -18px;
  position: relative;
  z-index: 1;
}

.app-bottom-tab--featured .app-bottom-tab__icon::before {
  content: '';
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    #1a7f5a 0%,
    #2dd478 20%,
    #a3f7bf 38%,
    #ffffff 50%,
    #a3f7bf 62%,
    #2dd478 80%,
    #1a7f5a 100%
  );
  z-index: 1;
  opacity: 0;
  animation: keefii-chaser 2s linear infinite;
  transition: opacity 0.2s ease;
}

.app-bottom-tab--featured.is-active .app-bottom-tab__icon::before {
  opacity: 1;
}

@keyframes keefii-chaser {
  to { transform: rotate(360deg); }
}

.app-bottom-tab--featured .app-bottom-tab__icon::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--accent-1, #1a7f5a);
  box-shadow: 0 4px 16px rgba(26, 127, 90, 0.55);
  z-index: 2;
}

.app-bottom-tab--featured.is-active .app-bottom-tab__icon::after {
  box-shadow: 0 6px 22px rgba(26, 127, 90, 0.7);
}

.app-bottom-tab--featured .app-bottom-tab__icon svg,
.app-bottom-tab--featured.is-active .app-bottom-tab__icon svg {
  position: relative;
  z-index: 3;
  width: 26px;
  height: 26px;
  stroke: #fff;
  color: #fff;
  transform: none;
}

.app-bottom-tab--featured .app-bottom-tab__label {
  color: var(--accent-1);
  font-weight: 700;
}

.app-bottom-tab--featured.is-active::after {
  display: none;
}

.ptr-indicator {
  position: fixed;
  top: calc(56px + env(safe-area-inset-top, 0px));
  left: 50%;
  transform: translateX(-50%) translateY(-100%);
  width: 36px;
  height: 36px;
  background: var(--bg-surface);
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 149;
  opacity: 0;
  pointer-events: none;
}

.ptr-indicator svg {
  width: 20px;
  height: 20px;
  color: var(--accent-1);
  stroke: var(--accent-1);
}

.ptr-indicator.is-refreshing svg {
  animation: ptr-spin 0.7s linear infinite;
}

@keyframes ptr-spin {
  to { transform: rotate(360deg); }
}

.app-drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 400;
  opacity: 0;
  transition: opacity 0.25s ease;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

.app-drawer-overlay.is-open {
  display: block;
  opacity: 1;
}

.app-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(320px, 85vw);
  background: var(--bg-surface);
  z-index: 450;
  transform: translateX(-100%);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 4px 0 32px rgba(0,0,0,0.18);
}

.app-drawer.is-open {
  transform: translateX(0);
}

.app-drawer__header {
  padding: calc(env(safe-area-inset-top, 0px) + 16px) 16px 16px;
  background: #1f8f5f;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-shrink: 0;
}

.app-drawer__user {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}

.app-drawer__avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 2px solid rgba(255,255,255,0.4);
}

.app-drawer__user-info {
  min-width: 0;
}

.app-drawer__user-name {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-drawer__user-sub {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  margin-top: 2px;
}

.app-drawer__tokes {
  color: rgba(255,255,255,0.85);
  font-weight: 600;
}

.app-drawer__close {
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.15);
  border: none;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}

.app-drawer__close svg {
  width: 18px;
  height: 18px;
}

.app-drawer__nav {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0;
  -webkit-overflow-scrolling: touch;
}

.app-drawer-section {
  padding: 4px 0;
}

.app-drawer-section + .app-drawer-section {
  border-top: 1px solid var(--border-subtle);
  margin-top: 4px;
  padding-top: 8px;
}

.app-drawer-section__title {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 8px 20px 4px;
}

.app-drawer-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 20px;
  text-decoration: none;
  color: var(--text-primary);
  font-size: 15px;
  font-weight: 500;
  transition: background 0.12s;
  -webkit-tap-highlight-color: transparent;
  position: relative;
}

.app-drawer-item:hover,
.app-drawer-item.is-active {
  background: rgba(31,143,95,0.08);
  color: var(--accent-1);
}

.app-drawer-item.is-active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 3px;
  background: var(--accent-1);
  border-radius: 0 3px 3px 0;
}

.app-drawer-item__icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--text-muted);
}

.app-drawer-item.is-active .app-drawer-item__icon,
.app-drawer-item:hover .app-drawer-item__icon {
  color: var(--accent-1);
}

.app-drawer-item__icon svg {
  width: 20px;
  height: 20px;
}

.app-drawer-item__label {
  flex: 1;
}

.app-drawer-item__badge {
  font-size: 11px;
  font-weight: 700;
  color: var(--accent-1);
  background: rgba(31,143,95,0.1);
  border-radius: 20px;
  padding: 2px 8px;
}

.app-drawer__footer {
  border-top: 1px solid var(--border-subtle);
  padding: 8px 0 calc(env(safe-area-inset-bottom, 0px) + 8px);
  flex-shrink: 0;
}

.app-drawer__footer-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 20px;
  text-decoration: none;
  color: var(--text-secondary);
  font-size: 15px;
  font-weight: 500;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.12s;
}

.app-drawer__footer-item:hover {
  background: var(--bg-elevated);
}

.app-drawer__footer-item--logout {
  color: var(--text-muted);
}

.app-drawer__footer-item svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

@media (min-width: 900px) {
  .app-sidebar { display: flex; }
  .app-body { margin-left: 240px; }
  .app-topbar { display: none; }
  .app-bottom-nav { display: none; }
  .app-drawer, .app-drawer-overlay { display: none !important; }
  .app-content { padding: 24px; }
}

.dp-hero {
  padding: 4px 0 20px;
}

.dp-hero__meta {
  font-size: 12px;
  font-weight: 600;
  color: var(--accent-1);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.dp-hero__greeting {
  font-size: 28px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.03em;
  margin: 0 0 4px;
  line-height: 1.1;
}

.dp-hero__sub {
  font-size: 14px;
  color: var(--text-muted);
  margin: 0;
}

.dp-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 24px;
}

.dp-stat {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 2px;
  min-height: 82px;
}

.dp-stat--tokes {
  background: linear-gradient(135deg, rgba(31,143,95,0.08) 0%, rgba(31,143,95,0.04) 100%);
  border-color: rgba(31,143,95,0.2);
}

.dp-stat__label {
  font-size: 10px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.dp-stat__value {
  font-size: 22px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.dp-stat--tokes .dp-stat__value {
  color: var(--accent-1);
}

.dp-stat__sub {
  font-size: 10px;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.dp-section {
  margin-bottom: 28px;
}

.dp-section__hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.dp-section__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.dp-section__link {
  font-size: 13px;
  color: var(--accent-1);
  text-decoration: none;
  font-weight: 500;
}

.dp-section__link:hover { opacity: 0.75; }

.dp-stats--row2 {
  margin-top: -4px;
  margin-bottom: 24px;
}

.dp-stat--friends .dp-stat__value { color: var(--accent-1); }

.dp-stat__delta {
  font-size: 10px;
  font-weight: 700;
  color: var(--accent-1);
  background: rgba(31,143,95,0.1);
  border-radius: 10px;
  padding: 2px 7px;
  white-space: nowrap;
  margin-top: 1px;
}

.dp-earn-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dp-earn-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
}

.dp-earn-item__icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(31,143,95,0.1);
  color: var(--accent-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dp-earn-item__body {
  flex: 1;
  min-width: 0;
}

.dp-earn-item__reason {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dp-earn-item__date {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 1px;
}

.dp-earn-item__amount {
  font-size: 13px;
  font-weight: 700;
  color: var(--accent-1);
  flex-shrink: 0;
}

.dp-earn-skeleton {
  height: 54px;
  background: var(--bg-elevated);
  border-radius: 12px;
  animation: dp-pulse 1.4s ease-in-out infinite;
}

.dp-earn-skeleton + .dp-earn-skeleton { animation-delay: 0.15s; }

.dp-earn-skeleton + .dp-earn-skeleton + .dp-earn-skeleton { animation-delay: 0.3s; }

.dp-req-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: rgba(31,143,95,0.07);
  border: 1px solid rgba(31,143,95,0.22);
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: background var(--t-fast);
}

.dp-req-banner:hover {
  background: rgba(31,143,95,0.12);
}

.dp-req-banner__icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(31,143,95,0.12);
  color: var(--accent-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dp-req-banner__body {
  flex: 1;
  min-width: 0;
}

.dp-req-banner__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
}

.dp-req-banner__sub {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}

.dp-req-banner__arrow {
  color: var(--accent-1);
  flex-shrink: 0;
  opacity: 0.7;
}

.dp-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dp-action {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 14px 16px;
}

.dp-action--done {
  opacity: 0.6;
}

.dp-action--skeleton {
  height: 64px;
  background: var(--bg-elevated);
  animation: dp-pulse 1.4s ease-in-out infinite;
}

@keyframes dp-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.dp-action__icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(31,143,95,0.1);
  color: var(--accent-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dp-action--done .dp-action__icon {
  background: rgba(31,143,95,0.15);
}

.dp-action__body {
  flex: 1;
  min-width: 0;
}

.dp-action__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dp-action__sub {
  font-size: 12px;
  color: var(--text-muted);
}

.dp-action__cta {
  flex-shrink: 0;
  padding: 7px 14px;
  background: var(--accent-1);
  color: #fff;
  border: none;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.15s;
  white-space: nowrap;
}

.dp-action__cta:hover { opacity: 0.85; }

.dp-action__cta--done {
  background: rgba(31,143,95,0.15);
  color: var(--accent-1);
}

.dp-quick-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding: 0 16px 8px;
}

.dp-quick-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 8px 12px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  color: var(--text-primary);
  text-decoration: none;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: border-color 0.15s, background 0.15s;
}

.dp-quick-link svg { color: var(--accent-1); }

.dp-quick-link:hover { border-color: var(--accent-1); background: var(--surface-3); }

.dp-dispo-scroll {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}

.dp-dispo-scroll::-webkit-scrollbar { display: none; }

.dp-dispo-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 12px 14px;
  min-width: 210px;
  max-width: 240px;
  flex-shrink: 0;
  text-decoration: none;
  scroll-snap-align: start;
  transition: border-color 0.15s;
}

.dp-dispo-card:hover { border-color: var(--accent-1); }

.dp-dispo-card__logo {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(31,143,95,0.1);
  color: var(--accent-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dp-dispo-card__body {
  flex: 1;
  min-width: 0;
}

.dp-dispo-card__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
}

.dp-dispo-card__meta {
  font-size: 12px;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dp-dispo-card__count {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 700;
  color: var(--accent-1);
  background: rgba(31,143,95,0.1);
  border-radius: 20px;
  padding: 3px 8px;
}

.dp-dispo-skeleton {
  min-width: 210px;
  height: 64px;
  border-radius: 14px;
  background: var(--bg-elevated);
  flex-shrink: 0;
  animation: dp-pulse 1.4s ease-in-out infinite;
}

.dp-feed-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

@media (max-width: 899px) {
  .dp-feed-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.dp-feed-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 16px 10px 12px;
  text-decoration: none;
  transition: border-color 0.15s;
  overflow: hidden;
}

.dp-feed-card:hover { border-color: var(--accent-1); }

.dp-feed-card__img {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(31,143,95,0.08);
  color: var(--accent-1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dp-feed-card__name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.3;
}

.dp-feed-card__brand {
  font-size: 11px;
  color: var(--text-muted);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.dp-feed-skeleton {
  height: 110px;
  border-radius: 14px;
  background: var(--bg-elevated);
  animation: dp-pulse 1.4s ease-in-out infinite;
}

.dp-feed-skeleton:nth-child(2) { animation-delay: 0.15s; }

.dp-feed-skeleton:nth-child(3) { animation-delay: 0.3s; }

.dp-empty {
  font-size: 14px;
  color: var(--text-muted);
  margin: 0;
}

.dp-empty a { color: var(--accent-1); text-decoration: none; }

.kf-card {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  position: relative;
  text-decoration: none;
  display: flex;
  flex-direction: column;
}

.kf-card:hover {
  border-color: var(--border-medium);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
}

.kf-card--dispo {
  min-width: 200px;
  scroll-snap-align: start;
  flex-shrink: 0;
  cursor: pointer;
}

.kf-card--dispo .kf-card__img {
  height: 80px;
  background: linear-gradient(135deg, var(--bg-elevated), var(--bg-surface));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  border-bottom: 1px solid var(--border-subtle);
  flex-shrink: 0;
}

.kf-card__body {
  padding: 14px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.kf-card__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
  margin: 0;
}

.kf-card__meta {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.kf-card__badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  white-space: nowrap;
}

.kf-card__badge--distance {
  background: rgba(56,217,192,0.12);
  color: var(--accent-3);
  border: 1px solid rgba(56,217,192,0.2);
}

.kf-card__badge--products {
  background: rgba(91,143,249,0.1);
  color: var(--accent-1);
  border: 1px solid var(--border-accent);
}

.kf-card__badge--type {
  background: var(--bg-elevated);
  color: var(--text-secondary);
  border: 1px solid var(--border-subtle);
}

.kf-card__footer {
  padding: 10px 14px;
  border-top: 1px solid var(--border-subtle);
  display: flex;
  gap: 8px;
}

.kf-card__btn {
  flex: 1;
  padding: 7px 12px;
  border-radius: var(--r-sm);
  font-size: 13px;
  font-weight: 600;
  border: 1px solid var(--border-medium);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all var(--t-fast);
  text-align: center;
}

.kf-card__btn:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}

.kf-card__btn--primary {
  background: var(--accent-1);
  border-color: var(--accent-1);
  color: #fff;
}

.kf-card__btn--primary:hover {
  opacity: 0.85;
  background: var(--accent-1);
  color: #fff;
}

.kf-card__btn--active {
  background: rgba(91,143,249,0.15);
  border-color: var(--accent-1);
  color: var(--accent-1);
}

.kf-card--product {
  cursor: pointer;
}

.kf-card--product .kf-card__img {
  height: 140px;
  background: linear-gradient(135deg, var(--bg-elevated), var(--bg-surface));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 48px;
  border-bottom: 1px solid var(--border-subtle);
  flex-shrink: 0;
}

.kf-card__price {
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.kf-card__dispensary {
  font-size: 11px;
  color: var(--text-muted);
  margin: 0;
}

.kf-card--brand {
  cursor: pointer;
}

.kf-card--brand .kf-card__img {
  height: 100px;
  background: linear-gradient(135deg, var(--bg-elevated), var(--bg-surface));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  border-bottom: 1px solid var(--border-subtle);
  flex-shrink: 0;
}

.kf-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}

.kf-grid--2col {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

@media (max-width: 540px) {
  .kf-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .kf-grid--2col {
    grid-template-columns: 1fr;
  }
}

.app-page-header {
  margin-bottom: 20px;
}

.app-page-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 4px;
}

.app-page-sub {
  font-size: 14px;
  color: var(--text-muted);
  margin: 0;
}

.app-search-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}

.app-search-input {
  flex: 1;
  height: 42px;
  padding: 0 14px;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  border-radius: var(--r-md);
  color: var(--text-primary);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  transition: border-color var(--t-fast);
}

.app-search-input:focus {
  border-color: var(--accent-1);
}

.app-search-input::placeholder { color: var(--text-muted); }

.app-search-btn {
  height: 42px;
  padding: 0 16px;
  background: var(--accent-1);
  border: none;
  border-radius: var(--r-md);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity var(--t-fast);
  font-family: inherit;
  white-space: nowrap;
}

.app-search-btn:hover { opacity: 0.85; }

.app-filter-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  margin-bottom: 16px;
  -webkit-overflow-scrolling: touch;
}

.app-filter-row::-webkit-scrollbar { display: none; }

.app-filter-pill {
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 500;
  background: var(--bg-elevated);
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  cursor: pointer;
  white-space: nowrap;
  transition: all var(--t-fast);
  flex-shrink: 0;
}

.app-filter-pill:hover,
.app-filter-pill.is-active {
  background: rgba(91,143,249,0.12);
  border-color: var(--accent-1);
  color: var(--accent-1);
}

.stash-balance-hero {
  background: linear-gradient(135deg, rgba(91,143,249,0.22) 0%, rgba(56,217,192,0.18) 100%);
  border: 1px solid var(--border-accent);
  border-radius: var(--r-xl);
  padding: 28px 24px;
  margin-bottom: 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.stash-balance-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 60% -20%, rgba(91,143,249,0.25) 0%, transparent 60%);
  pointer-events: none;
}

.stash-balance-hero__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 8px;
}

.stash-balance-hero__amount {
  font-size: 52px;
  font-weight: 800;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: -0.04em;
  line-height: 1;
  margin: 0 0 8px;
}

.stash-balance-hero__unit {
  font-size: 20px;
  font-weight: 700;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stash-balance-hero__tier {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  background: rgba(91,143,249,0.12);
  border: 1px solid var(--border-accent);
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  color: var(--accent-1);
}

.loyalty-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.loyalty-tier-card {
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--r-md);
  padding: 14px;
  text-align: center;
  transition: border-color var(--t-fast);
}

.loyalty-tier-card.is-current {
  border-color: var(--accent-1);
  background: rgba(91,143,249,0.08);
}

.loyalty-tier-card__icon { font-size: 22px; margin-bottom: 6px; }

.loyalty-tier-card__name { font-size: 12px; font-weight: 700; color: var(--text-primary); margin: 0 0 2px; }

.loyalty-tier-card__range { font-size: 11px; color: var(--text-muted); margin: 0; }

.ledger-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.ledger-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-subtle);
}

.ledger-item:last-child { border-bottom: none; }

.ledger-item__icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
  background: var(--bg-elevated);
}

.ledger-item__body { flex: 1; min-width: 0; }

.ledger-item__label { font-size: 14px; color: var(--text-primary); font-weight: 500; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ledger-item__meta { font-size: 12px; color: var(--text-muted); margin: 0; }

.ledger-item__amount {
  font-size: 15px;
  font-weight: 700;
  flex-shrink: 0;
}

.ledger-item__amount--earn { color: var(--accent-3); }

.ledger-item__amount--spend { color: var(--text-muted); }

.activity-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.activity-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.activity-item__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-elevated);
  border: 1.5px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent-1);
  flex-shrink: 0;
}

.activity-item__body { flex: 1; min-width: 0; }

.activity-item__text {
  font-size: 14px;
  color: var(--text-primary);
  margin: 0 0 3px;
  line-height: 1.4;
}

.activity-item__time {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
}

.pwa-install-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(91,143,249,0.1);
  border: 1px solid var(--border-accent);
  border-radius: var(--r-md);
  margin-bottom: 16px;
  animation: slide-down 0.3s ease;
}

@keyframes slide-down {
  from { transform: translateY(-8px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.pwa-install-bar__icon { font-size: 20px; flex-shrink: 0; }

.pwa-install-bar__text {
  flex: 1;
  min-width: 0;
}

.pwa-install-bar__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 2px;
}

.pwa-install-bar__sub {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
}

.pwa-install-bar__btn {
  padding: 7px 14px;
  background: var(--accent-1);
  border: none;
  border-radius: var(--r-sm);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: opacity var(--t-fast);
  white-space: nowrap;
  flex-shrink: 0;
}

.pwa-install-bar__btn:hover { opacity: 0.85; }

.pwa-install-bar__dismiss {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 18px;
  padding: 0;
  line-height: 1;
  flex-shrink: 0;
}

.offline-banner {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: rgba(255, 80, 80, 0.1);
  border: 1px solid rgba(255, 80, 80, 0.25);
  border-radius: var(--r-md);
  margin-bottom: 16px;
  font-size: 13px;
  color: #ff6b6b;
}

.offline-banner.is-visible { display: flex; }

@media (min-width: 700px) {
  .dash-grid {
    grid-template-columns: 1fr 1fr;
  }
  .dash-grid .dash-tokes-card { grid-column: 1 / -1; }
  .dash-grid .dash-widget--full { grid-column: 1 / -1; }
}

@media (min-width: 1000px) {
  .dash-grid {
    grid-template-columns: 2fr 1fr;
  }
  .dash-grid .dash-tokes-card { grid-column: 1 / -1; }
}

.app-content {
  max-width: 100%;
  box-sizing: border-box;
}

.user-view-wrap {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
}

.user-view-wrap .user-shell__header {
  padding: 24px 0 20px;
  border-bottom: 1px solid var(--line-subtle);
  background: transparent;
  margin-bottom: 28px;
}

.user-view-wrap .user-shell__content {
  padding: 0;
  max-width: 100%;
  flex: 1;
}

.user-view-wrap .user-shell__body,
.user-view-wrap > .user-shell__body {
  background: transparent;
  min-height: unset;
}

.user-view-wrap .stashbank-view {
  max-width: 100%;
}

.user-view-wrap .discover-panel,
.user-view-wrap .user-view--discover {
  max-width: 100%;
}

.user-view-wrap .user-view--tabbed {
  max-width: 100%;
}

.user-view-wrap .user-section {
  background: var(--bg-surface);
  border: 1px solid var(--line-subtle);
  border-radius: 14px;
}

.user-view-wrap .user-shell__title {
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.user-view-wrap .panel-eyebrow {
  color: var(--accent-blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin: 0 0 6px;
}

.page--stashbank .tab-title,
.app-content.page--stashbank { }

.pwa-page-topstrip {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 6px 0 14px;
  min-height: 36px;
}

.pwa-refresh-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1.5px solid rgba(0,0,0,0.1);
  background: rgba(255,255,255,0.7);
  color: var(--text-muted);
  cursor: pointer;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
  flex-shrink: 0;
}

.pwa-refresh-btn:hover {
  background: rgba(31,143,95,0.08);
  border-color: rgba(31,143,95,0.25);
  color: #1a6e47;
}

.user-feedback--inline {
  font-size: 0.78rem;
  flex: 1;
  margin: 0;
}

.sb-ledger-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line-subtle, rgba(25,31,42,0.06));
}

.sb-ledger-row:last-child {
  border-bottom: none;
}

.sb-ledger-amount {
  font-size: 0.9rem;
  font-weight: 800;
  min-width: 72px;
  flex-shrink: 0;
}

.sb-ledger-row--credit .sb-ledger-amount {
  color: #1a6e47;
}

.sb-ledger-row--debit .sb-ledger-amount {
  color: #b02020;
}

.sb-ledger-reason {
  flex: 1;
  font-size: 0.82rem;
  color: var(--text-body, #1a1f27);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sb-ledger-meta {
  font-size: 0.72rem;
  color: var(--text-muted, #48505d);
  flex-shrink: 0;
  white-space: nowrap;
}

.sb-ledger-row[data-ledger-id] {
  cursor: pointer;
}

.sb-ledger-row[data-ledger-id]:hover {
  background: var(--accent-tint-xs, rgba(31,143,95,0.04));
}

.sb-subtab-count {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 700;
  background: rgba(31,143,95,0.12);
  color: var(--accent-1);
  border-radius: 8px;
  padding: 0 5px;
  margin-left: 4px;
  min-width: 16px;
  text-align: center;
  vertical-align: middle;
}

.sb-subtab-count:empty { display: none; }

.sb-detail-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.84rem;
}

.sb-detail-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  min-width: 100px;
}

.sb-detail-link {
  color: var(--accent-1);
  text-decoration: none;
}

.sb-detail-link:hover { text-decoration: underline; }

.sb-detail-amount--credit { color: #1a6e47; font-weight: 700; }

.sb-detail-amount--debit { color: #b02020; font-weight: 700; }

.sb-loyalty-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  border-bottom: 1px solid var(--line-subtle);
  font-size: 0.84rem;
}

.sb-loyalty-row:last-child { border-bottom: none; }

.sb-loyalty-name {
  flex: 1;
  color: var(--accent-1);
  text-decoration: none;
  font-weight: 600;
}

.sb-loyalty-name:hover { text-decoration: underline; }

.sb-loyalty-earned { color: #1a6e47; font-weight: 700; font-size: 0.82rem; flex-shrink: 0; }

.sb-loyalty-count { color: var(--text-soft); font-size: 0.72rem; flex-shrink: 0; }

.sb-ref-earn-stats {
  display: flex;
  gap: 16px;
  padding: 14px 16px;
}

.sb-ref-earn-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sb-ref-earn-val {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--text-strong);
}

.sb-ref-earn-lbl {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  font-weight: 600;
}

.stashbank-stake-row--completed {
  opacity: 0.6;
}

.profile-id-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 0 18px;
}

.profile-id-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(31,143,95,0.1);
  border: 2px solid rgba(31,143,95,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1a6e47;
  flex-shrink: 0;
}

.profile-id-main {
  flex: 1;
  min-width: 0;
}

.profile-id-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-strong, #1a1f27);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-id-email {
  font-size: 0.82rem;
  color: var(--text-muted, #48505d);
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-id-rows {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--line-subtle, rgba(25,31,42,0.07));
  margin-bottom: 8px;
}

.profile-id-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 0;
  border-bottom: 1px solid var(--line-subtle, rgba(25,31,42,0.05));
  gap: 12px;
}

.profile-id-row:last-child {
  border-bottom: none;
}

.profile-id-row__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted, #48505d);
  flex-shrink: 0;
  min-width: 100px;
}

.profile-id-row__value {
  font-size: 0.84rem;
  color: var(--text-body, #1a1f27);
  text-align: right;
}

.feed-lane-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  min-height: 92px;
  height: 92px;
  box-sizing: border-box;
  overflow: hidden;
}

.feed-lane-header__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--accent-tint-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-1);
}

.feed-lane-header__title {
  font-size: 1.075rem;
  font-weight: 700;
  color: var(--text-strong);
  margin-bottom: 3px;
}

.feed-lane-header__sub {
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.45;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.feed-group__brand-logo {
  width: 22px;
  height: 22px;
  border-radius: 5px;
  object-fit: contain;
  flex-shrink: 0;
}

.feed-group__loc--count {
  font-size: 0.72rem;
  color: var(--accent-1);
  font-weight: 600;
  background: var(--accent-tint-xs);
  border-radius: 6px;
  padding: 1px 6px;
}

.feed-filter-bar {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.feed-filter-bar > [hidden] { display: none; }

.feed-filter-views {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.feed-filter-views::-webkit-scrollbar { display: none; }

.feed-filter-view-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px 4px 12px;
  border-radius: 100px;
  background: var(--accent-tint-sm);
  border: 1px solid var(--accent-tint-lg);
  color: var(--accent-1);
  font-size: 0.76rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--t-fast);
}

.feed-filter-view-chip:hover { background: var(--accent-tint-md); }

.feed-filter-view-chip__delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--accent-tint-md);
  border: none;
  cursor: pointer;
  color: var(--accent-1);
  padding: 0;
  font-size: 11px;
  line-height: 1;
  flex-shrink: 0;
  transition: background var(--t-fast);
}

.feed-filter-view-chip__delete:hover { background: rgba(31,143,95,0.3); }

.feed-filter-search-row {
  position: relative;
}

.feed-filter-search-row .feed-filter-search-icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  pointer-events: none;
}

.feed-filter-search-row input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 12px 8px 30px;
  border-radius: 10px;
  border: 1.5px solid var(--line-subtle);
  background: var(--bg-elevated, rgba(0,0,0,0.03));
  font-size: 0.83rem;
  color: var(--text-primary);
  outline: none;
  transition: border-color var(--t-fast);
}

.feed-filter-search-row input:focus {
  border-color: var(--focus-border);
  box-shadow: var(--focus-ring);
}

.feed-filter-search-row input::placeholder { color: var(--text-muted); }

.feed-filter-steps {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.feed-filter-steps > [hidden] { display: none; }

.feed-filter-step {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.feed-filter-step__label {
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.feed-filter-step .feed-filter-chips {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}

.feed-filter-step .feed-filter-chips::-webkit-scrollbar { display: none; }

.feed-filter-price-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.feed-filter-price-field {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.feed-filter-price-label {
  font-size: 0.67rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.feed-filter-price-input {
  padding: 7px 9px;
  border-radius: 8px;
  border: 1.5px solid var(--line-subtle);
  background: var(--bg-surface);
  font-size: 0.82rem;
  color: var(--text-primary);
  outline: none;
  width: 100%;
  box-sizing: border-box;
  transition: border-color var(--t-fast);
}

.feed-filter-price-input:focus {
  border-color: var(--focus-border);
  box-shadow: var(--focus-ring);
}

.feed-filter-price-sep {
  font-size: 1rem;
  color: var(--text-muted);
  margin-top: 14px;
}

.feed-filter-bar__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.feed-filter-count {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--accent-1);
  flex: 1;
}

.feed-filter-bar__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.feed-filter-clear-all {
  font-size: 0.76rem;
  color: var(--text-muted);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-weight: 600;
  transition: color var(--t-fast);
}

.feed-filter-clear-all:hover { color: var(--accent-1); }

.feed-filter-save-view {
  font-size: 0.76rem;
  color: var(--accent-1);
  background: none;
  border: 1.5px solid var(--accent-tint-lg);
  border-radius: 8px;
  padding: 5px 10px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--t-fast);
}

.feed-filter-save-view:hover { background: var(--accent-tint-xs); }

.feed-filter-save-form {
  display: flex;
  align-items: center;
  gap: 6px;
}

.feed-filter-save-input {
  font-size: 0.78rem;
  padding: 5px 9px;
  border-radius: 8px;
  border: 1.5px solid var(--accent-tint-lg);
  outline: none;
  width: 120px;
  transition: border-color var(--t-fast);
}

.feed-filter-save-input:focus { border-color: var(--accent-1); }

.feed-filter-save-confirm {
  font-size: 0.76rem;
  background: var(--accent-1);
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 5px 10px;
  cursor: pointer;
  font-weight: 700;
}

.feed-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.feed-filter-chip {
  padding: 5px 13px;
  border-radius: 100px;
  border: 1.5px solid var(--line-subtle);
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}

.feed-filter-chip:hover { border-color: var(--accent-1); color: var(--accent-1); }

.feed-filter-chip--active {
  background: var(--accent-1);
  border-color: var(--accent-1);
  color: #fff;
}

.feed-filter-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 490;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.feed-filter-overlay--open {
  opacity: 1;
  pointer-events: auto;
}

.feed-filter-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(360px, 100vw);
  background: var(--bg-base);
  z-index: 500;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.26s cubic-bezier(0.32, 0, 0.16, 1);
  box-shadow: -4px 0 28px rgba(0,0,0,0.13);
}

.feed-filter-panel--open {
  transform: translateX(0);
}

.feed-filter-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line-subtle);
  flex-shrink: 0;
}

.feed-filter-panel__title {
  font-size: 1rem;
  font-weight: var(--fw-bold);
  color: var(--text-primary);
}

.feed-filter-panel__head-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.feed-filter-clear {
  font-size: 0.78rem;
  color: var(--text-muted);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-weight: var(--fw-semi);
  transition: color var(--t-fast);
}

.feed-filter-clear:hover { color: var(--accent-1); }

.feed-filter-panel__close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: var(--bg-surface);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--t-fast);
}

.feed-filter-panel__close:hover {
  background: var(--accent-tint-md);
  color: var(--accent-1);
}

.feed-filter-panel__body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.feed-filter-panel__foot {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  border-top: 1px solid var(--line-subtle);
  flex-shrink: 0;
}

.feed-filter-section {
  border-bottom: 1px solid var(--line-subtle);
}

.feed-filter-section--search .feed-filter-section__body {
  padding: 14px 20px;
}

.feed-filter-section__toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}

.feed-filter-section__label {
  font-size: 0.88rem;
  font-weight: var(--fw-semi);
  color: var(--text-primary);
}

.feed-filter-section__arrow {
  color: var(--text-muted);
  transition: transform 0.18s ease;
  display: flex;
}

.feed-filter-section__toggle[aria-expanded="true"] .feed-filter-section__arrow {
  transform: rotate(180deg);
}

.feed-filter-section__body {
  padding: 0 20px 16px;
}

.feed-filter-search-wrap {
  position: relative;
}

.feed-filter-search-icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  pointer-events: none;
}

.feed-filter-search-input {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 12px 9px 32px;
  border-radius: 10px;
  border: 1.5px solid var(--line-subtle);
  background: var(--bg-elevated, rgba(0,0,0,0.03));
  font-size: 0.85rem;
  color: var(--text-primary);
  outline: none;
  transition: border-color var(--t-fast), background var(--t-fast);
}

.feed-filter-search-input:focus {
  border-color: var(--focus-border);
  box-shadow: var(--focus-ring);
  background: var(--bg-base);
}

.feed-filter-search-input::placeholder { color: var(--text-muted); }

.feed-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.feed-filter-chip {
  padding: 5px 14px;
  border-radius: 100px;
  border: 1.5px solid var(--line-subtle);
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.78rem;
  font-weight: var(--fw-semi);
  cursor: pointer;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
  white-space: nowrap;
  line-height: 1;
}

.feed-filter-chip:hover {
  border-color: var(--accent-1);
  color: var(--accent-1);
}

.feed-filter-chip--active {
  background: var(--accent-1);
  border-color: var(--accent-1);
  color: #fff;
}

.feed-filter-price-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.feed-filter-price-field {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.feed-filter-price-label {
  font-size: 0.72rem;
  font-weight: var(--fw-semi);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.feed-filter-price-input {
  padding: 8px 10px;
  border-radius: 8px;
  border: 1.5px solid var(--line-subtle);
  background: var(--bg-surface);
  font-size: 0.85rem;
  color: var(--text-primary);
  outline: none;
  width: 100%;
  box-sizing: border-box;
  transition: border-color var(--t-fast);
}

.feed-filter-price-input:focus {
  border-color: var(--focus-border);
  box-shadow: var(--focus-ring);
}

.feed-filter-price-sep {
  font-size: 1rem;
  color: var(--text-muted);
  margin-top: 18px;
}

.feed-filter-apply {
  flex: 1;
  padding: 11px 20px;
  border-radius: 10px;
  border: none;
  background: var(--accent-1);
  color: #fff;
  font-size: 0.88rem;
  font-weight: var(--fw-bold);
  cursor: pointer;
  transition: background var(--t-fast);
}

.feed-filter-apply:hover { background: #177a51; }

.feed-filter-save {
  font-size: 0.75rem;
  color: var(--accent-1);
  background: none;
  border: 1.5px solid rgba(31,143,95,0.35);
  border-radius: 8px;
  padding: 6px 12px;
  font-weight: var(--fw-semi);
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--t-fast);
}

.feed-filter-save:hover { background: var(--accent-tint-xs); }

.feed-filter-saved {
  font-size: 0.75rem;
  color: var(--accent-1);
  font-weight: var(--fw-semi);
  white-space: nowrap;
}

.feed-group {
  margin-bottom: 24px;
}

.feed-group--favorites .feed-group__head {
  border-bottom-color: rgba(217, 119, 6, 0.25);
}

.feed-group__fav-star {
  color: #d97706;
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
}

.feed-group--saved .feed-group__head {
  border-bottom-color: rgba(31, 143, 95, 0.25);
}

.feed-group__saved-icon {
  color: #1a6e47;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.feed-group__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 0 10px;
  border-bottom: 1.5px solid rgba(31,143,95,0.12);
  margin-bottom: 8px;
}

.feed-group__head-left {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  flex: 1;
}

.feed-group__name {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--text-strong, #1a1f27);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.feed-group__loc {
  font-size: 0.72rem;
  color: var(--text-muted, #48505d);
  white-space: nowrap;
  flex-shrink: 0;
}

.feed-group__link {
  font-size: 0.73rem;
  font-weight: 700;
  color: #1a6e47;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  opacity: 0.8;
  transition: opacity 0.12s;
}

.feed-group__link:hover { opacity: 1; }

.feed-product-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.feed-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px 10px 10px;
  background: rgba(255,255,255,0.82);
  border: 1.5px solid rgba(25,31,42,0.07);
  border-radius: 12px;
  transition: border-color 0.15s, box-shadow 0.15s;
  cursor: pointer;
}

.feed-card:hover {
  border-color: rgba(31,143,95,0.2);
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}

.feed-card--saved {
  border-color: rgba(31,143,95,0.35);
  background: rgba(255,255,255,0.95);
}

.feed-card__img {
  width: 60px;
  height: 60px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(31,143,95,0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(31,143,95,0.35);
}

.feed-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feed-card__img--empty {
  color: rgba(31,143,95,0.3);
}

.feed-card__body {
  flex: 1;
  min-width: 0;
  cursor: pointer;
}

.feed-card__name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-strong, #1a1f27);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
  letter-spacing: -0.01em;
}

.feed-card__brand {
  font-size: 0.72rem;
  color: var(--text-muted, #48505d);
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.feed-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}

.feed-chip-label {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 100px;
  font-size: 0.67rem;
  font-weight: 600;
  background: rgba(25,31,42,0.06);
  color: var(--text-muted, #48505d);
  text-transform: capitalize;
  line-height: 1.4;
}

.feed-chip-label--type {
  background: rgba(31,143,95,0.1);
  color: #1a6e47;
}

.feed-chip-label--thc {
  background: rgba(124,58,237,0.08);
  color: #6d28d9;
}

.feed-card__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}

.feed-card__price {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--text-strong, #1a1f27);
  letter-spacing: -0.01em;
  min-height: 18px;
}

.feed-card__price--empty {
  display: block;
}

.feed-card__btns {
  display: flex;
  align-items: center;
  gap: 5px;
}

.feed-fav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1.5px solid rgba(25,31,42,0.1);
  background: transparent;
  color: var(--text-muted, #48505d);
  cursor: pointer;
  transition: color 0.12s, border-color 0.12s, background 0.12s;
  flex-shrink: 0;
}

.feed-fav-btn:hover:not(:disabled) {
  border-color: rgba(234,179,8,0.5);
  color: #ca8a04;
  background: rgba(234,179,8,0.06);
}

.feed-fav-btn--active {
  color: #ca8a04;
  border-color: rgba(234,179,8,0.4);
  background: rgba(234,179,8,0.08);
}

.feed-fav-btn:disabled { opacity: 0.4; cursor: default; }

.feed-save-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 11px;
  border-radius: 8px;
  border: 1.5px solid rgba(25,31,42,0.12);
  background: transparent;
  color: var(--text-muted, #48505d);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  white-space: nowrap;
}

.feed-save-btn:hover:not(:disabled) {
  border-color: rgba(31,143,95,0.4);
  color: #1a6e47;
}

.feed-save-btn--active {
  background: rgba(31,143,95,0.1);
  border-color: rgba(31,143,95,0.3);
  color: #1a6e47;
}

.feed-save-btn:disabled { opacity: 0.4; cursor: default; }

.feed-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 56px 24px 32px;
  gap: 14px;
}

.feed-empty__icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(31,143,95,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(31,143,95,0.5);
}

.feed-empty__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-strong, #1a1f27);
}

.feed-empty__sub {
  font-size: 0.82rem;
  color: var(--text-muted, #48505d);
  max-width: 260px;
  line-height: 1.5;
}

.feed-empty__cta {
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  background: #1a6e47;
  color: #fff;
  border-radius: 100px;
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.12s;
}

.feed-empty__cta:hover { background: #145a3b; }

@keyframes feed-skel-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}

.app-auth-shell {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

.app-auth-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 0 20px;
  background: #1f8f5f;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 200;
}

.app-auth-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

.app-auth-wordmark {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.06em;
  color: #fff;
  -webkit-text-fill-color: #fff;
}

.app-auth-header__right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.app-auth-header__login-link {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  transition: color 0.15s;
}

.app-auth-header__login-link:hover { color: #fff; }

.app-auth-content {
  flex: 1;
  width: 100%;
  box-sizing: border-box;
}

.app-auth-content.page--signup,
.app-auth-content.page--login {
  display: block;
  padding: 0;
}

.app-auth-shell:has(.page--login),
.app-auth-shell:has(.page--signup) {
  display: block;
}

.app-auth-shell:has(.page--login) .app-auth-header,
.app-auth-shell:has(.page--signup) .app-auth-header {
  display: none;
}

.profile-cover {
  height: 140px;
  background: var(--grad-brand);
  width: 100%;
  flex-shrink: 0;
}

.profile-identity {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  padding: 0 16px 16px;
  margin-top: -44px;
  position: relative;
}

.profile-avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

.profile-avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--grad-brand);
  color: #fff;
  font-size: 32px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: -0.5px;
  border: 4px solid var(--bg-base);
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  flex-shrink: 0;
}

.profile-avatar-badge {
  position: absolute;
  bottom: 4px;
  right: 0;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--accent-1);
  color: #fff;
  padding: 2px 7px;
  border-radius: 10px;
  border: 2px solid var(--bg-base);
  line-height: 1;
}

.profile-identity__main {
  flex: 1;
  min-width: 0;
  padding-bottom: 4px;
}

.profile-identity__name {
  font-size: 1.25rem;
  font-weight: var(--fw-black);
  color: var(--text-primary);
  line-height: 1.15;
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-identity__handle {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  margin-top: 2px;
}

.profile-identity__bio {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-top: 5px;
  white-space: pre-wrap;
  word-break: break-word;
}

.profile-edit-btn {
  position: absolute;
  top: 0;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: var(--fw-semi);
  color: var(--text-primary);
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 20px;
  padding: 6px 14px;
  cursor: pointer;
  transition: background var(--t-fast), box-shadow var(--t-fast);
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  white-space: nowrap;
}

.profile-edit-btn:hover {
  background: rgba(255,255,255,0.92);
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

@media (max-width: 639px) {
  .profile-identity {
    flex-wrap: wrap;
    align-items: flex-start;
    padding-bottom: 12px;
  }
  .profile-identity__main {
    flex-basis: 100%;
    width: 100%;
    padding-bottom: 0;
    padding-top: 4px;
  }
  .profile-identity__name {
    white-space: normal;
  }
}

.profile-stats-row {
  display: flex;
  border-top: 1px solid var(--line-subtle);
  border-bottom: 1px solid var(--line-subtle);
  margin: 0 0 2px;
}

.profile-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 8px;
  border-right: 1px solid var(--line-subtle);
  text-align: center;
}

.profile-stat:last-child {
  border-right: none;
}

.profile-stat__value {
  font-size: 1.2rem;
  font-weight: var(--fw-black);
  color: var(--text-primary);
  line-height: 1.1;
}

.profile-stat__label {
  font-size: 0.65rem;
  font-weight: var(--fw-semi);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-top: 3px;
}

.profile-tabs-wrap {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--bg-base);
  border-bottom: 1px solid var(--line-subtle);
}

.profile-tabs-wrap .tabs {
  border-bottom: none;
}

.profile-edit-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 490;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.profile-edit-overlay--open {
  opacity: 1;
  pointer-events: auto;
}

.profile-edit-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100vw);
  background: var(--bg-base);
  z-index: 500;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(0.32, 0, 0.16, 1);
  box-shadow: -4px 0 32px rgba(0,0,0,0.15);
}

.profile-edit-panel--open {
  transform: translateX(0);
}

.profile-edit-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line-subtle);
  flex-shrink: 0;
}

.profile-edit-panel__title {
  font-size: 1rem;
  font-weight: var(--fw-bold);
  color: var(--text-primary);
}

.profile-edit-panel__close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: var(--bg-surface);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--t-fast);
}

.profile-edit-panel__close:hover {
  background: var(--accent-tint-md);
  color: var(--accent-1);
}

.profile-edit-panel__body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 20px 40px;
}

.profile-avatar--photo {
  background-size: cover;
  background-position: center;
  font-size: 0;
  color: transparent;
}

.profile-photo-picker {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 0 20px;
  border-bottom: 1px solid var(--line-subtle);
  margin-bottom: 20px;
}

.profile-photo-target {
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  padding: 0;
  overflow: hidden;
  flex-shrink: 0;
}

.profile-photo-preview {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--grad-brand);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  transition: filter var(--t-fast);
}

.profile-photo-target:hover .profile-photo-preview {
  filter: brightness(0.85);
}

.profile-photo-overlay {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(0,0,0,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  opacity: 0;
  transition: opacity var(--t-fast);
}

.profile-photo-target:hover .profile-photo-overlay {
  opacity: 1;
}

.profile-photo-hint {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  margin-top: 8px;
}

.follows-card-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.follows-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 10px 12px;
  transition: box-shadow var(--t-fast);
}

.follows-card:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.follows-card__avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent-1) 0%, #13643e 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.follows-card__avatar--dispo,
.follows-card__avatar--product {
  background: var(--bg-elevated);
  font-size: 18px;
}

.follows-card__info {
  flex: 1;
  min-width: 0;
}

.follows-card__name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.follows-card__meta {
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-top: 1px;
}

.follows-card__unfollow {
  font-size: 0.7rem;
  color: var(--text-muted);
  background: none;
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 3px 9px;
  cursor: pointer;
  flex-shrink: 0;
  transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast);
}

.follows-card__unfollow:hover {
  color: #c53030;
  border-color: rgba(197,48,48,0.3);
  background: rgba(197,48,48,0.04);
}

.pref-settings {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 4px;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
}

.pref-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border-subtle);
}

.pref-row:last-child {
  border-bottom: none;
}

.pref-row__label {
  font-size: 0.82rem;
  color: var(--text-muted);
  flex-shrink: 0;
}

.pref-row__value {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
  text-align: right;
  word-break: break-word;
}

.user-input--textarea {
  resize: vertical;
  min-height: 80px;
  font-family: inherit;
  line-height: 1.5;
}

.user-label-hint {
  font-size: 0.72rem;
  color: var(--text-muted);
  font-weight: 400;
  margin-left: 4px;
}

.star-btn--active {
  color: #f6b100;
}

.star-display {
  display: inline-flex;
  gap: 1px;
}

.star {
  color: #ddd;
  font-size: 0.95rem;
}

.star--filled {
  color: #f6b100;
}

.review-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 13px 14px;
  margin-bottom: 8px;
}

.review-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 5px;
}

.review-card__entity {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
}

.review-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 8px;
  border-radius: 8px;
  white-space: nowrap;
}

.badge--pending { background: rgba(246,177,0,0.12); color: #9a7200; }

.badge--approved { background: rgba(31,143,95,0.10); color: #1a6e47; }

.badge--rejected { background: rgba(229,62,62,0.09); color: #b91c1c; }

.review-card__stars { margin-bottom: 6px; }

.review-card__body {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.55;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.review-card__meta {
  font-size: 0.72rem;
  color: var(--text-muted);
}

.checkin-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 4px;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
}

.checkin-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border-subtle);
  padding: 11px 14px;
}

.checkin-card:last-child { border-bottom: none; }

.checkin-card__icon {
  font-size: 1.1rem;
  flex-shrink: 0;
  width: 28px;
  text-align: center;
}

.checkin-card__info { flex: 1; min-width: 0; }

.checkin-card__name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
}

.checkin-card__meta {
  font-size: 0.72rem;
  color: var(--text-muted);
}

.checkin-card__date {
  font-size: 0.72rem;
  color: var(--text-muted);
  flex-shrink: 0;
}

.checkin-empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 4px 0 12px;
  gap: 4px;
}

.community-feed-list {
  position: relative;
  padding-left: 24px;
}

.community-feed-list::before {
  content: '';
  position: absolute;
  left: 7px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(to bottom, rgba(31,143,95,0.25), rgba(31,143,95,0.06));
  border-radius: 1px;
}

.community-feed-item {
  position: relative;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 12px 13px;
  margin-bottom: 10px;
}

.community-feed-item::before {
  content: '';
  position: absolute;
  left: -22px;
  top: 14px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid var(--bg-base, #f7f3ec);
  background: rgba(31,143,95,0.4);
}

.community-feed-item--review::before {
  background: var(--accent-1);
}

.community-feed-item--checkin::before {
  background: rgba(31,143,95,0.4);
}

.community-feed-item__type {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: 3px;
}

.community-feed-item--review .community-feed-item__type { color: var(--accent-1); }

.community-feed-item__entity {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 3px;
}

.community-feed-item__state {
  font-size: 0.72rem;
  color: var(--text-muted);
  font-weight: 400;
}

.community-feed-item__stars { margin-bottom: 4px; }

.community-feed-item__body {
  font-size: 0.80rem;
  color: var(--text-secondary);
  line-height: 1.45;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.community-feed-item__meta {
  font-size: 0.70rem;
  color: var(--text-muted);
}

.app-topbar__btn--profile {
  padding: 0;
  overflow: hidden;
}

.app-topbar__user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--accent-1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  flex-shrink: 0;
}

.app-topbar__user-avatar.is-photo {
  font-size: 0;
  color: transparent;
}

.app-drawer--right {
  left: auto;
  right: 0;
  transform: translateX(100%);
  box-shadow: -4px 0 32px rgba(0,0,0,0.18);
}

.app-drawer--right.is-open {
  transform: translateX(0);
}

.app-drawer--right .app-drawer-item.is-active::before {
  left: auto;
  right: 0;
  border-radius: 3px 0 0 3px;
}

@media (min-width: 768px) {
  .app-drawer--right { display: none !important; }
}

[hidden] { display: none !important; }

.messages-thread,
.messages-thread__header,
.messages-compose {
  background: #fff;
}

.messages-thread__scroll {
  background: #f5f7f5;
}

.page--chat.app-content {
  padding-bottom: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

@media (min-width: 900px) {
  .page--chat.app-content { padding-bottom: 0; overflow: hidden; }
}

.user-view--chat {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.user-view .tabs {
  margin: -16px -16px 16px;
  border-radius: 0;
  padding: 14px 12px 12px;
  background: linear-gradient(180deg, var(--accent-tint-sm) 0%, var(--accent-tint-xs) 100%);
  border-bottom: 1px solid var(--accent-tint-lg);
}

.user-view .tabs .tab {
  border-radius: 8px;
}

.user-view--chat .messages-convo-item {
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  margin: 0 0 2px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--bg-surface);
  transition: background var(--t-fast), box-shadow var(--t-fast);
}

.user-view--chat .messages-convo-item:hover {
  background: var(--bg-elevated);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.user-view--chat .messages-convo-item__avatar {
  border: 2px solid rgba(31,143,95,0.2);
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

.user-view--chat [data-messages-list-view] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 8px 12px;
  /* mobile: pad below bottom nav so last item isn't hidden */
  padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px) + 8px);
}

@media (min-width: 900px) {
  .user-view--chat [data-messages-list-view] { padding: 8px 12px; }
}

.user-view--chat .messages-list {
  padding: 0;
  gap: 4px;
}

.chat-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}

.chat-panel--stub {
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat-stub {
  text-align: center;
  padding: 40px 32px;
  max-width: 280px;
}

.chat-stub svg {
  width: 40px;
  height: 40px;
  color: var(--text-muted);
  margin-bottom: 16px;
  opacity: 0.5;
}

.chat-stub__luna-icon {
  font-size: 2.5rem;
  margin-bottom: 16px;
  line-height: 1;
}

.chat-stub__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
}

.chat-stub__body {
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.5;
}

.chat-panel--luna .chat-stub__title {
  background: linear-gradient(135deg, #a78bfa, #60a5fa);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.messages-pane {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.messages-list-header {
  display: flex;
  align-items: center;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--border-subtle);
}

.messages-list-header__title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
}

.messages-list {
  flex: 1;
  overflow-y: auto;
}

.messages-convo-item__unread-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--accent-1);
  flex-shrink: 0;
  margin-left: 4px;
}

.messages-convo-item__preview.is-unread {
  font-weight: 600;
  color: var(--text-primary);
}

.messages-convo-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-subtle);
  text-decoration: none;
  color: var(--text-primary);
  transition: background var(--t-fast);
  cursor: pointer;
}

.messages-convo-item:hover {
  background: var(--surface-hover, rgba(255,255,255,0.04));
}

.messages-convo-item.is-unread .messages-convo-item__name {
  font-weight: 700;
}

.messages-convo-item__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  color: var(--text-muted);
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.messages-convo-item__body {
  flex: 1;
  min-width: 0;
}

.messages-convo-item__name {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.messages-convo-item__preview {
  font-size: 0.78rem;
  color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 2px;
}

.messages-convo-item__meta {
  font-size: 0.70rem;
  color: var(--text-muted);
  flex-shrink: 0;
  white-space: nowrap;
}

.messages-thread {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.messages-thread__header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--bg-surface);
}

.messages-thread__back {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--accent-1);
  display: flex;
  align-items: center;
  padding: 4px;
}

.messages-thread__back svg {
  width: 20px;
  height: 20px;
}

.messages-thread__avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.messages-thread__avatar.is-photo {
  font-size: 0;
  color: transparent;
}

.messages-thread__name {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}

.messages-thread__scroll {
  flex: 1;
  overflow-y: auto;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.messages-bubble {
  max-width: 72%;
  padding: 9px 13px;
  border-radius: 16px;
  font-size: 0.88rem;
  line-height: 1.45;
  word-break: break-word;
}

.messages-bubble--mine {
  align-self: flex-end;
  background: var(--accent-1);
  color: #fff;
  border-bottom-right-radius: 4px;
}

.messages-bubble--theirs {
  align-self: flex-start;
  background: var(--surface-1);
  color: var(--text-primary);
  border-bottom-left-radius: 4px;
}

.messages-bubble__time {
  font-size: 0.65rem;
  opacity: 0.65;
  margin-top: 3px;
  text-align: right;
}

.messages-compose {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 10px 14px;
  /* mobile: clear fixed bottom nav (60px) + safe area */
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px) + 60px);
  border-top: 1px solid var(--border-subtle);
  background: var(--bg-surface);
  flex-shrink: 0;
}

@media (min-width: 900px) {
  .messages-compose {
    padding-bottom: 12px; /* no bottom nav on desktop */
  }
}

.messages-compose__input {
  flex: 1;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: 10px 14px;
  font-size: 0.9rem;
  color: var(--text-primary);
  font-family: inherit;
  resize: none;
  max-height: 120px;
  line-height: 1.4;
  outline: none;
}

.messages-compose__input::placeholder {
  color: var(--text-muted);
}

.messages-compose__send {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--accent-1);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  transition: opacity var(--t-fast);
}

.messages-compose__send:disabled {
  opacity: 0.45;
  cursor: default;
}

.messages-compose__send svg {
  width: 18px;
  height: 18px;
}

.messages-empty {
  text-align: center;
  padding: 60px 24px;
  color: var(--text-muted);
}

.messages-empty svg {
  width: 48px;
  height: 48px;
  margin: 0 auto 12px;
  display: block;
  opacity: 0.35;
}

.messages-empty__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin-bottom: 6px;
}

.messages-new-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 20px auto 0;
  padding: 10px 22px;
  background: var(--accent-1);
  color: #fff;
  border: none;
  border-radius: 24px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}

.messages-new-sheet {
  position: fixed;
  inset: 0;
  background: var(--bg-base);
  z-index: 600;
  display: flex;
  flex-direction: column;
  transform: translateY(100%);
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.messages-new-sheet.is-open {
  transform: translateY(0);
}

.messages-new-sheet__header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border-subtle);
}

.messages-new-sheet__title {
  flex: 1;
  font-size: 1rem;
  font-weight: 700;
}

.messages-new-sheet__close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  padding: 4px;
}

.messages-new-sheet__close svg {
  width: 20px;
  height: 20px;
}

.messages-user-search {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-subtle);
}

.messages-user-search__input {
  width: 100%;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 9px 14px;
  font-size: 0.9rem;
  color: var(--text-primary);
  font-family: inherit;
  outline: none;
  box-sizing: border-box;
}

.messages-user-results {
  flex: 1;
  overflow-y: auto;
}

.messages-user-result {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border-bottom: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: background var(--t-fast);
}

.messages-user-result:hover {
  background: var(--surface-hover, rgba(255,255,255,0.04));
}

.messages-user-result__avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted);
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.messages-user-result__name {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-primary);
}

.settings-row__btn--danger {
  color: var(--text-danger, #e05252);
  border-color: var(--text-danger, #e05252);
}

.settings-row__btn--ghost {
  color: var(--text-muted);
  border-color: var(--border-subtle);
}

.settings-row__input {
  flex: 1;
  padding: 5px 10px;
  border: 1px solid var(--border-subtle);
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: inherit;
  background: var(--surface-2);
  color: var(--text-primary);
  min-width: 0;
}

.settings-row--actions {
  gap: 8px;
}

.pref-chip.is-active {
  background: var(--accent-1);
  border-color: var(--accent-1);
  color: #fff;
}

.pref-chip:hover:not(.is-active) {
  background: rgba(255,255,255,0.07);
}

.app-account-drawer__item.is-current-page {
  color: var(--accent-1);
}

.app-account-drawer__item.is-current-page .app-account-drawer__item-icon svg {
  stroke: var(--accent-1);
}

.settings-quick-links {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.settings-quick-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  background: var(--surface-1);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  color: var(--text-primary);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  transition: background var(--t-fast);
}

.settings-quick-link:hover,
.settings-quick-link:active {
  background: rgba(255,255,255,0.06);
}

.settings-quick-link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255,255,255,0.07);
  flex-shrink: 0;
  color: var(--text-secondary);
}

.settings-quick-link__label {
  flex: 1;
}

.settings-quick-link__arrow {
  color: var(--text-tertiary);
  font-size: 1.1rem;
  line-height: 1;
}

button.profile-stat {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
}

button.profile-stat:hover .profile-stat__value {
  color: var(--accent-1);
}

@media (min-width: 1280px) {
  .app-sidebar {
    width: 260px;
  }
  .app-body {
    margin-left: 260px;
  }
  .app-sidebar__nav {
    padding: 10px 14px;
  }
  .app-nav-item {
    padding: 12px 14px;
    font-size: 14.5px;
  }
}

@media (min-width: 900px) {
  /* Apply to the inner view, not the outer app-content, so padding is preserved */
  .user-view--feed,
  .user-view--discover,
  .user-view--stashbank,
  .user-view--profile,
  .user-view--community,
  .user-view--notifications,
  .user-view--referrals,
  .user-view--zen {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
  }
}

@media (min-width: 1100px) {
  .feed-product-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    align-items: start; /* rows shrink-wrap each card — no stretching */
  }

  .feed-card {
    padding: 12px 14px 12px 12px;
  }

  .feed-card__right {
    align-self: flex-start;
    padding-top: 2px;
  }
}

@media (min-width: 1100px) {
  .discover-results-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  /* Items inside group sub-lists stay single col — avoid awkward nested grids */
  .discover-results-list--in-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
}

@media (min-width: 900px) {
  .feed-group {
    margin-bottom: 28px;
  }

  .feed-group__name {
    font-size: 1.0rem;
  }

}

@media (min-width: 900px) {
  .tabs {
    gap: 4px;
    padding-bottom: 1px;
  }

  .tab {
    padding: 9px 22px;
    font-size: 0.875rem;
  }

  .sb-subtabs {
    gap: 4px;
  }

  .sb-subtab {
    padding: 7px 18px;
    font-size: 0.82rem;
  }
}

@media (min-width: 900px) {
  .app-content {
    padding: 28px 32px;
  }
}

@media (min-width: 1100px) {
  .profile-cover {
    border-radius: 12px;
    margin-bottom: 0;
  }

  .profile-identity {
    padding: 16px 4px 20px;
  }
}

@media (min-width: 900px) {
  .app-sidebar__nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  /* Slightly elevated active item on desktop */
  .app-nav-item.is-active {
    font-weight: 700;
  }
}

.app-desktop-topbar {
  display: none; /* shown at 900px+ */
}

@media (min-width: 900px) {
  .app-desktop-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 32px;
    height: 60px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--border-subtle);
    background: var(--bg-base);
    position: sticky;
    top: 0;
    z-index: 100;
    gap: 16px;
  }

  .app-desktop-topbar__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
  }

  .app-desktop-topbar__actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
  }

  .app-desktop-topbar__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--r-md);
    color: var(--text-secondary);
    text-decoration: none;
    transition: background var(--t-fast), color var(--t-fast);
    position: relative;
  }

  .app-desktop-topbar__btn svg {
    width: 18px;
    height: 18px;
  }

  .app-desktop-topbar__btn:hover {
    background: var(--bg-elevated);
    color: var(--text-primary);
  }

  .app-desktop-topbar__badge {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 8px;
    height: 8px;
    background: var(--accent-1);
    border-radius: 50%;
    border: 2px solid var(--bg-base);
  }

  /* Tokes pill */
  .app-desktop-topbar__tokes {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--r-md);
    background: rgba(91, 143, 249, 0.08);
    border: 1px solid var(--border-accent);
    text-decoration: none;
    transition: background var(--t-fast);
    margin-left: 4px;
  }

  .app-desktop-topbar__tokes:hover {
    background: rgba(91, 143, 249, 0.14);
  }

  .app-desktop-topbar__tokes-icon {
    display: flex;
    align-items: center;
    color: var(--accent-1);
  }

  .app-desktop-topbar__tokes-icon svg {
    width: 14px;
    height: 14px;
  }

  .app-desktop-topbar__tokes-val {
    font-size: 13px;
    font-weight: 700;
    color: var(--accent-1);
  }

  /* Avatar button */
  .app-desktop-topbar__avatar-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    margin-left: 4px;
  }

  .app-desktop-topbar__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--bg-elevated);
    border: 1.5px solid var(--border-medium);
    font-size: 12px;
    font-weight: 700;
    color: var(--accent-1);
    background-size: cover;
    background-position: center;
  }

  .app-desktop-topbar__avatar.is-photo {
    font-size: 0;
    color: transparent;
  }

  /* Shift content down to account for sticky header */
  .app-content {
    padding: 24px 32px 32px;
  }
}

.app-sidebar-section {
  margin-bottom: 4px;
}

.app-sidebar-section__title {
  display: none; /* shown at 900px+ */
}

@media (min-width: 900px) {
  .app-sidebar-section {
    margin-bottom: 8px;
  }

  /* Divider line between sections */
  .app-sidebar-section + .app-sidebar-section {
    border-top: 1px solid var(--border-subtle);
    padding-top: 8px;
    margin-top: 4px;
  }

  .app-sidebar-section__title {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    padding: 6px 12px 4px;
  }
}

@media (min-width: 900px) {
  .app-sidebar__user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
  }

  /* Avatar is now a link */
  a.app-sidebar__avatar {
    text-decoration: none;
    flex-shrink: 0;
  }

  .app-sidebar__user-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
  }

  .app-sidebar__logout-btn {
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
    font-size: 11px;
    color: var(--text-muted);
    cursor: pointer;
    text-align: left;
    line-height: 1;
    transition: color var(--t-fast);
  }

  .app-sidebar__logout-btn:hover {
    color: var(--text-primary);
  }

  .app-sidebar__tokes-icon svg {
    width: 14px;
    height: 14px;
  }
}

.app-chat-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  background: var(--bg-base);
  z-index: 450;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: -4px 0 40px rgba(0, 0, 0, 0.2);
  will-change: transform;
  overscroll-behavior: contain;
}

.app-chat-drawer.is-open {
  transform: translateX(0);
}

@media (min-width: 900px) {
  .app-chat-drawer {
    top: 60px; /* below the sticky desktop topbar */
    width: 420px;
    border-top: 1px solid var(--border-subtle);
  }
  .app-chat-drawer__header {
    height: 56px;
    padding: 0 16px 0 20px;
  }
}

.app-chat-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(56px + env(safe-area-inset-top, 0px));
  padding: env(safe-area-inset-top, 0px) 16px 0 20px;
  border-bottom: 1px solid var(--border-subtle);
  flex-shrink: 0;
}

.app-chat-drawer__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}

.app-chat-drawer__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.08);
  color: #1a1f27;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--t-fast);
}

.app-chat-drawer__close:hover {
  background: rgba(0, 0, 0, 0.14);
}

.app-chat-drawer__close svg {
  stroke: #1a1f27;
}

.app-chat-drawer__body {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
}

.app-chat-drawer__body .user-view--chat {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  max-width: none;
  width: 100%;
}

.app-chat-drawer__body .user-view--chat .tabs {
  border-bottom: 1px solid var(--border-subtle);
  padding: 8px 16px 10px;
  flex-shrink: 0;
  margin: 0 0 0 0;
  gap: 4px;
}

.app-chat-drawer__body .user-view--chat {
  padding: 0;
  gap: 0;
}

.app-chat-drawer__body .chat-panel {
  flex: 1;
  overflow-y: auto;
}

.app-chat-drawer__body .messages-thread {
  height: 100%;
}

.app-chat-drawer__body .messages-compose {
  flex-shrink: 0;
  border-top: 1px solid var(--border-subtle);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.chat-new-msg-fab {
  position: absolute;
  bottom: 24px;
  right: 20px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--accent-1);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(31, 143, 95, 0.35);
  z-index: 10;
  transition: background var(--t-fast), transform var(--t-fast);
}

.chat-new-msg-fab:active {
  transform: scale(0.92);
}

.chat-new-msg-sheet {
  position: absolute;
  inset: 0;
  background: var(--bg-base);
  display: flex;
  flex-direction: column;
  z-index: 20;
}

.chat-new-msg-sheet[hidden] { display: none; }

.chat-new-msg-sheet__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border-subtle);
  flex-shrink: 0;
}

.chat-new-msg-sheet__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
}

.chat-new-msg-sheet__close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-primary);
}

.chat-new-msg-sheet__list {
  flex: 1;
  overflow-y: auto;
  padding: 8px 12px;
}

.chat-fab {
  display: none; /* mobile: hidden — chat is in the bottom nav */
}

@media (min-width: 900px) {
  .chat-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--accent-1);
    color: #fff;
    border: none;
    cursor: pointer;
    z-index: 400;
    box-shadow: 0 4px 20px rgba(91, 143, 249, 0.45);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  }

  .chat-fab:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 28px rgba(91, 143, 249, 0.55);
  }

  .chat-fab:active {
    transform: scale(0.96);
  }

  .chat-fab svg {
    width: 22px;
    height: 22px;
  }

  .chat-fab__badge {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 9px;
    height: 9px;
    background: var(--accent-danger, #f55);
    border-radius: 50%;
    border: 2px solid var(--bg-base);
  }

  /* Push FAB up when chat drawer is open so it doesn't overlap */
  .app-chat-drawer.is-open ~ .chat-fab {
    display: none;
  }
}

.app-info-page {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.app-info-hero {
  padding: 28px 20px 20px;
  text-align: center;
  border-bottom: 1px solid var(--border-subtle);
}

.app-info-hero__version {
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.04em;
  line-height: 1;
}

.app-info-hero__build {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-top: 6px;
}

.app-info-nav {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border-subtle);
  padding: 0 16px;
  background: var(--bg-base);
  position: sticky;
  top: 0;
  z-index: 2;
}

.app-info-nav__tab {
  flex: none;
  padding: 12px 16px 11px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-muted);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}

.app-info-nav__tab.is-active {
  color: var(--text-primary);
  border-bottom-color: var(--accent-1);
}

.app-info-panels {
  flex: 1;
}

.app-info-panel {
  display: none;
}

.app-info-panel.is-active {
  display: block;
}

.app-info-section-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text-muted);
  margin-bottom: 14px;
}

.app-info-loading {
  font-size: 0.85rem;
  color: var(--text-muted);
}

.app-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-subtle);
  gap: 12px;
}

.app-info-row:last-child {
  border-bottom: none;
}

.app-info-row__label {
  font-size: 0.85rem;
  color: var(--text-muted);
  flex-shrink: 0;
}

.app-info-row__value {
  font-size: 0.85rem;
  color: var(--text-primary);
  text-align: right;
  word-break: break-all;
}

.app-info-history-entry {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border-subtle);
}

.app-info-history-entry.is-current {
  background: var(--bg-surface, rgba(255,255,255,0.03));
}

.app-info-history-entry__top {
  display: flex;
  align-items: center;
  gap: 8px;
}

.app-info-history-entry__version {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
}

.app-info-history-entry__badge {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent-1);
  background: color-mix(in srgb, var(--accent-1) 12%, transparent);
  border-radius: 4px;
  padding: 2px 6px;
}

.app-info-history-entry__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.app-info-history-entry__commit {
  font-family: monospace;
  font-size: 0.78rem;
  color: var(--text-muted);
  background: var(--bg-surface, rgba(255,255,255,0.05));
  padding: 1px 5px;
  border-radius: 4px;
}

.app-info-history-entry__date {
  font-size: 0.8rem;
  color: var(--text-muted);
}
