/* Branded vendor portal「我的店舖」0.1.44 — cream/ocean, compact collapsed product rows */
#wansui-vendor-portal.wvp,
.wvp {
  --pine: #163f35;
  --ocean: #1a5c6e;
  --paper: #f8f5ef;
  --cream: #f8f5ef;
  --edge: #dcded5;
  --accent: #c77731;
  --ink: #19392f;
  color: var(--ink);
  background: var(--paper);
  font-family: system-ui, -apple-system, "Noto Sans TC", "PingFang TC", sans-serif;
  font-size: 1.125rem;
  line-height: 1.55;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 0 1.75rem;
  min-height: 70vh;
  box-sizing: border-box;
}
.wvp *,
.wvp *::before,
.wvp *::after { box-sizing: border-box; }

.wvp-chrome {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.25rem 5%;
  border-bottom: 1px solid var(--edge);
  background: var(--cream);
  position: sticky;
  top: 0;
  z-index: 20;
}
.wvp-logo {
  font-size: 1.5rem;
  letter-spacing: 0.12em;
  text-decoration: none;
  font-weight: 650;
  color: var(--pine);
}
.wvp-logo span {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  color: var(--ocean);
  font-weight: 600;
}
.wvp-eyebrow {
  margin: 0;
  font-size: 0.95rem;
  color: var(--ocean);
  font-weight: 600;
}
.wvp-chrome-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.wvp-who {
  font-size: 0.95rem;
  color: #2a4a40;
}

.wvp-main {
  padding: 1rem 5% 0;
  max-width: 480px;
}
.wvp-main-wide {
  max-width: none;
}

.wvp-title {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  color: var(--pine);
  margin: 0 0 0.5rem;
  font-weight: 700;
}
.wvp-lead {
  margin: 0 0 0.85rem;
  color: #2a4a40;
  font-size: 1rem;
}
.wvp-stores {
  margin: 0 0 1.25rem;
  font-size: 1.05rem;
}

.wvp-login {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 1.25rem 0;
  padding: 1.5rem;
  background: #fff;
  border: 1px solid var(--edge);
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(22, 63, 53, 0.06);
}
.wvp-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-weight: 600;
  color: var(--pine);
}
.wvp-field input {
  min-height: 52px;
  font-size: 1.125rem;
  padding: 0.65rem 0.9rem;
  border: 2px solid var(--edge);
  border-radius: 10px;
  background: var(--cream);
  color: var(--ink);
  width: 100%;
}
.wvp-field input:focus {
  outline: 3px solid #c77731;
  outline-offset: 2px;
  border-color: var(--ocean);
}

.wvp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.7rem 1.4rem;
  font-size: 1.05rem;
  font-weight: 650;
  border-radius: 10px;
  border: 2px solid var(--edge);
  background: #fff;
  color: var(--pine);
  cursor: pointer;
  text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
}
.wvp-btn:hover:not(:disabled) {
  border-color: #b7c0ae;
  background: #f3f6ef;
}
.wvp-btn:disabled {
  opacity: 0.5;
  cursor: default;
}
.wvp-btn:focus-visible {
  outline: 3px solid #c77731;
  outline-offset: 3px;
}
.wvp-btn-primary {
  background: var(--pine);
  color: var(--cream);
  border-color: var(--pine);
}
.wvp-btn-primary:hover:not(:disabled) {
  background: var(--ocean);
  border-color: var(--ocean);
  color: #fff;
}
.wvp-btn-ghost {
  background: transparent;
  border-color: var(--edge);
}

.wvp-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.wvp-alert {
  padding: 0.9rem 1.1rem;
  border-radius: 10px;
  margin: 0 0 1rem;
  font-weight: 600;
}
.wvp-alert-err {
  background: #fde8e8;
  color: #9e231b;
  border: 1px solid #f0c0bc;
}
.wvp-alert-info {
  background: #e7f0ea;
  color: #163f35;
  border: 1px solid #c5d9cf;
}
.wvp-alert-warn {
  background: #fff0ce;
  color: #604515;
  border: 1px solid #e8d49a;
}

.wvp-status {
  margin: 0;
  font-size: 0.95rem;
  min-height: 1.4em;
}
.wvp-status.is-ok { color: #0a7a3e; }
.wvp-status.is-err { color: #b32d2e; }

.wvp-note {
  font-size: 0.9rem;
  color: #5a6b62;
  margin-top: 1.25rem;
  line-height: 1.5;
}

.wvp-table-wrap {
  overflow-x: auto;
  margin: 1rem 0 1.5rem;
  border: 1px solid var(--edge);
  border-radius: 12px;
  background: #fff;
}
.wvp-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}
.wvp-table th,
.wvp-table td {
  padding: 1rem 0.85rem;
  border-bottom: 1px solid var(--edge);
  vertical-align: middle;
  text-align: left;
  font-size: 1rem;
}
.wvp-table th {
  background: #eef2ec;
  color: var(--pine);
  font-size: 0.9rem;
  font-weight: 700;
}
.wvp-table tr:last-child td { border-bottom: none; }
.wvp-table input[type=number] {
  min-height: 48px;
  font-size: 1.05rem;
  width: 100%;
  max-width: 130px;
  padding: 0.45rem 0.65rem;
  border: 2px solid var(--edge);
  border-radius: 8px;
  background: var(--cream);
}
.wvp-table input[type=number]:focus {
  outline: 3px solid #c77731;
  outline-offset: 1px;
}

.wvp-name { font-weight: 650; font-size: 1.05rem; margin-bottom: 0.25rem; }
.wvp-badge {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: #e7f0ea;
  color: var(--pine);
  font-size: 0.75rem;
  font-weight: 700;
  margin-right: 0.35rem;
}
.wvp-stock-chip {
  display: inline-block;
  font-size: 0.75rem;
  color: #5a6b62;
  padding: 0.1rem 0.45rem;
  border-radius: 6px;
  background: #f0f3ee;
}
.wvp-hint { font-size: 0.8rem; color: #6a7467; margin-top: 0.25rem; }
.wvp-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  cursor: pointer;
}
.wvp-check input {
  width: 22px;
  height: 22px;
  min-height: 22px;
  accent-color: var(--pine);
}
.wvp-row-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.wvp-row-status {
  font-size: 0.85rem;
}
.wvp-row-status.is-ok { color: #0a7a3e; }
.wvp-row-status.is-err { color: #b32d2e; }

.wvp-help {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #2a4a40;
  padding-left: 1.25rem;
  max-width: 640px;
}


/* —— 0.1.39: toolbar / add panel / empty / variations —— */
.wvp-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.85rem;
}
.wvp-btn-lg {
  min-height: 56px;
  padding: 0.85rem 1.6rem;
  font-size: 1.15rem;
}
.wvp-add-panel {
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  background: #fff;
  border: 2px solid var(--ocean);
  border-radius: 14px;
  box-shadow: 0 4px 16px rgba(26, 92, 110, 0.08);
}
.wvp-subtitle {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  color: var(--pine);
  font-weight: 700;
}
.wvp-hint-block {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  color: #5a6b62;
  line-height: 1.55;
}
.wvp-add-form {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.wvp-add-form .wvp-field select {
  min-height: 52px;
  font-size: 1.125rem;
  padding: 0.65rem 0.9rem;
  border: 2px solid var(--edge);
  border-radius: 10px;
  background: var(--cream);
  color: var(--ink);
  width: 100%;
}
.wvp-check-block {
  margin-top: 0.25rem;
}
.wvp-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.35rem;
}

.wvp-empty {
  text-align: center;
  padding: 2.5rem 1.5rem;
  margin: 0.5rem 0 1.5rem;
  background: #fff;
  border: 2px dashed var(--edge);
  border-radius: 14px;
}
.wvp-empty-title {
  margin: 0 0 0.5rem;
  font-size: 1.5rem;
  color: var(--pine);
  font-weight: 700;
}
.wvp-empty-lead {
  margin: 0 0 0.85rem;
  color: #2a4a40;
  font-size: 1rem;
}

.wvp-vars {
  margin-top: 0.75rem;
  padding: 0.75rem 0.9rem;
  background: #f3f6f2;
  border: 1px solid var(--edge);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.wvp-var-row {
  display: grid;
  grid-template-columns: minmax(100px, 1.5fr) 1fr 1fr;
  gap: 0.5rem 0.75rem;
  align-items: end;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid #e0e5dc;
}
.wvp-var-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.wvp-var-label {
  font-size: 0.9rem;
  font-weight: 650;
  color: var(--pine);
  align-self: center;
}
.wvp-var-field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #5a6b62;
}
.wvp-var-cap { letter-spacing: 0.02em; }
.wvp-var-field input[type=number] {
  min-height: 44px;
  font-size: 1rem;
  width: 100%;
  max-width: none;
  padding: 0.4rem 0.55rem;
  border: 2px solid var(--edge);
  border-radius: 8px;
  background: var(--cream);
}
.wvp-row-variable td:first-child { vertical-align: top; }
.wvp-stock-chip {
  display: inline-block;
  font-size: 0.75rem;
  color: #5a6b62;
  padding: 0.1rem 0.45rem;
  border-radius: 6px;
  background: #f0f3ee;
  margin-left: 0.25rem;
}

@media (max-width: 720px) {
  .wvp-var-row {
    grid-template-columns: 1fr 1fr;
  }
  .wvp-var-label {
    grid-column: 1 / -1;
  }
}

/* Hide theme WP chrome around shortcode if theme leaks */
body.wansui-vendor-portal-page #wpadminbar { display: none !important; }
body.wansui-vendor-portal-page { margin-top: 0 !important; padding-top: 0 !important; }
body.wansui-vendor-portal-page .site-info,
body.wansui-vendor-portal-page .powered-by,
body.wansui-vendor-portal-page a[href*="wordpress.org"],
body.wansui-vendor-portal-page .site-footer,
body.wansui-vendor-portal-page footer.site-footer,
body.wansui-vendor-portal-page #colophon {
  display: none !important;
}
body.wansui-vendor-portal-page .ws-site-foot {
  display: block !important;
}

@media (max-width: 640px) {
  .wvp-main { padding-left: 4%; padding-right: 4%; }
  .wvp-chrome { padding-left: 4%; padding-right: 4%; }
  .wvp-btn { width: 100%; }
  .wvp-row-actions .wvp-btn,
  .wvp-sum-side .wvp-btn,
  .wvp-btn-sm { width: auto; }
}

/* —— 0.1.44: compact collapsed product rows —— */
.wvp-cards {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin: 0.75rem 0 1.25rem;
  padding-bottom: 72px;
}
.wvp-bean-card {
  background: #fff;
  border: 1px solid var(--edge);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(22, 63, 53, 0.05);
}
.wvp-bean-card.is-expanded {
  border-color: var(--ocean);
  box-shadow: 0 2px 12px rgba(26, 92, 110, 0.1);
}
.wvp-card-summary {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 0.65rem 0.75rem;
  align-items: center;
  padding: 0.55rem 0.75rem;
}
.wvp-sum-thumb {
  width: 52px;
  height: 52px;
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(145deg, #e8efe9 0%, #d4e2e6 100%);
  flex-shrink: 0;
}
.wvp-sum-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wvp-sum-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 0.7rem;
  font-weight: 650;
  color: var(--ocean);
}
.wvp-sum-main {
  min-width: 0;
}
.wvp-sum-main .wvp-name {
  margin: 0 0 0.2rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--pine);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wvp-sum-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.45rem;
}
.wvp-price-sum {
  font-size: 0.9rem;
  font-weight: 650;
  color: var(--ocean);
}
.wvp-sum-side {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem 0.5rem;
}
.wvp-check-compact {
  font-size: 0.9rem;
  gap: 0.35rem;
  white-space: nowrap;
}
.wvp-check-compact input {
  width: 18px;
  height: 18px;
  min-height: 18px;
}
.wvp-hint-inline {
  font-size: 0.75rem;
  margin: 0;
  color: #8a9486;
}
.wvp-btn-sm {
  min-height: 40px;
  padding: 0.4rem 0.85rem;
  font-size: 0.9rem;
}
.wvp-card-expand {
  border-top: 1px solid var(--edge);
  padding: 0.85rem 0.9rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  background: #fafbf8;
}
/* display:flex above would override HTML [hidden] — force stay collapsed */
.wvp-card-expand[hidden] {
  display: none !important;
}
.wvp-card-hero {
  position: relative;
  aspect-ratio: 16 / 9;
  max-height: 220px;
  background: linear-gradient(145deg, #e8efe9 0%, #d4e2e6 100%);
  overflow: hidden;
  border-radius: 10px;
}
.wvp-card-hero--edit {
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  margin-bottom: 0.35rem;
}
.wvp-hero-img {
  width: 100%;
  height: auto;
  max-height: 280px;
  object-fit: contain;
  object-position: center;
  background: #f3f5f1;
  display: block;
}
.wvp-card-hero:not(.wvp-card-hero--gallery) .wvp-hero-img,
.wvp-card-hero--legacy .wvp-hero-img {
  width: 100%;
  height: auto;
  max-height: 280px;
  object-fit: contain;
  object-position: center;
  background: #f3f5f1;
}
.wvp-hero-img--empty,
.wvp-hero-preview {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ocean);
  font-weight: 650;
  font-size: 0.95rem;
}
.wvp-hero-placeholder { opacity: 0.85; }
.wvp-file-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.4rem 0.9rem;
  font-size: 0.9rem;
  font-weight: 650;
  border-radius: 999px;
  border: 2px solid var(--edge);
  background: #fff;
  color: var(--pine);
  cursor: pointer;
  margin: 0.5rem 0 0;
  position: relative;
}
.wvp-file-btn input[type=file] {
  /* Full-label hit target — 1×1 + overflow:hidden parents made uploads unclickable */
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
  margin: 0;
  font-size: 0;
}
.wvp-file-btn--overlay {
  position: absolute;
  left: 50%;
  bottom: 0.6rem;
  transform: translateX(-50%);
  margin: 0;
  background: rgba(248, 245, 239, 0.95);
  border-color: var(--ocean);
  color: var(--ocean);
  box-shadow: 0 2px 10px rgba(0,0,0,0.12);
  white-space: nowrap;
}
.wvp-file-btn--overlay:hover {
  background: #fff;
  border-color: var(--pine);
  color: var(--pine);
}
.wvp-field-flavor textarea,
.wvp-field textarea {
  min-height: 56px;
  font-size: 1rem;
  padding: 0.55rem 0.75rem;
  border: 2px solid var(--edge);
  border-radius: 10px;
  background: var(--cream);
  color: var(--ink);
  width: 100%;
  resize: vertical;
  font-family: inherit;
  line-height: 1.4;
}
.wvp-field-flavor textarea:focus,
.wvp-field textarea:focus {
  outline: 3px solid #c77731;
  outline-offset: 2px;
  border-color: var(--ocean);
}
.wvp-card-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem 0.65rem;
  align-items: end;
}
.wvp-field-inline span {
  font-size: 0.8rem;
}
.wvp-field-inline input[type=number] {
  min-height: 44px;
  font-size: 1rem;
  width: 100%;
  max-width: none;
  padding: 0.4rem 0.55rem;
  border: 2px solid var(--edge);
  border-radius: 8px;
  background: var(--cream);
}
.wvp-add-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}
.wvp-var-heading {
  margin: 0 0 0.25rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ocean);
}
.wvp-vars {
  margin-top: 0.15rem;
  padding: 0.55rem 0.7rem;
}
.wvp .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
@media (max-width: 720px) {
  .wvp-card-summary {
    grid-template-columns: 48px minmax(0, 1fr);
  }
  .wvp-sum-side {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
  .wvp-sum-main .wvp-name {
    white-space: normal;
  }
  .wvp-add-grid { grid-template-columns: 1fr; }
  .wvp-store-bank-body .wvp-check-block { margin-left: 0; width: 100%; }
  .wvp-card-meta { grid-template-columns: 1fr; }
  .wvp-btn-sm { min-height: 44px; }
}

/* 0.1.71 guest gate: apply CTA under login */
.wvp-apply-cta {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--edge);
  text-align: center;
}
.wvp-apply-lead {
  margin: 0 0 0.65rem;
  font-size: 1rem;
  font-weight: 650;
  color: var(--pine);
}
.wvp-apply-cta .wvp-btn {
  width: 100%;
  margin-bottom: 0.5rem;
}

