:root {
  --background: #f3efe6;
  --foreground: #18201b;
  --muted: #5d655f;
  --green: #1f6f4a;
  --green-dark: #124932;
  --coral: #d9694f;
  --amber: #d89b28;
  --blue: #2d6cdf;
  --paper: #fffdf8;
  --line: rgba(24, 32, 27, 0.08);
  --shadow: 0 14px 34px rgba(33, 27, 16, 0.09);
  --shadow-lg: 0 24px 58px rgba(33, 27, 16, 0.15);
  --radius: 16px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

/* Administrative operations console */
.admin-body { margin: 0; background: #eef1eb; color: var(--foreground); }
.admin-shell { min-height: 100dvh; display: grid; grid-template-columns: 244px minmax(0,1fr); }
.admin-sidebar { position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; gap: 28px; background: #0c4b34; color: #fff; padding: 26px 18px; }
.admin-brand { display: grid; gap: 2px; color: #fff; padding: 0 8px; }
.admin-brand strong { font-size: 1.08rem; }
.admin-brand span { color: rgba(255,255,255,.65); font-size: .78rem; }
.admin-sidebar nav { display: grid; gap: 4px; }
.admin-sidebar nav button { min-height: 42px; border: 0; border-radius: 10px; background: transparent; color: rgba(255,255,255,.76); padding: 9px 12px; font: inherit; font-weight: 750; text-align: left; cursor: pointer; }
.admin-sidebar nav button:hover, .admin-sidebar nav button.active { background: rgba(255,255,255,.12); color: #fff; }
.admin-back { margin-top: auto; color: rgba(255,255,255,.75); padding: 8px; font-size: .82rem; }
.admin-workspace { min-width: 0; padding: 26px clamp(18px,3vw,42px) 50px; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.admin-topbar h1 { margin: 3px 0 0; color: var(--green-dark); font-size: clamp(1.8rem,3vw,2.5rem); letter-spacing: -.04em; }
.admin-topbar > div:first-child > span { color: var(--green); font-size: .7rem; font-weight: 900; letter-spacing: .08em; }
.admin-person { display: flex; align-items: center; gap: 9px; }
.admin-person > span { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 50%; background: #dce9dc; color: var(--green-dark); font-weight: 900; }
.admin-person div { display: grid; gap: 1px; }
.admin-person small { color: var(--muted); }
.admin-filters { display: grid; grid-template-columns: minmax(220px,1fr) minmax(160px,220px) auto; gap: 9px; margin-bottom: 16px; }
.admin-filters input, .admin-filters select, .admin-table-wrap select, .admin-table-wrap textarea { border: 1px solid #d8ddd5; border-radius: 10px; background: #fff; padding: 10px 11px; font: inherit; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.admin-stat-grid article { display: grid; gap: 12px; border-radius: 15px; background: #fffdf8; padding: 20px; }
.admin-stat-grid span { color: var(--muted); font-size: .76rem; font-weight: 800; }
.admin-stat-grid strong { color: var(--green-dark); font-size: 2rem; letter-spacing: -.04em; }
.admin-panel { margin-top: 16px; border-radius: 15px; background: #fffdf8; padding: 20px; }
.admin-panel header { display: flex; align-items: end; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 13px; }
.admin-panel h2 { margin: 0; }
.admin-panel header span, .admin-result-count { color: var(--muted); font-size: .78rem; }
.admin-activity { display: grid; }
.admin-activity article { display: grid; grid-template-columns: minmax(180px,1fr) minmax(120px,.7fr) auto; gap: 10px; border-bottom: 1px solid var(--line); padding: 11px 0; }
.admin-activity time { color: var(--muted); font-size: .75rem; }
.admin-table-wrap { max-width: 100%; overflow: auto; border-radius: 15px; background: #fffdf8; }
.admin-table-wrap table { width: 100%; min-width: 940px; border-collapse: collapse; }
.admin-table-wrap th { position: sticky; top: 0; background: #f4f5f0; color: var(--muted); padding: 11px 13px; font-size: .7rem; letter-spacing: .05em; text-align: left; text-transform: uppercase; }
.admin-table-wrap td { border-top: 1px solid var(--line); padding: 12px 13px; vertical-align: top; font-size: .83rem; }
.admin-table-wrap td strong, .admin-table-wrap td small { display: block; }
.admin-table-wrap td small { margin-top: 3px; color: var(--muted); font-size: .7rem; }
.admin-table-wrap select { min-width: 120px; padding: 7px 8px; }
.admin-table-wrap textarea { min-width: 190px; resize: vertical; }
.admin-long-cell { max-width: 320px; overflow-wrap: anywhere; line-height: 1.4; }
.admin-badge { display: inline-flex; border-radius: 999px; background: #e7ebe4; padding: 4px 8px; color: #576159; font-size: .68rem; font-weight: 850; }
.admin-badge.is-active, .admin-badge.is-published, .admin-badge.is-confirmed, .admin-badge.is-completed, .admin-badge.is-resolved { background: #dceedd; color: #155d3c; }
.admin-badge.is-suspended, .admin-badge.is-removed, .admin-badge.is-disputed, .admin-badge.is-open { background: #fbe2dc; color: #9a3d2c; }
.admin-loading, .admin-error { min-height: 280px; display: grid; place-content: center; gap: 9px; border-radius: 15px; background: #fffdf8; color: var(--muted); text-align: center; }
@media (max-width: 800px) {
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: static; width: 100%; height: auto; gap: 14px; padding: 16px; }
  .admin-sidebar nav { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; }
  .admin-back { display: none; }
  .admin-workspace { padding: 18px 12px 36px; }
  .admin-person div { display: none; }
  .admin-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-filters { grid-template-columns: 1fr; }
}

@property --glass-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 225deg;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 8% 0%, rgba(31, 111, 74, .12), transparent 28rem),
    radial-gradient(circle at 92% 4%, rgba(217, 105, 79, .08), transparent 26rem),
    var(--background);
  color: var(--foreground);
  font-family: Aptos, "Segoe UI", Candara, sans-serif;
  line-height: 1.45;
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0;
  clip-path: circle(0 at var(--transition-x, 50vw) var(--transition-y, 50vh));
  background:
    radial-gradient(circle at var(--transition-x, 50vw) var(--transition-y, 50vh), rgba(255,255,255,.96) 0 4%, rgba(240,246,241,.95) 18%, var(--background) 66%);
  backdrop-filter: blur(0) saturate(1);
  transition:
    clip-path .38s var(--ease-out),
    opacity .12s ease,
    backdrop-filter .3s var(--ease-out);
}
html[data-transition-kind="publish"] body::after {
  background:
    radial-gradient(circle at var(--transition-x, 50vw) var(--transition-y, 50vh), rgba(255,255,255,.98) 0 3%, rgba(139,211,255,.56) 10%, rgba(244,174,205,.4) 21%, rgba(242,220,151,.45) 33%, var(--background) 70%);
}
html.is-page-leaving body::after {
  opacity: 1;
  clip-path: circle(150vmax at var(--transition-x, 50vw) var(--transition-y, 50vh));
  backdrop-filter: blur(5px) saturate(.9);
}
html.is-page-leaving .shell > :not(.glass-upload):not(.cookie-banner) {
  opacity: .45;
  transform: scale(.992);
  filter: blur(3px) saturate(.86);
  transition: opacity .22s ease, transform .3s var(--ease-out), filter .25s ease;
}
.shell > :not(.glass-upload):not(.cookie-banner) { animation: pageLensIn .56s var(--ease-out) backwards; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
img { max-width: 100%; display: block; }
:focus-visible {
  outline: 3px solid #f2b84b;
  outline-offset: 3px;
}
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; }

.shell {
  width: min(1360px, calc(100% - 32px));
  margin: 0 auto 56px;
  padding-top: 16px;
}

/* Nav */
.market-nav {
  position: sticky;
  top: 12px;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 11px 14px;
  border: 0;
  border-radius: 16px;
  background: rgba(255,253,248,.94);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px) saturate(1.1);
}
.shell > .market-nav {
  animation: none;
  clip-path: none;
  filter: none;
  transform: none;
}
.brand {
  display: grid;
  color: var(--green-dark);
  font-size: clamp(1.08rem, 1.45vw, 1.28rem);
  font-weight: 950;
  line-height: 1.05;
  letter-spacing: -.025em;
  min-width: max-content;
}
.brand small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: 0;
}
.nav-search {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.nav-search input,
.filter-stack input,
.filter-stack select,
.auth-form input,
.auth-form select,
.sell-form input,
.sell-form select,
.sell-form textarea,
.legal-form input,
.legal-form select,
.legal-form textarea,
.action-box input,
.thread-compose input,
.thread-compose textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  padding: 11px 12px;
}
.nav-search input {
  min-width: 0;
  min-height: 46px;
  border: 0;
  background: #f6f4ee;
  padding-inline: 16px;
}
.home-mobile-search {
  display: none;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  padding: 5px;
  border-radius: 16px;
  background: rgba(255,253,248,.94);
  box-shadow: 0 10px 28px rgba(23, 36, 27, .08);
}
.home-mobile-search input {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 0;
  border-radius: 12px;
  background: #f6f4ee;
  padding: 10px 13px;
}
.search-submit,
.nav-icon,
.profile-trigger {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border: 0;
  border-radius: 50%;
  background: #f6f4ee;
  color: var(--green-dark);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease, color .2s ease, transform .2s cubic-bezier(.16,1,.3,1);
}
.search-submit:hover,
.nav-icon:hover,
.profile-trigger:hover { background: #e9efe8; transform: translateY(-1px); }
.search-submit svg,
.profile-avatar svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.locale-menu { position: relative; z-index: 3; }
.locale-trigger {
  width: 58px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 0;
  border-radius: 999px;
  background: #f6f4ee;
  color: var(--green-dark);
  cursor: pointer;
  transition: background .2s ease, transform .2s var(--ease-out);
}
.locale-trigger:hover, .locale-menu.is-open .locale-trigger { background: #e9efe8; transform: translateY(-1px); }
.locale-trigger svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.locale-trigger span { font-size: .67rem; font-weight: 950; }
.locale-native { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; opacity: 0 !important; pointer-events: none !important; }
.locale-popover {
  position: absolute;
  z-index: 80;
  right: 0;
  top: calc(100% + 12px);
  width: min(356px, calc(100vw - 32px));
  max-height: min(560px, calc(100vh - 92px));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px;
  border: 1px solid rgba(24,32,27,.07);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--shadow-lg);
  scrollbar-width: thin;
  scrollbar-color: rgba(18,73,50,.24) transparent;
  transform-origin: calc(100% - 28px) 0;
  animation: profileMenuIn .2s var(--ease-out) both;
}
.locale-popover[hidden] { display: none; }
.locale-popover-head { position: sticky; top: -10px; z-index: 1; display: grid; gap: 1px; margin: -2px -2px 7px; border-bottom: 1px solid var(--line); background: var(--paper); padding: 10px 10px 12px; }
.locale-popover-head span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.locale-popover-head strong { color: var(--green-dark); font-size: .94rem; }
.locale-option-group { display: grid; gap: 2px; }
.locale-option-group + .locale-option-group { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 9px; }
.locale-option-group > p { margin: 0; padding: 5px 10px; color: #747c76; font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.locale-option { position: relative; width: 100%; min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 0; border-radius: 10px; background: transparent; padding: 8px 10px 8px 12px; color: var(--foreground); text-align: left; cursor: pointer; }
.locale-option:hover, .locale-option:focus-visible { background: #eef3ed; color: var(--green-dark); outline: none; }
.locale-option[aria-checked="true"] { background: #e5efe7; color: var(--green-dark); font-weight: 900; }
.locale-option i { width: 18px; height: 18px; flex: 0 0 18px; display: grid; place-items: center; border: 1px solid rgba(18,73,50,.22); border-radius: 50%; font-style: normal; }
.locale-option[aria-checked="true"] i { border-color: var(--green); background: var(--green); color: #fff; }
.locale-option[aria-checked="true"] i::after { content: "✓"; font-size: .72rem; line-height: 1; }
.locale-option[aria-busy="true"] { opacity: .62; cursor: wait; }
.nav-icon.active { background: var(--green-dark); color: #fff; }
.tariff-icon { font-size: 1.15rem; font-weight: 950; }
.profile-menu { position: relative; z-index: 3; }
.locale-menu.is-open, .profile-menu.is-open { z-index: 5; }
.profile-trigger { padding: 0; }
.profile-avatar {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.profile-avatar.has-user {
  background: var(--green-dark);
  color: #fff;
  font-weight: 950;
}
.profile-avatar img, .profile-state-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.profile-popover {
  position: absolute;
  z-index: 80;
  right: 0;
  top: calc(100% + 12px);
  width: min(326px, calc(100vw - 32px));
  max-height: min(710px, calc(100vh - 92px));
  overflow: auto;
  padding: 10px;
  border: 1px solid rgba(24, 32, 27, .07);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--shadow-lg);
  transform-origin: calc(100% - 22px) 0;
  animation: profileMenuIn .2s var(--ease-out) both;
}
.profile-popover[hidden] { display: none; }
.profile-state {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 8px 8px 12px;
  border-bottom: 1px solid var(--line);
}
.profile-state > span:last-child { min-width: 0; display: grid; gap: 1px; }
.profile-state strong, .profile-state small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-state strong { color: var(--green-dark); }
.profile-state small { color: var(--muted); font-size: .78rem; }
.profile-state-avatar { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #e8f1e9; color: var(--green-dark); font-weight: 950; }
.profile-group-label { margin: 10px 10px 3px; color: #7a817c; font-size: .68rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.profile-links { display: grid; gap: 1px; padding: 0; }
.profile-links a,
.profile-auth a,
.profile-logout {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  padding: 8px 10px;
  color: var(--foreground);
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}
.profile-links svg, .profile-logout svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.profile-links a:hover,
.profile-links a.active,
.profile-auth a:hover,
.profile-logout:hover { background: #eef3ed; color: var(--green-dark); }
.profile-auth { display: grid; gap: 4px; padding: 12px 4px 4px; }
.profile-auth p { margin: 0 6px 8px; color: var(--muted); font-size: .86rem; }
.profile-auth a { justify-content: center; }
.profile-auth-primary { background: var(--green-dark) !important; color: #fff !important; }
.profile-auth-primary:hover { background: var(--green) !important; }
.profile-auth[hidden], [data-menu-auth-user][hidden] { display: none; }
.profile-logout { width: 100%; margin-top: 7px; border-top: 1px solid var(--line); border-radius: 0 0 10px 10px; color: var(--coral); }

.primary,
button.primary {
  background: var(--green);
  color: #fff !important;
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(31,111,74,.22);
  min-height: 44px;
  transition: transform .18s var(--ease-out), box-shadow .18s ease, background .18s ease;
}
.ghost,
button.ghost {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 800;
  cursor: pointer;
  min-height: 44px;
  transition: transform .18s var(--ease-out), box-shadow .18s ease, background .18s ease;
}
.primary:hover,
button.primary:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(31,111,74,.28); }
.ghost:hover,
button.ghost:hover { transform: translateY(-2px); background: #f8faf6; box-shadow: 0 9px 20px rgba(33,27,16,.09); }
.primary:active,
button.primary:active,
.ghost:active,
button.ghost:active { transform: translateY(0) scale(.975); }
.glass-upload {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 35;
  width: 62px;
  height: 62px;
  border: 1.5px solid transparent;
  border-radius: 50%;
  display: grid;
  place-items: center;
  isolation: isolate;
  overflow: hidden;
  --glass-angle: 225deg;
  background:
    linear-gradient(145deg, rgba(255,255,255,.78), rgba(255,255,255,.28)) padding-box,
    conic-gradient(from var(--glass-angle), rgba(92,189,255,.8), rgba(255,205,112,.9), rgba(239,131,176,.72), rgba(146,125,255,.72), rgba(92,189,255,.8)) border-box;
  color: var(--green-dark);
  font-size: 2.05rem;
  box-shadow: 0 16px 36px rgba(18,73,50,.25), inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter: blur(18px) saturate(1.55);
  -webkit-backdrop-filter: blur(18px) saturate(1.55);
  animation: glassUploadArrive .72s cubic-bezier(.16,1,.3,1) both;
  transition: transform .24s var(--ease-out), box-shadow .24s ease, filter .24s ease, --glass-angle .52s var(--ease-out);
}
.glass-upload::before {
  content: "";
  position: absolute;
  inset: 5px;
  z-index: -1;
  border-radius: inherit;
  background: rgba(255,255,255,.3);
  box-shadow: inset 7px 9px 13px rgba(255,255,255,.52), inset -7px -9px 15px rgba(18,73,50,.08);
}
.glass-upload::after {
  content: "";
  position: absolute;
  top: -30%;
  bottom: -30%;
  left: -60%;
  width: 32%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.85), transparent);
  transform: rotate(18deg);
  opacity: .8;
  pointer-events: none;
  transition: left .48s var(--ease-out);
}
.glass-upload span {
  display: block;
  margin-top: -3px;
  font-weight: 450;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
  transition: transform .3s var(--ease-out);
}
.glass-upload:hover {
  --glass-angle: 315deg;
  transform: translateY(-5px) scale(1.075);
  filter: saturate(1.18) brightness(1.03);
  box-shadow: 0 25px 52px rgba(18,73,50,.34), inset 0 1px 0 rgba(255,255,255,.9);
}
.glass-upload:hover::after { left: 125%; }
.glass-upload:hover span { transform: rotate(90deg) scale(1.08); }
.glass-upload:active { transform: translateY(-1px) scale(.98); }
.glass-upload.is-activating {
  z-index: 9999;
  animation: glassPortalCommit .39s var(--ease-out) forwards;
}
.glass-upload.is-activating span { animation: plusGlyphCommit .39s var(--ease-out) forwards; }

/* Select menus */
.custom-select {
  position: relative;
  width: 100%;
  min-width: 0;
  color: var(--foreground);
  font-size: 1rem;
  font-weight: 650;
}
.custom-select-native {
  display: none !important;
  position: absolute !important;
  width: 1px !important;
  min-width: 0 !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;
}
.custom-select-trigger {
  width: 100%;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 0;
  border-radius: 12px;
  background: #fff;
  padding: 10px 12px 10px 14px;
  color: var(--foreground);
  font-weight: 750;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(33,27,16,.07);
  transition: background .18s ease, box-shadow .18s ease, transform .18s cubic-bezier(.16,1,.3,1);
}
.custom-select-trigger:hover { background: #fbfaf5; box-shadow: 0 10px 24px rgba(33,27,16,.1); }
.custom-select-trigger:disabled { cursor: not-allowed; opacity: .55; box-shadow: none; }
.custom-select-trigger svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  fill: none;
  stroke: var(--green-dark);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .2s cubic-bezier(.16,1,.3,1);
}
.custom-select.is-open .custom-select-trigger { background: #fff; box-shadow: 0 0 0 3px rgba(242,184,75,.7), 0 10px 24px rgba(33,27,16,.1); }
.custom-select.is-open .custom-select-trigger svg { transform: rotate(180deg); }
.custom-select-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 70;
  max-height: min(320px, 45vh);
  overflow-y: auto;
  padding: 8px;
  border-radius: 14px;
  background: var(--paper);
  box-shadow: var(--shadow-lg);
  scrollbar-width: thin;
  scrollbar-color: rgba(18,73,50,.25) transparent;
}
.custom-select.is-open .custom-select-menu { animation: menuUnfold .22s var(--ease-out) both; transform-origin: top center; }
.custom-select-menu[hidden] { display: none; }
.custom-select-option {
  position: relative;
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  padding: 9px 38px 9px 11px;
  color: var(--foreground);
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
.custom-select-option:hover,
.custom-select-option:focus-visible { background: #eef3ed; color: var(--green-dark); outline: none; }
.custom-select-option[aria-selected="true"] { background: #e5efe7; color: var(--green-dark); font-weight: 900; }
.custom-select-option[aria-selected="true"]::after {
  content: "✓";
  position: absolute;
  right: 13px;
  color: var(--green);
  font-size: 1.05rem;
}
.custom-select-option:disabled { opacity: .45; cursor: not-allowed; }
.search-results-head .custom-select { min-width: 190px; }

/* Modeless giveaway CTA */
.gift-nudge[hidden] { display: none; }
.gift-nudge {
  position: fixed;
  right: 22px;
  bottom: 6px;
  z-index: 34;
  width: min(980px, calc(100vw - 96px));
  display: grid;
  grid-template-columns: minmax(340px, 420px) minmax(360px, 1fr);
  align-items: end;
  pointer-events: none;
  clip-path: inset(18% 0 0 0 round 18px);
  filter: blur(5px);
  opacity: .02;
  transform: translateX(72px) translateY(12px) scale(.98);
  transition: opacity .28s ease, transform .52s cubic-bezier(.16,1,.3,1), clip-path .52s cubic-bezier(.16,1,.3,1), filter .38s ease;
}
.gift-nudge.is-visible { clip-path: inset(0 round 0); filter: blur(0); opacity: 1; transform: none; }
.gift-nudge-mascot {
  position: relative;
  z-index: 2;
  width: clamp(360px, 31vw, 600px);
  height: auto;
  max-width: none;
  margin-right: -16px;
  margin-left: -30px;
  filter: drop-shadow(0 14px 18px rgba(18,32,24,.22));
  pointer-events: auto;
}
.gift-nudge-bubble {
  position: relative;
  margin: 0 0 clamp(112px, 10vw, 154px);
  padding: 20px 52px 20px 22px;
  border-radius: 16px;
  background: var(--paper);
  box-shadow: 0 20px 48px rgba(33,27,16,.2);
  pointer-events: auto;
}
.gift-nudge-bubble::before {
  content: "";
  position: absolute;
  right: -16px;
  bottom: 22%;
  width: 28px;
  height: 28px;
  background: var(--paper);
  clip-path: polygon(0 0, 100% 65%, 0 100%);
}
.gift-nudge-kicker { display: block; margin-bottom: 4px; color: var(--coral); font-size: .82rem; font-weight: 900; }
.gift-nudge-bubble strong { display: block; max-width: 24ch; color: var(--green-dark); font-size: 1.22rem; line-height: 1.16; letter-spacing: -.015em; }
.gift-nudge-bubble p { max-width: 48ch; margin: 8px 0 14px; color: #48534c; font-size: .91rem; line-height: 1.42; }
.gift-nudge-action { width: fit-content; }
.gift-nudge-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.gift-nudge-close:hover { background: #eef3ed; color: var(--green-dark); }
.gift-nudge-close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }

.page-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  margin: 28px 0 18px;
}
.kicker {
  margin: 0 0 8px;
  color: var(--green);
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .78rem;
}
.page-head h1, .account-main h1, .auth-hero h1, .tariff-page h1, .wallet-page-head h1, .plans-page h1 {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1.05;
  max-width: 18ch;
}

.category-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin: 30px 0 12px;
}
.category-heading h2 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.75rem); letter-spacing: -.02em; }
.category-heading p { margin: 0; color: var(--muted); }

.category-strip {
  display: grid;
  grid-template-columns: repeat(8, minmax(116px, 1fr));
  gap: clamp(10px, 1.15vw, 16px);
  overflow: visible;
  margin: 0 0 28px;
  padding: 8px 4px 18px;
}
.category-strip button {
  position: relative;
  isolation: isolate;
  display: grid;
  width: 100%;
  min-width: 116px;
  min-height: 0;
  aspect-ratio: 1;
  place-items: end center;
  overflow: hidden;
  border: 0;
  border-radius: 50%;
  padding: clamp(16px, 1.65vw, 22px) 12px;
  text-align: center;
  cursor: pointer;
  scroll-snap-align: start;
  box-shadow: none;
  color: #fff;
  background-color: var(--green-dark);
  background-image:
    linear-gradient(180deg, rgba(7,18,12,.02) 18%, rgba(7,18,12,.38) 60%, rgba(7,18,12,.96) 100%),
    url("category-atlas-v1.webp");
  background-repeat: no-repeat;
  background-size: 100% 100%, 400% auto;
  background-position: center, var(--category-x) var(--category-y);
  transition: transform .24s cubic-bezier(.16,1,.3,1);
}
.category-strip button:hover {
  transform: translateY(-3px) scale(1.025);
}
.category-strip button:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -6px;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.92);
}
.category-strip button.active {
  transform: translateY(-1px);
}
.category-copy {
  display: grid;
  gap: 5px;
  width: calc(100% - 4px);
  min-height: 36px;
  align-self: end;
  align-content: end;
  justify-items: center;
}
.category-copy::after {
  content: "";
  width: 22px;
  height: 3px;
  margin-top: 3px;
  border-radius: 999px;
  background: #f2b84b;
  opacity: 0;
  transform: scaleX(.45);
  transition: opacity .2s ease, transform .24s var(--ease-out);
}
.category-strip button.active .category-copy::after { opacity: 1; transform: scaleX(1); }
.category-strip strong {
  display: block;
  font-size: clamp(.9rem, 1.08vw, 1.04rem);
  font-weight: 850;
  line-height: 1.08;
  white-space: nowrap;
  text-shadow: 0 2px 4px rgba(0,0,0,.9), 0 4px 14px rgba(0,0,0,.72);
}
.layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.home-feed { margin-top: 4px; }
.panel, .account-card, .auth-card, .legal-card, .tariff-grid article,
.wallet-support-panel, .wallet-tier-panel, .movement-panel,
.form-card, .sell-summary, .preview-phone, .thread-list, .thread-pane,
.detail-card, .seller-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.panel { padding: 20px; position: sticky; top: 92px; border: 0; }
.panel b { display: block; font-size: 2.4rem; line-height: 1; margin: 6px 0; color: var(--green-dark); }
.filter-stack, .dynamic-filters { display: grid; gap: 10px; margin: 14px 0; }
.filter-stack label, .dynamic-filters label, .auth-form label, .field-grid label, .legal-form label, .action-box label {
  display: grid; gap: 6px; font-weight: 800; font-size: .92rem;
}
.feed { display: grid; gap: 22px; min-width: 0; }
.feed-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
}
.feed-title h2 { margin: 0; font-size: 1.25rem; }
.muted { color: var(--muted); }

.map-board {
  position: relative;
  z-index: 0;
  isolation: isolate;
  min-height: 340px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #dce7dd;
  border: 0;
  box-shadow: none;
}
.map-board .leaflet-map-pane { z-index: 0 !important; }
.map-board .leaflet-tile-pane { z-index: 1 !important; }
.map-board .leaflet-overlay-pane { z-index: 2 !important; }
.map-board .leaflet-shadow-pane { z-index: 3 !important; }
.map-board .leaflet-marker-pane { z-index: 4 !important; }
.map-board .leaflet-tooltip-pane { z-index: 5 !important; }
.map-board .leaflet-popup-pane { z-index: 6 !important; }
.map-board .leaflet-top,
.map-board .leaflet-bottom { z-index: 7 !important; }
.map-fallback {
  min-height: inherit;
  display: grid;
  place-items: center;
  padding: 24px;
  color: var(--muted);
  text-align: center;
}
.map-price-icon {
  display: grid !important;
  place-items: center;
  border: 0;
  background: transparent;
}
.map-price-icon span {
  width: 72px;
  min-height: 44px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 999px;
  background: var(--green-dark);
  color: #fff;
  font-size: .72rem;
  font-weight: 950;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(18,73,50,.25);
  white-space: nowrap;
  transition: transform .18s var(--ease-out), box-shadow .18s ease, background .18s ease;
}
.map-price-icon:hover span { transform: translateY(-2px) scale(1.06); box-shadow: 0 12px 24px rgba(18,73,50,.34); }
.map-popup { display: grid; gap: 5px; min-width: 170px; }
.map-popup strong { font-size: .96rem; line-height: 1.2; }
.map-popup span { color: var(--muted); }
.map-popup a { color: var(--green); font-weight: 900; }
.leaflet-control-zoom a { display: grid !important; place-items: center; width: 44px !important; height: 44px !important; line-height: 44px !important; }
.leaflet-popup-content-wrapper { border-radius: 12px; }
.leaflet-container { font-family: inherit; }

/* Search */
.search-page-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
  align-items: end;
  gap: clamp(24px, 5vw, 72px);
  margin: 46px 0 28px;
}
.search-page-head h1 { margin: 0; max-width: 15ch; font-size: clamp(2.3rem, 4vw, 4.1rem); line-height: 1; letter-spacing: -.035em; }
.search-page-head p:not(.kicker) { max-width: 62ch; margin: 14px 0 0; color: var(--muted); }
.search-page-form { display: flex; gap: 8px; }
.search-page-form input {
  width: 100%;
  min-height: 50px;
  border: 0;
  border-radius: 12px;
  background: var(--paper);
  padding: 12px 15px;
  box-shadow: var(--shadow);
}
.search-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 22px; align-items: start; }
.search-filters { top: 94px; }
.filter-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.filter-heading h2 { margin: 2px 0 0; font-size: 1.35rem; }
.filter-heading a { color: var(--green); font-weight: 900; font-size: .9rem; }
.price-filter-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.search-results { min-width: 0; display: grid; gap: 20px; }
.search-results-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.search-results-head h2 { margin: 2px 0 0; font-size: clamp(1.35rem, 2vw, 1.7rem); }
.search-results-head label { display: grid; gap: 5px; color: var(--muted); font-size: .84rem; font-weight: 800; }
.search-results-head select { min-width: 190px; border: 0; border-radius: 12px; background: var(--paper); padding: 10px 12px; box-shadow: var(--shadow); }
.search-map { min-height: 320px; }
.search-product-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

.product-grid, .featured-row, .favorites-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.featured-row { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }

.product-card {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  background: var(--paper);
  border: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow);
  animation: cardIn .5s cubic-bezier(.16,1,.3,1) both;
  transition: transform .2s ease, box-shadow .2s ease;
}
.product-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}
.card-click {
  position: absolute; inset: 0; z-index: 1; border: 0; background: transparent; cursor: pointer;
}
.product-card .photo {
  position: relative;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
}
.detail-gallery .badge-row {
  position: absolute; left: 10px; top: 10px; display: flex; flex-wrap: wrap; gap: 6px; z-index: 2;
}
.card-badge-row { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 5px; min-height: 21px; }
.badge {
  display: inline-flex; align-items: center;
  padding: 6px 9px; border-radius: 999px;
  font-size: .75rem; font-weight: 900;
  background: rgba(255,253,248,.92); color: var(--green-dark);
  backdrop-filter: blur(8px);
}
.badge.premium { background: #124932; color: #fff; }
.badge.subasta { background: var(--amber); color: #1b1404; }
.badge.regalo { background: var(--coral); color: #fff; }
.badge.envio { background: var(--blue); color: #fff; }
.card-badge-row .badge { padding: 4px 7px; font-size: .66rem; line-height: 1.05; backdrop-filter: none; }
.fav-btn {
  position: absolute; right: 14px; top: 14px; z-index: 3;
  width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
  border: 0; background: rgba(255,253,248,.94); color: var(--green-dark); cursor: pointer;
  box-shadow: 0 8px 20px rgba(18,32,24,.16);
  transition: transform .2s var(--ease-out), color .18s ease, background .18s ease;
}
.fav-btn svg { width: 19px; height: 19px; display: block; fill: transparent; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.fav-btn:hover { transform: translateY(-2px) scale(1.04); background: #fff; }
.fav-btn:active { transform: scale(.9); }
.fav-btn.active { color: var(--coral); }
.fav-btn.active svg { fill: currentColor; }
.product-body {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  gap: 8px;
  padding: 16px 16px 18px;
}
.product-body > * { min-width: 0; }
.product-body dl { display: none; }
.product-body h3 {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.price-line { color: var(--green-dark); font-size: 1.1rem; }
.product-body > span, .product-body > p {
  color: var(--muted);
  font-size: .92rem;
  margin: 0;
  overflow-wrap: anywhere;
}
.product-body p {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.product-body dl {
  display: grid;
  gap: 6px;
  margin: auto 0 0;
  padding-top: 4px;
  font-size: .86rem;
}
.product-body dl div, .detail-specs div {
  display: grid;
  grid-template-columns: minmax(64px, .56fr) minmax(0, 1.44fr);
  align-items: start;
  gap: 12px;
  border-top: 1px dashed var(--line); padding-top: 6px;
}
.product-body dt, .detail-specs dt { color: var(--muted); font-weight: 700; }
.product-body dd, .detail-specs dd {
  min-width: 0;
  margin: 0;
  font-weight: 800;
  line-height: 1.3;
  text-align: right;
  overflow-wrap: anywhere;
}
.card-actions {
  position: relative; z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  margin-top: 6px;
}
.card-actions > a {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  padding-inline: 10px;
  text-align: center;
  line-height: 1.15;
}

.empty-state {
  padding: 28px;
  text-align: center;
  color: var(--muted);
  background: rgba(255,253,248,.7);
  border: 1px dashed rgba(24,32,27,.14);
  border-radius: var(--radius);
}

/* Detail modal + page */
.listing-modal[hidden] { display: none !important; }
.listing-modal {
  position: fixed; inset: 0; z-index: 60;
  display: grid; place-items: center; padding: 18px;
}
.modal-backdrop {
  position: absolute; inset: 0; background: rgba(18, 32, 24, .45); backdrop-filter: blur(4px);
}
.modal-card {
  position: relative; z-index: 1;
  width: min(980px, 100%);
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 0;
  background: var(--paper);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.modal-close {
  position: absolute; right: 12px; top: 12px; z-index: 2;
  width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; cursor: pointer; font-size: 1.3rem;
}
.detail-photo { min-height: 320px; background-size: cover; background-position: center; }
.detail-body { padding: 22px; display: grid; gap: 12px; align-content: start; }
.detail-price { font-size: 1.6rem; color: var(--green-dark); }
.detail-map {
  display: flex; justify-content: space-between; gap: 12px; align-items: center;
  padding: 12px; border-radius: 16px; background: #eef3e9;
}
.action-box { display: grid; gap: 10px; padding: 14px; border-radius: 18px; background: #f7f5ef; }
.report-link { color: var(--coral); font-weight: 800; font-size: .92rem; }

.detail-page { margin-top: 22px; }
.detail-layout {
  --detail-columns: minmax(0, 69fr) minmax(330px, 31fr);
  --detail-column-pad: clamp(24px, 3vw, 40px);
  position: relative;
  width: 100%;
  overflow: hidden;
  border: 0;
  border-radius: 16px;
  background: var(--paper);
  box-shadow: var(--shadow-lg);
}
.detail-hero {
  display: grid;
  grid-template-columns: var(--detail-columns);
  align-items: stretch;
}
.detail-gallery { position: relative; min-width: 0; background: #f2f1eb; border-right: 1px solid var(--line); }
.detail-gallery-main {
  min-height: clamp(380px, 34vw, 520px);
  position: relative;
  background-size: cover;
  background-position: center;
}
.detail-photo-open { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; border: 0; background: transparent; cursor: zoom-in; }
.detail-photo-open > span { position: absolute; right: 16px; bottom: 16px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,253,248,.94); color: var(--green-dark); box-shadow: 0 9px 24px rgba(18,32,24,.2); transition: transform .2s var(--ease-out), background .18s ease; }
.detail-photo-open svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.detail-photo-open:hover > span { transform: scale(1.06); background: #fff; }
.detail-photo-open:focus-visible { outline: 3px solid #f2b84b; outline-offset: -5px; }
.detail-thumbs {
  display: flex;
  gap: 8px;
  min-height: 80px;
  padding: 12px;
  overflow-x: auto;
  background: var(--paper);
}
.detail-thumbs button {
  width: 76px; height: 56px; border-radius: 12px; border: 2px solid transparent;
  background-size: cover; background-position: center; cursor: pointer; flex: 0 0 auto;
}
.detail-thumbs button:hover { transform: translateY(-2px); }
.detail-thumbs button.active { border-color: var(--green); }
.detail-summary {
  display: grid;
  align-content: center;
  gap: 18px;
  padding: var(--detail-column-pad);
}
.detail-summary .kicker { margin: 0; }
.detail-summary h1 { margin: 0; max-width: 19ch; font-size: clamp(2rem, 4vw, 4rem); line-height: .98; letter-spacing: -.035em; }
.detail-summary .detail-price { font-size: clamp(1.7rem, 3vw, 2.4rem); }
.detail-pin {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background: #eef3e9;
}
.detail-pin .detail-pin-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--green-dark); color: #fff; }
.detail-pin-icon svg { display: block; width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.detail-pin b, .detail-pin div > span { display: block; }
.detail-pin b { color: var(--green-dark); }
.detail-pin div > span { margin-top: 2px; color: var(--muted); font-size: .88rem; }
.detail-location-note { max-width: 48ch; margin: -4px 0 0; color: var(--muted); font-size: .9rem; }
.detail-owner-edit { justify-self: start; gap: 9px; margin-top: 2px; }
.detail-owner-edit svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.detail-private-shell { position: relative; min-height: 430px; overflow: hidden; border-top: 1px solid var(--line); }
.detail-private-content {
  display: grid;
  grid-template-columns: var(--detail-columns);
  gap: 0;
  padding: 0;
  transition: filter .28s var(--ease-out), opacity .22s ease;
}
.detail-information, .detail-description-section, .detail-facts-section { min-width: 0; }
.detail-information { display: grid; align-content: start; gap: 34px; border-right: 1px solid var(--line); padding: var(--detail-column-pad); }
.detail-description-section h2, .detail-facts-section h2 { margin: 0 0 12px; color: var(--green-dark); font-size: clamp(1.35rem, 2.2vw, 1.8rem); letter-spacing: -.02em; }
.detail-description-section p { max-width: 70ch; margin: 0; overflow-wrap: anywhere; word-break: break-word; color: #3e4841; font-size: 1.04rem; line-height: 1.68; white-space: pre-wrap; }
.detail-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; margin: 0; }
.detail-specs div { min-width: 0; padding: 11px 0; border-top: 1px solid var(--line); }
.detail-specs dt { color: var(--muted); font-weight: 700; }
.detail-specs dd { margin: 0; font-weight: 850; text-align: right; overflow-wrap: anywhere; }
.detail-contact-panel {
  align-self: start;
  display: grid;
  gap: 20px;
  margin: var(--detail-column-pad);
  border-radius: 16px;
  background: #f7f5ef;
  padding: 20px;
}
.detail-seller { display: grid; gap: 14px; }
.detail-seller-profile-link { min-width: 0; color: inherit; text-decoration: none; }
.detail-seller-identity { min-width: 0; display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: center; gap: 12px; color: inherit; }
.detail-seller-profile-link:hover .detail-seller-name { text-decoration: underline; text-underline-offset: 3px; }
.detail-seller-profile-link:focus-visible { border-radius: 12px; outline: 3px solid #f2b84b; outline-offset: 4px; }
.detail-seller-avatar { width: 52px; height: 52px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--green-dark); color: #fff; font-size: .95rem; font-weight: 950; }
.detail-seller-avatar img { width: 100%; height: 100%; object-fit: cover; }
.detail-seller-copy { min-width: 0; display: grid; gap: 2px; }
.detail-seller-copy > span { color: var(--muted); font-size: .72rem; font-weight: 800; }
.detail-seller-name { overflow: hidden; color: var(--green-dark); font-size: 1.15rem; text-overflow: ellipsis; white-space: nowrap; }
.detail-seller-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; color: var(--muted); font-size: .78rem; text-decoration: none; }
.detail-seller-rating b { color: #8b650d; }
a.detail-seller-rating:hover span { color: var(--green-dark); }
.detail-seller > .ghost { justify-self: start; }
.detail-action-box { padding: 0; border-radius: 0; background: transparent; }
.detail-negotiation-actions { display: grid; gap: 9px; border-top: 1px solid var(--line); padding-top: 16px; }
.detail-negotiation-copy { display: grid; gap: 5px; margin-bottom: 3px; }
.detail-negotiation-copy strong { color: var(--green-dark); font-size: 1rem; }
.detail-negotiation-copy span { color: var(--muted); font-size: .84rem; line-height: 1.48; }
.detail-negotiation-actions .primary, .detail-negotiation-actions .ghost { width: 100%; }
.detail-negotiation-actions .muted { margin: 2px 0 0; font-size: .74rem; line-height: 1.4; }
.listing-contact-actions { margin-top: 14px; }
.detail-contact-panel .report-link { justify-self: start; }
.detail-owner-tools { display: grid; gap: 7px; border-top: 1px solid var(--line); padding-top: 16px; }
.detail-owner-tools strong { color: var(--green-dark); font-size: 1rem; }
.detail-owner-tools p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.detail-layout.is-locked .detail-private-content { filter: blur(9px); opacity: .38; pointer-events: none; user-select: none; }

.detail-photo-viewer[hidden] { display: none; }
.detail-photo-viewer { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: clamp(10px, 3vw, 36px); }
.detail-photo-viewer-backdrop { position: absolute; inset: 0; border: 0; background: rgba(8,14,10,.88); cursor: zoom-out; }
.detail-photo-viewer-dialog { position: relative; z-index: 1; width: min(1500px, 100%); height: min(920px, calc(100dvh - 32px)); display: grid; grid-template-rows: minmax(0,1fr) auto; overflow: hidden; border-radius: 16px; background: #0c120f; box-shadow: 0 34px 90px rgba(0,0,0,.48); }
.detail-photo-viewer-close { position: absolute; top: 14px; right: 14px; z-index: 3; width: 46px; height: 46px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,253,248,.94); color: var(--green-dark); font-size: 1.45rem; cursor: pointer; }
.detail-photo-viewer-close:focus-visible, .detail-photo-control:focus-visible { outline: 3px solid #f2b84b; outline-offset: 3px; }
.detail-photo-viewer-viewport { min-width: 0; min-height: 0; display: grid; place-items: center; overflow: auto; overscroll-behavior: contain; padding: 18px; }
.detail-photo-viewer-image { display: block; max-width: 100%; max-height: 100%; object-fit: contain; transform: scale(var(--photo-zoom,1)); transform-origin: center; transition: transform .24s var(--ease-out); cursor: zoom-in; user-select: none; }
.detail-photo-viewer.is-zoomed .detail-photo-viewer-image { cursor: zoom-out; }
.detail-photo-viewer-toolbar { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 64px; border-top: 1px solid rgba(255,255,255,.12); background: rgba(12,18,15,.96); padding: 10px 70px; color: #fff; }
.detail-photo-control { min-width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.08); color: #fff; font-size: 1.25rem; font-weight: 850; cursor: pointer; }
.detail-photo-control:hover { background: rgba(255,255,255,.16); }
.detail-photo-zoom-value { min-width: 66px; color: rgba(255,255,255,.78); font-size: .8rem; font-weight: 850; text-align: center; }
.detail-access-gate[hidden] { display: none; }
.detail-access-gate {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(255,253,248,.08);
}
.detail-access-gate-card {
  width: min(500px, 100%);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px 16px;
  align-items: center;
  border-radius: 16px;
  background: var(--paper);
  padding: clamp(22px, 3vw, 30px);
  box-shadow: 0 24px 58px rgba(33,27,16,.2);
}
.detail-lock-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--green-dark); color: #fff; }
.detail-lock-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.detail-access-gate-card h2 { margin: 0 0 4px; color: var(--green-dark); font-size: clamp(1.25rem, 2.5vw, 1.7rem); letter-spacing: -.02em; }
.detail-access-gate-card p { margin: 0; color: var(--muted); }
.detail-login-button, .detail-login-status, .detail-login-fallback { grid-column: 1 / -1; }
.detail-login-button { width: 100%; }
.detail-login-button[aria-busy="true"] { cursor: wait; opacity: .7; }
.detail-login-status { font-size: .84rem; text-align: center; }
.detail-login-fallback { justify-self: center; color: var(--green-dark); font-weight: 800; font-size: .88rem; }

/* Auth / account / wallet / tariffs / messages */
.auth-page, .account-page, .tariff-page, .wallet-dashboard, .plans-page {
  margin-top: 24px; display: grid; gap: 18px;
}
.auth-page { grid-template-columns: 1.1fr .9fr; align-items: start; }
.auth-card, .account-card { padding: 22px; }
.auth-hero { max-width: 680px; padding: clamp(20px, 4vw, 46px) clamp(4px, 2vw, 20px); }
.auth-hero > p:not(.kicker) { max-width: 58ch; margin: 16px 0 0; color: var(--muted); font-size: 1rem; }
.auth-trust-list { display: grid; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; color: #3e4841; font-weight: 750; }
.auth-trust-list li { display: flex; align-items: center; gap: 10px; }
.auth-trust-list span { width: 25px; height: 25px; flex: 0 0 25px; display: grid; place-items: center; border-radius: 50%; background: #e8f1e9; color: var(--green-dark); font-size: .8rem; font-weight: 950; }
.auth-tabs { display: flex; gap: 8px; margin-bottom: 14px; }
.auth-tabs button {
  flex: 1; border: 1px solid var(--line); background: #fff; border-radius: 999px;
  padding: 10px; font-weight: 900; cursor: pointer;
}
.auth-tabs button.active { background: var(--green); color: #fff; border-color: var(--green); }
.auth-form { display: grid; gap: 12px; }
.auth-form [hidden], .auth-flow-card[hidden] { display: none; }
.auth-submit { width: 100%; min-height: 48px; margin-top: 2px; }
.auth-submit[aria-busy="true"] { cursor: wait; opacity: .68; }
.field-optional { color: var(--muted); font-size: .75rem; font-weight: 700; }
.auth-status { min-height: 22px; margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.45; overflow-wrap: anywhere; }
.auth-status[data-state="error"] { color: #a33f2d; }
.auth-status[data-state="success"] { color: var(--green-dark); font-weight: 750; }
.auth-text-action {
  width: fit-content;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  padding: 7px 3px;
  color: var(--green-dark);
  font-weight: 850;
  cursor: pointer;
}
.auth-text-action:hover { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.auth-text-action:disabled { cursor: wait; opacity: .55; }
.auth-flow-card { align-self: start; animation: authFlowIn .28s var(--ease-out) both; }
.auth-flow-head { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 13px; margin-bottom: 18px; }
.auth-flow-head > div { min-width: 0; }
.auth-flow-head span:not(.auth-flow-icon) { color: var(--green); font-size: .75rem; font-weight: 900; }
.auth-flow-head h2 { margin: 2px 0 0; color: var(--green-dark); font-size: 1.45rem; line-height: 1.15; letter-spacing: -.02em; }
.auth-flow-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: #e8f1e9; color: var(--green-dark); }
.auth-flow-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.auth-flow-copy { max-width: 48ch; margin: 0 0 18px; color: var(--muted); }
.auth-flow-copy strong { color: var(--green-dark); overflow-wrap: anywhere; }
.auth-code-input { font-variant-numeric: tabular-nums; letter-spacing: .32em; text-align: center; font-size: 1.35rem; font-weight: 900; }
.auth-code-input::placeholder { letter-spacing: .32em; }
.auth-inline-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; margin-top: 8px; }
.auth-back-action { margin-top: 8px; }
@keyframes authFlowIn {
  from { opacity: .25; transform: translateY(8px); filter: blur(3px); }
  to { opacity: 1; transform: none; filter: none; }
}
.account-grid, .tariff-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}
.account-card h2, .tariff-grid h2 { margin: 8px 0; }
.account-list { display: grid; gap: 8px; }
.account-list article {
  display: flex; justify-content: space-between; gap: 10px;
  padding: 10px 0; border-top: 1px dashed var(--line); font-weight: 800;
}
.account-list b { color: var(--green-dark); }

.wallet-dashboard { grid-template-columns: 1fr; gap: 20px; }
.wallet-page-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 8px 4px 2px;
}
.wallet-page-head > div { max-width: 720px; }
.wallet-page-head h1 { max-width: 15ch; letter-spacing: -.03em; }
.wallet-page-head p:not(.kicker) { max-width: 62ch; margin: 12px 0 0; color: var(--muted); }
.wallet-status-badge {
  display: inline-flex;
  min-height: 36px;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255,253,248,.72);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
}
.wallet-status-badge i { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.wallet-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .72fr);
  gap: 16px;
  align-items: stretch;
}
.wallet-balance-panel {
  position: relative;
  display: flex;
  min-height: 332px;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(26px, 4vw, 40px);
  border-radius: 16px;
  background: var(--green-dark);
  color: #fffdf8;
  box-shadow: 0 24px 54px rgba(18,73,50,.2);
}
.wallet-watermark {
  position: absolute;
  right: clamp(20px, 5vw, 70px);
  top: 50%;
  color: rgba(255,255,255,.055);
  font-size: clamp(11rem, 23vw, 19rem);
  font-weight: 950;
  line-height: .7;
  transform: translateY(-51%);
  pointer-events: none;
}
.wallet-balance-meta {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.wallet-balance-meta > span { color: rgba(255,255,255,.74); font-weight: 750; }
.wallet-balance-meta small {
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-weight: 850;
}
.wallet-balance-panel > strong {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 16px;
  font-size: clamp(3.25rem, 7vw, 5.65rem);
  line-height: .95;
  letter-spacing: -.04em;
}
.wallet-balance-panel > p:not(.wallet-action-feedback) {
  position: relative;
  z-index: 1;
  max-width: 48ch;
  margin: 14px 0 0;
  color: rgba(255,255,255,.72);
}
.wallet-actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: auto;
  padding-top: 26px;
}
.wallet-actions button, .wallet-actions a {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-weight: 900;
  cursor: pointer;
  transition: transform .18s var(--ease-out), background .18s ease, box-shadow .18s ease;
}
.wallet-actions svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.wallet-actions .wallet-action-primary { background: #fffdf8; color: var(--green-dark); box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.wallet-actions button:hover, .wallet-actions a:hover { transform: translateY(-2px); background: rgba(255,255,255,.2); }
.wallet-actions .wallet-action-primary:hover { background: #fff; box-shadow: 0 16px 32px rgba(0,0,0,.2); }
.wallet-actions button:active, .wallet-actions a:active { transform: scale(.97); }
.wallet-action-feedback {
  position: relative;
  z-index: 1;
  min-height: 1.25em;
  margin: 10px 0 -12px;
  color: rgba(255,255,255,.7);
  font-size: .78rem;
}
.wallet-topup-form { position: relative; z-index: 1; width: min(560px, 100%); display: grid; grid-template-columns: minmax(130px, .7fr) auto auto; align-items: end; gap: 9px; margin-top: 14px; border-top: 1px solid rgba(255,255,255,.2); padding-top: 14px; }
.wallet-topup-form[hidden] { display: none; }
.wallet-topup-form > div { display: grid; gap: 5px; }
.wallet-topup-form label { color: rgba(255,255,255,.75); font-size: .76rem; font-weight: 800; }
.wallet-topup-amount { min-height: 42px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; border-radius: 12px; background: #fff; color: var(--foreground); padding: 0 10px; }
.wallet-topup-amount input { min-width: 0; border: 0; outline: 0; background: transparent; padding: 9px 6px; font: inherit; font-weight: 850; }
.wallet-topup-form button { min-height: 42px; }
.wallet-topup-form [data-wallet-topup-status] { grid-column: 1 / -1; margin: 0; color: rgba(255,255,255,.72); font-size: .76rem; }
.wallet-support-panel {
  display: grid;
  grid-template-rows: 1fr 1fr;
  overflow: hidden;
  border: 0;
  box-shadow: var(--shadow);
}
.wallet-support-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: start;
  gap: 15px;
  padding: 24px;
}
.wallet-support-row + .wallet-support-row { border-top: 1px solid var(--line); }
.wallet-support-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 14px;
  background: #eff5ef;
  color: var(--green-dark);
}
.wallet-support-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.wallet-support-row > div { display: grid; gap: 4px; min-width: 0; }
.wallet-support-row span:not(.wallet-support-icon) { color: var(--muted); font-size: .78rem; font-weight: 750; }
.wallet-support-row strong { font-size: 1.08rem; line-height: 1.2; }
.wallet-support-row p { margin: 4px 0 0; color: var(--muted); font-size: .88rem; }
.wallet-reward-row strong { color: var(--green-dark); font-size: clamp(1.7rem, 3vw, 2.2rem); }
.wallet-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .72fr);
  gap: 16px;
  align-items: stretch;
}
.movement-panel, .wallet-tier-panel { padding: 24px; border: 0; }
.wallet-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.wallet-section-head span { color: var(--green); font-size: .75rem; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.wallet-section-head h2 { margin: 2px 0 0; font-size: 1.3rem; letter-spacing: -.02em; }
.wallet-section-head > small { color: var(--muted); }
.movement-list { display: grid; }
.movement-list article {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 15px 0;
  border-top: 1px solid var(--line);
}
.movement-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 13px;
  background: #eff5ef;
  color: var(--green-dark);
}
.movement-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.wallet-movement.is-debit .movement-icon { background: #fff0eb; color: var(--coral); }
.movement-copy { display: grid; gap: 2px; min-width: 0; }
.movement-copy strong { line-height: 1.25; }
.movement-list .movement-copy span { display: block; color: var(--muted); font-size: .86rem; font-weight: 600; overflow-wrap: anywhere; }
.movement-amount { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--green-dark); }
.wallet-movement.is-debit .movement-amount { color: var(--foreground); }
.wallet-tier-panel { align-self: stretch; }
.tier-track { display: grid; }
.tier-track article {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 15px 12px;
  border-top: 1px solid var(--line);
  border-radius: 12px;
}
.tier-track article > span { display: grid; gap: 1px; font-weight: 900; }
.tier-track article small { color: var(--muted); font-weight: 600; }
.tier-track article strong { color: var(--green-dark); font-size: 1.05rem; }
.tier-track article.active { background: #eff5ef; }
.tier-track article.active::before {
  content: "";
  position: absolute;
  left: -3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
}
.wallet-tier-note { margin: 16px 0 0; color: var(--muted); font-size: .82rem; }

.tariff-grid article { padding: 18px; }
.tariff-grid span { color: var(--muted); font-weight: 800; }

.plans-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}
.plans-head > div { max-width: 760px; }
.plans-head h1 { max-width: 17ch; }
.plans-head .muted { max-width: 65ch; margin: 12px 0 0; }
.plans-status-note {
  margin: 0;
  padding: 13px 16px;
  border: 1px solid rgba(31,111,74,.14);
  border-radius: 14px;
  background: #eef5ed;
  color: var(--muted);
}
.plans-status-note strong { color: var(--green-dark); }
.plan-selector {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.plan-option {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 370px;
  flex-direction: column;
  padding: 26px 22px 22px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  box-shadow: var(--shadow);
  cursor: pointer;
  transition: transform .2s var(--ease-out), border-color .2s ease, box-shadow .2s ease;
}
.plan-option:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.plan-option:has(input:checked) {
  border-color: rgba(31,111,74,.58);
  box-shadow: 0 0 0 3px rgba(31,111,74,.1), var(--shadow-lg);
}
.plan-option:has(input:focus-visible) {
  outline: 3px solid #f2b84b;
  outline-offset: 3px;
}
.plan-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.plan-radio {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 22px;
  height: 22px;
  border: 2px solid #cbd2cc;
  border-radius: 50%;
  background: #fff;
}
.plan-option input:checked + .plan-radio { border: 6px solid var(--green); }
.plan-name {
  padding-right: 42px;
  color: var(--green-dark);
  font-size: 1.25rem;
  font-weight: 950;
}
.plan-price {
  margin: 14px 0 8px;
  color: var(--foreground);
  font-size: clamp(1.9rem, 4vw, 2.65rem);
  line-height: 1;
  letter-spacing: -.035em;
}
.plan-price small { color: var(--muted); font-size: .78rem; letter-spacing: 0; }
.plan-option p { margin: 4px 0 18px; color: var(--muted); }
.plan-option ul { display: grid; gap: 10px; margin: auto 0 0; padding: 0; list-style: none; }
.plan-option li { position: relative; padding-left: 27px; font-weight: 750; }
.plan-option li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: .34em;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--green);
  border-bottom: 2px solid var(--green);
  transform: rotate(-45deg);
}
.plan-label {
  position: absolute;
  top: -12px;
  left: 20px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #f2b84b;
  color: #392807;
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.plan-confirmation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 20px;
  border-radius: 18px;
  background: var(--green-dark);
  color: #fff;
  box-shadow: var(--shadow-lg);
}
.plan-confirmation > div { display: grid; gap: 2px; min-width: 0; }
.plan-confirmation span, .plan-confirmation small { color: rgba(255,255,255,.72); }
.plan-confirmation strong { font-size: 1.15rem; overflow-wrap: anywhere; }
.plan-confirmation .primary { flex: 0 0 auto; background: #f2b84b; color: #253126 !important; box-shadow: none; }
.visibility-help-link {
  display: inline-flex;
  width: fit-content;
  margin-top: 4px;
  color: var(--green-dark);
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.visibility-help-link:hover { color: var(--green); }
.publish-checkout .visibility-help-link { color: #f4cb78; }
.publish-checkout .visibility-help-link:hover { color: #fff; }

.messages-layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 14px;
  min-height: 520px;
}
.thread-list, .thread-pane { padding: 12px; overflow: auto; }
.thread-item {
  width: 100%; text-align: left; border: 0; background: transparent;
  border-radius: 16px; padding: 12px; cursor: pointer; display: grid; gap: 4px;
}
.thread-item:hover, .thread-item.active { background: #eef3e9; }
.thread-item strong { font-size: .98rem; }
.thread-item span { color: var(--muted); font-size: .86rem; }
.thread-messages { display: grid; gap: 10px; margin: 14px 0; }
.bubble {
  max-width: 80%; padding: 12px 14px; border-radius: 18px;
  background: #eef3e9; font-weight: 650;
}
.bubble.mine { margin-left: auto; background: #124932; color: #fff; }
.thread-compose { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }

/* Publish studio */
.studio {
  display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 22px; margin-top: 26px;
}
.sell-preview { display: grid; gap: 14px; align-content: start; position: sticky; top: 92px; }
.preview-phone { overflow: hidden; }
.preview-photo {
  width: 100%;
  aspect-ratio: 4/3;
  display: grid;
  place-items: center;
  border: 0;
  background-color: #e5ece4;
  background-size: cover;
  background-position: center;
  color: var(--green-dark);
  position: relative;
  cursor: pointer;
  overflow: hidden;
  transition: filter .2s ease, transform .24s var(--ease-out);
}
.preview-photo:hover { filter: brightness(.96); transform: scale(1.012); }
#previewBadge {
  position: absolute; left: 12px; top: 12px; background: rgba(255,253,248,.92);
  border-radius: 999px; padding: 6px 10px; font-weight: 900; font-size: .78rem;
}
.preview-photo-count {
  position: absolute; right: 12px; top: 12px; border-radius: 999px; background: rgba(18,73,50,.9);
  padding: 6px 10px; color: #fff; font-size: .78rem; font-weight: 900;
}
.photo-empty-preview { display: grid; place-items: center; gap: 5px; }
.photo-empty-preview svg { width: 42px; height: 42px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.photo-empty-preview strong { font-size: 1rem; }
.photo-empty-preview small { color: var(--muted); }
.preview-photo:not(.is-empty) .photo-empty-preview { display: none; }
.preview-body, .sell-summary { padding: 16px; }
.sell-summary { display: grid; gap: 4px; }
.sell-summary b { color: var(--green-dark); font-size: 1.45rem; }
.sell-summary p { margin: 8px 0 0; color: var(--muted); }
.sell-form { display: grid; gap: 16px; min-width: 0; }
.sell-form [hidden] { display: none !important; }
.sell-form .form-card { padding: clamp(20px, 3vw, 30px); border: 0; }
.studio-head, .publish-row {
  display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap;
}
.studio-head { padding: 10px 4px 4px; }
.studio-head h1 { max-width: 22ch; margin: 0; font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1; letter-spacing: -.035em; }
.studio-edit-note { max-width: 58ch; margin: 12px 0 0; color: var(--muted); line-height: 1.5; }
.field-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
  align-items: start;
}
.sell-form .field-grid > label { min-width: 0; align-self: start; }
.sell-form .field-grid > label > span:first-child { min-height: 1.25em; display: flex; align-items: baseline; gap: 5px; }
.sell-form .field-grid > label > span small { color: var(--muted); font-size: .7rem; font-weight: 700; }
.field-grid .wide { grid-column: 1 / -1; }
.category-fields { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.category-details-head { display: grid; gap: 5px; margin-bottom: 14px; }
.category-fields h3 { margin: 0; color: var(--green-dark); font-size: 1.05rem; }
.category-fields h3 strong { font: inherit; }
.category-details-head p { max-width: 64ch; margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.seller-account-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  background: #eef3ed !important;
}
.seller-account-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--green-dark);
  color: #fff;
}
.seller-account-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.seller-account-copy h2 { margin: 1px 0 5px; color: var(--green-dark); font-size: clamp(1.25rem, 2vw, 1.65rem); letter-spacing: -.02em; }
.seller-account-copy .muted { margin: 0; max-width: 62ch; }
.seller-account-summary { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-top: 9px; }
.seller-account-summary strong { color: var(--green-dark); }
.seller-account-summary span { color: var(--muted); }
.seller-account-summary[hidden] { display: none; }
.seller-account-action { white-space: nowrap; }
.photo-form-field { display: grid; gap: 7px; }
.field-label { font-weight: 800; font-size: .92rem; }
.photo-upload-trigger {
  width: 100%;
  min-height: 84px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  border: 1px dashed rgba(18,73,50,.32);
  border-radius: 14px;
  background: #f7faf5;
  padding: 13px;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, transform .2s var(--ease-out), box-shadow .2s ease;
}
.photo-upload-trigger:hover { background: #eef5ed; transform: translateY(-2px); box-shadow: 0 12px 24px rgba(33,27,16,.08); }
.photo-upload-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--green-dark);
  color: #fff;
}
.photo-upload-icon svg, .photo-dropzone-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.photo-upload-copy { display: grid; gap: 3px; }
.photo-upload-copy strong { color: var(--green-dark); }
.photo-upload-copy small { color: var(--muted); }
.photo-upload-count { border-radius: 999px; background: #fff; padding: 7px 10px; color: var(--green-dark); font-weight: 900; font-size: .82rem; }
.photo-inline-list { display: flex; align-items: center; gap: 7px; min-height: 50px; overflow: hidden; }
.photo-inline-list[hidden] { display: none; }
.photo-inline-thumb, .photo-inline-more { width: 50px; height: 50px; flex: 0 0 50px; overflow: hidden; border-radius: 11px; }
.photo-inline-thumb img { width: 100%; height: 100%; object-fit: cover; }
.photo-inline-more { display: grid; place-items: center; background: #e8efe6; color: var(--green-dark); font-weight: 900; }
.segmented { display: flex; flex-wrap: wrap; gap: 8px; }
.segmented button {
  border: 1px solid var(--line); background: #fff; border-radius: 999px;
  padding: 10px 12px; font-weight: 800; cursor: pointer;
}
.segmented button.active { background: var(--green); color: #fff; border-color: var(--green); }
.segmented button:disabled { cursor: not-allowed; opacity: .42; background: #f1efe9; color: var(--muted); border-color: transparent; }
.publish-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}
.publish-section-head h2 { margin: 0; color: var(--green-dark); font-size: clamp(1.45rem, 2.4vw, 2rem); letter-spacing: -.02em; }
.publish-section-head .muted { max-width: 62ch; margin: 8px 0 0; }
.map-locate-button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; color: var(--green-dark); }
.map-locate-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.map-locate-button:disabled { cursor: wait; opacity: .6; transform: none; }
.coordinate-fields { margin-bottom: 14px; }
.location-privacy-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .82fr);
  gap: 14px;
  align-items: stretch;
  margin-bottom: 14px;
}
.location-zone-field, .radius-field { display: grid; gap: 7px; font-weight: 800; font-size: .92rem; }
.radius-field {
  align-content: center;
  border-radius: 14px;
  background: #f7f5ef;
  padding: 11px 14px;
}
.radius-field-head, .radius-scale { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.radius-field output { min-width: 58px; color: var(--green-dark); font-weight: 950; text-align: right; }
.radius-field input[type="range"] {
  --range-progress: 12.5%;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 8px;
  min-height: 8px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--green) 0 var(--range-progress), #d8e3d9 var(--range-progress) 100%);
  box-shadow: inset 0 1px 2px rgba(18,73,50,.14);
  cursor: pointer;
}
.radius-field input[type="range"]::-webkit-slider-runnable-track { height: 8px; border-radius: 999px; background: transparent; }
.radius-field input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 24px;
  height: 24px;
  margin-top: -8px;
  border: 4px solid var(--paper);
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 5px 14px rgba(18,73,50,.28);
}
.radius-field input[type="range"]::-moz-range-track { height: 8px; border: 0; border-radius: 999px; background: transparent; }
.radius-field input[type="range"]::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--green); }
.radius-field input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 4px solid var(--paper); border-radius: 50%; background: var(--green); box-shadow: 0 5px 14px rgba(18,73,50,.28); }
.radius-field input[type="range"]:focus-visible { outline: 3px solid #f2b84b; outline-offset: 6px; }
.radius-scale { color: var(--muted); font-size: .72rem; font-weight: 700; }
.publish-map-shell { position: relative; }
.publish-map {
  position: relative;
  z-index: 0;
  isolation: isolate;
  height: 360px;
  overflow: hidden;
  border-radius: 16px;
  background: #dce7dd;
  box-shadow: 0 16px 34px rgba(33,27,16,.1);
}
.publish-map .leaflet-map-pane { z-index: 0 !important; }
.publish-map .leaflet-tile-pane { z-index: 1 !important; }
.publish-map .leaflet-overlay-pane { z-index: 2 !important; }
.publish-map .leaflet-shadow-pane { z-index: 3 !important; }
.publish-map .leaflet-marker-pane { z-index: 4 !important; }
.publish-map .leaflet-tooltip-pane { z-index: 5 !important; }
.publish-map .leaflet-popup-pane { z-index: 6 !important; }
.publish-map .leaflet-top,
.publish-map .leaflet-bottom { z-index: 7 !important; }
.publish-map-hint {
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 8;
  max-width: calc(100% - 28px);
  border-radius: 999px;
  background: rgba(255,253,248,.92);
  padding: 8px 11px;
  color: var(--green-dark);
  font-size: .8rem;
  font-weight: 850;
  box-shadow: 0 8px 20px rgba(33,27,16,.12);
  pointer-events: none;
  backdrop-filter: blur(8px);
}
.map-form-status { min-height: 1.5em; margin: 10px 2px 0; font-size: .88rem; }
.optional-label {
  flex: 0 0 auto;
  border-radius: 999px;
  background: #eef3ed;
  padding: 8px 11px;
  color: var(--green-dark);
  font-size: .8rem;
  font-weight: 900;
}
.extras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.extra-option {
  position: relative;
  min-width: 0;
  min-height: 164px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr;
  gap: 13px 10px;
  align-items: start;
  border-radius: 14px;
  background: #f7f5ef;
  padding: 15px;
  cursor: pointer;
  transition: background .18s ease, transform .2s var(--ease-out), box-shadow .2s ease;
}
.extra-option:hover { transform: translateY(-2px); background: #f0f4ee; box-shadow: 0 12px 24px rgba(33,27,16,.09); }
.extra-option:has(input:checked) { background: #e8f1e9; box-shadow: inset 0 0 0 2px rgba(31,111,74,.25); }
.extra-option input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0;
  pointer-events: none;
}
.extra-check {
  grid-row: 1 / 3;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #fff;
  color: transparent;
  box-shadow: inset 0 0 0 1px rgba(24,32,27,.12);
  transition: background .18s ease, color .18s ease, transform .18s var(--ease-out);
}
.extra-check svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.extra-option input:checked + .extra-check { background: var(--green); color: #fff; box-shadow: none; transform: scale(1.04); }
.extra-option input:focus-visible + .extra-check { outline: 3px solid #f2b84b; outline-offset: 3px; }
.extra-copy { display: grid; gap: 5px; align-content: start; }
.extra-copy strong { color: var(--green-dark); line-height: 1.18; }
.extra-copy small { color: var(--muted); font-weight: 650; line-height: 1.35; }
.extra-option > b { grid-column: 2 / 4; align-self: end; color: var(--green-dark); font-size: 1rem; }
.publish-checkout {
  display: grid;
  gap: 20px;
  border-radius: 16px;
  background: var(--green-dark);
  color: var(--paper);
  padding: clamp(22px, 3vw, 30px);
  box-shadow: 0 20px 44px rgba(18,73,50,.24);
}
.visibility-intro { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
.visibility-intro h2 { margin: 3px 0 0; font-size: clamp(1.45rem, 2.7vw, 2.15rem); letter-spacing: -.025em; }
.visibility-intro p { max-width: 44ch; margin: 0; color: rgba(255,253,248,.76); }
.checkout-label { color: #f4cb78; font-size: .78rem; font-weight: 950; letter-spacing: .04em; text-transform: uppercase; }
.visibility-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.visibility-tier {
  position: relative;
  min-height: 112px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  gap: 7px 10px;
  align-items: start;
  border: 1px solid rgba(255,253,248,.18);
  border-radius: 14px;
  background: rgba(255,253,248,.07);
  padding: 15px;
  cursor: pointer;
  transition: transform .2s var(--ease-out), background .18s ease, border-color .18s ease;
}
.visibility-tier:hover { transform: translateY(-2px); background: rgba(255,253,248,.12); }
.visibility-tier input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.visibility-radio { width: 20px; height: 20px; border: 2px solid rgba(255,253,248,.56); border-radius: 50%; box-shadow: inset 0 0 0 4px transparent; }
.visibility-tier > span:nth-of-type(2) { display: grid; gap: 3px; }
.visibility-tier strong { color: #fff; }
.visibility-tier small { color: rgba(255,253,248,.7); line-height: 1.3; }
.visibility-tier > b { grid-column: 2; align-self: end; font-size: 1.08rem; color: #fff; }
.visibility-tier:has(input:checked) { background: var(--paper); border-color: var(--paper); color: var(--green-dark); transform: translateY(-2px); }
.visibility-tier:has(input:checked) .visibility-radio { border-color: var(--green); box-shadow: inset 0 0 0 4px var(--paper); background: var(--green); }
.visibility-tier:has(input:checked) strong,
.visibility-tier:has(input:checked) > b { color: var(--green-dark); }
.visibility-tier:has(input:checked) small { color: var(--muted); }
.visibility-tier input:focus-visible + .visibility-radio { outline: 3px solid #f4cb78; outline-offset: 3px; }
.visibility-tier-paid { border-color: rgba(244,203,120,.58); }
.visibility-tier-premium { background: rgba(244,203,120,.13); }
.checkout-action-row { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-top: 2px; }
.price-box { min-width: 150px; display: grid; gap: 2px; }
.price-box span, .price-box small { color: rgba(255,253,248,.72); }
.price-box b { font-size: 1.65rem; line-height: 1.1; }
.publish-submit { gap: 9px; min-width: 190px; background: #f4cb78 !important; color: var(--green-dark) !important; box-shadow: 0 12px 26px rgba(0,0,0,.18) !important; }
.publish-checkout button.publish-submit { color: var(--green-dark) !important; }
.publish-submit:hover { box-shadow: 0 16px 32px rgba(0,0,0,.22) !important; }
.publish-submit svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s var(--ease-out); }
.publish-submit:hover svg { transform: translateX(3px); }
.listing-edit-mode .visibility-intro,
.listing-edit-mode .visibility-tiers,
.listing-edit-mode .visibility-help-link,
.listing-edit-mode .price-box { display: none; }
.listing-edit-mode .publish-checkout { border: 1px solid #cbd9ce; background: #eef3ed; color: var(--green-dark); box-shadow: none; }
.listing-edit-mode .checkout-action-row { justify-content: flex-end; }
.listing-edit-mode .publish-submit { background: var(--green) !important; color: #fff !important; box-shadow: none !important; }
.listing-edit-mode .publish-submit:hover { background: var(--green-dark) !important; }

body.modal-open { overflow: hidden; }
.photo-manager-modal[hidden] { display: none; }
.photo-manager-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
.photo-manager-modal.is-open { opacity: 1; pointer-events: auto; }
.photo-manager-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(10,24,17,.62); cursor: default; backdrop-filter: blur(8px); }
.photo-manager-panel {
  position: relative;
  width: min(820px, 100%);
  max-height: min(760px, calc(100vh - 40px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border-radius: 16px;
  background: var(--paper);
  box-shadow: 0 30px 80px rgba(5,20,12,.34);
  transform: translateY(18px) scale(.985);
  transition: transform .24s var(--ease-out);
}
.photo-manager-modal.is-open .photo-manager-panel { transform: none; }
.photo-manager-head { display: flex; justify-content: space-between; gap: 18px; padding: 24px 24px 18px; border-bottom: 1px solid var(--line); }
.photo-manager-head h2 { margin: 4px 0 5px; color: var(--green-dark); font-size: clamp(1.45rem, 3vw, 2rem); letter-spacing: -.025em; }
.photo-manager-head p { margin: 0; color: var(--muted); }
.photo-manager-close { width: 44px; height: 44px; flex: 0 0 44px; border: 0; border-radius: 50%; background: #f1f2ed; color: var(--green-dark); font-size: 1.65rem; line-height: 1; cursor: pointer; }
.photo-manager-body { overflow-y: auto; padding: 18px 24px; }
.photo-dropzone {
  width: 100%;
  min-height: 126px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  border: 1px dashed rgba(18,73,50,.38);
  border-radius: 14px;
  background: #eef3ed;
  color: var(--green-dark);
  cursor: pointer;
  transition: transform .2s var(--ease-out), background .18s ease, border-color .18s ease;
}
.photo-dropzone:hover, .photo-dropzone.is-dragover { transform: translateY(-2px); background: #e3eee5; border-color: var(--green); }
.photo-dropzone-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; background: var(--green-dark); color: #fff; }
.photo-dropzone > span:last-child { display: grid; gap: 4px; text-align: left; }
.photo-dropzone small { color: var(--muted); }
.photo-manager-list { display: grid; gap: 8px; margin-top: 14px; }
.photo-manager-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  border-radius: 13px;
  background: #f7f5ef;
  padding: 8px;
  cursor: grab;
  transition: transform .16s var(--ease-out), opacity .16s ease;
}
.photo-manager-item.is-dragging { opacity: .52; transform: scale(.985); }
.photo-manager-item img { width: 74px; height: 62px; object-fit: cover; border-radius: 10px; }
.photo-manager-item-copy { min-width: 0; display: grid; gap: 3px; }
.photo-manager-item-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--green-dark); }
.photo-manager-item-copy small { color: var(--muted); }
.photo-manager-controls { display: flex; gap: 5px; }
.photo-order-button, .photo-remove-button { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #fff; color: var(--green-dark); font-weight: 950; font-size: 1.15rem; cursor: pointer; }
.photo-remove-button { color: var(--coral); }
.photo-order-button:disabled { opacity: .32; cursor: not-allowed; }
.photo-manager-status { min-height: 1.45em; margin: 12px 2px 0; color: var(--muted); }
.photo-manager-status.is-error { color: #a43e2c; font-weight: 750; }
.photo-manager-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 24px; border-top: 1px solid var(--line); background: #f7f5ef; }
.photo-manager-footer > strong { color: var(--green-dark); }

/* Global chat */
.chat-launcher {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 36;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--green-dark);
  color: #fff;
  box-shadow: none;
  cursor: pointer;
  animation: chatLauncherArrive .58s .08s var(--ease-out) backwards;
  transition: right .24s var(--ease-out), transform .22s var(--ease-out), box-shadow .22s ease, background .18s ease;
}
.shell > .chat-launcher {
  animation: chatLauncherArrive .58s .08s var(--ease-out) backwards;
  clip-path: none;
  filter: none;
}
body.has-upload-launcher .chat-launcher { right: 96px; }
.chat-launcher svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chat-launcher:hover { transform: translateY(-4px) scale(1.055); background: var(--green); box-shadow: none; }
.chat-launcher:active { transform: translateY(-1px) scale(.97); }
body.chat-panel-visible .chat-launcher { opacity: 0; pointer-events: none; transform: scale(.72); }
.global-chat-overlay[hidden] { display: none; }
.global-chat-overlay {
  position: fixed;
  inset: 0;
  z-index: 11500;
  opacity: 0;
  pointer-events: none;
}
.global-chat-overlay.is-opening,
.global-chat-overlay.is-open,
.global-chat-overlay.is-closing { opacity: 1; }
.chat-morph-bubble {
  position: fixed;
  right: 29px;
  bottom: 29px;
  z-index: 1;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.54);
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  opacity: 0;
  box-shadow: 0 12px 26px rgba(18,73,50,.26);
  pointer-events: none;
  transform: scale(.15);
  transform-origin: bottom right;
}
.chat-morph-bubble svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.has-upload-launcher .chat-morph-bubble { right: 103px; }
.global-chat-overlay.is-opening .chat-morph-bubble { animation: chatBudPop .3s var(--ease-out) both; }
.global-chat-window {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 2;
  width: min(430px, calc(100vw - 36px));
  height: min(640px, calc(100vh - 96px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border-radius: 16px;
  background: var(--paper);
  box-shadow: 0 20px 58px rgba(5,20,12,.24), 0 4px 16px rgba(5,20,12,.1);
  opacity: 0;
  pointer-events: auto;
  transform: translateY(18px) scale(.16);
  transform-origin: bottom right;
}
.global-chat-overlay.is-opening .global-chat-window {
  animation: chatWindowBloom .34s cubic-bezier(.18,.9,.24,1) both;
  will-change: transform, opacity, clip-path;
}
.global-chat-overlay.is-open .global-chat-window { opacity: 1; transform: none; }
.global-chat-window:focus { outline: none; }
.global-chat-overlay.is-closing .global-chat-window {
  animation: chatWindowFold .18s cubic-bezier(.55,.05,.75,.35) both;
  will-change: transform, opacity;
}
.global-chat-head, .global-chat-body { min-width: 0; }
.global-chat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.global-chat-title { min-width: 0; display: flex; align-items: center; gap: 10px; }
.global-chat-mark { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 50%; background: var(--green-dark); color: #fff; }
.global-chat-mark svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.global-chat-title div { min-width: 0; }
.global-chat-title h2 { margin: 0; overflow: hidden; color: var(--green-dark); font-size: 1.02rem; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.global-chat-title div > span { display: block; max-width: 27ch; overflow: hidden; color: var(--muted); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.global-chat-actions { display: flex; flex: 0 0 auto; gap: 4px; }
.global-chat-minimize, .global-chat-close { width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #f1f2ed; color: var(--green-dark); cursor: pointer; }
.global-chat-minimize svg, .global-chat-close svg { display: block; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.global-chat-minimize:hover, .global-chat-close:hover { background: #e5ebe2; }
.global-chat-minimize:focus-visible, .global-chat-close:focus-visible { outline: 3px solid rgba(31,111,74,.24); outline-offset: 1px; }
.global-chat-body { min-height: 0; display: grid; grid-template-rows: minmax(108px, 32%) minmax(0, 1fr); }
.global-chat-threads { min-width: 0; display: flex; gap: 7px; overflow-x: auto; overflow-y: hidden; border-bottom: 1px solid var(--line); background: #f7f5ef; padding: 8px; scrollbar-width: thin; }
.global-chat-thread {
  width: min(78%, 270px);
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  padding: 12px;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, transform .18s var(--ease-out);
}
.global-chat-thread-photo { width: 42px; height: 42px; border-radius: 10px; object-fit: cover; background: #e8ebe4; }
.global-chat-thread:hover { background: #eef3ed; transform: translateY(-1px); }
.global-chat-thread.active { background: var(--green-dark); color: #fff; }
.global-chat-thread-copy { min-width: 0; display: grid; gap: 4px; }
.global-chat-thread-copy strong, .global-chat-thread-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.global-chat-thread-copy span { color: var(--muted); font-size: .82rem; }
.global-chat-thread time { color: var(--muted); font-size: .7rem; white-space: nowrap; }
.global-chat-thread.active .global-chat-thread-copy span,
.global-chat-thread.active time { color: rgba(255,255,255,.72); }
.global-chat-conversation { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; }
.chat-conversation-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px 7px; }
.chat-conversation-head > div { min-width: 0; }
.chat-conversation-head > span { color: var(--green); font-size: .76rem; font-weight: 900; text-transform: uppercase; }
.chat-conversation-head h3 { margin: 3px 0 0; font-size: 1.25rem; letter-spacing: -.02em; }
.chat-head-offer { min-height: 36px; flex: 0 0 auto; border: 1px solid var(--green); border-radius: 999px; background: transparent; color: var(--green-dark); padding: 7px 12px; font: inherit; font-size: .78rem; font-weight: 850; cursor: pointer; }
.chat-head-offer:hover { background: #eaf0e7; }
.chat-message-stream { min-height: 0; display: flex; flex-direction: column; gap: 9px; overflow-y: auto; padding: 8px 14px 14px; scroll-behavior: smooth; }
.chat-message-bubble { align-self: flex-start; max-width: 84%; border-radius: 14px 14px 14px 5px; background: #eaf0e7; padding: 10px 12px; }
.chat-message-bubble.mine { align-self: flex-end; border-radius: 14px 14px 5px 14px; background: var(--green-dark); color: #fff; }
.chat-message-bubble p { margin: 0; overflow-wrap: anywhere; }
.chat-message-bubble time { display: block; margin-top: 5px; color: var(--muted); font-size: .69rem; }
.chat-message-bubble.mine time { color: rgba(255,255,255,.66); }
.chat-system-message { align-self: center; max-width: 90%; margin: 3px 0; color: var(--muted); font-size: .74rem; text-align: center; }
.chat-offer-card { align-self: stretch; border: 1px solid #cfd9ce; border-left: 4px solid var(--green); border-radius: 14px; background: #f5f8f2; padding: 12px; }
.chat-offer-card.is-rejected, .chat-offer-card.is-withdrawn, .chat-offer-card.is-expired, .chat-offer-card.is-cancelled { border-left-color: #a5aaa2; background: #f5f4f0; }
.chat-offer-card.is-paid { border-left-color: #1e7a50; background: #eef7f0; }
.chat-offer-top { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.chat-offer-top > span { display: grid; gap: 3px; }
.chat-offer-top small { color: var(--muted); font-size: .65rem; font-weight: 900; letter-spacing: .08em; }
.chat-offer-top strong { color: var(--green-dark); font-size: 1.35rem; }
.chat-offer-state { max-width: 17ch; color: var(--muted); font-size: .72rem; line-height: 1.25; text-align: right; }
.chat-offer-note, .chat-offer-payment-note { margin: 9px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.chat-offer-actions, .chat-offer-compose-actions { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 11px; }
.chat-offer-actions button { flex: 1 1 120px; min-height: 38px; padding: 8px 12px; }
.chat-offer-count { width: max-content; border-radius: 999px; background: #dcebdc; color: var(--green-dark); padding: 2px 7px; font-size: .64rem; }
.global-chat-thread.active .chat-offer-count { background: rgba(255,255,255,.18); color: #fff; }
.chat-offer-composer { display: grid; gap: 10px; border-bottom: 1px solid var(--line); background: #f4f7f1; padding: 12px 14px; }
.chat-offer-composer > div:first-child { display: grid; gap: 2px; }
.chat-offer-composer > div:first-child span { color: var(--muted); font-size: .76rem; }
.chat-offer-fields { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1.3fr); gap: 8px; }
.chat-offer-fields label { display: grid; gap: 4px; color: var(--muted); font-size: .7rem; font-weight: 800; }
.chat-offer-fields input { width: 100%; min-height: 40px; border: 1px solid var(--line); border-radius: 11px; background: #fff; padding: 9px 10px; font: inherit; }
.chat-offer-compose-actions { justify-content: flex-end; margin-top: 0; }
.chat-offer-compose-actions button { min-height: 36px; padding: 7px 12px; }
.chat-offer-compose-status { min-height: 1em; margin: 0; color: var(--coral); font-size: .72rem; }
.chat-compose { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; padding: 10px 12px 12px; border-top: 1px solid var(--line); }
.chat-compose textarea { width: 100%; min-height: 44px; max-height: 112px; resize: none; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 10px 12px; line-height: 1.4; }
.chat-send-button { min-width: 90px; }
.chat-send-button:disabled { cursor: wait; opacity: .62; transform: none; }
.chat-loading, .chat-empty-state, .chat-error-state { min-height: 130px; display: grid; place-content: center; gap: 5px; padding: 22px; color: var(--muted); text-align: center; }
.chat-empty-state strong, .chat-error-state strong { color: var(--green-dark); }
.chat-error-state .ghost { justify-self: center; margin-top: 8px; }
.global-chat-overlay.is-minimized .global-chat-window {
  width: min(340px, calc(100vw - 28px));
  height: 62px;
  grid-template-rows: 1fr;
  border-radius: 14px;
  cursor: pointer;
  transform: none;
}
.global-chat-overlay.is-minimized .global-chat-head { height: 62px; border-bottom: 0; }
.global-chat-overlay.is-minimized .global-chat-body { display: none; }
.global-chat-overlay.is-minimized .global-chat-mark { width: 36px; height: 36px; flex-basis: 36px; }
.global-chat-overlay.is-minimized .global-chat-title h2 { font-size: .94rem; }
.global-chat-overlay.is-minimized .global-chat-title div > span { max-width: 18ch; }
body.has-upload-launcher .global-chat-overlay.is-minimized .global-chat-window { right: 100px; }

.legal-page { margin-top: 24px; display: grid; gap: 16px; }
.legal-page.two-col { grid-template-columns: 1fr 1fr; align-items: start; }
.legal-lead { color: var(--muted); max-width: 60ch; }
.legal-card { padding: 22px; }
.legal-form { display: grid; gap: 12px; }

.site-footer {
  margin-top: 42px; padding: 22px 0 10px;
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  border-top: 1px solid var(--line); color: var(--muted);
}
.site-footer nav { display: flex; flex-wrap: wrap; gap: 12px; }
.site-footer a { font-weight: 800; }
.cookie-banner {
  position: fixed; left: 50%; bottom: 16px; z-index: 50;
  width: min(820px, calc(100% - 32px));
  transform: translateX(-50%);
  display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  padding: 16px; border-radius: 20px; background: rgba(255,253,248,.94);
  border: 1px solid var(--line); box-shadow: var(--shadow-lg);
}
.cookie-banner[hidden] { display: none; }
.cookie-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Account workspace */
.account-shell { max-width: 1392px; }
.account-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  margin: 34px 0 20px; padding: 26px clamp(22px, 4vw, 42px);
  border: 1px solid rgba(24, 32, 27, .06); border-radius: 20px; background: rgba(255, 253, 248, .82);
}
.account-identity { display: flex; align-items: center; gap: 18px; min-width: 0; }
.account-avatar {
  width: 64px; height: 64px; flex: 0 0 64px; display: grid; place-items: center;
  border-radius: 50%; background: var(--green-dark); color: #fff; font-size: 1.45rem; font-weight: 950;
  box-shadow: inset 0 0 0 5px rgba(255,255,255,.12);
}
.account-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.account-identity .kicker, .account-panel-head .kicker { margin: 0 0 5px; color: var(--green); font-size: .72rem; font-weight: 950; letter-spacing: .11em; }
.account-identity h1 { margin: 0; color: var(--green-dark); font-size: clamp(1.85rem, 3.2vw, 2.65rem); letter-spacing: -.04em; line-height: 1.05; }
.account-identity p:last-child { margin: 6px 0 0; color: var(--muted); }
.account-completion { width: min(290px, 33%); display: grid; gap: 7px; }
.account-completion > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .82rem; color: var(--muted); }
.account-completion strong { color: var(--green-dark); }
.account-completion progress { width: 100%; height: 8px; overflow: hidden; border: 0; border-radius: 999px; background: #e3e4dd; }
.account-completion progress::-webkit-progress-bar { background: #e3e4dd; }
.account-completion progress::-webkit-progress-value { border-radius: 999px; background: var(--green); }
.account-completion progress::-moz-progress-bar { border-radius: 999px; background: var(--green); }
.account-completion-toggle { justify-self: end; border: 0; background: transparent; padding: 2px 0; color: var(--green-dark); font: inherit; font-size: .78rem; font-weight: 900; cursor: pointer; }
.account-completion-list { display: grid !important; max-height: 230px; overflow: auto; margin-top: 4px; border-radius: 12px; background: #f4f3ed; padding: 7px; }
.account-completion-list[hidden] { display: none !important; }
.account-completion-list a { display: flex; align-items: center; gap: 8px; min-height: 34px; border-radius: 8px; padding: 6px 8px; color: var(--foreground); font-size: .72rem; font-weight: 780; }
.account-completion-list a:hover { background: #fff; }
.account-completion-list .is-complete { color: var(--muted); }
.account-completion-list .is-complete span { color: var(--green); }
.account-completion-list .is-missing span { color: #b36b27; }
.account-layout { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 18px; align-items: start; }
.account-sidebar { position: sticky; top: 94px; display: grid; gap: 12px; }
.account-nav { display: grid; padding: 11px; border: 1px solid rgba(24, 32, 27, .06); border-radius: 18px; background: rgba(255, 253, 248, .88); }
.account-nav p { margin: 12px 10px 4px; color: #858a86; font-size: .67rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.account-nav p:first-child { margin-top: 4px; }
.account-nav a { min-height: 43px; display: flex; align-items: center; gap: 9px; padding: 9px 10px; border-radius: 10px; font-size: .9rem; font-weight: 790; transition: background .16s ease, color .16s ease, transform .16s var(--ease-out); }
.account-nav a span { flex: 1; }
.account-nav a b { color: #929791; font-size: 1.2rem; font-weight: 500; }
.account-nav a em { min-width: 24px; padding: 2px 7px; border-radius: 999px; background: #eceee8; color: var(--muted); font-size: .7rem; font-style: normal; text-align: center; }
.account-nav a:hover { background: #f0f3ed; color: var(--green-dark); transform: translateX(2px); }
.account-nav a.active { background: var(--green-dark); color: #fff; }
.account-nav a.active b { color: rgba(255,255,255,.78); }
.account-nav a.active em { background: rgba(255,255,255,.16); color: #fff; }
.account-sidebar-chat {
  width: 100%; display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 10px;
  border: 0; border-radius: 15px; background: #dfeadf; padding: 11px 12px; color: var(--green-dark); text-align: left; cursor: pointer;
}
.account-sidebar-chat svg { width: 22px; height: 22px; justify-self: center; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-sidebar-chat span { min-width: 0; display: grid; }
.account-sidebar-chat strong { font-size: .84rem; }
.account-sidebar-chat small { color: var(--muted); font-size: .7rem; }
.account-content { position: relative; min-width: 0; min-height: 690px; overflow: hidden; border: 1px solid rgba(24, 32, 27, .06); border-radius: 20px; background: var(--paper); }
.account-shell:not(.account-ready) .account-panel { display: none; }
.account-panel { padding: clamp(24px, 4vw, 42px); animation: accountPanelIn .24s var(--ease-out) both; }
.account-panel[hidden] { display: none; }
.account-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.account-panel-head > div { max-width: 690px; }
.account-panel-head h2 { margin: 0; color: var(--green-dark); font-size: clamp(1.65rem, 3vw, 2.3rem); letter-spacing: -.035em; line-height: 1.1; }
.account-panel-head p:last-child { margin: 8px 0 0; color: var(--muted); }
.account-text-link { margin-top: 5px; color: var(--green-dark); font-size: .86rem; font-weight: 900; white-space: nowrap; }
.account-text-link span { display: inline-block; margin-left: 4px; transition: transform .16s var(--ease-out); }
.account-text-link:hover span { transform: translateX(3px); }
.account-primary-action { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--green-dark); padding: 10px 17px; color: #fff; font-size: .88rem; font-weight: 900; white-space: nowrap; }
.account-stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border-radius: 16px; background: linear-gradient(125deg, #103f2d, #1f6f4a); color: #fff; }
.account-stat-strip a, .account-stat-strip button { min-height: 108px; display: grid; align-content: center; gap: 4px; border: 0; border-right: 1px solid rgba(255,255,255,.14); background: transparent; padding: 18px 20px; color: inherit; text-align: left; cursor: pointer; }
.account-stat-strip > :last-child { border-right: 0; }
.account-stat-strip span { color: rgba(255,255,255,.72); font-size: .75rem; font-weight: 800; }
.account-stat-strip strong { font-size: 1.7rem; line-height: 1; }
.account-stat-strip a:hover, .account-stat-strip button:hover { background: rgba(255,255,255,.08); }
.account-overview-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(240px, .7fr); gap: 28px; margin-top: 34px; }
.account-primary-block { min-width: 0; }
.account-block-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 8px; }
.account-block-head span, .account-next-steps > span { color: var(--green); font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.account-block-head h3 { margin: 2px 0 0; font-size: 1.2rem; }
.account-block-head a { color: var(--green-dark); font-size: .78rem; font-weight: 900; }
.account-next-steps { align-self: start; padding: 22px; border-radius: 16px; background: #edf2e9; }
.account-next-steps h3 { margin: 7px 0 8px; color: var(--green-dark); font-size: 1.25rem; line-height: 1.18; }
.account-next-steps p { margin: 0 0 16px; color: var(--muted); font-size: .88rem; }
.account-next-steps a { display: flex; align-items: center; justify-content: space-between; min-height: 40px; border-top: 1px solid rgba(18,73,50,.12); color: var(--green-dark); font-size: .82rem; font-weight: 900; }
.account-next-steps a::after { content: "→"; }
.account-activity-list { display: grid; }
.account-activity-row { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto 30px; align-items: center; gap: 12px; min-height: 76px; border-top: 1px solid var(--line); }
.account-activity-row:first-child { border-top: 0; }
.account-activity-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #e6efe5; color: var(--green-dark); font-size: .85rem; font-weight: 950; }
.account-activity-mark.kind-bid { background: #fff1ce; color: #7d5809; }
.account-activity-mark.kind-booking { background: #e6edf9; color: #2d568e; }
.account-activity-row > div:nth-child(2) { min-width: 0; }
.account-activity-row > div > span { color: var(--muted); font-size: .7rem; font-weight: 800; }
.account-activity-row h3 { overflow: hidden; margin: 1px 0; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.account-activity-row small { color: #7f857f; font-size: .7rem; }
.account-activity-meta { display: grid; justify-items: end; gap: 1px; }
.account-activity-meta strong { color: var(--green-dark); font-size: .82rem; }
.account-activity-meta em { color: var(--muted); font-size: .68rem; font-style: normal; }
.account-activity-row > a { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--green-dark); font-weight: 900; }
.account-activity-row > a:hover { background: #eef3ed; }
.account-history-full .account-activity-row { min-height: 84px; }
.account-history-filter { display: flex; flex-wrap: wrap; gap: 7px; margin: -10px 0 22px; }
.account-history-filter button { min-height: 38px; border: 1px solid var(--line); border-radius: 999px; background: #fff; padding: 7px 13px; color: var(--muted); font-size: .78rem; font-weight: 850; cursor: pointer; }
.account-history-filter button.active { border-color: var(--green-dark); background: var(--green-dark); color: #fff; }
.account-list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 5px; color: var(--muted); font-size: .78rem; }
.account-list-toolbar a { color: var(--green-dark); font-weight: 900; }
.account-item-list { display: grid; }
.account-item-row { min-width: 0; display: grid; grid-template-columns: 88px minmax(0, 1fr) minmax(92px, auto) auto; align-items: center; gap: 16px; min-height: 112px; border-top: 1px solid var(--line); padding: 13px 0; }
.account-item-row img, .account-item-placeholder { width: 88px; height: 76px; border-radius: 12px; object-fit: cover; }
.account-item-placeholder { display: grid; place-items: center; background: #e4ece3; color: var(--green-dark); font-size: 1.3rem; font-weight: 950; }
.account-item-copy { min-width: 0; }
.account-item-copy > span, .account-item-copy small { display: block; color: var(--muted); font-size: .7rem; }
.account-item-copy h3 { overflow: hidden; margin: 4px 0; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.account-item-meta { display: grid; justify-items: end; gap: 5px; }
.account-item-meta strong { color: var(--green-dark); font-size: .94rem; }
.account-item-meta em { padding: 3px 8px; border-radius: 999px; background: #e5efe5; color: var(--green-dark); font-size: .66rem; font-style: normal; font-weight: 900; }
.account-item-row > a { color: var(--green-dark); font-size: .77rem; font-weight: 900; white-space: nowrap; }
.account-item-row > a span { margin-left: 3px; }
.account-form { max-width: 880px; }
.account-avatar-editor { display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: center; gap: 16px; margin-bottom: 28px; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.account-avatar-editor > button:first-child { position: relative; width: 78px; height: 78px; grid-row: 1 / span 2; border: 0; border-radius: 50%; background: var(--green-dark); padding: 0; color: #fff; cursor: pointer; }
.account-avatar-editor > button:first-child:hover { filter: brightness(.94); }
.account-avatar-editor > button:first-child:focus-visible { outline: 3px solid #f2b84b; outline-offset: 4px; }
.account-avatar-editor > button:first-child span { width: 100%; height: 100%; display: grid; place-items: center; overflow: hidden; border-radius: inherit; font-size: 1.45rem; font-weight: 950; }
.account-avatar-editor > button:first-child img { width: 100%; height: 100%; object-fit: cover; }
.account-avatar-editor > div { display: grid; gap: 4px; }
.account-avatar-editor p { margin: 0; color: var(--muted); font-size: .75rem; }
.account-avatar-editor > div button { width: max-content; min-height: 36px; margin-top: 4px; border: 1px solid var(--line); border-radius: 999px; background: #fff; padding: 7px 12px; color: var(--green-dark); font-weight: 900; cursor: pointer; }
.account-avatar-editor > p { grid-column: 2; min-height: 18px; }
.account-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 18px; align-items: start; }
.account-form label:not(.account-switch) { display: grid; gap: 7px; }
.account-form-grid > label { min-width: 0; grid-template-rows: auto minmax(48px, auto) minmax(1.05rem, auto); align-content: start; }
.account-form-grid > label .custom-select { align-self: start; }
.account-form label > span { color: var(--foreground); font-size: .78rem; font-weight: 900; }
.account-form input, .account-form select { width: 100%; min-height: 48px; border: 1px solid rgba(24,32,27,.12); border-radius: 12px; background: #fff; padding: 11px 13px; outline: none; transition: border-color .16s ease, box-shadow .16s ease; }
.account-form input:focus, .account-form select:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(31,111,74,.1); }
.account-form label small { color: var(--muted); font-size: .7rem; }
.account-form-wide { grid-column: 1 / -1; }
.account-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); }
.account-form-actions p { margin: 0; color: var(--muted); font-size: .78rem; }
.account-form-actions a { color: var(--green-dark); font-size: .78rem; font-weight: 900; }
.account-form-actions button { min-height: 45px; border: 0; border-radius: 999px; background: var(--green-dark); padding: 10px 18px; color: #fff; font-weight: 900; cursor: pointer; }
.account-form-actions button:hover { background: var(--green); }
.account-form-actions button:disabled { opacity: .62; cursor: wait; }
.account-form-status { min-height: 22px; margin: 10px 0 0; color: var(--muted); font-size: .78rem; text-align: right; }
.account-form-status.is-success { color: var(--green); }
.account-form-status.is-error { color: #a33f2d; }
.account-payout-status { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 15px; margin-bottom: 30px; border-radius: 15px; background: #f1f0e9; padding: 17px 19px; }
.account-payout-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; background: var(--green-dark); color: #fff; font-size: 1.2rem; font-weight: 950; }
.account-payout-status > div { min-width: 0; display: grid; gap: 1px; }
.account-payout-status > div > span, .account-payout-status small { color: var(--muted); font-size: .72rem; }
.account-payout-status strong { color: var(--green-dark); }
.account-payout-status > b { padding: 5px 9px; border-radius: 999px; background: #fff0cf; color: #7d5809; font-size: .7rem; }
.account-payout-status.is-ready > b { background: #dcecdc; color: var(--green-dark); }
.stripe-embedded-panel[hidden] { display: none; }
.stripe-embedded-panel { margin-top: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.stripe-embedded-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 22px 24px; background: #eef3ed; }
.stripe-embedded-head > div { display: grid; gap: 5px; }
.stripe-embedded-head span { color: var(--green); font-size: .75rem; font-weight: 900; }
.stripe-embedded-head h3 { margin: 0; color: var(--green-dark); font-size: 1.25rem; letter-spacing: -.02em; }
.stripe-embedded-head p { max-width: 65ch; margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.5; }
.stripe-embedded-head > button { min-height: 44px; border: 1px solid #cbd9ce; border-radius: 12px; background: var(--paper); padding: 9px 14px; color: var(--green-dark); font-weight: 850; cursor: pointer; }
.stripe-embedded-head > button:hover { border-color: var(--green); }
.stripe-embedded-stage { min-height: 260px; padding: 24px; background: var(--paper); }
.stripe-embedded-component { width: 100%; min-width: 0; color: var(--ink); }
.stripe-embedded-component > * { display: block; width: 100%; }
.stripe-embedded-loader { min-height: 210px; display: grid; place-items: center; align-content: center; gap: 8px; color: var(--green-dark); text-align: center; }
.stripe-embedded-loader[hidden] { display: none; }
.stripe-embedded-loader > span { width: 34px; height: 34px; border: 3px solid #dce8df; border-top-color: var(--green); border-radius: 50%; animation: stripe-loader-spin .8s linear infinite; }
.stripe-embedded-loader strong { font-size: 1rem; }
.stripe-embedded-loader small { color: var(--muted); }
.stripe-embedded-error[hidden] { display: none; }
.stripe-embedded-error { min-height: 210px; display: grid; place-items: center; align-content: center; gap: 8px; color: var(--ink); text-align: center; }
.stripe-embedded-error strong { color: #a33f2d; }
.stripe-embedded-error p { max-width: 52ch; margin: 0; color: var(--muted); }
.stripe-embedded-error button { min-height: 44px; margin-top: 5px; border: 0; border-radius: 12px; background: var(--green-dark); padding: 10px 16px; color: #fff; font-weight: 850; cursor: pointer; }
.stripe-embedded-foot { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 11px; border-top: 1px solid var(--line); padding: 15px 24px; background: #faf8f2; }
.stripe-embedded-foot svg { width: 22px; height: 22px; fill: none; stroke: var(--green); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.stripe-embedded-foot p { display: grid; gap: 1px; margin: 0; }
.stripe-embedded-foot strong { color: var(--green-dark); font-size: .78rem; }
.stripe-embedded-foot span { color: var(--muted); font-size: .72rem; }
@keyframes stripe-loader-spin { to { transform: rotate(360deg); } }
.account-release-payment { border: 0; border-radius: 999px; padding: 9px 12px; background: var(--green); color: #fff; font: inherit; font-size: .76rem; font-weight: 850; cursor: pointer; white-space: nowrap; }
.account-release-payment:hover { background: var(--green-dark); transform: translateY(-1px); }
.account-release-payment:disabled { cursor: wait; opacity: .65; transform: none; }
.account-release-slot { display: flex; justify-content: flex-end; }
.account-review-button { border: 1px solid rgba(18,73,50,.22); border-radius: 999px; background: #fff; padding: 8px 12px; color: var(--green-dark); font: inherit; font-size: .75rem; font-weight: 900; cursor: pointer; }
.account-reviewed { color: #8b650d; font-size: .76rem; font-weight: 900; white-space: nowrap; }
.account-rating-summary { min-width: 150px; display: grid; justify-items: end; }
.account-rating-summary strong { color: var(--green-dark); font-size: 2rem; line-height: 1; }
.account-rating-summary span { color: #d49216; letter-spacing: .08em; }
.account-rating-summary small { color: var(--muted); font-size: .7rem; }
.account-review-list { display: grid; }
.account-review-row { display: grid; grid-template-columns: 110px minmax(0,1fr) auto; gap: 18px; align-items: start; border-top: 1px solid var(--line); padding: 19px 0; }
.account-review-row:first-child { border-top: 0; }
.account-review-stars { color: #d49216; letter-spacing: .07em; }
.account-review-row h3 { margin: 0 0 5px; font-size: .95rem; }
.account-review-row p { margin: 0 0 7px; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.account-review-row a { color: var(--green-dark); font-size: .75rem; font-weight: 900; }
.account-review-row time { color: var(--muted); font-size: .7rem; white-space: nowrap; }
.account-review-photos, .public-review-photos { display: grid; grid-template-columns: repeat(4, minmax(0,92px)); gap: 7px; margin: 10px 0; }
.account-review-photos a, .public-review-photos a { min-width: 0; aspect-ratio: 1; overflow: hidden; border-radius: 10px; background: #edf0ea; }
.account-review-photos img, .public-review-photos img { width: 100%; height: 100%; display: block; object-fit: cover; }
.review-modal { position: fixed; inset: 0; z-index: 140; display: grid; place-items: center; padding: 18px; opacity: 0; transition: opacity .18s ease; }
.review-modal[hidden] { display: none; }
.review-modal.is-open { opacity: 1; }
.review-modal-backdrop { position: absolute; inset: 0; border: 0; background: rgba(11,28,20,.58); backdrop-filter: blur(5px); }
.review-modal-panel { position: relative; width: min(520px,100%); border-radius: 20px; background: var(--paper); box-shadow: var(--shadow-lg); padding: clamp(24px,5vw,38px); transform: translateY(12px) scale(.98); transition: transform .22s var(--ease-out); }
.review-modal.is-open .review-modal-panel { transform: none; }
.review-modal-close { position: absolute; top: 13px; right: 13px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f0efe8; color: var(--green-dark); font-size: 1.35rem; cursor: pointer; }
.review-modal-panel h2 { margin: 5px 34px 8px 0; color: var(--green-dark); font-size: 1.8rem; }
.review-modal-panel > p:not(.kicker) { margin: 0 0 22px; color: var(--muted); }
.review-modal-panel form { display: grid; gap: 18px; }
.review-stars { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; margin: 0; border: 0; padding: 0; }
.review-stars legend { margin-bottom: 8px; color: var(--foreground); font-size: .8rem; font-weight: 900; }
.review-stars input { position: absolute; opacity: 0; }
.review-stars label { color: #d8d7cf; font-size: 2.2rem; line-height: 1; cursor: pointer; }
.review-stars label:hover, .review-stars label:hover ~ label, .review-stars input:checked ~ label { color: #d49216; }
.review-stars input:focus-visible + label { outline: 3px solid #f2b84b; outline-offset: 2px; }
.review-modal-panel form > label { display: grid; gap: 7px; font-size: .8rem; font-weight: 900; }
.review-modal-panel textarea { width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 12px; font: inherit; }
.review-photo-field { display: grid; gap: 8px; }
.review-photo-field > span { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: .8rem; font-weight: 900; }
.review-photo-field small { color: var(--muted); font-size: .68rem; font-weight: 700; }
.review-photo-picker { min-height: 48px; display: flex; align-items: center; justify-content: center; border: 1px dashed rgba(18,73,50,.3); border-radius: 13px; background: #f6f8f3; color: var(--green-dark); font-size: .8rem; font-weight: 900; cursor: pointer; }
.review-photo-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.review-photo-picker:focus-within { outline: 3px solid #f2b84b; outline-offset: 2px; }
.review-photo-preview { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 7px; }
.review-photo-preview:empty { display: none; }
.review-photo-preview img { width: 100%; aspect-ratio: 1; display: block; border-radius: 10px; object-fit: cover; }
.review-modal-actions { display: flex; justify-content: flex-end; gap: 9px; }
.review-modal-actions button { min-height: 44px; border: 1px solid var(--line); border-radius: 999px; background: #fff; padding: 9px 16px; color: var(--green-dark); font-weight: 900; cursor: pointer; }
.review-modal-actions button[type="submit"] { border-color: var(--green-dark); background: var(--green-dark); color: #fff; }
.purchase-notice { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 18px; margin: 28px 0 16px; border-radius: 18px; background: #e8f1e7; padding: 20px 22px; color: var(--green-dark); }
.purchase-notice > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--green-dark); color: #fff; font-size: 1.25rem; font-weight: 950; }
.purchase-notice h2 { margin: 2px 0 4px; font-size: 1.3rem; }
.purchase-notice p { margin: 0; color: var(--muted); }
.purchase-notice dl { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 14px 0 0; }
.purchase-notice dl div { display: grid; gap: 1px; }
.purchase-notice dt { color: var(--muted); font-size: .67rem; font-weight: 800; }
.purchase-notice dd { margin: 0; font-size: .82rem; font-weight: 900; }
.purchase-notice-actions { display: grid; justify-items: stretch; gap: 6px; }
.purchase-notice-actions a, .purchase-notice > a { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 8px 14px; font-size: .78rem; font-weight: 900; }
.purchase-notice-actions a:not(.primary), .purchase-notice > a { color: var(--green-dark); }
.purchase-notice.is-cancelled { background: #f5eee7; }
.purchase-notice.is-cancelled > span { background: #ad5b43; }
.purchase-spinner { border: 3px solid rgba(255,255,255,.35); border-top-color: #fff; animation: accountSpin .75s linear infinite; }
.seller-rating { color: #a26d00; }
.account-security-note { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: start; gap: 12px; margin-bottom: 24px; border: 1px solid var(--line); background: #edf3eb; padding: 14px 16px; }
.account-security-note svg { width: 24px; height: 24px; margin: 2px auto 0; fill: none; stroke: var(--green-dark); stroke-width: 1.8; }
.account-security-note p { display: grid; gap: 3px; margin: 0; }
.account-security-note strong { font-size: .83rem; }
.account-security-note span { color: var(--muted); font-size: .75rem; }
.account-preferences { display: grid; gap: 28px; }
.account-preferences fieldset { display: grid; margin: 0; border: 0; padding: 0; }
.account-preferences legend { width: 100%; margin-bottom: 5px; padding: 0 0 9px; border-bottom: 1px solid var(--line); font-size: 1rem; font-weight: 950; }
.account-switch { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 65px; border-bottom: 1px solid var(--line); cursor: pointer; }
.account-switch > span { display: grid; gap: 2px; }
.account-switch strong { font-size: .84rem; }
.account-switch small { color: var(--muted); font-size: .73rem; }
.account-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.account-switch i { position: relative; width: 43px; height: 24px; flex: 0 0 43px; border-radius: 999px; background: #d7d9d2; transition: background .18s ease; }
.account-switch i::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.18); transition: transform .18s var(--ease-out); }
.account-switch input:checked + i { background: var(--green); }
.account-switch input:checked + i::after { transform: translateX(19px); }
.account-switch input:focus-visible + i { outline: 3px solid #f2b84b; outline-offset: 3px; }
.account-language { max-width: 360px; margin-top: 18px; }

/* Public trust profile */
.public-profile-page { margin-top: 24px; display: grid; gap: 18px; }
.public-profile-loading { min-height: 520px; display: grid; place-content: center; justify-items: center; gap: 10px; color: var(--muted); }
.public-profile-loading span { width: 32px; height: 32px; border: 3px solid #dfe5dd; border-top-color: var(--green); border-radius: 50%; animation: accountSpin .75s linear infinite; }
.public-profile-hero { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 22px; border-radius: 16px; background: var(--paper); padding: clamp(22px,4vw,40px); }
.public-profile-avatar { width: 92px; height: 92px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--green-dark); color: #fff; font-size: 1.6rem; font-weight: 950; }
.public-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.public-profile-identity { min-width: 0; }
.public-profile-identity > p { margin: 0 0 5px; color: var(--green); font-size: .72rem; font-weight: 900; }
.public-profile-identity h1 { margin: 0; color: var(--green-dark); font-size: clamp(2rem,5vw,3.5rem); letter-spacing: -.035em; }
.public-profile-meta { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-top: 8px; color: var(--muted); font-size: .82rem; }
.public-profile-rating { min-width: 150px; display: grid; justify-items: end; gap: 3px; }
.public-profile-rating strong { color: var(--green-dark); font-size: 2.1rem; }
.public-profile-rating strong span { color: #d49216; }
.public-profile-rating > span { color: var(--muted); font-size: .75rem; }
.public-profile-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line); padding-inline: 8px; }
.public-profile-tabs button { min-height: 48px; display: flex; align-items: center; gap: 8px; border: 0; border-bottom: 3px solid transparent; background: transparent; padding: 9px 14px; color: var(--muted); font-weight: 900; cursor: pointer; }
.public-profile-tabs button[aria-selected="true"] { border-bottom-color: var(--green-dark); color: var(--green-dark); }
.public-profile-tabs b { min-width: 24px; border-radius: 999px; background: #e8ede5; padding: 3px 7px; font-size: .68rem; }
.public-profile-panel[hidden] { display: none; }
.public-profile-panel { min-height: 420px; border-radius: 16px; background: var(--paper); padding: clamp(18px,3vw,30px); }
.public-listing-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.public-listing-card { min-width: 0; display: grid; grid-template-rows: 190px auto; overflow: hidden; border-radius: 14px; background: #f5f3ed; color: inherit; }
.public-listing-photo { background: #e8ebe4 center / cover no-repeat; }
.public-listing-copy { min-width: 0; display: grid; gap: 5px; padding: 14px; }
.public-listing-copy small { overflow: hidden; color: var(--muted); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.public-listing-copy strong { overflow: hidden; font-size: .98rem; text-overflow: ellipsis; white-space: nowrap; }
.public-listing-copy b { color: var(--green-dark); }
.public-review-list { display: grid; }
.public-review-card { min-width: 0; display: grid; gap: 10px; border-top: 1px solid var(--line); padding: 22px 0; }
.public-review-card:first-child { border-top: 0; padding-top: 0; }
.public-review-card header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.public-review-person { min-width: 0; display: flex; align-items: center; gap: 10px; color: var(--green-dark); }
a.public-review-person:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.public-review-avatar { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: #dfe9df; font-size: .75rem; font-weight: 950; }
.public-review-avatar img { width: 100%; height: 100%; object-fit: cover; }
.public-review-card time { color: var(--muted); font-size: .72rem; white-space: nowrap; }
.public-review-rating { display: flex; align-items: center; gap: 8px; }
.public-rating-stars { color: #d49216; letter-spacing: .06em; }
.public-review-rating b { color: var(--green-dark); font-size: .78rem; }
.public-review-card > p { max-width: 70ch; margin: 0; overflow-wrap: anywhere; color: #3e4841; line-height: 1.6; }
.public-review-listing { width: max-content; max-width: 100%; overflow: hidden; color: var(--green-dark); font-size: .78rem; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.public-profile-empty { min-height: 300px; display: grid; place-content: center; justify-items: center; gap: 5px; color: var(--muted); text-align: center; }
.public-profile-empty strong { color: var(--foreground); }
.public-profile-empty a { margin-top: 8px; color: var(--green-dark); font-weight: 900; }
.account-session-row { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px 0 26px; border-bottom: 1px solid var(--line); }
.account-session-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: #e8efe6; color: var(--green-dark); }
.account-session-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.account-session-row > div { display: grid; }
.account-session-row > div span { color: var(--muted); font-size: .75rem; }
.account-session-row > div b { color: inherit; }
.account-session-row > em { color: var(--green); font-size: .72rem; font-style: normal; font-weight: 900; }
.account-password-form { margin-top: 30px; }
.account-password-form h3 { margin: 0 0 18px; font-size: 1.15rem; }
.account-loading, .account-auth-required { min-height: 690px; display: grid; place-content: center; justify-items: center; gap: 6px; padding: 30px; text-align: center; }
.account-loading[hidden], .account-auth-required[hidden] { display: none; }
.account-loading p, .account-auth-required p { max-width: 460px; margin: 0; color: var(--muted); }
.account-loading-mark { width: 32px; height: 32px; margin-bottom: 8px; border: 3px solid #dfe5dd; border-top-color: var(--green); border-radius: 50%; animation: accountSpin .75s linear infinite; }
.account-auth-required > span { color: var(--green); font-size: 2rem; }
.account-auth-required h2 { margin: 4px 0 0; color: var(--green-dark); font-size: 1.8rem; }
.account-auth-required a, .account-empty a { min-height: 43px; display: inline-flex; align-items: center; justify-content: center; margin-top: 12px; border-radius: 999px; background: var(--green-dark); padding: 9px 17px; color: #fff; font-weight: 900; }
.account-guest .account-hero, .account-guest .account-sidebar { display: none; }
.account-guest .account-layout { grid-template-columns: 1fr; margin-top: 32px; }
.account-empty { min-height: 270px; display: grid; place-content: center; justify-items: center; padding: 28px; color: var(--muted); text-align: center; }
.account-empty > span { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 50%; background: #e7eee5; color: var(--green-dark); font-weight: 950; }
.account-empty strong { color: var(--foreground); }
.account-empty p { max-width: 390px; margin: 5px 0 0; font-size: .84rem; }

@keyframes profileMenuIn { from { opacity: 0; transform: translateY(-7px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes accountPanelIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes accountSpin { to { transform: rotate(360deg); } }

@keyframes chatBudPop {
  0% { opacity: 0; transform: scale(.15); }
  34% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0; transform: scale(3.4); }
}

@keyframes chatWindowBloom {
  0% { opacity: 0; transform: translateY(18px) scale(.16); clip-path: inset(84% 0 0 76% round 28px); }
  28% { opacity: 1; }
  100% { opacity: 1; transform: none; clip-path: inset(0 round 16px); }
}

@keyframes chatContentReveal {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: none; }
}

@keyframes chatWindowFold {
  from { opacity: 1; transform: none; }
  to { opacity: 0; transform: translateY(14px) scale(.72); }
}

@keyframes cardIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

@keyframes pageLensIn {
  from {
    opacity: .72;
    transform: translateY(9px) scale(.997);
    filter: blur(4px) saturate(.82);
    clip-path: inset(0 0 3% 0 round 18px);
  }
  to {
    opacity: 1;
    transform: none;
    filter: none;
    clip-path: inset(0 round 0);
  }
}

@keyframes menuUnfold {
  from { opacity: .35; transform: translateY(-7px) scale(.985); filter: blur(3px); }
  to { opacity: 1; transform: none; filter: none; }
}

@keyframes glassPortalCommit {
  0% { transform: translateY(-4px) scale(1.06); }
  55% { transform: translateY(-7px) scale(1.2); filter: brightness(1.12) saturate(1.35); box-shadow: 0 30px 70px rgba(91,161,208,.42); }
  100% { transform: scale(.9); filter: brightness(1.18); }
}

@keyframes plusGlyphCommit {
  from { transform: rotate(90deg) scale(1.08); }
  to { transform: rotate(270deg) scale(.92); }
}

@keyframes glassUploadArrive {
  from { transform: translateY(18px) scale(.84); filter: blur(5px); opacity: .25; }
  to { transform: none; filter: blur(0); opacity: 1; }
}

@keyframes chatLauncherArrive {
  from { transform: translateY(14px) scale(.88); opacity: .2; }
  to { transform: none; opacity: 1; }
}

@media (max-width: 980px) {
  .layout, .search-layout, .auth-page, .wallet-dashboard, .studio, .messages-layout, .modal-card, .detail-layout, .legal-page.two-col {
    grid-template-columns: 1fr;
  }
  .wallet-overview, .wallet-content-grid { grid-template-columns: 1fr; }
  .wallet-support-panel { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .wallet-support-row + .wallet-support-row { border-top: 0; border-left: 1px solid var(--line); }
  .panel, .sell-preview { position: static; }
  .category-strip {
    grid-template-columns: repeat(8, minmax(118px, 1fr));
    overflow-x: auto;
    overflow-y: hidden;
    margin-inline: -4px;
    padding: 10px 4px 18px;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .category-strip::-webkit-scrollbar { display: none; }
  .nav-search { display: none; }
  .home-mobile-search { display: flex; }
  .home-mobile-search + .category-heading { margin-top: 20px; }
  .tier-track { grid-template-columns: 1fr; }
  .page-head, .plans-head { flex-direction: column; align-items: start; }
  .plan-selector { grid-template-columns: 1fr; }
  .plan-option { min-height: 0; }
  .search-page-head { grid-template-columns: 1fr; margin-top: 34px; }
  .search-page-form { max-width: 680px; }
  .filter-stack, .dynamic-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .extras { grid-template-columns: 1fr; }
  .extra-option { min-height: 0; }
  .visibility-tiers { grid-template-columns: 1fr; }
  .visibility-tier { min-height: 92px; }
  .detail-hero, .detail-private-content { grid-template-columns: 1fr; }
  .detail-gallery { border-right: 0; border-bottom: 1px solid var(--line); }
  .detail-summary { align-content: start; }
  .detail-information { border-right: 0; border-bottom: 1px solid var(--line); }
  .detail-contact-panel { width: auto; }
  .public-listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .shell { width: min(100% - 18px, 1280px); }
  .field-grid { grid-template-columns: 1fr; }
  .wallet-page-head { align-items: start; flex-direction: column; gap: 14px; }
  .wallet-status-badge { min-height: 34px; }
  .wallet-balance-panel { min-height: 390px; padding: 24px 20px; }
  .wallet-balance-meta { align-items: start; flex-direction: column; gap: 9px; }
  .wallet-balance-panel > strong { font-size: clamp(3rem, 16vw, 4.4rem); }
  .wallet-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .wallet-actions button, .wallet-actions a { width: 100%; padding-inline: 12px; }
  .wallet-support-panel { grid-template-columns: 1fr; }
  .wallet-support-row + .wallet-support-row { border-top: 1px solid var(--line); border-left: 0; }
  .movement-panel, .wallet-tier-panel { padding: 20px 16px; }
  .wallet-topup-form { grid-template-columns: 1fr; }
  .glass-upload { right: 14px; bottom: 14px; width: 58px; height: 58px; }
  .chat-launcher { right: 14px; bottom: 14px; width: 56px; height: 56px; }
  body.has-upload-launcher .chat-launcher { right: 84px; }
  .global-chat-window { left: 10px; right: 10px; bottom: 10px; width: auto; height: min(690px, calc(100dvh - 78px)); }
  .global-chat-head { padding: 10px; }
  .global-chat-body { grid-template-rows: minmax(94px, 27%) minmax(0, 1fr); }
  .global-chat-threads { gap: 8px; padding: 8px; scrollbar-width: none; }
  .global-chat-threads::-webkit-scrollbar { display: none; }
  .global-chat-thread { width: min(72vw, 270px); flex: 0 0 auto; }
  .chat-conversation-head { padding: 14px 14px 8px; }
  .chat-message-stream { padding: 8px 14px 14px; }
  .chat-message-bubble { max-width: 86%; }
  .chat-compose { grid-template-columns: minmax(0, 1fr) 76px; padding: 10px 12px 12px; }
  .chat-send-button { min-width: 0; padding-inline: 10px; }
  .global-chat-overlay.is-minimized .global-chat-window { left: auto; right: 10px; bottom: 10px; width: min(340px, calc(100% - 20px)); height: 60px; }
  body.has-upload-launcher .global-chat-overlay.is-minimized .global-chat-window { right: 82px; width: min(340px, calc(100% - 92px)); }
  .market-nav { top: 8px; gap: 8px; padding: 9px 10px; background: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .brand { font-size: 1.02rem; }
  .brand small { font-size: .68rem; }
  .nav-actions { gap: 6px; }
  .locale-trigger { width: 44px; }
  .locale-trigger span { display: none; }
  .locale-popover { position: fixed; top: 70px; left: 9px; right: 9px; width: auto; max-height: calc(100vh - 86px); }
  .nav-icon, .profile-trigger { width: 44px; height: 44px; flex-basis: 44px; }
  .profile-popover { position: fixed; top: 70px; left: 9px; right: 9px; width: auto; }
  .category-heading { align-items: start; flex-direction: column; gap: 4px; margin-top: 26px; }
  .category-strip {
    grid-template-columns: repeat(8, 112px);
    gap: 12px;
    padding: 10px 4px 16px;
    margin-inline: -4px;
    scroll-snap-type: x mandatory;
  }
  .category-strip::-webkit-scrollbar { display: none; }
  .category-strip { scrollbar-width: none; }
  .category-strip button { min-width: 112px; padding: 15px 10px; scroll-snap-align: start; }
  .category-strip strong { font-size: .87rem; }
  .filter-stack, .dynamic-filters { grid-template-columns: 1fr; }
  .price-filter-row { grid-template-columns: 1fr; }
  .map-board { min-height: 280px; }
  .search-page-head { margin: 28px 0 22px; }
  .search-page-head h1 { font-size: clamp(2.2rem, 12vw, 3.2rem); }
  .search-page-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .search-results-head { align-items: stretch; flex-direction: column; }
  .search-results-head .custom-select { width: 100%; }
  .gift-nudge {
    right: 9px;
    bottom: 76px;
    width: calc(100vw - 18px);
    grid-template-columns: minmax(0, 1fr) 104px;
  }
  .gift-nudge-mascot { width: 116px; height: auto; margin-right: -6px; margin-left: -10px; }
  .gift-nudge-bubble { margin-bottom: 22px; padding: 16px 46px 16px 18px; }
  .gift-nudge-bubble::before { right: -12px; bottom: 44px; width: 22px; height: 22px; }
  .gift-nudge-bubble strong { font-size: 1.05rem; }
  .gift-nudge-bubble p { font-size: .84rem; margin-bottom: 12px; }
  .gift-nudge-action { width: 100%; }
  .publish-section-head { display: grid; gap: 14px; }
  .map-locate-button { width: 100%; justify-content: center; }
  .location-privacy-controls { grid-template-columns: 1fr; }
  .publish-map { height: 290px; }
  .publish-checkout { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .visibility-intro, .checkout-action-row { display: grid; grid-template-columns: 1fr; justify-content: stretch; gap: 14px; }
  .publish-checkout .publish-submit { width: 100%; }
  .price-box { min-width: 0; }
  .seller-account-card { grid-template-columns: auto minmax(0, 1fr); }
  .seller-account-action { grid-column: 1 / -1; width: 100%; text-align: center; }
  .photo-upload-trigger { grid-template-columns: auto minmax(0, 1fr); }
  .photo-upload-count { grid-column: 2; justify-self: start; }
  .photo-manager-modal { padding: 8px; }
  .photo-manager-panel { max-height: calc(100vh - 16px); }
  .photo-manager-head, .photo-manager-body, .photo-manager-footer { padding-left: 16px; padding-right: 16px; }
  .photo-manager-item { grid-template-columns: 58px minmax(0, 1fr); }
  .photo-manager-item img { width: 58px; height: 54px; }
  .photo-manager-controls { grid-column: 1 / -1; justify-content: flex-end; }
  .detail-layout { --detail-column-pad: 22px 18px; }
  .detail-gallery-main { min-height: 300px; }
  .detail-summary { padding: var(--detail-column-pad); }
  .detail-private-content { padding: 0; }
  .detail-summary h1 { font-size: clamp(2rem, 10vw, 3rem); }
  .detail-specs { grid-template-columns: 1fr; }
  .detail-private-shell { min-height: 520px; }
  .detail-access-gate { padding: 14px; }
  .detail-access-gate-card { grid-template-columns: 1fr; text-align: center; }
  .detail-lock-icon { justify-self: center; }
  .cookie-banner { align-items: stretch; }
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .plan-confirmation { align-items: stretch; flex-direction: column; }
  .plan-confirmation .primary { width: 100%; }
  .purchase-notice { grid-template-columns: 42px minmax(0,1fr); padding: 17px 15px; }
  .purchase-notice > span { width: 40px; height: 40px; }
  .purchase-notice-actions, .purchase-notice > a { grid-column: 1 / -1; }
  .purchase-notice dl { display: grid; grid-template-columns: 1fr 1fr; }
  .detail-photo-viewer { padding: 0; }
  .detail-photo-viewer-dialog { width: 100%; height: 100dvh; border-radius: 0; }
  .detail-photo-viewer-viewport { padding: 10px; }
  .detail-photo-viewer-toolbar { padding-inline: 64px; padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .public-profile-hero { grid-template-columns: auto minmax(0,1fr); gap: 14px; padding: 20px 16px; }
  .public-profile-avatar { width: 68px; height: 68px; font-size: 1.2rem; }
  .public-profile-identity h1 { font-size: 2rem; }
  .public-profile-rating { grid-column: 1 / -1; min-width: 0; justify-items: start; border-top: 1px solid var(--line); padding-top: 14px; }
  .public-profile-rating strong { font-size: 1.5rem; }
  .public-profile-tabs { padding-inline: 0; }
  .public-profile-tabs button { flex: 1; justify-content: center; padding-inline: 8px; }
  .public-profile-panel { padding: 16px; }
  .public-listing-grid { grid-template-columns: 1fr; gap: 12px; }
  .public-listing-card { grid-template-columns: 112px minmax(0,1fr); grid-template-rows: 112px; }
  .public-review-card header { align-items: flex-start; }
  .account-review-photos, .public-review-photos { grid-template-columns: repeat(4, minmax(0,1fr)); }
}

@media (max-width: 980px) {
  .account-layout { grid-template-columns: 1fr; }
  .account-sidebar { position: static; display: grid; grid-template-columns: minmax(0, 1fr) 200px; align-items: stretch; }
  .account-nav { display: flex; gap: 4px; overflow-x: auto; padding: 8px; scrollbar-width: none; }
  .account-nav::-webkit-scrollbar { display: none; }
  .account-nav p { display: none; }
  .account-nav a { flex: 0 0 auto; min-height: 42px; white-space: nowrap; }
  .account-nav a b { display: none; }
  .account-sidebar-chat { min-height: 58px; }
  .account-content { min-height: 640px; }
  .account-overview-grid { grid-template-columns: minmax(0, 1.4fr) minmax(220px, .75fr); gap: 20px; }
}

@media (max-width: 760px) {
  .account-hero { align-items: stretch; flex-direction: column; margin-top: 22px; }
  .account-completion { width: 100%; }
  .account-sidebar { grid-template-columns: 1fr; }
  .account-sidebar-chat { display: none; }
  .account-panel { padding: 24px 20px 30px; }
  .account-panel-head { align-items: stretch; flex-direction: column; gap: 14px; margin-bottom: 22px; }
  .account-panel-head .account-primary-action { align-self: start; }
  .account-text-link { align-self: start; }
  .account-stat-strip { grid-template-columns: repeat(2, 1fr); }
  .account-stat-strip a, .account-stat-strip button { min-height: 92px; border-bottom: 1px solid rgba(255,255,255,.14); }
  .account-stat-strip > :nth-child(2) { border-right: 0; }
  .account-stat-strip > :nth-child(n+3) { border-bottom: 0; }
  .account-overview-grid { grid-template-columns: 1fr; }
  .account-form-grid { grid-template-columns: 1fr; }
  .account-form-wide { grid-column: auto; }
  .account-item-row { grid-template-columns: 76px minmax(0, 1fr) auto; gap: 12px; }
  .account-item-row img, .account-item-placeholder { width: 76px; height: 70px; }
  .account-item-row > a { grid-column: 2 / -1; justify-self: start; }
  .account-rating-summary { justify-items: start; }
  .account-review-row { grid-template-columns: 1fr; gap: 6px; }
  .account-review-row time { grid-row: 1; justify-self: end; }
}

@media (max-width: 520px) {
  .movement-list article { grid-template-columns: 42px minmax(0, 1fr); gap: 11px; }
  .movement-amount { grid-column: 2; justify-self: start; margin-top: -8px; }
  .account-hero { padding: 22px 18px; }
  .account-avatar { width: 52px; height: 52px; flex-basis: 52px; }
  .account-identity { align-items: flex-start; gap: 13px; }
  .account-identity h1 { font-size: 1.75rem; }
  .account-identity p:last-child { font-size: .82rem; }
  .account-content { min-height: 600px; border-radius: 16px; }
  .account-panel { padding-inline: 16px; }
  .account-stat-strip a, .account-stat-strip button { padding: 15px; }
  .account-activity-row { grid-template-columns: 34px minmax(0, 1fr) 26px; gap: 9px; padding: 10px 0; }
  .account-activity-meta { grid-column: 2; grid-row: 2; justify-items: start; margin-top: -15px; }
  .account-release-slot { grid-column: 2; grid-row: 3; justify-content: flex-start; margin-top: 3px; }
  .account-activity-row > a { grid-column: 3; grid-row: 1 / span 3; }
  .account-item-row { grid-template-columns: 64px minmax(0, 1fr); align-items: start; }
  .account-item-row img, .account-item-placeholder { width: 64px; height: 60px; }
  .account-item-meta { grid-column: 2; justify-items: start; grid-auto-flow: column; justify-content: start; align-items: center; }
  .account-item-row > a { grid-column: 2; }
  .account-list-toolbar { align-items: flex-start; flex-direction: column; gap: 4px; }
  .account-form-actions { align-items: stretch; flex-direction: column; }
  .account-form-actions button { width: 100%; }
  .account-form-status { text-align: left; }
  .account-payout-status { grid-template-columns: 44px minmax(0, 1fr); padding: 14px; }
  .account-payout-icon { width: 44px; height: 44px; border-radius: 12px; }
  .account-payout-status > b { grid-column: 2; justify-self: start; }
  .stripe-embedded-head { align-items: stretch; flex-direction: column; gap: 14px; padding: 18px; }
  .stripe-embedded-head > button { align-self: flex-start; }
  .stripe-embedded-stage { padding: 16px; }
  .stripe-embedded-foot { padding: 14px 18px; }
  .account-security-note { grid-template-columns: 1fr; }
  .account-security-note svg { margin-inline: 0; }
  .account-session-row { grid-template-columns: 42px minmax(0, 1fr); }
  .account-session-row > em { grid-column: 2; }
  .account-avatar-editor { grid-template-columns: 64px minmax(0,1fr); }
  .account-avatar-editor > button:first-child { width: 64px; height: 64px; }
  .review-modal { padding: 8px; align-items: end; }
  .review-modal-panel { border-radius: 20px 20px 12px 12px; padding: 24px 18px; }
  .review-modal-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body::after { display: none; }
  .shell > :not(.glass-upload), .product-card, .custom-select-menu { animation: none !important; }
  html.is-page-leaving .shell > :not(.glass-upload) { opacity: 1; transform: none; filter: none; }
  .glass-upload { animation: none; }
  .glass-upload, .glass-upload::after, .glass-upload span, .chat-launcher, .global-chat-overlay, .global-chat-window, .global-chat-thread, .gift-nudge, .custom-select-trigger, .custom-select-trigger svg, .category-strip button, .category-arrow, .search-submit, .nav-icon, .profile-trigger, .primary, .ghost, .fav-btn, .map-price-icon span, .photo-manager-modal, .photo-manager-panel, .photo-upload-trigger, .visibility-tier { transition: none; }
  .chat-morph-bubble { display: none; }
  .global-chat-overlay.is-opening .global-chat-window,
  .global-chat-overlay.is-closing .global-chat-window,
  .global-chat-overlay.is-opening .global-chat-head,
  .global-chat-overlay.is-opening .global-chat-body { animation: none !important; }
  .global-chat-overlay.is-opening .global-chat-window,
  .global-chat-overlay.is-open .global-chat-window { opacity: 1; transform: none; border-radius: 16px; }
  .global-chat-overlay.is-opening .global-chat-head,
  .global-chat-overlay.is-opening .global-chat-body { opacity: 1; transform: none; }
  .profile-popover, .account-panel, .account-loading-mark, .auth-flow-card, .purchase-spinner { animation: none !important; }
  .account-nav a, .account-switch i, .account-switch i::after, .account-text-link span { transition: none; }
  .review-modal, .review-modal-panel, .locale-trigger { transition: none; }
  .locale-popover { animation: none !important; }
  .stripe-embedded-loader > span { animation: none; }
}
