:root {
  --brand: #f43f3f;
  --brand-dark: #d92929;
  --brand-soft: #fff0ee;
  --ink: #202124;
  --muted: #74777f;
  --line: #ececea;
  --surface: #ffffff;
  --canvas: #f7f7f5;
  --shadow: 0 12px 34px rgba(33, 27, 24, 0.08);
}

* { box-sizing: border-box; }

html { background: var(--canvas); }

body {
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.tab-navigation-anchor { scroll-margin-top: 14px; }

.app-shell { min-height: 100vh; padding-bottom: calc(76px + env(safe-area-inset-bottom)); }

.topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 58px;
  padding: 0 18px;
  background: rgba(247, 247, 245, 0.92);
  border-bottom: 1px solid rgba(224, 224, 220, 0.72);
  backdrop-filter: blur(14px);
}

.brand { display: flex; align-items: center; gap: 9px; font-size: 17px; font-weight: 800; }
.brand-mark { display: grid; place-items: center; width: 29px; height: 29px; color: #fff; background: var(--brand); border-radius: 9px; }
.topbar-link { color: var(--muted); font-size: 14px; }

.page { width: min(100%, 760px); margin: 0 auto; padding: 18px 16px 26px; }

.hero-card {
  position: relative;
  overflow: hidden;
  padding: 28px 22px 22px;
  color: #fff;
  background: linear-gradient(145deg, #ff5b52 0%, #ed3434 55%, #c9252e 100%);
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(222, 47, 47, 0.24);
}

.hero-card::after { content: ""; position: absolute; width: 180px; height: 180px; right: -70px; top: -100px; border: 30px solid rgba(255,255,255,.1); border-radius: 50%; }
.hero-card h1, .page-heading h1 { margin: 7px 0 8px; font-size: clamp(27px, 7vw, 36px); letter-spacing: -0.04em; }
.hero-card p { max-width: 520px; margin: 0 0 22px; color: rgba(255,255,255,.82); font-size: 14px; line-height: 1.65; }
.eyebrow { color: var(--brand); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hero-card .eyebrow { color: rgba(255,255,255,.76); }
.hero-actions { position: relative; z-index: 1; display: flex; gap: 9px; }
.hero-primary, .hero-secondary { display: inline-flex; justify-content: center; padding: 12px 16px; border-radius: 11px; font-size: 14px; font-weight: 800; }
.hero-primary { color: var(--brand-dark); background: #fff; }
.hero-secondary { color: #fff; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); }

.search-bar { position: relative; z-index: 1; display: flex; gap: 8px; padding: 6px; background: #fff; border-radius: 14px; }
.search-bar input[type="search"] { min-width: 0; flex: 1; padding: 10px 11px; border: 0; outline: 0; color: var(--ink); background: transparent; }
.search-bar input[type="submit"] { padding: 10px 17px; color: #fff; background: var(--ink); border: 0; border-radius: 10px; font-weight: 700; }
.search-bar.standalone { margin: 18px 0; border: 1px solid var(--line); box-shadow: 0 7px 24px rgba(20,20,20,.04); }
.search-bar.standalone input[type="submit"] { background: var(--brand); }

.category-tabs { display: flex; gap: 8px; margin: 16px -16px 4px; padding: 0 16px 8px; overflow-x: auto; scrollbar-width: none; }
.category-tabs::-webkit-scrollbar { display: none; }
.category-tab { flex: 0 0 auto; padding: 8px 13px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; font-size: 13px; }
.category-tab.is-active { color: #fff; background: var(--ink); border-color: var(--ink); font-weight: 700; }
.catalog-section { margin-top: 22px; }
.catalog-source { color: var(--muted); font-size: 12px; }
.goods-page-heading p { max-width: 620px; }
.goods-join-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; margin: 18px 0; padding: 20px; background: linear-gradient(135deg, #fff0e8, #fff); border: 1px solid #f1d1bf; border-radius: 20px; }
.goods-join-card h2 { margin: 6px 0; font-size: 20px; }
.goods-join-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.goods-join-card .primary-button { margin: 0; white-space: nowrap; }
.goods-join-benefits { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.goods-join-benefits span { padding: 8px; color: var(--brand-dark); text-align: center; background: rgba(255,255,255,.76); border-radius: 9px; font-size: 10px; font-weight: 700; }
.goods-rules-link { grid-column: 1 / -1; color: var(--brand-dark); font-size: 11px; font-weight: 800; text-align: right; text-decoration: underline; text-underline-offset: 3px; }
.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.product-card { overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 17px; }
.product-image { position: relative; display: grid; place-items: center; aspect-ratio: 1 / .84; overflow: hidden; color: var(--brand-dark); background: linear-gradient(145deg, #fff5f1, #f6eee9); font-size: 28px; font-weight: 900; }
.product-image img { width: 100%; height: 100%; object-fit: cover; }
.product-image em { position: absolute; top: 9px; left: 9px; padding: 4px 7px; color: #7c4d3d; background: rgba(255,255,255,.88); border-radius: 7px; font-size: 10px; font-style: normal; font-weight: 700; }
.product-body { padding: 12px; }
.product-body h3 { display: -webkit-box; min-height: 40px; margin: 0; overflow: hidden; font-size: 14px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-tags { display: flex; flex-wrap: wrap; gap: 5px; min-height: 21px; margin-top: 8px; }
.product-tags span { padding: 3px 5px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 5px; font-size: 9px; }
.product-tags .coupon-tag { color: #a43f08; background: #fff0df; }
.product-footer { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 10px; }
.product-footer strong { color: var(--brand-dark); font-size: 17px; }
.product-footer-stacked { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 9px; }
.product-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; width: 100%; }
.product-card-actions .promote-button, .product-card-actions .poster-link, .product-card-actions .demo-button { display: flex; align-items: center; justify-content: center; min-height: 34px; padding: 8px 7px; text-align: center; }
.product-card-actions > :only-child { grid-column: 1 / -1; }
.product-price { display: grid; gap: 2px; }
.product-price del { color: var(--muted); font-size: 10px; }
.product-price small { color: var(--muted); font-size: 10px; }
.promote-button, .demo-button { padding: 7px 9px; color: #fff; background: var(--brand); border-radius: 8px; font-size: 11px; font-weight: 700; }
.demo-button { color: var(--muted); background: #f0f0ed; }

.bitlink-home-section { padding: 18px; background: linear-gradient(145deg, #fff8ed, #fff); border: 1px solid #f2dfc5; border-radius: 20px; }
.bitlink-product-description { min-height: 34px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.bitlink-service-badge { padding: 5px 7px; color: #9a4d11; background: #fff0d8; border-radius: 7px; font-size: 10px; font-weight: 800; }

.section-block { margin-top: 28px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 13px; }
.section-heading h2 { margin: 4px 0 0; font-size: 21px; }
.status-pill { padding: 5px 10px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 999px; font-size: 12px; font-weight: 800; }

.action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.action-card { display: grid; min-height: 144px; padding: 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 6px 20px rgba(35,33,31,.03); }
.action-card strong { align-self: end; margin-top: 16px; font-size: 16px; }
.action-card small { margin-top: 4px; color: var(--muted); line-height: 1.45; }
.action-icon { display: grid; place-items: center; width: 38px; height: 38px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 12px; font-size: 13px; font-weight: 900; }

.flow-list { margin: 0; padding: 0; list-style: none; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; }
.flow-list li { display: flex; align-items: center; gap: 13px; padding: 15px; }
.flow-list li + li { border-top: 1px solid var(--line); }
.flow-list li > span { display: grid; place-items: center; flex: 0 0 30px; height: 30px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 50%; font-weight: 800; }
.flow-list div { display: grid; gap: 4px; }
.flow-list small { color: var(--muted); line-height: 1.4; }

.notice-card, .tip-card { margin-top: 20px; padding: 17px; background: #fff8e8; border: 1px solid #f3e3ba; border-radius: 16px; }
.notice-card p { margin: 6px 0 0; color: #716752; font-size: 13px; line-height: 1.6; }
.tip-card { color: #716752; font-size: 13px; line-height: 1.6; }
.site-record-footer { padding: 26px 0 6px; color: var(--muted); font-size: 12px; text-align: center; }
.site-record-footer a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.pdd-account-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; margin-top: 20px; padding: 18px; background: linear-gradient(135deg, #fff4ef, #fff); border: 1px solid #f0cec0; border-radius: 18px; }
.pdd-account-card.is-bound { background: linear-gradient(135deg, #effbf3, #fff); border-color: #bee4ca; }
.pdd-account-card.compact { margin-top: 18px; }
.pdd-account-icon { display: grid; place-items: center; width: 42px; height: 42px; color: #fff; background: #e02e24; border-radius: 13px; font-size: 17px; font-weight: 900; }
.pdd-account-card h2 { margin: 5px 0; font-size: 17px; }
.pdd-account-card p { margin: 0 0 10px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.pdd-account-action { color: #d22d23; font-size: 13px; font-weight: 800; }
.pdd-authority-card { margin: 18px 0; padding: 20px; background: #fff4ef; border: 1px solid #f0cec0; border-radius: 20px; }
.pdd-authority-card.is-bound { background: #effbf3; border-color: #bee4ca; }
.pdd-authority-status { display: flex; align-items: center; gap: 13px; }
.pdd-authority-status > span { display: grid; place-items: center; width: 40px; height: 40px; color: #fff; background: #e02e24; border-radius: 50%; font-weight: 900; }
.pdd-authority-card.is-bound .pdd-authority-status > span { background: #23884d; }
.pdd-authority-status small, .pdd-authority-card > p { color: var(--muted); }
.pdd-authority-status h2 { margin: 3px 0 0; font-size: 19px; }
.pdd-authority-card > p { margin: 13px 0 0; font-size: 12px; }
.pdd-authority-steps { margin-top: 16px; }
.pdd-authority-actions { display: grid; gap: 10px; margin-top: 16px; }
.pdd-authority-actions .primary-button, .pdd-authority-actions .secondary-button { width: 100%; margin: 0; text-align: center; }
.pdd-authority-actions .text-link { padding: 7px; text-align: center; }

.page-heading { padding: 12px 3px 2px; }
.page-heading p { margin: 0; color: var(--muted); line-height: 1.65; }

.empty-state { display: grid; place-items: center; margin-top: 24px; padding: 46px 24px; text-align: center; background: var(--surface); border: 1px dashed #d9d9d5; border-radius: 20px; }
.empty-state.compact { padding-block: 34px; }
.empty-state h2 { margin: 16px 0 6px; font-size: 18px; }
.empty-state p { max-width: 470px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.empty-icon { display: grid; place-items: center; width: 52px; height: 52px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 17px; font-weight: 900; }

.tool-card { display: grid; gap: 9px; margin-top: 22px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; }
.tool-card label { margin-top: 5px; font-size: 13px; font-weight: 700; }
.tool-card input[type="url"], .tool-card input[type="text"], .tool-card input[type="tel"], .tool-card input[type="email"], .tool-card input[type="password"], .tool-card select { width: 100%; padding: 13px; border: 1px solid #dededb; border-radius: 11px; outline: none; background: #fff; }
.tool-card input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.primary-button { margin-top: 9px; padding: 14px; color: #fff; background: var(--brand); border: 0; border-radius: 12px; font-weight: 800; }
.inline-button { display: inline-flex; justify-content: center; margin-top: 14px; }
.full-button { display: flex; }
.secondary-button { width: 100%; margin-top: 12px; padding: 13px; color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 12px; }
.agreement-row { display: flex; align-items: center; gap: 8px; color: var(--muted); font-weight: 400 !important; }
.agreement-row input { width: 17px; height: 17px; accent-color: var(--brand); }
.compact-tool-card { padding-bottom: 16px; }
.sms-code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.sms-button { padding: 0 14px; color: #fff; background: var(--ink); border: 0; border-radius: 11px; font-size: 13px; font-weight: 800; white-space: nowrap; }
.inline-link { color: var(--brand-dark); font-weight: 800; }
.admin-login-panel { margin-top: 18px; color: var(--muted); font-size: 13px; }
.admin-login-panel summary { cursor: pointer; text-align: center; }

.invite-card { margin-top: 22px; padding: 21px; background: linear-gradient(135deg, #fff 0%, #fff6f4 100%); border: 1px solid #f0d8d2; border-radius: 20px; }
.invite-card h2 { margin: 6px 0; font-size: 20px; }
.invite-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.invite-center-hero { display: grid; gap: 15px; }
.invite-center-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.invite-center-actions .primary-button, .invite-center-actions .secondary-button { align-items: center; width: auto; margin: 0; text-align: center; }
.invite-center-actions .secondary-button { display: inline-flex; justify-content: center; }

.metrics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 22px; }
.dashboard-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-prize-wins { display: grid; gap: 10px; margin: 14px 0; }
.dashboard-prize-win { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; padding: 16px; background: linear-gradient(135deg, #fff9eb, #fff); border: 1px solid #ecd39d; border-radius: 18px; box-shadow: 0 8px 22px rgba(126, 80, 16, .1); }
.dashboard-prize-win.needs-action { border-color: #e6aa42; box-shadow: 0 10px 26px rgba(184, 109, 13, .16); }
.dashboard-prize-win-icon { display: grid; place-items: center; width: 46px; height: 46px; color: #fff; background: linear-gradient(145deg, #e9a72f, #bd6c14); border-radius: 50%; font-size: 20px; font-weight: 900; }
.dashboard-prize-win h2 { margin: 3px 0; color: #764710; font-size: 18px; }
.dashboard-prize-win p { margin: 0; color: var(--muted); font-size: 12px; }
.dashboard-prize-win .primary-button { grid-column: 1 / -1; width: 100%; margin: 2px 0 0; text-align: center; box-sizing: border-box; }
.metric-card { display: grid; gap: 7px; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; }
.metric-card small, .metric-card span { color: var(--muted); font-size: 12px; }
.metric-card strong { font-size: 28px; }
.recent-performance-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.recent-performance-summary > div { display: grid; gap: 5px; padding: 15px; background: linear-gradient(145deg, #fff7f3, #fff); border: 1px solid #f1ddd5; border-radius: 15px; }
.recent-performance-summary small, .recent-performance-summary span { color: var(--muted); font-size: 11px; }
.recent-performance-summary strong { color: var(--brand-dark); font-size: 25px; }
.recent-performance-days { margin-top: 12px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
.recent-performance-day { display: grid; grid-template-columns: 68px 1fr 1fr; align-items: center; gap: 9px; min-height: 45px; padding: 8px 13px; font-size: 12px; }
.recent-performance-day + .recent-performance-day { border-top: 1px solid var(--line); }
.recent-performance-day time { color: var(--muted); }
.recent-performance-day span { display: flex; justify-content: space-between; gap: 5px; color: var(--muted); }
.recent-performance-day b { color: var(--ink); }

.list-card { margin-top: 22px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; }
.list-row { display: flex; align-items: center; gap: 13px; min-height: 63px; padding: 13px 16px; }
.list-row + .list-row { border-top: 1px solid var(--line); }
.list-row > div { display: grid; flex: 1; gap: 4px; }
.list-row small { color: var(--muted); }
.list-row > strong { margin-left: auto; font-size: 14px; }
.section-link { color: var(--brand); font-size: 12px; font-weight: 700; }
.data-list { overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 17px; }
.data-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 13px 15px; }
.data-row + .data-row { border-top: 1px solid var(--line); }
.data-row > div { display: grid; gap: 4px; min-width: 0; }
.data-row small { color: var(--muted); font-size: 11px; }
.data-status { padding: 4px 7px; color: var(--muted); background: #f1f1ee; border-radius: 7px; font-size: 10px; }
.data-amount { text-align: right; }
.data-amount strong { color: var(--brand-dark); }
.empty-inline { padding: 24px; color: var(--muted); text-align: center; background: var(--surface); border: 1px dashed var(--line); border-radius: 16px; font-size: 13px; }
.data-actions { display: flex; align-items: center; gap: 8px; }
.mini-button { padding: 5px 8px; color: var(--brand-dark); background: var(--brand-soft); border: 0; border-radius: 7px; font-size: 11px; font-weight: 700; }
.task-grid { display: grid; gap: 10px; }
.task-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 15px; }
.task-card.is-complete { border-color: #99c7a2; background: #f1fbf2; }
.task-card strong { font-size: 14px; }
.task-card p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.task-card > span { flex: 0 0 auto; color: var(--brand-dark); font-size: 12px; font-weight: 800; }
.leaderboard-list { overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
.leaderboard-row { display: grid; grid-template-columns: 30px 1fr auto auto; align-items: center; gap: 10px; min-height: 52px; padding: 8px 14px; }
.leaderboard-row + .leaderboard-row { border-top: 1px solid var(--line); }
.leaderboard-row small { color: var(--muted); font-size: 11px; }
.leaderboard-row b { color: var(--brand-dark); font-size: 12px; }
.rank-badge { display: grid; place-items: center; width: 24px; height: 24px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 50%; font-size: 11px; font-weight: 900; }

.points-summary-card { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-top: 20px; padding: 24px; color: #fff; background: linear-gradient(140deg, #ff5b52, #d92929); border-radius: 22px; box-shadow: 0 15px 34px rgba(217,41,41,.2); }
.points-summary-card > div:first-child { display: flex; align-items: baseline; gap: 5px; }
.points-summary-card small { align-self: start; margin-right: 8px; color: rgba(255,255,255,.78); font-size: 12px; }
.points-summary-card strong { font-size: 44px; line-height: 1; }
.points-summary-details { display: grid; justify-items: end; gap: 5px; color: rgba(255,255,255,.86); font-size: 12px; }
.points-rule-list { display: grid; gap: 11px; }
.points-rule-card { padding: 17px; background: var(--surface); border: 1px solid var(--line); border-radius: 17px; }
.points-rule-card.is-complete { border-color: #a9d5b0; background: #f5fcf5; }
.points-rule-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.points-rule-heading strong { font-size: 15px; }
.points-rule-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.rule-state { flex: 0 0 auto; padding: 5px 8px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 999px; font-size: 10px; font-weight: 800; }
.points-rule-card.is-complete .rule-state { color: #277b39; background: #ddf3e1; }
.points-progress { height: 7px; margin-top: 14px; overflow: hidden; background: #eee; border-radius: 99px; }
.points-progress i { display: block; height: 100%; background: linear-gradient(90deg, #ff6b5f, var(--brand)); border-radius: inherit; }
.points-rule-card.is-complete .points-progress i { background: #55a968; }
.points-rule-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.points-rule-meta b { color: var(--ink); }
.points-ledger-list { overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 17px; }
.points-ledger-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 72px; padding: 14px 15px; }
.points-ledger-row + .points-ledger-row { border-top: 1px solid var(--line); }
.points-ledger-row > div { display: grid; min-width: 0; gap: 4px; }
.points-ledger-row > div > small { color: var(--muted); font-size: 11px; }
.points-ledger-row > b { color: var(--brand-dark); white-space: nowrap; }
.points-ledger-row > b.is-reversed { color: var(--muted); text-decoration: line-through; }
.points-ledger-content { display: grid; min-width: 0; gap: 5px; }
.points-ledger-content > strong { overflow: hidden; font-size: 14px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.points-ledger-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; }
.points-ledger-meta span { padding: 2px 6px; color: #64748b; background: #f1f5f9; border-radius: 99px; }
.points-ledger-reference { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 6px; min-width: 0; color: var(--muted); font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
.points-ledger-reference span { color: #9a7564; white-space: nowrap; }
.points-ledger-amount { display: flex; flex: 0 0 auto; align-items: baseline; gap: 2px; color: var(--brand-dark); font-size: 20px; line-height: 1; white-space: nowrap; }
.points-ledger-amount small { color: inherit; font-size: 10px; }
.points-ledger-amount.is-reversed { color: var(--muted); text-decoration: line-through; }
.points-history-heading { margin-bottom: 0; }
.points-history-balance { margin-top: 14px; }
.points-history-section { margin-top: 18px; }
.points-history-back { margin-top: 14px; text-align: center; text-decoration: none; }
.points-balance-strip { display: flex; justify-content: space-around; gap: 8px; margin-top: 18px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 15px; color: var(--muted); font-size: 12px; }
.points-balance-strip b { margin-left: 3px; color: var(--ink); font-size: 15px; }
.public-activity-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.public-activity-actions .primary-button, .public-activity-actions .secondary-button { display: flex; align-items: center; justify-content: center; width: auto; margin-top: 0; text-decoration: none; }
.prize-activity-grid { display: grid; gap: 12px; margin-top: 20px; }
.prize-activity-card { display: block; padding: 19px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 19px; box-shadow: 0 7px 22px rgba(35,33,31,.04); }
.prize-card-cover { display: block; width: calc(100% + 38px); height: 180px; margin: -19px -19px 16px; object-fit: cover; }
.prize-card-top, .prize-card-meta { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; }
.prize-card-top > span { padding: 4px 8px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 99px; font-weight: 800; }
.prize-activity-card h2 { margin: 13px 0 5px; font-size: 19px; }
.prize-activity-card p { margin: 0 0 13px; color: var(--muted); font-size: 12px; }
.prize-card-winner { display: flex; align-items: center; gap: 11px; margin: 3px 0 13px; padding: 11px 12px; color: #245c32; background: #eef9f0; border: 1px solid #d2ead7; border-radius: 12px; }
.prize-card-winner > span { flex: 0 0 auto; padding: 4px 7px; color: #fff; background: #32964b; border-radius: 99px; font-size: 10px; font-weight: 900; }
.prize-card-winner > div { display: grid; min-width: 0; gap: 3px; }
.prize-card-winner strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.prize-card-winner small { color: #5e7a65; font-size: 10px; }
.prize-card-meta { margin-top: 9px; }
.prize-card-facts, .public-prize-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.prize-card-facts span, .public-prize-facts span { padding: 8px 5px; color: var(--muted); background: #faf7f4; border-radius: 9px; font-size: 10px; text-align: center; }
.prize-card-facts b, .public-prize-facts b { display: block; margin-bottom: 2px; color: var(--ink); font-size: 15px; }
.prize-card-deadline, .public-prize-deadline { margin-top: 9px; color: var(--muted); font-size: 11px; }
.prize-card-deadline strong, .public-prize-deadline strong { color: var(--brand-dark); }
.newcomer-prize-steps { display: grid; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.newcomer-prize-steps li { display: flex; gap: 12px; align-items: center; padding: 14px; background: #fffaf6; border: 1px solid #f1dfd2; border-radius: 14px; }
.newcomer-prize-steps li > span { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--brand); border-radius: 50%; font-weight: 900; }
.newcomer-prize-steps strong, .newcomer-prize-steps small { display: block; }
.newcomer-prize-steps strong { font-size: 14px; }
.newcomer-prize-steps small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.newcomer-prize-note { margin-top: 12px; padding: 11px 13px; color: #7c5a3f; background: #fff4e8; border-radius: 11px; font-size: 11px; line-height: 1.55; }
.prize-card-entry-rule { margin-top: 10px; color: var(--muted); font-size: 11px; }
.prize-card-entry-rule strong { color: var(--ink); }
.prize-card-enter { display: flex; justify-content: space-between; align-items: center; margin: 13px -19px -19px; padding: 15px 19px; color: #fff; background: linear-gradient(135deg, var(--brand), #ff725f); font-size: 14px; font-weight: 900; }
.prize-card-enter b { font-size: 25px; line-height: .7; }
.prize-newcomer-guide { margin-top: 16px; padding: 19px; background: linear-gradient(145deg, #fff4ea, #fff); border: 1px solid #edcfbb; border-radius: 20px; box-shadow: 0 9px 26px rgba(115, 73, 38, .07); }
.prize-newcomer-heading h2 { margin: 6px 0; font-size: 19px; line-height: 1.35; }
.prize-newcomer-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.prize-newcomer-heading p strong { color: var(--brand-dark); }
.prize-newcomer-guide ol { display: grid; gap: 9px; margin: 15px 0 0; padding: 0; list-style: none; }
.prize-newcomer-guide li { display: flex; gap: 11px; padding: 12px; background: rgba(255,255,255,.78); border: 1px solid #f0ded2; border-radius: 13px; }
.prize-newcomer-guide li > span { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; color: #fff; background: var(--brand); border-radius: 50%; font-size: 12px; font-weight: 900; }
.prize-newcomer-guide li strong, .prize-newcomer-guide li small { display: block; }
.prize-newcomer-guide li strong { font-size: 13px; }
.prize-newcomer-guide li small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.prize-newcomer-balance { margin-top: 11px; padding: 11px 12px; color: #8a521f; background: #fff1dc; border-radius: 11px; font-size: 11px; line-height: 1.55; }
.prize-newcomer-balance.is-ready { color: #286637; background: #eaf8ed; }
.prize-newcomer-actions { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 9px; margin-top: 13px; }
.prize-newcomer-actions .primary-button, .prize-newcomer-actions .secondary-button { justify-content: center; margin: 0; text-align: center; }
.prize-detail-hero { margin-top: 20px; padding: 24px; color: #fff; background: linear-gradient(140deg, #ff725f, #d92929); border-radius: 22px; }
.prize-detail-hero small { color: rgba(255,255,255,.75); }
.prize-detail-hero h2 { margin: 7px 0; font-size: 25px; }
.prize-detail-hero span { font-size: 12px; }
.prize-detail-hero.has-cover { position: relative; min-height: 260px; padding: 0; overflow: hidden; background: #242424; }
.prize-detail-cover { width: 100%; height: 300px; object-fit: cover; opacity: .8; }
.prize-detail-copy { position: relative; z-index: 1; }
.prize-detail-hero.has-cover .prize-detail-copy { position: absolute; right: 0; bottom: 0; left: 0; padding: 50px 24px 24px; background: linear-gradient(transparent, rgba(0,0,0,.82)); }
.prize-overview { padding: 0; overflow: hidden; }
.prize-overview-tablist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; padding: 6px; background: #f2f3f5; border-radius: 17px 17px 0 0; }
.prize-overview-tab { min-width: 0; padding: 11px 6px; overflow: hidden; color: var(--muted); background: transparent; border: 0; border-radius: 12px; font-size: 13px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.prize-overview-tab.is-active { color: #fff; background: var(--ink); box-shadow: 0 6px 14px rgba(29,33,41,.16); }
.prize-overview-tab:focus-visible { outline: 3px solid var(--brand-soft); outline-offset: 1px; }
.prize-overview-panel { padding: 19px; }
.prize-overview-panel[hidden] { display: none; }
.prize-overview-panel .tip-card { margin-top: 12px; }
.draw-status-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.draw-status-heading span { color: var(--muted); font-size: 12px; }
.draw-status-heading strong { font-size: 22px; }
.draw-lottery-number { display: grid; gap: 6px; padding: 17px; color: #fff; text-align: center; background: linear-gradient(135deg, #d92929, #ff6f5f); border-radius: 15px; }
.draw-lottery-number small { color: rgba(255,255,255,.78); font-size: 11px; }
.legacy-lottery-number { overflow-wrap: anywhere; font: 800 23px/1.3 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: 1px; }
.lottery-balls { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.lottery-ball { display: grid; place-items: center; width: 38px; height: 38px; color: #fff; border: 2px solid rgba(255,255,255,.6); border-radius: 50%; font-size: 17px; line-height: 1; box-shadow: 0 5px 12px rgba(0,0,0,.16); }
.lottery-ball.is-red { background: #e02424; }
.lottery-ball.is-blue { background: #2563eb; }
.draw-winner-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 11px; }
.draw-winner-bar > div { display: grid; gap: 4px; min-width: 0; padding: 13px; text-align: center; background: #faf7f4; border-radius: 12px; }
.draw-winner-bar span { color: var(--muted); font-size: 10px; }
.draw-winner-bar strong { overflow-wrap: anywhere; color: var(--brand-dark); font-size: 16px; }
.winner-claim-card { margin: 16px 0; padding: 20px; background: linear-gradient(145deg, #fff8e8, #fff); border: 1px solid #efd49d; border-radius: 20px; box-shadow: 0 10px 26px rgba(132, 89, 25, .1); }
.winner-claim-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.winner-claim-heading h2 { margin: 3px 0 0; color: #7f4d12; font-size: 22px; }
.winner-claim-card > p { margin: 12px 0; color: #6f5b43; line-height: 1.7; }
.winner-claim-saved { display: flex; justify-content: space-between; gap: 12px; margin: 12px 0; padding: 11px 13px; background: rgba(255, 255, 255, .8); border-radius: 12px; font-size: 13px; }
.winner-claim-form { display: grid; gap: 8px; margin-top: 14px; }
.winner-claim-form label { margin-top: 5px; color: #6b5540; font-size: 13px; font-weight: 800; }
.winner-claim-form input, .winner-claim-form textarea { width: 100%; padding: 12px; color: var(--text); background: #fff; border: 1px solid #e6d4ba; border-radius: 11px; font: inherit; box-sizing: border-box; }
.winner-claim-form textarea { resize: vertical; }
.winner-claim-form .primary-button { margin-top: 8px; }
.draw-formula { display: grid; gap: 6px; margin-top: 12px; padding: 15px 12px; color: #7c2d12; text-align: center; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 13px; }
.draw-formula small { color: #9a3412; font-size: 10px; font-weight: 800; }
.draw-formula strong { overflow-wrap: anywhere; font: 900 20px/1.35 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .3px; }
.draw-formula span { color: #9a3412; font-size: 11px; line-height: 1.7; }
.draw-formula span b { color: #7c2d12; font-size: 12px; }
.winning-entry-proof { display: grid; gap: 0; margin-top: 11px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 13px; }
.winning-entry-proof > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); align-items: center; gap: 10px; padding: 11px 13px; }
.winning-entry-proof > div + div { border-top: 1px solid var(--line); }
.winning-entry-proof span { color: var(--muted); font-size: 10px; }
.winning-entry-proof strong { overflow-wrap: anywhere; font-size: 12px; text-align: right; }
.winning-entry-proof code { overflow-wrap: anywhere; color: var(--muted); font-size: 9px; line-height: 1.5; text-align: right; }
.activity-state-banner { display: grid; gap: 7px; padding: 18px; color: #334155; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 15px; }
.activity-state-banner span { color: var(--muted); font-size: 11px; font-weight: 800; }
.activity-state-banner strong { font-size: 19px; }
.activity-state-banner p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.activity-state-banner.is-awaiting { color: #7c2d12; background: #fff7ed; border-color: #fed7aa; }
.activity-state-banner.is-cancelled { color: #475569; background: #f8fafc; }
.locked-digest { display: grid; gap: 6px; margin-top: 11px; padding: 12px; background: #f5f3f1; border-radius: 11px; }
.locked-digest span { color: var(--muted); font-size: 10px; }
.locked-digest code { overflow-wrap: anywhere; color: var(--ink); font-size: 9px; }
.prize-story-copy { color: var(--text); line-height: 1.8; }
.prize-story-copy p { margin: 0 0 13px; }
.prize-story-copy .trix-content h1 { margin: 20px 0 10px; font-size: 21px; line-height: 1.4; }
.prize-story-copy .trix-content ul,
.prize-story-copy .trix-content ol { padding-left: 24px; }
.prize-story-copy .trix-content blockquote { margin: 14px 0; padding: 8px 14px; color: var(--muted); border-left: 4px solid var(--brand); background: var(--brand-soft); }
.trix-content .attachment { display: block; margin: 16px auto; text-align: center; }
.trix-content .attachment img { display: block; width: auto; max-width: 100%; height: auto; margin: 0 auto; border-radius: 14px; }
.trix-content .attachment__caption { margin-top: 6px; color: var(--muted); font-size: 12px; }
.admin-form trix-editor { min-height: 280px; padding: 14px; overflow-y: auto; color: var(--text); background: #fff; border: 1px solid var(--line); border-radius: 12px; line-height: 1.7; }
.admin-form trix-editor:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.admin-form trix-toolbar { margin-top: 4px; }
.admin-form trix-toolbar .trix-button-group { border-color: var(--line); border-radius: 8px; }
.admin-form trix-toolbar .trix-button { height: 34px; border-bottom: 0; }
.admin-activity-details .trix-content { line-height: 1.8; }
.admin-activity-details .trix-content h1 { margin: 18px 0 8px; font-size: 20px; }
.datetime-range-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 12px; }
.datetime-range-fields > div { min-width: 0; }
.datetime-range-fields label { display: block; margin-bottom: 6px; }
.datetime-range-fields small { grid-column: 1 / -1; margin-top: -6px; }
.flatpickr-calendar { border: 0; border-radius: 16px; box-shadow: 0 16px 45px rgba(31, 41, 55, 0.18); font-family: inherit; }
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus { background: var(--brand); border-color: var(--brand); }
.flatpickr-day.today { border-color: var(--brand); }
.flatpickr-day.today:hover { background: var(--brand-soft); color: var(--brand-dark); }
.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover { background: var(--brand-soft); }
.flatpickr-input[readonly] { cursor: pointer; background: #fff; }
@media (max-width: 640px) { .datetime-range-fields { grid-template-columns: 1fr; } .datetime-range-fields small { grid-column: auto; } }
.prize-story-image { display: block; width: 100%; height: auto; margin-top: 14px; border-radius: 15px; }
.public-prize-grid { display: grid; gap: 13px; }
.public-prize-card { overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 19px; box-shadow: 0 8px 24px rgba(35,33,31,.05); }
.public-prize-card > img, .public-prize-cover-link img { display: block; width: 100%; height: 190px; object-fit: cover; }
.public-prize-cover-link { display: block; }
.public-prize-body { padding: 17px; }
.public-prize-body > span { color: var(--brand-dark); font-size: 11px; font-weight: 800; }
.public-prize-body h3 { margin: 8px 0 5px; font-size: 18px; }
.public-prize-body h3 a { color: inherit; text-decoration: none; }
.public-prize-body p { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.public-prize-body small { display: block; margin-top: 7px; color: var(--muted); font-size: 10px; }
.activity-deadline-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 13px 14px; color: var(--muted); background: #fff7ed; border: 1px solid #fed7aa; border-radius: 12px; font-size: 12px; }
.activity-deadline-card strong { color: #9a3412; font-size: 14px; }
.public-rules-link { justify-content: center; text-decoration: none; }
.rules-summary-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.rules-summary-card > div { display: grid; gap: 4px; padding: 14px; background: #faf7f4; border-radius: 12px; }
.rules-summary-card span { color: var(--muted); font-size: 11px; }
.rules-summary-card strong { color: var(--brand-dark); font-size: 17px; }
.public-rules-page { display: grid; gap: 0; padding: 0 18px; }
.public-rules-page article { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 19px 0; }
.public-rules-page article + article { border-top: 1px solid var(--line); }
.public-rules-page article > span { display: grid; place-items: center; width: 34px; height: 34px; color: #fff; background: var(--brand); border-radius: 11px; font-size: 11px; font-weight: 900; }
.public-rules-page h2 { margin: 2px 0 7px; font-size: 17px; }
.public-rules-page p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.public-rules-page a { display: inline-block; margin-top: 8px; color: var(--brand-dark); font-size: 12px; font-weight: 800; }
.public-prize-progress { height: 7px; overflow: hidden; background: #eee; border-radius: 99px; }
.public-prize-progress i { display: block; height: 100%; background: linear-gradient(90deg, #ff7b68, var(--brand)); }
.compact-public-button { display: block; margin-top: 13px; padding: 10px 13px; font-size: 12px; text-align: center; }
.public-prize-detail-link { display: block; margin-top: 13px; padding: 11px 13px; color: var(--brand-dark); background: #fff5f1; border: 1px solid #ffcfc7; border-radius: 11px; font-size: 13px; font-weight: 900; text-align: center; }
.public-prize-cta { display: block; width: 100%; margin-top: 9px; padding: 15px 16px; font-size: 16px; text-align: center; text-decoration: none; }
.public-participation-callout { display: grid; gap: 12px; }
.public-participation-callout h2 { margin: 5px 0; font-size: 19px; }
.public-participation-callout p { margin: 0; color: var(--muted); font-size: 12px; }
.public-prize-state { margin-top: 13px; padding: 10px 13px; color: var(--muted); font-size: 12px; text-align: center; background: #f5f3f1; border-radius: 10px; }
.referral-owner { display: grid; gap: 4px; margin: 10px 0; padding: 14px; background: var(--brand-soft); border: 1px solid #ffd8d2; border-radius: 12px; }
.referral-owner span, .referral-owner small { color: var(--muted); font-size: 11px; }
.referral-owner strong { color: var(--brand-dark); font-size: 16px; }
.points-progress.large { height: 10px; }
.participation-card { padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; }
.prize-purchase-spacer { height: 210px; }
.prize-purchase-dock { position: fixed; z-index: 19; right: 12px; bottom: calc(60px + env(safe-area-inset-bottom)); left: 12px; width: auto; max-width: 728px; max-height: min(55vh, 390px); margin: 0 auto; padding: 12px; overflow-y: auto; background: rgba(255,255,255,.98); border: 1px solid rgba(231,226,220,.95); border-radius: 18px; box-shadow: 0 -8px 30px rgba(40,31,24,.14); backdrop-filter: blur(18px); }
.prize-purchase-summary { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.prize-purchase-summary > div { display: grid; gap: 2px; }
.prize-purchase-summary span, .prize-purchase-summary small { color: var(--muted); font-size: 10px; }
.prize-purchase-summary strong { color: var(--brand-dark); font-size: 17px; }
.prize-purchase-unavailable { align-items: center; margin-bottom: 0; padding: 4px 2px; }
.prize-entry-options { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.prize-entry-options::-webkit-scrollbar { display: none; }
.prize-quick-entry-form { flex: 1 0 76px; }
.prize-entry-option { display: grid; place-items: center; gap: 1px; width: 100%; min-height: 50px; padding: 7px 9px; color: #fff; background: linear-gradient(135deg, var(--brand), #ff735f); border: 0; border-radius: 12px; box-shadow: 0 5px 12px rgba(244,63,63,.18); cursor: pointer; }
.prize-entry-option strong { font-size: 13px; }
.prize-entry-option small { color: rgba(255,255,255,.82); font-size: 9px; }
.prize-custom-entry { margin-top: 8px; }
.prize-custom-entry summary { color: var(--muted); font-size: 11px; font-weight: 700; text-align: center; cursor: pointer; list-style-position: inside; }
.prize-custom-entry-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 8px; }
.prize-custom-entry-form input[type="number"] { min-width: 0; padding: 11px 12px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.prize-custom-entry-form .primary-button { margin: 0; padding: 11px 16px; }
.prize-register-button { display: block; margin: 0; padding: 13px 16px; text-align: center; text-decoration: none; }
.entry-number-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.entry-number-grid > span { display: grid; gap: 3px; padding: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; color: var(--brand-dark); font-weight: 900; }
.entry-number-grid small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; }
.entry-number-grid > span.is-winning { color: #fff; background: var(--brand); border-color: var(--brand); }
.entry-number-grid > span.is-winning small { color: rgba(255,255,255,.8); }
.my-entries-callout { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; background: var(--brand-soft); border: 1px solid #ffd8d2; border-radius: 14px; }
.my-entries-callout > div { display: grid; gap: 4px; }
.my-entries-callout strong { color: var(--brand-dark); font-size: 14px; }
.my-entries-callout span { color: var(--muted); font-size: 11px; }
.my-entries-callout .secondary-button { flex: 0 0 auto; text-decoration: none; }
.digest-row { align-items: start; }
.digest-row small, .audit-digest { overflow-wrap: anywhere; font-family: ui-monospace, monospace; }
.draw-result-card { display: grid; gap: 8px; margin-top: 26px; padding: 24px; color: #fff; text-align: center; background: linear-gradient(140deg, #242424, #555); border-radius: 22px; }
.draw-result-card strong { font-size: 25px; }
.draw-result-card p { margin: 0; color: rgba(255,255,255,.72); }
.draw-result-card b { color: #ffe7a3; }
.public-entry-list { max-height: 360px; overflow: auto; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
.public-entry-list > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 12px; padding: 10px 13px; font-size: 11px; }
.public-entry-list > div + div { border-top: 1px solid var(--line); }
.public-entry-list b { grid-row: 1 / span 2; align-self: center; color: var(--brand-dark); font-size: 14px; }
.public-entry-list span { overflow-wrap: anywhere; color: var(--muted); font-family: ui-monospace, monospace; }
.public-entry-list time { color: var(--muted); font-size: 10px; }
.public-entry-preview { max-height: none; }
.public-entries-link { justify-content: center; text-decoration: none; }
.entries-public-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 20px; }
.entries-public-summary > div { display: grid; gap: 4px; padding: 13px 8px; text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: 13px; }
.entries-public-summary span { color: var(--muted); font-size: 10px; }
.entries-public-summary strong { color: var(--brand-dark); font-size: 17px; }
.public-entries-panel { padding: 0; overflow: hidden; }
.public-entry-table-heading, .public-entry-table-row { display: grid; grid-template-columns: 80px minmax(100px, .8fr) 140px minmax(150px, 1fr); align-items: center; gap: 10px; padding: 11px 13px; }
.public-entry-table-heading { color: var(--muted); background: #fafaf8; font-size: 10px; font-weight: 800; }
.public-entry-table-row { font-size: 12px; border-top: 1px solid var(--line); }
.public-entry-table-row strong { color: var(--brand-dark); font-size: 14px; }
.public-entry-table-row time { color: var(--muted); }
.public-entry-table-row code { overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.public-entries-pagination { margin-top: 12px; }
.my-entry-record-list { display: grid; gap: 9px; padding: 12px; }
.my-entry-record { display: grid; gap: 6px; padding: 13px; background: var(--surface); border: 1px solid var(--line); border-radius: 13px; }
.my-entry-record-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.my-entry-record-heading strong { color: var(--brand-dark); font-size: 18px; }
.my-entry-record-heading span { padding: 3px 8px; color: #fff; background: var(--brand); border-radius: 999px; font-size: 10px; font-weight: 800; }
.my-entry-record time { color: var(--ink); font-size: 11px; }
.my-entry-record code { overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.my-entry-record.is-winning { background: var(--brand-soft); border-color: var(--brand); }
@media (max-width: 640px) {
  .goods-join-card { grid-template-columns: 1fr; }
  .goods-join-card .primary-button { justify-content: center; }
  .goods-join-benefits { grid-column: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .goods-rules-link { grid-column: 1; text-align: center; }
  .my-entries-callout { align-items: stretch; flex-direction: column; }
  .my-entries-callout .secondary-button { justify-content: center; }
  .public-entries-panel { overflow-x: auto; }
  .public-entry-table-heading, .public-entry-table-row { min-width: 650px; }
}

.material-grid { display: grid; gap: 11px; }
.material-card { padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; }
.material-card > span:first-child { color: var(--brand); font-size: 11px; font-weight: 800; }
.material-card h3 { margin: 8px 0 5px; font-size: 17px; }
.material-card p { margin: 0 0 14px; color: var(--muted); font-size: 12px; }

.profile-card { display: flex; align-items: center; gap: 16px; padding: 23px; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; }
.profile-card h1 { margin: 3px 0; font-size: 20px; }
.profile-card p { margin: 0; color: var(--muted); font-size: 13px; }
.profile-avatar { display: grid; place-items: center; flex: 0 0 58px; height: 58px; color: #fff; background: var(--brand); border-radius: 18px; font-size: 22px; font-weight: 900; }
.wechat-bind-card { display: flex; gap: 14px; margin-top: 18px; padding: 18px; background: linear-gradient(135deg, #f1fff5, #fff); border: 1px solid #ccebd5; border-radius: 18px; }
.compact-wechat-card { margin-top: 22px; }
.wechat-icon { display: grid; place-items: center; flex: 0 0 44px; height: 44px; color: #fff; background: #07c160; border-radius: 14px; font-weight: 900; }
.wechat-bind-content { min-width: 0; flex: 1; }
.wechat-bind-content h2 { margin: 4px 0 5px; font-size: 17px; }
.wechat-bind-content p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.wechat-button { margin-top: 11px; padding: 11px 14px; color: #fff; background: #07c160; border: 0; border-radius: 10px; font-weight: 800; }
.compact-button { width: auto; padding: 8px 11px; font-size: 12px; }
.follow-qr-card { display: grid; justify-items: center; gap: 6px; margin-top: 13px; padding: 14px; background: #fff; border: 1px solid #ccebd5; border-radius: 14px; text-align: center; }
.follow-qr-image { width: 190px; max-width: 100%; aspect-ratio: 1; object-fit: contain; }
.follow-qr-card strong { font-size: 13px; }
.follow-qr-card small, .follow-qr-error { color: var(--muted); font-size: 11px; }
.wechat-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wechat-task-card { border-color: #9edbb0; box-shadow: 0 10px 28px rgba(40, 150, 75, .08); }
.wechat-step-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 13px 0; }
.wechat-step-list span { padding: 10px; color: var(--muted); background: #fff; border: 1px solid #dce9df; border-radius: 11px; font-size: 12px; font-weight: 700; }
.wechat-step-list span.is-complete { color: #277b39; background: #effaf1; border-color: #abd8b4; }
.wechat-step-list b { display: block; margin-top: 3px; color: var(--brand-dark); }
.wechat-step-list.compact { margin: 10px 0; }
.wechat-step-list.compact span { padding: 8px; font-size: 11px; }
.wechat-task-action { display: flex; justify-content: center; width: 100%; margin-top: 10px; padding: 12px 14px; color: #fff; background: #169b49; border-radius: 12px; font-size: 13px; font-weight: 800; }
.public-topbar { display: flex; align-items: center; justify-content: space-between; width: min(100%, 760px); min-height: 60px; margin: 0 auto; padding: 0 16px; }
.public-brand { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 15px; font-weight: 900; }
.public-brand .brand-mark { display: grid; place-items: center; width: 27px; height: 27px; color: #fff; background: var(--brand); border-radius: 9px; font-size: 15px; }
.public-home-link { padding: 7px 10px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 999px; font-size: 11px; font-weight: 800; }
.promoter-public-shell .page { padding-top: 8px; }
.promoter-public-intro { display: flex; align-items: center; gap: 16px; padding: 22px; background: linear-gradient(135deg, #fff8f1, #fff); border: 1px solid #f1dfcd; border-radius: 24px; }
.promoter-public-intro h1 { margin: 5px 0; font-size: 22px; }
.activity-material-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.jd-activity-card { overflow: hidden; display: block; color: inherit; text-decoration: none; background: #fff; border: 1px solid #f1dfcd; border-radius: 18px; box-shadow: 0 8px 22px rgba(73, 48, 25, .06); }
.jd-activity-card img { display: block; width: 100%; aspect-ratio: 2.42 / 1; object-fit: cover; background: #fff7ef; }
.jd-activity-body { padding: 12px 14px 14px; }
.jd-activity-body h3 { margin: 0 0 6px; font-size: 15px; }
.jd-activity-body p { min-height: 20px; margin: 0 0 10px; color: var(--muted); font-size: 12px; }
.jd-activity-body span { color: #d85e2c; font-size: 12px; font-weight: 700; }
.activity-disclaimer { margin: 10px 2px 0; color: var(--muted); font-size: 12px; }
@media (max-width: 680px) { .activity-material-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; } .jd-activity-body { padding: 10px; } }
.promoter-public-intro p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.promoter-category-tabs { display: flex; gap: 8px; margin: 18px 0 4px; overflow-x: auto; padding-bottom: 3px; }
.promoter-category-tabs .category-tab { flex: 0 0 auto; }
.promoter-product-search { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; margin-top: 18px; }
.promoter-product-search input { min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.promoter-product-search .poster-link { margin: 0; white-space: nowrap; }
.promoter-product-search .promoter-search-button { min-width: 62px; padding: 11px 15px; appearance: none; color: #fff; background: var(--brand); border: 0; border-radius: 10px; font-size: 13px; font-weight: 800; cursor: pointer; opacity: 1; -webkit-text-fill-color: #fff; }
.catalog-search-note { margin: 9px 2px 0; color: var(--muted); font-size: 12px; }
.material-channel-config { display: grid; grid-template-columns: minmax(150px, 1fr) auto auto 70px auto; align-items: center; gap: 8px; min-width: 640px; }
.material-channel-config input[type="text"], .material-channel-config input[type="number"] { min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 8px; }
.material-channel-config label { display: flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 12px; }
.material-channel-config .secondary-button { width: auto; margin: 0; padding: 8px 12px; }
.promoter-platform-tabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; margin: 22px 0 8px; padding: 7px; background: #f2f3f5; border-radius: 17px; }
/* 六个平台栏目按每行三项排列，手机端尺寸一致且不出现孤立项。 */
.platform-tab { grid-column: span 2; min-width: 0; padding: 11px 6px; border-radius: 11px; color: var(--muted); text-align: center; font-size: 14px; font-weight: 700; white-space: nowrap; }
.platform-tab.is-active { color: #fff; background: var(--ink); box-shadow: 0 6px 14px rgba(29, 33, 41, .16); }
.taobao-shop-intro { margin: -6px 0 16px; color: var(--muted); font-size: 13px; }
.taobao-shop-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.taobao-shop-card { display: flex; gap: 13px; align-items: center; padding: 16px; color: var(--ink); background: linear-gradient(135deg, #fff8f0, #fff); border: 1px solid #f0dac3; border-radius: 18px; }
.taobao-shop-logo { width: 64px; height: 64px; flex: 0 0 64px; display: grid; place-items: center; overflow: hidden; border-radius: 16px; background: #f4e5d5; color: #9b5a25; font-size: 24px; font-weight: 800; }
.taobao-shop-logo img { width: 100%; height: 100%; object-fit: cover; }
.taobao-shop-logo.is-large { width: 84px; height: 84px; flex-basis: 84px; border-radius: 22px; }
.taobao-shop-body { min-width: 0; }
.taobao-shop-body h3 { margin: 4px 0; font-size: 17px; }
.taobao-shop-body p { margin: 0 0 8px; color: var(--muted); font-size: 12px; }
.taobao-shop-body strong { color: var(--accent); font-size: 13px; }
.taobao-shop-hero { display: flex; gap: 16px; align-items: center; margin-bottom: 20px; padding: 20px; background: linear-gradient(135deg, #fff3e6, #fff); border: 1px solid #f0dac3; border-radius: 22px; }
.taobao-shop-hero h1 { margin: 5px 0; font-size: 26px; }
.taobao-shop-hero p { margin: 0; color: var(--muted); }
.admin-log-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 14px 0 18px; }
.admin-log-tab { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 14px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 13px; }
.admin-log-tab small { padding: 2px 7px; background: #f1f2f4; border-radius: 999px; }
.admin-log-tab.is-active { color: #fff; background: var(--ink); border-color: var(--ink); }
.admin-log-tab.is-active small { color: var(--ink); background: #fff; }
@media (max-width: 640px) { .taobao-shop-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .admin-log-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.selection-guide { padding: 20px; background: #fffaf4; border: 1px solid #f1dfcd; border-radius: 20px; }
.section-intro { margin: -3px 0 14px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.selection-actions { display: grid; gap: 9px; }
.selection-action { display: grid; gap: 4px; padding: 14px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.selection-action strong { font-size: 14px; }
.selection-action small { color: var(--muted); font-size: 12px; }
.category-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.category-chip { padding: 7px 10px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 999px; font-size: 11px; font-weight: 700; }
.coupon-section { margin: 18px 0 8px; padding: 18px; background: linear-gradient(135deg, #fff4e7, #fffaf4); border: 1px solid #f1d5b6; border-radius: 20px; }
.coupon-grid { display: grid; gap: 9px; }
.coupon-card { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px; background: #fff; border: 1px solid #f3dfc9; border-radius: 14px; }
.coupon-card h3 { margin: 6px 0 3px; font-size: 13px; }
.coupon-card p { margin: 0; color: #a04a13; font-size: 12px; font-weight: 700; }
.coupon-highlight { display: inline-block; padding: 4px 7px; color: #fff; background: #e86d23; border-radius: 5px; font-size: 10px; font-weight: 800; }
.coupon-pending { flex: 0 0 auto; color: var(--muted); font-size: 11px; }
.coupon-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.poster-link { padding: 7px 8px; color: var(--brand-dark); background: var(--brand-soft); border-radius: 7px; font-size: 11px; font-weight: 800; }
.poster-page-heading { margin: 8px 0 16px; text-align: center; }
.poster-page-heading h1 { margin: 5px 0; font-size: 23px; }
.poster-page-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.poster-generator { width: min(100%, 430px); margin: 0 auto; }
.poster-loading { margin-bottom: 10px; color: var(--muted); font-size: 12px; text-align: center; }
.poster-png-preview { display: block; width: 100%; height: auto; background: #fff8ef; border: 1px solid #f0dcc7; border-radius: 22px; box-shadow: var(--shadow); -webkit-touch-callout: default; user-select: auto; touch-action: auto; }
.poster-png-preview[hidden] { display: none; }
.poster-share-url { display: grid; gap: 4px; margin-top: 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--line); border-radius: 13px; }
.poster-share-url strong { font-size: 12px; }
.poster-share-url span { overflow-wrap: anywhere; color: var(--muted); font-size: 11px; }
.poster-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px auto; }
.poster-actions .primary-button, .poster-actions .secondary-button { display: flex; align-items: center; justify-content: center; width: auto; margin-top: 0; text-align: center; }
.poster-download.is-disabled { pointer-events: none; opacity: .55; }
.poster-wechat-hint { margin: 8px 6px 0; color: var(--muted); font-size: 12px; line-height: 1.65; text-align: center; }
.poster-back-button { display: flex; justify-content: center; width: min(100%, 430px); margin: 14px auto 0; }
.confirmed-lottery-draw { display: grid; gap: 10px; margin: 14px 0; padding: 16px; background: #fff8f5; border: 1px solid #efd6cf; border-radius: 16px; }
.confirmed-lottery-draw small { color: var(--muted); }
.lottery-ball-list { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.lottery-ball-list.compact { gap: 4px; margin-bottom: 5px; }
.lottery-ball-list.compact .lottery-ball { width: 26px; height: 26px; font-size: 11px; }
.product-landing { display: grid; gap: 18px; }
.product-landing-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow); }
.product-landing-gallery { position: relative; min-width: 0; background: linear-gradient(145deg, #fff5e9, #ffe5d4); }
.product-landing-image { position: relative; height: 430px; background: linear-gradient(145deg, #fff5e9, #ffe5d4); }
.product-landing-image > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-landing-image > span { position: absolute; inset: 0; display: grid; place-items: center; color: #d92929; font-size: 100px; font-weight: 900; }
.product-landing-image em { position: absolute; top: 14px; left: 14px; padding: 6px 9px; color: #fff; background: rgba(35,31,29,.72); border-radius: 999px; font-size: 11px; font-style: normal; }
.product-gallery-thumbnails { position: absolute; z-index: 2; right: 12px; bottom: 12px; left: 12px; display: flex; gap: 8px; padding: 8px; overflow-x: auto; background: rgba(255,255,255,.86); border: 1px solid rgba(255,255,255,.75); border-radius: 14px; box-shadow: 0 8px 24px rgba(35,31,29,.15); backdrop-filter: blur(12px); scrollbar-width: none; }
.product-gallery-thumbnails::-webkit-scrollbar { display: none; }
.product-gallery-thumbnail { flex: 0 0 54px; width: 54px; height: 54px; overflow: hidden; padding: 0; background: #f4eee8; border: 2px solid transparent; border-radius: 9px; cursor: pointer; }
.product-gallery-thumbnail.is-active { border-color: var(--brand); box-shadow: 0 0 0 1px rgba(217,41,41,.18); }
.product-gallery-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-landing-summary { display: flex; flex-direction: column; justify-content: center; padding: 28px; }
.product-recommender { display: flex; align-items: center; gap: 8px; color: var(--brand-dark); font-size: 12px; }
.product-recommender > span { display: grid; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--brand); border-radius: 50%; font-weight: 900; }
.product-landing-summary h1 { margin: 16px 0 10px; font-size: clamp(22px, 4vw, 31px); line-height: 1.35; }
.product-landing-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.product-landing-tags span { padding: 5px 8px; color: var(--muted); background: #f6f3ef; border-radius: 7px; font-size: 11px; }
.product-landing-price { display: flex; align-items: baseline; gap: 7px; margin: 22px 0 2px; color: var(--brand-dark); }
.product-landing-price small { font-weight: 800; }
.product-landing-price strong { font-size: 34px; }
.product-price-details { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 10px; min-height: 22px; margin-bottom: 14px; color: var(--muted); font-size: 12px; }
.product-price-details del { color: #9a9692; }
.product-price-details em { padding: 3px 7px; color: #b63824; background: #fff0e9; border-radius: 6px; font-style: normal; font-weight: 800; }
.product-coupon-ticket { display: grid; grid-template-columns: auto 1fr; align-items: stretch; gap: 0; overflow: hidden; margin-bottom: 15px; color: #a54816; background: #fff8ee; border: 1px solid #ed9a5f; border-radius: 13px; }
.product-coupon-value { display: grid; gap: 2px; min-width: 118px; padding: 11px 13px; color: #fff; background: linear-gradient(135deg, #f47735, #e55229); }
.product-coupon-value small { font-size: 10px; opacity: .88; }
.product-coupon-value b { font-size: 15px; }
.product-coupon-copy { display: grid; align-content: center; gap: 3px; padding: 10px 12px; line-height: 1.4; }
.product-coupon-copy strong { font-size: 13px; }
.product-coupon-copy small { color: #8d694f; font-size: 10px; }
.product-direct-discount { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; padding: 10px 12px; color: #a54816; background: #fff3e6; border-radius: 11px; }
.product-direct-discount b { padding: 3px 7px; color: #fff; background: #ee6a35; border-radius: 5px; font-size: 11px; }
.product-direct-discount span { font-size: 12px; }
.product-buy-button { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 18px; color: #fff; background: linear-gradient(135deg, #f43f3f, #d92929); border-radius: 15px; box-shadow: 0 10px 24px rgba(217,41,41,.22); font-size: 17px; font-weight: 900; text-decoration: none; }
.product-buy-note { margin: 9px 2px 0; color: var(--muted); font-size: 11px; line-height: 1.6; text-align: center; }
.taobao-password-card .product-buy-button { width: 100%; border: 0; cursor: pointer; }
.taobao-password-content { width: 100%; min-height: 90px; margin-bottom: 10px; padding: 12px; color: var(--ink); background: #fff8f1; border: 1px dashed #e7a36f; border-radius: 12px; font-size: 13px; line-height: 1.6; }
.taobao-password-unavailable { display: grid; gap: 9px; padding: 14px; color: #74411f; background: #fff8f1; border: 1px solid #f0d4bd; border-radius: 14px; text-align: center; }
.taobao-password-unavailable p { margin: 0; font-size: 12px; line-height: 1.6; }
.taobao-password-unavailable .secondary-button { justify-content: center; }
.product-trust-strip { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 17px; background: #fffaf4; border: 1px solid #f0dcc7; border-radius: 17px; }
.product-trust-strip > div { display: flex; align-items: center; gap: 10px; }
.product-trust-strip p { display: grid; gap: 2px; margin: 0; }
.product-trust-strip small { color: var(--muted); font-size: 11px; }
.product-trust-strip > a { color: var(--brand-dark); font-size: 12px; font-weight: 800; }
.product-share-panel { padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 18px; }
.product-share-panel h2 { margin: 5px 0 12px; font-size: 18px; }
.product-share-panel > p { margin: 0; padding: 10px 12px; overflow-wrap: anywhere; color: var(--muted); background: #f7f7f5; border-radius: 10px; font-size: 11px; }
.product-share-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.product-share-actions .secondary-button { display: flex; align-items: center; justify-content: center; margin: 0; text-align: center; }
.product-card-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.product-card-image-link { display: block; }
.product-card-image-link, .product-card-info-link { height: auto; }
.product-card-info-link { color: inherit; }
.product-card-image-link .product-image, .product-card-info-link { transition: opacity .18s ease, transform .18s ease; }
.product-card-image-link:hover .product-image, .product-card-image-link:focus-visible .product-image { opacity: .9; }
.product-card-info-link:hover, .product-card-info-link:focus-visible { color: var(--brand-dark); }
.product-card-info-link:focus-visible, .product-card-image-link:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 9px; }
.product-related-cta { display: inline-block; margin-top: 8px; color: var(--brand-dark); font-size: 11px; font-weight: 800; }
.product-landing-disclaimer { padding: 14px 16px; color: var(--muted); background: #f8f6f3; border-radius: 14px; font-size: 11px; line-height: 1.7; }
@media (max-width: 680px) {
  .product-landing { gap: 12px; }
  .product-landing-hero { grid-template-columns: 1fr; border-radius: 20px; }
  .product-landing-image { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .product-landing-image > img { height: 100%; min-height: 0; aspect-ratio: 4 / 3; }
  .product-gallery-thumbnails { right: 9px; bottom: 9px; left: 9px; gap: 6px; padding: 6px; }
  .product-gallery-thumbnail { flex-basis: 48px; width: 48px; height: 48px; }
  .product-landing-summary { padding: 17px; }
  .product-landing-summary h1 { margin-top: 13px; font-size: 22px; }
  .product-landing-price { margin-top: 17px; }
  .product-landing-price strong { font-size: 30px; }
  .product-coupon-ticket { grid-template-columns: minmax(105px, auto) 1fr; }
  .product-coupon-value { min-width: 105px; padding-inline: 10px; }
  .product-trust-strip { align-items: flex-start; }
  .product-trust-strip > a { max-width: 130px; text-align: right; }
  .product-share-actions { grid-template-columns: 1fr; }
}
.activity-promotion-card { display: grid; gap: 12px; margin-top: 18px; padding: 20px; background: linear-gradient(135deg, #fff2e8, #fff); border: 1px solid #f0cfb8; border-radius: 20px; }
.activity-promotion-card h2 { margin: 6px 0; font-size: 19px; }
.activity-promotion-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }

.flash-stack { width: min(100%, 760px); margin: 12px auto -4px; padding: 0 16px; }
.flash { padding: 12px 14px; color: #793c18; background: #fff1dc; border: 1px solid #f0d2a6; border-radius: 12px; font-size: 13px; }
.has-notice-dialog { overflow: hidden; }
.notice-dialog-overlay { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(20,18,16,.48); backdrop-filter: blur(5px); animation: notice-overlay-in .16s ease-out; }
.notice-dialog { width: min(100%, 390px); padding: 22px; background: #fff; border: 1px solid rgba(255,255,255,.7); border-radius: 22px; box-shadow: 0 24px 70px rgba(20,18,16,.28); outline: 0; animation: notice-dialog-in .2s ease-out; }
.notice-dialog-heading { display: flex; align-items: center; gap: 13px; }
.notice-dialog-icon { display: grid; flex: 0 0 44px; place-items: center; width: 44px; height: 44px; color: #fff; background: #22a06b; border-radius: 50%; font-size: 22px; font-weight: 900; }
.notice-dialog-overlay.has-alert .notice-dialog-icon { background: #e5484d; }
.notice-dialog-heading small { color: var(--muted); font-size: 10px; }
.notice-dialog-heading h2 { margin: 3px 0 0; font-size: 20px; }
.notice-dialog-messages { display: grid; gap: 8px; margin-top: 17px; }
.notice-dialog-message { margin: 0; padding: 13px 14px; color: var(--ink); background: #f7f7f5; border-radius: 12px; font-size: 14px; line-height: 1.65; }
.notice-dialog-message.is-alert, .notice-dialog-message.is-error { color: #9f1239; background: #fff1f2; }
.notice-dialog-close { width: 100%; margin-top: 17px; border: 0; cursor: pointer; }
@keyframes notice-overlay-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes notice-dialog-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 480px) {
  .notice-dialog-overlay { align-items: end; padding: 12px 12px calc(76px + env(safe-area-inset-bottom)); }
  .notice-dialog { width: 100%; padding: 20px; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) { .notice-dialog-overlay, .notice-dialog { animation: none; } }

.bottom-nav { position: fixed; z-index: 20; right: 0; bottom: 0; left: 0; display: flex; padding: 7px max(8px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); background: rgba(255,255,255,.95); border-top: 1px solid var(--line); backdrop-filter: blur(16px); }
.nav-item { display: grid; flex: 1 1 0; min-width: 0; place-items: center; gap: 2px; color: #96999e; font-size: 11px; }
.nav-item.is-active { color: var(--brand); font-weight: 700; }
.nav-icon { font-size: 20px; line-height: 1; }

@media (min-width: 720px) {
  .page { padding-top: 28px; }
  .action-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .action-card { min-height: 158px; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .selection-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bottom-nav { left: 50%; width: min(100%, 760px); transform: translateX(-50%); border: 1px solid var(--line); border-bottom: 0; border-radius: 20px 20px 0 0; }
}

/* Admin */
.admin-shell { min-height: 100vh; background: #f4f5f7; }
.admin-header { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 max(20px, calc((100vw - 1240px) / 2)); color: #fff; background: #202124; }
.admin-user { display: flex; align-items: center; gap: 14px; font-size: 13px; }
.text-button { padding: 6px 9px; color: #fff; background: rgba(255,255,255,.1); border: 0; border-radius: 7px; }
.admin-nav { display: flex; gap: 4px; padding: 10px max(20px, calc((100vw - 1240px) / 2)); overflow-x: auto; background: #fff; border-bottom: 1px solid var(--line); }
.admin-nav a { flex: 0 0 auto; padding: 8px 11px; color: var(--muted); border-radius: 8px; font-size: 13px; }
.admin-nav a:hover { color: var(--ink); background: #f3f3f0; }
.admin-form { display: grid; gap: 8px; }
.admin-form label { margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 700; }
.admin-form input, .admin-form select, .admin-form textarea { width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.admin-form input[type="file"] { padding: 9px; background: #fafafa; }
.admin-form input[type="submit"].primary-button { width: 100%; margin-top: 9px; padding: 14px; color: #fff; background: var(--brand); border: 0; border-radius: 12px; font-weight: 800; cursor: pointer; }
.admin-form input[type="submit"].primary-button:hover { background: var(--brand-dark); }
.admin-checkbox-row { display: flex; align-items: center; gap: 9px; margin: 10px 0 2px; color: var(--ink) !important; font-size: 13px !important; }
.admin-checkbox-row input { width: 18px; height: 18px; margin: 0; accent-color: var(--brand); }
.content-article-body { color: var(--text); line-height: 1.8; }
.content-article-body .trix-content h1 { margin: 22px 0 10px; font-size: 22px; }
.content-article-body .trix-content ul, .content-article-body .trix-content ol { padding-left: 24px; }
.content-article-body .trix-content blockquote { margin: 14px 0; padding: 8px 14px; color: var(--muted); background: var(--brand-soft); border-left: 4px solid var(--brand); }
.content-article-link { justify-content: center; text-decoration: none; }
.activity-media-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 10px; }
.activity-media-form > div { padding: 14px; border: 1px dashed var(--line); border-radius: 12px; }
.activity-media-form small { display: block; margin-top: 7px; color: var(--muted); line-height: 1.5; }
.admin-activity-cover-preview, .admin-activity-cover { display: block; width: 100%; max-height: 360px; margin-top: 12px; object-fit: cover; border-radius: 12px; }
.admin-detail-preview, .admin-activity-detail-images { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.admin-detail-preview img, .admin-activity-detail-images img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 9px; }
.admin-activity-details { margin: 12px 0; padding: 15px; color: var(--muted); line-height: 1.7; background: #fafafa; border-radius: 10px; }
.admin-content { width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 25px 0 40px; }
.admin-title { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 19px; }
.admin-title h1 { margin: 4px 0 0; font-size: 28px; }
.admin-title small { color: var(--muted); }
.order-platform-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 19px; padding: 6px; background: #f2f3f5; border-radius: 16px; }
.order-platform-tabs a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 11px 14px; color: var(--muted); border-radius: 11px; font-size: 14px; font-weight: 800; }
.order-platform-tabs a small { color: inherit; font-size: 12px; font-weight: 700; }
.order-platform-tabs a.active { color: var(--brand-dark); background: #fff; box-shadow: 0 2px 8px rgba(33, 35, 38, .08); }
.panel-actions { margin: 0 0 16px; }
.admin-help { margin: 0 0 12px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.oauth-callback-url { display: block; margin: 10px 0 16px; padding: 11px 12px; overflow-x: auto; color: #713d1e; background: #fff6ef; border: 1px solid #f0d7c5; border-radius: 10px; font-size: 12px; }
.oauth-steps { display: grid; gap: 11px; margin: 0; padding-left: 20px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.authorization-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 9px; }
.authorization-actions form { margin: 0; }
.promoter-performance-panel .recent-performance-summary { margin-top: 15px; }
.admin-trend-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.admin-trend-chart { min-width: 0; padding: 15px; background: #fffaf6; border: 1px solid #f0ded2; border-radius: 15px; }
.admin-trend-heading { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.admin-trend-heading strong { font-size: 13px; }
.admin-trend-heading small { color: var(--muted); font-size: 11px; }
.admin-bar-chart { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); align-items: end; gap: 7px; height: 150px; padding: 8px 2px 0; border-bottom: 1px solid #e9d9cf; }
.admin-bar-column { display: grid; grid-template-rows: 17px 1fr 18px; align-items: end; min-width: 0; height: 100%; text-align: center; }
.admin-bar-column b { overflow: hidden; color: var(--ink); font-size: 10px; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.admin-bar-column time { margin-top: 6px; color: var(--muted); font-size: 10px; }
.admin-trend-bar { display: block; width: min(24px, 78%); min-height: 0; margin: 0 auto; border-radius: 7px 7px 2px 2px; }
.admin-trend-bar.uv-bar { background: linear-gradient(180deg, #ff997e, #f2644d); }
.admin-trend-bar.points-bar { background: linear-gradient(180deg, #7bb9ff, #3d7ed8); }
@media (max-width: 680px) { .admin-trend-charts { grid-template-columns: 1fr; } }
.admin-back { color: var(--brand); font-size: 13px; }
.order-sync-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.order-sync-form { display: flex; align-items: center; gap: 8px; }
.order-sync-form select { padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.order-sync-form .primary-button { margin: 0; padding: 10px 14px; }
.order-sync-form .secondary-button { margin: 0; padding: 10px 14px; }
.inline-json-output { max-width: 520px; max-height: 320px; margin: 8px 0 0; padding: 12px; overflow: auto; color: #dbeafe; background: #111827; border-radius: 9px; font: 11px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-product-cell { display: flex; align-items: center; gap: 10px; min-width: 260px; }
.admin-product-cell img { width: 54px; height: 54px; flex: 0 0 54px; object-fit: cover; background: #f3f3f0; border-radius: 9px; }
.admin-product-cell div { display: grid; gap: 4px; }
.admin-product-image-preview { display: grid; justify-items: center; gap: 4px; width: 72px; color: var(--muted); font-size: 10px; }
.admin-product-image-preview img { width: 64px; height: 64px; object-fit: cover; background: #f3f3f0; border-radius: 10px; }
.admin-product-image-preview span { display: grid; place-items: center; width: 64px; height: 64px; background: #f3f3f0; border-radius: 10px; font-size: 10px; }
.bitlink-product-form { display: grid; min-width: 230px; gap: 7px; white-space: normal; }
.bitlink-product-form input[type="file"] { max-width: 230px; font-size: 11px; }
.bitlink-product-form input[type="number"] { width: 108px; min-height: 34px; padding: 6px 8px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.bitlink-product-form label { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.bitlink-product-form .secondary-button { width: max-content; margin: 0; padding: 7px 12px; }
.order-claim-card { padding: 18px; background: #fffaf4; border: 1px solid #f1dfcd; border-radius: 18px; }
.claim-platform-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 14px 0 8px; }
.claim-platform-button { min-height: 44px; padding: 10px 12px; color: #715c51; background: #fff; border: 1px solid #e7d6c9; border-radius: 11px; font: inherit; font-weight: 800; cursor: pointer; }
.claim-platform-button.is-active { color: #fff; background: linear-gradient(135deg, var(--brand), var(--brand-dark)); border-color: var(--brand); box-shadow: 0 5px 12px rgba(210, 85, 56, .2); }
.claim-platform-instruction { margin: 0 0 12px; padding: 10px 12px; color: #7d5d4b; background: #fff3e8; border-radius: 10px; font-size: 13px; line-height: 1.5; }
.order-platform-records { margin-top: 22px; }
.order-platform-records h3 { margin: 0 0 10px; font-size: 15px; }
.taobao-commission-hint { display: inline-block; margin-top: 7px; padding: 4px 7px; color: #b54708; background: #fff1d6; border-radius: 7px; font-size: 11px; font-weight: 800; }
.claim-order-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.claim-order-form input[type="text"] { min-width: 0; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.claim-order-form .primary-button { margin: 0; padding: 12px 15px; }
.admin-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-metric { display: grid; gap: 7px; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 15px; }
.admin-metric span, .admin-metric small { color: var(--muted); font-size: 12px; }
.admin-metric strong { font-size: 27px; }
.admin-metric .small-value { font-size: 17px; }
.admin-metric-link { color: inherit; text-decoration: none; }
.admin-metric-link:hover { border-color: var(--brand); box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.uv-up { color: #18864b !important; }
.uv-down { color: #d34836 !important; }
.uv-chart { display: flex; min-height: 250px; gap: 7px; padding: 24px 4px 2px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.uv-chart-item { display: grid; min-width: 42px; flex: 1 0 42px; grid-template-rows: 22px 180px 22px; align-items: end; justify-items: center; gap: 5px; }
.uv-chart-value { color: var(--muted); font-size: 11px; font-weight: 700; }
.uv-chart-bar { width: min(28px, 72%); height: max(4px, var(--uv-height)); background: linear-gradient(180deg, var(--brand), var(--brand-dark)); border-radius: 7px 7px 2px 2px; }
.uv-chart-item time { color: var(--muted); font-size: 10px; white-space: nowrap; }
.uv-ranking-table { margin-top: 14px; border: 0; border-radius: 10px; }
.uv-promoter-code { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.uv-sparkline { display: flex; align-items: end; width: 150px; height: 36px; gap: 2px; }
.uv-sparkline span { min-width: 3px; flex: 1; height: var(--uv-height); background: #ef796f; border-radius: 2px 2px 0 0; }
.admin-grid { display: grid; gap: 14px; margin-top: 18px; }
.admin-panel { padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }

@media (max-width: 640px) {
  .activity-media-form { grid-template-columns: 1fr; }
  .prize-card-cover { height: 155px; }
  .prize-detail-cover { height: 260px; }
  .promoter-product-search { grid-template-columns: minmax(0, 1fr) auto; }
  .promoter-product-search .poster-link { grid-column: 1 / -1; text-align: center; }
}
.admin-section { margin-top: 14px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.panel-heading h2 { margin: 0; font-size: 17px; }
.panel-heading a { color: var(--brand); font-size: 12px; }
.admin-list-row { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 10px 0; }
.admin-list-row + .admin-list-row { border-top: 1px solid var(--line); }
.admin-list-row > div { display: grid; gap: 4px; }
.admin-list-row small { color: var(--muted); }
.admin-list-row .participation-seed-ids { color: var(--brand-dark); font-weight: 700; overflow-wrap: anywhere; }
.admin-list-row > span { color: var(--muted); font-size: 12px; }
.table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.admin-table { width: 100%; border-collapse: collapse; white-space: nowrap; font-size: 13px; }
.admin-table th, .admin-table td { padding: 13px 15px; text-align: left; border-bottom: 1px solid var(--line); }
.admin-table th { color: var(--muted); background: #fafaf8; font-size: 11px; font-weight: 700; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table tbody tr { transition: background-color .16s ease; }
.admin-table tbody tr:hover { background: #fff8f5; }
.admin-table a { color: #1769aa; }
.admin-table .admin-table-action { display: inline-flex; align-items: center; padding: 7px 10px; color: #fff; background: var(--brand); border-radius: 8px; font-size: 12px; font-weight: 800; text-decoration: none; }
.admin-table .admin-table-action:hover { background: var(--brand-dark); }
.json-button { padding: 6px 9px; color: #1769aa; background: #eef6ff; border: 1px solid #cfe4fa; border-radius: 7px; font-size: 11px; cursor: pointer; }
.source-badge { display: inline-block; padding: 4px 7px; border-radius: 999px; color: #475569; background: #eef2f7; font-size: 11px; font-weight: 700; }
.source-jingfen { color: #7c3aed; background: #f1eafe; }

.admin-filter-form,
.admin-pagination {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 18px 0;
}

.admin-filter-form input,
.admin-filter-form select {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0 12px;
  background: #fff;
}

.admin-filter-form input { min-width: min(320px, 100%); }
.admin-pagination { justify-content: space-between; }
.admin-pagination > div { display: flex; gap: 10px; }
.jd-query-form { display: grid; gap: 10px; }
.jd-query-form label { margin-top: 4px; font-size: 12px; font-weight: 800; }
.jd-query-form input[type="text"], .jd-query-form select, .jd-query-form textarea { width: 100%; padding: 11px 12px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.jd-query-form textarea { resize: vertical; font: 12px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.jd-query-form > small { color: var(--muted); line-height: 1.6; }
.jd-query-form .primary-button { justify-self: start; border: 0; cursor: pointer; }
.jd-query-api-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-bottom: 16px; padding: 6px; background: #f2f3f5; border-radius: 14px; }
.jd-query-api-tabs a { padding: 10px 8px; color: var(--muted); text-align: center; border-radius: 9px; font-size: 12px; font-weight: 800; }
.jd-query-api-tabs a.is-active { color: var(--brand-dark); background: #fff; box-shadow: 0 2px 8px rgba(33,35,38,.08); }
.jd-query-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.jd-query-fields > div { display: grid; gap: 7px; }
.jd-query-warning { margin: 0 0 16px; }
.jd-query-error { color: #8b1f1f; background: #fff0f0; border-color: #f4c5c5; }
.jd-query-output { max-height: 720px; border-radius: 12px; }
.jd-query-local-table { margin-top: 14px; }
@media (max-width: 640px) {
  .jd-query-api-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jd-query-fields { grid-template-columns: 1fr; }
}
.source-material { color: #0369a1; background: #e0f2fe; }
.source-rank { color: #a04a13; background: #fff0df; }
.source-manual { color: #166534; background: #e8f7eb; }
.json-dialog { width: min(900px, calc(100% - 28px)); max-height: min(760px, calc(100vh - 40px)); padding: 0; color: var(--ink); background: #fff; border: 0; border-radius: 16px; box-shadow: 0 24px 80px rgba(0,0,0,.25); }
.json-dialog::backdrop { background: rgba(15, 23, 42, .52); }
.json-dialog-header, .json-dialog-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.json-dialog-header h2 { margin: 4px 0 0; font-size: 18px; }
.dialog-close { color: var(--muted); background: transparent; border: 0; font-size: 26px; line-height: 1; cursor: pointer; }
.json-output { max-height: 570px; margin: 0; padding: 20px; overflow: auto; color: #dbeafe; background: #111827; font: 12px/1.65 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.json-dialog-footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }

@media (min-width: 900px) {
  .admin-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .compact-admin-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: no-preference) {
  .action-card, .primary-button { transition: transform .18s ease, box-shadow .18s ease; }
  .action-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
  .primary-button:active { transform: scale(.99); }
}