/* 0.1.109 structured coffee meta (風味/烘焙/產區/沖煮) */
.wvp-coffee-meta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0.35rem 0 0.75rem;
  padding: 0.85rem 0.9rem;
  background: #f3f6ef;
  border: 1px solid var(--edge);
  border-radius: 12px;
}
.wvp-coffee-label {
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--pine);
  margin-bottom: 0.35rem;
}
.wvp-coffee-hint {
  font-style: normal;
  font-weight: 500;
  font-size: 0.75rem;
  color: #6b7c72;
  margin-left: 0.25rem;
}
.wvp-coffee-field select {
  min-height: 48px;
  font-size: 1.05rem;
  padding: 0.5rem 0.75rem;
  border: 2px solid var(--edge);
  border-radius: 10px;
  background: var(--cream);
  color: var(--ink);
  width: 100%;
  max-width: 280px;
}
.wvp-coffee-field select:focus {
  outline: 3px solid #c77731;
  outline-offset: 2px;
  border-color: var(--ocean);
}
.wvp-coffee-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.wvp-coffee-field--flavor .wvp-coffee-chips {
  gap: 0.3rem;
}
.wvp-coffee-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 36px;
  padding: 0.28rem 0.65rem;
  border: 2px solid var(--edge);
  border-radius: 999px;
  background: #fff;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--pine);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.wvp-coffee-field--flavor .wvp-coffee-chip {
  min-height: 34px;
  padding: 0.22rem 0.55rem;
  font-size: 0.84rem;
}
.wvp-coffee-chip input {
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  accent-color: var(--pine);
}
.wvp-coffee-chip:has(input:checked) {
  background: #e7f0ea;
  border-color: var(--pine);
  color: var(--pine);
}
.wvp-field .wvp-coffee-hint,
.wvp-field-flavor .wvp-coffee-hint {
  font-style: normal;
  font-weight: 500;
  font-size: 0.75rem;
  color: #6b7c72;
}
@media (max-width: 720px) {
  .wvp-coffee-field select { max-width: none; }
  .wvp-coffee-chip { min-height: 40px; font-size: 0.92rem; }
  .wvp-coffee-field--flavor .wvp-coffee-chip { min-height: 36px; font-size: 0.86rem; }
}

