/**
 * Go CSS · shell
 * 
 * Purpose:
 *   Styles for this dashboard piece.
 * 
 * Dashboard:
 *   Go · shell (not a sidebar tab)
 * 
 * This file:
 *   business/dashboard/shell/shell.css
 * 
 * Depends on:
 *   - business/dashboard/shell/shell.html
 *   - scripts/assemble-dashboards.js
 * 
 * Used by:
 *   - scripts/assemble-dashboards.js → business/dashboard/styles.css
 */

/**
 * TuMicha Go portal — soft white theme with charcoal actions (no teal tint).
 * Loaded after brand.css so portal overrides shared gold/brown styling.
 */

@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Syne:wght@600;700;800&display=swap");

:root {
  --bg: #f3f3f4;
  --panel: #ffffff;
  --surface: #ffffff;
  --mist: #fafafa;
  --cream-soft: #ececee;
  --sidebar: #ffffff;
  --sidebar-text: #6a6a6e;
  --text: #121212;
  --ink: #121212;
  --muted: #6a6a6e;
  --border: rgba(18, 18, 18, 0.08);
  --soft-press: rgba(18, 18, 18, 0.06);
  --primary: #121212;
  --primary-dark: #0d0d0d;
  --primary-soft: rgba(18, 18, 18, 0.08);
  --accent: #121212;
  --accent-dark: #0d0d0d;
  --accent-soft: rgba(18, 18, 18, 0.08);
  --danger: #b44a3f;
  --danger-bg: #fee4e2;
  --success: #15803d;
  --success-bg: #dcfce7;
  --shadow: 0 1px 3px rgba(18, 18, 18, 0.08);
  --shadow-lift: 0 8px 24px rgba(18, 18, 18, 0.1);
  --radius: 16px;
  --radius-lg: 20px;
  --font-brand: "DM Sans", system-ui, -apple-system, sans-serif;
  --font-display: "Syne", "DM Sans", sans-serif;

  /* Remap shared brand tokens used across portal markup */
  --tumicha-gold: var(--ink);
  --tumicha-gold-light: #2a2a2a;
  --tumicha-gold-dark: #0d0d0d;
  --tumicha-cream: var(--panel);
  --tumicha-cream-muted: var(--muted);
  --tumicha-brown: var(--ink);
  --tumicha-brown-deep: var(--bg);
  --tumicha-brown-mid: var(--mist);
  --tumicha-brown-warm: var(--cream-soft);
  --tumicha-surface-auth: var(--panel);
  --tumicha-surface-dark: var(--bg);
  --tumicha-border-warm: var(--border);
  --tumicha-text-light: var(--text);
  --tumicha-text-muted-light: var(--muted);
  --tumicha-ink: var(--ink);
  --tumicha-muted: var(--muted);
  --tumicha-border: var(--border);
  --tumicha-shadow: var(--shadow);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-brand);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-optical-sizing: auto;
}

.hidden { display: none !important; }

/* Personal Search tab: phone/tablet keep "Search"; desktop sidebar shows TuMicha AI. */
#nav-shop-search-btn .nav-shop-ai-icon,
#nav-shop-search-btn .nav-shop-search-label-desktop {
  display: none;
}

/* Auth — light premium card (override dark brand auth) */
.auth-screen,
.login-screen {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px;
  padding-bottom: max(72px, calc(24px + env(safe-area-inset-bottom, 0px)));
  box-sizing: border-box;
  background: transparent !important;
}

.auth-screen::before,
.login-screen::before {
  display: none !important;
}

.auth-card,
.login-card {
  width: min(460px, 100%);
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: 24px !important;
  padding: 32px;
  box-shadow: var(--shadow) !important;
  overflow: hidden;
}

.auth-card::before,
.login-card::before {
  display: none !important;
}

/* Exact landing .site-header banner colors */
.brand-banner {
  --landing-paper: #f5f5f6;
  --landing-banner-bg: rgba(12, 12, 14, 0.88);
  --landing-banner-line: rgba(245, 245, 246, 0.16);
  background: var(--landing-banner-bg);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--landing-banner-line);
  color: var(--landing-paper);
}

.auth-brand-block.brand-banner {
  margin: -32px -32px 28px;
  padding: 18px 24px 16px;
  text-align: center;
  border-radius: 24px 24px 0 0;
}

.auth-brand-block .logo {
  justify-content: center;
  margin: 0 auto 10px;
  color: var(--landing-paper);
}

.auth-brand-block .brand-wordmark {
  color: var(--landing-paper);
}

.auth-brand-block p {
  color: rgba(245, 245, 246, 0.62) !important;
  font-size: 0.92rem;
  letter-spacing: 0.01em;
  margin: 0;
}

.auth-card label,
.login-card label,
.auth-form label {
  color: var(--text) !important;
}

.auth-card input,
.auth-card textarea,
.auth-form input,
.auth-form textarea,
.login-card input {
  background: var(--mist) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

.auth-card input::placeholder,
.auth-form input::placeholder,
.login-card input::placeholder {
  color: rgba(106, 106, 110, 0.7) !important;
}

.auth-form label.consent-check {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0.35rem 0 0.15rem;
  font-weight: 500;
  line-height: 1.4;
}

.auth-form .consent-check input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  margin-top: 0.15rem;
  flex: 0 0 auto;
  accent-color: #121212;
}

.auth-form .consent-check .consent-check-text {
  color: var(--text);
}

.auth-form .consent-check a {
  color: inherit;
  font-weight: 700;
}

/* Exact landing header .logo treatment */
.logo {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  text-decoration: none;
  color: #f5f5f6;
  flex-shrink: 0;
}

.logo img,
.brand-logo,
.brand-logo-lg {
  width: 40px;
  height: 40px;
  border-radius: 10px !important;
  object-fit: contain;
  background: #000000 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  flex-shrink: 0;
}

.brand-wordmark {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: #f5f5f6;
}

.brand-wordmark .brand-name,
.brand-wordmark .brand-go {
  font-weight: 700;
  color: inherit;
}

.brand-wordmark .brand-go,
.brand-wordmark .brand-surface {
  margin-left: 0.28em;
}

.account-type-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 16px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* Auth/signup keep a segmented control card; dashboard tabs do not. */
#auth-card .account-type-tabs,
.auth-card .account-type-tabs,
#signup-kind-picker.account-type-tabs,
#signup-entity-picker.account-type-tabs {
  padding: 4px;
  border-radius: 14px;
  background: var(--mist);
  border: 1px solid var(--border);
}

.account-type-btn {
  min-height: 38px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--muted);
  font-weight: 600;
  font-size: 0.82rem;
  line-height: 1.2;
  padding: 8px 10px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.account-type-btn .service-tab-icon {
  display: grid;
  place-items: center;
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
}

.account-type-btn .service-tab-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.account-type-btn.active {
  background: var(--panel);
  color: var(--ink);
  border-color: rgba(18, 18, 18, 0.12);
  box-shadow: 0 1px 3px rgba(18, 18, 18, 0.08);
}

.account-type-hint {
  margin: 0 0 14px;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
}

.google-signin-panel {
  display: grid;
  gap: 10px;
  margin: 0 0 16px;
}

.google-signin-panel.hidden {
  display: none;
}

.google-signin-slot {
  display: flex;
  justify-content: center;
  min-height: 40px;
}

.google-signin-slot iframe,
.google-signin-slot > div {
  max-width: 100%;
}

.tumicha-signup-btns,
.continue-tumicha-panel {
  display: grid;
  gap: 10px;
  justify-items: stretch;
}

.continue-tumicha-panel {
  margin: 4px 0 0;
}

.tumicha-signup-btn {
  position: relative;
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  height: 40px;
  padding: 0 12px;
  box-sizing: border-box;
  background: #ffffff;
  color: #1f1f1f;
  border: 1px solid #747775;
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.25px;
  line-height: 20px;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  overflow: hidden;
  user-select: none;
}

.tumicha-signup-btn img {
  position: absolute;
  left: 12px;
  top: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  border-radius: 4px;
  pointer-events: none;
}

.tumicha-signup-btn span {
  display: block;
  padding-left: 32px;
  padding-right: 32px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tumicha-signup-btn:hover {
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);
}

.tumicha-signup-btn:focus-visible {
  outline: 2px solid #1f1f1f;
  outline-offset: 2px;
}

.tumicha-signup-btn.active {
  border-color: #1f1f1f;
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);
  background: #f8f9fa;
}

.tumicha-signup-btn.hidden {
  display: none;
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 2px 0 4px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.auth-divider span {
  flex: 0 0 auto;
}

#signup-email[readonly] {
  opacity: 0.88;
}

.signup-with-profile-panel {
  display: grid;
  gap: 10px;
  margin: 0 0 16px;
}

.signup-individual-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.account-strip .account-phone {
  display: none;
}

@media (max-width: 520px) {
  .signup-individual-fields {
    grid-template-columns: 1fr;
  }

  .auth-tabs .tab-btn,
  .account-type-tabs .account-type-btn {
    white-space: nowrap !important;
    font-size: 0.8rem;
    padding: 8px 6px;
  }

  .auth-form .primary-btn {
    white-space: nowrap;
  }
}

/* Segmented Sign in / Create account — same on desktop, mobile, and Expo Go WebView */
.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 20px;
  padding: 4px;
  border-radius: 14px;
  background: var(--mist);
  border: 1px solid var(--border);
}

.tab-btn {
  min-height: 38px;
  background: transparent;
  color: var(--muted);
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.82rem;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: none;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.tab-btn.active {
  background: var(--panel) !important;
  color: var(--ink) !important;
  border-color: rgba(18, 18, 18, 0.12) !important;
  box-shadow: 0 1px 3px rgba(18, 18, 18, 0.08) !important;
}

label {
  display: block;
  margin-bottom: 14px;
  font-size: 14px;
  font-weight: 600;
}

input, textarea, select, button {
  font: inherit;
}

input, textarea {
  width: 100%;
  margin-top: 6px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--mist);
  color: var(--text);
}

textarea { min-height: 90px; resize: vertical; }

button { cursor: pointer; }

/* Primary / secondary CTA chrome: /shared/buttons.css (landing system). */

.auth-link {
  background: none;
  border: none;
  color: var(--accent-dark);
  padding: 0;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.auth-helper {
  margin: 10px 0;
  font-size: 0.9rem;
  color: var(--muted);
}

#signup-dob-field .auth-helper {
  display: block;
  margin: 6px 0 0;
  font-size: 0.82rem;
}

.family-links-list,
.family-approvals-list {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.family-link-card,
.family-approval-card {
  display: grid;
  gap: 8px;
  padding: 12px 0;
  border-top: 1px solid var(--border);
}

.family-grant-toggles {
  display: grid;
  gap: 8px;
}

.family-grant-toggles label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.92rem;
  color: var(--text);
}

.family-link-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.error-text {
  color: var(--danger);
  margin-top: 12px;
  font-size: 0.92rem;
}

/* App shell */
.app {
  --portal-sidebar-width: 320px;
  display: grid;
  grid-template-columns: var(--portal-sidebar-width) minmax(0, 1fr);
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

.sidebar {
  --sidebar-pad-x: 14px;
  background:
    linear-gradient(180deg, #ffffff 0%, #fafafa 48%, #f7f7f8 100%) !important;
  color: var(--text);
  padding: 20px var(--sidebar-pad-x) 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-right: 1px solid rgba(18, 18, 18, 0.06) !important;
  border-top-right-radius: 20px;
  box-shadow: 1px 0 0 rgba(255, 255, 255, 0.8) inset, 4px 0 24px rgba(18, 18, 18, 0.03);
  min-width: 0;
  /* Pin to the viewport on desktop. Banner + account stay put; tabs scroll. */
  position: fixed;
  top: 0;
  left: 0;
  width: var(--portal-sidebar-width, 320px);
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  overflow-x: hidden;
  overflow-y: hidden;
  box-sizing: border-box;
  z-index: 20;
}

.sidebar::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.sidebar::before {
  display: none !important;
}

.sidebar-brand.brand-banner {
  order: 1;
  display: block;
  margin: -20px calc(-1 * var(--sidebar-pad-x)) 8px;
  padding: 0;
  flex-shrink: 0;
}

.sidebar .brand {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 72px;
  margin: 0;
  padding: 0 16px;
  border-bottom: none;
  box-sizing: border-box;
}

.sidebar .brand-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.sidebar .brand-copy .brand-wordmark {
  color: #f5f5f6;
  font-size: 1.15rem;
  font-weight: 700;
}

.sidebar .brand-tagline {
  color: rgba(245, 245, 246, 0.62);
  margin-top: 4px;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  opacity: 1;
}

.account-strip {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  row-gap: 0;
  color: var(--text) !important;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(248, 248, 249, 0.88)) !important;
  border: 1px solid rgba(18, 18, 18, 0.08) !important;
  border-radius: 16px !important;
  order: 2;
  flex-shrink: 0;
  margin: 10px 2px 2px !important;
  padding: 12px !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 8px 20px rgba(18, 18, 18, 0.05);
  backdrop-filter: blur(10px);
  min-width: 0;
  box-sizing: border-box;
}

.account-strip-logo-wrap {
  position: relative;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  overflow: hidden;
  background:
    linear-gradient(145deg, #1c1c1e 0%, #3a3a3c 100%);
  box-shadow: 0 4px 12px rgba(18, 18, 18, 0.14);
}

.account-strip-logo,
.account-strip-logo-fallback {
  display: block;
  width: 100%;
  height: 100%;
}

.account-strip-logo {
  object-fit: cover;
}

.account-strip-logo.hidden {
  display: none;
}

.account-strip-logo-fallback {
  display: grid;
  place-items: center;
  color: #f5f5f6;
  font-family: var(--font-brand, inherit);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.account-strip-logo-wrap.has-logo .account-strip-logo-fallback {
  display: none;
}

.account-strip-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  min-width: 0;
  min-height: 48px;
}

.account-strip strong,
.account-strip .account-strip-name {
  display: block;
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.account-strip .account-strip-detail,
.account-strip .account-phone {
  display: block;
  color: var(--muted, #5c5c5c);
  font-size: 0.72rem;
  font-weight: 550;
  line-height: 1.3;
  margin: 0.1rem 0 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.account-strip .account-strip-detail.hidden,
.account-strip .account-phone.hidden {
  display: none !important;
}

.account-strip .account-kind-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin-top: 0.28rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  border: 1px solid rgba(18, 18, 18, 0.1);
  background: rgba(18, 18, 18, 0.04);
  color: var(--muted, #5c5c5c);
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.account-strip .account-kind-pill.hidden {
  display: none !important;
}

.account-kind-pill {
  display: inline-flex;
}

.nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 14px;
  flex: 1;
  min-width: 0;
}

.nav-primary {
  flex: 1 1 auto;
  order: 3;
  min-height: 0;
  padding: 4px 2px 8px;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* Scroll the tabs only — no visible scrollbar. */
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.nav-primary::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.nav-secondary {
  margin-top: 0;
  flex: 0 0 auto;
  order: 4;
  padding: 10px 2px 0;
  border-top: 1px solid rgba(18, 18, 18, 0.06);
}

/* Account + Settings + Sign out stay pinned below the scrolling app list. */
.portal-sidebar-footer {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 0 0 auto;
  order: 5;
  margin-top: auto;
  min-width: 0;
}

.portal-sidebar-footer .account-strip,
.portal-sidebar-footer .nav-secondary,
.portal-sidebar-footer .logout-btn {
  order: unset;
}

.portal-sidebar-footer .nav-secondary {
  margin: 0;
  padding: 0;
  border-top: none;
}

.portal-sidebar-footer .account-strip {
  margin: 4px 0 0 !important;
}

.portal-sidebar-footer .logout-btn {
  margin-top: 0;
  justify-content: flex-start;
  text-align: left;
}

.nav-label-short {
  display: none;
}

/* More is a mobile bottom-bar control only — keep it out of the desktop sidebar. */
.nav-more-trigger {
  display: none;
}

/* Overflow destinations only appear inside the mobile More sheet. */
.portal-more-apps {
  display: none;
}

.portal-more,
.portal-more-panel {
  display: contents;
}

.portal-more-backdrop,
.portal-more-handle {
  display: none;
}

.nav-btn {
  display: flex;
  align-items: center;
  gap: 11px;
  position: relative;
  background: transparent;
  color: var(--sidebar-text);
  border: none;
  text-align: left;
  padding: 9px 10px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition:
    background 160ms ease,
    color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  color: currentColor;
  border-radius: 9px;
  background: rgba(18, 18, 18, 0.04);
  transition: background 160ms ease, color 160ms ease;
}

.nav-icon svg {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
}

.nav-label {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nav-label-full,
.nav-label-short {
  max-width: 100%;
}

.nav-app-lock {
  display: inline-grid;
  place-items: center;
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  color: var(--muted);
  opacity: 0.92;
}

.nav-app-lock svg {
  width: 0.92rem;
  height: 0.92rem;
  display: block;
}

.nav-app-lock.is-unlocked {
  color: var(--success, #15803d);
}

.nav-app-lock.is-locked {
  color: var(--muted);
}

/* Keep lock + badge + chevron as one right-hand cluster so labels can ellipsize
   instead of painting through the trailing icons. */
.nav-btn.nav-group-parent {
  gap: 8px;
}

.nav-btn.nav-group-parent > .nav-icon {
  order: 1;
}

.nav-btn.nav-group-parent > .nav-label {
  order: 2;
}

.nav-btn.nav-group-parent > .nav-app-lock {
  order: 5;
  margin-left: auto;
}

.nav-btn.nav-group-parent > .nav-badge {
  order: 6;
  margin-left: 0;
  flex: 0 0 auto;
}

.nav-btn.nav-group-parent:not(:has(.nav-app-lock)) > .nav-badge {
  margin-left: auto;
}

.nav-btn.nav-group-parent > .nav-group-chevron {
  order: 7;
  margin-left: 0;
}

/* GOEDI is a leaf nav button — keep the lock beside the unread badge. */
#nav-gochat {
  gap: 8px;
}

#nav-gochat > .nav-app-lock {
  margin-left: auto;
  flex: 0 0 auto;
}

#nav-gochat:not(:has(.nav-app-lock)) > .nav-badge {
  margin-left: auto;
}

#nav-gochat > .nav-badge {
  flex: 0 0 auto;
}

.nav-btn.is-app-locked {
  opacity: 0.96;
}

.nav-btn.is-app-locked .nav-group-chevron {
  opacity: 0.35;
}

.nav-btn:hover:not(.active) {
  background: rgba(18, 18, 18, 0.045) !important;
  color: var(--ink) !important;
}

.nav-btn:hover:not(.active) .nav-icon {
  background: rgba(18, 18, 18, 0.07);
}

.nav-btn.active {
  background: var(--ink) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(18, 18, 18, 0.14);
}

.nav-btn.active .nav-icon {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.nav-btn.active .nav-badge {
  background: #fff;
  color: var(--ink);
}

.nav-btn:focus-visible {
  outline: 2px solid rgba(18, 18, 18, 0.35);
  outline-offset: 2px;
}

.nav-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.nav-group-parent.is-section-active:not(.active) {
  background: rgba(18, 18, 18, 0.045);
  color: var(--ink);
}

.nav-group-parent.is-section-active:not(.active) .nav-icon {
  background: rgba(18, 18, 18, 0.07);
  color: var(--ink);
}

.nav-group-children {
  display: none;
  flex-direction: column;
  gap: 2px;
  margin: 0 0 2px;
  padding: 2px 0 2px 18px;
  position: relative;
}

.nav-group.is-open > .nav-group-children {
  display: flex;
}

.nav-group-children::before {
  content: "";
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 20px;
  width: 2px;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.1);
}

.nav-sub-btn {
  gap: 10px;
  min-height: 0;
  padding: 6px 10px 6px 14px;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--muted);
}

.nav-sub-btn .portal-app-icon {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  font-size: 13px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.nav-sub-btn:hover:not(.active) {
  color: var(--ink);
}

.nav-sub-btn.active {
  background: rgba(18, 18, 18, 0.08) !important;
  color: var(--ink) !important;
  box-shadow: none;
}

.nav-sub-btn.active .portal-app-icon {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 0 0 1px rgba(18, 18, 18, 0.08);
}

.nav-group-parent {
  width: 100%;
}

.nav-group-parent .nav-label {
  flex: 1 1 auto;
  min-width: 0;
}

.nav-group-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-left: auto;
  flex: 0 0 auto;
  border-radius: 8px;
  color: var(--muted);
  transition: transform 160ms ease, color 160ms ease, background 160ms ease;
}

.nav-group-chevron svg {
  width: 0.95rem;
  height: 0.95rem;
}

.nav-group.is-open > .nav-group-parent .nav-group-chevron {
  transform: rotate(90deg);
  color: var(--ink);
}

.nav-group-parent:hover .nav-group-chevron {
  background: rgba(18, 18, 18, 0.05);
  color: var(--ink);
}

.nav-group.is-open .nav-group-parent {
  margin-bottom: 0;
}

.logout-btn {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 11px;
  margin-top: 0;
  flex-shrink: 0;
  order: 5;
  width: 100%;
  background: transparent !important;
  color: var(--muted) !important;
  border: 1px solid transparent !important;
  border-radius: 12px;
  padding: 10px 10px;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: -0.01em;
  text-align: left;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}

.logout-btn .nav-label {
  flex: 0 1 auto;
  text-align: left;
}

.logout-btn .nav-icon {
  background: rgba(18, 18, 18, 0.04);
}

.logout-btn:hover {
  background: rgba(18, 18, 18, 0.045) !important;
  color: var(--text) !important;
  border-color: rgba(18, 18, 18, 0.06) !important;
}

.logout-btn:hover .nav-icon {
  background: rgba(18, 18, 18, 0.07);
}

.main {
  /* Stay in the right grid track while the sidebar is position:fixed. */
  grid-column: 2;
  padding: 24px;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
}

.topbar-end {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  flex: 0 0 auto;
  margin-left: auto;
}

/* Section-drawer toggle lives in the topbar; mobile-only. */
.business-mobile-drawer-toggle {
  display: none;
}

.topbar-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.topbar-heading-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.topbar-title-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.topbar-title-row h2 {
  margin: 0;
  min-width: 0;
}

.admin-access-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(90, 86, 82, 0.1);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 0.92rem;
}

.test-mode-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(180, 120, 40, 0.12), rgba(180, 120, 40, 0.04));
  border: 1px solid rgba(180, 120, 40, 0.28);
  color: var(--text);
  font-size: 0.92rem;
}

.business-verification-status-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(180, 74, 63, 0.12), rgba(180, 74, 63, 0.04));
  border: 1px solid rgba(180, 74, 63, 0.28);
  color: var(--text);
  font-size: 0.92rem;
}

.business-verification-status-banner[data-status="pending"] {
  background:
    linear-gradient(135deg, rgba(180, 120, 40, 0.14), rgba(180, 120, 40, 0.04));
  border-color: rgba(180, 120, 40, 0.3);
}

.business-verification-status-banner[data-status="rejected"] {
  background:
    linear-gradient(135deg, rgba(180, 74, 63, 0.16), rgba(180, 74, 63, 0.05));
  border-color: rgba(180, 74, 63, 0.34);
}

.business-verification-status-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1 1 220px;
}

.business-verification-status-copy strong {
  font-size: 0.95rem;
  letter-spacing: -0.01em;
}

.business-verification-status-copy span {
  color: var(--muted);
  line-height: 1.4;
}

.test-mode-banner .secondary-btn,
.admin-access-banner .secondary-btn,
.business-verification-status-banner .secondary-btn {
  padding: 8px 12px;
  font-size: 0.85rem;
  flex: 0 0 auto;
}

.topbar h2 {
  margin: 0 0 4px;
  font-size: 1.65rem;
  letter-spacing: -0.03em;
}

.topbar-title-row h2 {
  margin: 0;
}

.topbar p {
  margin: 0;
  color: var(--muted);
}

/* Tab headings: left-align across personal + business (matches drawer chrome). */
body.personal-account .topbar {
  position: relative;
  justify-content: space-between;
  align-items: flex-start;
}

body.personal-account .topbar-heading {
  justify-content: flex-start;
  width: auto;
  text-align: left;
}

body.personal-account .topbar > div:first-child {
  text-align: left;
  width: auto;
}

.table-wrap, .panel-form, .info-box {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.04);
}

.table-wrap { overflow: auto; }

.panel-form, .info-box { padding: 24px; max-width: 760px; margin-inline: auto; }

.info-box p { margin: 0; color: var(--muted); line-height: 1.5; }

table { width: 100%; border-collapse: collapse; }

th, td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}

th {
  font-size: 12px;
  color: var(--muted);
  background: var(--mist);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  background: var(--cream-soft);
  color: var(--muted);
}

.badge-arrived {
  background: rgba(90, 140, 160, 0.14);
  color: #3d6570;
}

.live-tracking-banner {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--accent-soft);
  color: var(--accent-dark);
  font-weight: 600;
  font-size: 0.92rem;
}

.live-trip-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  background: var(--bg);
  border-radius: 18px;
  border: 1px solid var(--border);
}

.live-trip-map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  min-height: 100% !important;
  border: 0;
  border-radius: 0;
  background: #ebe8e3;
  pointer-events: auto;
  touch-action: manipulation;
  z-index: 1;
}

.live-trip-chip {
  position: absolute;
  z-index: 4;
  top: max(12px, env(safe-area-inset-top, 0px));
  left: max(12px, env(safe-area-inset-left, 0px));
  right: max(12px, env(safe-area-inset-right, 0px));
  display: grid;
  gap: 2px;
  max-width: 420px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lift);
  pointer-events: none;
}

.live-trip-chip-kind {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.live-trip-chip strong {
  font-size: 0.98rem;
  color: var(--text);
}

.live-trip-chip-status {
  font-size: 0.86rem;
  color: var(--muted);
}

.live-trip-driver-pill {
  position: absolute;
  z-index: 4;
  left: max(12px, env(safe-area-inset-left, 0px));
  right: max(12px, env(safe-area-inset-right, 0px));
  bottom: calc(72px + env(safe-area-inset-bottom, 0px) + var(--live-keyboard-inset, 0px));
  max-width: 420px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  pointer-events: none;
}

.live-trip-driver-label {
  margin: 0 0 4px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.live-trip-driver-name {
  display: block;
  font-size: 1.02rem;
  color: var(--text);
}

.live-trip-driver-plate,
.live-trip-driver-eta,
.live-trip-driver-status {
  margin: 4px 0 0;
  font-size: 0.88rem;
  color: var(--muted);
}

.live-trip-driver-eta {
  font-weight: 600;
  color: var(--text);
}

.live-trip-driver-status {
  font-weight: 600;
  color: var(--text);
}

.live-trip-chat {
  position: absolute;
  z-index: 5;
  right: max(12px, env(safe-area-inset-right, 0px));
  bottom: calc(16px + env(safe-area-inset-bottom, 0px) + var(--live-keyboard-inset, 0px));
  left: auto;
  width: min(360px, calc(100% - 24px));
  pointer-events: none;
}

.live-trip-chat-toggle,
.live-trip-chat-sheet {
  pointer-events: auto;
}

.live-trip-chat-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  box-shadow: var(--shadow-lift);
  font: inherit;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  float: right;
}

.live-trip-chat-toggle:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.live-trip-chat.is-collapsed .live-trip-chat-sheet {
  display: none;
}

.live-trip-chat.is-open .live-trip-chat-toggle {
  display: none;
}

.live-trip-stage:has(.live-trip-chat.is-open) .live-trip-driver-pill {
  opacity: 0;
  visibility: hidden;
}

.live-trip-chat-sheet {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: min(46vh, 420px);
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: var(--shadow-lift);
  overflow: hidden;
}

.live-trip-chat-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
}

.live-trip-chat-sheet-head .secondary-btn {
  min-height: 36px;
  padding: 0 12px;
}

.live-trip-chat-messages {
  flex: 1;
  min-height: 120px;
  overflow: auto;
  padding: 12px;
  display: grid;
  gap: 8px;
  background: #f7f5f2;
}

.live-trip-chat-bubble {
  max-width: 85%;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: 0.92rem;
  line-height: 1.35;
  word-break: break-word;
}

.live-trip-chat-bubble--customer {
  margin-left: auto;
  background: var(--accent-soft);
  color: var(--text);
}

.live-trip-chat-bubble--driver {
  margin-right: auto;
  background: #fff;
  border: 1px solid var(--border);
  color: var(--text);
}

.live-trip-chat-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 10px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border);
  background: #fff;
}

.live-trip-chat-form input {
  margin: 0;
  min-height: 44px;
}

.live-trip-chat-form .primary-btn {
  min-width: 72px;
  min-height: 44px;
}

.app.has-live-trip .main {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.app.has-live-trip .live-trip-stage {
  flex: 1;
  min-height: 0;
  border-radius: 0;
  border: 0;
}

@media (max-width: 900px) {
  body:not(.business-account) .app.has-live-trip {
    /* Keep bottom tab bar visible; map fills remaining space above it. */
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }

  body.business-account .app.has-live-trip {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .app.has-live-trip .main {
    flex: 1;
    min-height: 0;
    padding: 0;
  }

  .app.has-live-trip .live-trip-stage {
    min-height: 0;
    height: 100%;
  }

  .live-trip-chip {
    right: max(12px, env(safe-area-inset-right, 0px));
    max-width: none;
  }

  .live-trip-driver-pill {
    max-width: none;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px) + var(--live-keyboard-inset, 0px));
  }

  .live-trip-chat {
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    width: auto;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px) + var(--live-keyboard-inset, 0px));
  }

  .live-trip-chat-sheet {
    max-height: min(42vh, 360px);
  }

  .app.has-live-trip .gm-bundled-control,
  .app.has-live-trip .gmnoprint {
    margin-bottom: calc(88px + env(safe-area-inset-bottom, 0px) + var(--live-keyboard-inset, 0px)) !important;
  }
}

.toolbar { margin-bottom: 14px; }

.toolbar-stack { display: flex; gap: 10px; flex-wrap: wrap; }

#integrations-mode-tabs.account-type-tabs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 0;
}

.integration-guide-card {
  display: grid;
  gap: 14px;
}

.integration-guide-card h3 {
  margin: 0;
}

.integration-guide-card .integration-guide-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  margin-top: 0;
}

.empty-state-copy {
  display: inline;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.45;
}

.action-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.action-group .secondary-btn {
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 0.9rem;
  line-height: 1.2;
}

.secondary-btn.danger-btn {
  color: var(--danger) !important;
  border-color: rgba(180, 74, 63, 0.35) !important;
}

.secondary-btn.danger-btn:hover {
  background: rgba(180, 74, 63, 0.08) !important;
}

.inline-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.address-block {
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}

.address-block:last-of-type { border-bottom: 0; }

.toast {
  position: fixed;
  right: 16px;
  bottom: 16px;
  left: 16px;
  margin: 0 auto;
  background: var(--text);
  color: #ffffff;
  padding: 12px 16px;
  border-radius: 12px;
  box-shadow: var(--shadow);
  z-index: 50;
  max-width: min(360px, calc(100vw - 32px));
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(42, 41, 39, 0.35);
  display: grid;
  place-items: center;
  z-index: 40;
  padding: 16px;
}

.modal {
  width: min(480px, 100%);
  max-width: 100%;
  background: var(--panel);
  border-radius: 20px;
  padding: 20px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  box-sizing: border-box;
}

.modal.modal--app-about {
  width: min(440px, 100%);
  max-height: min(88vh, 640px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 16px 16px 12px;
}

.modal.modal--app-about > #modal-title {
  flex: 0 0 auto;
  margin: 0 0 10px;
  font-family: var(--font-brand);
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.modal.modal--app-about > #modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-right: 2px;
}

.modal.modal--app-about > .modal-actions {
  flex: 0 0 auto;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

.modal.modal--app-about > #modal-close-actions {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.45rem;
}

.modal.modal--app-about #modal-app-subscribe-actions:not(.hidden) {
  display: grid;
  gap: 0.4rem;
  width: 100%;
  order: 0;
}

.modal.modal--app-about #modal-app-subscribe-actions .app-tile-action {
  width: 100%;
}

.modal.modal--app-about #modal-close-btn {
  width: 100%;
  order: 1;
}

.modal-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 18px;
}

.order-id-hint {
  margin: -6px 0 14px;
  font-size: 0.84rem;
  color: var(--muted);
}

.ride-booking-intro {
  margin: 0 0 18px;
  color: var(--muted);
  line-height: 1.5;
}

.trip-fare-card {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(20, 90, 70, 0.08), rgba(20, 90, 70, 0.02));
  border: 1px solid rgba(20, 90, 70, 0.16);
}

.trip-fare-card .status-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 0.35rem;
}

.trip-fare-card .status-row strong {
  font-size: 1.15rem;
}

.drivers-nearby-banner {
  margin: 0.65rem 0 0;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  font-size: 0.92rem;
  line-height: 1.35;
}

.drivers-nearby-banner.is-ok {
  background: rgba(20, 90, 70, 0.1);
  color: #0f3d30;
}

.drivers-nearby-banner.is-warn {
  background: rgba(160, 70, 20, 0.12);
  color: #6b2d0c;
  border: 1px solid rgba(160, 70, 20, 0.22);
}

.cancel-ride-btn {
  padding: 8px 12px;
  font-size: 0.85rem;
}

.actions-cell {
  white-space: nowrap;
}

.service-type-pill {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.service-type-ride {
  background: var(--accent-soft);
  color: var(--accent-dark);
}

.service-type-delivery {
  background: var(--primary-soft);
  color: var(--muted);
}

body.personal-account .business-only-field {
  display: none !important;
}

#personal-service-tabs {
  margin-bottom: 14px;
}

/* Mobile menu button — business drawer only (shown under 900px). Personal keeps bottom tabs. */
.nav-drawer-toggle,
.nav-drawer-fab,
.nav-drawer-backdrop {
  display: none;
}

.nav-drawer-toggle-icon {
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
}

.nav-drawer-toggle-icon svg {
  width: 100%;
  height: 100%;
}

@keyframes portalMoreIn {
  from {
    opacity: 0.6;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

html,
body.portal-app {
  overflow-x: clip;
  max-width: 100%;
}

.portal-app img,
.portal-app table,
.portal-app .panel-form,
.portal-app .info-box,
.portal-app .address-map-picker,
.portal-app .address-map-picker-canvas-wrap {
  max-width: 100%;
}

.portal-app .address-map-search {
  max-width: calc(100% - 24px);
}

/*
 * Soft-white auth chrome for ALL viewports (desktop browser + phone + Expo Go).
 * Previously these lived only in min-width:769px, so Expo Go looked like an older login.
 */
.portal-app .auth-card,
.portal-app .login-card {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
}

.portal-app .auth-card input,
.portal-app .auth-card textarea,
.portal-app .auth-form input,
.portal-app .auth-form textarea,
.portal-app .login-card input {
  background: var(--mist) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

.portal-app .auth-tabs {
  gap: 6px !important;
  padding: 4px !important;
  border-radius: 14px !important;
  background: var(--mist) !important;
  border: 1px solid var(--border) !important;
}

.portal-app .tab-btn,
.portal-app .account-type-btn {
  background: transparent !important;
  color: var(--muted) !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  white-space: nowrap !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  padding: 8px 10px !important;
  line-height: 1.2 !important;
  min-height: 38px !important;
  box-shadow: none !important;
}

.portal-app .tab-btn.active,
.portal-app .account-type-btn.active {
  background: var(--panel) !important;
  color: var(--ink) !important;
  border-color: rgba(18, 18, 18, 0.12) !important;
  box-shadow: 0 1px 3px rgba(18, 18, 18, 0.08) !important;
}

/* Auth submit colors: /shared/buttons.css */

@media (min-width: 769px) {
  .portal-app .main {
    background: transparent !important;
  }

  .portal-app .panel-form,
  .portal-app .table-wrap,
  .portal-app .info-box {
    background: var(--panel) !important;
    box-shadow: 0 1px 2px rgba(42, 41, 39, 0.04) !important;
  }
}

.portal-app .account-layout {
  display: grid;
  gap: var(--space-md);
  max-width: 720px;
  margin-inline: auto;
}

.portal-app .account-card h3 {
  margin: 0 0 10px;
}

.portal-app .account-card > p {
  margin: 0 0 6px;
  font-size: 15px;
  line-height: 22px;
}

.portal-app .account-card label {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
}

.portal-app .account-layout > .secondary-btn {
  justify-self: start;
}

.portal-app .main {
  background: transparent;
}

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

.marketplace-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 18px;
}

.marketplace-search {
  flex: 1 1 220px;
  margin: 0;
}

.marketplace-search input {
  width: 100%;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}

.product-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(42, 41, 39, 0.04);
  display: flex;
  flex-direction: column;
}

.product-media {
  aspect-ratio: 4 / 3;
  background: linear-gradient(145deg, var(--mist), var(--cream-soft));
  overflow: hidden;
}

.product-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--muted);
}

