/* Member pages use a shared phone shell, with a distinct header for each task. */
.member-page {
  --leaf: #377d23; --ink: #202620; --muted: #667063;
  padding: 0; color: var(--ink); background: var(--home-surface);
  font-family: Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.member-page button { color: inherit; }
.member-page :is(button, summary, input, select):focus-visible { outline: 3px solid #1276b5; outline-offset: -3px; }
.member-icon { width: 21px; height: 21px; flex: none; }
.phone-content { isolation: isolate; }
.phone { --publish-rise: 20px; }
.phone-nav { z-index: 2; overflow: visible; }
/* The same navigation is used on member tabs and on their detail screens. */
.phone-nav:not([hidden]) {
  display: grid; grid-template-columns: repeat(5,minmax(0,1fr));
  align-content: start; padding: 0 3px env(safe-area-inset-bottom,0px); background: white;
}
.phone-nav .navitem {
  min-width: 0; min-height: 60px; padding: 4px 1px;
  color: #5f625f; font-size: 11px;
}
.phone-nav .navitem span { display: none; }
.phone:has(.phone-nav:not([hidden])) .phone-content::after {
  content: ""; display: block; height: calc(var(--publish-rise) + 4px);
}
.toast { pointer-events: none; }
.phone-nav > .toast {
  position: absolute; bottom: calc(100% + var(--publish-rise) + 12px);
  width: max-content; max-width: calc(100% - 24px); text-align: center;
}
.community-screen .navitem::before { content: none; }
.phone-nav .navitem .member-icon { display: block; width: 22px; height: 22px; margin: 0 auto 3px; }
.phone-nav .navitem.on { color: #328511; }
.phone-nav .navitem.on .member-icon { stroke-width: 2.5; }
/* The publisher rises from the bar; its label shares the other tabs' baseline. */
.phone-nav .navitem.plus {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  position: relative; z-index: 1; overflow: visible; padding: 25px 1px 0; font-weight: 650;
}
.phone-nav .navitem.plus span { display: none; }
.phone-nav .navitem.plus .member-icon {
  position: absolute; top: calc(0px - var(--publish-rise)); left: 50%;
  display: block; width: 50px; height: 50px; padding: 10px; margin: 0;
  transform: translateX(-50%); border-radius: 50%;
  color: white; background: linear-gradient(155deg, #68b932, #358719);
  box-shadow: 0 0 0 4px white, 0 2px 9px 3px #2647212b;
}
.phone-nav .navitem.plus:active .member-icon { background: #358219; }
.member-hero {
  width: 100%; padding: 18px; color: var(--ink);
  background-position: center; background-size: cover; background-repeat: no-repeat;
}
.member-hero h2 { margin: 0; font-size: 26px; line-height: 1.25; letter-spacing: -.035em; }
.discover-hero {
  padding: 18px 12px 24px;
  background-color: #e6f6fa; background-image: url("discover-map.webp");
}
.discover-hero h2, .hero-region { margin-left: 5px; }
.hero-region { margin-block: 4px 12px; font-size: 14px; font-weight: 600; }
.discover-search-row { display: flex; gap: 7px; align-items: stretch; }
#discover .hero-search, .member-query { display: flex; align-items: center; gap: 6px; min-height: 44px; }
#discover .hero-search {
  flex: none; padding: 0 15px; border-radius: 24px;
  color: white; background: #428c20; font-size: 15px; font-weight: 700;
}
.member-query {
  flex: 1; min-width: 0; padding: 0 12px; border: 1px solid #dce9e9; border-radius: 24px;
  background: white; color: #36811d; box-shadow: 0 2px 7px #37595609;
}
.member-query .member-icon { width: 16px; height: 16px; }
.member-query input { min-width: 0; width: 100%; height: 44px; background: transparent; border: none; color: #29372b; font: inherit; font-size: 13px; }
.member-query input::placeholder { color: #5d685e; }
.member-body { margin-top: -15px; padding: 0 9px 14px; position: relative; }
.member-panel, .market-promo { border-radius: 15px; box-shadow: 0 3px 12px #44351a10; }
.member-panel { margin-bottom: 10px; padding: 10px 12px 12px; background: white; }
.member-panel h3 { margin: 0; font-size: 18px; line-height: 1.45; }
.member-page .discover-heading { margin: 0 0 4px; min-height: 36px; }
.member-page .discover-heading button { min-height: 44px; color: var(--leaf); font-weight: 650; font-size: 13px; background: transparent; }
.market-promo {
  display: flex; align-items: flex-start; gap: 7px; width: 100%; margin-bottom: 10px;
  padding: 10px 12px; aspect-ratio: 3.95; text-align: left;
  background: #efebe0 url("calligraphy-banner.webp") center / cover no-repeat; border: 2px solid white;
}
.market-promo span { padding: 3px 8px; border-radius: 20px; background: #438a22; color: white; font-size: 11px; font-weight: 650; }
.market-promo strong { padding-left: 7px; margin-top: 1px; border-left: 1px solid #96a27d; color: #23271f; font-size: 14px; }
#discover .recommend-consent { margin: -2px 0 5px; padding: 0; background: transparent; }
#discover .recommend-consent label { display: inline-flex; align-items: center; flex-direction: row-reverse; gap: 8px; min-height: 44px; font-size: 13px; color: var(--ink); cursor: pointer; }
#recommend-opt-in {
  appearance: none; width: 33px; height: 20px; margin: 0; border-radius: 15px;
  background: #c5c9c4; border: 2px solid #c5c9c4; cursor: pointer;
}
#recommend-opt-in::after { display: block; content: ""; width: 16px; height: 16px; background: white; border-radius: 50%; box-shadow: 0 1px 3px #0003; }
#recommend-opt-in:checked { background: #408b24; border-color: #408b24; }
#recommend-opt-in:checked::after { transform: translateX(13px); }
#discover .discover-recommend, #discover .discover-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 7px; }
#discover :is(.recommend-wrap,.product-grid-wrap) { position: relative; min-width: 0; align-self: start; border-radius: 10px; background: #fff; box-shadow: 0 2px 5px #20352010; }
#discover .discover-item { display: block; text-align: left; width: 100%; border-radius: 10px; }
#discover .discover-visual { aspect-ratio: 1.92; height: auto; margin-bottom: 6px; border-radius: 9px; background-position: center; background-size: cover; }
#discover img.discover-visual { display: block; width: 100%; object-fit: cover; }
#discover [data-id="teach-demo"] .discover-visual { background-image: url("teach.webp"); font-size: 0; }
#discover [data-id="companion-demo"] .discover-visual { background-image: url("companion.webp"); font-size: 0; }
#discover [data-id="wood"] .discover-visual { background-image: url("table.webp"); font-size: 0; }
#discover [data-id="camera"] .discover-visual { background-image: url("camera.webp"); font-size: 0; }
#discover .discover-item b { color: var(--ink); font-size: 14px; margin: 0 5px; }
#discover .discover-item small, #discover .discover-item strong { display: inline-block; max-width: 100%; font-size: 11px; vertical-align: middle; margin: 4px 4px 2px; }
#discover .discover-item small { color: var(--muted); }
#discover .discover-item strong { color: var(--leaf); }
#discover .recommend-like {
  position: absolute; right: 0; top: 0; width: 44px; height: 44px; margin: 0; padding: 0;
  color: white; background: none; font-size: 0;
}
#discover .recommend-like::after { content: "♡"; font: 700 24px/28px sans-serif; text-shadow: 0 1px 4px #242914; }
#discover .recommend-like[aria-pressed="true"]::after { content: "♥"; color: #f02f4e; text-shadow: 0 1px 3px #40102055; }
#discover :is(.recommend-wrap,.product-grid-wrap) .discover-item b {
  margin-right: 44px; min-height: 23px; white-space: normal;
}
.listing-options summary {
  position: absolute; top: 0; right: 0; margin-top: 52%;
  display: grid; place-items: center; width: 44px; height: 44px;
  list-style: none; cursor: pointer; color: #64765c; border-radius: 10px;
}
.listing-options summary::-webkit-details-marker { display: none; }
.listing-options summary::after { content: "•••"; font-size: 13px; letter-spacing: 1px; }
.listing-options[open] summary { color: var(--leaf); background: #f2f7ed; }
.listing-options .product-actions { gap: 5px; padding: 2px 5px 7px; margin: 0; }
.listing-options .product-actions button { min-height: 44px; flex: 1 0 43%; margin: 0; padding: 3px; background: #f0f6eb; color: #385b2c; font-size: 11px; }
.member-sr { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.interest-controls { display: flex; align-items: center; gap: 5px; margin-bottom: 7px; }
.interest-chips, #discover .discover-filters { display: flex; align-items: center; gap: 5px; overflow: auto; scrollbar-width: thin; }
.interest-chips { flex: 1; min-width: 0; }
.interest-chips button, #discover .discover-filters button {
  flex: none; min-height: 44px; padding: 0 9px; border: none; border-radius: 12px; background: #f1f4ee; color: #3c4739; font-size: 12px; white-space: nowrap;
}
.interest-chips button[aria-pressed="true"], #discover .discover-filters button.active { color: white; background: #3d851f; font-weight: 650; }
#discover .recommend-preference { position: relative; display: flex; align-items: center; margin: 0; }
#discover .recommend-preference select {
  appearance: none; max-width: 9em; min-height: 44px; padding: 0 22px 0 9px;
  border: 0; border-radius: 8px; background: transparent; color: #426338;
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
}
#discover .recommend-preference select:active { background: #f1f6ec; }
.recommend-preference .member-icon {
  position: absolute; right: 3px; width: 15px; height: 15px;
  transform: rotate(90deg); pointer-events: none; color: #547849;
}
#discover .recommend-hint, #discover .demo-note { color: var(--muted); }
#cart { background: #f3f5f6; }
.trade-hero { padding-block: 18px 14px; border-bottom: 1px solid #dce2e3; }
#cart .member-body { margin-top: 0; padding-top: 12px; }
.basket-heading { display: flex; align-items: center; gap: 12px; padding: 3px 6px; }
.basket-heading img { width: 56px; height: 48px; padding-right: 10px; border-right: 1px solid #dce6d8; object-fit: contain; }
#cart-empty { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
#cart .trade-orders { padding: 4px 0 0; background: transparent; box-shadow: none; }
#cart .trade-orders > .discover-heading, #cart .trade-caption { padding-inline: 7px; }
.trade-caption { margin: 0 0 7px; font-size: 11px; line-height: 1.55; color: #636b60; }
.trade-caption:last-child { text-align: center; margin: 5px 0 0; }
#cart .order-card { margin: 0 0 9px; padding: 11px; border: 1px solid #edf0e9; border-radius: 12px; box-shadow: 0 2px 8px #2733230b; }
#cart .order-card-head { padding-bottom: 5px; border-bottom: 1px solid #edf0e9; font-size: 14px; }
#cart .order-card-head b { display: flex; align-items: center; gap: 6px; }
#cart [data-item] .order-card-head b::before { content: ""; width: 26px; height: 26px; border-radius: 50%; background: var(--seller) center / cover; }
#cart [data-item="wood"], #cart [data-product="wood"] { --item: url("table.webp"); --seller: url("seller-table.webp"); }
#cart [data-item="camera"], #cart [data-product="camera"] { --item: url("camera.webp"); --seller: url("seller-camera.webp"); }
#cart [data-item="cup"] { --item: url("publish-cup.webp"); --seller: url("seller-cup.webp"); }
#cart .order-card-head span { color: #3b7d24; font-weight: 650; font-size: 12px; }
#cart [data-status="pending"] .order-card-head span { color: #9c650b; }
#cart .order-product { align-items: center; gap: 10px; margin-top: 9px; }
#cart .order-image { width: 83px; height: 62px; flex-basis: 83px; }
#cart [data-item] .order-image, #cart .cart-item:is([data-product="wood"],[data-product="camera"]) .cart-icon { background: var(--item) center / cover; font-size: 0; }
#cart .order-product-info strong { color: var(--ink); white-space: normal; font-size: 13px; }
#cart .order-product-info small { display: inline-block; margin: 3px 4px 0 0; color: var(--muted); }
#cart .order-product>b { font-size: 16px; font-variant-numeric: tabular-nums; }
#cart .order-total, #cart .order-logistics { margin: 4px 0; font-size: 10px; color: var(--muted); }
#cart .order-total { text-align: right; }
#cart .order-actions { margin: 5px 0 0; justify-content: space-between; border-top: 1px solid #edf0e9; }
#cart .order-actions button, #cart .cart-item button { min-height: 44px; color: var(--leaf); background: transparent; font-size: 12px; font-weight: 600; }
#cart .order-actions button.accent { border: 1px solid #498f2c; border-radius: 24px; padding-inline: 16px; }
#cart [data-status="receipt"] .order-actions .accent { background: #408929; color: white; }
#cart-checkout { min-height: 48px; background: #408b24; color: white; }
.mine-hero { min-height: 166px; padding-bottom: 33px; background-color: #e3efda; background-image: url("profile-sage.webp"); }
.mine-identity { display: flex; align-items: center; gap: 8px; margin-top: 19px; max-width: 85%; color: #20271d; }
.mine-identity img { width: 60px; height: 60px; border: 2px solid white; border-radius: 50%; background: white; object-fit: cover; flex: none; }
.mine-default-avatar { width: 45px; border: 2px solid white; border-radius: 50%; background-color: white; }
.mine-default-avatar[hidden], .mine-identity img[hidden] { display: none; }
.mine-identity div { min-width: 0; }
.mine-identity b, .mine-identity p { overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.mine-identity b { font-size: 23px; -webkit-line-clamp: 1; }
.mine-identity p { margin: 3px 0 0; line-height: 1.45; font-size: 12px; -webkit-line-clamp: 2; }
.mine-links, .mine-assets { display: grid; }
.mine-links { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 8px 4px; }
.mine-links button, .mine-assets button { display: flex; align-items: center; justify-content: center; background: white; gap: 7px; font-size: 16px; font-weight: 650; }
.mine-links button { padding: 0; min-height: 61px; }
.mine-links button+button, .mine-assets button+button { border-left: 1px solid #edf0e8; }
.profile-art { display: inline-block; width: 51px; aspect-ratio: 1; flex: none; background: url("profile-icons.webp") var(--pos,0%) center / 600% 100% no-repeat; }
.art-1 { --pos: 20%; } .art-2 { --pos: 40%; } .art-3 { --pos: 60%; } .art-4 { --pos: 80%; } .art-5 { --pos: 100%; }
.mine-assets { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 16px 0 7px; }
.mine-assets button { flex-direction: column; padding: 0; font-size: 12px; gap: 5px; }
.mine-assets .profile-art { width: 55px; max-width: 80%; }
.invite-panel h3 { margin-block: 2px 8px; }
.member-row { display: flex; width: 100%; align-items: center; min-height: 48px; gap: 9px; padding: 7px 10px; border-radius: 9px; background: #f3f7ef; text-align: left; font-size: 14px; }
.member-row + .member-row { margin-top: 5px; }
.member-row .member-icon { color: #438624; }
.member-row .member-icon:last-child { margin-left: auto; color: #677463; width: 17px; }
.member-row small { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.mine-more { padding: 0; background: transparent; box-shadow: none; }
.mine-more .member-row { min-height: 52px; background: white; border-radius: 13px; box-shadow: 0 3px 10px #44351a0b; }
.mine-more .member-row + .member-row { margin-top: 8px; }
.mine-more .member-row > span { flex: 1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px; }
@media(max-width: 360px){
  .member-panel { padding-inline: 9px; }
  .mine-links .profile-art { width: 40px; }
  .mine-assets button { font-size: 11px; }
  #cart .order-image { width: 56px; flex-basis: 56px; }
}

.publish-hero { aspect-ratio: 2.33; background-color: #fff0df; background-image: url("publish-parcel.webp"); }
.publish-hero .community-wordmark { font-size: 23px; color: #3a851c; }
.publish-hero h2 { margin-top: 13px; font-size: 29px; }
.publish-hero p { margin: 2px 0 0; font-size: 14px; font-weight: 600; color: #545749; }
.publish-shortcuts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 6px 3px; }
.publish-shortcuts button {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  min-height: 58px; padding: 2px; background: white; font-size: clamp(13px,3.7vw,16px); font-weight: 700;
}
.publish-shortcuts button + button { border-left: 1px solid #e7ece5; }
.publish-shortcuts img { width: clamp(35px,10vw,48px); height: 45px; object-fit: contain; }
.publish-quota {
  display: flex; align-items: center; justify-content: space-evenly; gap: 4px;
  padding: 8px 3px; margin: 0 0 9px; border-radius: 12px; background: #edf7e5;
  color: #364b32; font-size: 12px; line-height: 1.5;
}
.publish-quota b { color: #377a1e; font-size: 14px; }
.publish-quota span + span { border-left: 1px solid #c3d8b6; padding-left: 9px; }
.publish-inventory { padding: 12px 10px; }
.publish-inventory-head, .publish-query { display: flex; align-items: center; }
.publish-inventory-head { justify-content: space-between; margin: 0 2px 8px; }
.publish-inventory-head h3 { font-size: 20px; }
#publish-example-count { color: #397a25; font-size: 13px; font-weight: 650; }
.publish-query { gap: 6px; padding: 0 11px; border-radius: 12px; margin-bottom: 10px; background: #f0f6ed; color: #427d29; }
.publish-query input { width: 100%; min-width: 0; min-height: 44px; border: none; background: transparent; font-size: 14px; }
#publish .publish-managed {
  --photo-width: clamp(86px,27%,132px);
  position: relative; padding: 8px 8px 0; margin-bottom: 10px;
  border: 1px solid #e8ede5; border-radius: 12px; box-shadow: 0 2px 6px #3742270e;
}
#publish .publish-managed[hidden] { display: none; }
#publish .publish-example, #publish .publish-tags, #publish .publish-feedback {
  width: calc(100% - var(--photo-width) - 9px); margin-left: calc(var(--photo-width) + 9px);
}
#publish .publish-example { display: flex; flex-direction: column; align-items: start; gap: 2px; background: none; padding: 0; }
#publish .publish-example > span:nth-child(2) { display: contents; }
#publish .publish-example b { font-size: 15px; color: var(--ink); overflow-wrap: anywhere; }
#publish .publish-example small { order: 2; color: var(--muted); font-size: 11px; margin: 0; }
#publish .publish-example strong { order: 1; color: #39851e; font-size: 15px; white-space: normal; overflow-wrap: anywhere; }
#publish .example-icon {
  position: absolute; inset: 8px auto 54px 8px; width: var(--photo-width); height: auto;
  display: grid; place-content: center; border-radius: 8px; color: #416c38; background: #eaf3e4 center / cover;
}
#publish [data-index="0"] .example-icon { background-image: url("publish-table.webp"); font-size: 0; }
#publish [data-index="1"] .example-icon { background-image: url("publish-cup.webp"); font-size: 0; }
#publish .is-closed .publish-example::after { margin: 2px 0 0; order: 3; color: #455448; }
#publish .publish-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; margin-block: 5px; font-size: 10px; }
.publish-tags b, .publish-tags span { border-radius: 4px; padding: 1px 4px; overflow-wrap: anywhere; }
.publish-tags b { color: #397725; background: #e9f5df; }
.publish-tags span { border: 1px solid #dfe5da; }
#publish .publish-feedback {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 2px;
  min-height: 44px; padding: 4px 7px; margin-block: 3px; border-radius: 7px; text-align: left;
  background: #f3f7ef; color: #546050; font-size: 11px;
}
.publish-feedback b { color: #387b23; font-size: 11px; }
#publish .publish-actions {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; align-items: center;
  padding: 0; margin-top: 7px; border-top: 1px solid #e8ede5;
}
#publish .publish-actions button { padding: 2px; min-height: 44px; background: transparent; color: #485244; font-size: 12px; }
#publish-empty { text-align: center; color: var(--muted); padding: 15px 0; }
.publish-quota span { display: inline-flex; align-items: center; gap: 4px; }
.publish-quota svg { width: 17px; height: 17px; flex: none; color: #438526; }

#auth.login-mode {
  height: 100%;
  padding: 0;
  background: white;
  color: #19221a;
  font-family: Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
}
#member-login-view:not([hidden]) {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.login-hero {
  flex: none; display: flex; align-items: center;
  aspect-ratio: 1.6; padding: 14px 6.5% 24px;
  background: #edf7e3 url("login-sprout.webp") center / cover no-repeat;
}
.login-wordmark { color: #3c901a; font-size: clamp(36px,9vw,44px); line-height: 1; font-weight: 750; letter-spacing: -.055em; }
.login-sheet {
  position: relative; flex: 1;
  display: flex; flex-direction: column; justify-content: space-evenly; gap: 18px;
  margin: -14px 0 0; padding: 26px 18px max(16px,env(safe-area-inset-bottom));
  background: white; border-radius: 22px 22px 0 0;
}
.login-heading, .login-note { text-align: center; }
.login-heading h2 { margin: 0; color: #121713; font-size: 32px; line-height: 1.25; }
.login-heading p { margin: 7px 0 0; font-size: 15px; color: #636a61; }
.login-field label { display: block; margin: 0 5px 8px; font-size: 16px; font-weight: 700; }
.login-input {
  display: flex; align-items: center;
  min-height: 52px; border: 1px solid transparent; border-radius: 11px;
  background: #f0f6ef; padding: 0 14px;
}
.login-input:focus-within { border-color: #468733; box-shadow: 0 0 0 2px #40823926; }
.login-input svg { width: 22px; height: 22px; flex: none; color: #626b60; }
.login-input input {
  flex: 1; min-width: 0; height: 48px;
  margin-left: 12px; padding: 0 2px 0 12px;
  border: 0; outline: none; background: linear-gradient(#b9c6b8,#b9c6b8) left center/1px 18px no-repeat;
  font: inherit; font-size: 16px; color: #19221a;
}
.login-input input::placeholder { color: #697266; }
.login-submit {
  min-height: 54px; border-radius: 12px;
  color: white; background: #419a0a; font-size: 21px; font-weight: 700;
}
.login-submit:active { background: #357e09; }
.login-submit:focus-visible, .login-register button:focus-visible { outline: 3px solid #116db1; outline-offset: -3px; }
.login-note { margin: 0; font-size: 12px; line-height: 1.5; color: #62695f; }
@media (max-height: 540px) {
  .login-hero { aspect-ratio: auto; min-height: 112px; background-position: center 36%; }
  .login-sheet { gap: 12px; padding-block: 16px; }
}

.login-register { text-align: center; color: #60685d; font-size: 15px; }
.login-register button { min-height: 44px; padding: 0 4px; background: transparent; color: #377e18; font-size: inherit; font-weight: 700; }