.wvp-coffee-custom-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 8px;
}
.wvp-coffee-custom-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ocean, #1a5c4a);
}
.wvp-coffee-custom {
  min-height: 36px;
  font-size: 0.92rem;
  width: 100%;
  max-width: 320px;
  padding: 6px 10px;
  border: 1px solid #c5d9cf;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}
.wvp-coffee-stub {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  font-weight: 500;
  color: #6b7c72;
  line-height: 1.45;
}

/* 0.1.134 multi teaching panels + opt-in */
.wvp-brew-teach-opts{display:flex;flex-direction:column;gap:.4rem}
.wvp-brew-teach-opt-list{display:flex;flex-direction:column;gap:.35rem}
.wvp-brew-teach-opt{display:flex;align-items:center;gap:.5rem;padding:.4rem .55rem;border:1px solid var(--edge);border-radius:8px;background:#fff;cursor:pointer;font-size:.88rem}
.wvp-brew-teach-opt input{width:1.05rem;height:1.05rem;accent-color:var(--pine)}
.wvp-brew-teach-opt-text{color:var(--pine);font-weight:600}
.wvp-brew-teach-opt-text strong{font-weight:750}
.wvp-brew-panels{display:flex;flex-direction:column;gap:.65rem}
.wvp-brew-panel{border:1px solid var(--edge);border-radius:10px;padding:0;background:#fff;display:flex;flex-direction:column;gap:0;overflow:hidden}
.wvp-brew-panel-title{font-size:.95rem;font-weight:750;color:var(--pine)}
/* 0.1.152 brew teaching accordion */
.wvp-brew-panel{padding:0;overflow:hidden;gap:0}
.wvp-brew-panel-head{
  display:flex;align-items:center;gap:.55rem;width:100%;
  padding:.7rem .75rem;border:0;background:#f3f8f4;cursor:pointer;text-align:left;
  font:inherit;color:inherit;border-radius:10px
}
.wvp-brew-panel.is-open .wvp-brew-panel-head{border-radius:10px 10px 0 0;border-bottom:1px solid var(--edge)}
.wvp-brew-panel-chev{
  width:8px;height:8px;border-right:2px solid var(--pine);border-bottom:2px solid var(--pine);
  transform:rotate(-45deg);flex-shrink:0;transition:transform .15s ease
}
.wvp-brew-panel.is-open .wvp-brew-panel-chev{transform:rotate(45deg)}
.wvp-brew-panel-title{flex:1;min-width:0}
.wvp-brew-panel-body{padding:.65rem .75rem .75rem;display:flex;flex-direction:column;gap:.55rem}
.wvp-brew-panel-body[hidden]{display:none!important}

.wvp-brew-panel .wvp-brew-param-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:720px){.wvp-brew-panel .wvp-brew-param-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 0.1.109 vendor brew guide editor */
.wvp-brew-guide{display:flex;flex-direction:column;gap:.75rem;margin-top:.25rem;padding-top:.35rem;border-top:1px dashed var(--edge)}
.wvp-brew-param-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.wvp-brew-param{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:650;color:var(--pine)}
.wvp-brew-param input{min-height:42px;font-size:.95rem;padding:.45rem .65rem;border:2px solid var(--edge);border-radius:8px;background:var(--cream);width:100%}
.wvp-brew-steps-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.wvp-brew-steps-list{display:flex;flex-direction:column;gap:.55rem}
.wvp-brew-step{padding:.65rem;background:#fff;border:1px solid var(--edge);border-radius:10px}
.wvp-brew-step-bar{display:flex;align-items:center;gap:.35rem;margin-bottom:.4rem}
.wvp-brew-step-num{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:999px;background:var(--pine);color:#fff;font-size:.8rem;font-weight:700}
.wvp-brew-step-title input,.wvp-brew-step-body textarea{width:100%;min-height:40px;font-size:.95rem;padding:.45rem .65rem;border:2px solid var(--edge);border-radius:8px;background:var(--cream);font-family:inherit}
.wvp-brew-step-body textarea{min-height:56px;resize:vertical}
.wvp-brew-step-bar .wvp-btn-sm{min-height:32px;padding:.25rem .55rem;font-size:.8rem}
@media (max-width:720px){.wvp-brew-param-grid{grid-template-columns:1fr}}


/* 0.1.129 — save all */
.wvp-toolbar--desk {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 12px 0 16px;
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 10px 0;
  background: rgba(243, 245, 241, 0.96);
  backdrop-filter: blur(6px);
}
.wvp-save-all-status {
  font-size: 13px;
  font-weight: 650;
  color: #3d524a;
}
.wvp-save-all-status.is-ok { color: #1b6b45; }
.wvp-save-all-status.is-err { color: #b42318; }


/* 0.1.130 — reopen after collapse */
.wvp-expand-bar {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin: 0;
  padding: 0.65rem 1rem;
  border: 0;
  border-top: 1px dashed var(--edge);
  background: #eef6f1;
  color: var(--pine);
  font-size: 0.95rem;
  font-weight: 750;
  cursor: pointer;
  text-align: center;
}
.wvp-expand-bar:hover,
.wvp-expand-bar:focus-visible {
  background: #dff0e6;
  outline: none;
}
.wvp-expand-bar[hidden] {
  display: none !important;
}
.wvp-bean-card:not(.is-expanded) [data-expand-summary] {
  font-weight: 750;
}


/* 0.1.142 product gallery: compact 3 heroes + thumbs (tight, equal slots) */
.wvp-gallery{display:flex;flex-direction:column;gap:6px;margin:0 0 8px}
.wvp-gallery-title{margin:0;font-size:12px;font-weight:700;color:#163f35}
.wvp-gallery-title em{font-weight:500;color:#6b7c72;font-style:normal;font-size:11px}
.wvp-gallery-heroes{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px}
.wvp-gallery-hero{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;border:1px solid var(--edge,#dcded5);border-radius:8px;background:#f8f5ef;width:92px;flex:0 0 92px;box-sizing:border-box}
.wvp-gallery-hero-label{font-size:11px;font-weight:700;color:#163f35;text-align:center;line-height:1.15}
.wvp-gallery-hero-label em{font-weight:500;color:#6b7c72;font-style:normal;font-size:10px}
.wvp-gallery-hero-hint{display:none}
.wvp-gallery-hero-img{width:72px;height:72px;max-height:72px;max-width:72px;aspect-ratio:1;object-fit:contain;object-position:center;border-radius:6px;background:#f3f5f1;display:block;margin:0 auto}
.wvp-gallery-hero-img--empty{display:flex;align-items:center;justify-content:center;color:#6b7c72;font-size:10px;font-weight:600;width:72px;height:72px;max-height:72px;aspect-ratio:1;margin:0 auto;padding:2px;text-align:center;line-height:1.15}
/* display:flex above overrides HTML [hidden] — keep placeholder collapsed after upload */
.wvp-gallery-hero-img--empty[hidden],
.wvp-gallery-hero-img[hidden],
.wvp-hero-img--empty[hidden],
img[data-thumb][hidden],
img[data-hero-preview][hidden]{
  display:none!important;
}
.wvp-gallery-hero-img--empty[hidden],[data-hero-empty][hidden]{display:none!important}

.wvp-gallery-clear{font-size:11px;color:#8a3a3a;display:inline-flex;align-items:center;gap:3px;cursor:pointer}
.wvp-file-btn--sm{display:inline-flex;align-items:center;justify-content:center;position:relative;min-height:28px;padding:4px 8px;border-radius:6px;border:1px solid #c9d0c4;background:#fff;font-size:11px;font-weight:700;color:#163f35;cursor:pointer;width:100%;max-width:80px;box-sizing:border-box}
.wvp-file-btn--sm input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2;margin:0;font-size:0}
.wvp-gallery-thumbs-wrap{display:flex;flex-direction:column;gap:4px}
.wvp-gallery-thumbs-label{font-size:12px;font-weight:700;color:#163f35}
.wvp-gallery-thumbs-label em{font-weight:500;color:#6b7c72;font-style:normal;font-size:11px}
.wvp-gallery-thumbs{display:flex;flex-wrap:wrap;gap:4px}
.wvp-gallery-thumb{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;border:1px solid #dcded5;background:#fff;cursor:pointer}
.wvp-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wvp-gallery-thumb-rm{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:2px;padding:2px 0}
.wvp-gallery-full{margin:0;font-size:12px;color:#6b7c72}

/* 0.1.139: legacy single-image hero must not blow up when gallery class missing */
.wvp-card-hero--legacy,
.wvp-card-hero:not(.wvp-card-hero--gallery) {
  aspect-ratio: 1 / 1;
  max-height: 280px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f5f1;
}
.wvp-card-hero--gallery{
  display:block;
  padding:0;
  border:0;
  background:transparent;
  aspect-ratio:auto;
  max-height:none;
  overflow:visible;
  position:relative;
}

/* 0.1.132: 自行填寫 inline after chips (compact) */
.wvp-coffee-chips{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px
}
.wvp-coffee-custom-wrap--inline{
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  gap:6px;
  flex:1 1 150px;
  min-width:132px;
  max-width:240px;
  margin:0;
  padding:0;
  border:0;
  background:transparent
}
.wvp-coffee-custom-wrap--inline .wvp-coffee-custom-label{
  flex:0 0 auto;
  font-size:11px;
  font-weight:650;
  color:#6b7c72;
  white-space:nowrap
}
.wvp-coffee-custom-wrap--inline .wvp-coffee-custom{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  min-height:34px;
  margin:0;
  padding:4px 8px;
  font-size:13px;
  border-radius:8px;
  border:1px solid var(--edge,#dcded5);
  background:#fff
}
.wvp-brew-tools .wvp-coffee-chips,
.wvp-coffee-field--brew-suit .wvp-coffee-chips,
.wvp-coffee-field--flavor .wvp-coffee-chips,
.wvp-coffee-field--origin .wvp-coffee-chips{
  align-items:center
}

/* 0.1.135: add-form gallery must not inherit clipped hero box */
.wvp-add-form .wvp-card-hero--gallery,
.wvp-add-panel .wvp-card-hero--gallery {
  aspect-ratio: auto;
  max-height: none;
  overflow: visible;
}
.wvp-add-form .wvp-file-btn,
.wvp-gallery .wvp-file-btn {
  pointer-events: auto;
}
.wvp-gallery .wvp-file-btn span {
  position: relative;
  z-index: 1;
  pointer-events: none; /* clicks go to the full-size file input */
}


/* Optional AI scene gen under 沖煮／情境 hero (0.1.137) */
.wvp-scene-gen{display:flex;flex-direction:column;gap:6px;margin-top:4px;padding-top:8px;border-top:1px dashed #d5d8cf}
/* 0.1.140: compact gallery heroes + scene prompt */
.wvp-gallery-hero-label{font-size:12px}
.wvp-gallery-hero-hint{font-size:10px;line-height:1.25}

.wvp-scene-hint{margin:0;font-size:11px;color:#6b7c72;line-height:1.35}
.wvp-scene-prompt{width:100%;box-sizing:border-box;min-height:36px;max-height:48px;resize:vertical;padding:6px 8px;border:1px solid #dcded5;border-radius:8px;background:#fff;font-size:12px;line-height:1.35;color:#163f35;font-family:inherit}
.wvp-scene-prompt:focus{outline:2px solid #2f6f5e;outline-offset:1px;border-color:#2f6f5e}
.wvp-scene-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wvp-scene-btn{appearance:none;border:0;border-radius:999px;padding:4px 10px;min-height:32px;background:#163f35;color:#f7f3ea;font-size:12px;font-weight:700;cursor:pointer;line-height:1.2}
.wvp-scene-btn:hover{background:#1f5346}
.wvp-scene-btn:disabled{opacity:.65;cursor:wait}
.wvp-scene-status{font-size:11px;line-height:1.35;color:#6b7c72;flex:1;min-width:120px}
.wvp-scene-status.is-ok{color:#1f5346}
.wvp-scene-status.is-err{color:#8a3a3a}
@media(max-width:720px){
  .wvp-scene-prompt{font-size:12px}
  .wvp-scene-btn{width:100%}
  .wvp-scene-actions{flex-direction:column;align-items:stretch}
}


/* 店鋪基本資料 — vendor desk store profile cards */
.wvp-store-profile {
  margin: 0 0 1.25rem;
  padding: 1.15rem 1.2rem 1.25rem;
  background: #fff;
  border: 1px solid var(--edge);
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(22, 63, 53, 0.05);
}
.wvp-store-profile .wvp-subtitle {
  margin: 0 0 0.35rem;
  font-size: 1.2rem;
  color: var(--pine);
}
.wvp-store-profile > .wvp-hint {
  margin: 0 0 0.85rem;
}
.wvp-store-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.wvp-store-sign {
  gap: 0.5rem;
}
.wvp-store-sign > span {
  font-weight: 600;
  color: var(--pine);
}
.wvp-store-sign-preview {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 72px;
  max-width: 220px;
  padding: 0.5rem;
  background: var(--cream);
  border: 1px dashed var(--edge);
  border-radius: 10px;
}
.wvp-store-sign-img {
  display: block;
  max-width: 100%;
  max-height: 96px;
  width: auto;
  height: auto;
  border-radius: 6px;
  object-fit: contain;
}
.wvp-store-bank {
  margin: 0.15rem 0 0;
  padding: 0.55rem 0.75rem 0.65rem;
  background: #f3f6f2;
  border: 1px solid var(--edge);
  border-radius: 10px;
}
.wvp-store-bank > summary {
  cursor: pointer;
  font-weight: 650;
  color: var(--ocean);
  list-style: disclosure-closed;
  padding: 0.2rem 0;
}
.wvp-store-bank[open] > summary {
  list-style: disclosure-open;
  margin-bottom: 0.55rem;
}
.wvp-store-bank-body {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem;
}
.wvp-store-bank-body .wvp-field { flex: 1 1 180px; }
.wvp-store-bank-body .wvp-check-block { margin-left: auto; align-self: flex-end; white-space: nowrap; }
.wvp-store-profile .wvp-actions {
  margin-top: 0.25rem;
}
.wvp-store-profile .wvp-status {
  margin: 0;
}
@media (max-width: 640px) {
  .wvp-store-profile {
    padding: 1rem 0.9rem 1.1rem;
  }
  .wvp-store-sign-preview {
    max-width: 100%;
  }
}


/* 0.1.142: tight gallery — fixed 92px cards, 72px previews, scene-gen full-width below */
.wvp-gallery-heroes {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 6px !important;
  grid-template-columns: none !important;
}
.wvp-gallery-hero {
  width: 92px !important;
  flex: 0 0 92px !important;
  align-self: flex-start !important;
  padding: 6px !important;
}
.wvp-gallery-hero-img,
.wvp-gallery-hero-img--empty {
  width: 72px !important;
  height: 72px !important;
  max-height: 72px !important;
  max-width: 72px !important;
  aspect-ratio: 1 !important;
}
/* 0.1.148: gallery preview [hidden] must beat display:flex / size !important */
.wvp-gallery-hero-img--empty[hidden],
.wvp-gallery-hero-img[hidden],
[data-hero-empty][hidden] {
  display: none !important;
}
.wvp-gallery-hero-hint { display: none !important; }
.wvp-gallery-thumb {
  width: 48px !important;
  height: 48px !important;
}
.wvp-scene-gen {
  flex: 1 1 100% !important;
  width: 100% !important;
  margin-top: 2px !important;
  padding-top: 6px !important;
  gap: 4px !important;
}
.wvp-scene-prompt {
  min-height: 28px !important;
  max-height: 40px !important;
  font-size: 11px !important;
  padding: 4px 6px !important;
}
.wvp-scene-btn {
  min-height: 28px !important;
  padding: 2px 10px !important;
  font-size: 11px !important;
}
.wvp-scene-hint {
  font-size: 10px !important;
  margin: 0 !important;
}


/* 0.1.144: 自行填寫 as checkable chip */
.wvp-coffee-chip--custom{
  flex:0 1 auto;
  gap:0.35rem;
  max-width:100%;
}
.wvp-coffee-chip--custom .wvp-coffee-custom,
.wvp-coffee-chip--custom input[type="text"]{
  width:100px;
  min-width:80px;
  max-width:120px;
  min-height:28px;
  margin:0;
  padding:2px 8px;
  border:1px solid var(--edge,#dcded5);
  border-radius:8px;
  background:#fff;
  font-size:0.82rem;
  font-weight:500;
  color:var(--ink,#163f35);
}
.wvp-coffee-chip--custom:has(input[type="checkbox"]:checked) .wvp-coffee-custom,
.wvp-coffee-chip--custom:has(input[type="checkbox"]:checked) input[type="text"]{
  border-color:var(--pine,#1a5c4a);
  background:#f7fbf8;
}
/* Keep old inline wrap as weak fallback */
.wvp-coffee-custom-wrap--inline{
  opacity:0.95;
}

/* 0.1.144: store gallery (max 12) */
.wvp-store-gallery{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}
.wvp-store-gallery > span{
  font-weight:600;
  color:var(--pine);
}
.wvp-store-gallery-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.wvp-store-gallery-item{
  position:relative;
  display:block;
  width:88px;
  height:88px;
  border:1px solid var(--edge,#dcded5);
  border-radius:10px;
  overflow:hidden;
  background:var(--cream,#f8f5ef);
}
.wvp-store-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.wvp-store-gallery-rm{
  position:absolute;
  top:4px;
  right:4px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:22px;
  padding:0 8px;
  border:0;
  border-radius:999px;
  background:#c0392b;
  color:#fff;
  font-size:11px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:0 1px 3px rgba(0,0,0,.35);
}
.wvp-store-gallery-rm:hover,
.wvp-store-gallery-rm:focus-visible{
  background:#a93226;
  outline:2px solid #fff;
  outline-offset:1px;
}
.wvp-store-gallery-status{
  margin:0;
  font-size:13px;
  color:var(--pine,#163f35);
}
.wvp-store-gallery-status.is-err{color:#a93226}
.wvp-store-gallery-status.is-ok{color:#1b6b4a}
.wvp-store-shop-cta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.5rem 0.75rem;
  margin:0 0 0.75rem;
}
.wvp-store-shop-link{
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  padding:0.4rem 0.85rem;
  border-radius:999px;
  background:var(--pine,#163f35);
  color:#fff !important;
  font-size:13px;
  font-weight:700;
  text-decoration:none !important;
  line-height:1.2;
}
.wvp-store-shop-link:hover,
.wvp-store-shop-link:focus-visible{
  filter:brightness(1.08);
  outline:2px solid #c4a35a;
  outline-offset:2px;
}
.wvp-store-shop-link--inline{
  margin-left:0.5rem;
  padding:0.25rem 0.65rem;
  font-size:12px;
  vertical-align:middle;
}
.wvp-stores .wvp-store-shop-link--inline{margin-top:0.35rem}


/* 0.1.145: per-slot upload status under hero card */
.wvp-slot-status{
  display:block;
  margin:2px 0 0;
  font-size:10px;
  line-height:1.25;
  text-align:center;
  color:#6b7c72;
  max-width:92px;
  word-break:break-word;
}
.wvp-slot-status.is-ok{color:#1f5346;font-weight:700}
.wvp-slot-status.is-err{color:#8a3a3a;font-weight:700}
.wvp-slot-status[hidden]{display:none!important}

/* 0.1.150 — roast + weight same row; weight chips single-select */
.wvp-coffee-row--roast-weight{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(220px,1.5fr);
  gap:12px 18px;
  align-items:start;
}
.wvp-coffee-row--roast-weight .wvp-coffee-field{margin-bottom:0}
@media (max-width:720px){
  .wvp-coffee-row--roast-weight{grid-template-columns:1fr}
}
.wvp-coffee-field--weight .wvp-coffee-chips{
  display:flex;flex-wrap:wrap;gap:6px
}
.wvp-coffee-field--weight .wvp-coffee-chip:has(input:checked),
.wvp-coffee-field--flavor .wvp-coffee-chip:has(input:checked),
.wvp-coffee-field--origin .wvp-coffee-chip:has(input:checked),
.wvp-coffee-field--process .wvp-coffee-chip:has(input:checked){
  background:#e8f3ec;border-color:#163f35;box-shadow:0 0 0 1px #163f35
}

/* 0.1.151 — shop name as storefront link (replaces green 前往商城店頁 CTA) */
.wvp-title-store-link{
  color:inherit;
  text-decoration:none;
  border-bottom:2px solid rgba(22,63,53,.25);
}
.wvp-title-store-link:hover,
.wvp-title-store-link:focus-visible{
  border-bottom-color:#163f35;
  color:#163f35;
}
.wvp-store-shop-cta{display:none!important}

.wvp-weight-chip{align-items:center;flex-wrap:wrap}
.wvp-weight-price-wrap{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:700;color:#163f35;margin-left:2px}
.wvp-weight-price{width:76px;padding:3px 6px;border:1px solid #c5d9cf;border-radius:8px;font-size:13px;font-weight:700}
.wvp-weight-hint{margin:8px 0 0;font-size:12px;color:#6b7c72}

.wvp-weight-fields{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.wvp-weight-show-sale{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:650;color:#163f35;cursor:pointer}
.wvp-weight-sale{width:76px;padding:3px 6px;border:1px solid #c5d9cf;border-radius:8px;font-size:13px;font-weight:700}
.wvp-weight-fields[hidden]{display:none!important}
.wvp-weight-rows{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.wvp-weight-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.wvp-weight-field{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#163f35}
.wvp-weight-field-k{color:#6b7c72;font-weight:650;min-width:2em}
.wvp-weight-stock{width:72px;padding:3px 6px;border:1px solid #c5d9cf;border-radius:8px;font-size:13px;font-weight:700}

/* 0.1.153 — sale input stays hidden until display consent is checked */
.wvp-weight-sale-field[hidden]{display:none!important}
.wvp-weight-show-sale{padding:3px 7px;border:1px solid #c5d9cf;border-radius:8px;background:#f3f8f4}


/* 0.1.157: click photo → front PDP */
.wvp-gallery-pdp-link{
  display:inline-block;
  line-height:0;
  border-radius:6px;
  cursor:pointer;
  text-decoration:none;
  color:inherit;
}
.wvp-gallery-pdp-link:hover,
.wvp-gallery-pdp-link:focus-visible{
  outline:2px solid #2f6f5e;
  outline-offset:2px;
  opacity:.92;
}
.wvp-gallery-pdp-link img{
  display:block;
  pointer-events:none;
}
.wvp-sum-thumb .wvp-gallery-pdp-link{
  display:block;
  width:100%;
  height:100%;
}
.wvp-sum-thumb .wvp-gallery-pdp-link img{
  width:100%;
  height:100%;
  object-fit:cover;
}


/* COD tight right of remittance (same row) */
.wvp-store-bank-row{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px 14px;
  margin:8px 0 4px;
}
.wvp-store-bank-row .wvp-store-bank{
  flex:1 1 220px;
  min-width:0;
  margin:0;
}
.wvp-store-bank-row .wvp-check-cod{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  padding:8px 0 0;
  white-space:nowrap;
  font-size:13px;
  font-weight:700;
  color:#163f35;
  align-self:center;
}
.wvp-store-bank-row .wvp-check-cod input{
  width:16px;
  height:16px;
  accent-color:#163f35;
}


/* 0.1.160: clear storefront link under shop title */
.wvp-store-view-row{
  margin: -4px 0 18px;
}
.wvp-store-view-link{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--ocean);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--ocean) 45%, transparent);
  padding-bottom: 1px;
}
.wvp-store-view-link:hover,
.wvp-store-view-link:focus-visible{
  color: var(--pine);
  border-bottom-color: var(--pine);
}


/* 0.1.161: public contact info card on vendor desk */
.wvp-store-public-card{
  margin: 12px 0 16px;
  padding: 16px 16px 14px;
  border: 1px solid #c9d9cf;
  border-radius: 14px;
  background: #f3f8f4;
}
.wvp-store-public-title{
  margin: 0 0 12px;
  font-size: 1rem;
  font-weight: 800;
  color: #163f35;
  letter-spacing: .02em;
}
.wvp-store-public-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.wvp-store-public-grid .wvp-field--full{
  grid-column: 1 / -1;
}
.wvp-store-public-card .wvp-hint{
  margin: 12px 0 0;
}
@media (max-width: 720px){
  .wvp-store-public-grid{ grid-template-columns: 1fr; }
}


/* 0.1.162: Logo／招牌 — thumb + 刪除 (no legacy clear-checkbox) */
.wvp-store-sign-preview{position:relative;display:inline-flex;align-items:flex-start;gap:10px;min-height:72px}
.wvp-store-sign-item{position:relative;display:inline-block;line-height:0}
.wvp-store-sign-item .wvp-store-sign-img{display:block;width:96px;height:96px;object-fit:cover;border-radius:12px;border:1px solid #c9d9cf;background:#f3f8f4}
.wvp-store-sign-rm{
  position:absolute;top:4px;right:4px;z-index:2;
  min-width:auto;padding:4px 8px;border:0;border-radius:8px;
  background:rgba(22,63,53,.92);color:#f8f5ef;font-size:12px;font-weight:800;
  cursor:pointer;line-height:1.2
}
.wvp-store-sign-rm:hover,.wvp-store-sign-rm:focus-visible{background:#0f2e27}
.wvp-store-sign-status{margin:6px 0 0;font-size:13px;font-weight:650}
.wvp-store-sign-status.is-ok{color:#2a7a4b}
.wvp-store-sign-status.is-err{color:#a33}


/* 0.1.164: dynamic weight rows + flavor/origin chip icons */
.wvp-weight-dyn-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;
  padding:10px 12px;background:#fff;border:1px solid #c5d9cf;border-radius:12px
}
.wvp-weight-label-wrap{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#163f35}
.wvp-weight-select{
  min-height:36px;padding:4px 8px;border:1px solid #c5d9cf;border-radius:8px;
  font-size:13px;font-weight:700;max-width:180px;background:#f8fbf8
}
.wvp-weight-custom-text{min-height:34px;padding:4px 8px;border:1px solid #c5d9cf;border-radius:8px;font-size:13px;width:110px}
.wvp-weight-custom-text[hidden]{display:none!important}
.wvp-weight-add{margin-top:8px;min-height:36px;font-size:13px;font-weight:750}
.wvp-weight-remove{min-height:32px;padding:4px 10px;font-size:12px;font-weight:700;color:#a33;border-color:#e2b4b4}
.wvp-coffee-chip--with-icon{gap:6px;padding:5px 12px 5px 8px}
.wvp-chip-icon{width:22px;height:22px;object-fit:contain;flex-shrink:0;display:block;border-radius:4px}
.wvp-chip-icon--flag{width:22px;height:16px;object-fit:cover;border-radius:2px}
.wvp-hint-inline{margin:6px 0 0;font-size:12px;color:#6b7c72;font-weight:600}

/* 0.1.168 compact green/weight */
.wvp-coffee-block--green{margin:0 0 10px;padding:10px 12px;border:1px solid #b7d0c0;border-radius:12px;background:#f4faf6}
.wvp-coffee-block--green > .wvp-coffee-block-title{display:block;font-size:13px;font-weight:800;color:#163f35;margin:0 0 8px}
.wvp-coffee-block--weight{margin:0 0 10px;padding:10px 12px;border:1px solid #c5d9cf;border-radius:12px;background:#fff}
.wvp-weight-select{max-width:108px!important;width:108px!important;font-size:12px!important}
.wvp-weight-price,.wvp-weight-stock,.wvp-weight-sale{width:56px!important}
.wvp-coffee-row--after-green{display:grid;grid-template-columns:minmax(120px,160px) minmax(0,1fr);gap:10px 12px}

/* 0.1.169 — vendor PWA install + composed title preview */
.wvp-chrome-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.wvp-install-btn {
  font-size: 13px !important;
  white-space: nowrap;
}
.wvp-title-preview {
  margin: 0.25rem 0 0.75rem;
  padding: 8px 12px;
  border-radius: 10px;
  background: #eef5f0;
  border: 1px solid #c5d9cf;
  color: #163f35;
  font-size: 14px;
  font-weight: 650;
}
body.wansui-vendor-portal-page #wansui-market,
body.wansui-vendor-portal-page .ws-footer,
body.wansui-vendor-portal-page [data-install-help]:not([data-wvp-install-help]) {
  display: none !important;
}


/* ==========================================================================
   0.1.174 — compact vendor desk (mobile-first)
   - [hidden] always wins (root cause of the duplicate install button:
     .wvp-btn{display:inline-flex} overrode the UA [hidden]{display:none})
   - slim non-sticky header; slim sticky toolbar (＋新增 / 全部儲存)
   - compact buttons, collapsible 店鋪基本資料, compact chips/groups/weights
   ========================================================================== */
#wansui-vendor-portal [hidden] { display: none !important; }
.wvp-sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* —— header: one slim row, scrolls away —— */
#wansui-vendor-portal .wvp-chrome {
  position: relative; top: auto;
  flex-wrap: nowrap; gap: 8px;
  min-height: 52px; padding: 6px 14px;
}
#wansui-vendor-portal .wvp-chrome:has(.wvp-eyebrow) { flex-wrap: wrap; }
#wansui-vendor-portal .wvp-chrome .wvp-logo {
  flex: 0 0 auto; font-size: 1.05rem; line-height: 1.15; letter-spacing: 0.06em; white-space: nowrap;
}
#wansui-vendor-portal .wvp-chrome .wvp-logo span { font-size: 10px; letter-spacing: 0.14em; }
#wansui-vendor-portal .wvp-chrome-right {
  flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; justify-content: flex-end; gap: 6px;
}
#wansui-vendor-portal .wvp-chrome .wvp-btn {
  width: auto; min-height: 36px; padding: 4px 11px;
  font-size: 13px !important; font-weight: 650; border-width: 1px; border-radius: 999px; white-space: nowrap;
}
#wansui-vendor-portal .wvp-install-btn { gap: 5px; color: var(--ocean); background: #fff; border-color: #c5d9cf; }
#wansui-vendor-portal .wvp-install-ico { flex: 0 0 auto; display: block; }
#wansui-vendor-portal .wvp-who {
  min-width: 0; max-width: 8em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 13px; color: #4a6158;
}
#wansui-vendor-portal .wvp-chrome [data-portal-logout] {
  background: transparent; border-color: transparent; color: var(--ocean);
  padding: 4px 6px; text-decoration: underline; text-underline-offset: 3px;
}
@media (max-width: 380px) {
  #wansui-vendor-portal .wvp-install-btn span { display: none; }
  #wansui-vendor-portal .wvp-install-btn { padding: 4px 9px; }
  #wansui-vendor-portal .wvp-who { max-width: 5em; }
}
@media (display-mode: standalone), (display-mode: fullscreen), (display-mode: minimal-ui) {
  #wansui-vendor-portal .wvp-install-btn { display: none !important; }
}

/* —— page title row —— */
#wansui-vendor-portal .wvp-main-wide .wvp-title { font-size: 1.55rem; margin: 0.6rem 0 0.15rem; }
#wansui-vendor-portal .wvp-store-view-row { margin: 0 0 0.6rem; font-size: 14px; }

/* —— compact buttons on the desk —— */
#wansui-vendor-portal .wvp-main-wide .wvp-btn,
#wansui-vendor-portal .wvp-main-wide .wvp-btn-lg {
  min-height: 38px; padding: 6px 14px; font-size: 15px; border-width: 1.5px; border-radius: 10px;
}
#wansui-vendor-portal .wvp-main-wide .wvp-btn-sm { min-height: 36px; padding: 4px 12px; font-size: 14px; }
@media (max-width: 640px) {
  #wansui-vendor-portal .wvp-main-wide .wvp-btn { width: auto; }
}

/* —— toolbar stays in flow so it does not cover product rows at high zoom —— */
#wansui-vendor-portal .wvp-toolbar--desk {
  position: static; top: auto; z-index: auto;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  min-height: 48px; margin: 8px 0 12px; padding: 5px 8px;
  background: rgba(248, 245, 239, 0.94);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border: 1px solid var(--edge); border-radius: 12px;
  box-shadow: 0 2px 8px rgba(22, 63, 53, 0.06);
}
#wansui-vendor-portal .wvp-toolbar--desk [data-open-add] { order: 1; flex: 0 0 auto; }
#wansui-vendor-portal .wvp-toolbar--desk .wvp-save-all-status {
  order: 2; flex: 1 1 auto; min-width: 0; font-size: 12px; text-align: right;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
#wansui-vendor-portal .wvp-toolbar--desk [data-desk-save-all] { order: 3; flex: 0 0 auto; margin-left: auto; }
#wansui-vendor-portal .wvp-toolbar--desk .wvp-btn { min-height: 36px; padding: 5px 14px; font-size: 14px; }

/* —— 店鋪基本資料: collapsible card —— */
#wansui-vendor-portal .wvp-store-profile.wvp-sp { padding: 0; overflow: hidden; scroll-margin-top: 64px; }
#wansui-vendor-portal .wvp-sp-summary {
  display: flex; align-items: center; gap: 12px; width: 100%;
  min-height: 72px; margin: 0; padding: 12px 14px;
  background: #fff; border: 0; border-radius: 0; text-align: left;
  font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
#wansui-vendor-portal .wvp-sp-summary:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
#wansui-vendor-portal .wvp-sp-thumb {
  flex: 0 0 48px; width: 48px; height: 48px; overflow: hidden;
  display: grid; place-items: center;
  border-radius: 12px; border: 1px solid var(--edge); background: var(--cream);
}
#wansui-vendor-portal .wvp-sp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
#wansui-vendor-portal .wvp-sp-initial { font-size: 1.25rem; font-weight: 800; color: var(--pine); }
#wansui-vendor-portal .wvp-sp-meta { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
#wansui-vendor-portal .wvp-sp-kicker { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: var(--ocean); }
#wansui-vendor-portal .wvp-sp-name {
  font-size: 1.05rem; font-weight: 750; color: var(--pine); line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#wansui-vendor-portal .wvp-sp-sub {
  font-size: 12px; color: #6b7c72; line-height: 1.35;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#wansui-vendor-portal .wvp-sp-sub.is-ok { color: #0a7a3e; font-weight: 650; }
#wansui-vendor-portal .wvp-sp-sub.is-err { color: #b32d2e; font-weight: 650; }
#wansui-vendor-portal .wvp-sp-cta {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px;
  min-height: 44px; padding: 0 12px 0 14px; border-radius: 999px;
  background: #eef5f0; border: 1px solid #c5d9cf; color: var(--pine);
  font-size: 14px; font-weight: 700; white-space: nowrap;
}
#wansui-vendor-portal .wvp-sp-summary:hover .wvp-sp-cta { background: #e2efe6; }
#wansui-vendor-portal .wvp-sp-chev { transition: transform 0.2s ease; }
#wansui-vendor-portal .wvp-sp.is-open .wvp-sp-chev { transform: rotate(180deg); }
#wansui-vendor-portal .wvp-sp.is-open .wvp-sp-summary { border-bottom: 1px solid var(--edge); }
#wansui-vendor-portal .wvp-sp-body { padding: 12px 14px 14px; }
#wansui-vendor-portal .wvp-store-profile .wvp-actions {
  flex-direction: row-reverse; justify-content: flex-start; gap: 8px; margin-top: 4px;
}
@media (max-width: 360px) {
  #wansui-vendor-portal .wvp-sp-summary { gap: 10px; padding: 10px 12px; }
  #wansui-vendor-portal .wvp-sp-cta { padding: 0 10px; font-size: 13px; }
}

/* —— product rows —— */
#wansui-vendor-portal .wvp-sum-side [data-expand-summary] {
  background: #fff; color: var(--pine); border-color: #b7d0c0;
}
#wansui-vendor-portal .wvp-card-expand { padding: 10px 10px 12px; gap: 8px; }
#wansui-vendor-portal .wvp-expand-bar { min-height: 36px; font-size: 13px; }
#wansui-vendor-portal .wvp-card-expand .wvp-field > span { font-size: 13px; }
#wansui-vendor-portal .wvp-card-expand .wvp-field input:not([type=checkbox]):not([type=radio]),
#wansui-vendor-portal .wvp-card-expand .wvp-field select {
  min-height: 40px; font-size: 15px; padding: 6px 10px; border-width: 1.5px;
}
#wansui-vendor-portal .wvp-card-expand .wvp-field textarea { font-size: 15px; padding: 6px 10px; }
#wansui-vendor-portal .wvp-row-actions { gap: 8px; }

/* —— coffee meta: tighter boxes, labels inline with small hints —— */
#wansui-vendor-portal .wvp-coffee-meta { gap: 8px; margin: 4px 0 8px; padding: 8px; border-radius: 10px; }
#wansui-vendor-portal .wvp-coffee-block--green,
#wansui-vendor-portal .wvp-coffee-block--weight { margin: 0; padding: 8px; border-radius: 10px; }
#wansui-vendor-portal .wvp-coffee-block--green > .wvp-coffee-block-title { font-size: 12px; margin: 0 0 4px; }
#wansui-vendor-portal .wvp-coffee-block--green .wvp-coffee-field { margin: 0 0 6px; }
#wansui-vendor-portal .wvp-coffee-block--green .wvp-coffee-field:last-child { margin-bottom: 0; }
#wansui-vendor-portal .wvp-coffee-label { font-size: 13px; margin-bottom: 4px; line-height: 1.3; }
#wansui-vendor-portal .wvp-coffee-hint { font-size: 11px; margin-left: 4px; }
#wansui-vendor-portal .wvp-coffee-field select { min-height: 38px; font-size: 14px; padding: 4px 8px; border-width: 1.5px; }
#wansui-vendor-portal .wvp-coffee-row--after-green { gap: 8px; }

/* —— chips: the chip itself is the toggle (checkbox visually hidden) —— */
#wansui-vendor-portal .wvp-coffee-chips { gap: 6px !important; }
#wansui-vendor-portal .wvp-coffee-chip,
#wansui-vendor-portal .wvp-coffee-field--flavor .wvp-coffee-chip,
#wansui-vendor-portal .wvp-coffee-chip--with-icon {
  position: relative;
  min-height: 32px !important; padding: 4px 10px !important; gap: 5px !important;
  font-size: 14px !important; font-weight: 600; line-height: 1.2;
  border: 1px solid #c5d9cf !important; border-radius: 999px;
  background: #fff; color: var(--pine); box-shadow: none !important;
}
#wansui-vendor-portal .wvp-coffee-chip > input[type=checkbox],
#wansui-vendor-portal .wvp-coffee-chip > input[type=radio] {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px; min-height: 0;
  margin: 0; opacity: 0; pointer-events: none;
}
#wansui-vendor-portal.wvp-no-has .wvp-coffee-chip.is-on,
#wansui-vendor-portal .wvp-coffee-chip:has(> input[type=checkbox]:checked),
#wansui-vendor-portal .wvp-coffee-chip:has(> input[type=radio]:checked) {
  background: var(--pine) !important; border-color: var(--pine) !important; color: #fff !important;
}
#wansui-vendor-portal.wvp-no-has .wvp-coffee-chip.is-on::before,
#wansui-vendor-portal .wvp-coffee-chip:has(> input[type=checkbox]:checked)::before,
#wansui-vendor-portal .wvp-coffee-chip:has(> input[type=radio]:checked)::before {
  content: "✓"; font-size: 12px; font-weight: 800; line-height: 1;
}
#wansui-vendor-portal .wvp-coffee-chip:has(> input[type=checkbox]:focus-visible),
#wansui-vendor-portal .wvp-coffee-chip:has(> input[type=radio]:focus-visible) {
  outline: 2px solid var(--accent); outline-offset: 2px;
}
#wansui-vendor-portal .wvp-chip-icon { width: 18px !important; height: 18px !important; border-radius: 4px; }
#wansui-vendor-portal .wvp-chip-icon--flag { width: 18px !important; height: 13px !important; border-radius: 2px; }
#wansui-vendor-portal .wvp-coffee-chip:has(> input:checked) .wvp-chip-icon:not(.wvp-chip-icon--flag),
#wansui-vendor-portal.wvp-no-has .wvp-coffee-chip.is-on .wvp-chip-icon:not(.wvp-chip-icon--flag) { background: #fff; }
#wansui-vendor-portal .wvp-coffee-chip--custom .wvp-coffee-custom,
#wansui-vendor-portal .wvp-coffee-chip--custom input[type=text] {
  width: 88px; min-width: 72px; max-width: 110px; min-height: 26px;
  padding: 2px 6px; font-size: 13px; color: var(--ink); background: #fff;
}

/* —— collapsible chip groups (JS adds .wvp-cf-head) —— */
#wansui-vendor-portal .wvp-cf-head {
  display: flex; align-items: center; gap: 6px; width: 100%;
  min-height: 36px; margin: 0; padding: 4px 2px;
  background: transparent; border: 0; text-align: left;
  font: inherit; color: var(--pine); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
#wansui-vendor-portal .wvp-cf-head:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 8px; }
#wansui-vendor-portal .wvp-cf-title { flex: 0 0 auto; font-size: 13px; font-weight: 750; }
#wansui-vendor-portal .wvp-cf-sum {
  flex: 1 1 auto; min-width: 0; font-size: 13px; font-weight: 600; color: var(--ocean);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#wansui-vendor-portal .wvp-cf-sum.is-empty { color: #8a9486; font-weight: 500; }
#wansui-vendor-portal .wvp-cf-hint { display: none; font-size: 11px; font-weight: 500; color: #6b7c72; }
#wansui-vendor-portal .wvp-cf.is-open .wvp-cf-hint { display: inline; }
#wansui-vendor-portal .wvp-cf.is-open .wvp-cf-sum { display: none; }
#wansui-vendor-portal .wvp-cf-chev { flex: 0 0 auto; margin-left: auto; color: #6b7c72; transition: transform 0.2s ease; }
#wansui-vendor-portal .wvp-cf.is-open .wvp-cf-chev { transform: rotate(180deg); }
#wansui-vendor-portal .wvp-cf { border-bottom: 1px dashed #d5e2da; padding-bottom: 4px; }
#wansui-vendor-portal .wvp-cf:last-child { border-bottom: 0; }
#wansui-vendor-portal .wvp-cf > .wvp-coffee-chips { padding: 2px 0 6px; }

/* —— weight rows: 重量 + 價格 + 優惠 in one row where it fits —— */
#wansui-vendor-portal .wvp-weight-rows { gap: 6px; margin-top: 2px; }
#wansui-vendor-portal .wvp-weight-row { gap: 6px 8px; }
#wansui-vendor-portal .wvp-weight-fields { display: contents; }
#wansui-vendor-portal .wvp-weight-label-wrap .wvp-weight-field-k,
#wansui-vendor-portal .wvp-weight-field:first-child .wvp-weight-field-k { display: none; }
#wansui-vendor-portal .wvp-weight-select { width: 112px !important; max-width: 112px !important; min-height: 34px; font-size: 13px !important; padding: 2px 4px; }
#wansui-vendor-portal .wvp-weight-price,
#wansui-vendor-portal .wvp-weight-sale,
#wansui-vendor-portal .wvp-weight-stock { width: 60px !important; min-height: 32px; font-size: 13px; }
#wansui-vendor-portal .wvp-weight-show-sale { min-height: 32px; padding: 2px 8px; font-size: 12px; }
#wansui-vendor-portal .wvp-weight-field-k { min-width: 0; font-size: 12px; }
#wansui-vendor-portal .wvp-weight-hint { margin: 6px 0 0; font-size: 11px; line-height: 1.4; }
#wansui-vendor-portal .wvp-weight-add { margin-top: 6px; min-height: 34px !important; padding: 4px 12px !important; font-size: 13px !important; }
#wansui-vendor-portal .wvp-weight-remove { min-height: 32px !important; padding: 2px 10px !important; font-size: 12px !important; }

/* —— gallery / scene generator: tighter —— */
#wansui-vendor-portal .wvp-card-expand .wvp-gallery { gap: 4px; margin-bottom: 4px; }
#wansui-vendor-portal .wvp-scene-gen { gap: 4px; padding-top: 6px; }

/* —— 沖煮教學: one compact row per method, editor inline below —— */
#wansui-vendor-portal .wvp-brew-guide > .wvp-coffee-stub { display: none; }
#wansui-vendor-portal .wvp-brew-teach-opts { margin-top: 6px; }
#wansui-vendor-portal .wvp-brew-teach-opt-list { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
#wansui-vendor-portal .wvp-brew-teach-item {
  border: 1px solid #d5e2da; border-radius: 10px; background: #fff; overflow: hidden;
}
#wansui-vendor-portal .wvp-brew-teach-item.is-on { border-color: #b7d0c0; }
#wansui-vendor-portal .wvp-brew-teach-line {
  display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 2px 4px 2px 10px;
}
#wansui-vendor-portal .wvp-brew-teach-item .wvp-brew-teach-opt {
  flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 6px 0; border: 0; background: transparent; cursor: pointer; font-size: 14px;
}
#wansui-vendor-portal .wvp-brew-teach-item .wvp-brew-teach-opt input[type=checkbox] {
  width: 20px; height: 20px; min-height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--pine);
}
#wansui-vendor-portal .wvp-brew-teach-opt-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pine); }
#wansui-vendor-portal .wvp-bt-state {
  flex: 0 0 auto; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px;
  color: #8a9486; background: #f1f3ef;
}
#wansui-vendor-portal .wvp-brew-teach-item.is-on .wvp-bt-state { color: #0a6a3a; background: #e3f1e8; }
#wansui-vendor-portal .wvp-bt-edit {
  flex: 0 0 auto; min-height: 34px; min-width: 56px; padding: 4px 12px; margin: 0;
  font: inherit; font-size: 13px; font-weight: 700; color: var(--ocean);
  background: #fff; border: 1px solid #c5d9cf; border-radius: 999px; cursor: pointer;
}
#wansui-vendor-portal .wvp-brew-teach-item.is-editing .wvp-bt-edit { background: var(--pine); border-color: var(--pine); color: #fff; }
#wansui-vendor-portal .wvp-brew-teach-item .wvp-brew-panel {
  margin: 0; border: 0; border-top: 1px dashed #d5e2da; border-radius: 0; background: #fafbf8; box-shadow: none;
}
#wansui-vendor-portal .wvp-brew-teach-item .wvp-brew-panel-head { display: none !important; }
#wansui-vendor-portal .wvp-brew-teach-item .wvp-brew-panel[data-brew-off] { display: none !important; }
#wansui-vendor-portal .wvp-brew-teach-item .wvp-brew-panel-body { padding: 8px 10px 10px; }
#wansui-vendor-portal .wvp-brew-panels:empty { display: none; }

/* —— long text fields & hints: shorter —— */
#wansui-vendor-portal .wvp-card-expand textarea:not(.wvp-scene-prompt):not([data-brew-step-body]):not([data-wansui-recipe]) { min-height: 56px; height: 76px; }
#wansui-vendor-portal .wvp-card-expand .wvp-field { gap: 3px; }
#wansui-vendor-portal .wvp-card-expand .wvp-hint-inline { font-size: 11px; }
@media (max-width: 640px) {
  #wansui-vendor-portal .wvp-weight-hint { display: none; }
}
#wansui-vendor-portal .wvp-cf { padding-bottom: 0; }
#wansui-vendor-portal .wvp-cf-head { min-height: 36px; }

/* 0.1.174: summary row carries 店名 (h1) + 看店頁; page starts right under the slim header */
#wansui-vendor-portal .wvp-store-profile.wvp-sp { margin: 10px 0 8px; }
#wansui-vendor-portal .wvp-sp-summary { min-height: 64px; padding: 8px 10px 8px 12px; gap: 10px; }
#wansui-vendor-portal .wvp-sp-thumb { flex-basis: 44px; width: 44px; height: 44px; border-radius: 10px; }
#wansui-vendor-portal h1.wvp-sp-name,
#wansui-vendor-portal h2.wvp-sp-name { margin: 0; padding: 0; font-size: 1.1rem; font-weight: 750; letter-spacing: 0; }
#wansui-vendor-portal .wvp-sp-sub { display: flex; align-items: center; gap: 4px; }
#wansui-vendor-portal .wvp-sp-view {
  display: inline-flex; align-items: center; gap: 2px; padding: 2px 0;
  color: var(--ocean); font-weight: 650; text-decoration: none; white-space: nowrap;
}
#wansui-vendor-portal .wvp-sp-view:hover { text-decoration: underline; }
#wansui-vendor-portal .wvp-sp-dot { color: #b7c0ae; }
#wansui-vendor-portal .wvp-sp-status { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#wansui-vendor-portal .wvp-sp-status.is-ok { color: #0a7a3e; font-weight: 650; }
#wansui-vendor-portal .wvp-sp-status.is-err { color: #b32d2e; font-weight: 650; }
#wansui-vendor-portal button.wvp-sp-cta { cursor: pointer; font-family: inherit; margin: 0; }
#wansui-vendor-portal button.wvp-sp-cta:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
#wansui-vendor-portal .wvp-sp.is-open .wvp-sp-cta { background: var(--pine); border-color: var(--pine); color: #fff; }
#wansui-vendor-portal .wvp-toolbar--desk { margin-top: 0; }
#wansui-vendor-portal .wvp-main-wide { padding-top: 0; }
@media (max-width: 400px) {
  #wansui-vendor-portal .wvp-sp-cta { padding: 0 10px; font-size: 13px; }
  #wansui-vendor-portal .wvp-sp-dot, #wansui-vendor-portal .wvp-sp-status { display: none; }
}

/* —— 0.1.174: compact product row (≈2 lines): thumb | title / meta … 編輯 儲存 —— */
#wansui-vendor-portal .wvp-card-summary.wvp-cs {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  grid-template-areas: "thumb title title" "thumb meta side";
  gap: 2px 10px; align-items: center; padding: 8px 10px;
}
#wansui-vendor-portal .wvp-cs .wvp-sum-thumb { grid-area: thumb; width: 44px; height: 44px; border-radius: 8px; }
#wansui-vendor-portal .wvp-cs .wvp-name {
  grid-area: title; min-width: 0; margin: 0; font-size: 15px; line-height: 1.3; font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#wansui-vendor-portal .wvp-cs .wvp-sum-meta {
  grid-area: meta; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 13px;
}
#wansui-vendor-portal .wvp-cs .wvp-price-sum { font-size: 14px; font-weight: 750; white-space: nowrap; }
#wansui-vendor-portal .wvp-cs .wvp-stock-chip { font-size: 11px; padding: 1px 6px; white-space: nowrap; }
#wansui-vendor-portal .wvp-cs .wvp-badge { display: none !important; }
#wansui-vendor-portal .wvp-cs .wvp-row-status { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
#wansui-vendor-portal .wvp-cs .wvp-row-status:empty { display: none; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side {
  grid-area: side; grid-column: auto; display: flex; flex-wrap: nowrap; gap: 6px; justify-content: flex-end; align-self: end;
}
#wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn { min-height: 36px; padding: 4px 12px; font-size: 14px; width: auto; }
/* 免運 / 主推 toggle chips — in the expanded edit form (0.1.174) */
#wansui-vendor-portal .wvp-pill {
  position: relative; display: inline-flex; align-items: center; gap: 3px;
  min-height: 28px; padding: 2px 9px; margin: 0; border-radius: 999px;
  border: 1px solid #c5d9cf; background: #fff; color: #4a6158;
  font-size: 12px; font-weight: 650; white-space: nowrap; cursor: pointer;
}
#wansui-vendor-portal .wvp-pill > input {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px; min-height: 0; margin: 0; opacity: 0;
}
#wansui-vendor-portal.wvp-no-has .wvp-pill > input { position: static; width: 14px; height: 14px; opacity: 1; }
#wansui-vendor-portal .wvp-pill:has(> input:checked) { background: #e3f1e8; border-color: #0a7a3e; color: #0a6a3a; }
#wansui-vendor-portal .wvp-pill:has(> input:checked)::before { content: "✓"; font-size: 11px; font-weight: 800; }
#wansui-vendor-portal .wvp-pill:has(> input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
#wansui-vendor-portal .wvp-bean-card > .wvp-expand-bar { display: none !important; }
#wansui-vendor-portal .wvp-cards { gap: 8px; }

/* —— iOS: form controls ≥16px so focusing never auto-zooms (zoom made the page look wider than the screen) —— */
@media (hover: none) and (pointer: coarse) {
  #wansui-vendor-portal input:not([type=checkbox]):not([type=radio]):not([type=file]),
  #wansui-vendor-portal select,
  #wansui-vendor-portal textarea { font-size: 16px !important; }
}
/* safety net only — real causes fixed above (no fixed widths wider than the viewport) */
#wansui-vendor-portal.wvp { max-width: 100%; overflow-x: clip; }
@media (min-width: 1101px) { #wansui-vendor-portal.wvp { max-width: 1100px; } }

/* —— 0.1.174: unified product image grid (3 fixed slots + extras + 「＋」 tile), 4 per row —— */
#wansui-vendor-portal .wvp-gal { gap: 6px; margin: 0 0 6px; }
#wansui-vendor-portal .wvp-gal .wvp-gallery-title { margin: 0; font-size: 13px; font-weight: 700; color: var(--pine); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#wansui-vendor-portal .wvp-gal .wvp-gallery-title .wvp-coffee-hint { display: inline; }
#wansui-vendor-portal .wvp-gal-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; justify-items: stretch;
}
@media (min-width: 720px) { #wansui-vendor-portal .wvp-gal-grid { grid-template-columns: repeat(auto-fill, 88px); } }
#wansui-vendor-portal .wvp-gal-tile {
  position: relative; display: block; width: auto !important; flex: none !important; margin: 0;
  aspect-ratio: 1 / 1; padding: 0 !important; overflow: hidden;
  border-radius: 12px; background: #f3f6f2; border: 1px solid #d5e2da; box-shadow: none;
}
#wansui-vendor-portal .wvp-gal-tile.is-busy { opacity: 0.55; pointer-events: none; }
#wansui-vendor-portal .wvp-gal-tile.is-busy::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px;
  border-radius: 50%; border: 3px solid #fff; border-top-color: var(--pine); animation: wvp-spin .8s linear infinite;
}
@keyframes wvp-spin { to { transform: rotate(360deg); } }
#wansui-vendor-portal .wvp-gal-pick { position: absolute; inset: 0; display: block; margin: 0; cursor: pointer; }
#wansui-vendor-portal .wvp-gal-tile img,
#wansui-vendor-portal .wvp-gal-tile .wvp-gallery-hero-img {
  position: absolute; inset: 0; width: 100% !important; height: 100% !important;
  max-width: none !important; max-height: none !important; min-height: 0 !important;
  object-fit: cover; border: 0; border-radius: 0; margin: 0; aspect-ratio: auto !important;
}
#wansui-vendor-portal .wvp-gal-tile .wvp-gallery-hero-img--empty {
  display: grid !important; place-items: center; background: transparent;
}
#wansui-vendor-portal .wvp-gal-tile:not(.is-filled) { border: 1.5px dashed #b7c9bd; background: #fafcf9; }
#wansui-vendor-portal .wvp-gal-plus { font-size: 22px; font-weight: 400; line-height: 1; color: #6b8a7c; }
#wansui-vendor-portal .wvp-gal-tile .wvp-gallery-hero-label {
  position: absolute; left: 4px; bottom: 4px; max-width: calc(100% - 8px);
  padding: 1px 6px; border-radius: 999px; font-size: 10.5px; font-weight: 700; line-height: 1.5;
  background: rgba(255, 255, 255, 0.92); color: var(--pine);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left;
}
#wansui-vendor-portal .wvp-gal-tile:not(.is-filled) .wvp-gallery-hero-label { background: transparent; color: #4a6158; left: 0; right: 0; max-width: none; text-align: center; }
#wansui-vendor-portal .wvp-gal-tile:not(.is-filled) .wvp-gal-plus { transform: translateY(-6px); }
#wansui-vendor-portal .wvp-gal-file { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
#wansui-vendor-portal .wvp-gal-x {
  position: absolute; top: 4px; right: 4px; z-index: 2;
  width: 24px; height: 24px; min-height: 0; padding: 0; margin: 0;
  display: grid; place-items: center; border: 0; border-radius: 50%;
  background: rgba(20, 30, 26, 0.72); color: #fff; font-size: 16px; line-height: 1; cursor: pointer;
}
#wansui-vendor-portal .wvp-gal-x::before { content: ""; position: absolute; inset: -8px; } /* bigger tap target */
#wansui-vendor-portal .wvp-gal-add {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border: 1.5px dashed #9fb8aa; background: #fff; cursor: pointer; color: #4a6158;
}
#wansui-vendor-portal .wvp-gal-add .wvp-gal-plus { font-size: 26px; transform: none; }
#wansui-vendor-portal .wvp-gal-add small { font-size: 11px; font-weight: 650; }
#wansui-vendor-portal .wvp-gal-status { margin: 0; font-size: 12px; }
#wansui-vendor-portal .wvp-scene-off { margin: 2px 0 0; font-size: 12px; color: #6b7c72; }
#wansui-vendor-portal .wvp-gal .wvp-gal-status.wvp-slot-status { display: block; position: static; margin: 0; padding: 0; background: none; font-size: 12px; max-width: none; text-align: left; }
#wansui-vendor-portal .wvp-gal .wvp-gal-status[hidden] { display: none !important; }
#wansui-vendor-portal .wvp-gal .wansui-pdp-media-fallback { display: none !important; }
#wansui-vendor-portal .wvp-card-expand .wvp-scene-gen {
  flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-top: 2px;
}
#wansui-vendor-portal .wvp-card-expand .wvp-scene-hint { flex: 1 0 100%; }
#wansui-vendor-portal .wvp-card-expand .wvp-scene-prompt { flex: 1 1 160px; width: auto; min-height: 34px; height: 34px; }

/* —— 0.1.174: readable inputs (≥16px everywhere on the desk → also no iOS focus-zoom) —— */
#wansui-vendor-portal input:not([type=checkbox]):not([type=radio]):not([type=file]),
#wansui-vendor-portal select,
#wansui-vendor-portal textarea { font-size: 16px !important; }
#wansui-vendor-portal .wvp-weight-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
#wansui-vendor-portal .wvp-weight-label-wrap { flex: 0 0 auto; }
#wansui-vendor-portal .wvp-weight-select { width: 128px !important; max-width: 128px !important; min-height: 40px; padding: 4px 6px; }
#wansui-vendor-portal .wvp-weight-custom-text { flex: 1 0 100%; min-height: 40px; }
#wansui-vendor-portal .wvp-weight-fields > .wvp-weight-field:first-child { flex: 1 0 55%; } /* 價格 fills row 1 → 優惠／庫存 wrap to row 2 */
#wansui-vendor-portal .wvp-weight-price-wrap { gap: 4px; font-size: 13px; }
#wansui-vendor-portal .wvp-weight-price,
#wansui-vendor-portal .wvp-weight-sale {
  width: 88px !important; min-height: 40px; padding: 4px 8px;
  font-size: 17px !important; font-weight: 600; font-variant-numeric: tabular-nums;
}
#wansui-vendor-portal .wvp-weight-stock {
  width: 64px !important; min-height: 40px; padding: 4px 8px;
  font-size: 17px !important; font-weight: 600; font-variant-numeric: tabular-nums;
}
#wansui-vendor-portal .wvp-weight-show-sale { min-height: 36px; padding: 2px 10px; font-size: 13px; }
#wansui-vendor-portal .wvp-weight-field-k { font-size: 13px; }
#wansui-vendor-portal .wvp-coffee-custom,
#wansui-vendor-portal .wvp-coffee-chip--custom input[type=text] { min-height: 30px; }

/* —— 0.1.174: collapsed card = 2 rows (thumb | title / NT$ · 有貨 … 編輯 儲存); 免運／主推 moved into the edit form —— */
#wansui-vendor-portal .wvp-card-summary.wvp-cs { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 2px 10px; padding: 8px 10px; }
#wansui-vendor-portal .wvp-cs .wvp-sum-thumb { width: 48px; height: 48px; }
#wansui-vendor-portal .wvp-cs .wvp-name {
  font-size: 15px; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
#wansui-vendor-portal .wvp-cs .wvp-sum-meta {
  flex-wrap: wrap;
  overflow: visible;
  align-items: center;
  row-gap: 4px;
}
#wansui-vendor-portal .wvp-cs .wvp-sum-meta > .wvp-st-badge,
#wansui-vendor-portal .wvp-cs .wvp-sum-meta > .wvp-pno,
#wansui-vendor-portal .wvp-cs .wvp-sum-meta > .wvp-price-sum,
#wansui-vendor-portal .wvp-cs .wvp-sum-meta > .wvp-stock-chip,
#wansui-vendor-portal .wvp-cs .wvp-sum-meta > .wgb-stock-badge {
  flex: 0 0 auto;
  white-space: nowrap;
  writing-mode: horizontal-tb;
}
#wansui-vendor-portal .wvp-cs .wvp-flv-badges {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  min-width: min(100%, 8em);
  max-width: 100%;
}
#wansui-vendor-portal .wvp-cs .wvp-flv-badge {
  flex: 0 0 auto;
  white-space: nowrap;
  max-width: none;
  writing-mode: horizontal-tb;
}
#wansui-vendor-portal .wvp-cs .wgb-dropship-tip {
  flex: 0 0 auto;
  min-width: 0;
  max-width: 100%;
  position: relative;
}
#wansui-vendor-portal .wvp-cs .wgb-dropship-tip[open] {
  flex: 0 0 auto;
}
#wansui-vendor-portal .wvp-cs .wgb-dropship-tip > summary {
  list-style: none;
  cursor: pointer;
  white-space: nowrap;
}
#wansui-vendor-portal .wvp-cs .wgb-dropship-q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15em;
  height: 1.15em;
  margin-left: 4px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}
#wansui-vendor-portal .wvp-cs .wgb-dropship-tip > summary::-webkit-details-marker { display: none; }
#wansui-vendor-portal .wvp-cs .wgb-stock-badge {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 1px 8px;
  border-radius: 999px;
  background: #fff4e4;
  color: #6a4b16;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.4;
  white-space: nowrap;
}
#wansui-vendor-portal .wvp-cs .wgb-dropship-note {
  position: absolute;
  z-index: 8;
  top: calc(100% + 4px);
  left: 0;
  margin: 0;
  padding: 8px 10px;
  width: min(22em, 70vw);
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
  writing-mode: horizontal-tb;
  line-height: 1.45;
  font-size: 12px;
  color: #4d645b;
  background: #fff;
  border: 1px solid #e4d7c3;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(28, 25, 21, .12);
}
#wansui-vendor-portal .wvp-cs .wvp-sum-side { align-self: center; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn { min-height: 32px; padding: 3px 12px; font-size: 14px; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn-edit { background: #fff; color: var(--pine); border: 1px solid #b9cfc3; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn-delete { background: transparent; color: #6f675f; border: 0; min-height: 28px; padding: 0 6px; font-size: 12px; font-weight: 650; text-decoration: underline; text-underline-offset: 2px; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn-delete:hover { background: transparent; color: #3d3424; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn-edit[aria-expanded="true"] { background: #e3f1e8; border-color: #0a7a3e; }
#wansui-vendor-portal .wvp-toggle-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 2px 0 10px; }
#wansui-vendor-portal .wvp-toggle-chips .wvp-pill { min-height: 32px; padding: 4px 12px; font-size: 14px; }
#wansui-vendor-portal .wvp-toggle-chips .wvp-pill:has(> input:checked) { background: var(--pine); border-color: var(--pine); color: #fff; }
#wansui-vendor-portal.wvp-no-has .wvp-toggle-chips .wvp-pill.is-on { background: var(--pine); border-color: var(--pine); color: #fff; }
#wansui-vendor-portal .wvp-field-status { margin-bottom: 6px; }

/* —— 0.1.174: short save feedback — one-line card status + fading toast —— */
#wansui-vendor-portal .wvp-card-summary.wvp-cs { grid-template-areas: "thumb title title" "thumb meta side" "thumb stat stat"; }
#wansui-vendor-portal .wvp-cs > .wvp-row-status {
  grid-area: stat; min-width: 0; max-width: 100%; margin: 2px 0 0; font-size: 12px; line-height: 1.35;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#wansui-vendor-portal .wvp-cs > .wvp-row-status:empty { display: none; }
#wansui-vendor-portal .wvp-cs > .wvp-row-status.is-err { color: #b42318; font-weight: 650; }
#wansui-vendor-portal .wvp-cs > .wvp-row-status.is-busy { color: #5b6f66; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side [data-desk-save] { min-width: 64px; white-space: nowrap; transition: background-color .2s, color .2s; }
#wansui-vendor-portal .wvp-cs .wvp-sum-side [data-desk-save].is-saved { background: #e3f1e8; border-color: #0a7a3e; color: #0a6a3a; }
#wansui-vendor-portal .wvp-toolbar--desk .wvp-save-all-status { display: none; }
#wansui-vendor-portal .wvp-toolbar--desk [data-desk-save-all] { min-width: 88px; white-space: nowrap; }
.wvp-toast {
  position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 100000;
  max-width: calc(100vw - 32px); padding: 9px 16px; border-radius: 999px;
  background: rgba(22, 63, 53, 0.94); color: #fff; font-size: 14px; font-weight: 650; line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; box-shadow: 0 6px 20px rgba(0,0,0,.18);
  opacity: 0; transform: translate(-50%, 12px); pointer-events: none; transition: opacity .25s, transform .25s;
}
.wvp-toast.is-show { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.wvp-toast.is-err { background: rgba(180, 35, 24, 0.95); }

/* 0.1.176 — Style A flavor icons: ~1.3x (18→24), transparent, icon+label tight (gap 3px) */
#wansui-vendor-portal .wvp-chip-icon.wvp-chip-icon--flavor { width: 24px !important; height: 24px !important; margin: -3px 0; border-radius: 50%; background: transparent; }
#wansui-vendor-portal .wvp-coffee-chip--with-icon:has(.wvp-chip-icon--flavor) { gap: 3px; }
#wansui-vendor-portal .wvp-coffee-chip:has(> input:checked) .wvp-chip-icon--flavor,
#wansui-vendor-portal.wvp-no-has .wvp-coffee-chip.is-on .wvp-chip-icon--flavor { background: #fffdf9; }

/* 0.1.182 trial */
.wvp-trial-banner .wvp-trial-contact{margin-left:.5rem;font-weight:700;text-decoration:underline}
.wvp-trial-banner .wvp-trial-until{opacity:.85;margin-left:.35rem;font-size:.92em}


/* 0.1.182 Shopee one-click move */
.wvp-shopee-panel {
  background: #fff;
  border: 1px solid #e2ddd3;
  border-radius: 12px;
  padding: 16px 18px 20px;
  margin: 12px 0 18px;
}
.wvp-shopee-panel .wvp-subtitle { margin: 0 0 8px; font-size: 1.15rem; color: #1a5c6e; }
.wvp-shopee-panel .wvp-hint-block { margin: 0 0 14px; line-height: 1.55; color: #444; }
.wvp-shopee-panel .wvp-field { display: block; margin: 0 0 12px; }
.wvp-shopee-panel .wvp-field > span { display: block; font-weight: 600; margin-bottom: 4px; }
.wvp-shopee-panel .wvp-field-tip { display: block; margin-top: 4px; font-size: 12px; color: #777; font-style: normal; }
.wvp-shopee-panel input[type=file],
.wvp-shopee-panel input[type=url],
.wvp-shopee-panel select { width: 100%; max-width: 520px; min-height: 40px; }
.wvp-shopee-rehost-note { opacity: .9; }


/* === 0.1.302c: 「我要上架」在分頁列裡。窄螢幕不浮動。 === */
.wvp-vendor-fab,
a.wvp-vendor-fab{
  position:static;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:64px;padding:12px 16px;
  border-radius:16px;border:0;
  background:#c77731;color:#fff!important;
  font-size:15px;font-weight:850;letter-spacing:.02em;line-height:1.35;
  white-space:normal;word-break:keep-all;
  text-decoration:none!important;cursor:pointer;
}
.wvp-vendor-fab:hover,.wvp-vendor-fab:focus-visible{
  background:#a35e22;color:#fff!important;
}
#wansui-vendor-portal .wvp-toolbar--desk [data-open-add]{display:none!important}
/* 0.1.302d：分頁卡是白底，上架鈕要蓋過它，字才看得清楚。 */
#wansui-vendor-portal a.wvp-vendor-fab,
#wansui-vendor-portal .wvp-vendor-fab{
  background:#c77731 !important;
  color:#fff !important;
  border-color:#c77731;
}
#wansui-vendor-portal a.wvp-vendor-fab:hover,
#wansui-vendor-portal a.wvp-vendor-fab:focus-visible,
#wansui-vendor-portal .wvp-vendor-fab:hover,
#wansui-vendor-portal .wvp-vendor-fab:focus-visible{
  background:#a35e22 !important;
  color:#fff !important;
}


/* 0.1.182 ultra-minimal desk login */
.wvp-main--login-minimal {
  min-height: 58vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.75rem;
  padding: 2rem 5%;
}
.wvp-login-minimal {
  width: 100%;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
}
.wvp-btn-google {
  width: 100%;
  min-height: 52px;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 999px;
  text-decoration: none;
  justify-content: center;
}
.wvp-login-more {
  width: 100%;
  font-size: 13px;
  color: #5f6f63;
  text-align: left;
}
.wvp-login-more summary {
  cursor: pointer;
  list-style: none;
  text-align: center;
  font-size: 12px;
  color: #6a7a6e;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.wvp-login-more summary::-webkit-details-marker { display: none; }
.wvp-login-more-body {
  margin-top: 0.75rem;
  padding: 0.85rem 1rem;
  background: #fff;
  border: 1px solid #dcded5;
  border-radius: 12px;
  line-height: 1.55;
  color: #2a453a;
}
.wvp-login-more-body p { margin: 0 0 0.55rem; }
.wvp-login-more-body p:last-child { margin-bottom: 0; }

/* Shopee rehost badges */
.wvp-shopee-status-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 8px 0 12px;
  font-size: 13px;
}
.wvp-shopee-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 650;
  font-size: 12px;
}
.wvp-shopee-badge--pending {
  background: #fff6e5;
  color: #8a5a00;
  border: 1px solid #f0d59a;
}
.wvp-shopee-badge--failed {
  background: #fdecec;
  color: #8a1f1f;
  border: 1px solid #efb4b4;
}
.wvp-shopee-badge--ok {
  background: #e8f5ef;
  color: #1a5c3a;
  border: 1px solid #b7dfc6;
}
.wvp-card-rehost {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 650;
  vertical-align: middle;
}
.wvp-card-rehost--pending { background: #fff6e5; color: #8a5a00; }
.wvp-card-rehost--failed { background: #fdecec; color: #8a1f1f; }

.wvp-add-panel .wvp-subtitle { font-size: 1.25rem; }
@media (max-width: 640px) {
  .wvp-add-panel .wvp-actions { flex-direction: column; }
  .wvp-add-panel .wvp-actions .wvp-btn { width: 100%; }
}


/* 0.1.239/0.1.242 vendor desk 咖啡資訊 — quiet jump + collapsed accordion */
#wansui-vendor-portal .wvp-desk-jump{display:none}
#wansui-vendor-portal .wvp-desk-jump-quiet{margin:0 0 10px;font-size:12.5px;font-weight:650;color:#6a7a6e}
#wansui-vendor-portal .wvp-desk-jump-quiet a{color:#163f35;text-decoration:none;border-bottom:1px dotted #9bb0a2}
#wansui-vendor-portal .wvp-desk-jump-quiet a:hover{border-bottom-style:solid}
#wansui-vendor-portal .wvp-cn-acc{margin:14px 0 8px;padding:0;border:1px solid #d7e5db;border-radius:12px;background:#fbf9f5;scroll-margin-top:72px}
#wansui-vendor-portal .wvp-cn-acc-sum{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:8px 14px;font-size:14px;font-weight:800;color:#163f35;user-select:none}
#wansui-vendor-portal .wvp-cn-acc-sum::-webkit-details-marker{display:none}
#wansui-vendor-portal .wvp-cn-acc-sum::after{content:"";width:8px;height:8px;border-right:2px solid #163f35;border-bottom:2px solid #163f35;transform:rotate(45deg);transition:transform .15s ease;flex:0 0 auto;margin-top:-4px}
#wansui-vendor-portal .wvp-cn-acc[open] > .wvp-cn-acc-sum{border-bottom:1px solid #d7e5db}
#wansui-vendor-portal .wvp-cn-acc[open] > .wvp-cn-acc-sum::after{transform:rotate(-135deg);margin-top:2px}
#wansui-vendor-portal .wvp-cn-acc-body{padding:10px 12px 12px}
#wansui-vendor-portal .wvp-cn{scroll-margin-top:72px}
#wansui-vendor-portal .wvp-cn-title{color:#163f35;margin:12px 0 8px;font-size:1.05rem;font-weight:850}
#wansui-vendor-portal .wvp-cn-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;position:sticky;top:56px;z-index:5;padding:8px 0;background:linear-gradient(#fbf9f5 70%,rgba(251,249,245,0))}

/* 0.1.241 vendor desk 咖啡資訊 prefs */
#wansui-vendor-portal .wvp-cn-subh,
.wvp-cn .wvp-cn-subh{margin:10px 0 8px;font-size:15px;font-weight:800;color:#163f35}
#wansui-vendor-portal .wvp-cn-like,
.wvp-cn-like{margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #d7e5db}
#wansui-vendor-portal .wvp-cn-acc .wvp-cn-like{margin-top:0}
#wansui-vendor-portal .ws-cn-pref-chips,
.wvp-cn .ws-cn-pref-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
#wansui-vendor-portal .ws-cn-pref-label,
.wvp-cn .ws-cn-pref-label{margin:0 0 6px;font-size:12.5px;font-weight:800;color:#163f35}
#wansui-vendor-portal .ws-cn-pref-chip,
.wvp-cn .ws-cn-pref-chip{
  min-height:32px;padding:0 12px;border-radius:999px;border:1.5px solid #c9d9cf;
  background:#fff;color:#163f35;font-size:12.5px;font-weight:700;cursor:pointer
}
#wansui-vendor-portal .ws-cn-pref-chip.is-on,
.wvp-cn .ws-cn-pref-chip.is-on{background:#163f35;border-color:#163f35;color:#fff}
#wansui-vendor-portal .wvp-cn-like-grid,
.wvp-cn-like-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:8px 0 0}
@media(min-width:720px){
  #wansui-vendor-portal .wvp-cn-like-grid,
  .wvp-cn-like-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
#wansui-vendor-portal .wvp-cn-like .ws-cn-feed-card,
.wvp-cn-like .ws-cn-feed-card{
  display:flex;flex-direction:column;margin:0;padding:0;border:1px solid #e6ddd0;
  border-radius:12px;background:#fbf9f5;overflow:hidden;cursor:pointer;text-align:left
}
#wansui-vendor-portal .wvp-cn-like .ws-cn-feed-thumb,
.wvp-cn-like .ws-cn-feed-thumb{display:none!important}
#wansui-vendor-portal .wvp-cn-like .ws-cn-feed-body,
.wvp-cn-like .ws-cn-feed-body{padding:10px 12px}
#wansui-vendor-portal .wvp-cn-like .ws-cn-feed-title,
.wvp-cn-like .ws-cn-feed-title{margin:0;font-size:13px;font-weight:800;color:#163f35;line-height:1.35}
#wansui-vendor-portal .wvp-cn-like .ws-cn-feed-chips,
.wvp-cn-like .ws-cn-feed-chips{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 4px}
#wansui-vendor-portal .wvp-cn-like .ws-cn-feed-chip,
.wvp-cn-like .ws-cn-feed-chip{padding:1px 7px;border-radius:999px;background:#e8f3ec;color:#163f35;font-size:10.5px;font-weight:800}

/* 0.1.242 vendor desk coffee accordion */

/* 3F Cafe square logo v6 */
.wvp-logo{display:inline-flex;align-items:center;gap:10px}
.wvp-logo::before{content:"";display:block;width:44px;height:44px;flex:0 0 auto;background:url("../assets/3f-square-v6-192.png") center/contain no-repeat;border-radius:8px}
@media(max-width:760px){.wvp-logo::before{width:36px;height:36px}}

/* 0.1.178 compact weight editor + retired install chrome */
#wansui-vendor-portal .wvp-install-btn{display:none!important}
#wansui-vendor-portal .wvp-weight-row{display:grid;grid-template-columns:minmax(112px,1.2fr) repeat(3,minmax(62px,1fr));grid-template-rows:auto;align-items:center;gap:5px;padding:5px}
#wansui-vendor-portal .wvp-weight-row>.wvp-weight-label-wrap{grid-column:1;grid-row:1}
#wansui-vendor-portal .wvp-weight-fields{display:contents!important}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(1){grid-column:2;grid-row:1}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(2){grid-column:3;grid-row:1}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(3){grid-column:4;grid-row:1}
#wansui-vendor-portal .wvp-weight-price-wrap{position:relative;display:block;width:100%}
#wansui-vendor-portal .wvp-price-prefix{position:absolute;left:7px;top:50%;transform:translateY(-50%);font-size:11px;color:#61736a;pointer-events:none;z-index:1}
#wansui-vendor-portal .wvp-weight-price-wrap input{width:100%;box-sizing:border-box;padding-left:38px!important}
@media(max-width:720px){
#wansui-vendor-portal .wvp-weight-row{grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);grid-template-rows:auto auto;gap:4px 6px;padding:5px}
#wansui-vendor-portal .wvp-weight-row>.wvp-weight-label-wrap{grid-column:1;grid-row:1}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(1){grid-column:2;grid-row:1}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(2){grid-column:1;grid-row:2}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(3){grid-column:2;grid-row:2}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field{display:flex;flex-direction:column;align-items:stretch;gap:1px;font-size:10px}
#wansui-vendor-portal .wvp-weight-field-k{display:none}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(1)::before{content:"價格"}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(2)::before{content:"優惠價"}
#wansui-vendor-portal .wvp-weight-fields>.wvp-weight-field:nth-child(3)::before{content:"庫存"}
#wansui-vendor-portal .wvp-weight-select{width:100%!important;max-width:none!important;min-height:34px}
#wansui-vendor-portal .wvp-weight-price,#wansui-vendor-portal .wvp-weight-sale,#wansui-vendor-portal .wvp-weight-stock{width:100%!important;min-height:34px}
}

/* 0.1.179 compact flavor state used by vendor-desk */
#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="false"] .wvp-flavor-toggle{display:flex!important;align-items:center;justify-content:space-between;width:100%;min-height:32px;padding:5px 8px;border:1px solid #c5d9cf;border-radius:8px;background:#fff;color:#163f35;font-size:13px;font-weight:700;text-align:left}
#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="false"] .wvp-coffee-label{display:none!important}
#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="false"] [data-wansui-flavor-options],#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="false"] .wvp-flavor-flag{display:none!important}
#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="true"] .wvp-flavor-toggle{display:none!important}
@media(max-width:720px){#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="true"] [data-wansui-flavor-options]{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="true"] .wvp-coffee-chip{min-width:0;width:100%;padding:3px 4px;gap:3px;font-size:12px;justify-content:center;white-space:nowrap;overflow:hidden}}

/* 0.1.250 — one weight per row. Older nth-child grid-column rules are overridden
   with !important so 售價 and 優惠價 never share a cell. NT$ stays in the label. */
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-rows{display:flex;flex-direction:column;gap:8px;margin-top:4px}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-dyn-row{
  display:grid!important;
  grid-template-columns:minmax(132px,1.05fr) minmax(118px,1fr) minmax(176px,1.35fr) minmax(112px,.9fr) auto!important;
  grid-template-areas:"weight price sale stock remove"!important;
  align-items:end;gap:8px 10px;padding:8px 10px
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-label-wrap{
  grid-area:weight!important;display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0;position:relative
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields{display:contents!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(1){grid-area:price!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(2){grid-area:sale!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3){grid-area:stock!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-field{
  display:flex!important;flex-direction:column;align-items:stretch;justify-content:flex-end;
  gap:3px;min-width:0;max-width:100%;position:relative;font-weight:700;background:transparent
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-field-k{
  display:block!important;position:static!important;min-width:0;margin:0;
  font-size:12px!important;font-weight:750;line-height:1.25!important;color:#163f35;white-space:nowrap
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field::before{content:none!important;display:none!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(1) .wvp-weight-field-k,
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(2) .wvp-weight-field-k{
  font-size:0!important;line-height:normal!important;color:transparent!important
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(1) .wvp-weight-field-k::after,
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(2) .wvp-weight-field-k::after{
  display:block!important;position:static!important;font-size:12px!important;line-height:1.25!important;font-weight:750;white-space:nowrap
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(1) .wvp-weight-field-k::after{content:"售價 NT$";color:#163f35}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(2) .wvp-weight-field-k::after{content:"優惠價 NT$（可空）";color:#8a5a12}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3) .wvp-weight-field-k{color:#1a5c6e}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-price-prefix{display:none!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-price-wrap{
  position:static!important;display:block!important;width:100%!important;max-width:100%
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-select{
  width:100%!important;max-width:none!important;min-height:36px;padding:4px 6px;font-size:14px!important;
  border:1px solid #c5d9cf;border-radius:8px;background:#fff
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-custom-text{
  grid-column:1 / -1!important;width:100%!important;max-width:none!important;min-height:34px;margin:0
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-custom-text[hidden]{display:none!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-price,
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-sale,
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-stock,
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-price-wrap input{
  display:block;width:100%!important;max-width:100%!important;min-width:0;min-height:36px;padding:4px 10px!important;
  border-radius:8px;font-size:16px!important;font-weight:650;font-variant-numeric:tabular-nums;
  -moz-appearance:textfield;appearance:textfield;box-sizing:border-box;position:static!important
}
#wansui-vendor-portal .wvp-coffee-field--weight input[type=number]::-webkit-outer-spin-button,
#wansui-vendor-portal .wvp-coffee-field--weight input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-price{background:#fff;border:1px solid #7da892!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-sale{background:#fffaf2;border:1px dashed #c4a35a!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3){
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"k k" "val unit"!important;column-gap:4px;row-gap:3px
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3) .wvp-weight-field-k{grid-area:k!important}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3) .wvp-weight-stock{
  grid-area:val!important;background:#f4f8fb;border:1px solid #6f95ab!important
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3)::after{
  content:"件";grid-area:unit;align-self:center;font-size:12px;font-weight:750;color:#1a5c6e
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-remove{
  grid-area:remove!important;align-self:end;width:auto!important;min-height:32px!important;padding:2px 10px!important;
  font-size:12px!important;font-weight:700;border-width:1px;border-radius:8px;color:#a33
}
#wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-add{
  width:auto!important;min-height:32px!important;margin-top:6px;padding:4px 12px!important;
  font-size:13px!important;font-weight:700;border:1px solid #c5d9cf;border-radius:8px;background:#fff;color:#163f35
}
@media(max-width:760px){
  #wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-dyn-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"weight remove" "price price" "sale sale" "stock stock"!important;
    gap:8px;padding:8px
  }
  #wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(1),
  #wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(2),
  #wansui-vendor-portal .wvp-coffee-field--weight .wvp-weight-fields>.wvp-weight-field:nth-child(3){
    width:100%;max-width:100%
  }
}

/* 0.1.280 匯出／匯入 */
#wansui-vendor-portal .wvp-toolbar--desk {
  flex-wrap: wrap;
  gap: 8px;
}
#wansui-vendor-portal .wvp-desk-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}
#wansui-vendor-portal .wvp-desk-tools .wvp-btn {
  min-height: 40px;
  white-space: nowrap;
}
#wansui-vendor-portal .wpx-panel {
  margin-top: 0;
}
#wansui-vendor-portal .wpx-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}
#wansui-vendor-portal .wpx-choice {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 76px;
  margin: 0;
  padding: 12px 14px;
  border: 1.5px solid #e2ddd3;
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
}
#wansui-vendor-portal .wpx-choice input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
#wansui-vendor-portal .wpx-choice.is-on,
#wansui-vendor-portal .wpx-choice:has(input:checked) {
  border-color: #163f35;
  background: #f3f8f4;
  box-shadow: inset 0 0 0 1px #163f35;
}
#wansui-vendor-portal .wpx-choice:focus-within {
  outline: 3px solid #c77731;
  outline-offset: 2px;
}
#wansui-vendor-portal .wpx-choice-title {
  font-size: 16px;
  font-weight: 800;
  color: #163f35;
  line-height: 1.3;
}
#wansui-vendor-portal .wpx-choice-sub {
  font-size: 13px;
  line-height: 1.4;
  color: #5f6f63;
}
#wansui-vendor-portal .wpx-guide {
  margin: 4px 0 14px;
  padding: 14px;
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(22, 63, 53, 0.05), rgba(22, 63, 53, 0) 42px),
    #f7f4ee;
}
#wansui-vendor-portal .wpx-guide-title {
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 1.3;
  font-weight: 800;
  color: #163f35;
}
#wansui-vendor-portal .wpx-steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
}
#wansui-vendor-portal .wpx-step {
  min-width: 0;
  margin: 0;
  padding: 14px 12px 16px;
  background: #fff;
  border: 1px solid #e6e1d6;
  border-radius: 16px;
  box-shadow: 0 8px 18px rgba(22, 63, 53, 0.04);
}
#wansui-vendor-portal .wpx-step-no {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin: 0 0 10px;
  border-radius: 50%;
  background: #163f35;
  color: #f6f1e6;
  font-size: 18px;
  font-weight: 800;
}
#wansui-vendor-portal .wpx-step h4 {
  margin: 0 0 6px;
  font-size: 15px;
  line-height: 1.35;
  color: #163f35;
}
#wansui-vendor-portal .wpx-step p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #3d524a;
}
#wansui-vendor-portal .wpx-price-note {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #5f6f63;
}
#wansui-vendor-portal .wpx-copy {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e2ddd3;
}
#wansui-vendor-portal .wpx-copy h3 {
  margin: 0 0 6px;
  font-size: 16px;
  color: #163f35;
}
#wansui-vendor-portal .wpx-copy p {
  margin: 0 0 10px;
  line-height: 1.5;
}
#wansui-vendor-portal .wpx-copy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
#wansui-vendor-portal .wpx-panel .wvp-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
#wansui-vendor-portal .wpx-result {
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
}
#wansui-vendor-portal .wpx-result strong {
  display: block;
  margin-bottom: 6px;
}
#wansui-vendor-portal .wpx-result ul {
  margin: 0;
  padding-left: 1.2em;
}
#wansui-vendor-portal .wpx-result li {
  margin: 4px 0;
  line-height: 1.45;
}
#wansui-vendor-portal .wpx-result--ok {
  background: #e8f5ef;
  border: 1px solid #b7dfc6;
  color: #1a5c3a;
}
#wansui-vendor-portal .wpx-result--skip {
  background: #fff6e8;
  border: 1px solid #f0d59a;
  color: #6b4a12;
}
@media (max-width: 900px) {
  #wansui-vendor-portal .wpx-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  #wansui-vendor-portal .wpx-choices,
  #wansui-vendor-portal .wpx-copy-grid {
    grid-template-columns: 1fr;
  }
  #wansui-vendor-portal .wpx-steps {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  #wansui-vendor-portal .wpx-step {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    column-gap: 10px;
    align-items: center;
    padding: 11px 12px;
  }
  #wansui-vendor-portal .wpx-step-no {
    margin: 0;
  }
  #wansui-vendor-portal .wpx-panel .wvp-actions .wvp-btn {
    width: 100%;
    min-height: 48px;
  }
}
@media (max-width: 520px) {
  #wansui-vendor-portal .wvp-desk-tools {
    flex: 1 1 100%;
  }
  #wansui-vendor-portal .wvp-desk-tools .wvp-btn,
  #wansui-vendor-portal .wvp-toolbar--desk [data-desk-save-all] {
    flex: 1 1 100%;
    width: 100%;
    min-height: 48px;
    margin-left: 0;
    font-size: 16px;
  }
}