.product-body {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.product-seller {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.product-body h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.25;
}

.product-desc {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.product-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: baseline;
  font-size: 0.9rem;
}

.marketplace-empty {
  color: var(--muted);
  padding: 24px 4px;
}

.marketplace-split {
  display: grid;
  grid-template-columns: minmax(280px, 420px) 1fr;
  gap: 18px;
  align-items: start;
}

.marketplace-form h3 {
  margin: 0 0 12px;
}

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

.muted-line {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.82rem;
}

#catalogue-app-tabs {
  margin: 0 0 14px;
}

#catalogue-app-tabs.hidden {
  display: none;
}

/* Nested Sell Products / Sell Services nav owns catalogue mode on all breakpoints. */
#catalogue-app-tabs {
  display: none !important;
}

.marketplace-order-tabs {
  margin-bottom: 16px;
}

.nav-badge {
  display: inline-grid;
  place-items: center;
  min-width: 1.25rem;
  height: 1.25rem;
  margin-left: 8px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--primary);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  flex: 0 0 auto;
}

.nav-btn:not(.nav-group-parent) > .nav-badge {
  margin-left: auto;
}

.nav-group-parent > .nav-badge {
  margin-left: 0;
  flex: 0 0 auto;
}

.branch-auto-close-toggle {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.branch-auto-close-toggle input {
  margin: 0;
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  align-self: center;
}

.branch-auto-close-label {
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.2;
}

.shop-type-picker {
  position: relative;
  display: block;
  margin: 0;
  min-width: 0;
}

.shop-type-picker-control {
  position: relative;
  display: block;
  width: 100%;
}

.shop-type-search {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  /* Match sibling text inputs; strip WebKit search chrome that shifts height. */
  -webkit-appearance: none;
  appearance: none;
}

.shop-type-search::-webkit-search-decoration,
.shop-type-search::-webkit-search-cancel-button,
.shop-type-search::-webkit-search-results-button,
.shop-type-search::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.shop-type-suggestions {
  position: absolute;
  z-index: 80;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 6px;
  list-style: none;
  max-height: 240px;
  overflow: auto;
  border: 1px solid var(--border, rgba(18, 18, 18, 0.12));
  border-radius: 12px;
  background: var(--panel, #fff);
  box-shadow: 0 12px 32px rgba(18, 18, 18, 0.16);
}

.shop-type-suggestions.hidden {
  display: none !important;
}

.shop-type-suggestion {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--text, #1a1a1a);
}

.shop-type-suggestion:hover,
.shop-type-suggestion.is-active {
  background: var(--mist, #f5f4f2);
}

.shop-type-suggestion-empty {
  margin: 0;
  padding: 10px 12px;
  color: var(--muted, #666);
  font-size: 0.88rem;
  font-weight: 500;
}

.branch-toolbar {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.branch-toolbar-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.branch-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.branch-toolbar-copy h3 {
  margin: 0 0 2px;
  font-size: 1.05rem;
}

.branch-tabs-shell {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0 -2px;
}

.branch-tabs-shell::before,
.branch-tabs-shell::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 10px;
  width: 28px;
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition: opacity 160ms ease;
}

.branch-tabs-shell::before {
  left: 0;
  background: linear-gradient(90deg, var(--bg, #f3f3f4), rgba(243, 243, 244, 0));
}

.branch-tabs-shell::after {
  right: 0;
  background: linear-gradient(270deg, var(--bg, #f3f3f4), rgba(243, 243, 244, 0));
}

.branch-tabs-shell--vertical {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
  margin: 0;
}

.branch-tabs-shell--vertical::before,
.branch-tabs-shell--vertical::after {
  display: none;
}

.branch-tabs--vertical {
  flex-direction: column;
  gap: 10px;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 2px 2px 8px;
  scroll-snap-type: y proximity;
  max-height: none;
  height: 100%;
}

.branch-tabs--vertical .branch-tab.shop-store-card {
  width: 100%;
  min-width: 0;
  max-width: none;
  scroll-snap-align: start;
}

.branch-tabs--vertical .branch-tab .shop-store-cover {
  min-height: 72px;
  aspect-ratio: 16 / 9;
}

.branch-tabs--vertical .branch-tab-body .shop-store-name {
  -webkit-line-clamp: 2;
}

.branch-tabs--vertical .branch-tab-body .shop-store-location {
  -webkit-line-clamp: 2;
}

.branch-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2px 8px 12px;
  margin: 0;
  scrollbar-width: thin;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.branch-tabs::-webkit-scrollbar {
  height: 6px;
}

.branch-tabs::-webkit-scrollbar-thumb {
  background: rgba(18, 18, 18, 0.16);
  border-radius: 999px;
}

.branch-tabs--text {
  flex-wrap: nowrap;
}

.branch-tab.branch-tab--text {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: min(100%, 18rem);
  min-height: 36px;
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  scroll-snap-align: start;
  transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease, color 140ms ease;
}

.branch-tab.branch-tab--text:hover {
  border-color: rgba(18, 18, 18, 0.22);
  background: #fff;
  color: var(--ink, #111);
}

.branch-tab.branch-tab--text.is-active {
  border-color: var(--ink, #111);
  background: color-mix(in srgb, var(--ink, #111) 92%, #fff);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.branch-tab.branch-tab--text.is-hidden-branch:not(.is-active) {
  opacity: 0.78;
}

.branch-tab.branch-tab--text .branch-tab-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.branch-tab.branch-tab--text .branch-tab-badge {
  position: static;
  flex: 0 0 auto;
  top: auto;
  right: auto;
  padding: 2px 7px;
  font-size: 0.62rem;
}

.branch-tab.branch-tab--text.is-active .branch-tab-badge.is-live {
  color: #14532d;
  background: rgba(220, 252, 231, 0.96);
}

.branch-tab.branch-tab--text.is-active .branch-tab-badge.is-hidden {
  color: #44403c;
  background: rgba(245, 245, 244, 0.96);
}

.branch-tab.shop-store-card {
  flex: 0 0 auto;
  width: 176px;
  max-width: 176px;
  min-width: 176px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: #fff;
  color: inherit;
  font: inherit;
  text-align: left;
  overflow: hidden;
  box-shadow: var(--shadow);
  cursor: pointer;
  scroll-snap-align: start;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.branch-tab.shop-store-card:hover {
  transform: translateY(-2px);
  border-color: rgba(18, 18, 18, 0.14);
  box-shadow: var(--shadow-lift);
  background: #fff;
}

.branch-tab.shop-store-card.is-active {
  border-color: rgba(18, 18, 18, 0.28);
  box-shadow:
    0 0 0 2px rgba(18, 18, 18, 0.88),
    var(--shadow-lift);
  background: #fff;
}

.branch-tab.shop-store-card.is-hidden-branch:not(.is-active) {
  opacity: 0.78;
}

.branch-tab .shop-store-cover {
  min-height: 72px;
  aspect-ratio: 16 / 9;
}

.branch-tab .shop-store-kind {
  top: 8px;
  left: 8px;
  padding: 3px 7px;
  font-size: 0.62rem;
}

.branch-tab .shop-store-initial {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 10px;
  font-size: 0.95rem;
}

.branch-tab-body {
  padding: 8px 10px 10px;
  gap: 2px;
}

.branch-tab-body .shop-store-name {
  font-size: 0.86rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.branch-tab-body .shop-store-location {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.3;
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.branch-tab-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(18, 18, 18, 0.82);
  color: #fff;
}

.branch-tab-badge.is-live {
  color: #166534;
  background: rgba(220, 252, 231, 0.95);
}

.branch-tab-badge.is-hidden {
  color: #57534e;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(18, 18, 18, 0.08);
}

.branch-tab-status {
  font-weight: 600;
  opacity: 0.85;
}

.branch-visibility-btn,
.branch-add-btn,
.branch-delete-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--panel);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  cursor: pointer;
  box-shadow: none;
  transition: background 140ms ease, border-color 140ms ease, color 140ms ease, opacity 140ms ease;
}

.branch-visibility-btn:hover:not(:disabled),
.branch-add-btn:hover,
.branch-delete-btn:hover {
  background: var(--mist);
  border-color: rgba(18, 18, 18, 0.14);
}

.branch-visibility-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.branch-visibility-btn.is-branch-hidden {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.branch-visibility-btn.is-branch-hidden:hover:not(:disabled) {
  background: var(--primary-dark);
  border-color: var(--primary-dark);
  color: #fff;
}

.branch-add-btn {
  color: var(--muted);
}

.branch-add-icon {
  display: inline-grid;
  place-items: center;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.06);
  color: var(--text);
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1;
}

.branch-delete-btn {
  color: var(--danger);
  border-color: rgba(180, 74, 63, 0.22);
  background: #fff;
}

.branch-delete-btn:hover {
  background: var(--danger-bg);
  border-color: rgba(180, 74, 63, 0.35);
}

.portal-app-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
  border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.portal-app-icon svg {
  width: 1em;
  height: 1em;
}

.portal-app-icon--sm {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  font-size: 14px;
}

.portal-app-icon--md {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  font-size: 20px;
}

.portal-app-icon--lg {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  font-size: 22px;
}

.portal-app-icon.hidden {
  display: none;
}

.topbar-app-icons {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

.branch-hours-status {
  margin-top: 6px !important;
  font-weight: 600;
  color: var(--ink, #121212);
}

.branch-hours-days {
  display: grid;
  gap: 8px;
}

.branch-hours-day {
  display: grid;
  grid-template-columns: minmax(4.5rem, 0.9fr) minmax(5.5rem, 1fr) auto minmax(5.5rem, 1fr);
  gap: 8px;
  align-items: center;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--mist, #f5f4f2);
}

.branch-hours-day.is-enabled {
  background: #fff;
}

.branch-hours-day-name {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.86rem;
  font-weight: 600;
}

.branch-hours-day input[type='time'] {
  width: 100%;
  min-height: 34px;
  padding: 4px 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 0.84rem;
}

.branch-hours-day input[type='time']:disabled {
  opacity: 0.45;
  background: transparent;
}

.branch-hours-to {
  font-size: 0.78rem;
  color: var(--muted);
  text-align: center;
}

@media (max-width: 560px) {
  .branch-hours-day {
    grid-template-columns: 1fr 1fr;
  }

  .branch-hours-day-name {
    grid-column: 1 / -1;
  }

  .branch-hours-to {
    display: none;
  }
}

.branch-golive-checklist {
  margin-top: 6px !important;
  color: #8a4b00 !important;
  font-weight: 600;
}

.category-hint {
  margin: -6px 0 14px;
}

.media-preview-row {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 14px;
  align-items: start;
  margin-bottom: 14px;
}

.media-preview {
  width: 96px;
  height: 96px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--mist);
}

.media-preview.is-empty {
  background:
    linear-gradient(160deg, #fff, var(--mist));
}

.media-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-menu-media-btn {
  position: relative;
}

.shop-menu-media-btn video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-menu-media-count {
  position: absolute;
  top: 6px;
  right: 6px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
}

.media-fields {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.file-upload-label input[type="file"] {
  display: block;
  width: 100%;
  margin-top: 6px;
  font: inherit;
}

.shop-store-name {
  margin: 0;
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text);
}

.shop-menu-section {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.price-input-wrap {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--mist, #f5efe6);
}

.price-prefix {
  display: grid;
  place-items: center;
  min-width: 2.4rem;
  padding: 0 8px;
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-weight: 700;
  border-right: 1px solid var(--border);
}

.price-input-wrap input {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.service-schedule-block {
  margin: 0.5rem 0 0.75rem;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--bg, #f3f3f4));
}

.service-schedule-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.6rem;
  margin-bottom: 0.5rem;
  flex-wrap: wrap;
}

.service-schedule-head h4 {
  margin: 0;
  font-size: 0.9rem;
}

.service-schedule-head .muted-line {
  font-size: 0.78rem;
}

.service-schedule-week-nav {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.service-schedule-week-nav .secondary-btn {
  min-height: 30px;
  padding: 4px 8px;
  font-size: 0.8rem;
}

.service-schedule-week-label {
  margin: 0;
  min-width: 8.5rem;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 600;
}

.service-schedule-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0 0 8px;
  font-size: 0.72rem;
  color: var(--muted);
}

.service-schedule-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.service-slot-swatch {
  display: inline-block;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 3px;
  border: 1px solid rgba(18, 18, 18, 0.12);
}

.service-slot-swatch.is-available {
  background: #dcfce7;
  border-color: #86efac;
}

.service-slot-swatch.is-unavailable {
  background: #f5f5f4;
}

.service-slot-swatch.is-booked {
  background: #ffedd5;
  border-color: #fdba74;
}

.service-schedule-grid {
  overflow: auto;
  max-height: min(38vh, 280px);
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.service-schedule-grid-inner {
  min-width: 520px;
}

.service-schedule-row {
  display: grid;
  grid-template-columns: 48px repeat(var(--schedule-days, 7), minmax(0, 1fr));
  gap: 3px;
  padding: 2px 4px;
  border-bottom: 1px solid rgba(18, 18, 18, 0.05);
}

.service-schedule-row--head {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
  border-bottom: 1px solid var(--border);
  padding-top: 5px;
  padding-bottom: 5px;
}

.service-schedule-time-label {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 3px;
  font-size: 0.62rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.service-schedule-day-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  font-size: 0.66rem;
  color: var(--muted);
}

.service-schedule-day-head strong {
  color: var(--text);
  font-size: 0.72rem;
}

.service-schedule-cell {
  appearance: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  min-height: 30px;
  padding: 3px 2px;
  border: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 6px;
  background: #fafaf9;
  color: var(--muted);
  font: inherit;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}

.service-schedule-cell-time {
  display: none;
  font-size: 0.62rem;
}

.service-schedule-cell-state {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.service-schedule-cell.is-unavailable:hover {
  border-color: rgba(18, 18, 18, 0.18);
  background: #f5f5f4;
  color: var(--text);
}

.service-schedule-cell.is-available {
  background: #ecfdf3;
  border-color: #86efac;
  color: #166534;
}

.service-schedule-cell.is-available:hover {
  background: #dcfce7;
}

.service-schedule-cell.is-booked {
  background: #ffedd5;
  border-color: #fdba74;
  color: #9a3412;
  cursor: not-allowed;
  opacity: 0.95;
}

.service-schedule-cell.is-past {
  background: #f5f5f4;
  border-color: rgba(18, 18, 18, 0.06);
  color: #a8a29e;
  cursor: not-allowed;
  opacity: 0.7;
}

.service-schedule-cell.is-past .service-schedule-cell-state {
  font-weight: 600;
}

.service-schedule-staff-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0 0 0.5rem;
}

.service-schedule-staff-tabs.hidden {
  display: none;
}

.service-schedule-staff-tab {
  appearance: none;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 5.5rem;
  padding: 0.3rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel, #fff);
  color: var(--text);
  font: inherit;
  cursor: pointer;
}

.service-schedule-staff-tab:hover {
  border-color: rgba(18, 18, 18, 0.22);
}

.service-schedule-staff-tab.is-active {
  border-color: var(--ink, #111);
  box-shadow: inset 0 0 0 1px var(--ink, #111);
}

.service-schedule-staff-tab span:first-child {
  font-size: 0.78rem;
  font-weight: 650;
}

.service-schedule-staff-tab-meta {
  font-size: 0.64rem;
  color: var(--muted);
}

.service-staff-block {
  margin: 0 0 12px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 8px;
}

.service-staff-head h4 {
  margin: 0 0 2px;
  font-size: 0.9rem;
}

.service-staff-head .muted-line {
  font-size: 0.78rem;
}

.service-staff-list {
  display: grid;
  gap: 6px;
}

.service-staff-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--mist, #f5f4f2);
}

.service-staff-card-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.service-staff-card-copy strong {
  font-size: 0.84rem;
}

.service-staff-card-copy span {
  font-size: 0.74rem;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.service-staff-card .secondary-btn {
  min-height: 30px;
  padding: 4px 8px;
  font-size: 0.78rem;
}

.service-staff-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 8px;
  align-items: end;
}

.service-staff-form label {
  margin: 0;
  font-size: 0.8rem;
}

.service-staff-form input {
  padding: 8px 10px;
  font-size: 0.86rem;
}

.service-staff-form .secondary-btn {
  min-height: 36px;
  padding: 6px 10px;
  font-size: 0.82rem;
}

@media (max-width: 900px) {
  .service-staff-form {
    grid-template-columns: 1fr;
  }

  .service-staff-form .secondary-btn {
    width: 100%;
  }
}

.book-service-staff {
  border: 0;
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
}

.book-service-staff legend {
  font-weight: 700;
  font-size: 0.78rem;
  margin-bottom: 0.3rem;
  padding: 0;
  color: var(--ink, #111);
}

.book-service-staff-list {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.35rem;
  overflow-x: auto;
  padding-bottom: 2px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.book-service-staff-option {
  appearance: none;
  flex: 0 0 auto;
  border: 1px solid var(--border, #d6d3d1);
  border-radius: 999px;
  background: var(--panel, #fff);
  color: var(--text);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  padding: 0.35rem 0.7rem;
  min-height: 2rem;
  cursor: pointer;
  white-space: nowrap;
}

.book-service-staff-option.is-selected {
  border-color: var(--ink, #111);
  box-shadow: inset 0 0 0 1px var(--ink, #111);
  background: color-mix(in srgb, var(--ink, #111) 6%, #fff);
}

.service-schedule-list {
  display: none;
}

.booking-board-card {
  display: grid;
  gap: 0.35rem;
  padding: 0.9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--border, #d6d3d1) 85%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--accent, #0f766e) 8%);
}

.booking-board-card h4 {
  margin: 0;
  font-size: 1rem;
}

.booking-board-card .booking-board-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  font-size: 0.86rem;
  color: var(--muted, #6b7280);
}

.booking-board-card .booking-board-customer {
  font-size: 0.9rem;
}

.book-service-backdrop {
  padding: 0.5rem;
  align-items: center;
}

.book-service-modal {
  width: min(44rem, calc(100vw - 1rem));
  max-height: min(100dvh - 1rem, 100vh - 1rem);
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0.75rem 0.85rem 0.7rem;
  margin: 0;
  box-sizing: border-box;
}

.book-service-form,
.book-service-modal .panel-form.book-service-form {
  flex: 1 1 auto;
  min-height: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.book-service-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  flex: 0 0 auto;
  margin: 0;
}

.book-service-modal-heading {
  min-width: 0;
}

.book-service-modal-head h3 {
  margin: 0;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.book-service-modal-head .muted-line {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  line-height: 1.3;
}

.book-service-close-x {
  min-height: 2rem;
  padding: 0.25rem 0.65rem;
  font-size: 0.8rem;
}

.book-service-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  overflow: hidden;
}

.book-service-step-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--muted, #6b7280);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.book-service-slots {
  border: 0;
  margin: 0;
  padding: 0.55rem 0.6rem 0.6rem;
  border-radius: 14px;
  background: color-mix(in srgb, var(--mist, #f5f4f2) 88%, #fff);
  border: 1px solid var(--border, rgba(18, 18, 18, 0.08));
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  overflow: hidden;
}

.book-service-slots-hint {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.25;
}

.book-service-slot-filters {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  flex: 0 0 auto;
}

.book-service-range-tabs {
  display: none;
}

.book-service-range-tabs.hidden,
.book-service-range-tabs[hidden] {
  display: none !important;
}

.book-service-range-tab {
  appearance: none;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 600;
  min-height: 28px;
  cursor: pointer;
}

.book-service-range-tab.active {
  background: var(--panel, #fff);
  color: var(--ink, #111);
}

.book-service-period-nav {
  display: grid;
  grid-template-columns: 2rem 1fr 2rem;
  gap: 0.35rem;
  align-items: center;
}

.book-service-period-nav .secondary-btn {
  min-width: 0;
  width: 2rem;
  min-height: 2rem;
  padding: 0;
  font-size: 1rem;
  font-weight: 650;
  border-radius: 8px;
  line-height: 1;
}

.book-service-period-nav .secondary-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.book-service-period-label {
  margin: 0;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 650;
  color: var(--text);
  line-height: 1.2;
}

.book-service-day-chips {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.28rem;
  overflow: visible;
  padding: 0;
}

.book-service-day-chips.hidden {
  display: none;
}

.book-service-day-chip {
  appearance: none;
  flex: none;
  display: grid;
  gap: 0.05rem;
  justify-items: center;
  align-content: center;
  width: 100%;
  min-width: 0;
  min-height: 2.55rem;
  padding: 0.28rem 0.1rem;
  border: 1px solid var(--border, #d6d3d1);
  border-radius: 10px;
  background: #fff;
  color: var(--text);
  font: inherit;
  text-align: center;
  cursor: pointer;
}

.book-service-day-chip:hover:not(:disabled) {
  border-color: rgba(18, 18, 18, 0.28);
}

.book-service-day-chip.is-active {
  border-color: var(--ink, #111);
  box-shadow: inset 0 0 0 1px var(--ink, #111);
  background: color-mix(in srgb, var(--ink, #111) 92%, #fff);
  color: #fff;
}

.book-service-day-chip.is-empty,
.book-service-day-chip:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  background: color-mix(in srgb, var(--mist, #f5f4f2) 70%, #fff);
}

.book-service-day-chip-weekday {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.book-service-day-chip-date {
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.1;
}

.book-service-day-chip-label,
.book-service-day-chip-meta {
  display: none;
}

.book-service-times-block {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  overflow: hidden;
}

.book-service-times-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.book-service-slot-day-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--ink, #111);
  text-align: right;
}

.book-service-slot-day-label.is-prompt {
  color: var(--muted);
  font-weight: 560;
}

.book-service-slot-list {
  display: grid;
  gap: 0.3rem;
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: auto;
  padding: 0 1px 2px 0;
  align-content: start;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.book-service-slot-list--times,
.book-service-slot-calendar {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.3rem;
}

.book-service-slot {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 2.35rem;
  text-align: center;
  border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
  border-radius: 10px;
  padding: 0.3rem 0.2rem;
  background: color-mix(in srgb, var(--panel) 94%, #dcfce7);
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}

.book-service-slot.service-schedule-cell {
  display: grid;
  place-items: center;
  min-height: 2.35rem;
  padding: 0.3rem 0.2rem;
  gap: 0;
}

.book-service-slot-day {
  display: none;
}

.book-service-slot-time {
  font-size: 0.86rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.book-service-slot:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--brand) 42%, var(--line));
  background: color-mix(in srgb, var(--panel) 88%, #bbf7d0);
}

.book-service-slot.is-selected {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--line));
  background: color-mix(in srgb, var(--brand) 18%, var(--panel));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 35%, transparent);
}

.book-service-slot.is-booked,
.book-service-slot:disabled {
  opacity: 1;
  cursor: not-allowed;
  background: color-mix(in srgb, var(--panel) 92%, #fecaca);
  border-color: color-mix(in srgb, #f87171 35%, var(--line));
  color: color-mix(in srgb, var(--ink) 70%, #7f1d1d);
}

.book-service-slot .service-schedule-cell-state {
  display: none;
}

#book-service-slots-empty {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink, #111);
}

.book-service-details {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  flex: 0 0 auto;
}

.book-service-details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem 0.55rem;
}

.book-service-details-grid label {
  display: grid;
  gap: 0.2rem;
  font-size: 0.78rem;
  font-weight: 600;
  min-width: 0;
}

.book-service-details-grid input {
  min-height: 2.15rem;
  padding: 0.35rem 0.55rem;
  font-size: 0.88rem;
}

.book-service-modal-foot {
  flex: 0 0 auto;
  display: grid;
  gap: 0.35rem;
  padding-top: 0.15rem;
  border-top: 1px solid color-mix(in srgb, var(--border, #d6d3d1) 80%, transparent);
}

.book-service-total {
  margin: 0;
  font-weight: 650;
  font-size: 0.84rem;
}

.book-service-modal-foot .modal-actions {
  margin: 0;
  gap: 0.45rem;
}

.book-service-modal-foot .modal-actions .primary-btn,
.book-service-modal-foot .modal-actions .secondary-btn {
  min-height: 2.35rem;
}

@media (min-width: 900px) {
  .book-service-modal {
    width: min(48rem, calc(100vw - 2rem));
  }

  .book-service-slot-list--times,
  .book-service-slot-calendar {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .book-service-backdrop {
    padding: 0.35rem;
  }

  .book-service-modal {
    width: min(100%, calc(100vw - 0.7rem));
    max-height: min(100dvh - 0.7rem, 100vh - 0.7rem);
    border-radius: 16px;
    padding: 0.65rem 0.7rem 0.6rem;
  }

  .book-service-day-chips {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.2rem;
  }

  .book-service-day-chip {
    min-height: 2.35rem;
    border-radius: 8px;
    padding: 0.2rem 0.05rem;
  }

  .book-service-day-chip-weekday {
    font-size: 0.56rem;
  }

  .book-service-day-chip-date {
    font-size: 0.78rem;
  }

  .book-service-slot-list--times,
  .book-service-slot-calendar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .book-service-slot,
  .book-service-slot.service-schedule-cell {
    min-height: 2.15rem;
  }

  .book-service-slot-time {
    font-size: 0.8rem;
  }

  .book-service-details-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem 0.4rem;
  }

  .service-schedule-head {
    flex-direction: column;
  }
}

@media (max-width: 420px) {
  .book-service-details-grid {
    grid-template-columns: 1fr 1fr;
  }

  .book-service-slot-list--times,
  .book-service-slot-calendar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .book-service-modal-head h3 {
    font-size: 0.98rem;
  }
}

@media (max-height: 760px) {
  .book-service-modal {
    padding: 0.55rem 0.65rem 0.5rem;
  }

  .book-service-form,
  .book-service-modal .panel-form.book-service-form {
    gap: 0.4rem;
  }

  .book-service-modal-body,
  .book-service-slots {
    gap: 0.35rem;
  }

  .book-service-day-chip {
    min-height: 2.2rem;
  }

  .book-service-slot,
  .book-service-slot.service-schedule-cell {
    min-height: 2rem;
  }

  .book-service-details-grid input {
    min-height: 2rem;
    padding: 0.28rem 0.45rem;
  }
}

/* —— Customer shop — bright white storefront —— */
.app.shop-surface .topbar {
  margin-bottom: 10px;
  align-items: center;
}

.app.shop-surface .topbar .secondary-btn {
  display: none;
}

.app.shop-surface .topbar h2 {
  margin: 0;
  font-size: 1.25rem;
  letter-spacing: -0.03em;
}

.app.shop-surface #view-subtitle {
  font-size: 0.86rem;
  margin: 2px 0 0;
}

@keyframes shopFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.shop-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
  position: sticky;
  top: 8px;
  z-index: 5;
  padding: 8px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
}

.shop-toolbar--browse {
  flex-wrap: nowrap;
  gap: 0.55rem;
  justify-content: space-between;
}

.shop-toolbar--browse.is-search-open {
  justify-content: flex-start;
}

.shop-icon-btn {
  appearance: none;
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.55rem;
  height: 2.55rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.05);
}

.shop-icon-btn:hover {
  background: var(--mist);
}

.shop-icon-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ink, #111) 28%, transparent);
  outline-offset: 2px;
}

.shop-icon-btn .shop-icon {
  display: grid;
  place-items: center;
  width: 1.2rem;
  height: 1.2rem;
}

.shop-icon-btn .shop-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.shop-toolbar--browse .shop-search-field--expandable {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

/* Desktop / non-personal: always show the search field; hide the icon toggle. */
.shop-toolbar--browse .shop-search-toggle {
  display: none;
}

.shop-toolbar--browse.is-search-open .shop-search-toggle {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.shop-cart-btn.shop-icon-btn {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.shop-cart-btn.shop-icon-btn:hover {
  background: #2a2a2a;
}

.shop-cart-count {
  position: absolute;
  top: -0.2rem;
  right: -0.2rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  border: 1px solid rgba(18, 18, 18, 0.12);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.15rem;
  text-align: center;
}

.shop-cart-btn.shop-icon-btn .shop-cart-count {
  background: #fff;
  color: var(--ink);
}

.banner-shop-icon-btn {
  appearance: none;
  position: relative;
  display: none;
  place-items: center;
  flex: 0 0 auto;
  width: 2.45rem;
  height: 2.45rem;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.banner-shop-icon-btn.hidden {
  display: none !important;
}

.banner-shop-icon {
  display: grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
}

.banner-shop-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.banner-shop-cart-count {
  position: absolute;
  top: -0.15rem;
  right: -0.1rem;
  min-width: 1.05rem;
  height: 1.05rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--ink, #121212);
  color: #fff;
  font-size: 0.64rem;
  font-weight: 700;
  line-height: 1.05rem;
  text-align: center;
}

.banner-shop-cart-count.hidden {
  display: none;
}

.banner-shop-tools {
  display: none;
  align-items: center;
  gap: 0.65rem 0.85rem;
  min-width: 0;
}

.banner-shop-tools.hidden {
  display: none !important;
}

.banner-shop-title {
  display: none;
  flex: 0 0 auto;
  margin: 0;
  color: #f5f5f6;
  font-family: var(--font-display, inherit);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  white-space: nowrap;
}

.banner-shop-search-field {
  display: none;
  flex: 0 1 14rem;
  width: 14rem;
  max-width: min(14rem, 28vw);
  margin: 0;
  min-width: 0;
}

.banner-shop-search-field.hidden {
  display: none !important;
}

.banner-shop-search-field input {
  width: 100%;
  margin: 0;
  padding: 0.5rem 0.75rem;
  border: 1px solid rgba(245, 245, 246, 0.22);
  border-radius: 10px;
  background: rgba(245, 245, 246, 0.08);
  color: #f5f5f6;
  font: inherit;
  font-size: 0.88rem;
  line-height: 1.2;
  box-sizing: border-box;
}

.banner-shop-search-field input::placeholder {
  color: rgba(245, 245, 246, 0.48);
}

.banner-shop-search-field input:focus {
  outline: none;
  border-color: rgba(245, 245, 246, 0.4);
  background: rgba(245, 245, 246, 0.12);
}

/* Personal desktop Shop: search + Ask + cart sit with the premium ribbon tools */
body.personal-account.shop-ribbon-desktop .banner-shop-tools:not(.hidden) {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  display: inline-flex;
  flex: 0 0 auto;
  justify-content: flex-end;
  align-items: center;
  gap: 0.55rem;
  z-index: auto;
  max-width: none;
  margin-left: auto;
  padding: 0.2rem;
  border-radius: 14px;
  background: rgba(18, 18, 18, 0.035);
  border: 1px solid rgba(18, 18, 18, 0.06);
}

body.personal-account.shop-ribbon-desktop .banner-shop-title {
  /* Section label lives on the Shop ribbon tab. */
  display: none;
}

body.personal-account.shop-ribbon-desktop .banner-shop-ask-btn:not(.hidden) {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 2.35rem;
  padding: 0 0.85rem 0 0.7rem;
  border: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 11px;
  background: #17171a;
  color: #f5f5f6;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  cursor: pointer;
  transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
  box-shadow: 0 6px 16px rgba(18, 18, 18, 0.16);
}

body.personal-account.shop-ribbon-desktop .banner-shop-ask-btn:hover,
body.personal-account.shop-ribbon-desktop .banner-shop-ask-btn:focus-visible {
  background: #2a2a2e;
  outline: none;
  transform: translateY(-1px);
}

body.personal-account.shop-ribbon-desktop .banner-shop-ask-btn.is-active {
  background: #111114;
  box-shadow: inset 0 0 0 1px rgba(245, 245, 246, 0.18);
}

body.personal-account.shop-ribbon-desktop .banner-shop-ask-icon {
  width: 1.05rem;
  height: 1.05rem;
  display: inline-grid;
  place-items: center;
}

body.personal-account.shop-ribbon-desktop .banner-shop-ask-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

body.personal-account.shop-ribbon-desktop .banner-shop-ask-label {
  line-height: 1;
}

.banner-shop-ask-btn.hidden {
  display: none !important;
}

body.personal-account.shop-ribbon-desktop .banner-shop-search-field:not(.hidden) {
  display: block;
  flex: 0 1 17rem;
  width: 17rem;
  max-width: min(17rem, 32vw);
}

body.personal-account.shop-ribbon-desktop .banner-shop-cart-btn:not(.hidden) {
  display: inline-grid;
  color: #17171a;
  background: #fff;
  border-color: rgba(18, 18, 18, 0.12);
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 11px;
}

body.personal-account.shop-ribbon-desktop .banner-shop-cart-btn:hover,
body.personal-account.shop-ribbon-desktop .banner-shop-cart-btn:focus-visible {
  background: rgba(18, 18, 18, 0.06);
  border-color: rgba(18, 18, 18, 0.22);
  outline: none;
}

body.personal-account.shop-ribbon-desktop .banner-shop-cart-count:not(.hidden) {
  background: #17171a;
  color: #f5f5f6;
}

body.personal-account.shop-ribbon-desktop .topbar {
  display: none;
}

body.personal-account.shop-ribbon-desktop .shop-menu .shop-menu-toolbar {
  display: none;
}

/* Personal Shop: leave stores via browser/history back — hide the in-menu Back control. */
body.personal-account.shop-surface .shop-back-btn {
  display: none !important;
}

.shop-location-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  margin: -4px 0 12px;
  padding: 0 2px;
}

.shop-location-status {
  margin: 0;
  flex: 1 1 180px;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.shop-location-btn {
  flex: 0 0 auto;
  border: 1px solid var(--border);
  background: var(--mist);
  color: var(--text);
  border-radius: 999px;
  padding: 6px 12px;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  cursor: pointer;
}

.shop-location-btn:hover {
  background: var(--cream-soft);
}

.shop-location-btn:disabled {
  opacity: 0.7;
  cursor: wait;
}

.shop-location-prompt {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}

.shop-location-prompt-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(18, 18, 18, 0.42);
  cursor: pointer;
}

.shop-location-prompt-card {
  position: relative;
  z-index: 1;
  width: min(100%, 22rem);
  padding: 1.15rem 1.15rem 1rem;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(18, 18, 18, 0.22);
  color: var(--text, #121212);
}

.shop-location-prompt-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 750;
  letter-spacing: -0.02em;
}

.shop-location-prompt-copy {
  margin: 0.55rem 0 0;
  color: var(--muted, #5c5c63);
  font-size: 0.92rem;
  line-height: 1.45;
}

.shop-location-prompt-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
  margin-top: 1.1rem;
}

.shop-location-prompt-actions .primary-btn,
.shop-location-prompt-actions .secondary-btn {
  min-height: 2.5rem;
}

.shop-store-meta {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--text);
  line-height: 1.3;
}

.shop-menu-more {
  grid-column: 1 / -1;
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 8px 4px 4px;
}

.shop-menu-more-copy {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.shop-menu-more-btn {
  min-width: 10rem;
}

.shop-search-field {
  flex: 1 1 200px;
  margin: 0;
}

.shop-search-field input {
  width: 100%;
  border-radius: 11px;
  border: 1px solid var(--border);
  background: var(--mist);
  padding: 9px 12px;
  color: var(--text);
  font-size: 0.9rem;
}

.shop-search-field input:focus {
  outline: none;
  background: #fff;
  border-color: rgba(18, 18, 18, 0.28);
  box-shadow: 0 0 0 3px var(--primary-soft);
}

.shop-cart-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  background: var(--ink);
  color: #fff;
  border-radius: 11px;
  padding: 8px 12px;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--shadow);
}

.shop-cart-btn:hover {
  background: #2a2a2a;
}

.shop-back-btn {
  border: 0;
  background: var(--mist);
  color: var(--text);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  padding: 8px 10px;
  border-radius: 10px;
  cursor: pointer;
  white-space: nowrap;
}

.shop-back-btn:hover {
  background: var(--cream-soft);
}

.shop-menu-title {
  margin: 0;
  /* Ecosystem brand face (DM Sans) — same as store names across TuMicha surfaces. */
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #fff;
  min-width: 0;
  line-height: 1.12;
  text-wrap: balance;
}

.shop-menu-banner {
  --shop-banner-ink: #f7f7f8;
  --shop-banner-muted: rgba(247, 247, 248, 0.78);
  position: relative;
  display: block;
  isolation: isolate;
  margin: 0 0 16px;
  min-height: 220px;
  border-radius: 18px;
  overflow: hidden;
  border: 0;
  background: #1c1c1f;
  box-shadow: none;
  animation: shopMenuBannerIn 480ms cubic-bezier(0.22, 1, 0.36, 1);
}

.shop-menu-banner-video,
.shop-menu-banner-still {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: 1;
  /* Keep the full uploaded frame visible — never crop creatives. */
  object-fit: contain;
  object-position: center;
  background: #0f0f11;
  display: block;
}

.shop-menu-banner.has-video {
  width: 100%;
  min-height: 220px;
  height: auto;
  /* Do not lock aspect-ratio / max-height here — that clips store details. */
}

.shop-menu-banner-video.hidden,
.shop-menu-banner-still.hidden {
  display: none;
}

.shop-menu-banner-tumicha-ad {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: end start;
  padding: 22px;
  background:
    radial-gradient(120% 90% at 18% 12%, rgba(255, 255, 255, 0.2), transparent 52%),
    linear-gradient(145deg, #0f766e 0%, #115e59 42%, #0b1220 100%);
  overflow: hidden;
}

.shop-menu-banner-tumicha-ad.hidden {
  display: none;
}

.shop-menu-banner-tumicha-ad-glow {
  position: absolute;
  width: 58%;
  height: 70%;
  right: -8%;
  top: -18%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.28), transparent 68%);
  animation: shopMenuTumichaGlow 7s ease-in-out infinite;
}

.shop-menu-banner-tumicha-ad-copy {
  position: relative;
  z-index: 1;
  color: #f7f7f8;
  max-width: 16rem;
  animation: shopMenuTumichaCopy 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.shop-menu-banner-tumicha-kicker {
  margin: 0 0 0.3rem;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.82;
}

.shop-menu-banner-tumicha-title {
  margin: 0;
  font-family: var(--font-display, inherit);
  font-size: clamp(1.35rem, 3.6vw, 1.9rem);
  font-weight: 750;
  letter-spacing: -0.04em;
  line-height: 1.1;
}

.shop-menu-banner-ad-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.45);
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.shop-menu-banner-ad-badge.is-just-ad {
  letter-spacing: 0.04em;
  text-transform: none;
}

.shop-menu-banner-ad-badge.hidden {
  display: none;
}

/* —— Mobile ad fullscreen viewer (single-stage pager) —— */
.ad-fullscreen-viewer {
  position: fixed;
  inset: 0;
  z-index: 140;
  width: 100%;
  height: 100%;
  background: #0a0a0c;
  color: #f7f7f8;
  overflow: hidden;
  overscroll-behavior: none;
}

.ad-fullscreen-viewer.hidden {
  display: none !important;
}

.ad-fullscreen-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  touch-action: none;
  background: #0a0a0c;
}

.ad-fullscreen-deck {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #0a0a0c;
}

.ad-fullscreen-pane {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #0a0a0c;
  will-change: transform, opacity;
  transform: translate3d(0, 0, 0);
  opacity: 1;
  z-index: 0;
  pointer-events: none;
}

.ad-fullscreen-pane.is-active {
  z-index: 1;
}

.ad-fullscreen-pane.is-incoming {
  z-index: 0;
}

.ad-fullscreen-pane.is-animating {
  transition:
    transform 0.3s cubic-bezier(0.22, 0.9, 0.28, 1),
    opacity 0.3s ease;
}

/* Scrims travel with each pane so details stay readable while sliding. */
.ad-fullscreen-pane::before,
.ad-fullscreen-pane::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  z-index: 2;
  pointer-events: none;
}

.ad-fullscreen-pane::before {
  top: 0;
  height: min(34%, 11rem);
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.34) 55%,
    rgba(0, 0, 0, 0) 100%
  );
}

.ad-fullscreen-pane::after {
  bottom: 0;
  height: min(52%, 18rem);
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.45) 42%,
    rgba(0, 0, 0, 0.78) 100%
  );
}

.ad-fullscreen-pane.is-active .ad-fullscreen-chrome,
.ad-fullscreen-pane.is-active .ad-fullscreen-social,
.ad-fullscreen-pane.is-active .ad-fullscreen-offer-actions {
  pointer-events: auto;
}

.ad-fullscreen-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #0a0a0c;
}

/* Keep the full creative inside the viewport (no spill). */
.ad-fullscreen-video,
.ad-fullscreen-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
  display: block;
  background: #0a0a0c;
  pointer-events: none;
}

.ad-fullscreen-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(247, 247, 248, 0.55);
}

.ad-fullscreen-badge {
  position: absolute;
  top: calc(12px + env(safe-area-inset-top, 0px));
  left: 14px;
  z-index: 4;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  pointer-events: none;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.ad-fullscreen-badge.is-just-ad {
  letter-spacing: 0.04em;
  text-transform: none;
}

.ad-fullscreen-close {
  appearance: none;
  position: absolute;
  top: calc(10px + env(safe-area-inset-top, 0px));
  right: 12px;
  z-index: 5;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.96);
  color: #121212;
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(0, 0, 0, 0.12);
}

.ad-fullscreen-advertiser {
  position: absolute;
  top: calc(14px + env(safe-area-inset-top, 0px));
  left: 64px;
  right: 60px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  max-width: calc(100% - 8.5rem);
  min-width: 0;
  width: fit-content;
  padding: 0.28rem 0.75rem 0.28rem 0.28rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.72);
  color: #f7f7f8;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: none;
}

.ad-fullscreen-advertiser.hidden {
  display: none !important;
}

.ad-fullscreen-advertiser-logo {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 750;
}

.ad-fullscreen-advertiser-logo.has-image {
  background: #fff;
}

.ad-fullscreen-advertiser-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ad-fullscreen-advertiser-name {
  min-width: 0;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ad-fullscreen-chrome {
  position: absolute;
  left: 14px;
  right: 4.75rem;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 4;
  display: grid;
  gap: 0.55rem;
  pointer-events: none;
}

.ad-fullscreen-offer {
  display: grid;
  gap: 0.35rem;
  max-width: 22rem;
  padding: 0.7rem 0.8rem 0.75rem;
  border-radius: 16px;
  background: rgba(0, 0, 0, 0.66);
  color: #f7f7f8;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ad-fullscreen-offer.hidden {
  display: none !important;
}

.ad-fullscreen-offer-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.ad-fullscreen-offer-price {
  margin: 0;
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: #fff;
}

.ad-fullscreen-offer-price.hidden {
  display: none !important;
}

.ad-fullscreen-offer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.2rem;
}

.ad-fullscreen-social {
  position: absolute;
  right: 12px;
  bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
  z-index: 4;
  display: grid;
  gap: 1rem;
  justify-items: center;
}

.ad-fullscreen-swipe-hint {
  position: absolute;
  left: 50%;
  bottom: calc(0.55rem + env(safe-area-inset-bottom, 0px));
  z-index: 3;
  transform: translateX(-50%);
  margin: 0;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.72);
  color: #f7f7f8;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  pointer-events: none;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.ad-fullscreen-swipe-hint.hidden {
  display: none !important;
}

.ad-fullscreen-viewer.has-many-ads .ad-fullscreen-swipe-hint:not(.hidden) {
  animation: ad-fullscreen-hint-fade 2.8s ease forwards;
}

@keyframes ad-fullscreen-hint-fade {
  0%,
  55% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

body.ad-fullscreen-open,
body.ad-comments-open {
  overflow: hidden;
}

body.ad-fullscreen-open .business-mobile-nav {
  visibility: hidden;
  pointer-events: none;
}

body.ad-comments-open .ad-fullscreen-stage {
  touch-action: none;
  pointer-events: none;
}

/* —— Ad comments popup —— */
.ad-comments-popup {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}

.ad-comments-popup.hidden {
  display: none !important;
}

.ad-comments-popup-backdrop {
  appearance: none;
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(10, 10, 12, 0.55);
  cursor: pointer;
}

.ad-comments-popup-card {
  position: relative;
  z-index: 1;
  width: min(32rem, 100%);
  max-height: min(72vh, 36rem);
  display: grid;
  grid-template-rows: auto 1fr auto;
  border-radius: 18px 18px 0 0;
  background: #fff;
  color: #121212;
  box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.28);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  animation: ad-comments-sheet-in 0.22s ease-out;
}

@keyframes ad-comments-sheet-in {
  from {
    transform: translateY(12%);
    opacity: 0.85;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.ad-comments-popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 1rem 0.7rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border, #d6d3d1) 80%, transparent);
}

.ad-comments-popup-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 750;
  letter-spacing: -0.02em;
}

.ad-comments-popup-close {
  appearance: none;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--surface, #f3f3f4) 88%, #111 12%);
  color: #121212;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.ad-comments-popup-list {
  list-style: none;
  margin: 0;
  padding: 0.75rem 1rem;
  overflow: auto;
  display: grid;
  gap: 0.75rem;
  align-content: start;
  min-height: 8rem;
}

.ad-comments-popup-item {
  display: grid;
  gap: 0.55rem;
  font-size: 0.92rem;
  line-height: 1.35;
}

.ad-comments-popup-item-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 0.65rem;
  align-items: start;
}

.ad-comments-popup-item-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.ad-comments-popup-item strong {
  font-weight: 750;
  letter-spacing: -0.01em;
}

.ad-comments-popup-item-copy > span {
  color: color-mix(in srgb, #121212 78%, transparent);
  word-break: break-word;
}

.ad-comments-popup-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.15rem;
}

.ad-comments-popup-text-btn {
  appearance: none;
  border: 0;
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  color: #6b7280;
  background: transparent;
  cursor: pointer;
}

.ad-comments-popup-text-btn:hover,
.ad-comments-popup-text-btn:focus-visible {
  color: #121212;
}

.ad-comments-popup-text-btn-danger:hover,
.ad-comments-popup-text-btn-danger:focus-visible {
  color: #b42318;
}

.ad-comments-popup-replies {
  list-style: none;
  margin: 0;
  padding: 0 0 0 0.95rem;
  display: grid;
  gap: 0.65rem;
  border-left: 2px solid color-mix(in srgb, var(--border, #d6d3d1) 85%, transparent);
}

.ad-comments-popup-item.is-reply {
  gap: 0.35rem;
}

.ad-comments-popup-like {
  appearance: none;
  border: 0;
  margin: 0;
  padding: 0.15rem 0.2rem;
  display: inline-grid;
  justify-items: center;
  gap: 0.1rem;
  align-self: center;
  font: inherit;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  color: #6b7280;
  background: transparent;
  cursor: pointer;
}

.ad-comments-popup-like-icon {
  width: 1.2rem;
  height: 1.2rem;
  display: grid;
  place-items: center;
}

.ad-comments-popup-like-icon svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.ad-comments-popup-like-icon .icon-filled {
  display: none;
}

.ad-comments-popup-like.is-active .icon-outline {
  display: none;
}

.ad-comments-popup-like.is-active .icon-filled {
  display: block;
}

.ad-comments-popup-like.is-active {
  color: #ff2d55;
}

.ad-comments-popup-like:disabled {
  opacity: 0.65;
  cursor: wait;
}

.ad-comments-popup-like [data-comment-like-count] {
  font-variant-numeric: tabular-nums;
  min-width: 0.9rem;
  text-align: center;
}

.ad-comments-popup-empty {
  margin: 1.25rem 0;
  text-align: center;
  color: var(--muted, #6b7280);
  font-size: 0.92rem;
}

.ad-comments-popup-form {
  display: grid;
  gap: 0.45rem;
  padding: 0.75rem 1rem 0.95rem;
  border-top: 1px solid color-mix(in srgb, var(--border, #d6d3d1) 80%, transparent);
  background: #fff;
}

.ad-comments-reply-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.35rem 0.55rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface, #f3f3f4) 82%, #fff);
}

.ad-comments-reply-bar.hidden {
  display: none !important;
}

.ad-comments-reply-bar-label {
  margin: 0;
  min-width: 0;
  font-size: 0.78rem;
  color: #6b7280;
}

.ad-comments-reply-bar-label strong {
  color: #121212;
  font-weight: 700;
}

.ad-comments-reply-bar-cancel {
  appearance: none;
  border: 0;
  margin: 0;
  padding: 0.15rem 0.35rem;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  color: #121212;
  background: transparent;
  cursor: pointer;
  flex: 0 0 auto;
}

.ad-comments-popup-compose {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.45rem;
  align-items: center;
}

.ad-comments-popup-input {
  min-width: 0;
  border: 1px solid var(--border, #d6d3d1);
  border-radius: 999px;
  padding: 0.55rem 0.9rem;
  font: inherit;
  font-size: 0.92rem;
  color: #121212;
  background: color-mix(in srgb, var(--surface, #f3f3f4) 70%, #fff);
}

.ad-comments-popup-input::placeholder {
  color: var(--muted, #6b7280);
}

.ad-comments-popup-submit {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 750;
  color: #fff;
  background: var(--ink, #111);
  cursor: pointer;
}

.ad-comments-popup-submit:disabled {
  opacity: 0.65;
  cursor: wait;
}

@media (min-width: 901px) {
  .ad-comments-popup {
    align-items: center;
    padding: 1.25rem;
  }

  .ad-comments-popup-card {
    border-radius: 16px;
    max-height: min(70vh, 34rem);
    animation: none;
  }
}

@keyframes shopMenuTumichaGlow {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
    opacity: 0.85;
  }
  50% {
    transform: translate(-6%, 8%) scale(1.08);
    opacity: 1;
  }
}

@keyframes shopMenuTumichaCopy {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes shopMenuBannerIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.shop-menu-banner-cover {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-height: 100%;
  background:
    radial-gradient(120% 90% at 12% 18%, rgba(255, 255, 255, 0.18), transparent 55%),
    linear-gradient(155deg, #2a2a2e 0%, #141416 58%, #0f0f11 100%);
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.shop-menu-banner.has-video .shop-menu-banner-cover,
.shop-menu-banner.has-tumicha-ad .shop-menu-banner-cover {
  opacity: 0.28;
}

.shop-menu-banner.has-cover .shop-menu-banner-cover,
.shop-menu-banner-cover.has-image {
  min-height: 100%;
}

.shop-menu-banner:hover .shop-menu-banner-cover.has-image {
  transform: scale(1.05);
}

.shop-menu-banner-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(12, 12, 14, 0.08) 0%, rgba(12, 12, 14, 0.18) 38%, rgba(12, 12, 14, 0.78) 100%),
    linear-gradient(90deg, rgba(12, 12, 14, 0.42) 0%, rgba(12, 12, 14, 0.08) 58%, transparent 100%);
}

.shop-menu-banner-initial {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--font-display, inherit);
  font-size: clamp(2.8rem, 8vw, 4.5rem);
  font-weight: 750;
  letter-spacing: -0.06em;
  color: rgba(247, 247, 248, 0.28);
}

.shop-menu-banner-body {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px 16px;
  align-items: end;
  min-height: 220px;
  padding: 22px 22px 20px;
  background: transparent;
}

.shop-menu-banner-copy {
  min-width: 0;
  display: grid;
  gap: 0.35rem;
  color: var(--shop-banner-ink);
}

.shop-menu-banner-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--shop-banner-muted);
}

.shop-menu-banner-kicker.hidden {
  display: none;
}

.shop-menu-banner-meta {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.35;
  color: var(--shop-banner-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.shop-menu-banner-meta.hidden {
  display: none;
}

.shop-menu-banner-meta.muted-line {
  color: var(--shop-banner-muted);
}

.shop-menu-toolbar .shop-search-field-compact {
  flex: 1 1 180px;
  min-width: 0;
}

.shop-menu-toolbar .shop-search-field--expandable {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.shop-menu-logo {
  flex: 0 0 auto;
  width: 76px;
  height: 76px;
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.88);
  background: #fff;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
  align-self: end;
  z-index: 2;
}

.shop-menu-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  background: #fff;
  padding: 5px;
  box-sizing: border-box;
}

.shop-menu-logo.hidden {
  display: none;
}

.shop-menu-banner:not(.has-cover) .shop-menu-banner-cover {
  display: block;
}

.shop-menu-banner:not(.has-logo) .shop-menu-banner-body {
  grid-template-columns: minmax(0, 1fr);
}

.shop-menu-banner:not(.has-logo) .shop-menu-logo {
  display: none;
}

.shop-store-grid {
  display: grid;
  /* All stores directory: three storefronts per row (overridden by storefront styles). */
  grid-template-columns: repeat(var(--sf-grid-columns, 3), minmax(0, 1fr));
  gap: 12px;
}

/* Desktop personal Shop home: marketplace heading above the storefront grid. */
.shop-marketplace-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin: 4px 0 18px;
  padding: 0 2px 14px;
  border-bottom: 1px solid rgba(18, 18, 18, 0.08);
}

.shop-marketplace-header.hidden {
  display: none !important;
}

.shop-marketplace-header-copy {
  min-width: 0;
  flex: 1;
}

.shop-marketplace-title {
  margin: 0;
  /* Match the TuMicha Go ribbon wordmark. */
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--text);
}

.shop-marketplace-subtitle {
  margin: 6px 0 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--muted, #5c5c5c);
}

.shop-marketplace-subtitle.hidden {
  display: none !important;
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid {
  --sf-grid-columns: 5;
  grid-template-columns: repeat(var(--sf-grid-columns, 5), minmax(0, 1fr));
  gap: 18px 16px;
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid .shop-store-card {
  border-radius: 14px;
  border-color: rgba(18, 18, 18, 0.08);
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.04);
  background: #fff;
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid .shop-store-card:hover {
  transform: translateY(-4px);
  border-color: rgba(18, 18, 18, 0.14);
  box-shadow: 0 12px 28px rgba(18, 18, 18, 0.1);
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid .shop-store-cover {
  aspect-ratio: var(--sf-media-aspect, 1 / 1);
  min-height: 0;
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid .shop-store-body {
  padding: 10px 11px 12px;
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid .shop-store-name {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid .shop-store-meta {
  font-size: 0.78rem;
  color: var(--muted, #5c5c5c);
}

/* Tablet landscape ecommerce storefront grid (portrait uses mobile View-all grid). */
@media (min-width: 701px) and (max-width: 1024px) and (orientation: landscape) {
  body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid {
    --sf-grid-columns: 4;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px 12px;
  }
}

.shop-popular {
  position: relative;
  margin: 0 0 14px;
  padding: 2px 0 4px;
}

.shop-popular.hidden {
  display: none !important;
}

@keyframes shopBrowseBannerPulse {
  0%,
  100% {
    background-position: 100% 0;
  }
  50% {
    background-position: 0 0;
  }
}

.shop-popular-ribbon,
.shop-popular-ribbon.hidden {
  display: none !important;
}

.shop-popular-nav {
  display: none;
  position: absolute;
  top: 0;
  right: 2px;
  z-index: 1;
  align-items: center;
  gap: 6px;
}

@media (hover: hover) and (pointer: fine) {
  .shop-popular.has-popular-overflow .shop-popular-nav {
    display: inline-flex;
  }
}

.shop-popular-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  margin: 0 -2px;
  padding: 2px 2px 4px;
}

.shop-popular-viewport::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.shop-popular-track {
  display: flex;
  gap: 8px;
  width: max-content;
  align-items: flex-start;
  padding: 2px 2px 4px;
}

.shop-popular-bubble {
  flex: 0 0 auto;
  width: 4.25rem;
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  scroll-snap-align: start;
  text-align: center;
}

.shop-popular-bubble:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ink, #111) 35%, transparent);
  outline-offset: 3px;
  border-radius: 12px;
}

.shop-popular-avatar {
  width: 4rem;
  height: 4rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--mist, #f5f4f2);
  border: 2px solid color-mix(in srgb, var(--ink, #121212) 78%, #d4a853);
  box-shadow: 0 3px 10px rgba(18, 18, 18, 0.08);
}

.shop-popular-bubble.has-status .shop-popular-avatar {
  border: 3px solid transparent;
  padding: 2px;
  overflow: hidden;
  background:
    linear-gradient(var(--mist, #f5f4f2), var(--mist, #f5f4f2)) padding-box,
    var(--status-ring, conic-gradient(from -90deg, #f0b429, #e85d4c, #c43b6e, #f0b429)) border-box;
  box-shadow: 0 4px 14px rgba(232, 93, 76, 0.22);
}

.shop-popular-bubble.has-status.status-viewed .shop-popular-avatar {
  box-shadow: 0 2px 8px rgba(18, 18, 18, 0.08);
}

.shop-popular-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

.shop-popular-initial {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: color-mix(in srgb, var(--ink, #111) 55%, transparent);
}

.shop-popular-name {
  margin: 0;
  width: 100%;
  font-size: 0.68rem;
  font-weight: 650;
  line-height: 1.2;
  color: var(--text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.shop-store-card {
  display: flex;
  flex-direction: column;
  text-align: left;
  border: 1px solid var(--border);
  padding: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow);
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.shop-store-card:hover {
  transform: translateY(-3px);
  border-color: rgba(18, 18, 18, 0.14);
  box-shadow: var(--shadow-lift);
}

.shop-store-kind {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.82);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.shop-store-kind--closed {
  background: rgba(120, 53, 15, 0.9);
}

.shop-store-card.is-closed .shop-store-cover {
  filter: grayscale(0.35);
}

.shop-store-card.is-closed .shop-store-name {
  color: var(--muted);
}

.shop-menu-banner.is-closed .shop-menu-banner-meta,
.shop-menu-banner-meta.is-closed {
  color: #8a4b00;
  font-weight: 600;
}

.shop-store-cover {
  position: relative;
  display: block;
  width: 100%;
  flex: 0 0 auto;
  /* Keep a real height on mobile WebKit: aspect-ratio alone can collapse to 0
     inside flex <button> cards when the only child is position:absolute. */
  aspect-ratio: 4 / 3;
  min-height: 140px;
  height: auto;
  background: linear-gradient(160deg, #ffffff 0%, var(--mist) 52%, var(--cream-soft) 100%);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.shop-store-cover-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  display: block;
}

.shop-store-initial {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.03em;
  z-index: 1;
}

.shop-store-body {
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: #fff;
}

.shop-store-title-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
}

.shop-store-title-row h3 {
  margin: 0;
  font-size: 0.95rem;
  letter-spacing: -0.03em;
  color: var(--text);
}

.shop-store-from {
  white-space: nowrap;
  color: var(--ink);
  font-weight: 700;
  font-size: 0.9rem;
}

.shop-store-meta,
.shop-store-location {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.3;
}

.shop-store-location {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- Named storefront browse layouts (data-storefront-style-layout) ---- */
:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout] .shop-store-card {
  background: var(--sf-card-bg, #fff);
  border: var(--sf-card-border, 1px solid var(--border));
  border-radius: var(--sf-card-radius, var(--radius-lg));
  box-shadow: var(--sf-card-shadow, none);
  padding: var(--sf-card-padding, 0);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout] .shop-store-card:hover {
  box-shadow: var(--sf-card-shadow, none);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout] .shop-store-cover {
  aspect-ratio: var(--sf-media-aspect, 4 / 3);
  border-radius: var(--sf-media-radius, 0);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout] .shop-store-name {
  font-size: var(--sf-title-size, 0.95rem);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout] .shop-store-meta {
  font-size: var(--sf-meta-size, 0.78rem);
}

/* Cover Stack — default vertical tile (tokens only; structure matches base card) */
#catalogue-list[data-storefront-style-layout='cover-stack'] {
  grid-template-columns: repeat(var(--sf-grid-columns, 3), minmax(0, 1fr));
  gap: 12px;
}

/* Hero Overlay — portrait cover with copy on the image */
#catalogue-list[data-storefront-style-layout='hero-overlay'] {
  grid-template-columns: repeat(var(--sf-grid-columns, 2), minmax(0, 1fr));
  gap: 14px;
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout='hero-overlay'] .shop-store-card {
  position: relative;
  overflow: hidden;
  background: var(--sf-card-bg, #1a1a1a);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout='hero-overlay'] .shop-store-cover {
  width: 100%;
  min-height: 180px;
  aspect-ratio: var(--sf-media-aspect, 3 / 4);
  border-radius: var(--sf-media-radius, 18px);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout='hero-overlay'] .shop-store-body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  /* Tall dark scrim so names stay readable on bright / busy cover photos. */
  padding: 3.25rem 0.9rem 0.95rem;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(8, 8, 8, 0.35) 28%,
    rgba(8, 8, 8, 0.82) 62%,
    rgba(8, 8, 8, 0.94) 100%
  );
  color: #fff;
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout='hero-overlay'] .shop-store-name,
:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout='hero-overlay'] .shop-store-meta {
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

:is(#catalogue-list, #shop-type-collections)[data-storefront-style-layout='hero-overlay'] .shop-store-meta {
  color: rgba(255, 255, 255, 0.92);
}

#shop-type-collections[data-storefront-style-layout='hero-overlay'] .shop-store-card {
  width: var(--sf-card-width, 12rem);
}

.shop-category-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 0 0 12px;
  overflow-x: auto;
  padding-bottom: 2px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

/* In-menu product collections only — browse type-rows use .shop-type-collections. */
#shop-collections.shop-collections {
  display: grid;
  gap: 1rem;
  margin: 0 0 1rem;
  /* Keep the last rows clear of the floating cart / bottom nav while scrolling. */
  padding-bottom: 4.5rem;
}

#shop-collections.shop-collections.hidden,
.shop-collections.hidden {
  display: none;
}

.shop-collections {
  display: grid;
  gap: 1rem;
  margin: 0 0 1rem;
}

/* Browse: type-grouped storefront rows reuse collection chrome + store cards. */
.shop-type-collections {
  padding-bottom: 0.5rem;
}

.shop-type-collections .shop-type-collection-track {
  align-items: stretch;
}

/* Desktop / tablet: style-token widths. Mobile peek override is below. */
.shop-type-collections .shop-store-card {
  flex: 0 0 auto;
  width: var(--sf-card-width, 11rem);
  max-width: none;
  scroll-snap-align: start;
  box-sizing: border-box;
}

.shop-collection-row {
  display: grid;
  gap: 0.45rem;
}

.shop-collection-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.shop-collection-row-head h3 {
  margin: 0;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}

.shop-collection-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  flex: 0 0 auto;
}

.shop-collection-view-all {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ink, #111);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  padding: 0.2rem 0.1rem;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}

.shop-collection-view-all:hover,
.shop-collection-view-all:focus-visible {
  text-decoration: underline;
  outline: none;
}

.shop-collection-nav {
  display: none;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.shop-all-stores-bar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  margin: 0 0 0.85rem;
}

.shop-all-stores-bar.hidden {
  display: none;
}

.shop-all-stores-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.15rem;
}

.shop-all-stores-bar--tab .shop-all-stores-back {
  display: none;
}

.shop-all-stores-search {
  display: none;
  margin: 0;
}

.shop-all-stores-search input {
  width: 100%;
  height: 2.55rem;
  margin: 0;
  padding: 0 1rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  font-size: 1rem;
  line-height: 1.2;
}

.shop-all-stores-search input::placeholder {
  color: var(--muted, #5c5c5c);
}

.shop-all-stores-search input:focus {
  outline: none;
  border-color: rgba(18, 18, 18, 0.28);
  box-shadow: 0 0 0 3px var(--primary-soft);
}

.shop-all-stores-back {
  width: 2.15rem;
  height: 2.15rem;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--ink, #111);
  cursor: pointer;
  padding: 0;
  font-size: 1.35rem;
  line-height: 1;
  flex: 0 0 auto;
}

.shop-all-stores-back span {
  display: block;
  transform: translateY(-0.05em);
}

.shop-all-stores-back:hover,
.shop-all-stores-back:focus-visible {
  border-color: color-mix(in srgb, var(--ink, #111) 28%, var(--border));
  background: color-mix(in srgb, var(--mist, #f5f4f2) 55%, #fff);
  outline: none;
}

.shop-all-stores-title {
  margin: 0;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
  font-weight: 700;
}

/* Personal Shop — TuMicha Ask open canvas (mirrors business Ask; separate API/state). */
.shop-assistant {
  display: none;
  position: relative;
  /* Chat chrome: /shared/ask-chat.css */
}

.shop-assistant.hidden {
  display: none !important;
}

@keyframes shop-assistant-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.shop-collection-arrow {
  width: 2.15rem;
  height: 2.15rem;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--ink, #111);
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.06);
  cursor: pointer;
  padding: 0;
  font-size: 1.35rem;
  line-height: 1;
  transition: background 140ms ease, border-color 140ms ease, opacity 140ms ease;
}

.shop-collection-arrow span {
  display: block;
  transform: translateY(-0.05em);
}

.shop-collection-arrow:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--ink, #111) 28%, var(--border));
  background: color-mix(in srgb, var(--mist, #f5f4f2) 55%, #fff);
}

.shop-collection-arrow:disabled {
  opacity: 0.35;
  cursor: default;
}

@media (hover: hover) and (pointer: fine) {
  .shop-collection-nav {
    display: inline-flex;
  }
}

.shop-collection-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0.15rem 0 0.35rem;
  margin: 0 -0.15rem;
  --shop-collection-gap: 0.75rem;
  /* pan-x alone blocks vertical page scroll when a gesture starts on a row.
     Allow pan-y so users can scroll down through multiple collection rows. */
  touch-action: pan-x pan-y;
}

.shop-collection-viewport::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.shop-collection-track {
  display: flex;
  gap: var(--shop-collection-gap, 0.75rem);
  width: max-content;
  padding: 0.15rem 0.15rem 0.25rem;
  align-items: stretch;
}

.shop-collection-card {
  flex: 0 0 auto;
  width: var(--ps-card-width, 9.5rem);
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 0.45rem;
  padding: var(--ps-card-padding, 0);
  border-radius: var(--ps-card-radius, 0);
  background: var(--ps-card-bg, transparent);
  border: var(--ps-card-border, none);
  box-shadow: var(--ps-card-shadow, none);
  scroll-snap-align: start;
  box-sizing: border-box;
}

.shop-collection-card-media {
  aspect-ratio: var(--ps-media-aspect, 1);
  width: 100%;
  border-radius: var(--ps-media-radius, 14px);
  overflow: hidden;
  background: var(--mist, #f5f4f2);
  display: grid;
  place-items: center;
  font-weight: 700;
  color: var(--muted);
  box-shadow: var(--ps-media-shadow, none);
}

.shop-collection-card-media .shop-menu-media-btn,
.shop-collection-card-media .shop-menu-fallback {
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.shop-collection-card-media .shop-menu-media-btn img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-collection-card-copy {
  display: grid;
  grid-template-rows: minmax(calc(1.25em * 2), auto) auto auto;
  gap: 0.25rem;
  align-content: start;
  min-height: 5.6rem;
}

.shop-collection-card-copy h4 {
  margin: 0;
  font-size: var(--ps-title-size, 0.86rem);
  line-height: 1.25;
  min-height: calc(1.25em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.shop-collection-card-copy strong {
  font-size: var(--ps-price-size, 0.84rem);
}

.shop-collection-card-copy .shop-add-btn {
  width: 100%;
  min-height: 2rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.8rem;
}

@keyframes shop-collection-search-bounce {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  18% {
    transform: translateY(-12px) scale(1.06);
  }
  36% {
    transform: translateY(0) scale(1);
  }
  54% {
    transform: translateY(-7px) scale(1.03);
  }
  72% {
    transform: translateY(0) scale(1);
  }
}

.shop-collection-card.is-search-hit {
  position: relative;
  z-index: 3;
  animation: shop-collection-search-bounce 0.95s cubic-bezier(0.34, 1.4, 0.64, 1);
  filter: drop-shadow(0 10px 18px rgba(18, 18, 18, 0.18));
}

@media (prefers-reduced-motion: reduce) {
  .shop-collection-card.is-search-hit {
    animation: none;
    outline: 2px solid color-mix(in srgb, var(--ink, #111) 55%, transparent);
    outline-offset: 3px;
  }
}

.shop-category-chips::-webkit-scrollbar {
  display: none;
}

.shop-chip {
  flex: 0 0 auto;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  border-radius: 999px;
  padding: 6px 11px;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--shadow);
}

.shop-chip:hover {
  background: var(--mist);
}

.shop-chip.active {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
  box-shadow: none;
}

.shop-menu-list,
.shop-menu-results.shop-menu-layout-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.shop-menu-results.shop-menu-layout-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  align-items: stretch;
  justify-content: stretch;
  width: 100%;
}

/* Floating storefront tiles — fill the row (Collections keep their own carousel) */
#shop-grid.ps-floating,
#shop-grid.ps-floating.shop-menu-layout-grid,
#shop-grid.ps-floating.shop-menu-layout-list,
#shop-grid.ps-floating.shop-menu-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.75rem;
  justify-content: stretch;
  align-items: start;
  width: 100%;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-list .shop-menu-item {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  gap: 0.45rem;
  width: 100%;
  max-width: none;
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: var(--ps-card-padding, 0);
  border-radius: var(--ps-card-radius, 0);
  background: var(--ps-card-bg, transparent);
  border: var(--ps-card-border, none);
  box-shadow: var(--ps-card-shadow, none);
  overflow: visible;
  box-sizing: border-box;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-item:hover {
  border-color: transparent;
  box-shadow: none;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-menu-media {
  order: -1;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ps-media-aspect, 1);
  border-radius: var(--ps-media-radius, 14px);
  border: 0;
  box-shadow: var(--ps-media-shadow, none);
  background: var(--mist, #f5f4f2);
  overflow: hidden;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-menu-copy {
  padding: 0;
  gap: 0.25rem;
  height: auto;
  min-height: 5.6rem;
  display: grid;
  grid-template-rows: minmax(calc(1.25em * 2), auto) auto;
  align-content: start;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-menu-copy h3 {
  font-size: var(--ps-title-size, 0.86rem);
  line-height: 1.25;
  min-height: calc(1.25em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-floating .shop-menu-section {
  display: none;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-menu-foot {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
  margin-top: 0;
  align-items: stretch;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-foot strong,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-menu-foot strong {
  font-size: var(--ps-price-size, 0.84rem);
}

:is(#shop-grid, #shop-collections).ps-floating .shop-menu-foot > span {
  display: none;
}

:is(#shop-grid, #shop-collections).ps-floating .shop-add-btn,
:is(#shop-grid, #shop-collections).ps-floating.shop-menu-layout-grid .shop-add-btn {
  width: 100%;
  min-height: 2rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.8rem;
}

/* ---- Named product style layouts (data-product-style-layout) ---- */

:is(#shop-grid, #shop-collections)[data-product-style-layout] .shop-menu-item:hover,
:is(#shop-grid, #shop-collections)[class*='ps-layout-'] .shop-menu-item:hover {
  box-shadow: var(--ps-card-shadow, none);
}

/* Photo Left — media leads on the left */
:is(#shop-grid, #shop-collections)[data-product-style-layout='photo-left'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-photo-left .shop-menu-item {
  grid-template-columns: var(--ps-media-size, 96px) 1fr;
  gap: 12px;
  align-items: center;
  padding: var(--ps-card-padding, 10px 12px);
  border-radius: var(--ps-card-radius, 14px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid var(--border));
  box-shadow: var(--ps-card-shadow, none);
  overflow: hidden;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='photo-left'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-photo-left .shop-menu-media {
  order: -1;
  width: var(--ps-media-size, 96px);
  height: var(--ps-media-size, 96px);
  border-radius: var(--ps-media-radius, 12px);
  border: 1px solid var(--border);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='photo-left'].shop-menu-layout-grid .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-photo-left.shop-menu-layout-grid .shop-menu-item {
  grid-template-columns: var(--ps-media-size, 96px) 1fr;
  grid-template-rows: none;
  padding: var(--ps-card-padding, 10px 12px);
  gap: 12px;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='photo-left'].shop-menu-layout-grid .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-photo-left.shop-menu-layout-grid .shop-menu-media {
  order: -1;
  width: var(--ps-media-size, 96px);
  height: var(--ps-media-size, 96px);
  aspect-ratio: auto;
  border-radius: var(--ps-media-radius, 12px);
  border: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

/* Cover Overlay — full-bleed photo with copy on the image */
#shop-grid[data-product-style-layout='cover-overlay'],
#shop-grid.ps-layout-cover-overlay,
#shop-grid[data-product-style-layout='cover-overlay'].shop-menu-layout-grid,
#shop-grid.ps-layout-cover-overlay.shop-menu-layout-grid,
#shop-grid[data-product-style-layout='cover-overlay'].ps-floating,
#shop-grid.ps-layout-cover-overlay.ps-floating {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(158px, 1fr));
  gap: 0.85rem;
  align-items: stretch;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'].ps-floating .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay.ps-floating .shop-menu-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  gap: 0;
  width: 100%;
  max-width: none;
  min-height: 0;
  aspect-ratio: var(--ps-media-aspect, 3 / 4);
  padding: 0;
  overflow: hidden;
  border-radius: var(--ps-card-radius, 16px);
  background: var(--ps-card-bg, #1a1a1a);
  border: var(--ps-card-border, none);
  box-shadow: var(--ps-card-shadow, none);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'].ps-floating .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay.ps-floating .shop-menu-media {
  position: absolute;
  inset: 0;
  order: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border: 0;
  border-radius: inherit;
  box-shadow: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-copy,
:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'].ps-floating .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay.ps-floating .shop-menu-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: grid;
  gap: 0.35rem;
  min-height: 0;
  padding: 2.75rem 0.8rem 0.8rem;
  background: linear-gradient(180deg, transparent 0%, rgba(10, 10, 10, 0.82) 58%);
  color: #fff;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-copy h3,
:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-foot strong,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-foot strong {
  color: #fff;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-section,
:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-desc,
:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-foot > span,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-foot > span {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='cover-overlay'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-cover-overlay .shop-menu-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.15rem;
  min-height: 0;
}

#shop-grid[data-product-style-layout='cover-overlay'] .shop-add-btn,
#shop-grid.ps-layout-cover-overlay .shop-add-btn {
  margin-left: auto;
  width: auto;
  min-width: 3.5rem;
  background: #fff;
  color: #121212;
  border-color: #fff;
}

/* Ticket Stub — cream dashed tray with left stub accent */
:is(#shop-grid, #shop-collections)[data-product-style-layout='ticket-stub'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-ticket-stub .shop-menu-item {
  grid-template-columns: 1fr var(--ps-media-size, 72px);
  gap: 12px;
  align-items: center;
  padding: var(--ps-card-padding, 10px 12px 10px 14px);
  border-radius: var(--ps-card-radius, 10px);
  background: var(--ps-card-bg, #fffdf6);
  border: var(--ps-card-border, 1.5px dashed rgba(18, 18, 18, 0.22));
  box-shadow: none;
  border-left: 5px solid #c4a35a;
  overflow: hidden;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='ticket-stub'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-ticket-stub .shop-menu-media {
  width: var(--ps-media-size, 72px);
  height: var(--ps-media-size, 72px);
  border-radius: var(--ps-media-radius, 8px);
  border: 1px solid rgba(18, 18, 18, 0.1);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='ticket-stub'] .shop-menu-foot strong,
:is(#shop-grid, #shop-collections).ps-layout-ticket-stub .shop-menu-foot strong {
  font-size: var(--ps-price-size, 1rem);
  letter-spacing: -0.02em;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='ticket-stub'].shop-menu-layout-grid .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-ticket-stub.shop-menu-layout-grid .shop-menu-item {
  grid-template-columns: 1fr var(--ps-media-size, 72px);
  grid-template-rows: none;
  padding: var(--ps-card-padding, 10px 12px 10px 14px);
  gap: 12px;
  border-left: 5px solid #c4a35a;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='ticket-stub'].shop-menu-layout-grid .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-ticket-stub.shop-menu-layout-grid .shop-menu-media {
  order: 0;
  width: var(--ps-media-size, 72px);
  height: var(--ps-media-size, 72px);
  aspect-ratio: auto;
  border-radius: var(--ps-media-radius, 8px);
  border: 1px solid rgba(18, 18, 18, 0.1);
}

/* Editorial Center — lookbook circle above centered copy */
#shop-grid[data-product-style-layout='editorial-center'],
#shop-grid.ps-layout-editorial-center,
#shop-grid[data-product-style-layout='editorial-center'].shop-menu-layout-grid,
#shop-grid.ps-layout-editorial-center.shop-menu-layout-grid,
#shop-grid[data-product-style-layout='editorial-center'].ps-floating,
#shop-grid.ps-layout-editorial-center.ps-floating {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(138px, 1fr));
  gap: 1rem 0.75rem;
  justify-content: stretch;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'].ps-floating .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center.ps-floating .shop-menu-item {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  justify-items: center;
  gap: 0.55rem;
  width: 100%;
  max-width: none;
  padding: var(--ps-card-padding, 0.35rem 0.25rem);
  background: transparent;
  border: none;
  box-shadow: none;
  text-align: center;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'].ps-floating .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center.ps-floating .shop-menu-media {
  order: -1;
  width: var(--ps-media-size, 7.25rem);
  height: var(--ps-media-size, 7.25rem);
  aspect-ratio: 1;
  border: 0;
  border-radius: var(--ps-media-radius, 999px);
  box-shadow: var(--ps-media-shadow, none);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-copy,
:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'].ps-floating .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center.ps-floating .shop-menu-copy {
  justify-items: center;
  align-items: center;
  text-align: center;
  min-height: 0;
  gap: 0.2rem;
  padding: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-copy h3 {
  font-size: var(--ps-title-size, 0.88rem);
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-section,
:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-desc,
:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-foot > span,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-foot > span {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='editorial-center'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-editorial-center .shop-menu-foot {
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  margin-top: 0.15rem;
  min-height: 0;
}

#shop-grid[data-product-style-layout='editorial-center'] .shop-add-btn,
#shop-grid.ps-layout-editorial-center .shop-add-btn {
  margin-left: 0;
  width: auto;
  min-width: 4.5rem;
}

#shop-collections[data-product-style-layout='editorial-center'] .shop-collection-card,
#shop-collections.ps-layout-editorial-center .shop-collection-card {
  width: var(--ps-card-width, 9rem);
  justify-items: center;
  text-align: center;
  gap: 0.55rem;
}

#shop-collections[data-product-style-layout='editorial-center'] .shop-collection-card-media,
#shop-collections.ps-layout-editorial-center .shop-collection-card-media {
  width: var(--ps-media-size, 7.25rem);
  height: var(--ps-media-size, 7.25rem);
  aspect-ratio: 1;
  border-radius: var(--ps-media-radius, 999px);
  justify-self: center;
}

#shop-collections[data-product-style-layout='editorial-center'] .shop-collection-card-copy,
#shop-collections.ps-layout-editorial-center .shop-collection-card-copy {
  justify-items: center;
  text-align: center;
  min-height: 0;
}

/* Dense Rail — text menu, media hidden, price rail on the right */
#shop-grid[data-product-style-layout='dense-rail'],
#shop-grid.ps-layout-dense-rail,
#shop-grid[data-product-style-layout='dense-rail'].shop-menu-layout-grid,
#shop-grid.ps-layout-dense-rail.shop-menu-layout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'].shop-menu-layout-grid .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail.shop-menu-layout-grid .shop-menu-item {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: none;
  gap: 0.85rem 1rem;
  align-items: start;
  width: 100%;
  min-height: 0;
  padding: var(--ps-card-padding, 0.85rem 0);
  border: none;
  border-bottom: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-item:hover,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-item:hover {
  border-color: transparent;
  border-bottom-color: rgba(18, 18, 18, 0.18);
  box-shadow: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-media {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-copy {
  display: contents;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-section {
  grid-column: 1;
  margin: 0 0 0.15rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-copy h3 {
  grid-column: 1;
  font-size: var(--ps-title-size, 1rem);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-desc {
  grid-column: 1;
  -webkit-line-clamp: 2;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-foot {
  grid-column: 2;
  grid-row: 1 / span 4;
  display: grid;
  justify-items: end;
  align-content: start;
  gap: 0.4rem;
  margin: 0;
  min-height: 0;
  min-width: 5.5rem;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-foot strong,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-foot strong {
  font-size: var(--ps-price-size, 1.05rem);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='dense-rail'] .shop-menu-foot > span,
:is(#shop-grid, #shop-collections).ps-layout-dense-rail .shop-menu-foot > span {
  display: none;
}

#shop-grid[data-product-style-layout='dense-rail'] .shop-add-btn,
#shop-grid.ps-layout-dense-rail .shop-add-btn {
  margin-left: 0;
  width: 100%;
  min-width: 0;
}

/* Shelf Stack — bordered tray, media on top, copy below */
#shop-grid[data-product-style-layout='shelf-stack'],
#shop-grid.ps-layout-shelf-stack,
#shop-grid[data-product-style-layout='shelf-stack'].shop-menu-layout-grid,
#shop-grid.ps-layout-shelf-stack.shop-menu-layout-grid,
#shop-grid[data-product-style-layout='shelf-stack'].ps-floating,
#shop-grid.ps-layout-shelf-stack.ps-floating {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(158px, 1fr));
  gap: 0.85rem;
  align-items: stretch;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'].ps-floating .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack.ps-floating .shop-menu-item {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  gap: 0;
  width: 100%;
  max-width: none;
  min-height: 0;
  height: 100%;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ps-card-radius, 14px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid rgba(18, 18, 18, 0.1));
  box-shadow: var(--ps-card-shadow, none);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'].ps-floating .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack.ps-floating .shop-menu-media {
  order: -1;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ps-media-aspect, 4 / 3);
  border: 0;
  border-bottom: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 0;
  box-shadow: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack .shop-menu-copy,
:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'].ps-floating .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack.ps-floating .shop-menu-copy {
  padding: 0.7rem 0.8rem 0.85rem;
  gap: 0.3rem;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'] .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack .shop-menu-section {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='shelf-stack'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-shelf-stack .shop-menu-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: auto;
  min-height: 0;
}

#shop-grid[data-product-style-layout='shelf-stack'] .shop-add-btn,
#shop-grid.ps-layout-shelf-stack .shop-add-btn {
  margin-left: auto;
  width: auto;
  min-width: 3.75rem;
}

/* Pill Strip — single-line round rows */
#shop-grid[data-product-style-layout='pill-strip'],
#shop-grid.ps-layout-pill-strip,
#shop-grid[data-product-style-layout='pill-strip'].shop-menu-layout-grid,
#shop-grid.ps-layout-pill-strip.shop-menu-layout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'].shop-menu-layout-grid .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip.shop-menu-layout-grid .shop-menu-item {
  grid-template-columns: var(--ps-media-size, 2.75rem) minmax(0, 1fr);
  grid-template-rows: none;
  align-items: center;
  gap: 0.65rem;
  min-height: 0;
  padding: var(--ps-card-padding, 0.4rem 0.5rem 0.4rem 0.4rem);
  border-radius: var(--ps-card-radius, 999px);
  background: var(--ps-card-bg, #f5f4f2);
  border: var(--ps-card-border, 1px solid rgba(18, 18, 18, 0.08));
  box-shadow: none;
  overflow: hidden;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'].shop-menu-layout-grid .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip.shop-menu-layout-grid .shop-menu-media {
  order: -1;
  width: var(--ps-media-size, 2.75rem);
  height: var(--ps-media-size, 2.75rem);
  aspect-ratio: 1;
  border-radius: var(--ps-media-radius, 999px);
  border: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-copy {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  padding: 0;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-copy h3 {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--ps-title-size, 0.88rem);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-section,
:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-desc,
:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-foot > span,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-foot > span {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='pill-strip'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-pill-strip .shop-menu-foot {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0 auto;
  min-height: 0;
}

#shop-grid[data-product-style-layout='pill-strip'] .shop-add-btn,
#shop-grid.ps-layout-pill-strip .shop-add-btn {
  margin-left: 0;
  min-width: 3.25rem;
  border-radius: 999px;
  padding: 0.35rem 0.7rem;
}

/* Split Panel — 50/50 photo | copy */
#shop-grid[data-product-style-layout='split-panel'],
#shop-grid.ps-layout-split-panel,
#shop-grid[data-product-style-layout='split-panel'].shop-menu-layout-grid,
#shop-grid.ps-layout-split-panel.shop-menu-layout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'].shop-menu-layout-grid .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-split-panel.shop-menu-layout-grid .shop-menu-item {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-rows: none;
  gap: 0;
  align-items: stretch;
  min-height: 9.5rem;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ps-card-radius, 16px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid rgba(18, 18, 18, 0.1));
  box-shadow: var(--ps-card-shadow, none);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'].shop-menu-layout-grid .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-split-panel.shop-menu-layout-grid .shop-menu-media {
  order: -1;
  width: 100%;
  height: 100%;
  min-height: 9.5rem;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-copy {
  padding: 0.9rem 1rem;
  gap: 0.35rem;
  justify-content: center;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-copy h3 {
  font-size: var(--ps-title-size, 1.05rem);
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-foot {
  margin-top: 0.45rem;
  min-height: 0;
}

#shop-grid[data-product-style-layout='split-panel'] .shop-add-btn,
#shop-grid.ps-layout-split-panel .shop-add-btn {
  margin-left: auto;
  width: auto;
}

@media (max-width: 560px) {
  :is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-item,
  :is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-item,
  :is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'].shop-menu-layout-grid .shop-menu-item,
  :is(#shop-grid, #shop-collections).ps-layout-split-panel.shop-menu-layout-grid .shop-menu-item {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  :is(#shop-grid, #shop-collections)[data-product-style-layout='split-panel'] .shop-menu-media,
  :is(#shop-grid, #shop-collections).ps-layout-split-panel .shop-menu-media {
    min-height: 0;
    aspect-ratio: var(--ps-media-aspect, 16 / 9);
    height: auto;
  }
}

/* Price Badge — square photo with price pill on the corner */
#shop-grid[data-product-style-layout='price-badge'],
#shop-grid.ps-layout-price-badge,
#shop-grid[data-product-style-layout='price-badge'].shop-menu-layout-grid,
#shop-grid.ps-layout-price-badge.shop-menu-layout-grid,
#shop-grid[data-product-style-layout='price-badge'].ps-floating,
#shop-grid.ps-layout-price-badge.ps-floating {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 0.85rem;
  align-items: stretch;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'].ps-floating .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-price-badge.ps-floating .shop-menu-item {
  position: relative;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  gap: 0;
  width: 100%;
  max-width: none;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ps-card-radius, 14px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid rgba(18, 18, 18, 0.08));
  box-shadow: var(--ps-card-shadow, none);
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'].ps-floating .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-price-badge.ps-floating .shop-menu-media {
  order: -1;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ps-media-aspect, 1);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-copy,
:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'].ps-floating .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-price-badge.ps-floating .shop-menu-copy {
  padding: 0.65rem 0.75rem 0.8rem;
  gap: 0.35rem;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-section,
:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-desc,
:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-foot > span,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-foot > span {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-foot {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.15rem;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='price-badge'] .shop-menu-foot strong,
:is(#shop-grid, #shop-collections).ps-layout-price-badge .shop-menu-foot strong {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  z-index: 2;
  margin: 0;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: #121212;
  font-size: var(--ps-price-size, 0.8rem);
  box-shadow: 0 2px 8px rgba(18, 18, 18, 0.12);
}

#shop-grid[data-product-style-layout='price-badge'] .shop-add-btn,
#shop-grid.ps-layout-price-badge .shop-add-btn {
  margin-left: 0;
  width: 100%;
}

/* Polaroid Frame — square photo + white caption band */
#shop-grid[data-product-style-layout='polaroid-frame'],
#shop-grid.ps-layout-polaroid-frame,
#shop-grid[data-product-style-layout='polaroid-frame'].ps-floating,
#shop-grid.ps-layout-polaroid-frame.ps-floating,
#shop-grid[data-product-style-layout='polaroid-frame'].shop-menu-layout-grid,
#shop-grid.ps-layout-polaroid-frame.shop-menu-layout-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 1rem 0.85rem;
  justify-content: stretch;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-item,
:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'].ps-floating .shop-menu-item,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame.ps-floating .shop-menu-item {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  gap: 0.55rem;
  width: 100%;
  max-width: none;
  padding: var(--ps-card-padding, 0.55rem 0.55rem 0.85rem);
  border-radius: var(--ps-card-radius, 4px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid rgba(18, 18, 18, 0.08));
  box-shadow: var(--ps-card-shadow, none);
  text-align: center;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-media,
:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'].ps-floating .shop-menu-media,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame.ps-floating .shop-menu-media {
  order: -1;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ps-media-aspect, 1);
  border: 0;
  border-radius: var(--ps-media-radius, 2px);
  box-shadow: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-copy,
:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'].ps-floating .shop-menu-copy,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame.ps-floating .shop-menu-copy {
  align-items: center;
  text-align: center;
  gap: 0.2rem;
  padding: 0 0.15rem;
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-copy h3,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-copy h3 {
  font-size: var(--ps-title-size, 0.86rem);
  min-height: 0;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-section,
:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-desc,
:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-foot > span,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-section,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-desc,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-foot > span {
  display: none;
}

:is(#shop-grid, #shop-collections)[data-product-style-layout='polaroid-frame'] .shop-menu-foot,
:is(#shop-grid, #shop-collections).ps-layout-polaroid-frame .shop-menu-foot {
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  margin-top: 0.15rem;
  min-height: 0;
}

#shop-grid[data-product-style-layout='polaroid-frame'] .shop-add-btn,
#shop-grid.ps-layout-polaroid-frame .shop-add-btn {
  margin-left: 0;
  width: auto;
  min-width: 4.25rem;
}

#shop-collections[data-product-style-layout='polaroid-frame'] .shop-collection-card,
#shop-collections.ps-layout-polaroid-frame .shop-collection-card {
  width: var(--ps-card-width, 10rem);
  gap: 0.55rem;
  padding: var(--ps-card-padding, 0.55rem 0.55rem 0.85rem);
  border-radius: var(--ps-card-radius, 4px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid rgba(18, 18, 18, 0.08));
  box-shadow: var(--ps-card-shadow, none);
  text-align: center;
}

#shop-collections[data-product-style-layout='polaroid-frame'] .shop-collection-card-media,
#shop-collections.ps-layout-polaroid-frame .shop-collection-card-media {
  aspect-ratio: var(--ps-media-aspect, 1);
  border-radius: var(--ps-media-radius, 2px);
  box-shadow: none;
}

#shop-collections[data-product-style-layout='polaroid-frame'] .shop-collection-card-copy,
#shop-collections.ps-layout-polaroid-frame .shop-collection-card-copy {
  justify-items: center;
  text-align: center;
  min-height: 0;
}

/* Desktop / tablet collection widths per product layout (list vs tile). */
#shop-collections[data-product-style-layout='menu-card'] .shop-collection-card,
#shop-collections[data-product-style-layout='photo-left'] .shop-collection-card,
#shop-collections[data-product-style-layout='ticket-stub'] .shop-collection-card,
#shop-collections[data-product-style-layout='pill-strip'] .shop-collection-card,
#shop-collections[data-product-style-layout='dense-rail'] .shop-collection-card,
#shop-collections[data-product-style-layout='split-panel'] .shop-collection-card,
#shop-collections.ps-layout-menu-card .shop-collection-card,
#shop-collections.ps-layout-photo-left .shop-collection-card,
#shop-collections.ps-layout-ticket-stub .shop-collection-card,
#shop-collections.ps-layout-pill-strip .shop-collection-card,
#shop-collections.ps-layout-dense-rail .shop-collection-card,
#shop-collections.ps-layout-split-panel .shop-collection-card {
  width: min(22rem, 82vw);
}

#shop-collections[data-product-style-layout='cover-overlay'] .shop-collection-card,
#shop-collections[data-product-style-layout='shelf-stack'] .shop-collection-card,
#shop-collections[data-product-style-layout='price-badge'] .shop-collection-card,
#shop-collections[data-product-style-layout='editorial-center'] .shop-collection-card,
#shop-collections[data-product-style-layout='polaroid-frame'] .shop-collection-card,
#shop-collections[data-product-style-layout='collection-float'] .shop-collection-card,
#shop-collections.ps-layout-cover-overlay .shop-collection-card,
#shop-collections.ps-layout-shelf-stack .shop-collection-card,
#shop-collections.ps-layout-price-badge .shop-collection-card,
#shop-collections.ps-layout-editorial-center .shop-collection-card,
#shop-collections.ps-layout-polaroid-frame .shop-collection-card,
#shop-collections.ps-layout-collection-float .shop-collection-card {
  width: min(11.5rem, 72vw);
}

/*
 * Collection carousels (storefront type rows + in-store Collections):
 * peek the next card so horizontal scroll is obvious.
 *   Phone (≤700px):           ~2.5 cards  →  card = (W - 2*gap) / 2.5
 *   Tablet portrait (701–1024): ~3.5 cards →  card = (W - 2*gap) / 3.5
 * Desktop (>1024) keeps style-token widths.
 */
@media (max-width: 1024px) {
  .shop-collection-viewport {
    container-type: inline-size;
    container-name: shop-collection;
    --shop-collection-visible: 2.5;
  }

  :is(#shop-collections, #shop-type-collections)
    .shop-collection-viewport
    .shop-collection-track
    > :is(.shop-collection-card, .shop-store-card, .shop-menu-item) {
    flex: 0 0
      calc(
        (
            100cqi - 2 * var(--shop-collection-gap, 0.75rem)
          ) / var(--shop-collection-visible, 2.5)
      );
    width: calc(
      (100cqi - 2 * var(--shop-collection-gap, 0.75rem)) / var(--shop-collection-visible, 2.5)
    );
    max-width: none;
    min-width: 0;
    box-sizing: border-box;
    scroll-snap-align: start;
  }

  @supports not (width: 1cqi) {
    :is(#shop-collections, #shop-type-collections)
      .shop-collection-viewport
      .shop-collection-track
      > :is(.shop-collection-card, .shop-store-card, .shop-menu-item) {
      flex-basis: calc(
        (100vw - 2.5rem - 1.5rem) / var(--shop-collection-visible, 2.5)
      );
      width: calc((100vw - 2.5rem - 1.5rem) / var(--shop-collection-visible, 2.5));
    }
  }
}

@media (min-width: 701px) and (max-width: 1024px) {
  .shop-collection-viewport {
    --shop-collection-visible: 3.5;
  }
}

#shop-collections .shop-collection-card.shop-menu-item {
  flex: 0 0 auto;
  scroll-snap-align: start;
  box-sizing: border-box;
}

#shop-collections .shop-collection-card.shop-menu-item .shop-menu-copy h3 {
  margin: 0;
}

.shop-layout-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--mist);
}

.shop-layout-btn {
  appearance: none;
  min-height: 30px;
  padding: 5px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  cursor: pointer;
}

.shop-layout-btn:hover {
  color: var(--text);
}

.shop-layout-btn.is-active {
  background: #fff;
  color: var(--ink);
  box-shadow: var(--shadow);
}

.shop-menu-item {
  display: grid;
  grid-template-columns: 1fr var(--ps-media-size, 88px);
  gap: 12px;
  align-items: center;
  padding: var(--ps-card-padding, 10px 12px);
  border-radius: var(--ps-card-radius, 12px);
  background: var(--ps-card-bg, #fff);
  border: var(--ps-card-border, 1px solid var(--border));
  box-shadow: var(--ps-card-shadow, none);
  transition: border-color 160ms ease, box-shadow 160ms ease;
  min-height: calc(var(--ps-media-size, 88px) + 20px);
  box-sizing: border-box;
  width: 100%;
}

.shop-menu-layout-grid .shop-menu-item {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  gap: 0;
  align-items: stretch;
  padding: 0;
  overflow: hidden;
  height: 100%;
  min-height: 0;
  width: 100%;
  box-sizing: border-box;
}

.shop-menu-item:hover {
  border-color: rgba(18, 18, 18, 0.14);
  box-shadow: var(--shadow-lift);
}

.shop-menu-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.shop-menu-layout-grid .shop-menu-copy {
  padding: 8px 10px 10px;
  gap: 3px;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.shop-menu-copy h3 {
  margin: 0;
  font-size: var(--ps-title-size, 0.95rem);
  letter-spacing: -0.02em;
  color: var(--text);
}

.shop-menu-layout-grid .shop-menu-copy h3 {
  font-size: 0.86rem;
  line-height: 1.25;
  min-height: calc(1.25em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.shop-menu-desc {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.shop-menu-layout-grid .shop-menu-desc {
  font-size: 0.74rem;
  line-height: 1.3;
  min-height: 1.3em;
  -webkit-line-clamp: 1;
}

.shop-menu-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 6px;
}

.shop-menu-layout-grid .shop-menu-foot {
  margin-top: auto;
  padding-top: 0;
  gap: 4px 8px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 4.25rem;
  align-content: end;
}

.shop-menu-layout-grid .shop-menu-foot > span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shop-menu-layout-grid .shop-menu-foot .shop-add-btn {
  grid-column: 1 / -1;
}

.shop-menu-foot strong {
  color: var(--ink);
  font-size: var(--ps-price-size, 0.92rem);
  font-weight: 700;
}

.shop-menu-layout-grid .shop-menu-foot strong {
  font-size: 0.86rem;
}

.shop-menu-foot span {
  color: var(--muted);
  font-size: 0.76rem;
}

.shop-add-btn {
  margin-left: auto;
  min-width: 64px;
  padding: 7px 11px;
  border-radius: 10px;
  font-size: 0.82rem;
}

.shop-menu-layout-grid .shop-add-btn {
  width: 100%;
  margin-left: 0;
  min-width: 0;
  padding: 6px 8px;
  font-size: 0.78rem;
}

.shop-menu-media {
  width: var(--ps-media-size, 88px);
  height: var(--ps-media-size, 88px);
  border-radius: var(--ps-media-radius, 12px);
  overflow: hidden;
  background: linear-gradient(160deg, #fff, var(--mist));
  border: 1px solid var(--border);
  position: relative;
}

.shop-menu-media:empty,
.shop-menu-item.no-media .shop-menu-media {
  display: none;
}

.shop-menu-layout-grid .shop-menu-media {
  order: -1;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ps-media-aspect, 4 / 3);
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--border);
  flex: 0 0 auto;
}

.shop-menu-slideshow,
.shop-menu-slideshow-track,
.shop-menu-slideshow-slide {
  width: 100%;
  height: 100%;
}

.shop-menu-slideshow {
  position: relative;
}

.shop-menu-slideshow-track {
  position: relative;
  overflow: hidden;
  border-radius: inherit;
}

.shop-menu-slideshow-slide {
  position: absolute;
  inset: 0;
  display: none;
}

.shop-menu-slideshow-slide.is-active {
  display: block;
  position: relative;
}

.shop-menu-slideshow-slide[hidden] {
  display: none !important;
}

.shop-menu-slideshow-slide img,
.shop-menu-slideshow-slide video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-menu-media-btn {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  position: relative;
}

.shop-menu-media-btn:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}

.shop-menu-media img,
.shop-menu-slideshow-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-menu-slideshow-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #121212;
  font-size: 0.95rem;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}

.shop-menu-slideshow-prev {
  left: 4px;
}

.shop-menu-slideshow-next {
  right: 4px;
}

.shop-menu-slideshow-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 4px;
  pointer-events: none;
}

.shop-menu-slideshow-dot {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
}

.shop-menu-slideshow-dot.is-active {
  background: #fff;
}

.shop-menu-layout-grid .shop-menu-slideshow-nav {
  width: 28px;
  height: 28px;
}

.menu-image-viewer {
  width: min(720px, 100%);
  max-height: min(92vh, 900px);
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: #fff;
  border-radius: 22px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

.menu-image-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.menu-image-toolbar h3 {
  margin: 0;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  color: var(--text);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.menu-image-close {
  flex-shrink: 0;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
  border-radius: 999px;
  padding: 8px 14px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.menu-media-stage-wrap {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 8px;
  align-items: center;
}

.menu-media-stage {
  position: relative;
  min-width: 0;
  min-height: 180px;
  border-radius: 16px;
  overflow: hidden;
  background: #111;
}

.menu-image-full {
  display: block;
  width: 100%;
  max-height: min(74vh, 720px);
  object-fit: contain;
  border-radius: 16px;
  background: linear-gradient(160deg, #f7f7f8, #ebebed);
}

.menu-image-full[hidden],
.menu-video-full[hidden] {
  display: none !important;
}

.menu-video-full {
  background: #111;
}

.menu-media-nav {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}

.menu-media-nav:disabled {
  opacity: 0.35;
  cursor: default;
}

.menu-media-nav[hidden] {
  display: none !important;
}

.menu-media-counter {
  margin: 0;
  text-align: center;
}

.menu-media-counter[hidden] {
  display: none !important;
}

.menu-image-backdrop {
  background: rgba(18, 18, 18, 0.72);
  padding: 20px;
  z-index: 55;
}

.shop-menu-fallback {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--muted);
}

.shop-empty-state {
  padding: 56px 20px;
  text-align: center;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: #fff;
  color: var(--muted);
  box-shadow: var(--shadow);
}

.shop-empty-state h4 {
  margin: 0 0 6px;
  color: var(--text);
  letter-spacing: -0.02em;
}

.shop-empty-state p {
  margin: 0;
}

.shop-floating-cart {
  position: fixed;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 0;
  border-radius: 999px;
  padding: 13px 20px;
  background: var(--ink);
  color: #fff;
  box-shadow: var(--shadow-lift);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  animation: shopCartIn 280ms ease;
}

@keyframes shopCartIn {
  from {
    opacity: 0;
    transform: translate(-50%, 10px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

.shop-floating-cart strong {
  color: #fff;
}

/* Native app shop/catalogue WebView — hide portal nav chrome (native tab bar is outside). */
html.native-shop-shell,
body.native-shop-shell {
  background: var(--bg, #ebe8e3);
}

body.native-shop-shell .sidebar,
body.native-shop-shell #portal-more,
body.native-shop-shell .portal-more {
  display: none !important;
}

/* Native shop WebView already has app chrome — hide duplicate portal Shop header. */
body.native-shop-shell.app.shop-surface .topbar,
body.native-shop-shell .app.shop-surface .topbar {
  display: none !important;
}

body.native-shop-shell .main {
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: max(10px, env(safe-area-inset-top, 0px));
}

/* Native shop WebView: same edge-to-edge storefront banners as phone browser. */
@media (max-width: 900px) {
  body.native-shop-shell.app.shop-surface .main,
  body.native-shop-shell .app.shop-surface .main {
    --shop-content-pad-x: 10px;
    padding-left: 0;
    padding-right: 0;
  }
}

body.native-shop-shell .shop-floating-cart {
  bottom: max(16px, env(safe-area-inset-bottom, 0px));
}

body.native-shop-shell .app {
  display: block !important;
  grid-template-columns: none !important;
  min-height: 100vh;
  min-height: 100dvh;
  padding-bottom: 0 !important;
  width: 100%;
  max-width: 100%;
}

body.native-shop-shell .auth-screen {
  /* If session injection failed, auth still fills the shell. */
  min-height: 100vh;
  min-height: 100dvh;
}

/* TuMicha Go auth WebView — same card as browser /portal/, no extra chrome. */
html.auth-only-shell,
body.auth-only-shell {
  background: var(--bg, #f3f3f4) !important;
}

body.auth-only-shell #app {
  display: none !important;
}

body.auth-only-shell .auth-screen {
  min-height: 100vh;
  min-height: 100dvh;
  padding: 16px;
  padding-bottom: max(24px, calc(16px + env(safe-area-inset-bottom, 0px)));
}

.view-refresh-btn {
  appearance: none;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 12px;
  background: #fff;
  color: var(--ink, #121212);
  cursor: pointer;
}

.view-refresh-btn.hidden {
  display: none !important;
}

.view-refresh-btn:hover:not(:disabled) {
  border-color: rgba(18, 18, 18, 0.22);
  background: #f6f6f7;
}

.view-refresh-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ink, #121212) 55%, transparent);
  outline-offset: 2px;
}

.view-refresh-btn:disabled {
  cursor: progress;
}

.view-refresh-icon {
  display: grid;
  place-items: center;
  width: 1.15rem;
  height: 1.15rem;
}

.view-refresh-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.view-refresh-btn.is-refreshing .view-refresh-icon,
.view-refresh-btn[aria-busy='true'] .view-refresh-icon {
  animation: view-refresh-spin 0.7s linear infinite;
}

@keyframes view-refresh-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Desktop-only: hide topbar Refresh on mobile / coarse touch — pull down instead. */
@media (max-width: 900px) {
  #refresh-btn,
  .view-refresh-btn {
    display: none !important;
  }
}

@media (hover: none) and (pointer: coarse) {
  #refresh-btn {
    display: none !important;
  }
}

/* TuMicha Go app: hide topbar Refresh — pull down to refresh instead. */
body.native-bridge #refresh-btn,
html.native-bridge #refresh-btn,
body.native-shop-shell #refresh-btn,
html.native-shop-shell #refresh-btn {
  display: none !important;
}

.native-pull-refresh {
  position: fixed;
  top: max(10px, env(safe-area-inset-top, 0px));
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  z-index: 80;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.88);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  box-shadow: 0 4px 16px rgba(18, 18, 18, 0.18);
}

.native-pull-refresh.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* PayFast amount confirmation (shown before redirect) */
.payfast-confirm-modal {
  max-width: 420px;
  text-align: center;
}

.payfast-confirm-amount {
  margin: 12px 0 8px;
  font-size: 2rem;
  font-weight: 750;
  letter-spacing: -0.03em;
  color: var(--text, #2a2927);
  line-height: 1.2;
}

/* Searching-for-driver popup (Activity after paid trip) */
.searching-driver-modal {
  max-height: min(72vh, 72dvh, 520px);
}

.searching-driver-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 8px 8px 4px;
}

.searching-driver-eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.searching-driver-panel h3 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--text, #2a2927);
}

.searching-driver-copy {
  margin: 0;
  max-width: 28rem;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--muted);
}

.searching-driver-route {
  margin: 4px 0 0;
  max-width: 28rem;
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--text, #2a2927);
}

.searching-driver-hint {
  margin: 10px 0 0;
  max-width: 28rem;
  font-size: 0.82rem;
  line-height: 1.4;
}

.searching-driver-radar {
  position: relative;
  width: 168px;
  height: 168px;
  margin: 10px 0 4px;
}

.searching-driver-radar-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(42, 41, 39, 0.12);
  animation: searching-driver-pulse 2.2s ease-out infinite;
}

.searching-driver-radar-ring:nth-child(2) {
  animation-delay: 0.55s;
}

.searching-driver-radar-ring:nth-child(3) {
  animation-delay: 1.1s;
}

.searching-driver-radar-core {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 54px;
  height: 54px;
  margin: -27px 0 0 -27px;
  border-radius: 50%;
  background: var(--mist, #f3f3f4);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  box-shadow: 0 6px 18px rgba(18, 18, 18, 0.08);
  animation: searching-driver-bob 1.6s ease-in-out infinite;
}

.searching-driver-radar-core span {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--text, #2a2927);
}

.searching-driver-dots {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  min-height: 1em;
}

.searching-driver-dots i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--text, #2a2927);
  opacity: 0.25;
  animation: searching-driver-dot 1.2s ease-in-out infinite;
}

.searching-driver-dots i:nth-child(2) {
  animation-delay: 0.2s;
}

.searching-driver-dots i:nth-child(3) {
  animation-delay: 0.4s;
}

.searching-driver-footer .sales-popup-actions {
  width: 100%;
}

.searching-driver-footer .sales-popup-action {
  width: 100%;
}

@keyframes searching-driver-pulse {
  0% {
    transform: scale(0.35);
    opacity: 0.7;
  }
  70% {
    opacity: 0.15;
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}

@keyframes searching-driver-bob {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

@keyframes searching-driver-dot {
  0%,
  100% {
    opacity: 0.2;
    transform: translateY(0);
  }
  50% {
    opacity: 0.85;
    transform: translateY(-2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .searching-driver-radar-ring,
  .searching-driver-radar-core,
  .searching-driver-dots i {
    animation: none;
  }

  .searching-driver-radar-ring {
    opacity: 0.25;
  }

  .searching-driver-radar-ring:nth-child(2) {
    transform: scale(0.7);
  }

  .searching-driver-radar-ring:nth-child(3) {
    transform: scale(0.45);
  }
}

/* Settings: Password / Logo / Operation / Verification / Security / Help */
#settings-mode-tabs.account-type-tabs {
  max-width: 760px;
  margin-inline: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#settings-mode-tabs.account-type-tabs[data-visible-count="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#settings-mode-tabs.account-type-tabs[data-visible-count="4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

#settings-mode-tabs.account-type-tabs[data-visible-count="5"] {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

#settings-mode-tabs.account-type-tabs[data-visible-count="6"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#settings-mode-tabs.account-type-tabs[data-visible-count="7"] {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

#settings-mode-tabs.account-type-tabs[data-visible-count="8"] {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.branding-logo-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.branding-logo-preview {
  flex: 0 0 auto;
  width: 88px;
  height: 88px;
  border-radius: 20px;
  overflow: hidden;
  background: var(--mist);
  border: 1px solid var(--border);
  box-shadow: 0 8px 20px rgba(18, 18, 18, 0.06);
}

.branding-logo-preview.is-empty {
  background:
    linear-gradient(145deg, #1c1c1e 0%, #3a3a3c 100%);
}

.branding-logo-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.branding-logo-fields {
  flex: 1 1 220px;
  display: grid;
  gap: 10px;
  min-width: 0;
}

.verification-banner {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--mist);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.45;
}

.verification-recommendations {
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--panel, #fff);
}

.verification-recommendations-welcome {
  margin: 0 0 10px;
  line-height: 1.45;
}

.verification-recommendations ol {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: 8px;
}

.verification-recommendations li p {
  margin: 4px 0 0;
  color: var(--muted);
}

.verification-checklist {
  margin: 0 0 16px;
  font-size: 0.9rem;
  color: var(--muted);
}

.verification-progress-panel {
  margin: 0 0 16px;
}

.verification-progress-card {
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--panel, #fff);
}

.verification-progress-card > p {
  margin: 0 0 8px;
}

.verification-system-decision {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(18, 18, 18, 0.05);
  font-size: 0.92rem;
}

.verification-progress {
  margin: 0 0 10px;
}

.verification-progress-track {
  height: 8px;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.08);
  overflow: hidden;
}

.verification-progress-fill {
  height: 100%;
  border-radius: 999px;
  background: var(--ink, #121212);
  transition: width 0.35s ease;
}

.verification-progress-label {
  margin: 6px 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}

.verification-progress-steps {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.verification-progress-step {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 4px 10px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--mist);
}

.verification-progress-step .muted-text {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.85rem;
}

.verification-progress-step-index {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(18, 18, 18, 0.08);
  color: var(--muted);
}

.verification-progress-step-status {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted);
}

.verification-progress-step--pass .verification-progress-step-status {
  color: var(--success, #15803d);
}

.verification-progress-step--fail .verification-progress-step-status {
  color: var(--danger, #b91c1c);
}

.verification-progress-step--review .verification-progress-step-status {
  color: var(--warning, #9a6700);
}

.verification-progress-step--skip .verification-progress-step-status,
.verification-progress-step--skipped .verification-progress-step-status {
  color: var(--muted);
}

.verification-form h4 {
  margin: 18px 0 6px;
  font-size: 1rem;
}

.verification-doc-row {
  display: grid;
  gap: 8px;
  margin: 0 0 16px;
  min-width: 0;
}

.verification-doc-row label {
  margin: 0;
}

.verification-doc-row input[type="file"] {
  margin: 0;
  width: 100%;
  max-width: 100%;
}

.verification-form .doc-status {
  display: block;
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
}

.verification-form .doc-status.uploaded {
  color: var(--success, #15803d);
  font-weight: 600;
}

.verification-form .doc-status.accepted {
  color: var(--success, #15803d);
  font-weight: 600;
}

.verification-form .doc-status.rejected {
  color: var(--danger, #b91c1c);
  font-weight: 600;
}

.verification-extracted-fields {
  display: grid;
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border: 1px dashed rgba(20, 20, 24, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.65);
}

.verification-extracted-field {
  display: grid;
  gap: 4px;
  margin: 0;
  font-size: 0.9rem;
}

.verification-extracted-field input,
.verification-extracted-field textarea {
  width: 100%;
  margin: 0;
  background: rgba(243, 244, 246, 0.9);
  color: var(--ink, #121212);
  cursor: default;
}

.verification-extracted-empty {
  margin: 0;
  font-size: 0.85rem;
}

.verification-extracted-fields--error {
  border-color: rgba(185, 28, 28, 0.35);
  background: rgba(254, 242, 242, 0.9);
}

.verification-scan-error {
  margin: 0;
  color: var(--danger, #b91c1c);
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.35;
}

.verification-address-block {
  margin: 0 0 18px;
}

.verification-details-confirm {
  display: grid;
  gap: 12px;
  margin: 8px 0 18px;
  padding: 14px 16px;
  border: 1px solid rgba(20, 20, 24, 0.12);
  border-radius: 14px;
  background: rgba(245, 245, 246, 0.55);
}

.verification-details-confirm h4 {
  margin: 0;
  font-size: 1rem;
}

.verification-details-confirm--confirmed {
  border-color: rgba(21, 128, 61, 0.28);
  background: rgba(21, 128, 61, 0.06);
}

.verification-details-confirm #business-verification-details-status[data-state='confirmed'] {
  color: var(--success, #15803d);
  font-weight: 600;
}

#settings-panel-security {
  display: grid;
  gap: 16px;
}

.app-tile {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem 0.85rem;
  padding: 0.7rem 0.85rem;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  transition: background 140ms ease;
}

.app-tile:last-child {
  border-bottom: 0;
}

.app-tile:hover {
  transform: none;
  border-color: transparent;
  background: rgba(42, 41, 39, 0.035);
}

.app-tile:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ink) 55%, transparent);
  outline-offset: -2px;
}

.app-tile.is-installed {
  background: transparent;
}

.app-tile-icon {
  width: 52px;
  height: 52px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 1px 2px rgba(18, 18, 18, 0.08);
}

.app-tile-icon svg {
  width: 24px;
  height: 24px;
}

.app-tile-icon--shop {
  background: linear-gradient(145deg, #b45309 0%, #92400e 55%, #78350f 100%);
}

.app-tile-icon--bookings {
  background: linear-gradient(145deg, #e11d48 0%, #be123c 55%, #9f1239 100%);
}

.app-tile-icon--counter {
  background: linear-gradient(145deg, #0ea5e9 0%, #0284c7 55%, #0369a1 100%);
}

.app-tile-icon--scanners {
  background: linear-gradient(145deg, #475569 0%, #334155 55%, #1e293b 100%);
}

.app-tile-icon--meetings {
  background: linear-gradient(145deg, #4b5563 0%, #374151 55%, #1f2937 100%);
}

.app-tile-icon--catalogue {
  background: linear-gradient(145deg, #7c3aed 0%, #6d28d9 55%, #5b21b6 100%);
}

.app-tile-icon--sales {
  background: linear-gradient(145deg, #ea580c 0%, #c2410c 55%, #9a3412 100%);
}

.app-tile-icon--wallet {
  background: linear-gradient(145deg, #059669 0%, #047857 55%, #065f46 100%);
}

.app-tile-icon--deliveries {
  background: linear-gradient(145deg, #0f766e 0%, #115e59 55%, #134e4a 100%);
}

.app-tile-icon--integrations {
  background: linear-gradient(145deg, #1d4ed8 0%, #1e40af 55%, #172554 100%);
}

.app-tile-icon--team {
  background: linear-gradient(145deg, #be185d 0%, #9d174d 55%, #831843 100%);
}

.app-tile-icon--print {
  background: linear-gradient(145deg, #334155 0%, #1e293b 55%, #0f172a 100%);
}

.app-tile-icon--video-adverts {
  background: linear-gradient(145deg, #ea580c 0%, #c2410c 55%, #9a3412 100%);
}

.app-tile-icon--gochat {
  background: linear-gradient(145deg, #0891b2 0%, #0e7490 55%, #155e75 100%);
}

.app-tile-icon--gmail {
  background: linear-gradient(145deg, #2a2a2e 0%, #18181b 55%, #0c0c0e 100%);
}

.app-tile-icon--ask {
  background: linear-gradient(145deg, #0d9488 0%, #0f766e 55%, #115e59 100%);
}

.app-tile-icon--intelligence {
  background: linear-gradient(145deg, #6366f1 0%, #4f46e5 55%, #3730a3 100%);
}

#video-adverts-content {
  display: grid;
  gap: 18px;
  width: 100%;
  min-width: 0;
}

#ad-network-mode-tabs.account-type-tabs,
.just-adverts-tabs {
  max-width: 980px;
  margin: 0 auto 1rem;
  width: 100%;
}

.just-adverts-app,
.just-adverts-shell,
.just-adverts-locked {
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
}

.just-adverts-app,
.just-adverts-shell {
  width: 100%;
  max-width: 980px;
  margin-inline: auto;
}

.just-adverts-shell--wide {
  max-width: 1120px;
}

.just-adverts-locked {
  max-width: 28rem;
  margin: 2rem auto;
  padding: 2rem 1.5rem;
  border-radius: 1.5rem;
  background:
    radial-gradient(90% 70% at 10% 0%, rgba(16, 16, 18, 0.06), transparent 60%),
    linear-gradient(180deg, #fff 0%, #f7f7f8 100%);
  border: 1px solid var(--ja-line);
  text-align: left;
}

.just-adverts-locked h3,
.just-adverts-pagehead h3 {
  margin: 0.2rem 0 0.45rem;
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  letter-spacing: -0.035em;
  line-height: 1.1;
  color: var(--ja-ink);
}

.just-adverts-eyebrow {
  margin: 0;
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ja-muted);
}

.just-adverts-lede {
  margin: 0;
  max-width: 36rem;
  color: var(--ja-muted);
  line-height: 1.5;
}

.just-adverts-pagehead {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--ja-line);
}

.just-adverts-maincol,
.just-adverts-sidecol {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.just-adverts-form {
  display: grid;
  gap: 1rem;
}

.video-advert-business-row {
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  padding: 14px;
  background: #fff;
  display: grid;
  gap: 10px;
}

.video-advert-business-row .checkbox-field {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.55rem;
}

.org-access-shell {
  max-width: 42rem;
  gap: 1.25rem;
}

.org-access-banner {
  margin: 0;
  padding: 1.15rem 1.2rem 1.25rem;
  border-radius: 0.85rem;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--surface, #fff) 88%, #dfe8e4) 0%, var(--surface, #fff) 70%),
    var(--surface, #fff);
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 85%, transparent);
}

.org-access-banner-kicker {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.org-access-banner-title {
  margin: 0.2rem 0 0.35rem;
  font-size: 1.45rem;
  letter-spacing: -0.03em;
  line-height: 1.15;
  font-weight: 750;
}

.org-access-banner-copy {
  margin: 0;
  max-width: 36rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--muted);
}

.org-access-banner-copy strong {
  color: inherit;
  font-weight: 700;
}

.org-access-board-head {
  margin-bottom: 0.35rem;
}

.org-access-board-lede {
  margin: 0.35rem 0 0;
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--muted);
}

.org-access-form {
  gap: 1.15rem;
}

.org-access-step {
  display: grid;
  gap: 0.65rem;
  padding: 0.95rem 0 0;
  border-top: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 80%, transparent);
}

.org-access-form > .org-access-step:first-of-type {
  border-top: 0;
  padding-top: 0.15rem;
}

.org-access-step-title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 750;
  letter-spacing: -0.01em;
}

.org-access-step-hint {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.4;
}

.org-access-role-picker {
  width: 100%;
}

.org-access-app-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
  gap: 0.55rem;
}

.org-access-app-card {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.55rem 0.65rem;
  margin: 0;
  padding: 0.75rem 0.8rem;
  border-radius: 0.7rem;
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 90%, transparent);
  background: color-mix(in srgb, var(--surface, #fff) 92%, #eef2f0);
  cursor: pointer;
  min-height: 4.4rem;
  transition: border-color 140ms ease, background 140ms ease;
}

.org-access-app-card:hover {
  border-color: color-mix(in srgb, var(--ink, #222) 28%, transparent);
}

.org-access-app-card.is-selected {
  border-color: color-mix(in srgb, var(--ink, #222) 55%, transparent);
  background: color-mix(in srgb, var(--surface, #fff) 70%, #d7e4df);
}

.org-access-app-card.is-locked {
  opacity: 0.62;
  cursor: not-allowed;
  background: color-mix(in srgb, var(--surface, #fff) 88%, #e8eaed);
}

.org-access-app-card.is-locked:hover {
  border-color: color-mix(in srgb, var(--border, #d0d5dd) 90%, transparent);
}

.org-access-app-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.org-access-app-card .org-access-app-card-icon,
.org-access-app-card .portal-app-icon {
  flex-shrink: 0;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 0.45rem;
  color: #fff;
}

.org-access-app-card-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.org-access-app-card-name {
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.org-access-app-card-meta {
  font-size: 0.68rem;
  color: var(--muted);
  line-height: 1.3;
}

.org-access-app-empty {
  margin: 0;
  padding: 0.85rem 0.9rem;
  border-radius: 0.65rem;
  border: 1px dashed color-mix(in srgb, var(--border, #d0d5dd) 90%, transparent);
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.4;
}

.org-access-manager-note {
  margin: 0;
  padding: 0.85rem 0.95rem;
  border-radius: 0.65rem;
  background: color-mix(in srgb, var(--surface, #fff) 80%, #e4ebe8);
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 85%, transparent);
  font-size: 0.84rem;
  line-height: 1.4;
}

.org-access-advanced {
  margin-top: 0.35rem;
  border-radius: 0.65rem;
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 85%, transparent);
  background: color-mix(in srgb, var(--surface, #fff) 94%, #f0f2f1);
  padding: 0.15rem 0.75rem 0.75rem;
}

.org-access-advanced-summary {
  cursor: pointer;
  list-style: none;
  padding: 0.7rem 0.15rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.org-access-advanced-summary::-webkit-details-marker {
  display: none;
}

.org-access-counter-panel {
  margin-top: 0.35rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.65rem;
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 85%, transparent);
}

.org-access-submit {
  width: 100%;
  margin-top: 0.25rem;
}

.org-access-member-list {
  display: grid;
  gap: 0.7rem;
}

.org-access-member-card {
  display: grid;
  gap: 0.7rem;
  padding: 0.9rem 0.95rem;
  border-radius: 0.75rem;
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 88%, transparent);
  background: color-mix(in srgb, var(--surface, #fff) 94%, #eef1f0);
}

.org-access-member-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
}

.org-access-member-identity h4 {
  margin: 0;
  font-size: 0.98rem;
  letter-spacing: -0.02em;
}

.org-access-member-email {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
}

.org-access-member-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.org-access-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border-radius: 0.35rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--ink, #222) 8%, transparent);
  color: var(--muted);
}

.org-access-badge--member {
  background: color-mix(in srgb, #2f6f5e 14%, transparent);
  color: #1f4d41;
}

.org-access-badge--manager {
  background: color-mix(in srgb, #3a4f7a 14%, transparent);
  color: #2a3b5e;
}

.org-access-badge--pending {
  background: color-mix(in srgb, #9a6b1f 16%, transparent);
  color: #6a4a12;
}

.org-access-badge--disabled {
  background: color-mix(in srgb, #8a3030 14%, transparent);
  color: #6a2020;
}

.org-access-app-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.org-access-app-chips li {
  margin: 0;
  padding: 0.18rem 0.5rem 0.18rem 0.28rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  background: color-mix(in srgb, var(--ink, #222) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 80%, transparent);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.org-access-app-chips .org-access-chip-icon,
.org-access-app-chips .portal-app-icon {
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 0.28rem;
  color: #fff;
  flex-shrink: 0;
}

.org-access-app-chips .portal-app-icon svg {
  width: 0.7rem;
  height: 0.7rem;
}

.org-access-app-chips--empty {
  font-size: 0.78rem;
  color: var(--muted);
}

.org-access-member-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.org-access-member-editor {
  display: grid;
  gap: 0.75rem;
  padding-top: 0.55rem;
  border-top: 1px solid color-mix(in srgb, var(--border, #d0d5dd) 80%, transparent);
}

.org-access-member-editor.hidden {
  display: none;
}

.org-access-requests {
  margin-bottom: 0.85rem;
}

@media (max-width: 640px) {
  .org-access-app-grid {
    grid-template-columns: 1fr 1fr;
  }

  .org-access-banner {
    padding: 1rem;
  }
}

.app-tile-includes {
  list-style: none;
  margin: 0.4rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
}

.app-tile-includes li {
  margin: 0;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--ink);
  background: rgba(42, 41, 39, 0.06);
  border: 1px solid rgba(42, 41, 39, 0.08);
}

.app-tile-body {
  min-width: 0;
}

.app-tile-body h4 {
  margin: 0;
  font-size: 0.95rem;
  letter-spacing: -0.015em;
  line-height: 1.25;
}

.app-tile-tagline {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-tile--marketplace .app-tile-tagline--hook {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.app-tile--marketplace .app-tile-tagline--detail {
  margin-top: 0.08rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--muted);
}

.app-tile-meta {
  display: none;
}

.app-tile-price {
  display: none;
}

.app-tile-status {
  display: inline-flex;
  align-items: center;
  margin-top: 0.2rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
}

.app-tile.is-installed .app-tile-status {
  color: #15803d;
}

.app-tile-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  margin-top: 0;
}

.app-tile-action {
  width: 100%;
  margin-top: 0;
  padding: 0.45rem 0.65rem;
  font-size: 0.86rem;
}

.app-get-btn {
  appearance: none;
  border: 0;
  border-radius: 999px;
  min-width: 3.4rem;
  padding: 0.38rem 0.85rem;
  background: rgba(18, 18, 18, 0.06);
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease;
}

.app-get-btn:hover {
  background: rgba(18, 18, 18, 0.1);
}

.app-get-btn--open {
  background: var(--ink);
  color: #fff;
}

.app-get-btn--open:hover {
  background: color-mix(in srgb, var(--ink) 88%, #fff);
}

.app-get-btn.danger-btn,
.app-get-btn.app-get-btn--danger {
  background: rgba(185, 28, 28, 0.08);
  color: #b91c1c;
}

.app-get-btn.danger-btn:hover,
.app-get-btn.app-get-btn--danger:hover {
  background: rgba(185, 28, 28, 0.14);
}

.booking-board-meta {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
}

.booking-board-customer {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-about-modal {
  display: grid;
  gap: 0.75rem;
  font-family: var(--font-brand);
}

.app-about-hero {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.app-about-hero .app-tile-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  border-radius: 14px;
}

.app-about-hero .app-tile-icon svg {
  width: 22px;
  height: 22px;
}

.app-about-hero-copy {
  min-width: 0;
}

.app-about-status-inline {
  margin: 0;
  font-family: var(--font-brand);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted);
}

.app-about-tagline {
  margin: 0.15rem 0 0;
  font-family: var(--font-brand);
  font-weight: 600;
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--muted);
}

.app-about-pitch {
  margin: 0;
  padding: 0.8rem 0.9rem;
  border-radius: 14px;
  background:
    linear-gradient(160deg, rgba(18, 18, 18, 0.045), rgba(18, 18, 18, 0.01)),
    var(--mist);
  border: 1px solid rgba(18, 18, 18, 0.08);
}

.app-about-pitch-hook {
  margin: 0;
  font-family: var(--font-brand);
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--ink);
}

.app-about-pitch-points {
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.app-about-pitch-points li {
  position: relative;
  padding-left: 1.05rem;
  font-family: var(--font-brand);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.35;
  color: var(--ink);
}

.app-about-pitch-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: var(--ink);
}

.app-about-description {
  margin: 0;
  font-family: var(--font-brand);
  color: var(--muted);
  line-height: 1.45;
  font-size: 0.9rem;
  font-weight: 500;
}

.app-about-section h4 {
  margin: 0 0 0.4rem;
  font-family: var(--font-brand);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.app-about-bundle {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.app-about-bundle--compact {
  gap: 0.3rem;
}

.app-about-bundle--compact .app-about-module {
  padding: 0.4rem 0.55rem;
  border-radius: 10px;
}

.app-about-bundle--compact .app-about-module .app-tile-icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
}

.app-about-bundle--compact .app-about-module .app-tile-icon svg {
  width: 15px;
  height: 15px;
}

.app-about-bundle--compact .app-about-module-copy strong {
  font-size: 0.86rem;
}

.app-about-bundle--compact .app-about-module-copy small {
  font-size: 0.74rem;
}

.app-about-module {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 0.65rem;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--mist, rgba(42, 41, 39, 0.03));
}

.app-about-module .app-tile-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
}

.app-about-module .app-tile-icon svg {
  width: 18px;
  height: 18px;
}

.app-about-module-copy {
  min-width: 0;
  display: grid;
  gap: 0.08rem;
}

.app-about-module-copy strong {
  font-family: var(--font-brand);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: -0.015em;
}

.app-about-module-copy small {
  font-family: var(--font-brand);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.3;
}

.app-about-pricing {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}

.app-about-pricing > div {
  display: grid;
  gap: 0.12rem;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--mist, rgba(42, 41, 39, 0.04));
}

.app-about-pricing strong {
  font-family: var(--font-brand);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.app-about-pricing span {
  font-family: var(--font-brand);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.app-about-billing-note {
  margin: 0.4rem 0 0;
  font-family: var(--font-brand);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--muted);
}

.app-about-actions {
  display: grid;
  gap: 0.4rem;
}

.app-about-actions .app-tile-action {
  width: 100%;
}

/* Business portal — landing ribbon at page top + push apps drawer */
body.portal-app.business-drawer-nav .app,
body.portal-app .app.business-drawer-nav {
  --portal-drawer-width: min(20rem, 86vw);
  --portal-sidebar-width: 0px;
  --header-h: calc(72px + env(safe-area-inset-top, 0px));
  display: grid;
  grid-template-columns: var(--portal-sidebar-width) minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  transition: grid-template-columns 220ms ease;
  min-height: 100vh;
  min-height: 100dvh;
}

body.portal-app.business-drawer-nav.nav-drawer-open .app,
body.portal-app.business-drawer-nav .app.nav-drawer-open,
body.portal-app.nav-drawer-open.business-drawer-nav .app,
body.portal-app .app.business-drawer-nav.nav-drawer-open {
  --portal-sidebar-width: var(--portal-drawer-width);
}

body.portal-app.business-drawer-nav #nav-drawer-fab,
body.portal-app .app.business-drawer-nav #nav-drawer-fab,
body.portal-app.business-drawer-nav #nav-more-btn,
body.portal-app .app.business-drawer-nav #nav-more-btn,
body.portal-app.business-drawer-nav .business-home-btn,
body.portal-app.business-drawer-nav #home-view {
  display: none !important;
}

body.portal-app.business-drawer-nav .portal-top-ribbons,
body.portal-app .app.business-drawer-nav .portal-top-ribbons {
  grid-column: 1 / -1;
  grid-row: 1;
  order: 0;
}

body.portal-app.business-drawer-nav .main,
body.portal-app .app.business-drawer-nav .main {
  grid-column: 2;
  grid-row: 2;
  width: auto;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  flex: unset;
}

/* Apps drawer available at all widths for business */
body.portal-app.business-drawer-nav .nav-drawer-toggle,
body.portal-app .app.business-drawer-nav .nav-drawer-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(245, 245, 246, 0.2);
  border-radius: 12px;
  background: rgba(245, 245, 246, 0.08);
  color: #f5f5f6;
  box-shadow: none;
  cursor: pointer;
}

body.portal-app.business-drawer-nav .nav-drawer-backdrop,
body.portal-app .app.business-drawer-nav .nav-drawer-backdrop,
body.portal-app.business-drawer-nav .nav-drawer-fab,
body.portal-app .app.business-drawer-nav .nav-drawer-fab {
  display: none !important;
  grid-column: 1;
  grid-row: 1;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  pointer-events: none;
}

body.portal-app.business-drawer-nav #portal-sidebar,
body.portal-app .app.business-drawer-nav #portal-sidebar {
  --sidebar-pad-x: 14px;
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  grid-column: 1;
  grid-row: 2;
  z-index: 5;
  width: var(--portal-drawer-width);
  max-width: none;
  height: auto;
  max-height: none;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  overflow-x: hidden;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex-direction: column;
  gap: 6px;
  padding: 16px var(--sidebar-pad-x) calc(16px + env(safe-area-inset-bottom, 0px));
  border-right: 1px solid rgba(18, 18, 18, 0.08) !important;
  border-top: none !important;
  border-bottom: none !important;
  border-top-right-radius: 0;
  background:
    linear-gradient(180deg, #ffffff 0%, #fafafa 48%, #f7f7f8 100%) !important;
  box-shadow: none;
  transform: none;
  transition: none;
  overscroll-behavior: contain;
}

body.portal-app.business-drawer-nav.nav-drawer-open #portal-sidebar,
body.portal-app.nav-drawer-open.business-drawer-nav #portal-sidebar,
body.portal-app .app.business-drawer-nav.nav-drawer-open #portal-sidebar,
body.portal-app .app.nav-drawer-open.business-drawer-nav #portal-sidebar {
  transform: none;
}

body.portal-app.business-drawer-nav .sidebar-brand,
body.portal-app.business-drawer-nav .sidebar-brand.brand-banner {
  display: block !important;
  margin: -16px calc(-1 * var(--sidebar-pad-x)) 8px;
}

body.portal-app.business-drawer-nav .nav-primary {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  margin: 0;
  padding: 4px 0 8px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

body.portal-app.business-drawer-nav .nav-primary::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

body.portal-app.business-drawer-nav .nav-group {
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
}

/* Parents only in the apps drawer — subtabs stay inside each app. */
body.portal-app.business-drawer-nav .nav-group-children,
body.portal-app.business-drawer-nav .nav-group.is-open > .nav-group-children,
body.portal-app.business-drawer-nav .nav-group-chevron {
  display: none !important;
}

body.portal-app.business-drawer-nav #nav-applications .nav-label-full,
body.portal-app.business-drawer-nav #nav-deliveries .nav-label-full,
body.portal-app.business-drawer-nav #nav-integrations .nav-label-full,
body.portal-app.business-drawer-nav #nav-team .nav-label-full,
body.portal-app.business-drawer-nav #nav-sell-products .nav-label-full,
body.portal-app.business-drawer-nav #nav-sell-services .nav-label-full {
  display: inline;
}

body.portal-app.business-drawer-nav #nav-applications .nav-label-short,
body.portal-app.business-drawer-nav #nav-deliveries .nav-label-short,
body.portal-app.business-drawer-nav #nav-integrations .nav-label-short,
body.portal-app.business-drawer-nav #nav-team .nav-label-short,
body.portal-app.business-drawer-nav #nav-sell-products .nav-label-short,
body.portal-app.business-drawer-nav #nav-sell-services .nav-label-short {
  display: none;
}

body.portal-app.business-drawer-nav #portal-more,
body.portal-app.business-drawer-nav #portal-more .portal-more-panel {
  display: contents !important;
}

body.portal-app.business-drawer-nav #portal-more .portal-more-backdrop,
body.portal-app.business-drawer-nav #portal-more .portal-more-handle,
body.portal-app.business-drawer-nav #portal-more .portal-more-apps {
  display: none !important;
}

/* Pin account owners + Settings + Sign out to the bottom of the apps drawer. */
body.portal-app.business-drawer-nav #portal-sidebar-footer {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 0 0 auto;
  order: 10;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(18, 18, 18, 0.06);
}

body.portal-app.business-drawer-nav #portal-sidebar-footer .account-strip,
body.portal-app.business-drawer-nav #portal-sidebar-footer .nav-secondary,
body.portal-app.business-drawer-nav #portal-sidebar-footer .logout-btn {
  order: unset;
}

body.portal-app.business-drawer-nav #portal-more .account-strip {
  display: grid !important;
  order: unset;
  margin: 4px 0 0 !important;
  width: 100%;
  box-sizing: border-box;
}

body.portal-app.business-drawer-nav .nav-secondary {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  border-top: none;
}

body.portal-app.business-drawer-nav .nav-secondary .nav-btn,
body.portal-app.business-drawer-nav .logout-btn {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
}

body.portal-app.business-drawer-nav .logout-btn {
  margin-top: 0;
}

.business-home-btn {
  display: inline-grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  flex: 0 0 auto;
}

.business-home-btn.hidden {
  display: none !important;
}

.business-home-btn-icon {
  display: grid;
  place-items: center;
  width: 1.15rem;
  height: 1.15rem;
}

.business-home-btn-icon svg {
  width: 100%;
  height: 100%;
}

.topbar.is-business-home,
.topbar.is-overview {
  display: none;
}

.business-home {
  display: grid;
  gap: 1.35rem;
  max-width: 44rem;
  margin: 0 auto;
  padding: 0.35rem 0 1.5rem;
}

.business-home-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem 0.75rem;
}

.business-home-tile {
  appearance: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0.35rem 0.25rem;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  text-align: center;
}

.business-home-tile:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ink) 55%, transparent);
  outline-offset: 3px;
  border-radius: 14px;
}

.business-home-tile-icon {
  position: relative;
  width: 4.35rem;
  height: 4.35rem;
  border-radius: 1.2rem;
  display: grid;
  place-items: center;
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 10px 22px rgba(18, 18, 18, 0.12);
  transition: transform 140ms ease;
}

.business-home-tile:hover .business-home-tile-icon,
.business-home-tile:active .business-home-tile-icon {
  transform: scale(0.96);
}

.business-home-tile-icon .nav-icon,
.business-home-tile-icon .portal-app-icon {
  display: grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
  color: inherit;
}

.business-home-tile-icon svg {
  width: 1.55rem;
  height: 1.55rem;
}

.business-home-tile-badge {
  position: absolute;
  top: -0.25rem;
  right: -0.25rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: #121212;
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.15rem;
  box-shadow: 0 0 0 2px #f3f3f4;
}

.business-home-tile-label {
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.25;
  max-width: 7.5rem;
}

@media (min-width: 901px) {
  .business-home-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.35rem 1rem;
  }

  .business-home-tile-icon {
    width: 4.7rem;
    height: 4.7rem;
  }
}

@media (max-width: 420px) {
  .business-home-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 0.45rem;
  }

  .business-home-tile-icon {
    width: 3.9rem;
    height: 3.9rem;
    border-radius: 1.05rem;
  }

  .business-home-tile-label {
    font-size: 0.72rem;
  }
}

/* Exact landing .site-header top ribbon (business portal) — flush to page top */
.portal-top-ribbons {
  position: sticky;
  top: 0;
  z-index: 70;
  flex: 0 0 auto;
  order: -1;
  width: 100%;
}

.business-portal-banner {
  --header-h: 72px;
  --landing-paper: #121212;
  --landing-banner-bg: #ffffff;
  --landing-banner-line: rgba(18, 18, 18, 0.08);
  position: relative;
  top: auto;
  z-index: auto;
  height: auto;
  min-height: calc(var(--header-h) + env(safe-area-inset-top, 0px));
  width: 100%;
  margin: 0;
  padding-top: env(safe-area-inset-top, 0px);
  flex: 0 0 auto;
  order: 0;
  color: var(--landing-paper);
  background: var(--landing-banner-bg);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 1px solid var(--landing-banner-line);
  box-sizing: border-box;
  overflow: visible;
}

.business-portal-banner.hidden {
  display: none !important;
}

.business-portal-banner-inner {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.75rem 1.25rem;
  min-height: var(--header-h);
  height: auto;
  padding: 0.55rem 1.5rem;
  box-sizing: border-box;
}

.business-portal-banner .logo {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  text-decoration: none;
  color: var(--landing-paper);
  flex-shrink: 0;
  min-width: 0;
}

.business-portal-banner .logo img {
  width: 40px;
  height: 40px;
  border-radius: 10px !important;
  object-fit: contain;
  background: #000000 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  flex-shrink: 0;
}

.business-portal-banner .logo > .business-portal-banner-wordmark {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.08rem;
  min-width: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -0.03em;
  line-height: 1.1;
  white-space: normal;
  overflow: hidden;
}

.business-portal-banner-brand {
  display: block;
  white-space: nowrap;
  overflow: visible;
  text-overflow: unset;
  max-width: none;
}

.business-portal-banner .logo-go {
  font-style: normal;
  font-weight: 600;
  opacity: 0.72;
  letter-spacing: -0.02em;
}

.business-portal-banner-portal {
  display: block;
  margin: 0;
  padding: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  line-height: 1.15;
  opacity: 0.78;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.business-portal-banner-portal[hidden] {
  display: none !important;
}

/* Chrome-style bookmark bar under the landing ribbon */
.business-portal-banner-tabs,
.portal-bookmark-bar {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  align-items: center;
  align-content: center;
  gap: 0.4rem;
  align-self: stretch;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0.45rem 0.75rem 0.7rem;
  box-sizing: border-box;
  overflow: visible;
  border-top: 1px solid rgba(18, 18, 18, 0.06);
  background: linear-gradient(180deg, #fafafa 0%, #f3f3f4 100%);
}

.personal-portal-banner-tabs {
  display: none;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  align-items: center;
  align-content: center;
  gap: 0.4rem;
  align-self: stretch;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0.45rem 0.75rem 0.7rem;
  box-sizing: border-box;
  overflow: visible;
  border-top: 1px solid rgba(18, 18, 18, 0.06);
  background: linear-gradient(180deg, #fafafa 0%, #f3f3f4 100%);
}

.business-portal-banner-tabs.hidden,
.personal-portal-banner-tabs.hidden {
  display: none !important;
}

.business-portal-banner-tab.bookmark-tab-overflow,
.personal-portal-banner-tab.bookmark-tab-overflow,
.admin-portal-banner-tab.bookmark-tab-overflow,
.driver-portal-banner-tab.bookmark-tab-overflow {
  display: none !important;
}

.bookmark-more-btn {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  margin-left: auto;
}

.bookmark-more-btn[hidden] {
  display: none !important;
}

.bookmark-more-trigger {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0.32rem 0.62rem 0.32rem 0.42rem;
  border: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 10px;
  background: #ffffff;
  color: #3d3d42;
  font-family: var(--font-body, "DM Sans", system-ui, -apple-system, sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.15;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 1px 1px rgba(18, 18, 18, 0.03);
}

.bookmark-more-trigger:hover,
.bookmark-more-trigger:focus-visible,
.bookmark-more-btn.is-open .bookmark-more-trigger,
.bookmark-more-btn.has-active .bookmark-more-trigger {
  color: #121212;
  border-color: rgba(18, 18, 18, 0.22);
  outline: none;
  box-shadow:
    0 0 0 1px rgba(18, 18, 18, 0.06),
    0 2px 6px rgba(18, 18, 18, 0.06);
}

.bookmark-more-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 11.5rem;
  max-width: min(18rem, 70vw);
  max-height: min(22rem, 60vh);
  overflow: auto;
  padding: 0.35rem;
  border: 1px solid rgba(18, 18, 18, 0.12);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(18, 18, 18, 0.12);
}

.bookmark-more-menu[hidden] {
  display: none !important;
}

.bookmark-more-item {
  appearance: none;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  margin: 0;
  padding: 0.42rem 0.55rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #3d3d42;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.bookmark-more-item:hover,
.bookmark-more-item:focus-visible {
  background: rgba(18, 18, 18, 0.05);
  color: #121212;
  outline: none;
}

.bookmark-more-item.is-active {
  background: rgba(18, 18, 18, 0.07);
  color: #121212;
}

.bookmark-more-item .banner-tab-icon,
.bookmark-more-item .personal-portal-banner-tab-icon {
  width: 1.25rem;
  height: 1.25rem;
}

.bookmark-more-item-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.business-portal-banner-tab,
.personal-portal-banner-tab {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;
  margin: 0;
  padding: 0.32rem 0.62rem 0.32rem 0.42rem;
  border: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 10px;
  background: #ffffff;
  color: #3d3d42;
  font-family: var(--font-body, "DM Sans", system-ui, -apple-system, sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.15;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 1px 1px rgba(18, 18, 18, 0.03);
  transition:
    color 0.15s ease,
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.business-portal-banner-tab:hover,
.business-portal-banner-tab:focus-visible,
.personal-portal-banner-tab:hover,
.personal-portal-banner-tab:focus-visible {
  color: #121212;
  border-color: rgba(18, 18, 18, 0.18);
  background: #fff;
  outline: none;
  box-shadow: 0 2px 6px rgba(18, 18, 18, 0.06);
}

.business-portal-banner-tab.is-active,
.personal-portal-banner-tab.is-active {
  color: #121212;
  border-color: rgba(18, 18, 18, 0.22);
  background: #ffffff;
  box-shadow:
    0 0 0 1px rgba(18, 18, 18, 0.06),
    0 2px 6px rgba(18, 18, 18, 0.06);
}

.banner-tab-icon {
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 auto;
  border-radius: 7px;
  background: rgba(18, 18, 18, 0.05);
  color: #121212;
}

/* App-colored pads on the bookmark strip (same tones as App Store tiles). */
.banner-tab-icon[class*='app-tile-icon--'] {
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 1px 1px rgba(18, 18, 18, 0.06);
}

.banner-tab-icon svg {
  width: 0.9rem;
  height: 0.9rem;
  display: block;
}

.banner-tab-label {
  display: inline-block;
  max-width: 9.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.business-portal-banner-tab.hidden,
.personal-portal-banner-tab.hidden {
  display: none !important;
}

.business-portal-banner-logout {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  flex: 0 0 auto;
  margin-left: auto;
  padding: 0.42rem 0.9rem 0.42rem 0.72rem;
  border: 1px solid rgba(18, 18, 18, 0.12);
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.04);
  color: #121212;
  font-family: var(--font-display, "Syne", "DM Sans", sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.business-portal-banner-logout:hover,
.business-portal-banner-logout:focus-visible {
  background: rgba(18, 18, 18, 0.08);
  border-color: rgba(18, 18, 18, 0.18);
  color: #121212;
  outline: none;
}

.business-portal-banner-logout:active {
  transform: translateY(1px);
}

.business-portal-banner-logout-icon {
  display: inline-grid;
  place-items: center;
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  opacity: 0.92;
}

.business-portal-banner-logout-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.business-portal-banner-logout-label {
  display: inline-block;
}

@media (max-width: 720px) {
  .business-portal-banner {
    height: auto;
    min-height: calc(var(--header-h) + env(safe-area-inset-top, 0px));
  }

  .business-portal-banner-inner {
    flex-wrap: wrap;
    gap: 0.65rem 0.85rem;
    min-height: var(--header-h);
    padding: 0.45rem 0.85rem;
  }

  .business-portal-banner-tabs {
    margin-left: 0;
  }

  .business-portal-banner-logout {
    padding: 0.4rem 0.55rem;
  }

  .business-portal-banner-logout-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .business-portal-banner .logo > .business-portal-banner-wordmark {
    font-size: 1.05rem;
  }

  .business-portal-banner-portal {
    font-size: 0.68rem;
  }
}

/* Business portal: top ribbon tabs, no apps sidebar/drawer. */
body.business-account:not(.business-drawer-nav) .app {
  --portal-sidebar-width: 0px;
  --header-h: calc(72px + env(safe-area-inset-top, 0px));
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  min-height: 100vh;
  min-height: 100dvh;
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

body.business-account:not(.business-drawer-nav) .portal-top-ribbons {
  order: -1;
  width: 100%;
}

body.business-account:not(.business-drawer-nav) #portal-sidebar,
body.business-account:not(.business-drawer-nav) .nav-drawer-toggle,
body.business-account:not(.business-drawer-nav) .nav-drawer-fab,
body.business-account:not(.business-drawer-nav) .nav-drawer-backdrop,
body.business-account:not(.business-drawer-nav) #nav-more-btn,
body.business-account:not(.business-drawer-nav) .business-home-btn,
body.business-account:not(.business-drawer-nav) #home-view {
  display: none !important;
}

body.business-account:not(.business-drawer-nav) .main {
  width: 100%;
  max-width: 100%;
  grid-column: auto;
  flex: 1 1 auto;
  min-width: 0;
}

body.business-account:not(.business-drawer-nav) .business-portal-banner-tabs:not(.hidden) {
  display: flex;
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  margin-left: 0;
}

body.business-account:not(.business-drawer-nav) .business-portal-banner-logout:not(.hidden) {
  margin-left: auto;
}

@media (max-width: 900px) {
  body.business-account:not(.business-drawer-nav) .app {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  body.business-account:not(.business-drawer-nav) .business-portal-banner-inner {
    gap: 0.55rem 0.75rem;
  }
}

/* Personal tablet-landscape + desktop: top ribbon tabs, no apps sidebar / bottom nav. */
@media ((min-width: 701px) and (max-width: 1024px) and (orientation: landscape)), (min-width: 1025px) {
  body.personal-account:not(.business-drawer-nav) .app {
    --portal-sidebar-width: 0px;
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    min-height: 100vh;
    min-height: 100dvh;
    padding-bottom: 0;
  }

  body.personal-account:not(.business-drawer-nav) .portal-top-ribbons {
    order: -1;
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner:not(.hidden) {
    display: block;
    --header-h: 76px;
    --landing-paper: #141416;
    --landing-banner-bg: linear-gradient(180deg, #fcfcfd 0%, #f4f4f6 100%);
    --landing-banner-line: rgba(18, 18, 18, 0.08);
    color: var(--landing-paper);
    background: var(--landing-banner-bg);
    backdrop-filter: saturate(1.1) blur(16px);
    -webkit-backdrop-filter: saturate(1.1) blur(16px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset, 0 10px 28px rgba(18, 18, 18, 0.04);
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner-inner {
    min-height: var(--header-h);
    padding-inline: clamp(1rem, 2.2vw, 1.75rem);
    gap: 0.75rem 1rem;
    align-items: center;
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner-portal {
    display: none;
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner-brand,
  body.personal-account:not(.business-drawer-nav) .business-portal-banner .logo-go {
    color: inherit;
  }

  /* Keep TuMicha Go on the classic ribbon wordmark metrics. */
  body.personal-account:not(.business-drawer-nav) .business-portal-banner .logo > .business-portal-banner-wordmark {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: -0.03em;
    line-height: 1.1;
  }

  body.personal-account:not(.business-drawer-nav) .nav-drawer-toggle {
    border-color: rgba(18, 18, 18, 0.12);
    background: rgba(18, 18, 18, 0.04);
    color: #17171a;
  }

  body.personal-account:not(.business-drawer-nav) #portal-sidebar,
  body.personal-account:not(.business-drawer-nav) .nav-drawer-toggle,
  body.personal-account:not(.business-drawer-nav) .nav-drawer-fab,
  body.personal-account:not(.business-drawer-nav) .nav-drawer-backdrop {
    display: none !important;
  }

  body.personal-account:not(.business-drawer-nav) .main {
    width: 100%;
    max-width: 100%;
    grid-column: auto;
    flex: 1 1 auto;
    min-width: 0;
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner-tabs:not(.hidden),
  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tabs:not(.hidden) {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    align-items: center;
    align-content: center;
    gap: 0.4rem;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0.45rem clamp(1rem, 2.2vw, 1.75rem) 0.7rem;
    border-radius: 0;
    border-top: 1px solid rgba(18, 18, 18, 0.06);
    background: linear-gradient(180deg, #fafafa 0%, #f3f3f4 100%);
    overflow: visible;
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner-logout:not(.hidden) {
    margin-left: auto;
    border-color: rgba(18, 18, 18, 0.12);
    background: rgba(18, 18, 18, 0.05);
    color: #17171a;
    border-radius: 11px;
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-width: 0;
    padding: 0.32rem 0.62rem 0.32rem 0.42rem;
    border: 1px solid rgba(18, 18, 18, 0.1);
    border-radius: 10px;
    background: #ffffff;
    color: #3d3d42;
    box-shadow: 0 1px 1px rgba(18, 18, 18, 0.03);
    transition:
      color 0.15s ease,
      border-color 0.15s ease,
      background 0.15s ease,
      box-shadow 0.15s ease;
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab:hover,
  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab:focus-visible {
    color: #121212;
    border-color: rgba(18, 18, 18, 0.18);
    background: #fff;
    outline: none;
    box-shadow: 0 2px 6px rgba(18, 18, 18, 0.06);
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab.is-active {
    color: #121212;
    border-color: rgba(18, 18, 18, 0.22);
    background: #ffffff;
    box-shadow:
      0 0 0 1px rgba(18, 18, 18, 0.06),
      0 2px 6px rgba(18, 18, 18, 0.06);
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab-icon,
  body.personal-account:not(.business-drawer-nav) .banner-tab-icon {
    display: inline-grid;
    place-items: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 7px;
    background: rgba(18, 18, 18, 0.05);
    color: #121212;
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab-icon[class*='app-tile-icon--'],
  body.personal-account:not(.business-drawer-nav) .banner-tab-icon[class*='app-tile-icon--'] {
    color: #fff;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.22),
      0 1px 1px rgba(18, 18, 18, 0.06);
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab-icon svg,
  body.personal-account:not(.business-drawer-nav) .banner-tab-icon svg {
    width: 0.9rem;
    height: 0.9rem;
    display: block;
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab-label,
  body.personal-account:not(.business-drawer-nav) .banner-tab-label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.15;
  }

  body.personal-account:not(.business-drawer-nav) .personal-portal-banner-tab.is-active .personal-portal-banner-tab-label {
    font-weight: 700;
  }

  body.personal-account:not(.business-drawer-nav) .business-portal-banner-logout:hover,
  body.personal-account:not(.business-drawer-nav) .business-portal-banner-logout:focus-visible {
    background: rgba(18, 18, 18, 0.1);
    border-color: rgba(18, 18, 18, 0.2);
    color: #111114;
  }

  body.personal-account.shop-ribbon-desktop .banner-shop-search-field input {
    height: 2.35rem;
    border-radius: 11px;
    border-color: rgba(18, 18, 18, 0.1);
    background: #fff;
    color: #17171a;
    box-shadow: 0 1px 2px rgba(18, 18, 18, 0.04);
  }

  body.personal-account.shop-ribbon-desktop .banner-shop-search-field input::placeholder {
    color: rgba(23, 23, 26, 0.42);
  }

  body.personal-account.shop-ribbon-desktop .banner-shop-search-field input:focus {
    border-color: rgba(18, 18, 18, 0.28);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(18, 18, 18, 0.06);
  }

  body.personal-account.shop-ribbon-desktop .banner-shop-cart-btn:not(.hidden) {
    color: #17171a;
    background: #fff;
    border-color: rgba(18, 18, 18, 0.12);
  }

  body.personal-account.shop-ribbon-desktop .banner-shop-cart-btn:hover,
  body.personal-account.shop-ribbon-desktop .banner-shop-cart-btn:focus-visible {
    background: rgba(18, 18, 18, 0.06);
    border-color: rgba(18, 18, 18, 0.22);
  }

  body.personal-account.shop-ribbon-desktop .banner-shop-cart-count:not(.hidden) {
    background: #17171a;
    color: #f5f5f6;
  }
}

/* Tablet-landscape personal: TuMicha Go wordmark only on Shop; tabs stay on every view. Desktop keeps the 40px mark + full name. */
@media (min-width: 701px) and (max-width: 1024px) and (orientation: landscape) {
  body.personal-account:not(.business-drawer-nav) .business-portal-banner .logo img {
    display: none !important;
  }

  body.personal-account:not(.business-drawer-nav):not(.shop-surface) .business-portal-banner .logo {
    display: none !important;
  }

  body.personal-account.shop-surface:not(.business-drawer-nav) .business-portal-banner .logo {
    display: flex;
    gap: 0;
    color: inherit;
  }
}

/*
 * Desktop: All stores (View all / Search) — ~6 storefronts per row
 * for every storefront style. Hero Overlay's token default is 2 columns and
 * would otherwise leave huge empty gaps on a wide screen.
 */
@media (min-width: 1025px) {
  .shop-store-grid,
  #catalogue-list.shop-store-grid,
  #catalogue-list[data-storefront-style-layout],
  #catalogue-list[data-storefront-style-layout='cover-stack'],
  #catalogue-list[data-storefront-style-layout='hero-overlay'],
  body.personal-account.shop-surface:not(.business-drawer-nav) .shop-store-grid,
  body.personal-account.shop-surface:not(.business-drawer-nav)
    #catalogue-list[data-storefront-style-layout='hero-overlay'],
  body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid {
    --sf-grid-columns: 6;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (min-width: 1680px) {
  .shop-store-grid,
  #catalogue-list.shop-store-grid,
  #catalogue-list[data-storefront-style-layout],
  #catalogue-list[data-storefront-style-layout='cover-stack'],
  #catalogue-list[data-storefront-style-layout='hero-overlay'],
  body.personal-account.shop-surface:not(.business-drawer-nav) .shop-store-grid,
  body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid {
    --sf-grid-columns: 7;
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}

@media (min-width: 1920px) {
  .shop-store-grid,
  #catalogue-list.shop-store-grid,
  #catalogue-list[data-storefront-style-layout],
  #catalogue-list[data-storefront-style-layout='cover-stack'],
  #catalogue-list[data-storefront-style-layout='hero-overlay'],
  body.personal-account.shop-surface:not(.business-drawer-nav) .shop-store-grid,
  body.personal-account.shop-ecommerce-desktop #catalogue-list.shop-ecommerce-grid {
    --sf-grid-columns: 8;
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}

/*
 * Tablet portrait: 4 cards per row for All stores + menu All/categories,
 * every storefront and product style (Collections keep the peek carousel).
 */
@media (min-width: 701px) and (max-width: 1024px) {
  .shop-store-grid,
  #catalogue-list.shop-store-grid,
  #catalogue-list[data-storefront-style-layout],
  #catalogue-list[data-storefront-style-layout='cover-stack'],
  #catalogue-list[data-storefront-style-layout='hero-overlay'],
  body.personal-account.shop-surface .shop-store-grid {
    --sf-grid-columns: 4;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }

  .shop-menu-results.shop-menu-layout-grid,
  #shop-grid.shop-menu-layout-grid,
  #shop-grid.shop-menu-layout-grid[data-product-style-layout],
  #shop-grid.shop-menu-layout-grid[class*='ps-layout-'],
  #shop-grid.ps-floating,
  #shop-grid.ps-floating.shop-menu-layout-grid,
  #shop-grid.ps-floating.shop-menu-layout-list,
  #shop-grid.ps-floating[data-product-style-layout],
  #shop-grid.ps-floating[class*='ps-layout-'],
  #shop-grid[data-product-style-layout].shop-menu-layout-grid,
  #shop-grid[class*='ps-layout-'].shop-menu-layout-grid,
  #shop-grid[data-product-style-layout].ps-floating,
  #shop-grid[class*='ps-layout-'].ps-floating,
  body.personal-account.shop-surface .shop-menu-results.shop-menu-layout-grid,
  body.personal-account.shop-surface #shop-grid.shop-menu-layout-grid,
  body.personal-account.shop-surface #shop-grid.ps-floating,
  body.personal-account.shop-surface #shop-grid.ps-floating.shop-menu-layout-grid,
  body.personal-account.shop-surface #shop-grid.ps-floating.shop-menu-layout-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
  }

  #shop-grid[data-product-style-layout='dense-rail'],
  #shop-grid.ps-layout-dense-rail,
  #shop-grid[data-product-style-layout='dense-rail'].shop-menu-layout-grid,
  #shop-grid.ps-layout-dense-rail.shop-menu-layout-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

/* Personal account: hide Personal Account subtitle on desktop ribbon. */
body.personal-account.business-drawer-nav .business-portal-banner:not(.hidden) {
  display: block;
}

body.personal-account.business-drawer-nav .business-portal-banner-portal {
  display: none;
}

/* In-app section rail (former sidebar subtabs) */
.business-workspace {
  display: block;
  min-width: 0;
}

.business-workspace-body {
  min-width: 0;
}

.business-app-rail {
  display: none;
}

body.business-account.business-app-open .business-workspace {
  display: grid;
  grid-template-columns: minmax(11.5rem, 14.5rem) minmax(0, 1fr);
  gap: 1rem 1.15rem;
  align-items: start;
}

body.business-account.business-app-open .business-app-rail:not(.hidden) {
  display: grid;
  gap: 0.65rem;
  position: sticky;
  top: calc(var(--header-h, 72px) + 0.75rem);
  padding: 0.85rem 0.75rem;
  border: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 18, 18, 0.04);
}

.business-app-rail-title {
  margin: 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 740;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
}

.business-app-rail-nav {
  display: grid;
  gap: 0.25rem;
}

.business-app-rail-btn {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  width: 100%;
  margin: 0;
  padding: 0.7rem 0.75rem;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.business-app-rail-btn:hover {
  background: rgba(18, 18, 18, 0.04);
}

.business-app-rail-btn.active {
  background: #121212;
  color: #fff;
}

.business-app-rail-label {
  min-width: 0;
  line-height: 1.25;
}

.business-app-rail-badge {
  flex: 0 0 auto;
  min-width: 1.1rem;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.1);
  color: inherit;
  font-size: 0.68rem;
  font-weight: 740;
  line-height: 1.2;
  text-align: center;
}

.business-app-rail-btn.active .business-app-rail-badge {
  background: rgba(255, 255, 255, 0.18);
}

/* Immersive business apps — fullscreen like Inbox CRM, with #business-app-rail
 * as the secondary sidebar for section subtabs. */
body.business-app-fullscreen {
  --portal-nav-h: 0px;
  --nav-h: 0px;
  --header-h: 0px;
  --business-mobile-nav-h: 0px;
  overflow: hidden;
}

body.business-app-fullscreen .main {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
}

body.business-app-fullscreen .app,
body.business-app-fullscreen.business-account .app {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 100svh;
  height: 100dvh;
  max-height: 100svh;
  max-height: 100dvh;
  overflow: hidden;
}

body.business-app-fullscreen .topbar,
body.business-app-fullscreen #portal-top-ribbons,
body.business-app-fullscreen .portal-top-ribbons,
body.business-app-fullscreen #business-mobile-nav,
body.business-app-fullscreen .business-mobile-nav,
body.business-app-fullscreen #portal-sidebar,
body.business-app-fullscreen .sidebar,
body.business-app-fullscreen .nav-primary,
body.business-app-fullscreen.business-account #business-mobile-nav,
body.business-app-fullscreen.business-account .business-mobile-nav,
body.business-app-fullscreen.business-account .business-mobile-heading,
body.business-app-fullscreen .business-portal-banner,
body.business-app-fullscreen #business-portal-banner,
body.business-app-fullscreen #nav-drawer-fab,
body.business-app-fullscreen #nav-drawer-backdrop,
body.business-app-fullscreen #nav-drawer-toggle,
body.business-app-fullscreen #portal-more,
body.business-app-fullscreen #nav-more-btn,
body.business-app-fullscreen .admin-access-banner,
body.business-app-fullscreen .business-verification-status-banner,
body.business-app-fullscreen .test-mode-banner {
  display: none !important;
}

/* Keep per-tab Assistant above the immersive workspace (z-index 80). */
body.business-app-fullscreen #business-tab-ask:not(.hidden),
body.business-app-fullscreen .business-tab-ask:not(.hidden) {
  display: block !important;
  z-index: 120;
  --tab-ask-top-gap: calc(18px + env(safe-area-inset-top, 0px));
}

/* Name-key / PayFast / JA connect dialogs + toasts live as #app siblings after
   .business-workspace. The fullscreen workspace is z-index 80, so default
   overlay stacking (modal 40, toast 50) hid New key and success toasts. */
body.business-app-fullscreen #modal-backdrop:not(.hidden),
body.business-app-fullscreen .modal-backdrop:not(.hidden) {
  z-index: 200;
}

body.business-app-fullscreen #toast:not(.hidden),
body.business-app-fullscreen .toast:not(.hidden) {
  z-index: 210;
}

body.business-app-fullscreen .business-workspace {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid !important;
  grid-template-columns: minmax(13rem, 15.5rem) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  width: 100%;
  height: 100svh;
  height: 100dvh;
  max-height: 100svh;
  max-height: 100dvh;
  margin: 0;
  padding: 0;
  background: var(--bg, #f3f3f4);
  overflow: hidden;
}

body.business-app-fullscreen .business-workspace-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  background: var(--bg, #f3f3f4);
}

body.business-app-fullscreen .business-workspace-body > .view:not(.hidden) {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(1rem, 2.2vw, 1.5rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

body.business-app-fullscreen.business-app-open .business-app-rail:not(.hidden),
body.business-app-fullscreen #business-app-rail:not(.hidden) {
  display: flex !important;
  flex-direction: column;
  gap: 0.35rem;
  position: relative;
  top: auto;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0.85rem 0.7rem 0.9rem;
  border: 0;
  border-right: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 0;
  background: #ffffff;
  box-shadow: none;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

body.business-app-fullscreen .business-app-rail-brand {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  padding: 0.15rem 0.2rem 0.85rem;
  flex: 0 0 auto;
}

body.business-app-fullscreen .business-app-rail-brand-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
}

body.business-app-fullscreen .business-app-rail-brand-identity {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

body.business-app-fullscreen .business-app-rail-back {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 12px;
  background: var(--mist, #fafafa);
  color: var(--muted, #6a6a6e);
  cursor: pointer;
  flex: 0 0 auto;
}

body.business-app-fullscreen .business-app-rail-back:hover {
  background: rgba(18, 18, 18, 0.06);
  color: var(--ink, #121212);
}

body.business-app-fullscreen .business-app-rail-back svg {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
}

body.business-app-fullscreen .business-app-rail-app-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 12px;
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 1px 2px rgba(18, 18, 18, 0.08);
}

body.business-app-fullscreen .business-app-rail-app-icon svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

body.business-app-fullscreen .business-app-rail-brand-copy {
  min-width: 0;
  overflow: hidden;
}

body.business-app-fullscreen .business-app-rail-wordmark.brand-wordmark,
body.business-app-fullscreen .business-app-rail-app-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.business-app-fullscreen .business-app-rail-wordmark.brand-wordmark {
  display: block;
  font-family: var(--font-display, "Syne", "DM Sans", sans-serif);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--ink, #121212);
}

body.business-app-fullscreen .business-app-rail-wordmark .brand-go {
  margin-left: 0.28em;
}

body.business-app-fullscreen .business-app-rail-app-name {
  margin: 0.15rem 0 0;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--muted, #6a6a6e);
  line-height: 1.2;
}

body.business-app-fullscreen .business-app-rail-title {
  display: none;
}

body.business-app-fullscreen .business-app-rail-collapse {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 12px;
  background: var(--mist, #fafafa);
  color: var(--muted, #6a6a6e);
  cursor: pointer;
  flex: 0 0 auto;
}

body.business-app-fullscreen .business-app-rail-collapse:hover {
  background: rgba(18, 18, 18, 0.06);
  color: var(--ink, #121212);
}

body.business-app-fullscreen .business-app-rail-collapse svg {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
}

body.business-account.business-app-open.business-app-rail-collapsed .business-workspace,
body.business-app-fullscreen.business-app-rail-collapsed .business-workspace {
  grid-template-columns: 3.25rem minmax(0, 1fr);
}

body.business-app-rail-collapsed .business-app-rail-nav,
body.business-app-rail-collapsed .business-app-rail-title,
body.business-app-rail-collapsed .business-app-rail-brand-identity,
body.business-app-rail-collapsed .business-app-rail-app-icon,
body.business-app-rail-collapsed .business-app-rail-brand-copy,
body.business-app-rail-collapsed .business-app-rail-more,
body.business-app-rail-collapsed .business-app-rail-more-backdrop {
  display: none !important;
}

body.business-app-rail-collapsed .business-app-rail-brand,
body.business-app-rail-collapsed .business-app-rail-brand-tools {
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  padding: 0.15rem 0 0;
}

body.business-app-rail-collapsed .business-app-rail-collapse svg {
  transform: rotate(180deg);
}

@media (max-width: 900px) {
  body.business-app-fullscreen .business-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  body.business-app-fullscreen.business-app-open .business-app-rail:not(.hidden),
  body.business-app-fullscreen #business-app-rail:not(.hidden) {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: auto;
    z-index: 90;
    display: flex !important;
    flex-direction: row;
    align-items: stretch;
    gap: 0.2rem;
    margin: 0;
    padding: 0.4rem 0.45rem calc(0.4rem + env(safe-area-inset-bottom, 0px));
    border: 0;
    border-top: 1px solid rgba(18, 18, 18, 0.1);
    border-right: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: 0 -8px 24px rgba(18, 18, 18, 0.08);
    overflow: visible;
  }

  body.business-app-fullscreen .business-app-rail-brand {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0;
    flex: 0 0 auto;
  }

  body.business-app-fullscreen .business-app-rail-app-icon,
  body.business-app-fullscreen .business-app-rail-brand-copy {
    display: none;
  }

  body.business-app-fullscreen .business-app-rail-back {
    width: 2.6rem;
    height: auto;
    min-height: 2.6rem;
    border: 0;
    border-radius: 12px;
    background: transparent;
  }

  body.business-app-fullscreen .business-app-rail-collapse {
    display: none;
  }

  body.business-app-fullscreen .business-app-rail-nav {
    flex: 1 1 auto;
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.2rem;
    min-width: 0;
  }

  body.business-app-fullscreen .business-workspace-body > .view:not(.hidden) {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 900px) {
  body.business-account.business-app-open .business-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  body.business-account.business-app-open .main {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }

  /* Standalone / leftover rail chrome — business dashboard phones use the
   * Account-style subtab sheet instead of a congested bottom tab bar. */
  body.business-account.business-app-open .business-app-rail:not(.hidden) {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    z-index: 42;
    display: block;
    gap: 0;
    margin: 0;
    padding: 0.4rem 0.45rem calc(0.4rem + env(safe-area-inset-bottom, 0px));
    border: 0;
    border-top: 1px solid rgba(18, 18, 18, 0.1);
    border-radius: 0;
    background: #fff;
    box-shadow: 0 -8px 24px rgba(18, 18, 18, 0.08);
    transform: none;
    overflow: visible;
  }

  .business-app-rail-title {
    display: none;
  }

  .business-app-rail-nav {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.2rem;
    overflow: visible;
    padding: 0;
  }

  .business-app-rail-btn {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.55rem 0.35rem;
    border-radius: 12px;
    font-size: 0.74rem;
    font-weight: 650;
    text-align: center;
    white-space: nowrap;
  }

  .business-app-rail-label {
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .business-app-rail-badge {
    min-width: 0.95rem;
    padding: 0.05rem 0.28rem;
    font-size: 0.62rem;
  }

  .business-app-rail-more-backdrop {
    position: fixed;
    inset: 0;
    z-index: 41;
    display: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(12, 12, 14, 0.48);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    cursor: pointer;
  }

  .business-app-rail-more-backdrop.is-open {
    display: block;
  }

  .business-app-rail-more-backdrop.hidden {
    display: none !important;
  }

  .business-app-rail-more {
    position: absolute;
    left: 0.55rem;
    right: 0.55rem;
    bottom: calc(100% + 0.55rem);
    display: none;
    grid-template-columns: 1fr;
    gap: 0.45rem;
    margin: 0;
    padding: 0.7rem 0.65rem 0.65rem;
    border: 1px solid rgba(18, 18, 18, 0.14);
    border-radius: 18px;
    background:
      linear-gradient(180deg, #ffffff 0%, #f7f7f8 100%);
    box-shadow:
      0 0 0 1px rgba(255, 255, 255, 0.7) inset,
      0 18px 48px rgba(18, 18, 18, 0.28),
      0 2px 8px rgba(18, 18, 18, 0.12);
    z-index: 44;
  }

  .business-app-rail-more.is-open {
    display: grid;
  }

  .business-app-rail-more.hidden {
    display: none !important;
  }

  .business-app-rail-more-title {
    margin: 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 740;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted);
  }

  .business-app-rail-more-list {
    display: grid;
    gap: 0.3rem;
  }

  .business-app-rail-more .business-app-rail-btn {
    justify-content: flex-start;
    text-align: left;
    padding: 0.8rem 0.9rem;
    font-size: 0.9rem;
    border: 1px solid rgba(18, 18, 18, 0.08);
    background: #fff;
    box-shadow: 0 1px 2px rgba(18, 18, 18, 0.04);
  }

  .business-app-rail-more .business-app-rail-btn.active {
    border-color: transparent;
  }

  .business-app-rail-more-btn {
    flex: 0.85 1 0;
  }
}

@keyframes boFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes boSlideIn {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes boOrbDrift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-6%, 8%) scale(1.08); }
}

@keyframes boGridShift {
  0% { background-position: 0 0; }
  100% { background-position: 48px 48px; }
}

@keyframes boPopupIn {
  from { opacity: 0; transform: translateY(16px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes boAppPop {
  from { opacity: 0; transform: translateY(12px) scale(0.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes boIconDrift {
  0%, 100% {
    transform:
      translate3d(0, 0, var(--bo-z, 0px))
      rotateX(var(--bo-rx, 12deg))
      rotateY(var(--bo-ry, -16deg))
      rotateZ(var(--bo-rz, -4deg));
  }
  50% {
    transform:
      translate3d(var(--bo-dx, 6px), var(--bo-dy, -12px), calc(var(--bo-z, 0px) + 28px))
      rotateX(calc(var(--bo-rx, 12deg) + 8deg))
      rotateY(calc(var(--bo-ry, -16deg) + 14deg))
      rotateZ(calc(var(--bo-rz, -4deg) + 3deg));
  }
}

@keyframes boOrbitPulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 0.85; transform: scale(1.06); }
}

@keyframes boCueFade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes boNetDraw {
  0% { stroke-dashoffset: 120; opacity: 0.25; }
  40% { opacity: 0.7; }
  100% { stroke-dashoffset: 0; opacity: 0.45; }
}

@keyframes boNetPulse {
  0%, 100% { transform: scale(1); opacity: 0.55; }
  50% { transform: scale(1.55); opacity: 1; }
}

@keyframes boLivePulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.12); opacity: 0.85; }
}

@keyframes boPhraseCycle {
  0%, 8% { opacity: 0; transform: translateY(8px); }
  12%, 20% { opacity: 1; transform: translateY(0); }
  24%, 100% { opacity: 0; transform: translateY(-6px); }
}

@keyframes boMarkIn {
  from { opacity: 0; transform: translateY(10px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes boDeviceBob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.business-overview {
  display: grid;
  gap: 1.5rem;
  width: 100%;
  min-width: 0;
  font-family: var(--bo-body);
  color: var(--bo-ink);
  background: var(--bg, #f3f3f4);
  padding-bottom: 1.25rem;
}

/* App showcase: drift R→mid while growing, fade, then ensemble row, loop */
@keyframes boSpotlightDrift {
  0% {
    opacity: 0;
    transform: translateX(58%) scale(0.42);
  }
  14% {
    opacity: 1;
  }
  72% {
    opacity: 1;
    transform: translateX(0) scale(1.12);
  }
  100% {
    opacity: 0;
    transform: translateX(0) scale(1.24);
  }
}

html.overview-popup-lock,
html.overview-popup-lock body {
  overflow: hidden;
}

/* ============================================================
 * Business mobile/tablet navigation:
 * top ribbon replaced by a "TuMicha Go Business" heading and a
 * bottom "Account" tab that opens a sheet with all the tabs.
 * ============================================================ */
.business-mobile-heading,
.personal-mobile-heading,
.business-mobile-nav {
  display: none;
}

@keyframes boSheetUp {
  from {
    transform: translateY(16px);
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}

/* Phone + tablet portrait: never cram section children onto the bottom bar. */
@media (max-width: 700px), (min-width: 701px) and (max-width: 1024px) and (orientation: portrait) {
  body.business-account:not(.standalone-app) #business-app-rail,
  body.business-account:not(.standalone-app).business-app-open #business-app-rail,
  body.business-account:not(.standalone-app).business-app-fullscreen #business-app-rail,
  body.business-account:not(.standalone-app).business-app-fullscreen.business-app-open .business-app-rail,
  body.business-account:not(.standalone-app).business-app-fullscreen #business-app-rail:not(.hidden),
  body.business-account:not(.standalone-app).business-app-fullscreen.business-app-open .business-app-rail:not(.hidden) {
    display: none !important;
  }

  body.business-account.business-app-fullscreen:not(.standalone-app) #business-mobile-nav,
  body.business-account.business-app-fullscreen:not(.standalone-app) .business-mobile-nav {
    display: flex !important;
  }
}

/* Account menu sheet (all the tabs). */
.business-mobile-menu[hidden] {
  display: none;
}

.business-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: auto;
}

.business-mobile-menu-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  background: rgba(15, 23, 42, 0.45);
  cursor: pointer;
}

.business-mobile-menu-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 640px;
  max-height: 80vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 20px 20px 0 0;
  padding: 0.85rem 0.85rem calc(1rem + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -14px 44px rgba(15, 23, 42, 0.28);
  animation: boSheetUp 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.business-mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.35rem 0.4rem 0.7rem;
}

.business-mobile-menu-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.08rem;
  letter-spacing: -0.03em;
  color: #121212;
}

.business-mobile-menu-title .logo-go {
  font-style: normal;
  font-weight: 600;
  opacity: 0.72;
}

.business-mobile-menu-close,
.business-mobile-menu-back {
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0.35rem;
  border-radius: 10px;
  color: #121212;
}

.business-mobile-menu-close svg,
.business-mobile-menu-back svg {
  width: 22px;
  height: 22px;
}

.business-mobile-subtab-sheet .business-mobile-menu-header {
  gap: 0.35rem;
}

.business-mobile-subtab-sheet .business-mobile-menu-title {
  flex: 1 1 auto;
  min-width: 0;
}

.business-mobile-menu-list {
  display: grid;
  gap: 0.15rem;
}

.business-mobile-menu-item {
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-height: 44px;
  padding: 0.9rem 0.75rem;
  border-radius: 12px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  color: #121212;
  pointer-events: auto;
  touch-action: manipulation;
}

.business-mobile-menu-item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  color: #4b4b4b;
}

.business-mobile-menu-item-icon svg {
  width: 25px;
  height: 25px;
}

.business-mobile-menu-item:hover,
.business-mobile-menu-item.is-active {
  background: rgba(18, 18, 18, 0.06);
}

.business-mobile-menu-item.is-active .business-mobile-menu-item-icon {
  color: #121212;
}

.business-mobile-menu-item.is-signout .business-mobile-menu-item-icon {
  color: #b91c1c;
}

.business-mobile-menu-item.is-signout {
  color: #b91c1c;
}

html.business-mobile-menu-lock,
html.business-mobile-menu-lock body {
  overflow: hidden;
}

@keyframes jaAdvertFade {
  from { opacity: 0.15; }
  to { opacity: 1; }
}

@keyframes jaAdvertSlideNext {
  from {
    opacity: 0.2;
    transform: translateX(12%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes jaAdvertSlidePrev {
  from {
    opacity: 0.2;
    transform: translateX(-12%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.just-adverts-popup {
  position: fixed;
  inset: 0;
  /* Above sticky portal ribbons (z-index 70) and shop chrome. */
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}

.just-adverts-popup.hidden {
  display: none !important;
}

.just-adverts-popup-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(10, 10, 12, 0.62);
  cursor: pointer;
}

.just-adverts-popup-card {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  border-radius: 18px;
  overflow: hidden;
  background: #0f0f11;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}

.just-adverts-popup-card.is-landscape {
  width: min(720px, 100%);
}

.just-adverts-popup-card.is-portrait {
  width: min(420px, 92vw);
}

.just-adverts-popup-card.is-landscape .just-adverts-popup-media {
  aspect-ratio: 16 / 9;
}

.just-adverts-popup-card.is-portrait .just-adverts-popup-media {
  --ja-banner-max-h: min(82vh, 720px);
  aspect-ratio: 9 / 16;
}

.just-adverts-popup-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.just-adverts-popup-badge.is-just-ad {
  letter-spacing: 0.03em;
  text-transform: none;
}

.just-adverts-popup-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #121212;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.just-adverts-popup-close.hidden {
  display: none !important;
}

.just-adverts-popup-media {
  --ja-banner-max-h: min(80vh, 640px);
  aspect-ratio: var(--ja-media-aspect, 16 / 9);
  width: 100%;
  max-width: 100%;
  min-height: 200px;
  max-height: var(--ja-banner-max-h);
  margin: 0;
  background: #0f0f11;
  position: relative;
  overflow: hidden;
}

.just-adverts-popup-video,
.just-adverts-popup-image {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  /* Fill the popup stage completely (stills + video). */
  object-fit: cover;
  object-position: center;
  background: #0f0f11;
}

.branch-status-editor {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 4px;
  margin-bottom: 8px;
  border-top: 1px solid var(--border);
}

.branch-status-editor-head h4 {
  margin: 12px 0 4px;
}

.branch-status-editor-head .muted-line,
.branch-status-live-hint {
  margin: 0;
}

.branch-status-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.branch-status-list-row {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 10px;
  align-items: center;
}

.branch-status-list-thumb {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--mist);
  display: grid;
  place-items: center;
}

.branch-status-list-thumb img,
.branch-status-list-thumb video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.branch-status-list-fallback {
  font-weight: 700;
  color: var(--muted);
}

.branch-status-list-copy p {
  margin: 0;
}

.branch-status-viewers {
  margin-top: 4px;
  padding: 10px 12px;
  border: 1px solid var(--border, #e4e2de);
  border-radius: 12px;
  background: color-mix(in srgb, var(--mist, #f5f4f2) 70%, transparent);
}

.branch-status-viewers-count {
  margin: 0 0 6px;
  font-size: 0.85rem;
  font-weight: 650;
  color: var(--text, #1a1a1a);
}

.branch-status-viewers-list {
  margin: 0;
  padding-left: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.82rem;
  color: var(--muted, #666);
}

.branch-status-viewers-empty {
  margin: 2px 0 0;
}

.branch-status-editor .media-preview video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.branch-status-popup .branch-status-card {
  width: min(380px, 100%);
  max-height: min(92vh, 780px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #0c0d10;
  color: #f5f5f6;
}

.branch-status-chrome {
  flex: 0 0 auto;
  display: grid;
  gap: 10px;
  padding: 12px 12px 0;
  position: relative;
  z-index: 4;
}

.branch-status-progress {
  display: flex;
  gap: 3px;
  padding: 0;
}

.branch-status-progress-seg {
  flex: 1;
  height: 2.5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.28);
  overflow: hidden;
}

.branch-status-progress-seg i {
  display: block;
  width: 0;
  height: 100%;
  background: #fff;
  border-radius: inherit;
}

.branch-status-progress-seg.is-done i {
  width: 100%;
}

.branch-status-progress-seg.is-active i {
  width: 100%;
  animation: branch-status-progress-fill 4.5s linear forwards;
}

.branch-status-progress-seg.is-active.is-video i {
  width: 100%;
  animation: none;
}

@keyframes branch-status-progress-fill {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

.branch-status-header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
}

.branch-status-identity {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.branch-status-popup-logo {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  flex: 0 0 auto;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.12);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
}

.branch-status-popup-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.branch-status-identity-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.branch-status-popup-shop {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.2;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.branch-status-popup-counter {
  margin: 0;
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.7);
}

.branch-status-popup-close {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.branch-status-popup-close:hover {
  background: rgba(255, 255, 255, 0.24);
}

.branch-status-stage {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  margin: 12px;
  border-radius: 14px;
  overflow: hidden;
  background: #15161a;
}

.branch-status-slide-hitbox {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.branch-status-hit {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}

.branch-status-popup-media {
  width: 100%;
  aspect-ratio: 9 / 14;
  max-height: min(58vh, 520px);
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  background: #111;
}

.branch-status-popup-image,
.branch-status-popup-video,
.branch-status-popup-fallback {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.branch-status-popup-fallback {
  display: grid;
  place-items: center;
  font-size: 2.4rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(160deg, #333, #111);
}

.branch-status-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  padding: 28px 14px 14px;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.72));
  pointer-events: none;
}

.branch-status-popup-text {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.35;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.branch-status-popup-text:empty,
.branch-status-popup-text[hidden] {
  display: none;
}

.branch-status-caption.is-empty {
  display: none;
}

.branch-status-popup-actions {
  flex: 0 0 auto;
  display: flex;
  gap: 8px;
  padding: 0 12px 12px;
  position: relative;
  z-index: 3;
}

.branch-status-popup-actions .primary-btn,
.branch-status-popup-actions .secondary-btn {
  flex: 1;
  width: auto;
}

.branch-status-popup-actions .secondary-btn {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.22);
}

@media (max-width: 960px) {
  .branch-status-popup .branch-status-card {
    width: min(100%, 100vw - 24px);
    max-height: min(94vh, 860px);
  }

  .branch-status-popup-media {
    aspect-ratio: 9 / 16;
    max-height: min(64vh, 620px);
  }
}

.content-report-dialog {
  position: fixed;
  inset: 0;
  z-index: 12040;
  display: grid;
  place-items: center;
  padding: 16px;
  box-sizing: border-box;
}

.content-report-dialog.hidden {
  display: none !important;
}

.content-report-dialog-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(10, 12, 16, 0.55);
  cursor: pointer;
}

.content-report-dialog-card {
  position: relative;
  z-index: 1;
  width: min(420px, calc(100vw - 32px));
  max-height: min(90vh, 720px);
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0;
  padding: 20px 18px 16px;
  border: 0;
  border-radius: 16px;
  background: #fff;
  color: #14161a;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
  box-sizing: border-box;
}

.content-report-dialog-head {
  display: grid;
  gap: 4px;
}

.content-report-dialog-card h3,
.content-report-dialog-head h3 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.25;
  color: #14161a;
}

.content-report-subtitle {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.35;
  font-weight: 400;
  color: #5b6472;
}

.content-report-reasons {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

.content-report-reasons-legend {
  margin: 0 0 2px;
  padding: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
}

.content-report-dialog .content-report-reason,
.content-report-reasons .content-report-reason {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #e3e7ee;
  border-radius: 12px;
  background: #f7f8fa;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.3;
  color: #1f2430;
  cursor: pointer;
  box-sizing: border-box;
}

.content-report-dialog .content-report-reason:hover {
  border-color: #cfd6e2;
  background: #f1f3f7;
}

.content-report-dialog .content-report-reason:has(input:checked),
.content-report-reasons .content-report-reason:has(input:checked) {
  border-color: #1f2430;
  background: #fff;
  box-shadow: inset 0 0 0 1px #1f2430;
}

.content-report-dialog .content-report-reason input[type='radio'],
.content-report-reasons .content-report-reason input[type='radio'] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
  accent-color: #1f2430;
  border: 0;
  background: transparent;
  appearance: auto;
  -webkit-appearance: radio;
}

.content-report-dialog .content-report-reason span {
  min-width: 0;
  flex: 1 1 auto;
}

.content-report-detail {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.content-report-dialog .content-report-detail-label,
.content-report-detail-label {
  display: block;
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: #5b6472;
}

.content-report-dialog .content-report-detail-input,
.content-report-detail-input {
  width: 100%;
  min-height: 84px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #d5dae3;
  border-radius: 12px;
  background: #fff;
  color: #14161a;
  font: inherit;
  font-size: 0.95rem;
  line-height: 1.4;
  resize: vertical;
  box-sizing: border-box;
}

.content-report-dialog .content-report-detail-input:focus {
  outline: 2px solid rgba(31, 36, 48, 0.2);
  outline-offset: 1px;
  border-color: #1f2430;
}

.content-report-dialog-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.content-report-dialog-actions .primary-btn,
.content-report-dialog-actions .secondary-btn {
  min-width: 110px;
}

@media (max-width: 520px) {
  .content-report-dialog {
    padding: 12px;
    align-items: end;
  }

  .content-report-dialog-card {
    width: 100%;
    max-height: min(88vh, 720px);
    border-radius: 16px 16px 12px 12px;
    padding: 18px 14px 14px;
  }

  .content-report-dialog-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .content-report-dialog-actions .primary-btn,
  .content-report-dialog-actions .secondary-btn {
    min-width: 0;
    width: 100%;
  }
}

.shop-menu-report-btn {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6b7280;
  font: inherit;
  font-size: 0.8rem;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.shop-menu-report-btn:hover {
  color: #111827;
}

.shop-recommend-popup .shop-recommend-card {
  width: min(420px, 100%);
  background: #111214;
}

.shop-recommend-open {
  display: grid;
  gap: 0;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.shop-recommend-media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 180px;
  background: #0f0f11;
  overflow: hidden;
}

.shop-recommend-image,
.shop-recommend-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.shop-recommend-fallback {
  display: grid;
  place-items: center;
  font-size: 2.4rem;
  font-weight: 700;
  color: #f7f7f8;
  background:
    radial-gradient(120% 90% at 18% 12%, rgba(255, 255, 255, 0.18), transparent 52%),
    linear-gradient(145deg, #0f766e 0%, #115e59 42%, #0b1220 100%);
}

.shop-recommend-body {
  display: grid;
}

.shop-recommend-copy {
  display: grid;
  gap: 4px;
  padding: 14px 16px 8px;
  color: #f7f7f8;
}

.shop-recommend-shop {
  margin: 0;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.78;
}

.shop-recommend-title {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.shop-recommend-price {
  margin: 2px 0 0;
  font-size: 1rem;
  font-weight: 700;
}

.shop-recommend-cta {
  margin: 6px 0 0;
  font-size: 0.86rem;
  opacity: 0.84;
}

.shop-recommend-actions {
  display: grid;
  padding: 0 16px 16px;
}

.shop-recommend-add-btn {
  width: 100%;
  min-height: 44px;
  border-radius: 12px;
  font-weight: 700;
}

.shop-recommend-add-btn:disabled {
  opacity: 0.65;
  cursor: wait;
}

.shop-menu-item.is-recommend-focus {
  outline: 2px solid rgba(15, 118, 110, 0.85);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(15, 118, 110, 0.14);
  border-radius: 14px;
  transition: box-shadow 180ms ease, outline-color 180ms ease;
}

@media (max-width: 960px) {
  .just-adverts-popup {
    padding: 12px;
  }

  .just-adverts-popup-card {
    width: min(100%, 100vw - 24px);
    border-radius: 16px;
  }

  .shop-recommend-popup .shop-recommend-card {
    width: min(100%, 100vw - 24px);
  }

  .just-adverts-popup-card.is-portrait {
    width: min(100%, 420px);
  }

  .just-adverts-popup-card.is-landscape .just-adverts-popup-media {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
    min-height: min(42vw, 220px);
    max-height: min(48vh, 360px);
  }

  .just-adverts-popup-card.is-portrait .just-adverts-popup-media {
    aspect-ratio: 9 / 16;
    width: 100%;
    height: auto;
    min-height: min(70vh, 560px);
    max-height: min(82vh, 720px);
  }

  .just-adverts-popup-media {
    width: 100%;
  }

  .just-adverts-popup-video,
  .just-adverts-popup-image {
    object-fit: cover;
    object-position: center;
  }
}

/* —— Standalone App Store products (independent of business dashboard) —— */
html.standalone-app-boot body.portal-app,
body.portal-app.standalone-app {
  --standalone-banner-h: 64px;
}

body.portal-app.standalone-app #portal-sidebar,
body.portal-app.standalone-app #business-portal-banner,
body.portal-app.standalone-app #nav-drawer-toggle,
body.portal-app.standalone-app #portal-more,
body.portal-app.standalone-app #nav-more-btn {
  display: none !important;
}

body.portal-app.standalone-app .app {
  grid-template-columns: 1fr;
}

.standalone-app-banner {
  position: sticky;
  top: 0;
  z-index: 40;
  background: linear-gradient(180deg, #f7f7f8 0%, #f0f0f2 100%);
  border-bottom: 1px solid rgba(20, 20, 24, 0.08);
}

.standalone-app-banner.hidden {
  display: none !important;
}

.standalone-app-banner-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  max-width: 1200px;
  margin: 0 auto;
}

.standalone-app-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.standalone-app-brand img {
  width: 36px;
  height: 36px;
  border-radius: 8px;
}

.standalone-app-titles {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.standalone-app-titles strong {
  font-size: 1rem;
  font-weight: 650;
  color: #141418;
  line-height: 1.2;
}

.standalone-app-titles span {
  font-size: 0.75rem;
  color: #5c5c66;
}

.standalone-app-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.standalone-app-link {
  text-decoration: none;
  white-space: nowrap;
}

.standalone-app-tabs {
  display: flex;
  gap: 4px;
  padding: 0 12px 10px;
  max-width: 1200px;
  margin: 0 auto;
  overflow-x: auto;
}

.standalone-app-tabs.hidden {
  display: none !important;
}

.standalone-app-tab {
  appearance: none;
  border: 0;
  background: transparent;
  color: #5c5c66;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  padding: 8px 12px;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
}

.standalone-app-tab:hover,
.standalone-app-tab:focus-visible {
  background: rgba(20, 20, 24, 0.06);
  color: #141418;
}

.standalone-app-tab.is-active {
  background: #141418;
  color: #fff;
}

@media (max-width: 720px) {
  .standalone-app-banner-inner {
    padding: 10px 12px;
  }

  .standalone-app-actions .standalone-app-link {
    display: none;
  }

  .standalone-app-titles span {
    display: none;
  }
}

html[data-standalone-app="gochat"] body.portal-app {
  background: #fff;
}

html[data-standalone-app="gochat"] #app:not(.hidden) {
  display: block !important;
  padding: 0 !important;
  grid-template-columns: none !important;
  background: #fff;
}

html[data-standalone-app="gochat"] #app:not(.hidden) .main,
html[data-standalone-app="gochat"] #app:not(.hidden) .business-workspace,
html[data-standalone-app="gochat"] #app:not(.hidden) .business-workspace-body {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: none !important;
  overflow: hidden !important;
}

.deliveries-fleet-wrap {
  display: grid;
  gap: 1.25rem;
}

.courier-settings-form .consent-check {
  margin-top: 0.15rem;
}

.courier-settings-form .courier-field {
  display: grid;
  gap: 0.4rem;
  margin: 0 0 1rem;
  font-weight: 500;
}

.courier-settings-form .courier-field-label {
  font-weight: 600;
  color: var(--text, #141418);
}

.courier-settings-form .courier-mode-panel {
  margin: 0 0 1rem;
}

.courier-settings-form .courier-mode-hint {
  margin: 0.35rem 0 0;
  line-height: 1.45;
}

.courier-settings-form .courier-shared-fields {
  margin-top: 0.25rem;
}

/* Portal custom dropdown — matches admin dashboard select chrome */
body.portal-app .portal-select {
  position: relative;
  width: 100%;
  min-width: 0;
}

body.portal-app .portal-select-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  background: transparent !important;
}

body.portal-app .portal-select-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid rgba(20, 20, 24, 0.14);
  border-radius: 16px;
  background: var(--mist, #f7f7f8);
  color: var(--text, #141418);
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.03);
  text-align: left;
  font: inherit;
  line-height: 1.35;
  cursor: pointer;
}

body.portal-app .portal-select-trigger:hover {
  border-color: rgba(18, 18, 18, 0.18);
}

body.portal-app .portal-select.is-open .portal-select-trigger,
body.portal-app .portal-select-trigger:focus {
  outline: none;
  border-color: rgba(18, 18, 18, 0.22);
  box-shadow: 0 0 0 3px rgba(18, 18, 18, 0.06);
}

body.portal-app .portal-select.is-disabled .portal-select-trigger,
body.portal-app .portal-select-trigger:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

body.portal-app .portal-select-value {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.portal-app .portal-select-chevron {
  width: 0.7rem;
  height: 0.7rem;
  flex: 0 0 auto;
  border-right: 1.8px solid #6a6a6e;
  border-bottom: 1.8px solid #6a6a6e;
  transform: rotate(45deg) translateY(-1px);
  transition: transform 140ms ease;
}

body.portal-app .portal-select.is-open .portal-select-chevron {
  transform: rotate(225deg) translateY(-1px);
}

body.portal-app .portal-select-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: auto;
  z-index: 80;
  display: none;
  width: max-content;
  min-width: 100%;
  max-width: min(24rem, calc(100vw - 1.5rem));
  max-height: min(24rem, 70vh);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid rgba(18, 18, 18, 0.1);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(18, 18, 18, 0.12);
  box-sizing: border-box;
}

body.portal-app .portal-select.is-open .portal-select-menu {
  display: grid;
  gap: 0.15rem;
}

body.portal-app .portal-select-option {
  width: 100%;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--text, #141418);
  padding: 0.65rem 0.8rem;
  text-align: left;
  font: inherit;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.portal-app .portal-select-option:hover,
body.portal-app .portal-select-option:focus {
  background: #f3f3f4;
  outline: none;
}

body.portal-app .portal-select-option.is-selected {
  background: #ececed;
  font-weight: 600;
}

body.portal-app .portal-select-option.is-disabled,
body.portal-app .portal-select-option:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

#gochat-settings-avatar {
  width: 3.5rem;
  height: 3.5rem;
  font-size: 1.05rem;
  flex: 0 0 auto;
}

@keyframes gochat-rec-pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.45;
    transform: scale(0.85);
  }
}

@keyframes gochat-media-shimmer {
  0% {
    background-position: 120% 0;
  }
  100% {
    background-position: -120% 0;
  }
}

/* --- Per-tab Business Assistant (collapsed FAB) -------------------- */
.business-tab-ask {
  /* Keep the open sheet below the top portal ribbon / banner. */
  --tab-ask-top-gap: calc(72px + env(safe-area-inset-top, 0px) + 16px);
  --tab-ask-bottom-gap: calc(18px + env(safe-area-inset-bottom, 0px));
  --tab-ask-max-h: min(
    92vh,
    960px,
    calc(100dvh - var(--tab-ask-top-gap) - var(--tab-ask-bottom-gap))
  );
  position: fixed;
  z-index: 40;
  right: max(16px, env(safe-area-inset-right, 0px));
  bottom: var(--tab-ask-bottom-gap);
  width: min(380px, calc(100vw - 24px));
  pointer-events: none;
}

.business-tab-ask.is-open {
  width: min(780px, calc(100vw - 24px));
}

.business-tab-ask.hidden {
  display: none !important;
}

.business-tab-ask-toggle,
.business-tab-ask-sheet {
  pointer-events: auto;
}

.business-tab-ask-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  float: right;
  min-height: 48px;
  padding: 0 1rem 0 0.85rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, #0f766e 35%, var(--border, #d6d3d1));
  background: #0f766e;
  color: #f0fdfa;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.business-tab-ask-toggle-icon {
  display: inline-flex;
  width: 22px;
  height: 22px;
}

.business-tab-ask.is-open .business-tab-ask-toggle {
  display: none;
}

.business-tab-ask.is-collapsed .business-tab-ask-sheet {
  display: none;
}

.business-tab-ask-sheet {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: var(--tab-ask-max-h);
  max-height: var(--tab-ask-max-h);
  min-height: 0;
  border-radius: 18px;
  border: 1px solid var(--border, #d6d3d1);
  background: color-mix(in srgb, var(--panel, #fff) 94%, #fff);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}

.business-tab-ask-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid var(--border, #d6d3d1);
  background: color-mix(in srgb, #ccfbf1 35%, var(--panel, #fff));
}

.business-tab-ask-sheet-title {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.business-tab-ask-sheet-title strong {
  font-size: 0.98rem;
}

.business-tab-ask-sheet-title em {
  font-style: normal;
  color: #0f766e;
}

.business-tab-ask-scope-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted, #78716c);
}

.business-tab-ask-close {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 0.75rem;
  border-radius: 999px;
}

.business-tab-ask-scope-note {
  margin: 0;
  padding: 0.55rem 0.85rem 0;
  font-size: 0.78rem;
  color: var(--muted, #78716c);
  line-height: 1.35;
}

.business-tab-ask-starters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.65rem 0.85rem 0.35rem;
}

.business-tab-ask-starter {
  border: 1px solid var(--border, #d6d3d1);
  background: var(--bg, #fafaf9);
  color: var(--text, #1c1917);
  border-radius: 999px;
  padding: 0.35rem 0.7rem;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}

.business-tab-ask-starter:hover {
  border-color: color-mix(in srgb, #0f766e 45%, var(--border, #d6d3d1));
}

.business-tab-ask-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: grid;
  gap: 0.55rem;
  align-content: start;
  padding: 0.85rem 1.1rem;
  background: color-mix(in srgb, var(--bg, #fafaf9) 70%, #f8fafc);
}

.business-tab-ask-bubble {
  max-width: 92%;
  padding: 0.65rem 0.75rem;
  border-radius: 14px;
  font-size: 0.88rem;
  line-height: 1.4;
  white-space: pre-wrap;
  word-break: break-word;
}

.business-tab-ask-bubble--user {
  margin-left: auto;
  background: color-mix(in srgb, #0f766e 18%, #fff);
  color: var(--text, #1c1917);
}

.business-tab-ask-bubble--assistant {
  margin-right: auto;
  background: #fff;
  border: 1px solid var(--border, #d6d3d1);
}

.business-tab-ask-bubble--typing {
  color: var(--muted, #78716c);
  font-style: italic;
}

.business-tab-ask-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.5rem;
  padding: 0.7rem 0.85rem calc(0.7rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border, #d6d3d1);
  background: #fff;
}

.business-tab-ask-input {
  margin: 0;
  min-height: 44px;
  max-height: 110px;
  resize: none;
  border-radius: 12px;
  border: 1px solid var(--border, #d6d3d1);
  padding: 0.65rem 0.75rem;
  font: inherit;
  background: #fff;
  color: var(--text, #1c1917);
}

.business-tab-ask-form .primary-btn {
  min-width: 72px;
  min-height: 44px;
  border-radius: 12px;
}

@media (max-width: 860px) {
  .business-tab-ask {
    --tab-ask-bottom-gap: calc(72px + env(safe-area-inset-bottom, 0px));
    --tab-ask-max-h: min(
      88vh,
      900px,
      calc(100dvh - var(--tab-ask-top-gap) - var(--tab-ask-bottom-gap))
    );
    right: max(10px, env(safe-area-inset-right, 0px));
    bottom: var(--tab-ask-bottom-gap);
    width: min(100vw - 16px, 380px);
  }

  .business-tab-ask.is-open {
    width: min(100vw - 12px, 780px);
  }
}

.scanners-last-code,
.scanners-log {
  margin: 0.9rem 0 0;
}

.scanners-log-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.scanners-log-head h4 {
  margin: 0;
  font-size: 0.95rem;
}

.scanners-scan-empty {
  margin: 0;
}

.scanners-scan-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.scanners-scan-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.35rem 0.85rem;
  align-items: baseline;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  background: rgba(17, 17, 17, 0.04);
}

.scanners-scan-row.is-listed {
  border: 1px solid rgba(46, 125, 50, 0.22);
  background: rgba(232, 245, 233, 0.55);
}

.scanners-scan-code {
  min-width: 0;
  font-weight: 650;
  overflow-wrap: anywhere;
}

.scanners-scan-qty {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.scanners-scan-time {
  font-size: 0.78rem;
  color: var(--tumicha-muted, #7a6550);
  white-space: nowrap;
}

.scanners-scan-source {
  grid-column: 1 / -1;
  font-size: 0.72rem;
  color: var(--tumicha-muted, #7a6550);
}

.scanners-scan-match {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.8rem;
}

.scanners-scan-match-copy {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.scanners-scan-match strong {
  font-weight: 700;
}

.scanners-scan-match small {
  color: var(--tumicha-muted, #7a6550);
  font-size: 0.72rem;
}

.scanners-scan-match--miss,
.scanners-scan-match--ambiguous {
  color: var(--tumicha-muted, #7a6550);
}

.scanners-scan-match--hit {
  color: #1b5e20;
}

.scanners-scan-thumb {
  width: 3rem;
  height: 3rem;
  border-radius: 0.65rem;
  object-fit: cover;
  flex: 0 0 auto;
  background: rgba(17, 17, 17, 0.06);
  display: block;
}

.scanners-scan-thumb--sm {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 0.45rem;
}

.scanners-scan-thumb--fallback {
  display: inline-grid;
  place-items: center;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--tumicha-muted, #7a6550);
}

.scanners-scan-thumb-stack {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
}

.scanners-scan-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.scanners-scan-edit-btn {
  font-size: 0.78rem;
  padding: 0.35rem 0.65rem;
}

.scanners-product-editor {
  margin-top: 1rem;
  padding: 1rem 1.05rem 1.1rem;
  border-radius: 14px;
  border: 1px solid rgba(18, 18, 18, 0.1);
  background: rgba(255, 255, 255, 0.9);
  display: grid;
  gap: 0.85rem;
}

.scanners-product-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.scanners-product-editor-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-width: 0;
}

.scanners-product-media {
  width: 4.25rem;
  height: 4.25rem;
  border-radius: 0.85rem;
  overflow: hidden;
  flex: 0 0 auto;
  background: rgba(17, 17, 17, 0.06);
  display: grid;
  place-items: center;
}

.scanners-product-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.scanners-product-image-fallback {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--tumicha-muted, #7a6550);
}

.scanners-product-editor-head h4 {
  margin: 0 0 0.2rem;
  font-size: 1rem;
}

.scanners-product-editor-head .muted-line {
  margin: 0;
}

.scanners-product-form {
  display: grid;
  gap: 0.75rem;
}

.scanners-product-editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.25rem;
}

.barcode-camera-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: end center;
  padding: 1rem;
  background: rgba(17, 17, 17, 0.55);
}

.barcode-camera-overlay.hidden {
  display: none;
}

.barcode-camera-sheet {
  width: min(100%, 28rem);
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border-radius: 16px;
  background: #fff;
  color: #111;
}

.barcode-camera-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.barcode-camera-head h2 {
  margin: 0;
  font-size: 1.1rem;
}

.barcode-camera-stage {
  position: relative;
  min-height: 22rem;
  overflow: hidden;
  border-radius: 12px;
  background: #111;
}

.barcode-camera-stage video,
.barcode-camera-reader,
.barcode-camera-reader video,
.barcode-camera-reader canvas {
  width: 100%;
  height: 22rem;
  object-fit: cover;
  background: #111;
}

.barcode-camera-reader {
  position: relative;
}

.barcode-camera-reader #qr-shaded-region {
  border-width: 2px !important;
}

.barcode-camera-stage:has(.barcode-camera-reader:not(.hidden):not([hidden])) .barcode-camera-reticle {
  display: none;
}

.barcode-camera-reticle {
  position: absolute;
  inset: 10% 4%;
  border: 2px solid rgba(255, 255, 255, 0.85);
  border-radius: 10px;
  pointer-events: none;
}

.barcode-camera-status {
  margin: 0;
  font-size: 0.88rem;
  color: #6b6b6b;
}

.barcode-camera-modes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.barcode-camera-modes[hidden] {
  display: none;
}

.barcode-camera-mode {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.barcode-camera-mode.is-torch {
  background: #fff4d6;
  color: #8a5a00;
}

.barcode-camera-mode.is-flip {
  background: #e7f0ff;
  color: #1d4f91;
}

.barcode-camera-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.barcode-camera-actions .is-active {
  border-color: #2b1a0d;
  box-shadow: 0 0 0 2px rgba(43, 26, 13, 0.18);
  font-weight: 700;
}

#pos-terminals-empty {
  margin: 0;
}

#meetings-host-panel {
  display: grid;
  gap: 1.15rem;
}

#meetings-room-code {
  color: var(--meetings-ink);
  letter-spacing: 0.06em;
}

.app-tile-icon--meetings,
.app-tile-icon--intelligence {
  color: #fff;
}

.business-contract-status {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, #0f766e 8%, var(--panel, #fff));
  text-align: left;
  cursor: pointer;
}

.business-contract-status-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.business-contract-status-label {
  font-weight: 700;
  font-size: 0.92rem;
}

.business-contract-status-progress {
  font-size: 0.78rem;
  opacity: 0.78;
}

.business-contract-tick {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, currentColor 28%, transparent);
  flex: 0 0 auto;
  position: relative;
}

.business-contract-status[data-state='accepted'] .business-contract-tick,
.business-contract-status.is-accepted .business-contract-tick {
  border-color: #16a34a;
  background: #16a34a;
  animation: business-contract-tick-pop 0.55s ease;
}

.business-contract-status[data-state='accepted'] .business-contract-tick::after,
.business-contract-status.is-accepted .business-contract-tick::after {
  content: '';
  position: absolute;
  left: 6px;
  top: 3px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

@keyframes business-contract-tick-pop {
  0% { transform: scale(0.4); opacity: 0.4; }
  60% { transform: scale(1.18); }
  100% { transform: scale(1); opacity: 1; }
}

.business-contract-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: end center;
}

.business-contract-overlay.hidden,
.business-contract-overlay[hidden] {
  display: none;
}

.business-contract-overlay-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgb(15 23 42 / 0.45);
}

.business-contract-sheet {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  max-height: min(92vh, 900px);
  overflow: auto;
  padding: 18px 16px 24px;
  border-radius: 20px 20px 0 0;
  background: var(--panel, #fff);
  box-shadow: 0 -12px 40px rgb(15 23 42 / 0.18);
}

.business-contract-sheet-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.business-contract-kicker {
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.7;
}

.business-contract-sheet-head h2 {
  margin: 2px 0 0;
  font-size: 1.2rem;
}

.business-contract-guide {
  display: grid;
  gap: 12px;
}

.business-contract-toolbar,
.business-contract-nav,
.business-contract-tools,
.business-contract-ask {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.business-contract-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.business-contract-step {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  background: transparent;
  font-size: 0.75rem;
  font-weight: 700;
}

.business-contract-step.is-active {
  background: #0f766e;
  border-color: #0f766e;
  color: #fff;
}

.business-contract-step.is-done:not(.is-active) {
  background: color-mix(in srgb, #16a34a 18%, transparent);
  border-color: #16a34a;
}

.business-contract-section h4 {
  margin: 0 0 6px;
}

.business-contract-summary {
  margin: 0 0 8px;
  font-size: 0.92rem;
  opacity: 0.88;
}

.business-contract-body {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
  font-size: 0.95rem;
  line-height: 1.55;
  max-height: 42vh;
  overflow: auto;
  padding: 12px;
  border-radius: 12px;
  background: color-mix(in srgb, currentColor 5%, transparent);
}

.business-contract-ask input {
  flex: 1 1 180px;
  min-width: 0;
}

.business-contract-ai {
  padding: 10px 12px;
  border-radius: 12px;
  background: color-mix(in srgb, #0f766e 8%, transparent);
}

.business-contract-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.business-contract-prompt {
  border: 0;
  border-radius: 999px;
  padding: 6px 10px;
  background: color-mix(in srgb, currentColor 8%, transparent);
  font-size: 0.8rem;
}

.business-contract-party {
  display: grid;
  gap: 6px;
  margin: 0 0 12px;
}

.business-contract-party-row {
  display: grid;
  grid-template-columns: minmax(8rem, 34%) 1fr;
  gap: 8px;
  font-size: 0.9rem;
}

.business-contract-party-row dt {
  font-weight: 700;
  opacity: 0.75;
}

.business-contract-party-row dd {
  margin: 0;
}

.welcome-tour-overlay {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  padding: 16px 12px calc(16px + env(safe-area-inset-bottom, 0px));
  pointer-events: none;
}

.welcome-tour-overlay.is-docked {
  justify-content: flex-end;
  align-items: flex-end;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px));
}

.welcome-tour-overlay.hidden,
.welcome-tour-overlay[hidden] {
  display: none;
}

.welcome-tour-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(18, 18, 18, 0.22);
  pointer-events: none;
}

.welcome-tour-overlay.is-docked .welcome-tour-backdrop {
  background: transparent;
}

.welcome-tour-target,
[data-tour-selected='true'] {
  position: relative;
  z-index: 1;
  outline: 3px solid #0f766e;
  outline-offset: 3px;
  background-color: rgba(15, 118, 110, 0.1);
  box-shadow: 0 0 0 3px #0f766e, 0 0 0 8px rgba(15, 118, 110, 0.16);
  border-radius: 10px;
}

.welcome-tour-card {
  position: relative;
  z-index: 1;
  pointer-events: auto;
  width: min(460px, 100%);
  max-height: min(320px, 48dvh);
  padding: 16px 16px 14px;
  border-radius: 20px;
  background: #fff;
  color: #121212;
  border: 1px solid rgba(15, 118, 110, 0.12);
  box-shadow: 0 12px 32px rgba(15, 23, 22, 0.14);
  box-sizing: border-box;
  overflow: auto;
}

.welcome-tour-overlay.is-docked .welcome-tour-card {
  width: min(340px, calc(100vw - 24px));
  max-height: none;
  padding: 10px 12px;
  border-radius: 16px;
}

@media (max-width: 860px) {
  body.business-account .welcome-tour-overlay {
    padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  }
}

.welcome-tour-overlay.is-visible .welcome-tour-card {
  animation: welcome-tour-sheet-in 0.22s ease;
}

.welcome-tour-overlay.is-speaking .welcome-tour-play-orb {
  box-shadow: 0 0 0 6px rgba(15, 118, 110, 0.16);
}

@keyframes welcome-tour-sheet-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.welcome-tour-visual {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}

.welcome-tour-play {
  position: relative;
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.welcome-tour-overlay.is-docked .welcome-tour-visual {
  margin-bottom: 8px;
  gap: 10px;
}

.welcome-tour-overlay.is-docked .welcome-tour-play,
.welcome-tour-overlay.is-docked .welcome-tour-play-orb {
  flex-basis: 44px;
  width: 44px;
  height: 44px;
}

.welcome-tour-overlay.is-docked .welcome-tour-card h2 {
  font-size: 1rem;
}

.welcome-tour-overlay.is-docked .welcome-tour-tiles {
  display: none;
}

.welcome-tour-play-orb {
  position: relative;
  display: block;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #0f766e;
  box-shadow: 0 8px 18px rgba(15, 118, 110, 0.22);
}

.welcome-tour-play-orb::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 10px 0 10px 16px;
  border-color: transparent transparent transparent #fff;
  transform: translateX(3px);
}

.welcome-tour-play.is-speaking .welcome-tour-play-orb::after {
  display: none;
}

.welcome-tour-bars {
  display: none;
  position: absolute;
  inset: 0;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.welcome-tour-play.is-speaking .welcome-tour-bars {
  display: flex;
}

.welcome-tour-bars i {
  display: block;
  width: 4px;
  height: 14px;
  border-radius: 99px;
  background: #fff;
  animation: welcome-tour-bar 0.7s ease-in-out infinite;
}

.welcome-tour-bars i:nth-child(2) { animation-delay: 0.12s; height: 20px; }

.welcome-tour-bars i:nth-child(3) { animation-delay: 0.24s; }

@keyframes welcome-tour-bar {
  0%, 100% { transform: scaleY(0.55); }
  50% { transform: scaleY(1); }
}

.welcome-tour-play.needs-tap .welcome-tour-play-orb {
  animation: welcome-tour-tap 1.4s ease-in-out infinite;
}

@keyframes welcome-tour-tap {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

.welcome-tour-copy {
  min-width: 0;
  flex: 1;
}

.welcome-tour-dots {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 8px;
}

.welcome-tour-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d7e3e1;
}

.welcome-tour-dot.is-on {
  background: #0f766e;
  width: 16px;
  border-radius: 99px;
}

.welcome-tour-card h2 {
  margin: 0;
  font-family: var(--font-display, Syne, sans-serif);
  font-size: 1.28rem;
  line-height: 1.2;
  color: #121212;
}

.welcome-tour-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.welcome-tour-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.welcome-tour-tiles li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-height: 76px;
  padding: 10px 6px 8px;
  border-radius: 14px;
  background: #f4f7f6;
  color: #134e4a;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
}

.welcome-tour-tile-icon {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: #0f766e;
  position: relative;
}

.welcome-tour-tile-icon::after {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 3px;
  background: #fff;
}

.welcome-tour-tiles li:nth-child(2) .welcome-tour-tile-icon {
  background: #0d9488;
}

.welcome-tour-tiles li:nth-child(3) .welcome-tour-tile-icon {
  background: #115e59;
}

.welcome-tour-card #welcome-tour-next:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* Welcome tour CTAs use /shared/buttons.css (landing system). */

.welcome-tour-actions {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.welcome-tour-nav {
  display: flex;
  gap: 8px;
}

.welcome-tour-text-btn {
  border: 0;
  background: none;
  color: #6a6a6e;
  font: inherit;
  font-weight: 600;
  padding: 8px 0;
  cursor: pointer;
}

body.welcome-tour-active .app {
  padding-bottom: 220px;
  scroll-padding-bottom: 220px;
}

body.welcome-tour-docked .app {
  padding-bottom: 96px;
  scroll-padding-bottom: 96px;
}

/* Business dashboard: Inbox CRM sidebar chrome (not the top banner).
 * Soft white rail, folder-style nav, charcoal ink — matches .icrm-rail. */
body.business-account .account-strip {
  background: #ffffff !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08)) !important;
}

body.business-account .business-app-rail:not(.hidden),
body.business-account.business-app-open .business-app-rail:not(.hidden) {
  border: 1px solid rgba(18, 18, 18, 0.08);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(18, 18, 18, 0.08);
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
}

body.business-account .business-app-rail-btn {
  border: 1px solid transparent;
  border-radius: 12px;
  font-family: inherit;
  font-weight: 580;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

body.business-account .business-app-rail-btn:hover {
  background: var(--mist, #fafafa);
}

body.business-account .business-app-rail-btn.active {
  background: var(--mist, #fafafa);
  border-color: rgba(18, 18, 18, 0.12);
  color: var(--ink, #121212);
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
  font-weight: 720;
}

body.business-account .business-app-rail-btn.active .business-app-rail-badge {
  background: rgba(18, 18, 18, 0.06);
  color: var(--muted, #6a6a6e);
}

body.business-account:not(.standalone-app) .topbar,
body.portal-app.business-account .topbar {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

@media (max-width: 1024px) {
  body.business-account:not(.standalone-app) {
    --panel: #ffffff;
    --surface: #f3f3f4;
    --mist: #ececee;
    --sidebar: #ffffff;
    --border: #e4e4e7;
    --shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    --shadow-lift: 0 8px 20px rgba(15, 23, 42, 0.08);
    background: #f3f3f4;
  }

  body.business-account:not(.standalone-app) .app,
  body.business-account:not(.standalone-app) .main,
  body.business-account:not(.standalone-app) .business-workspace,
  body.business-account:not(.standalone-app) .business-workspace-body,
  body.business-account:not(.standalone-app) .business-workspace-main {
    background: #f3f3f4;
  }

  body.business-account:not(.standalone-app) .business-mobile-nav {
    background: #fff;
    border-top: 1px solid #e4e4e7;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
  }

  body.business-account:not(.standalone-app) .app-tile:hover {
    background: #f3f3f4;
  }
}

/* Inbox CRM — TuMicha organisation mailbox desk */
.icrm {
  --ic-bg: var(--bg, #f3f3f4);
  --ic-panel: var(--panel, #ffffff);
  --ic-ink: var(--ink, #121212);
  --ic-muted: var(--muted, #6a6a6e);
  --ic-faint: color-mix(in srgb, var(--muted, #6a6a6e) 72%, #fff);
  --ic-line: var(--border, rgba(18, 18, 18, 0.08));
  --ic-soft: var(--mist, #fafafa);
  --ic-hover: rgba(18, 18, 18, 0.035);
  --ic-selected: rgba(18, 18, 18, 0.08);
  --ic-accent: var(--ink, #121212);
  --ic-open: #121212;
  --ic-waiting: #b45309;
  --ic-won: var(--success, #15803d);
  --ic-closed: var(--muted, #6a6a6e);
  --ic-radius: var(--radius, 16px);
  --ic-radius-sm: 12px;
  position: relative;
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-height: min(78vh, 860px);
  flex: 1;
  background: var(--ic-bg);
  color: var(--ic-ink);
  font-family: var(--font-brand, "DM Sans", system-ui, -apple-system, sans-serif);
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
}

html[data-standalone-app="gmail"] #app:not(.hidden),
html[data-standalone-app="gmail"] #app:not(.hidden) .main,
html[data-standalone-app="gmail"] #app:not(.hidden) .business-workspace,
html[data-standalone-app="gmail"] #app:not(.hidden) .business-workspace-body {
  height: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.icrm-rail {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.85rem 0.7rem 0.9rem;
  min-height: 0;
  background: var(--ic-panel);
  border-right: 1px solid var(--ic-line);
  overflow-x: hidden;
  overflow-y: auto;
}

.icrm-rail-brand {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.15rem 0.2rem 0.85rem;
}

.icrm-back {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  background: var(--ic-soft);
  color: var(--ic-muted);
  cursor: pointer;
  flex: 0 0 auto;
}

.icrm-back svg { width: 1.05rem; height: 1.05rem; }

.icrm-back:hover { background: var(--soft-press, rgba(18, 18, 18, 0.06)); color: var(--ic-ink); }

.icrm-app-icon {
  display: inline-flex;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
}

.icrm-app-icon svg { width: 100%; height: 100%; display: block; }

.icrm-brand-copy { min-width: 0; }

.icrm-wordmark.brand-wordmark {
  display: block;
  font-family: var(--font-display, "Syne", "DM Sans", sans-serif);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--ic-ink);
}

.icrm-wordmark .brand-name,
.icrm-wordmark .brand-go {
  font-weight: 700;
  color: inherit;
}

.icrm-wordmark .brand-go {
  margin-left: 0.28em;
}

.icrm-brand {
  margin: 0.15rem 0 0;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ic-muted);
  line-height: 1.2;
}

.icrm-compose-fab {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: calc(100% - 0.35rem);
  margin: 0 0.1rem 0.85rem;
  padding: 0.78rem 1rem;
  border: 0;
  border-radius: var(--ic-radius-sm);
  background: var(--ic-ink);
  color: #fff;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 680;
  letter-spacing: -0.015em;
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
  cursor: pointer;
}

.icrm-compose-fab svg { width: 1.05rem; height: 1.05rem; }

.icrm-compose-fab:hover { filter: brightness(1.12); }

.icrm-compose-fab[hidden] { display: none !important; }

.icrm-folder-nav {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-bottom: 0.35rem;
}

.icrm-folder {
  appearance: none;
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--ic-ink);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 580;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.icrm-folder svg { width: 1.05rem; height: 1.05rem; color: var(--ic-muted); }

.icrm-folder:hover { background: var(--ic-soft); }

.icrm-folder.is-active {
  background: var(--ic-soft);
  border-color: rgba(18, 18, 18, 0.12);
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
  font-weight: 720;
}

.icrm-folder.is-active svg { color: var(--ic-ink); }

.icrm-folder-count {
  font-size: 0.74rem;
  font-weight: 740;
  color: var(--ic-muted);
  background: rgba(18, 18, 18, 0.06);
  border-radius: 999px;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.4rem;
  display: inline-grid;
  place-items: center;
}

.icrm-folder-label { grid-template-columns: 20px 1fr; }

.icrm-label-dot {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--ic-muted);
  justify-self: center;
}

.icrm-label-dot[data-status="open"] { background: var(--ic-open); }

.icrm-label-dot[data-status="waiting"] { background: var(--ic-waiting); }

.icrm-label-dot[data-status="won"] { background: var(--ic-won); }

.icrm-label-dot[data-status="closed"] { background: var(--ic-closed); }

.icrm-rail-label {
  margin: 0.65rem 0 0.3rem;
  padding: 0 0.75rem;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ic-muted);
}

.icrm-rail-footer {
  margin-top: auto;
  padding: 0.75rem 0.35rem 0.35rem;
}

.icrm-mailbox-card {
  display: grid;
  gap: 0.35rem;
  padding: 0.85rem 0.85rem 0.9rem;
  border: 1px solid rgba(18, 18, 18, 0.14);
  border-radius: 14px;
  background: var(--ic-soft);
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
}

.icrm-mailbox-label {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ic-ink);
}

.icrm-mailbox {
  display: block;
  font-size: 0.86rem;
  font-weight: 650;
  word-break: break-all;
  color: var(--ic-ink);
}

.icrm-mailbox-hint {
  margin: 0.1rem 0 0.25rem;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--ic-muted);
}

.icrm-mailbox-hint[hidden] { display: none !important; }

.icrm-rail-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.7rem;
  margin-top: 0.25rem;
}

.icrm-connect-btn {
  appearance: none;
  border: 0;
  border-radius: 12px;
  padding: 0.6rem 0.95rem;
  background: var(--ic-ink);
  color: #fff;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 650;
  cursor: pointer;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}

.icrm-connect-btn:hover { filter: brightness(1.1); }

.icrm-connect-btn[hidden] { display: none !important; }

.icrm-gmail-mark {
  width: 1.35rem;
  height: 1.05rem;
  flex: 0 0 auto;
  display: block;
}

.icrm-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ic-ink);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 0;
}

.icrm-link:hover { opacity: 0.75; }

.icrm-link[hidden] { display: none !important; }

.icrm-toast,
.icrm-status {
  margin: 0.45rem 0 0;
  min-height: 1.1em;
  font-size: 0.76rem;
  color: var(--ic-muted);
}

.icrm-toast:empty { display: none; }

.icrm-toast[data-tone="error"],
.icrm-status[data-tone="error"] { color: var(--danger, #b44a3f); }

.icrm-toast[data-tone="ok"],
.icrm-status[data-tone="ok"] { color: var(--ic-won); }

.icrm-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: var(--ic-bg);
  padding: 0.75rem 0.85rem 0.85rem 0.65rem;
}

.icrm-topbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0 0 0.7rem;
  flex: 0 0 auto;
}

/* Inbox search keeps typed text visible and does not inherit global input chrome. */
.icrm-search {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 720px;
  min-height: 48px;
  padding: 0 0.35rem 0 0.85rem;
  border-radius: 24px;
  border: 1px solid transparent;
  background: color-mix(in srgb, var(--ic-soft) 86%, #e8eaed);
  color: var(--ic-muted);
  box-shadow: none;
}

.icrm-search:focus-within {
  background: #fff;
  border-color: color-mix(in srgb, var(--ic-ink) 18%, transparent);
  box-shadow: 0 1px 6px rgba(18, 18, 18, 0.1);
  outline: 0;
}

.icrm-search-field {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.icrm-search-field svg,
.icrm-search-clear svg {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
}

.icrm-search input,
.icrm-search input[type="search"] {
  display: block;
  flex: 1 1 auto;
  width: 0;
  min-width: 0;
  height: 2rem;
  margin: 0;
  padding: 0.35rem 0.2rem;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ic-ink);
  font: inherit;
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: 0;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}

.icrm-search input::placeholder {
  color: var(--ic-muted);
  opacity: 1;
}

.icrm-search input::-webkit-search-decoration,
.icrm-search input::-webkit-search-cancel-button,
.icrm-search input::-webkit-search-results-button,
.icrm-search input::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.icrm-search-clear {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin: 0 0.2rem 0 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ic-muted);
  cursor: pointer;
  flex: 0 0 auto;
}

.icrm-search-clear[hidden] { display: none !important; }

.icrm-search-clear:hover {
  background: rgba(18, 18, 18, 0.08);
  color: var(--ic-ink);
}

.icrm-workspace {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(280px, 40%) minmax(0, 1fr);
  gap: 0.65rem;
  background: transparent;
}

/* Give the reading pane room once a conversation is open. */
.icrm.has-case-open .icrm-workspace {
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
}

.icrm-queue,
.icrm-case {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: var(--ic-panel);
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
  overflow: hidden;
}

.icrm-list-toolbar {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0.45rem 1rem;
  border-bottom: 1px solid var(--ic-line);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--ic-panel) 88%, #e8ecef) 0%, var(--ic-panel) 72%);
  flex: 0 0 auto;
}

.icrm-list-heading-wrap {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.icrm-list-heading {
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.icrm-list-mailbox {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.74rem;
  font-weight: 550;
  color: var(--ic-muted);
}

.icrm-queue-list {
  flex: 1;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
}

.icrm-queue-list[hidden] { display: none !important; }

/* Inbox rows stack sender + snippet so mail never overlaps in a narrow queue. */
.icrm-row {
  appearance: none;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  grid-template-areas:
    "avatar from meta"
    "avatar main meta";
  align-items: center;
  column-gap: 0.65rem;
  row-gap: 0.12rem;
  width: 100%;
  min-width: 0;
  flex: 0 0 auto;
  min-height: 54px;
  padding: 0.6rem 0.9rem 0.6rem 0.7rem;
  border: 0;
  border-bottom: 1px solid var(--ic-line);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.icrm-row:hover { background: var(--ic-hover); }

.icrm-row.is-active {
  background: var(--ic-soft);
  box-shadow: inset 3px 0 0 var(--ic-ink);
}

.icrm-row-avatar {
  grid-area: avatar;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 0.72rem;
  font-weight: 740;
  color: #fff;
  background: #2a2a2a;
  flex: 0 0 auto;
}

.icrm-row-from {
  grid-area: from;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.88rem;
  font-weight: 720;
  letter-spacing: -0.015em;
  color: var(--ic-ink);
}

.icrm-row-main {
  grid-area: main;
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 0.86rem;
}

.icrm-row-subject {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 58%;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ic-ink);
  font-weight: 650;
  margin: 0;
}

.icrm-row-sep { color: var(--ic-faint); flex-shrink: 0; }

.icrm-row-snippet {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ic-muted);
  font-weight: 450;
  margin: 0;
}

.icrm-row-meta {
  grid-area: meta;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
  justify-self: end;
  min-width: 0;
}

.icrm-row-status {
  font-size: 0.66rem;
  font-weight: 740;
  letter-spacing: 0.02em;
  text-transform: capitalize;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  background: rgba(18, 18, 18, 0.06);
  color: var(--ic-muted);
}

.icrm-row-status[data-status="open"] { color: var(--ic-open); background: rgba(18, 18, 18, 0.08); }

.icrm-row-status[data-status="waiting"] { color: var(--ic-waiting); background: rgba(180, 83, 9, 0.1); }

.icrm-row-status[data-status="won"] { color: var(--ic-won); background: rgba(21, 128, 61, 0.1); }

.icrm-row-status[data-status="closed"] { color: var(--ic-closed); }

.icrm-row-when {
  font-size: 0.74rem;
  color: var(--ic-faint);
  white-space: nowrap;
}

.icrm-pill { display: none; }

.icrm-empty,
.icrm-case-blank {
  margin: auto;
  max-width: 24rem;
  padding: 2.2rem 1.4rem;
  text-align: center;
  color: var(--ic-muted);
}

.icrm-empty[hidden],
.icrm-case-blank[hidden] { display: none !important; }

.icrm-empty strong,
.icrm-case-blank strong,
.icrm-empty h3,
.icrm-case-blank h3 {
  display: block;
  margin: 0 0 0.35rem;
  font-family: inherit;
  font-size: 0.98rem;
  color: var(--ic-ink);
  font-weight: 650;
  letter-spacing: -0.01em;
}

.icrm-empty p,
.icrm-case-blank p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
}

.icrm-empty .icrm-connect-btn {
  width: auto;
  margin: 0.95rem auto 0;
}

.icrm-empty .icrm-ghost-btn {
  margin: 0.55rem auto 0;
}

.icrm-case-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}

.icrm-case-body[hidden] { display: none !important; }

.icrm-case-head {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-height: 52px;
  padding: 0.85rem 1.05rem;
  border-bottom: 1px solid var(--ic-line);
  background: var(--ic-panel);
  flex: 0 0 auto;
}

.icrm-gmail-head {
  align-items: center;
  padding: 0.7rem 1.15rem 0.75rem;
}

.icrm-case-titles { min-width: 0; flex: 1; }

.icrm-case-title {
  margin: 0;
  font-family: inherit;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ic-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.icrm-case-sub {
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  color: var(--ic-muted);
}

.icrm-field input,
.icrm-field select,
.icrm-rule select,
.icrm-rule input {
  width: 100%;
  margin: 0;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  padding: 0.45rem 0.6rem;
  font: inherit;
  font-size: 0.84rem;
  background: #fff;
  color: var(--ic-ink);
}

.icrm-field input:focus,
.icrm-field select:focus,
.icrm-rule select:focus,
.icrm-rule input:focus {
  outline: 2px solid color-mix(in srgb, var(--ic-ink) 28%, transparent);
  outline-offset: 1px;
}

.icrm-icon-btn {
  appearance: none;
  display: inline-grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  background: var(--ic-panel);
  color: var(--ic-muted);
  cursor: pointer;
  flex: 0 0 auto;
}

.icrm-icon-btn:hover { background: var(--ic-soft); color: var(--ic-ink); }

.icrm-icon-btn svg { width: 1.05rem; height: 1.05rem; }

.icrm-case-close-mobile { display: none; }

.icrm-case-stage {
  flex: 1;
  min-height: 0;
  position: relative;
  display: flex;
  flex-direction: column;
}

.icrm-case-stream {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  flex: 1;
  background: var(--ic-panel);
}

.icrm-thread {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--ic-panel);
}

/* Opened conversations use Gmail expand/collapse rows, not stacked cards. */
.icrm-gmail-thread {
  background: var(--ic-panel);
}

.icrm-msg {
  border-bottom: 1px solid var(--ic-line);
  background: var(--ic-panel);
  min-width: 0;
}

.icrm-msg-toggle {
  appearance: none;
  display: grid;
  align-items: center;
  column-gap: 0.75rem;
  row-gap: 0.12rem;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0.7rem 1.15rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.icrm-msg.is-collapsed .icrm-msg-toggle {
  grid-template-columns: 40px minmax(5rem, 11rem) minmax(0, 1fr) auto;
  grid-template-areas: "avatar from snippet when";
}

.icrm-msg.is-expanded .icrm-msg-toggle {
  grid-template-columns: 40px minmax(0, 1fr) auto;
  grid-template-areas:
    "avatar from when"
    "avatar recip when";
  align-items: start;
  padding-bottom: 0.35rem;
}

.icrm-msg-toggle:hover { background: var(--ic-hover); }

.icrm-msg-avatar {
  grid-area: avatar;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 0.78rem;
  font-weight: 700;
  color: #fff;
  background: #5f6368;
  flex: 0 0 auto;
}

.icrm-msg-from-wrap {
  grid-area: from;
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  overflow: hidden;
}

.icrm-msg-from {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--ic-ink);
}

.icrm-msg-email {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.78rem;
  color: var(--ic-muted);
}

.icrm-msg.is-collapsed .icrm-msg-email { display: none; }

.icrm-msg-recipients {
  grid-area: recip;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.78rem;
  color: var(--ic-muted);
}

.icrm-msg.is-collapsed .icrm-msg-recipients { display: none; }

.icrm-msg-snippet {
  grid-area: snippet;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.86rem;
  color: var(--ic-muted);
}

.icrm-msg.is-expanded .icrm-msg-snippet { display: none; }

.icrm-msg-when {
  grid-area: when;
  justify-self: end;
  align-self: start;
  padding-top: 0.15rem;
  font-size: 0.78rem;
  color: var(--ic-faint);
  white-space: nowrap;
}

.icrm-msg-body {
  padding: 0 1.15rem 1rem 4.4rem;
  min-width: 0;
}

.icrm-msg.is-collapsed .icrm-msg-body { display: none; }

.icrm-msg-to-line {
  display: none;
}

.icrm-msg-files {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.icrm-msg-files li {
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  padding: 0.4rem 0.65rem;
  font-size: 0.78rem;
  background: var(--ic-soft);
}

.icrm-msg-stack {
  appearance: none;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 0.35rem 1.15rem 0.35rem 4.4rem;
  border: 0;
  border-bottom: 1px solid var(--ic-line);
  background: var(--ic-panel);
  color: inherit;
  cursor: pointer;
}

.icrm-msg-stack:hover { background: var(--ic-hover); }

.icrm-msg-stack-line {
  height: 1px;
  background: var(--ic-line);
}

.icrm-msg-stack-count {
  min-width: 1.7rem;
  height: 1.7rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--ic-line);
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ic-ink);
  background: #fff;
  box-shadow: 0 1px 2px rgba(18, 18, 18, 0.08);
}

.icrm-bubble {
  background: var(--ic-panel);
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius-sm);
  padding: 0.85rem 0.95rem;
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
}

.icrm-bubble-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
  font-size: 0.82rem;
}

.icrm-bubble-head strong { font-weight: 720; letter-spacing: -0.01em; }

.icrm-bubble-head time { color: var(--ic-faint); font-size: 0.72rem; }

.icrm-body-text {
  margin: 0;
  white-space: pre-wrap;
  font: inherit;
  font-size: 0.9rem;
  line-height: 1.55;
}

.icrm-body-html { font-size: 0.9rem; line-height: 1.55; overflow-wrap: anywhere; }

.icrm-body-html img { max-width: 100%; height: auto; }

.icrm-gmail-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.05rem;
}

.icrm-gmail-action,
.icrm-reply-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.25rem;
  margin: 0;
  border: 1px solid var(--ic-line);
  border-radius: 999px;
  padding: 0.4rem 1.05rem 0.4rem 0.85rem;
  background: #fff;
  color: var(--ic-ink);
  font: inherit;
  font-size: 0.84rem;
  font-weight: 550;
  line-height: 1;
  box-shadow: none;
  cursor: pointer;
}

.icrm-gmail-action svg,
.icrm-reply-btn svg {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
}

.icrm-gmail-action:hover,
.icrm-reply-btn:hover {
  background: var(--ic-hover);
}

.icrm-thread-actions {
  border-top: 1px solid var(--ic-line);
  padding: 0.65rem 1.05rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  background: var(--ic-panel);
  flex: 0 0 auto;
}

.icrm-thread-actions:has(.icrm-status:empty) {
  display: none;
}

.icrm-thread-actions .icrm-status {
  min-width: 0;
  margin: 0;
}

.icrm-text-btn,
#gmail-details-open {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  align-self: center;
  margin: 0;
  padding: 0.4rem 0.7rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ic-muted);
  font: inherit;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.icrm-text-btn:hover,
#gmail-details-open:hover {
  background: var(--ic-soft);
  color: var(--ic-ink);
}

#gmail-details-open[aria-expanded="true"] {
  background: var(--ic-soft);
  color: var(--ic-ink);
}

.icrm-ghost-btn {
  appearance: none;
  font: inherit;
  cursor: pointer;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  padding: 0.5rem 0.85rem;
  background: var(--ic-panel);
  color: var(--ic-ink);
  font-size: 0.84rem;
  font-weight: 650;
}

.icrm-ghost-btn:hover { background: var(--ic-soft); }

.icrm-details-layer {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: flex;
  justify-content: flex-end;
}

.icrm-details-layer[hidden] { display: none !important; }

.icrm-details-scrim {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  flex: 1 1 auto;
  background: rgba(18, 18, 18, 0.18);
  cursor: pointer;
}

.icrm-case-rail {
  width: min(320px, 92%);
  height: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: var(--ic-panel);
  border-left: 1px solid var(--ic-line);
  box-shadow: -8px 0 28px rgba(18, 18, 18, 0.12);
  overflow: hidden;
  min-width: 0;
  flex: 0 0 auto;
}

.icrm-case-rail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid var(--ic-line);
  flex: 0 0 auto;
}

.icrm-case-rail-head h3 {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.icrm-case-rail-scroll {
  padding: 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow: auto;
  min-height: 0;
  flex: 1;
  background: var(--ic-bg);
}

.icrm-case-rail-card {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.85rem 0.9rem;
  background: var(--ic-panel);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
}

.icrm-case-rail-card h4 {
  margin: 0;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--ic-line);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ic-ink);
}

.icrm-field { display: grid; gap: 0.28rem; }

.icrm-field span {
  font-size: 0.72rem;
  font-weight: 650;
  color: var(--ic-muted);
}

.icrm-case-rail-save {
  width: 100%;
  margin-top: 0.2rem;
}

.icrm-routing-page {
  flex: 1;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 0.15rem 0.1rem 0.35rem;
}

.icrm-routing-page[hidden] { display: none !important; }

.icrm.has-routing-open .icrm-topbar,
.icrm.has-routing-open .icrm-workspace {
  display: none;
}

.icrm-routing-card {
  width: min(640px, 100%);
  max-height: none;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--ic-panel);
  border-radius: var(--ic-radius);
  border: 1px solid var(--ic-line);
  box-shadow: var(--shadow, 0 1px 3px rgba(18, 18, 18, 0.08));
}

.icrm-routing-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.05rem 1.15rem;
  border-bottom: 1px solid var(--ic-line);
  flex: 0 0 auto;
  background: var(--ic-panel);
}

.icrm-routing-head h2 {
  margin: 0;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.015em;
}

.icrm-routing-head p {
  margin: 0.3rem 0 0;
  font-size: 0.84rem;
  color: var(--ic-muted);
  line-height: 1.4;
  max-width: 36ch;
}

.icrm-routing-body {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  min-height: 0;
  flex: 1 1 auto;
}

.icrm-routing-scroll {
  padding: 0.9rem 1.1rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  overflow: auto;
  min-height: 0;
  flex: 1 1 auto;
}

/* Undo portal-wide label/input defaults inside Routing. */
.icrm-routing-page label {
  display: flex;
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

.icrm-routing-page input,
.icrm-routing-page textarea,
.icrm-routing-page select {
  width: auto;
  margin: 0;
  box-sizing: border-box;
}

.icrm-routing-page input[type="radio"] {
  width: 1rem;
  height: 1rem;
  margin: 0.12rem 0 0;
  padding: 0;
  flex: 0 0 auto;
  accent-color: var(--ic-ink);
  background: transparent;
  border: 0;
  appearance: auto;
  -webkit-appearance: auto;
}

.icrm-routing-page .icrm-rule input[type="text"],
.icrm-routing-page .icrm-rule select {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  padding: 0.45rem 0.55rem;
  font: inherit;
  font-size: 0.84rem;
  background: #fff;
  color: var(--ic-ink);
}

.icrm-routing-section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.icrm-routing-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.icrm-routing-section-title {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ic-ink);
}

.icrm-routing-modes {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.icrm-muted { color: var(--ic-faint); font-weight: 500; font-size: 0.76rem; }

.icrm-radio {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.86rem;
  line-height: 1.35;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  background: var(--ic-soft);
  cursor: pointer;
}

.icrm-radio span {
  min-width: 0;
  flex: 1 1 auto;
  font-weight: 550;
  color: var(--ic-ink);
}

.icrm-radio em {
  font-style: normal;
  font-weight: 450;
  color: var(--ic-muted);
}

.icrm-radio:has(input:checked) {
  border-color: rgba(18, 18, 18, 0.2);
  background: var(--ic-panel);
  box-shadow: inset 3px 0 0 var(--ic-ink);
}

.icrm-rules {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 0;
}

.icrm-rules-empty {
  margin: 0;
  padding: 0.65rem 0.75rem;
  border: 1px dashed var(--ic-line);
  border-radius: 10px;
  background: var(--ic-soft);
  color: var(--ic-muted);
  font-size: 0.8rem;
  line-height: 1.4;
}

.icrm-rule {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
  padding: 0.55rem;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  background: var(--ic-soft);
}

.icrm-routing-add {
  align-self: flex-start;
  width: auto;
}

.icrm-routing-note {
  margin: 0;
  font-size: 0.76rem;
  color: var(--ic-muted);
  line-height: 1.45;
}

.icrm-routing-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1.1rem 0.9rem;
  border-top: 1px solid var(--ic-line);
  background: var(--ic-panel);
  flex: 0 0 auto;
}

.icrm-primary-btn {
  appearance: none;
  border: 0;
  border-radius: 12px;
  padding: 0.55rem 1.1rem;
  background: var(--ic-ink);
  color: #fff;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 680;
  cursor: pointer;
  flex: 0 0 auto;
  white-space: nowrap;
}

.icrm-primary-btn:hover { filter: brightness(1.1); }

@media (max-width: 560px) {
  .icrm-rule {
    grid-template-columns: 1fr;
  }
  .icrm-routing-foot {
    flex-direction: column;
    align-items: stretch;
  }
  .icrm-primary-btn { width: 100%; }
}

.icrm-compose-layer {
  position: absolute;
  inset: 0;
  z-index: 9;
  pointer-events: none;
}

.icrm-compose-layer[hidden] { display: none !important; }

.icrm-compose-window {
  pointer-events: auto;
  position: absolute;
  right: 1rem;
  bottom: 0;
  width: min(560px, calc(100% - 1.25rem));
  height: min(520px, calc(100% - 3.5rem));
  display: flex;
  flex-direction: column;
  background: var(--ic-panel);
  border: 1px solid rgba(18, 18, 18, 0.12);
  border-bottom: 0;
  border-radius: 14px 14px 0 0;
  box-shadow: var(--shadow-lift, 0 8px 24px rgba(18, 18, 18, 0.1));
  overflow: hidden;
  transition: width 160ms ease, height 160ms ease, inset 160ms ease, border-radius 160ms ease;
}

.icrm-compose-window.is-fullscreen {
  inset: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  left: 0.75rem;
  width: auto;
  height: auto;
  border-radius: 14px;
  border-bottom: 1px solid rgba(18, 18, 18, 0.12);
}

.icrm-compose-window.is-fullscreen .icrm-compose-fs-expand { display: none; }

.icrm-compose-window.is-fullscreen .icrm-compose-fs-collapse {
  display: block;
  width: 0.95rem;
  height: 0.95rem;
}

.icrm-compose-fs-collapse[hidden] { display: none !important; }

.icrm-compose-window:not(.is-fullscreen) .icrm-compose-fs-collapse { display: none !important; }

.icrm-compose-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem 0.6rem 1rem;
  background: var(--ic-ink);
  color: #fff;
  flex: 0 0 auto;
}

.icrm-compose-titlebar strong {
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.icrm-compose-title-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}

.icrm-compose-win-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.88);
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 8px;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.icrm-compose-win-btn:hover { background: rgba(255, 255, 255, 0.14); }

.icrm-compose-win-btn svg { width: 0.95rem; height: 0.95rem; }

.icrm-compose-win-btn[hidden] { display: none !important; }

.icrm-compose-fields {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  background: #fff;
}

.icrm-compose-row {
  display: grid;
  grid-template-columns: 4.2rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.35rem;
  padding: 0 0.85rem;
  border-bottom: 1px solid var(--ic-line);
}

.icrm-compose-row[hidden] { display: none !important; }

.icrm-compose-label {
  font-size: 0.82rem;
  color: var(--ic-muted);
  font-weight: 600;
}

.icrm-compose-row input {
  width: 100%;
  margin: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  font-size: 0.9rem;
  padding: 0.55rem 0;
  color: var(--ic-ink);
}

.icrm-compose-row-tools {
  display: inline-flex;
  gap: 0.15rem;
}

.icrm-compose-chip-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ic-muted);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 680;
  padding: 0.25rem 0.4rem;
  border-radius: 8px;
  cursor: pointer;
}

.icrm-compose-chip-btn:hover,
.icrm-compose-chip-btn.is-active {
  color: var(--ic-ink);
  background: rgba(18, 18, 18, 0.05);
}

.icrm-compose-body {
  flex: 1;
  min-height: 0;
  width: 100%;
  margin: 0;
  border: 0;
  outline: 0;
  resize: none;
  padding: 0.85rem 1rem;
  font: inherit;
  font-size: 0.92rem;
  line-height: 1.5;
  background: #fff;
  color: var(--ic-ink);
}

.icrm-compose-signature {
  flex: 0 0 auto;
  margin: 0 1rem 0.55rem;
  padding: 0.55rem 0.7rem;
  border-top: 1px dashed rgba(18, 18, 18, 0.12);
  background: var(--ic-soft);
  border-radius: 0 0 10px 10px;
}

.icrm-compose-signature[hidden] { display: none !important; }

.icrm-compose-signature-kicker {
  display: block;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ic-muted);
  margin-bottom: 0.25rem;
}

.icrm-compose-signature-text {
  margin: 0;
  white-space: pre-wrap;
  font: inherit;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--ic-muted);
  max-height: 4.8rem;
  overflow: auto;
}

.icrm-compose-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0 0.85rem 0.55rem;
  flex: 0 0 auto;
}

.icrm-compose-attachments[hidden] { display: none !important; }

.icrm-attach-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: 100%;
  padding: 0.28rem 0.35rem 0.28rem 0.55rem;
  border-radius: 8px;
  background: rgba(18, 18, 18, 0.05);
  border: 1px solid var(--ic-line);
  font-size: 0.74rem;
  color: var(--ic-ink);
}

.icrm-attach-chip span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 12rem;
}

.icrm-attach-chip button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ic-muted);
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 0.95rem;
  line-height: 1;
}

.icrm-attach-chip button:hover { background: rgba(18, 18, 18, 0.08); color: var(--ic-ink); }

.icrm-compose-toolbar {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.7rem 0.65rem;
  border-top: 1px solid var(--ic-line);
  background: #fff;
  flex: 0 0 auto;
}

.icrm-compose-send {
  appearance: none;
  border: 0;
  border-radius: 12px;
  padding: 0.55rem 1.2rem;
  background: var(--ic-ink);
  color: #fff;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 680;
  cursor: pointer;
}

.icrm-compose-send:hover { filter: brightness(1.1); }

.icrm-compose-send:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  filter: none;
}

.icrm-compose-attach-btn {
  display: inline-grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 12px;
  color: var(--ic-muted);
  cursor: pointer;
}

.icrm-compose-attach-btn:hover {
  background: rgba(18, 18, 18, 0.06);
  color: var(--ic-ink);
}

.icrm-compose-attach-btn svg { width: 1.15rem; height: 1.15rem; }

.icrm-compose-status {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 0.74rem;
  color: var(--ic-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.icrm-compose-status[data-tone="error"] { color: var(--danger, #b44a3f); }

.icrm-compose-status[data-tone="ok"] { color: var(--ic-won); }

.icrm-compose-discard {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ic-muted);
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 12px;
  display: grid;
  place-items: center;
  cursor: pointer;
  margin-left: auto;
}

.icrm-compose-discard:hover {
  background: rgba(18, 18, 18, 0.06);
  color: var(--ic-ink);
}

.icrm-compose-discard svg { width: 1.05rem; height: 1.05rem; }

.icrm-rail-open,
.icrm-compose-mobile,
.icrm-rail-backdrop {
  display: none;
}

@media (max-width: 1100px) {
  .icrm { grid-template-columns: 220px minmax(0, 1fr); }
  .icrm.has-case-open .icrm-workspace {
    grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
  }
}

@media (max-width: 820px) {
  /* Phone Inbox CRM rail opens as an Account-style sheet so mailbox,
   * folders, pipeline, and connect stay available. */
  .icrm { grid-template-columns: 1fr; }
  .icrm-rail { display: none; }
  .icrm-rail-open,
  .icrm-compose-mobile {
    display: inline-grid;
  }
  .icrm-compose-mobile[hidden] { display: none !important; }
  .icrm-rail-backdrop {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 6;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.45);
    cursor: pointer;
  }
  .icrm.has-rail-open .icrm-rail-backdrop {
    display: block;
  }
  .icrm.has-rail-open .icrm-rail {
    display: flex;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    width: 100%;
    max-height: min(86vh, 720px);
    z-index: 7;
    border-right: 0;
    border-top: 1px solid var(--ic-line);
    border-radius: 20px 20px 0 0;
    background: var(--ic-panel);
    box-shadow: 0 -14px 44px rgba(15, 23, 42, 0.28);
    animation: boSheetUp 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
  }
  .icrm-workspace,
  .icrm.has-case-open .icrm-workspace {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .icrm.has-case-open .icrm-queue { display: none; }
  .icrm:not(.has-case-open) .icrm-case { display: none; }
  .icrm-case-close-mobile { display: inline-grid; }
  .icrm-case-head { flex-wrap: wrap; }
  .icrm-case-rail { width: min(100%, 360px); }
  .icrm-main { padding: 0.45rem; }
}

@media (max-width: 720px) {
  .icrm-compose-window {
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    height: min(78vh, 100%);
    border-radius: 14px 14px 0 0;
  }
  .icrm-compose-window.is-fullscreen {
    inset: 0;
    width: auto;
    height: auto;
    border-radius: 0;
  }
  .icrm-row {
    padding: 0.75rem 0.9rem;
  }
  .icrm-case-title {
    font-size: 1.2rem;
  }
  .icrm-msg.is-collapsed .icrm-msg-toggle {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    grid-template-areas:
      "avatar from when"
      "avatar snippet when";
  }
  .icrm-msg-body {
    padding-left: 1.15rem;
  }
  .icrm-msg-stack {
    padding-left: 1.15rem;
  }
  .icrm-thread-actions {
    flex-wrap: wrap;
  }
}

html.icrm-rail-lock,
html.icrm-rail-lock body {
  overflow: hidden;
}

#ad-network-panel-flow.just-adverts-pane {
  display: block;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: visible;
}

@keyframes ja-flow-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@keyframes ja-flow-dash {
  0% { opacity: 0; transform: scale(0.6); }
  30% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(0.6) translateX(0.35rem); }
}

@keyframes ja-flow-wifi-pulse {
  0%, 100% { opacity: 0.22; }
  45% { opacity: 0.95; }
  75% { opacity: 0.4; }
}