/* 0.1.285 flavor groups stay green capsule chips. */
.wvp-flavor-groups{display:flex;flex-direction:column;gap:10px}
.wvp-flavor-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border-radius:16px;background:#f7f4ee}
.wvp-flavor-subs{display:flex;flex-wrap:wrap;gap:6px}
.wvp-coffee-chip--cat{background:#f3f7f4}
.wvp-plan{margin:16px 0;padding:16px;border:1px solid #e3e6dc;border-radius:18px;background:#fffdf8}
.wvp-plan-head h2{margin:0 0 6px;color:#163f35}
.wvp-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wvp-plan-card{padding:14px;border:1px solid #d7e0d8;border-radius:16px;background:#fff}
.wvp-plan-card.is-on{background:#e7f0ea;border-color:#163f35}
.wvp-plan-price{font-size:1.15rem;font-weight:750;color:#163f35}
.wvp-plan-pick{margin-top:8px;border:0;border-radius:999px;background:#163f35;color:#fff;padding:8px 14px;font-weight:700}
.wvp-plan-paused{margin-top:12px;padding:12px;border-radius:14px;background:#fff6df}
@media (max-width:720px){
  .wvp-plan-grid{grid-template-columns:1fr}
}

/* 0.1.292：刪除是白底紅字。窄螢幕把編輯／刪除／儲存放到整列，避免擠在價格旁邊。 */
@media (max-width: 720px) {
  #wansui-vendor-portal .wvp-card-summary.wvp-cs {
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-areas: "thumb title" "thumb meta" "side side" "stat stat";
  }
  #wansui-vendor-portal .wvp-cs .wvp-sum-meta { flex-wrap: wrap; }
  #wansui-vendor-portal .wvp-cs .wvp-sum-side {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 6px;
  }
  #wansui-vendor-portal .wvp-cs .wvp-sum-side .wvp-btn {
    min-height: 44px;
    padding: 6px 14px;
  }
  #wansui-vendor-portal .wvp-toolbar--desk {
    position: static;
    top: auto;
    z-index: auto;
  }
}
#wansui-vendor-portal .wvp-pager {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 16px;
}
#wansui-vendor-portal .wvp-pager-link {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid #c9d9cf;
  background: #fff;
  color: #163f35;
  font-weight: 800;
  text-decoration: none;
}
#wansui-vendor-portal .wvp-pager-link.is-on {
  background: #163f35;
  color: #fff;
  border-color: #163f35;
}

/* 0.1.292：店家後台分成一屏一區。上面只留概況，長說明收在摺疊裡。 */
#wansui-vendor-portal .wvp-overview{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0
}
#wansui-vendor-portal .wvp-ov-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:76px;
  padding:12px 14px;border-radius:16px;border:1px solid #e4dccd;background:#fff;color:#163f35;
  text-align:left;cursor:pointer
}
#wansui-vendor-portal .wvp-ov-k{font-size:13px;font-weight:700;color:#6b625a}
#wansui-vendor-portal .wvp-ov-v{font-size:28px;font-weight:900;line-height:1.15;max-width:100%}
#wansui-vendor-portal .wvp-ov-v--text{font-size:16px;font-weight:800;line-height:1.3}
#wansui-vendor-portal .wvp-sec-nav{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5em),1fr));gap:10px;margin:0 0 14px
}
#wansui-vendor-portal .wvp-sec-card{
  min-height:72px;padding:12px;border-radius:16px;border:1px solid #e4dccd;background:#fff;
  color:#163f35;font-size:17px;font-weight:800;cursor:pointer;
  white-space:normal;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere
}
#wansui-vendor-portal .wvp-sec-card.is-on{background:#163f35;color:#fff;border-color:#163f35}
#wansui-vendor-portal .wvp-sec[hidden]{display:none !important}
#wansui-vendor-portal .wvp-fold{
  margin:10px 0;border:1px solid #e4dccd;border-radius:14px;background:#fff
}
#wansui-vendor-portal .wvp-fold > summary{
  min-height:48px;padding:12px 14px;font-weight:800;color:#163f35;cursor:pointer
}
#wansui-vendor-portal .wvp-fold > :not(summary){padding:0 14px 12px}
#wansui-vendor-portal .wvp-draft-banner{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;padding:10px 12px;
  border-radius:14px;background:#eef5ef;border:1px solid #163f35;color:#163f35;font-weight:700
}
#wansui-vendor-portal .is-draft-focus{outline:2px solid #163f35;outline-offset:2px}
@media (max-width:720px){
  #wansui-vendor-portal .wvp-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  #wansui-vendor-portal .wvp-sec-nav{grid-template-columns:repeat(auto-fit,minmax(min(100%,7.5em),1fr))}
  #wansui-vendor-portal .wvp-sec-card{min-height:64px;font-size:15px}
  #wansui-vendor-portal .wvp-ov-v{font-size:24px}
  #wansui-vendor-portal .wvp-ov-v--text{font-size:15px}
}

/* 0.1.296: same 9 flavor categories as the shop filter. Subs stay closed until the category is picked. */
#wansui-vendor-portal .wvp-coffee-field--flavor [data-wansui-flavor-options]{
  display:flex !important;
  flex-direction:column;
  gap:8px;
}
#wansui-vendor-portal .wvp-flv-tree{display:flex;flex-direction:column;gap:8px;width:100%}
#wansui-vendor-portal .wvp-flv-fam{border:1px solid #e3e6dc;border-radius:14px;background:#fff;overflow:hidden}
#wansui-vendor-portal .wvp-flv-fam-btn{
  display:flex;align-items:center;gap:10px;width:100%;margin:0;padding:8px 12px;
  background:#f7f4ee;color:#163f35;font-weight:750;text-align:left;cursor:pointer
}
#wansui-vendor-portal .wvp-flv-fam-btn input{width:18px;height:18px;margin:0;flex:0 0 auto}
#wansui-vendor-portal .wvp-flv-fam-art{
  flex:0 0 36px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid #e4dfd4;border-radius:10px
}
#wansui-vendor-portal .wvp-flv-fam-ico{width:28px;height:28px;object-fit:contain;display:block}
#wansui-vendor-portal .wvp-flv-fam-copy{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:4.5em;flex:1 1 auto;white-space:normal;line-height:1.35;word-break:keep-all}
#wansui-vendor-portal .wvp-flv-fam-btn small{font-weight:550;color:#6a7467}
#wansui-vendor-portal .wvp-flv-fam.is-open .wvp-flv-fam-btn,
#wansui-vendor-portal .wvp-flv-fam-btn:has(input:checked){background:#e7f0ea}
#wansui-vendor-portal .wvp-flv-subs{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 12px}
#wansui-vendor-portal .wvp-flv-subs[hidden]{display:none !important}
#wansui-vendor-portal .wvp-flv-sub{
  display:inline-flex;align-items:center;gap:4px;margin:0;border:1px solid #d5ddd6;border-radius:999px;
  background:#fff;padding:6px 10px;color:#163f35;font-weight:650
}
#wansui-vendor-portal .wvp-flv-sub:has(input:checked){background:#e7f0ea;border-color:#163f35}
#wansui-vendor-portal .wvp-flv-badges{display:flex;flex-wrap:wrap;gap:4px}
#wansui-vendor-portal .wvp-flv-badge{
  display:inline-flex;align-items:center;gap:4px;max-width:none;padding:2px 8px;border-radius:999px;
  background:#e7f0ea;color:#163f35;font-size:12px;font-weight:750;line-height:1.3;white-space:nowrap;
  flex:0 0 auto;writing-mode:horizontal-tb
}
#wansui-vendor-portal .wvp-flv-badge img{width:16px;height:16px;object-fit:contain}
@media (max-width:720px){
  #wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="true"] [data-wansui-flavor-options]{
    display:flex !important;
    grid-template-columns:none;
  }
  #wansui-vendor-portal .wvp-flv-fam-btn{min-height:44px}
  #wansui-vendor-portal .wvp-flv-sub{min-height:40px}
}

/* 0.1.301 現打吧叫貨提醒。只出現這一句，不解釋流量數字。 */
.wvp-nitro-reorder{
  margin:12px 0 0;
  padding:14px 16px;
  border:1px solid #e6d7b8;
  border-radius:14px;
  background:#fff8ea;
  color:#3d3424;
}
.wvp-nitro-reorder p{margin:0 0 8px;font-size:1.05rem;font-weight:800;line-height:1.4}
.wvp-nitro-reorder a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:8px 14px;
  border-radius:999px;
  background:#163f35;
  color:#fff !important;
  font-weight:750;
  text-decoration:none !important;
}

/* 0.1.303：3F 現打吧和我要上架留在分頁列，任何寬度和縮放都不浮動。 */
.wvp-desk-actions{display:contents;position:static}
a.wvp-nitro-join{
  position:static;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:64px;
  padding:12px 16px;
  border-radius:16px;
  border:1px solid #163f35;
  background:#f6f3ec;
  color:#163f35 !important;
  font-size:15px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.35;
  white-space:normal;
  word-break:keep-all;
  text-decoration:none !important;
}
a.wvp-nitro-join:hover,
a.wvp-nitro-join:focus-visible{
  background:#fff;
  color:#0f2e27 !important;
}
#wansui-vendor-portal .wvp-ov-sub{font-size:12px;font-weight:700;color:#6b625a;line-height:1.3}
#wansui-vendor-portal .wvp-coffee-field--flavor[data-wansui-flavor-open="true"] [data-wansui-flavor-options]{
  display:flex !important;
  flex-direction:column;
}
#wansui-vendor-portal .wvp-coffee-chip{
  white-space:normal !important;
  overflow:visible;
  line-height:1.35;
  word-break:keep-all;
  height:auto;
}
.w3f-promo-guide{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#eef5ef;color:#163f35;line-height:1.5;font-weight:650}
#wansui-vendor-portal .wvp-announce{margin:0 0 12px;border:1px solid #d7e3dc;border-radius:14px;background:#f4faf6}
#wansui-vendor-portal .wvp-announce > summary{min-height:44px;padding:12px 14px;cursor:pointer;font-size:18px;font-weight:800;line-height:1.4;color:#163f35}
#wansui-vendor-portal .wvp-announce-body{padding:0 14px 14px;font-size:18px;line-height:1.55;color:#3d3424}
#wansui-vendor-portal .wvp-announce-body p{margin:0 0 10px}
#wansui-vendor-portal .wvp-announce-body p:last-child{margin-bottom:0}
#wansui-vendor-portal .wvp-recipes{margin:8px 0 24px}
#wansui-vendor-portal .wvp-recipes h2{margin:0 0 8px;font-size:28px;line-height:1.3;color:#163f35}
#wansui-vendor-portal .wvp-recipe-note{margin:0 0 10px;font-size:18px;line-height:1.55}
#wansui-vendor-portal .wvp-recipe-index{margin:0 0 16px;padding-left:1.3em;font-size:18px;line-height:1.6}
#wansui-vendor-portal .wvp-recipe{margin:0 0 16px;padding:14px;border:1px solid #d7e3dc;border-radius:14px;background:#fff}
#wansui-vendor-portal .wvp-recipe h3{margin:0 0 6px;font-size:22px;line-height:1.3}
#wansui-vendor-portal .wvp-recipe-state{margin:0 0 8px;font-size:16px;color:#3d5c54}
#wansui-vendor-portal .wvp-recipe label{display:block;font-size:18px;font-weight:700}
#wansui-vendor-portal .wvp-recipe textarea,#wansui-vendor-portal .wvp-recipe-field textarea,#wansui-vendor-portal textarea[data-wansui-recipe]{display:block;width:100%;margin-top:6px;padding:10px;box-sizing:border-box;font-size:18px !important;line-height:1.5;font-family:inherit;resize:vertical}
#wansui-vendor-portal .wvp-recipe textarea{min-height:640px}
#wansui-vendor-portal .wvp-recipe-field textarea,#wansui-vendor-portal .wvp-card-expand textarea[data-wansui-recipe]{min-height:220px}
#wansui-vendor-portal .wvp-recipe button{min-height:44px;margin-top:8px;font-size:18px}
#wansui-vendor-portal .wvp-recipe-field{margin:12px 0}
#wansui-vendor-portal .wvp-recipe-field summary{cursor:pointer;font-size:18px;font-weight:700}
.wvp-starter{margin:12px 0;padding:12px 14px;border:1px solid #d7e3dc;border-radius:14px;background:#f4faf6}
.wvp-starter summary{cursor:pointer;font-size:16px;font-weight:800;color:#163f35}
.wvp-starter summary h2,.wvp-starter h2{margin:0 0 8px;font-size:16px}
.wvp-starter ol{margin:0;padding-left:1.2em}
.wvp-starter li{margin:0 0 6px;line-height:1.45}
.wvp-starter li.is-done{color:#1b7a45;text-decoration:none}
.wvp-check-list{list-style:none;margin:8px 0 0;padding:0}
.wvp-check-list li{display:flex;gap:8px;align-items:flex-start}
.wvp-tick{flex:0 0 1.4em;font-weight:800;color:#8a6a32}
.wvp-starter li.is-done .wvp-tick{color:#1b7a45}
.wvp-starter p{margin:8px 0 0;color:#3d3424;line-height:1.45}
.wvp-learn h2{margin:0 0 8px;font-size:18px}
.wvp-learn ol{margin:0;padding-left:1.2em}
.wvp-learn li{margin:0 0 8px;line-height:1.5}

/* 0.1.304 三步上架。只藏新增表單裡的步驟，既有商品卡不受影響。 */
.wvp-req{color:#a3342a;font-weight:800;text-decoration:none}
.wvp-list-steps{display:flex;gap:6px;margin:0 0 12px;padding:0;list-style:none}
.wvp-list-steps li{flex:1;min-height:44px;padding:0;border-radius:999px;background:#e7f0ea;color:#3d4f48;font-size:16px;font-weight:750;text-align:center;line-height:1.3}
.wvp-list-steps li[aria-current="step"]{background:#163f35;color:#fff}
.wvp-list-steps button{width:100%;min-height:44px;border:0;background:transparent;color:inherit;font:inherit;font-weight:750;cursor:pointer;border-radius:999px}
.wvp-list-gate{margin:8px 0;font-size:18px;font-weight:800;line-height:1.4;color:#8a3b2a}
.wvp-list-summary{margin:0 0 12px;font-size:18px;font-weight:800;line-height:1.4;color:#8a3b2a}
.wvp-list-summary[hidden]{display:none !important}
#wvp-add-form[data-list-wizard] .wvp-list-status{display:none}
#wvp-add-form[data-list-wizard][data-list-step="1"] [data-list-part="2"],
#wvp-add-form[data-list-wizard][data-list-step="1"] [data-list-part="3"],
#wvp-add-form[data-list-wizard][data-list-step="2"] [data-list-part="1"],
#wvp-add-form[data-list-wizard][data-list-step="2"] [data-list-part="3"]{display:none !important}
#wvp-add-form[data-list-wizard][data-list-step="3"] .wvp-list-layout{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,240px);gap:12px;align-items:start
}
@media (max-width:720px){
  #wvp-add-form[data-list-wizard][data-list-step="3"] .wvp-list-layout{grid-template-columns:minmax(0,1fr)}
}
.wvp-list-preview{padding:10px;border:1px solid #d5e4dc;border-radius:14px;background:#f7fbf8}
.wvp-list-preview-k,.wvp-list-missing-k{margin:0 0 6px;font-size:12px;font-weight:800;color:#3d4f48}
.wvp-guest-card{margin:0 0 8px;padding:8px;border-radius:12px;background:#fff;border:1px solid #e4ece7}
.wvp-guest-photo{height:120px;border-radius:8px;background:#e7f0ea;color:#3d4f48;display:flex;align-items:center;justify-content:center;font-size:12px;overflow:hidden}
.wvp-guest-photo img{width:100%;height:100%;object-fit:cover;display:block}
.wvp-list-ok{margin:6px 0 0;font-size:14px;font-weight:800;color:#1b7a45}
.wvp-inline-miss{display:block;margin:4px 0 0;color:#a3342a;font-style:normal;font-size:14px;font-weight:750;line-height:1.35}
.wvp-inline-miss[hidden]{display:none !important}
.wvp-guest-card h3{margin:8px 0 4px;font-size:14px;line-height:1.35;color:#163f35}
.wvp-guest-card p{margin:0 0 4px;font-size:15px;line-height:1.4;color:#3d3424}
.wvp-guest-card p.wvp-list-ok,#wvp-add-form .wvp-list-ok{color:#1b7a45}
.wvp-guest-card [data-list-card-price]{font-size:16px;font-weight:800;color:#163f35}
.wvp-list-preview ul{margin:0;padding-left:1.1em}
.wvp-list-preview li{margin:0 0 4px;font-size:12px;line-height:1.35;color:#a3342a}
.wvp-weight-guest{display:block;margin:6px 0 0;font-size:18px;font-weight:800;color:#163f35;line-height:1.35}
.wt-quote{margin:4px 0;font-weight:750;color:#163f35}
.wvp-score{color:#1c1915}
.wvp-score-title{margin:0 0 8px;font-size:22px;line-height:1.3;color:#163f35}
.wvp-score-rule,.wvp-score-block,.wvp-score-wait,.wvp-score-empty{margin:0 0 12px;font-size:15px;line-height:1.5}
.wvp-score-block{padding:10px 12px;border-radius:12px;background:#f6f3ee}
.wvp-score-tips-title{margin:0 0 6px;font-size:16px;color:#163f35}
.wvp-score-tips{margin:0 0 16px;padding-left:1.2em}
.wvp-score-tips li{margin:0 0 6px;font-size:15px;line-height:1.45}
.wvp-score-list{display:grid;gap:12px}
.wvp-score-card{padding:12px;border:1px solid #e4ece7;border-radius:14px;background:#fff}
.wvp-score-card h3{margin:0 0 4px;font-size:17px;line-height:1.35;color:#163f35}
.wvp-score-week{margin:0 0 8px;font-weight:800}
.wvp-score-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 8px}
.wvp-score-metrics div{min-width:0}
.wvp-score-metrics dt{margin:0;font-size:12px;color:#5c564c}
.wvp-score-metrics dd{margin:0;font-size:18px;font-weight:800;color:#163f35}
.wvp-score-why{margin:0;font-size:14px;line-height:1.5}
@media(min-width:760px){
  .wvp-score-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.wvp-score-lead,.wvp-learn-lead,.wgb-lead{margin:0 0 10px;font-size:18px;line-height:1.5;color:#1c1915}
.wvp-today{margin:0 0 14px;padding:14px 16px;border:1px solid #ead7c4;border-radius:16px;background:#fffaf4}
.wvp-today h2{margin:0 0 8px;font-size:22px;line-height:1.3;color:#163f35}
.wvp-today ol{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.wvp-today-link{display:flex;align-items:center;width:100%;min-height:52px;padding:10px 14px;border-radius:12px;border:1px solid #e4d5c4;background:#fff;color:#1c1915;font-size:18px;font-weight:750;line-height:1.35;text-align:left;cursor:pointer}
.wvp-today-link.is-due{border-color:#c77731;background:#fff6ee}
.wvp-today-link.is-ok{color:#3d5c54}
@media(min-width:760px){
  .wvp-today ol{grid-template-columns:repeat(3,minmax(0,1fr))}
}
