/* Apple-inspired web styling, system typography and a single action accent. */
:root {
  color-scheme: light dark;
  --ink: #1d1d1f; --slate: #606068; --line: #dcdce1; --control-line: #85858f;
  --paper: #f5f5f7; --surface: #fefefe; --input: #fafafa; --accent: #0064cf;
  --accent-soft: #e6effc; --success: #17663e; --success-bg: #e8f4ec;
  --warning: #854800; --warning-bg: #fff2db; --danger: #b02c2c; --danger-bg: #fcecec;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink); background: var(--paper); font-synthesis: none;
}
* { box-sizing: border-box; }
html { scrollbar-gutter: stable; }
body { margin: 0; min-height: 100dvh; font-size: 15px; line-height: 1.6; touch-action: manipulation; }
html.dialog-open, html.dialog-open body, html:has(dialog[open]), html:has(dialog[open]) body { overflow: hidden; }
button, input, textarea { font: inherit; }
button, a, input, textarea { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; } button:disabled { cursor: wait; opacity: .65; }
a { color: var(--accent); text-decoration: none; } a:hover { text-decoration: none; }
:focus { outline: none; }
:focus-visible { outline: none; }
[hidden] { display: none !important; }
h1, h2, h3 { text-wrap: balance; scroll-margin-top: 24px; }
.skip-link { position: fixed; top: 12px; left: 16px; background: var(--surface); border: 1px solid var(--accent); border-radius: 10px; padding: 12px; z-index: 2; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.buyer-shell { width: min(820px,100%); margin: 0 auto; padding: max(32px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left)); }
.buyer-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 40px; }
.brand-mark { display: inline-flex; align-items: center; gap: 11px; color: var(--ink); min-height: 44px; }
.brand-logo-icon { display: block; width: 38px; height: 38px; flex: 0 0 38px; }
.brand-copy { display:grid; gap:1px; min-width:0; line-height:1; }
.brand-copy strong { color:var(--ink); font-size:17px; font-weight:650; letter-spacing:-.035em; }
.brand-copy small { color:var(--slate); font-size:11px; font-weight:500; letter-spacing:.08em; }
.brand-monogram { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--ink); color: var(--surface); font-size: 19px; letter-spacing: -.06em; }
.quiet-status { color: var(--slate); font-size: 12px; }
.buyer-intro { max-width: 660px; padding-bottom: 32px; }
.eyebrow { color: var(--slate); font-size: 13px; margin: 0 0 16px; }
.buyer-intro h1 { margin: 0; font-size: clamp(36px,6vw,56px); line-height: 1.2; letter-spacing: -.045em; font-weight: 600; }
.buyer-intro h1 span { color: var(--accent); }
.intro-copy { max-width: 50ch; color: var(--slate); margin: 24px 0 0; text-wrap: pretty; }
.claim-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: clamp(24px,4vw,40px); }
.lookup-form label, .claim-form label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 8px; }
.input-row { display: flex; gap: 12px; }
input, textarea { display: block; width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--control-line); background: var(--input); border-radius: 10px; padding: 12px; color: var(--ink); }
input::placeholder, textarea::placeholder { color: var(--slate); opacity: 1; }
input,select,textarea { font-size:16px; }
input:focus, textarea:focus { border-color: var(--control-line); }
input:focus-visible,textarea:focus-visible,select:focus-visible { outline:none; border-color:var(--control-line); box-shadow:none; background:color-mix(in srgb,var(--accent-soft) 42%,var(--input)); }
textarea.target-input { height:48px; min-height:48px; resize:none; overflow:hidden; line-height:22px; }
textarea { resize: vertical; min-height: 88px; }
.button { border: 1px solid transparent; border-radius: 10px; padding: 12px 20px; min-height: 44px; display: inline-flex; justify-content: center; align-items: center; gap: 12px; font-weight: 500; white-space: nowrap; transition: transform .15s, background-color .15s; }
.button:hover { text-decoration: none; } .button:active { transform: scale(.98); }
.button-primary, .button-dark { color: #fff; background: var(--accent); }
.button-primary:hover, .button-dark:hover { background: #0056b3; }
.button-arrow { font-size: 18px; line-height: 1; }
.field-hint { color: var(--slate); margin: 12px 0 0; font-size: 12px; }
.notice { padding: 12px 16px; margin-top: 16px; border-radius: 10px; background: var(--accent-soft); color: var(--accent); font-size: 13px; }
.notice.error { background: var(--danger-bg); color: var(--danger); }
.notice.success { background: var(--success-bg); color: var(--success); }
.order-result { border-top: 1px solid var(--line); margin-top: 32px; padding-top: 24px; }
.result-heading, .history-heading, .claim-action-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.result-heading > div { min-width: 0; } .result-heading h2 { margin: 0; font-size: 24px; font-weight: 600; overflow-wrap: anywhere; }
.result-heading-actions { display:flex; align-items:center; gap:8px; }
.change-order { border:0; border-radius:8px; min-height:44px; padding:8px; color:var(--slate); background:transparent; font-size:12px; white-space:nowrap; }
.change-order:hover,.change-order:focus-visible { background:var(--paper); color:var(--ink); }
.has-order .buyer-intro { display:none; }
.has-order .buyer-header { padding-bottom:20px; }
.has-order .order-result { border-top:0; margin-top:0; padding-top:0; }
.has-order .lookup-form:not([hidden]) { margin-bottom:24px; }
.has-order .result-heading .eyebrow { margin-bottom:4px; }
.state-badge { border-radius: 999px; padding: 6px 10px; font-size: 12px; background: var(--paper); color: var(--slate); flex-shrink: 0; }
.state-badge.warn { background: var(--warning-bg); color: var(--warning); }
.state-badge.danger { background: var(--danger-bg); color: var(--danger); }
.state-badge.completed,.state-badge.done { background:var(--success-bg); color:var(--success); }
.state-badge.processing { background:var(--accent-soft); color:var(--accent); }
.service-progress-section { margin-top:20px; padding:14px 0; border-block:1px solid var(--line); }
.service-progress-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.service-progress-heading h3 { font-size:14px; margin:0; }
.progress-refresh { background:var(--input); color:var(--ink); border-color:var(--line); min-height:44px; padding:8px 12px; font-size:12px; }
.service-track { margin:12px 0 8px; }
.service-track progress { display:block; width:100%; height:6px; accent-color:var(--success); border:0; border-radius:999px; overflow:hidden; background:var(--line); }
.service-track progress::-webkit-progress-bar { background:var(--line); border-radius:999px; }
.service-track progress::-webkit-progress-value { background:var(--success); border-radius:999px; }
.service-track progress::-moz-progress-bar { background:var(--success); border-radius:999px; }
.service-track.failed progress { accent-color:var(--danger); }
.service-track.failed progress::-webkit-progress-value { background:var(--danger); }
.service-track.failed progress::-moz-progress-bar { background:var(--danger); }
.service-track-copy { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; color:var(--slate); font-size:12px; font-variant-numeric:tabular-nums; }
.service-track-copy strong { color:var(--success); font-weight:600; }
.service-progress-items { display:flex; flex-wrap:wrap; gap:4px 16px; margin-top:8px; color:var(--slate); font-size:11px; font-variant-numeric:tabular-nums; }
.service-track-steps { display:flex; justify-content:space-between; color:var(--slate); font-size:10px; margin-top:6px; }
.service-track.processing .service-track-steps span:nth-child(2),.service-track.completed .service-track-steps span:last-child { color:var(--ink); font-weight:600; }
.lottery-picker-bar { margin:16px 0; }
.lottery-wheel-picker { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.lottery-prizes-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 0 8px 8px; margin-left:auto; border:0; border-radius:8px; background:transparent; color:var(--slate); font:inherit; font-size:12px; white-space:nowrap; }
.lottery-prizes-button:hover,.lottery-prizes-button:focus-visible { color:var(--ink); background:var(--surface); }
.lottery-wheel-choice { min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); font:inherit; font-size:13px; }
.lottery-wheel-choice[aria-pressed=true] { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); font-weight:600; }
.lottery-wheel-choice:focus-visible,.scroll-cue:focus-visible { background:var(--accent-soft); }
.scroll-cue { position:fixed; z-index:10; bottom:max(18px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:12px; min-height:44px; max-width:calc(100% - 32px); padding:10px 18px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--ink); box-shadow:0 4px 20px rgb(0 0 0 / .1); font-size:12px; white-space:nowrap; }
.order-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 24px; padding:20px 0; margin:0; }
.data-wide { grid-column: 1/-1; }
.data-cell { min-width: 0; } .data-cell span { display: block; color: var(--slate); font-size: 12px; margin-bottom: 4px; }
.data-cell strong { font-size: 14px; font-weight: 500; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.mapping-note { padding: 12px 16px; border-radius: 10px; background: var(--accent-soft); color: var(--accent); font-size: 13px; margin: 24px 0; overflow-wrap: anywhere; }
.claim-form { border-top: 1px solid var(--line); padding-top: 24px; }
.claim-action-row { align-items: flex-end; margin-top: 16px; } .claim-action-row .field-hint { margin: 0; }
.claim-history { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 16px; }
.history-heading { color: var(--slate); font-size: 12px; margin-bottom: 8px; font-variant-numeric: tabular-nums; }
.purchased-service { padding:16px; background:var(--input); border:1px solid var(--line); border-radius:14px; margin-top:16px; }
.purchased-service h3 { margin:0 0 8px; color:var(--slate); font-size:12px; font-weight:500; }
.purchased-spec { display:block; font-size:16px; line-height:1.55; font-weight:600; overflow-wrap:anywhere; }
.service-unit { display:inline-block; white-space:nowrap; }
.service-total { margin:8px 0 0; color:var(--slate); font-size:13px; overflow-wrap:anywhere; }
.purchase-quota { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.purchase-quota span { display:block; font-size:12px; color:var(--slate); }
.purchase-quota strong { display:block; font-size:22px; font-weight:600; line-height:1.5; font-variant-numeric:tabular-nums; }
.quota-remaining { border-left:1px solid var(--line); padding-left:20px; }
.quota-remaining strong { color:var(--accent); }
.history-item { display:block; padding:16px 0; border-bottom:1px solid var(--line); font-size:13px; }
.history-item:last-child { border-bottom:0; }
.history-item-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.history-item-heading strong { font-size:13px; font-weight:600; }
.history-status { flex-shrink:0; padding:3px 8px; border-radius:6px; font-size:11px; color:var(--slate); background:var(--paper); }
.history-status.completed { color:var(--success); background:var(--success-bg); }
.history-status.processing { color:var(--accent); background:var(--accent-soft); }
.history-status.failed { color:var(--danger); background:var(--danger-bg); }
.history-status.pending { color:var(--warning); background:var(--warning-bg); }
.history-service { margin:8px 0 4px; overflow-wrap:anywhere; line-height:1.7; }
.history-progress { margin:0 0 4px; color:var(--slate); font-size:12px; }
.history-meta { margin:0; color:var(--slate); font-size:11px; font-variant-numeric:tabular-nums; }
.history-target { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin:8px 0; font-size:12px; }
.history-target span { color:var(--slate); }
.history-target strong { color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.delivery-content { white-space: pre-wrap; overflow-wrap: anywhere; }
.buyer-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; color: var(--slate); font-size: 12px; padding: 24px 0 0; }
.buyer-footer a { padding: 12px 0; min-height: 44px; white-space: nowrap; }
.site-compliance { width:min(820px,100%); margin:0 auto; padding:0 max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left)); display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px 14px; color:var(--slate); font-size:12px; line-height:1.4; text-align:center; }
.site-compliance a { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 0; color:inherit; white-space:nowrap; }
.site-compliance a:hover { color:var(--ink); }
.site-compliance img { display:block; width:18px; height:20px; object-fit:contain; flex:0 0 auto; }
.compliance-divider { color:var(--line); }
@media (prefers-color-scheme: dark) {
  :root { --ink: #f2f2f5; --slate: #b0b0ba; --line: #404046; --paper: #18181b; --surface: #222225; --input: #28282c; --accent: #86baff; --accent-soft: #25364e; --success: #92dcaf; --success-bg: #233c2b; --warning: #f6cd87; --warning-bg: #423522; --danger: #ffb3b3; --danger-bg: #482b2d; }
  .button-primary, .button-dark { color: #122338; } .button-primary:hover, .button-dark:hover { background: #a5cbff; }
}
@media (max-width: 600px) {
  input,select,textarea { font-size:16px; }
  .buyer-shell { padding-top: 16px; padding-left: max(16px,env(safe-area-inset-left)); padding-right: max(16px,env(safe-area-inset-right)); }
  .buyer-header { padding-bottom: 24px; } .buyer-intro h1 { font-size: 36px; }
  .input-row, .claim-action-row { display: grid; grid-template-columns: minmax(0,1fr); }
  .claim-panel { padding: 24px 20px; } .order-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .data-wide { grid-column: 1/-1; } .result-heading { flex-wrap: wrap; }
  .site-compliance { padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); gap:0 10px; }
  .compliance-divider { display:none; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
.lottery-card { margin-top:24px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--input); }
.lottery-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.lottery-heading span { display:block; color:var(--slate); font-size:11px; }
.lottery-heading h3 { margin:2px 0 0; font-size:17px; letter-spacing:-.02em; }
.lottery-heading-actions { display:flex; align-items:center; gap:12px; }
.lottery-heading-actions > strong { color:var(--accent); font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.lottery-toggle { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 10px; border:0; border-radius:9px; background:transparent; color:var(--slate); font:inherit; font-size:12px; cursor:pointer; }
.lottery-toggle:hover,.lottery-toggle:focus-visible { background:var(--surface); color:var(--ink); }
.lottery-description { margin:8px 0 0; color:var(--slate); font-size:12px; }
.lottery-action { display:flex; align-items:center; gap:12px; margin-top:16px; }
.lottery-action:has(.lottery-inline-message:empty) { display:none; }
.lottery-button { min-height:38px; padding:7px 14px; border-color:var(--line); background:var(--surface); color:var(--ink); font-size:13px; }
.lottery-button:hover { background:var(--paper); }
.lottery-inline-message { margin:0; color:var(--slate); font-size:12px; }
.lottery-inline-message.success { color:var(--success); }
.lottery-inline-message.error { color:var(--danger); }
.lottery-results-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; }
.lottery-results-title { margin:0; color:var(--slate); font-size:12px; font-weight:500; }
.lottery-results { display:grid; gap:12px; }
.lottery-result { min-width:0; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.lottery-result-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:32px; }
.lottery-result-actions { display:flex; align-items:center; flex:none; gap:8px; }
.lottery-result-heading .lottery-result-service { color:var(--ink); }
.lottery-result-heading strong { min-width:0; font-size:14px; overflow-wrap:anywhere; }
.lottery-result-heading .lottery-result-status { flex:none; padding:4px 8px; border-radius:7px; background:var(--input); color:var(--slate); font-size:11px; }
.lottery-result-status.processing,.lottery-result-status.pending_input { color:var(--accent); background:var(--accent-soft); }
.lottery-result-status.failed { color:var(--danger); }
.lottery-result p { margin:5px 0 0; color:var(--slate); font-size:12px; }
.lottery-result .lottery-result-service { color:var(--ink); }
.lottery-result time { display:block; margin-top:6px; color:var(--slate); font-size:10px; font-variant-numeric:tabular-nums; }
.lottery-claim-form { margin-top:10px; }
.lottery-claim-form label { display:block; margin-bottom:8px; color:var(--ink); font-size:13px; font-weight:600; }
.lottery-claim-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.lottery-claim-controls input { height:44px; min-height:44px; padding:9px 10px; font-size:16px; }
.lottery-claim-controls .lottery-button { height:44px; min-height:44px; padding:9px 16px; }
.gift-close { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 10px; border:0; border-radius:8px; color:var(--slate); background:transparent; font-size:12px; }
.gift-close:hover { background:var(--paper); color:var(--ink); }
.gift-open-button { display:flex; align-items:center; justify-content:center; gap:20px; width:100%; min-height:132px; margin-top:16px; padding:8px 16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink); text-align:left; transition:background-color .18s; }
.gift-open-button:hover:not(:disabled) { background:var(--paper); }
.gift-open-button:disabled { cursor:default; opacity:1; }
.gift-open-copy { min-width:0; }
.gift-open-copy strong { display:block; font-size:16px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.gift-open-copy > span { display:block; margin-top:5px; color:var(--slate); font-size:11px; line-height:1.6; white-space:normal; }
.gift-scene { position:relative; display:block; width:100px; height:112px; flex:0 0 100px; overflow:hidden; isolation:isolate; }
.gift-halo { position:absolute; width:96px; height:96px; top:10px; left:2px; border-radius:50%; background:var(--accent-soft); }
.gift-box { position:absolute; width:64px; height:53px; left:18px; bottom:13px; border-radius:4px 4px 9px 9px; background:linear-gradient(120deg,#92bded,#699fd8); box-shadow:inset -7px 0 0 rgb(40 80 140 / .1),0 7px 12px rgb(40 80 140 / .12); }
.gift-ribbon { position:absolute; inset:0 auto 0 25px; width:14px; background:#edf4ff; }
.gift-lid { position:absolute; z-index:2; left:-4px; top:-9px; width:72px; height:15px; border-radius:4px; background:#a4c9f0; box-shadow:0 3px 0 rgb(35 75 130 / .12); }
.gift-lid::after { content:''; position:absolute; inset:0 auto 0 29px; width:14px; background:#edf4ff; }
.gift-bow { position:absolute; width:56px; height:23px; bottom:13px; left:8px; }
.gift-bow::before,.gift-bow::after { content:''; position:absolute; width:23px; height:15px; border:5px solid #adcbee; border-radius:55% 65% 20% 65%; bottom:0; }
.gift-bow::before { left:4px; transform:rotate(22deg); }
.gift-bow::after { right:4px; transform:scaleX(-1) rotate(22deg); }
.gift-spark { position:absolute; width:6px; height:6px; border-radius:2px; background:var(--accent); opacity:.35; transform:rotate(45deg); }
.gift-spark-one { top:22px; left:8px; }
.gift-spark-two { top:12px; right:19px; width:4px; height:4px; }
.gift-spark-three { bottom:24px; right:2px; width:4px; height:4px; }
.is-opening .gift-halo { animation:gift-breathe .85s ease-in-out infinite alternate; }
.is-open .gift-spark { animation:gift-spark-out .45s ease-out both; }
@keyframes gift-breathe { to { transform:scale(.9); opacity:.65; } }
@keyframes gift-spark-out { to { transform:translateY(-18px) rotate(100deg) scale(1.5); opacity:0; } }
.gift-result-dialog { position:fixed; width:min(420px,calc(100% - 32px)); max-height:calc(100dvh - 48px); overflow:hidden; overflow:clip; padding:0; border:1px solid var(--line); border-radius:22px; background:var(--surface); color:var(--ink); box-shadow:0 24px 90px rgb(0 0 0 / .2); text-align:center; font-family:inherit; }
.gift-dialog-scroll { box-sizing:border-box; margin:6px; padding:18px; max-height:calc(100dvh - 62px); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; border-radius:16px; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.gift-dialog-scroll::-webkit-scrollbar { width:8px; }
.gift-dialog-scroll::-webkit-scrollbar-track { background:transparent; margin-block:16px; }
.gift-dialog-scroll::-webkit-scrollbar-thumb { background:var(--line); border-radius:999px; border:2px solid transparent; background-clip:padding-box; }
.gift-result-dialog::backdrop { background:rgb(12 17 30 / .42); }
.target-confirm-dialog h2 { margin:8px 0 24px; font-size:22px; }
.target-confirm-label { margin:0; font-size:13px; color:var(--slate); }
.target-confirm-value { display:block; margin:4px 0 20px; font-size:28px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#target-confirm-warning { color:var(--danger); font-size:14px; margin:0 0 24px; }
.target-confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.target-confirm-actions .button { padding-inline:8px; }
#target-confirm-cancel { background:var(--input); color:var(--ink); border:1px solid var(--line); }
.gift-prizes-dialog { width:min(520px,calc(100% - 32px)); text-align:left; }
.gift-result-dialog.gift-prizes-dialog h2 { margin:16px 0; font-size:22px; }
.gift-prizes-dialog .lottery-wheel-picker { margin-bottom:20px; }
.lottery-prizes { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.gift-prize-item { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:12px; padding:16px 12px; border:1px solid var(--line); border-radius:12px; background:var(--input); }
.gift-prize-marker { width:8px; height:8px; border-radius:50%; background:var(--accent); }
.prize-tone-1,.prize-tone-8 { background:#b45309; }.prize-tone-2,.prize-tone-7 { background:#15803d; }.prize-tone-3,.prize-tone-9 { background:#be185d; }.prize-tone-4,.prize-tone-10 { background:#7c3aed; }.prize-tone-5,.prize-tone-11 { background:#0e7490; }.prize-tone-6 { background:#c2410c; }
.gift-prize-content { min-width:0; overflow-wrap:anywhere; }
.gift-prize-content > strong { display:block; font-size:14px; font-weight:600; line-height:1.5; }
.gift-prize-content p { margin:6px 0 0; font-size:12px; line-height:1.7; color:var(--slate); }
.gift-prize-chance { min-width:54px; text-align:right; font-variant-numeric:tabular-nums; }
.gift-prize-chance strong { display:block; color:var(--ink); font-size:17px; font-weight:600; }
.gift-prize-chance span { display:block; color:var(--slate); font-size:10px; margin-top:4px; }
.gift-result-top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:-8px -8px 0 0; }
.gift-result-top > span { color:var(--slate); font-size:12px; }
.gift-result-eyebrow { margin:12px 0 8px; font-size:12px; color:var(--slate); }
.gift-result-dialog h2 { margin:0; font-size:26px; line-height:1.4; letter-spacing:-.025em; overflow-wrap:anywhere; }
#gift-result-description { margin:12px 0 0; font-size:14px; color:var(--slate); overflow-wrap:anywhere; }
.gift-result-services { padding:12px; background:var(--input); border:1px solid var(--line); border-radius:10px; font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.gift-result-remaining { margin:20px 0; color:var(--slate); font-size:12px; }
.gift-result-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
.gift-result-actions .button { width:100%; min-height:44px; }
.gift-celebration { position:relative; width:110px; height:62px; margin:8px auto 0; }
.gift-celebration::after { content:''; position:absolute; width:48px; height:42px; left:31px; top:16px; border-radius:7px; background:linear-gradient(90deg,#91bdea 40%,#ecf3fd 40% 60%,#91bdea 60%); box-shadow:0 -8px 0 -2px #aacbf0; }
.gift-celebration i { position:absolute; z-index:1; left:50%; top:36px; width:5px; height:9px; border-radius:2px; background:#8db6e2; opacity:0; --piece-x:36px; --piece-y:-30px; --piece-turn:100deg; }
.gift-celebration i:nth-child(2n) { background:#b3a7d3; --piece-y:-50px; }
.gift-celebration i:nth-child(3n) { background:#d4b57d; --piece-x:15px; --piece-turn:-130deg; }
.gift-celebration i:nth-child(4n) { --piece-x:50px; --piece-y:12px; }
.gift-celebration i:nth-child(n+7) { --piece-x:-40px; --piece-turn:-95deg; }
.gift-celebration i:nth-child(8),.gift-celebration i:nth-child(11) { --piece-x:-17px; --piece-y:-49px; }
.gift-celebration i:nth-child(2),.gift-celebration i:nth-child(5),.gift-celebration i:nth-child(9) { animation-delay:.08s; }
.gift-result-dialog[open]:not(.gift-result-reduced) .gift-celebration i { animation:gift-confetti 1s ease-out both; }
@keyframes gift-confetti { 0% { opacity:0; transform:translate(0,0) rotate(0); } 12%,65% { opacity:1; } 100% { opacity:0; transform:translate(var(--piece-x),var(--piece-y)) rotate(var(--piece-turn)); } }
@media (max-width:600px) { .gift-open-button { gap:16px; padding:12px; }.gift-scene { flex-basis:100px; width:100px; }.gift-open-copy strong { font-size:14px; text-wrap:balance; } }
@media (max-width:380px) { .gift-open-button { flex-direction:column; gap:8px; padding:12px; text-align:center; }.gift-open-copy strong { font-size:15px; } }
@media (max-width:600px) {
  .lottery-action { align-items:flex-start; flex-direction:column; }
  .lottery-claim-controls { grid-template-columns:minmax(0,1fr) auto; }
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:none;
  box-shadow:none;
  filter:brightness(.88);
}
.room-controls { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
#refresh-progress { margin:0; }
.room-back { display:inline-flex; align-items:center; min-height:44px; }
#collision-label { display:flex; align-items:center; min-height:44px; gap:8px; }
.room-numbers { font:600 32px/1.3 ui-monospace,monospace; overflow-wrap:anywhere; margin:16px 0; }
#room-map { width:100%; min-height:48px; padding:12px; background:var(--surface); color:var(--ink); border:1px solid var(--control-line); border-radius:12px; font:inherit; }
#collision-mode { display:inline-block; width:20px; min-height:20px; vertical-align:middle; }
.skip-link:not(:focus) { clip-path:inset(50%); width:1px; height:1px; overflow:hidden; }

/* Shared order states; focus and input styles are intentionally unchanged. */
.state-badge.blue { background:var(--accent-soft); color:var(--accent); }
.state-badge.purple { background:#f0e8fc; color:#7040a0; }
.result-status-note { margin:0 0 16px; color:var(--slate); font-size:13px; }
.history-status.stopped { background:var(--danger-bg); color:var(--danger); }
@media(prefers-color-scheme:dark) { .state-badge.purple { background:#332344; color:#dab7ff; } }



/* Room controls share the order page's typography and color tokens. */
.has-room-service .purchased-service { display:none; }
.has-room-service #order-result > .order-grid { padding:0; margin:12px 0 20px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; }
.has-room-service #order-result > .order-grid .data-cell { padding:0; border:0; background:none; }
.has-room-service #order-result > .order-grid .data-cell:nth-child(n+3) { display:none; }
.has-room-service .result-heading h2 { font-size:22px; }
.has-room-service .result-heading .eyebrow { display:none; }
.room-services { display:grid; gap:24px; min-width:0; }
.room-service-card { min-width:0; padding:24px 0 0; border-top:1px solid var(--line); }
.room-service-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.room-unit-label { color:var(--ink); font-size:15px; font-weight:600; margin:0; }
.room-side-panel { display:grid; align-content:start; gap:20px; min-width:0; }
.room-quota-panel { border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line)); border-radius:16px; background:color-mix(in srgb,var(--accent-soft) 32%,var(--surface)); padding:20px; }
.room-quota-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; color:var(--slate); font-size:12px; }
.room-quota-panel > strong { display:block; color:var(--accent); font-size:clamp(28px,3.4vw,36px); font-weight:650; line-height:1.3; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.room-quota-panel > p { color:var(--slate); font-size:12px; margin:8px 0 0; }
.room-quota-panel > p:empty { display:none; }
.room-text-action,.room-icon-close { font:inherit; border:0; border-radius:8px; background:transparent; color:var(--slate); min-height:44px; padding:8px 12px; }
.room-text-action:hover,.room-text-action:focus-visible,.room-icon-close:hover,.room-icon-close:focus-visible { background:var(--paper); color:var(--ink); }
.room-quota-heading .room-text-action { font-size:12px; padding-inline:8px; margin:-10px -8px; }
.room-workspace { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:20px; align-items:start; }
.room-stage { border-radius:18px; border:1px solid var(--line); padding:24px; background:var(--paper); min-width:0; display:flex; align-items:center; min-height:300px; }
.room-service-card[data-room-state="active"] .room-stage { background:color-mix(in srgb,var(--accent-soft) 22%,var(--surface)); border-color:color-mix(in srgb,var(--accent) 20%,var(--line)); }
.room-service-card:is([data-room-state="paused"],[data-room-state="blocked"]) .room-stage { min-height:0; padding:24px; align-self:stretch; }
.room-service-card:is([data-room-state="paused"],[data-room-state="blocked"]) .room-stage h3 { font-size:23px; margin:8px 0; }
.room-service-card[data-room-state="paused"] .room-stage-label { color:var(--warning); }
.room-service-card[data-room-state="blocked"] .room-stage-label { color:var(--danger); }
.room-service-card[data-room-state="blocked"] .room-quota-panel { border-color:var(--line); background:var(--paper); }
.room-service-card[data-room-state="blocked"] .room-quota-panel > strong { color:var(--ink); }
.room-stage > div { width:100%; }
.room-stage h3 { margin:10px 0 12px; font-size:24px; font-weight:600; letter-spacing:-.03em; }
.room-stage p { font-size:13px; margin:12px 0 0; color:var(--slate); }
.room-stage-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.room-stage-label { color:var(--slate); font-size:13px; }
.room-stage h3.room-primary-code { font-size:clamp(40px,6vw,62px); letter-spacing:.025em; line-height:1.15; margin:2px 0 24px; font-weight:650; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.room-stage .room-code-label { margin:24px 0 4px; font-size:12px; color:var(--slate); }
.room-live-label { display:inline-flex; align-items:center; gap:6px; color:var(--success); font-size:12px; font-weight:500; }
.room-live-label i { height:6px; width:6px; border-radius:50%; background:currentColor; }
.room-map-chip { font-size:12px; color:var(--slate); border:1px solid var(--line); border-radius:6px; padding:2px 8px; }
.room-retention > div { display:flex; align-items:baseline; justify-content:space-between; gap:8px; font-size:12px; color:var(--slate); }
.room-countdown { font-size:20px; font-weight:600; color:var(--accent); font-variant-numeric:tabular-nums; white-space:nowrap; }
.room-retention progress { display:block; width:100%; margin:8px 0 16px; height:4px; appearance:none; border:0; border-radius:8px; overflow:hidden; background:var(--accent-soft); }
.room-retention progress::-webkit-progress-bar { background:var(--accent-soft); }
.room-retention progress::-webkit-progress-value { background:var(--accent); border-radius:8px; }
.room-retention progress::-moz-progress-bar { background:var(--accent); border-radius:8px; }
.room-retention.ending .room-countdown { color:var(--warning); }
.room-retention.ending progress::-webkit-progress-value { background:var(--warning); }
.room-retention.ending progress::-moz-progress-bar { background:var(--warning); }
.room-ready-mark { display:grid; place-items:center; width:52px; height:52px; margin-bottom:24px; color:var(--accent); background:var(--accent-soft); border-radius:14px; }
.room-ready-mark svg { width:36px; height:36px; }
.room-ready-facts { display:flex; flex-wrap:wrap; gap:8px 16px; padding-top:20px; margin-top:20px; border-top:1px solid var(--line); font-size:12px; color:var(--slate); }
.room-ready-facts strong { color:var(--ink); font-weight:500; }
.room-stage-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:20px; }
.room-services .button { font-size:14px; padding:10px 16px; min-height:44px; }
.room-services .button-dark,.room-dialog .button-dark { color:var(--ink); background:var(--surface); border:1px solid var(--line); }
.room-services .button-dark:hover,.room-dialog .button-dark:hover { background:var(--input); }
.room-services button:focus-visible,.room-dialog button:focus-visible,.room-dialog summary:focus-visible,.room-services summary:focus-visible { outline:0; box-shadow:none; filter:brightness(.90); }
.room-services button:disabled { cursor:default; }
.room-stage .room-extend-hint { font-size:12px; }
.room-extra-codes { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
.room-extra-codes > div { display:grid; gap:2px; padding:8px 12px; background:var(--surface); border-radius:10px; }
.room-extra-codes span { font-size:12px; color:var(--slate); }
.room-extra-codes strong { font-size:20px; font-weight:600; font-variant-numeric:tabular-nums; }
.room-map-panel { min-width:0; }
.room-map-panel fieldset { border:0; padding:0; margin:0; min-width:0; }
.room-map-panel legend { padding:0 0 12px; font-size:13px; color:var(--slate); }
.room-map-options { display:grid; gap:8px; }
.room-map-options button { text-align:left; min-height:44px; padding:10px 14px; font:inherit; color:var(--ink); background:var(--input); border:1px solid var(--line); border-radius:10px; }
.room-map-options button[aria-pressed="true"] { background:var(--accent-soft); border-color:transparent; color:var(--accent); font-weight:600; }
.room-map-panel .room-preparation { font-size:12px; color:var(--slate); line-height:1.7; margin:14px 0; }
.room-main-action { width:100%; }
.room-experiment { font-size:13px; margin-top:12px; }
.room-experiment label { display:flex; align-items:center; gap:8px; padding:8px 0; }
.room-experiment input { display:inline-block; width:18px; min-height:18px; }
.room-service-footer { display:flex; align-items:center; justify-content:space-between; margin:8px -12px; font-size:13px; }
.room-notice { font-size:13px; padding:12px 16px; color:var(--accent); background:var(--accent-soft); border-radius:10px; margin:0 0 16px; overflow-wrap:anywhere; }
.room-notice.error { color:var(--danger); background:var(--danger-bg); }
.room-recent { font-size:13px; border-top:1px solid var(--line); }
.room-recent summary { padding:14px 0; cursor:pointer; color:var(--slate); border-radius:8px; }
.room-recent ol { list-style:none; padding:0; margin:0; }
.room-recent li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.room-recent li > div { display:grid; gap:2px; }
.room-recent strong { font-weight:500; }
.room-recent time { color:var(--slate); font-size:12px; }
.room-compensation { border-radius:12px; background:var(--warning-bg); color:var(--warning); padding:16px; font-size:13px; margin-top:16px; }
.room-compensation p { margin:0 0 8px; }
.room-dialog { position:fixed; padding:0; border:1px solid var(--line); border-radius:22px; color:var(--ink); background:var(--surface); width:min(520px,calc(100vw - 32px)); max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); overflow:hidden; font:inherit; }
.room-dialog::backdrop { background:rgb(0 0 0 / .32); }
dialog:not([open]) { display:none; }
.buyer-dialog-layer { position:fixed; top:0; right:0; bottom:0; left:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(0,0,0,.32); overflow:hidden; }
.buyer-dialog-layer > dialog.buyer-dialog-fallback { display:block; position:relative; top:auto; right:auto; bottom:auto; left:auto; margin:auto; box-sizing:border-box; max-width:100%; max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); }
.buyer-dialog-fallback .gift-dialog-scroll { max-height:calc(100vh - 62px); max-height:calc(100dvh - 62px); }
.room-dialog-scroll { margin:6px; padding:18px; border-radius:16px; max-height:calc(100vh - 62px); max-height:calc(100dvh - 62px); overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--line) transparent; -webkit-overflow-scrolling:touch; }
.room-dialog-scroll::-webkit-scrollbar { width:6px; }
.room-dialog-scroll::-webkit-scrollbar-thumb { background:var(--line); border-radius:8px; }
.room-dialog-scroll::-webkit-scrollbar-track { margin-block:16px; }
.room-dialog-head { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.room-dialog h2 { margin:0; font-size:21px; font-weight:600; letter-spacing:-.025em; }
.room-dialog h2:focus { outline:0; }
.room-icon-close { font-size:24px; padding:0; min-width:44px; }
.room-dialog-content { font-size:14px; line-height:1.8; padding:4px 0 12px; }
.room-dialog-content p { margin:12px 0; }
.room-dialog-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:8px; }
.room-dialog .button { font-size:14px; padding:10px 16px; }
.room-guide-intro { color:var(--slate); }
.room-help-group h3 { font-size:14px; margin:24px 0 8px; }
.room-help-group details { border-bottom:1px solid var(--line); }
.room-help-group summary { padding:12px 4px; min-height:44px; cursor:pointer; border-radius:8px; }
.room-help-group details p { color:var(--slate); padding-inline:4px; }
.room-standalone .buyer-header { padding-bottom:24px; }
.room-page-title { font-size:24px; font-weight:600; margin:0 0 20px; }
.room-standalone .room-services { background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:0 24px 12px; }
.room-standalone .room-service-card:first-child { border-top:0; }
@media(max-width:600px) {
  .room-workspace { display:flex; flex-direction:column; gap:16px; }
  .room-stage,.room-map-panel,.room-quota-panel { width:100%; box-sizing:border-box; }
  .room-side-panel { display:contents; }
  .room-quota-panel { order:-1; }
  .room-service-card[data-room-state="active"] .room-stage { order:-2; }
  .room-map-panel { order:1; }
  .room-service-card { padding-top:20px; }
  .room-service-header { margin-bottom:20px; }
  .room-stage { padding:20px; min-height:248px; }
  .room-stage h3.room-primary-code { font-size:clamp(40px,12.5vw,54px); }
  .room-quota-panel { padding:16px 18px; }
  .room-quota-heading { margin-bottom:4px; }
  .room-quota-panel > strong { font-size:32px; }
  .room-service-card[data-room-state="ready"] .room-stage { min-height:0; padding:18px; }
  .room-service-card[data-room-state="ready"] [data-stage] { display:grid; grid-template-columns:40px minmax(0,1fr); gap:4px 12px; align-items:center; }
  .room-service-card[data-room-state="ready"] .room-ready-mark { grid-row:1 / 3; width:40px; height:40px; margin:0; border-radius:10px; }
  .room-service-card[data-room-state="ready"] .room-stage-label { display:none; }
  .room-service-card[data-room-state="ready"] .room-stage h3 { margin:0; font-size:18px; }
  .room-service-card[data-room-state="ready"] .room-stage p { grid-column:2; margin:0; font-size:12px; }
  .room-service-card[data-room-state="ready"] .room-ready-facts { grid-column:1 / -1; margin-top:10px; padding-top:12px; gap:8px 12px; }
  .room-map-options { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .room-map-options button { text-align:center; font-size:13px; padding:10px 4px; }
  .room-stage-actions .button { flex:1; }
  .room-dialog-scroll { padding:14px; }
  .room-dialog-actions .button { flex:1; white-space:normal; }
  .room-standalone .room-services { padding-inline:20px; }
}

.room-experiment label{display:flex;align-items:center;gap:10px;min-height:40px}.room-experiment input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent,#007aff)}.room-experiment p{margin:6px 0 0;font-size:12px;line-height:1.6;color:var(--text-secondary,#6e6e73)}

.room-service-card .room-pause-action { min-width:72px; min-height:44px; padding:10px 16px; border:0; border-radius:12px; background:var(--surface); color:var(--ink); font:inherit; font-size:14px; font-weight:600; cursor:pointer; touch-action:manipulation; }
.room-service-card .room-pause-action:hover { background:var(--line); }
.room-service-card .room-pause-action:focus-visible { outline:2px solid var(--slate); outline-offset:3px; }
.room-service-card .room-pause-action:disabled { opacity:.5; cursor:wait; }


.review-reward-card{margin-top:16px;border-radius:16px;background:var(--bg-secondary,#f5f5f7);color:inherit;overflow:hidden;border:1px solid rgba(128,128,128,.14)}
.review-reward-card>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;cursor:pointer;list-style:none;min-height:56px}
.review-reward-card>summary::-webkit-details-marker{display:none}.review-reward-card summary strong{display:block;font-size:15px;font-weight:600}.review-reward-card summary small{display:block;margin-top:4px;font-size:12px;color:var(--text-secondary,#6b6b73)}.review-chevron{font-size:20px}.review-reward-card[open] .review-chevron{transform:rotate(180deg)}
.review-reward-body{padding:0 16px 16px}.review-reward-body form{display:grid;gap:10px}.review-reward-body label{font-size:13px;font-weight:500}.review-reward-body select,.review-reward-body input[type=file]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;border:0;border-radius:10px;padding:12px;font:inherit;font-size:14px;color:inherit;background:var(--bg-primary,#fff)}.review-reward-body :is(select,input):focus-visible{outline:none;box-shadow:none;background:color-mix(in srgb,var(--bg-primary,#fff) 90%,#888 10%)}
.review-reward-body input::file-selector-button{border:0;border-radius:6px;padding:6px 9px;margin-right:8px;background:var(--bg-secondary,#eee);color:inherit;font:inherit}.review-note{font-size:12px;line-height:1.6;color:var(--text-secondary,#6b6b73);margin:0 0 8px}.review-result{font-size:16px;font-weight:600;margin:0 0 6px}.review-success{color:#188252}.review-consent{display:flex;align-items:flex-start;gap:8px;line-height:1.5}.review-consent input{margin-top:3px}.review-reward-body button{justify-self:start;min-height:44px}.review-upload-message{font-size:13px;color:#b34235;margin:0}
.review-admin-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.review-admin-toolbar label{display:grid;gap:6px;font-size:12px}.review-admin-summary{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:20px}.review-admin-summary strong{display:block;font-size:26px;font-variant-numeric:tabular-nums}.review-admin-summary span{font-size:12px;color:var(--text-secondary,#73737c)}.review-admin-page .review-note{max-width:680px}.review-settings{margin-top:20px}.review-settings summary{padding:12px 0;cursor:pointer;font-weight:500}.review-settings form{display:grid;gap:12px;max-width:480px}.review-settings label{display:grid;gap:6px;font-size:13px}.review-settings label.check-label{display:flex;gap:8px;align-items:center}.review-settings input:not([type=checkbox]){width:100%;box-sizing:border-box}.review-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;font-size:13px}
.review-admin-dialog{padding:0;border:0;border-radius:20px;width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 32px);background:var(--surface,var(--bg-primary,#fff));color:inherit;overflow:hidden;font-family:inherit}.review-admin-dialog::backdrop{background:rgba(0,0,0,.38)}.review-dialog-scroll{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;box-sizing:border-box;padding:24px}.review-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.review-dialog-head h2{font-size:20px;margin:0}.review-dialog-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:24px}.review-image{display:block;width:100%;height:auto;border-radius:12px;background:#eee}.review-dialog-info{display:grid;align-content:start;gap:12px}.review-dialog-info p{margin:0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.review-dialog-info label{display:grid;gap:8px;font-size:13px}.review-dialog-info textarea{width:100%;box-sizing:border-box;font:inherit}.review-dialog-actions{display:flex;gap:8px;flex-wrap:wrap}.review-dialog-info .review-risk{padding:12px;border-radius:10px;background:#fff4de;color:#795211}.review-admin-page a:hover{text-decoration:none}
@media(prefers-color-scheme:dark){.review-reward-card{background:var(--bg-secondary,#242427)}.review-reward-body select,.review-reward-body input[type=file]{background:var(--bg-primary,#303034)}.review-admin-dialog{background:var(--surface,#232327)}.review-success{color:#71d5a8}.review-dialog-info .review-risk{background:#3e3320;color:#f2cc8b}}
@media(max-width:640px){.review-dialog-grid{grid-template-columns:1fr}.review-dialog-scroll{padding:16px}.review-dialog-info{grid-row:1}.review-admin-toolbar label{flex:1;min-width:130px}.review-admin-toolbar input{min-width:0;width:100%;box-sizing:border-box}}
.review-dialog-scroll{margin:8px;max-height:calc(100dvh - 48px);padding:16px}
.review-reward-body :is(select,input[type=file]){font-size:16px}
.review-reward-body input::file-selector-button{background:#e5e5e9;color:#33333a}
.review-note,.review-reward-card summary small{color:#65656f}
@media(prefers-color-scheme:dark){.review-reward-body input::file-selector-button{background:#44444c;color:#f5f5f7}.review-note,.review-reward-card summary small{color:#b5b5bf}}

/* Buyer review tutorial 20261021-r1 */
.review-reward-body [hidden]{display:none!important}
.review-guide{margin:0 0 14px;border-radius:12px;background:var(--bg-primary,#fff);overflow:hidden}
.review-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;box-sizing:border-box;cursor:pointer;list-style:none;font-size:13px;font-weight:500}
.review-guide>summary::-webkit-details-marker{display:none}
.review-guide>summary span{color:var(--text-secondary,#65656f);font-size:12px;font-weight:400}
.review-guide>summary:focus-visible{outline:0;background:color-mix(in srgb,var(--bg-primary,#fff) 90%,#888 10%)}
.review-guide-steps{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0;padding:4px 12px 12px;list-style:none}
.review-guide-steps li{min-width:0;margin:0;font-size:13px;line-height:1.6}
.review-guide-steps p{display:flex;align-items:flex-start;gap:8px;margin:0 0 8px}
.review-guide-steps b{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--bg-secondary,#eee);font-size:12px;font-weight:600}
.review-guide-steps img{display:block;width:100%;height:auto;border-radius:10px}
.review-guide-footer{margin:0;padding:0 12px 12px;font-size:12px;line-height:1.6;color:var(--text-secondary,#65656f)}
.review-upload-tip{margin:0;font-size:13px;line-height:1.6;color:var(--text-secondary,#65656f)}
.review-file-picker{position:relative;display:flex;align-items:center;gap:12px;min-height:68px;padding:12px;box-sizing:border-box;border-radius:12px;background:var(--bg-primary,#fff);cursor:pointer;overflow:hidden}
.review-file-picker>span{display:grid;gap:4px;min-width:0}
.review-file-picker strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}
.review-file-picker small{font-size:12px;font-weight:400;color:var(--text-secondary,#65656f)}
.review-file-picker svg{flex:none;width:22px;height:22px;color:currentColor}
.review-file-picker input[type=file]{position:absolute;inset:0;width:100%;height:100%;padding:0;opacity:0;cursor:pointer}
.review-file-picker:focus-within{background:color-mix(in srgb,var(--bg-primary,#fff) 90%,#888 10%)}
.review-reward-body .review-consent{display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;font-size:12px;line-height:1.6}
.review-reward-body .review-consent input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-width:18px;min-height:18px;margin:1px 0 0;padding:0;accent-color:var(--text-primary,#333)}
@media(max-width:640px){.review-guide-steps{grid-template-columns:1fr;gap:16px}}
@media(prefers-color-scheme:dark){.review-guide,.review-file-picker{background:var(--bg-primary,#303034)}.review-guide>summary span,.review-guide-footer,.review-upload-tip,.review-file-picker small{color:#b5b5bf}}

/* Review moderation controls 20261022-r2 */
.review-dialog-info .review-check{display:flex;align-items:flex-start;gap:10px;min-height:44px;box-sizing:border-box;padding:10px 12px;border-radius:10px;background:var(--surface-soft,#f5f5f7);cursor:pointer;line-height:1.6}
.review-dialog-info .review-check input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-width:18px;min-height:18px;margin:1px 0 0;padding:0;accent-color:var(--text-primary,#333)}
.review-dialog-info .review-check span{min-width:0;overflow-wrap:anywhere}
.review-dialog-info .review-check:has(input:focus-visible){background:var(--surface-hover,#e8e8ed)}
.review-dialog-info .review-reason-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.review-dialog-info .review-reason-head label{display:block}
.review-dialog-info .review-reason-preset{min-height:44px;padding:8px 10px;font-size:12px;white-space:nowrap;background:var(--surface-soft,#f5f5f7);color:inherit;border:0;box-shadow:none}
.review-dialog-info .review-reason-preset:focus-visible{outline:0;background:var(--surface-hover,#e8e8ed);text-decoration:underline;text-underline-offset:3px}
@media(prefers-color-scheme:dark){.review-dialog-info .review-check,.review-dialog-info .review-reason-preset{background:var(--surface-soft,#303034)}.review-dialog-info .review-check:has(input:focus-visible),.review-dialog-info .review-reason-preset:focus-visible{background:var(--surface-hover,#44444c)}}

@media(max-width:640px){.review-dialog-info textarea{font-size:16px}}

/* Review quick filters and aligned toolbar 20261022-r3 */
.review-admin-page .review-quick-filters{display:flex;align-items:center;gap:4px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 16px;padding:4px;border-radius:12px;background:var(--rail,#f1f1f4)}
.review-admin-page .review-quick-filters button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:0;padding:8px 16px;border:0;border-radius:9px;background:transparent;color:var(--muted,#65656f);font:inherit;font-size:13px;font-weight:500;line-height:1.4;white-space:nowrap;box-shadow:none;cursor:pointer;touch-action:manipulation}
.review-admin-page .review-quick-filters button[aria-pressed=true]{background:var(--surface,#fff);color:var(--text,#1d1d1f);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.review-admin-page .review-quick-filters button:hover{color:var(--text,#1d1d1f);background:var(--input,#e8e8ed)}
.review-admin-page .review-quick-filters button:focus-visible{outline:0;background:var(--accent-soft,#e5e5eb);color:var(--text,#1d1d1f)}
.review-admin-page .review-admin-toolbar{align-items:flex-end;margin-bottom:16px}
.review-admin-page .review-admin-toolbar label{margin:0;line-height:1.4}
.review-admin-page .review-admin-toolbar :is(input,select,button){box-sizing:border-box;height:44px;min-height:44px;margin:0}
.review-admin-page .review-admin-toolbar>button{align-self:flex-end}
@media(max-width:640px){.review-admin-page .review-quick-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.review-admin-page .review-quick-filters button{padding:8px 4px;font-size:12px}.review-admin-page .review-admin-toolbar :is(input,select){font-size:16px}}

/* Review dashboard daily metrics and single-row filters */
.review-admin-page .review-filter-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
.review-admin-page .review-filter-row .review-quick-filters{flex:none;margin:0}
.review-admin-page .review-filter-row .review-admin-toolbar{flex:1;justify-content:flex-end;min-width:0;margin:0}
.review-admin-page .review-today{margin:0 0 20px;padding:16px;border-radius:14px;background:var(--surface-soft,#f5f5f7)}
.review-admin-page .review-today h3{display:flex;align-items:baseline;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600}
.review-admin-page .review-today h3 span{font-size:12px;font-weight:400;color:var(--text-secondary,#73737c);font-variant-numeric:tabular-nums}
.review-admin-page .review-today h3>small{margin-left:auto;font-size:12px;font-weight:500;color:var(--muted,#65656f)}
.review-admin-page .review-today-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.review-admin-page .review-today-grid>div{min-width:0;padding:10px 12px;border-radius:10px;background:var(--surface,#fff)}
.review-admin-page .review-today-grid strong{display:block;font-size:22px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.review-admin-page .review-today-grid strong small{margin-left:4px;font-size:12px;font-weight:500}
.review-admin-page .review-today-grid span{display:block;margin-top:4px;font-size:12px;color:var(--text-secondary,#73737c)}
@media(prefers-color-scheme:dark){.review-admin-page .review-today{background:var(--rail,#242427)}.review-admin-page .review-today-grid>div{background:var(--surface,#303034)}.review-admin-page .review-today h3 span,.review-admin-page .review-today h3>small,.review-admin-page .review-today-grid span{color:var(--muted,#b5b5bf)}}
@media(max-width:980px){.review-admin-page .review-filter-row{align-items:stretch;flex-direction:column;gap:12px}.review-admin-page .review-filter-row .review-admin-toolbar{justify-content:flex-start}}
@media(max-width:640px){.review-admin-page .review-today{padding:12px}.review-admin-page .review-today-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.review-admin-page .review-today-grid>div{padding:9px 10px}.review-admin-page .review-today-grid strong{font-size:20px}}


.order-item-picker{display:grid;gap:8px;margin:16px 0;min-width:0;font-size:13px}
.order-item-picker select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line,#d9dde3);border-radius:12px;font:inherit;font-size:16px;color:inherit;background:var(--card,#fff);outline:none;box-shadow:none;touch-action:manipulation}
.order-item-picker select:focus,.order-item-picker select:focus-visible{outline:none;box-shadow:none;background:var(--soft,#f0f2f5)}
@media(prefers-color-scheme:dark){.order-item-picker select{background:var(--card,#20232a);border-color:var(--line,#424650)}.order-item-picker select:focus,.order-item-picker select:focus-visible{background:var(--soft,#30343d)}}


/* Buyer UI v2: loaded as one render-blocking stylesheet, never a late skin. */
:root{--ink:#1d1d1f;--slate:#6e6e73;--line:rgba(30,30,40,.09);--paper:#f5f5f7;--surface:#fff;--input:#f5f5f7;--accent:#0071e3;--accent-soft:#edf5ff;--control-line:transparent;--success:#158047;--success-bg:#eaf6ed;--warning:#906015;--danger:#b73939;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
html{scrollbar-gutter:stable}body{background:var(--paper);font-size:14px}*{letter-spacing:0!important}button,a,input,textarea{touch-action:manipulation}button{font-weight:500}button:disabled{cursor:default}a:hover{text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--slate) 22%,transparent)}input:focus,textarea:focus{background:var(--accent-soft);border-color:transparent;box-shadow:none;outline:none}input,textarea{background:var(--input);border:1px solid transparent;font-size:16px;outline:none}button,.button{border-radius:10px;min-height:44px}.button{padding:11px 18px;box-shadow:none;font-size:14px}.button-primary{background:var(--accent);border-color:transparent}.button-dark{background:var(--input);color:var(--ink);border-color:transparent}.buyer-shell{width:min(1120px,100%);padding:0 24px 24px}.buyer-header{height:100px;padding:0;gap:16px}.brand-logo-icon{width:32px;height:32px;flex-basis:32px}.brand-copy{display:flex;gap:12px;align-items:center}.brand-copy strong{font-size:20px}.brand-copy small{font-size:12px;border-left:1px solid var(--line);padding-left:12px;line-height:20px}.quiet-status{font-size:12px}.buyer-intro{max-width:580px;margin:46px auto 0;padding:0 0 28px}.buyer-intro .eyebrow{display:none}.buyer-intro h1{font-size:48px;line-height:1.2;font-weight:600}.buyer-intro h1 span{color:var(--slate)}.intro-copy{font-size:15px;margin-top:18px}.claim-panel{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}.lookup-form{max-width:580px;margin:0 auto 64px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.lookup-form label{font-size:13px;margin-bottom:10px}.lookup-form .input-row{flex-direction:column;gap:14px}.lookup-form input{min-height:54px;padding:14px 16px}.lookup-form button{min-height:50px;justify-content:center}.lookup-form .field-hint{text-align:center;font-size:12px;margin-top:16px}.has-order .buyer-intro{display:none}.notice{max-width:580px;margin:12px auto 20px;border-radius:12px}.notice:empty{display:none}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;padding:0 2px;min-height:44px}.order-identity{display:flex;align-items:center;min-width:0;gap:9px}.result-heading h1{margin:0;font-size:19px;font-weight:550;line-height:1.4;overflow-wrap:anywhere}.change-order{min-width:52px;min-height:44px;padding:0 10px;background:transparent;border:0;color:var(--slate);font-size:12px;flex-shrink:0}.platform-icon{width:24px;height:24px;display:grid;place-items:center;background:#ff5000;border-radius:6px;flex-shrink:0}.platform-icon img{width:17px;height:17px;display:block}.buyer-content{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:24px;align-items:start}.buyer-primary,.buyer-secondary{display:flex;flex-direction:column;gap:20px;min-width:0}.service-summary,.room-service-card,.order-grid,.lottery-card,#service-progress-section,#review-rewards:not(:empty),#delivery-results:not(:empty){background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 6px 28px -16px rgba(20,25,45,.08);margin:0}.summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.summary-heading h2{font-size:19px;margin:0;font-weight:600}.purchased-service{border:0;padding:20px 0 0;background:transparent;margin:0}.purchased-service h3{display:none}.purchased-spec{font-size:16px;font-weight:550;line-height:1.8}.purchase-quota{margin-top:16px;padding:0;background:transparent;border:0;gap:16px;display:flex;justify-content:space-between}.purchase-quota>div{display:flex;flex-direction:row;gap:8px;font-size:12px;align-items:center}.purchase-quota strong{font-size:13px;color:var(--ink)}.order-grid{display:grid;grid-template-columns:1fr;gap:16px;order:2}.order-grid .data-cell{padding:0;border:0;background:transparent;display:flex;justify-content:space-between;gap:14px;font-size:12px}.order-grid .data-cell strong{font-size:12px;font-weight:500;text-align:right;overflow-wrap:anywhere}.order-grid .data-cell span{color:var(--slate);flex-shrink:0}.order-items-picker{grid-column:1/-1}.claim-form{background:var(--surface);border:1px solid var(--line);border-radius:20px;margin:0;padding:24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.claim-form>label{grid-column:1/-1;font-size:15px;font-weight:600;margin-bottom:0}.claim-form textarea{height:46px;min-height:46px;resize:vertical;padding:10px 14px}.claim-action-row{margin:0;align-items:stretch}.claim-action-row .button{height:46px}.mapping-note{margin:0;border-radius:12px;font-size:13px}.state-badge{border:0;border-radius:6px;padding:4px 8px;font-size:11px;background:var(--accent-soft);color:var(--accent)}.state-badge.completed,.state-badge.success,.history-status.completed,.lottery-result-status.completed{background:var(--success-bg);color:var(--success)}.state-badge.processing{color:var(--accent);background:var(--accent-soft)}.room-services{gap:20px}.room-service-card{padding:24px}.room-service-header{margin:0 0 24px}.room-unit-label{display:flex;align-items:center;gap:12px;font-size:19px}.room-service-symbol{display:grid;place-items:center;width:39px;height:39px;background:var(--accent-soft);color:var(--accent);font-size:25px;border-radius:11px;font-weight:400}.room-quota-panel{border:0;border-radius:0;background:transparent;padding:0 0 20px}.room-quota-heading{margin:0 0 10px;color:var(--slate);font-size:13px}.room-quota-panel>strong{font-size:52px;line-height:1.1;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.room-quota-panel>p{margin:12px 0 0;font-size:11px}.room-pause-summary{background:none;border:0;color:var(--slate);font-size:12px;text-align:left;padding:0;min-height:34px;margin-top:0}.room-workspace{display:flex;flex-direction:column;gap:18px}.room-stage{display:block;width:100%;min-height:0;padding:20px;background:var(--input);border:0;border-radius:14px}.room-stage>[data-stage]{width:100%}.room-stage-top{margin:0 0 14px}.room-service-card[data-room-state=active] .room-stage{border:0;background:var(--input)}.room-stage h3{font-size:20px;margin:8px 0}.room-stage p{font-size:12px}.room-stage-label{font-size:12px}.room-ready-mark,.room-ready-facts{display:none}.room-stage .room-stage-actions{margin-top:18px}.room-code-label{font-size:12px;color:var(--slate);margin:0}.room-code-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.room-code-row .room-primary-code{font-size:36px;font-weight:600;margin:4px 0 8px;font-variant-numeric:tabular-nums}.room-copy{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:8px 15px;min-width:64px;font-size:12px;flex-shrink:0}.room-side-panel{width:100%;display:block}.room-map-panel{width:100%}.room-map-panel fieldset{padding:0;border:0;margin:0}.room-map-panel legend{font-size:12px;color:var(--slate);margin-bottom:10px}.room-map-options{gap:8px}.room-map-options button{border:1px solid var(--line);background:var(--surface);font-size:13px;min-height:44px;padding:10px 12px}.room-map-options button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:transparent}.room-experiment{margin:16px 0 14px;border:0;border-top:1px solid var(--line);padding:0}.room-experiment summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;list-style:none;color:var(--slate);font-size:12px}.room-experiment summary::-webkit-details-marker{display:none}.experiment-disclosure{font-size:11px}.room-experiment[open] .experiment-disclosure{font-size:0}.room-experiment[open] .experiment-disclosure:after{content:'收起';font-size:11px}.room-experiment label{display:flex;align-items:center;justify-content:space-between;flex-direction:row-reverse;min-height:44px;font-size:13px}.room-experiment input{appearance:none;display:block;position:relative;width:38px;min-width:38px;height:24px;min-height:24px;padding:0;border:0;border-radius:20px;background:#dedee3;flex:0 0 38px}.room-experiment input:before{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .18s}.room-experiment input:checked{background:var(--accent)}.room-experiment input:checked:before{transform:translateX(14px)}.room-experiment p{font-size:12px;color:var(--slate);margin:0 0 10px}.room-preparation{font-size:12px;color:var(--slate);margin:14px 0}.room-main-action{width:100%;min-height:46px;margin:0}.room-pause-action{width:100%;margin-top:10px}.room-service-footer{justify-content:flex-start;gap:12px;padding:12px 0 0;border:0;margin:0}.room-text-action{font-size:12px;padding:0 2px;color:var(--slate)}.room-recent{border-top:1px solid var(--line);padding-top:10px;margin-top:6px}.room-recent summary{font-size:12px;min-height:40px;list-style:none}.room-retention{margin-top:12px}.room-retention progress{height:4px}.room-stage-note{color:var(--slate);line-height:1.6}.room-stage-actions{display:flex;flex-wrap:wrap;gap:8px}.room-stage-actions button{font-size:12px;padding:8px 12px;flex:1}.room-extend-hint{font-size:11px}.room-ready-mark+span{display:none}.room-stage h3:only-child{margin:0}.room-compensation{margin:14px 0 0}.room-notice{font-size:12px}.service-progress-heading h3{font-size:15px}.progress-refresh{font-size:12px;padding:0 4px;background:none;border:0;color:var(--accent)}.history-item{border:0;border-top:1px solid var(--line);padding:16px 0;margin:0}.history-heading{font-size:12px;color:var(--slate)}.history-item-heading strong{font-size:13px}.history-service{font-size:14px}.history-meta{font-size:11px}.history-target{font-size:12px}.history-progress{font-size:12px}.service-track{background:none;border:0;padding:12px 0}.service-track progress{height:5px}.service-track-copy{font-size:11px}.lottery-card{padding:0;overflow:hidden;order:0}.lottery-heading{padding:20px 24px;margin:0;border:0;gap:10px}.lottery-heading h3{font-size:15px;margin:0}.lottery-heading>div>span{font-size:10px}.lottery-heading-actions{gap:10px}.lottery-heading-actions strong{font-size:11px;font-weight:400;white-space:nowrap}.lottery-toggle{font-size:11px;min-height:44px;padding:0 2px;border:0;background:none;color:var(--slate)}#lottery-body{padding:0 24px 22px}.lottery-wheel-picker{gap:6px;margin:0 0 12px;flex-wrap:wrap}.lottery-wheel-choice{font-size:12px;min-height:44px;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:var(--surface)}.lottery-wheel-choice[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:transparent}.gift-open-button{display:flex;align-items:center;flex-direction:column;text-align:center;padding:12px 0 0;min-height:0;gap:0;background:transparent;border:0;width:100%}.gift-scene{width:72px;height:80px;transform:scale(.68);margin:-10px auto 0;flex-shrink:0}.gift-halo,.gift-spark{display:none}.gift-open-copy{display:block;padding:0}.gift-open-copy strong{display:block;background:var(--accent);color:white;font-size:13px;min-height:44px;padding:12px 16px;border-radius:10px;margin:0}.gift-open-copy>span{display:none}.gift-open-copy{width:100%}.gift-open-button:disabled .gift-open-copy strong{background:var(--input);color:var(--slate)}.lottery-action{margin:0}.lottery-inline-message{margin:8px 0 0;font-size:12px}.lottery-inline-message:empty{display:none}.lottery-results-heading{margin:4px 0 0;display:flex;align-items:center;justify-content:space-between}.lottery-prizes-button{min-height:44px;font-size:12px;padding:0 2px;border:0;background:transparent;color:var(--slate)}.lottery-results-title{font-size:12px}.lottery-result{padding:14px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;margin:8px 0 0}.lottery-result-heading{gap:8px}.lottery-result-service{font-size:14px}.lottery-result-status{font-size:11px}.lottery-result p{font-size:12px}.lottery-result time{font-size:11px}.lottery-input-controls{display:flex;gap:8px}.lottery-input-controls input{height:44px;min-height:44px}.lottery-claim-form label{font-size:13px;margin-bottom:8px}.site-compliance{max-width:1072px;padding:28px 0 max(64px,env(safe-area-inset-bottom));margin:36px auto 0;border-top:1px solid var(--line);font-size:10px;flex-wrap:wrap;gap:8px 14px}.site-compliance img{width:13px;height:14px}.scroll-cue{position:fixed;z-index:20;left:50%;bottom:calc(8px + env(safe-area-inset-bottom));transform:translateX(-50%);min-height:44px;height:44px;max-width:calc(100% - 32px);width:124px;display:block;margin:0;padding:5px 0;background:transparent;border:0;border-radius:999px;color:var(--ink);font-size:12px;box-shadow:none;white-space:nowrap}.scroll-cue:before{content:'';position:absolute;inset:5px 0;background:var(--surface);border:1px solid var(--line);border-radius:inherit;box-shadow:0 2px 10px #00000014}.scroll-cue>span{position:relative}.scroll-cue:after{display:none}#lottery-section{scroll-margin-top:16px}dialog,.room-dialog{border:1px solid var(--line);border-radius:22px;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:hidden;box-shadow:0 24px 80px #0002;padding:0;background:var(--surface);color:var(--ink)}dialog::backdrop{background:#15152555;backdrop-filter:blur(5px)}.gift-dialog-scroll,.room-dialog-scroll{max-height:calc(100dvh - 44px);padding:24px;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.room-dialog-head,.gift-result-top{align-items:center;display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.room-dialog-head h2{font-size:22px;line-height:1.35;margin:0}.room-icon-close,.gift-close{width:44px;height:44px;min-width:44px;min-height:44px;background:var(--input);border:0;border-radius:50%;padding:0;font-size:12px}.room-icon-close{font-size:24px}.room-dialog-content p,.gift-dialog-scroll p{font-size:14px;color:var(--slate)}.room-dialog-actions,.target-confirm-actions,.gift-result-actions{display:flex;gap:10px;margin-top:20px}.room-dialog-actions>button,.target-confirm-actions>button,.gift-result-actions>button{flex:1;min-width:0;white-space:normal}.target-confirm-value{font-size:30px;background:var(--input);border-radius:12px;padding:16px;overflow-wrap:anywhere}.gift-prize-item{padding:12px 0}.review-reward-card{border:0;border-radius:0;margin:0}.review-reward-card>summary{padding:0;min-height:44px}.review-reward-body{padding:16px 0 0}#review-rewards:not(:empty){padding:20px 24px}.review-reward-card strong{font-size:13px}.review-reward-card small{font-size:11px}.review-chevron{display:none}.review-upload-controls{gap:8px}#order-loading{display:none;max-width:580px;margin:50px auto;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:20px;color:var(--slate);align-items:center;justify-content:center;gap:12px;font-size:13px}.loading-orbit{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:buyer-spin .8s linear infinite}body:not([data-ready="1"]):has(#order-id[value]) #order-loading{display:flex}body:not([data-ready="1"]){visibility:hidden}body[data-ready="1"]{visibility:visible}@keyframes buyer-spin{to{transform:rotate(360deg)}}
@media(min-width:961px){.buyer-primary>.room-services>.room-service-card{padding:28px}.room-quota-panel>strong{font-size:60px}.room-service-card[data-room-state=active] .room-map-panel{margin-top:0}.room-workspace{gap:22px}.buyer-intro{padding-top:12px}}
@media(max-width:960px){.buyer-shell{width:min(680px,100%);padding:0 20px 20px}.buyer-header{height:84px}.buyer-content{grid-template-columns:1fr;gap:18px}.buyer-secondary{gap:16px}.order-grid{order:2;grid-template-columns:1fr 1fr;gap:20px}.order-grid .data-cell{flex-direction:column;gap:4px}.order-grid .data-cell strong{text-align:left}.site-compliance{margin-inline:20px}.buyer-intro h1{font-size:44px}.room-service-card{padding:24px}.room-quota-panel>strong{font-size:52px}}
@media(max-width:480px){.buyer-shell{padding:0 16px 16px}.buyer-header{height:72px}.quiet-status{font-size:11px}.buyer-intro{margin-top:36px;padding-bottom:28px}.buyer-intro h1{font-size:40px}.intro-copy{font-size:14px}.lookup-form{padding:20px}.lookup-form .field-hint{font-size:11px}.result-heading{margin:0 0 12px;gap:8px}.result-heading h1{font-size:16px}.platform-icon{width:22px;height:22px;border-radius:5px}.platform-icon img{width:16px;height:16px}.order-identity{gap:8px}.change-order{min-width:44px;padding:0 8px}.buyer-primary{gap:16px}.room-services{gap:16px}.room-service-card,.service-summary{padding:22px;border-radius:20px}.room-unit-label{font-size:17px;gap:10px}.room-service-header{margin-bottom:24px}.room-quota-panel{padding-bottom:18px}.room-quota-panel>strong{font-size:48px}.room-quota-panel>p{margin-top:10px}.room-code-row .room-primary-code{font-size:32px}.room-stage{padding:18px}.room-workspace{gap:16px}.room-map-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.room-map-options button{font-size:12px;padding-inline:4px}.room-main-action{min-height:46px}.room-pause-summary{font-size:11px}.claim-form{padding:20px;gap:8px}.claim-action-row .button{padding-inline:18px}.claim-form label{font-size:14px}.lottery-heading{padding:18px 22px}#lottery-body{padding:0 22px 20px}.gift-dialog-scroll,.room-dialog-scroll{padding:20px}.room-dialog-head h2{font-size:21px}.site-compliance{margin-top:24px;justify-content:center}.site-compliance .compliance-divider{display:none}.order-grid{padding:22px}.order-grid .data-cell{font-size:11px}.order-grid .data-cell strong{font-size:12px}}
@media(max-width:374px){.result-heading h1{font-size:15px}.order-identity{gap:6px}.room-quota-panel>strong{font-size:42px}.room-service-card{padding:20px}.room-unit-label{font-size:16px}.lottery-heading-actions{gap:7px}}
@media(prefers-color-scheme:dark){:root{--ink:#f5f5f7;--slate:#a1a1a8;--line:#ffffff14;--paper:#141416;--surface:#202023;--input:#2a2a2e;--accent:#71b2ff;--accent-soft:#25374c;--success:#7bd69c;--success-bg:#25392d;--warning:#e9ba6a;--danger:#f49c96}.button-primary,.gift-open-copy strong{background:#0071e3;color:#fff}.room-stage,.room-service-card[data-room-state=active] .room-stage{background:var(--input)}}
body:not([data-ready="1"]){visibility:visible}body:not([data-ready="1"]) .buyer-intro,body:not([data-ready="1"]) .claim-panel{display:none}body:not([data-ready="1"]) #order-loading{display:flex}body[data-ready="1"] #order-loading{display:none}.state-badge.done{background:var(--success-bg);color:var(--success)}
.room-name-copy{display:grid;gap:2px;line-height:1.4}.room-name-copy small{font-size:11px;font-weight:400;color:var(--slate)}.room-stage h3.room-primary-code{font-size:36px;line-height:1.2;font-weight:600;margin:6px 0}.room-stage .room-code-label{margin:0 0 4px;font-size:12px}.room-live-hint{margin:12px 0 0;font-size:11px;color:var(--slate);display:block}.room-stage .room-retention{margin-top:14px}.room-map-panel>.room-stage-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin:14px 0 0}.room-map-panel>.room-stage-actions [data-action="reopen"]{grid-column:1;grid-row:1;min-height:46px}.room-map-panel>.room-stage-actions [data-action="pause"]{grid-column:2;grid-row:1;margin:0;min-width:90px;min-height:46px}.room-map-panel>.room-stage-actions [data-action="destroy"]{grid-column:1/-1;grid-row:2;background:none;padding:0;justify-self:start;min-height:36px;color:var(--slate);font-size:12px}.room-map-panel>.room-stage-actions [data-action="extend"]{grid-column:1/-1;grid-row:3}.room-stage .room-extend-hint{margin:0;font-size:11px}.room-stage .room-extend-hint[hidden]{display:none}.room-stage .room-extend-hint:empty{display:none}
@media(max-width:480px){.room-stage h3.room-primary-code{font-size:32px}.room-quota-panel>p{display:inline-block;margin-right:12px}.room-pause-summary{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:11px;min-height:32px}.room-quota-panel{padding-bottom:18px}.room-map-panel>.room-stage-actions{margin-top:12px}.room-service-footer{padding-top:0}.room-stage .room-code-row{min-height:48px}}
.room-services .room-pause-action{background:var(--input);border:1px solid transparent;color:var(--ink);font-size:13px}.room-map-options{grid-template-columns:repeat(3,minmax(0,1fr))}.room-map-options button{text-align:center}.room-stage .room-code-row{align-items:center}.room-stage [data-extend-hint]{margin-bottom:0}.room-service-card[data-room-state="ready"] [data-stage]{display:block}.room-service-card[data-room-state="ready"] .room-ready-mark{display:none}
.site-compliance{width:calc(100% - 48px);margin-inline:auto}.lottery-picker-bar{margin:0;padding:0}.gift-open-button{margin-top:4px}.gift-scene{flex-basis:80px;width:100px;height:80px;overflow:visible}.lottery-card .gift-open-button:hover:not(:disabled){background:transparent}.room-services .button-dark{background:var(--input);border-color:transparent}
@media(max-width:480px){.site-compliance{width:calc(100% - 32px)}}
.room-standalone .buyer-shell{max-width:740px}.room-standalone .buyer-header{padding-bottom:0}.room-standalone .room-services{background:transparent;border:0;padding:0}.room-standalone .room-page-title{font-size:16px;margin:0 0 18px;overflow-wrap:anywhere}.room-standalone .room-service-card:first-child{border:1px solid var(--line)}.room-standalone .notice{margin:0 0 20px}.room-back{font-size:12px;color:var(--slate);min-height:44px;display:flex;align-items:center}
.room-services button:focus-visible,.room-services summary:focus-visible,.room-dialog button:focus-visible{outline:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--slate) 22%,transparent);filter:none}.room-pause-summary{min-height:44px}.room-dialog-actions>button{font-size:14px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Buyer polish: real reward forms and room actions share the preview geometry. */
.room-services .room-map-panel>.room-stage-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:stretch}
.room-services .room-map-panel>.room-stage-actions [data-action="reopen"]{width:auto;min-width:0;grid-area:1/1;min-height:48px;font-size:15px}
.room-services .room-map-panel>.room-stage-actions [data-action="pause"]{width:auto;min-width:100px;grid-area:1/2;margin:0;padding:12px 16px;min-height:48px;font-size:14px}
.room-services .room-map-panel>.room-stage-actions [data-action="extend"]{width:100%;grid-area:2/1/3/3}
.room-services .room-map-panel>.room-stage-actions.without-pause{grid-template-columns:minmax(0,1fr)}
.room-services .room-map-panel>.room-stage-actions.without-pause [data-action="extend"]{grid-column:1}
.room-services .room-service-footer{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;border-top:1px solid var(--line);margin-top:20px;padding-top:8px}
.room-services .room-service-footer .room-text-action{width:auto;min-height:44px;margin:0;padding:0;background:transparent;border:0;font-size:12px;color:var(--slate)}
.room-services .room-service-footer .room-destroy-action{margin-left:auto;color:var(--danger)}
.room-services .room-recent{display:none}
.room-experiment [data-collision-note],.room-experiment [data-long-note]{margin:0 0 12px;padding:0 48px 0 0;line-height:1.6;color:var(--slate)}
#review-rewards:not(:empty){padding:18px 22px}
#review-rewards .review-reward-card{background:transparent;border:0;border-radius:0;margin:0;overflow:visible}
#review-rewards .review-reward-card>summary{padding:0;gap:12px;min-height:44px}
#review-rewards .review-reward-card summary strong{font-size:14px;line-height:1.5;font-weight:600}
#review-rewards .review-reward-card summary small{font-size:11px;margin-top:3px;color:var(--slate)}
#review-rewards .review-reward-card>summary:after{content:'展开';font-size:12px;color:var(--slate);flex-shrink:0}
#review-rewards .review-reward-card[open]>summary:after{content:'收起'}
#review-rewards .review-reward-body{padding:16px 0 0}
#review-rewards .review-reward-body form{display:grid;gap:12px;min-width:0}
#review-rewards .review-guide{margin:0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 8px}
#review-rewards .review-guide>summary{padding:0;min-height:44px;font-size:12px;gap:8px}
#review-rewards .review-guide>summary span{font-size:12px;color:var(--accent)}
#review-rewards .review-guide-steps{margin:8px 0 12px;padding:0;display:grid;gap:16px}
#review-rewards .review-guide-steps img{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:8px}
#review-rewards .review-file-picker{display:flex;align-items:center;gap:12px;position:relative;width:100%;min-width:0;min-height:76px;padding:16px;background:var(--input);border:1px dashed var(--line);border-radius:12px;text-align:left}
#review-rewards .review-file-picker>svg{width:24px;height:24px;flex:0 0 24px;color:var(--accent)}
#review-rewards .review-file-picker>span{display:grid;gap:4px;min-width:0}
#review-rewards .review-file-picker strong{font-size:13px;overflow-wrap:anywhere}
#review-rewards .review-file-picker small{font-size:11px;color:var(--slate)}
#review-rewards .review-file-picker input[type=file]{position:absolute;inset:0;opacity:0;width:100%;height:100%;padding:0;cursor:pointer}
#review-rewards .review-note{margin:0;font-size:11px;line-height:1.6;color:var(--slate)}
#review-rewards .review-consent{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;text-align:left;font-size:11px;font-weight:400;line-height:1.6;color:var(--slate)}
#review-rewards .review-consent input[type=checkbox]{appearance:auto;width:16px;height:16px;min-height:16px;min-width:16px;flex:0 0 16px;margin:0;padding:0;accent-color:var(--accent)}
#review-rewards button[type=submit]{width:100%;min-height:44px;margin:0;font-size:13px}
#review-rewards .review-upload-message:empty{display:none}
#review-rewards .review-upload-message{margin:0;font-size:12px}
#lottery-body{border-top:1px solid var(--line);padding-top:16px}
.lottery-card .lottery-wheel-picker{display:flex;gap:6px;margin-bottom:8px}
.lottery-card .lottery-wheel-choice{flex:1;min-width:0;padding:8px 6px;min-height:44px;color:var(--slate)}
.lottery-card .lottery-wheel-choice[aria-pressed=true]{color:var(--accent)}
.lottery-card .gift-open-button{display:flex;flex-direction:column;align-items:center;gap:0;padding:12px 0 0;margin:0;background:transparent;min-height:0;isolation:isolate}
.lottery-card .gift-scene{display:block;position:relative;flex:0 0 84px;width:100px;height:84px;margin:0 auto 10px;transform:none;overflow:visible}
.lottery-card .gift-box{position:absolute;left:25px;top:24px;width:50px;height:44px;border-radius:4px;background:#e8c9a5;box-shadow:inset -9px 0 #00000005;transform:none}
.lottery-card .gift-lid{position:absolute;left:-3px;top:-5px;width:56px;height:12px;border-radius:3px;background:#f0d4b4;transform:none;box-shadow:none}
.lottery-card .gift-ribbon{position:absolute;left:21px;top:-5px;width:8px;height:49px;background:#fff5e6;border:0;transform:none}
.lottery-card .gift-bow{position:absolute;left:12px;top:-13px;width:32px;height:16px;border:4px solid #dfbc91;border-radius:50% 50% 5px 5px;background:transparent;transform:rotate(-8deg);box-shadow:none}
.lottery-card .gift-bow:before,.lottery-card .gift-bow:after,.lottery-card .gift-box:before,.lottery-card .gift-box:after,.lottery-card .gift-lid:before,.lottery-card .gift-lid:after{display:none}
.lottery-card .gift-open-copy{width:100%;padding:0}
.lottery-card .gift-open-copy strong{font-size:13px;line-height:20px;min-height:44px;padding:12px 14px}
.lottery-card .lottery-results-heading{min-height:44px;margin-top:4px;gap:8px}
.lottery-card .lottery-results-title{font-size:12px;margin:0}
.lottery-card .lottery-prizes-button{margin-left:auto;white-space:nowrap}
.lottery-card .lottery-claim-controls{display:flex;align-items:stretch;gap:8px}
.lottery-card .lottery-claim-controls input{height:44px;min-height:44px;min-width:0;width:100%;padding:10px 12px;font-size:16px}
.lottery-card .lottery-claim-controls button{flex:0 0 auto;min-width:64px;min-height:44px;padding:10px 14px;margin:0;font-size:13px}
.lottery-card .lottery-claim-form{padding:0;border:0;background:transparent}
.lottery-card .lottery-claim-form label{display:block;margin:0 0 8px;font-size:14px;font-weight:600;color:var(--ink)}
@media(max-width:374px){.room-services .room-map-panel>.room-stage-actions{gap:8px}.room-services .room-map-panel>.room-stage-actions [data-action="pause"]{min-width:86px;padding-inline:12px}.room-services .room-map-panel>.room-stage-actions [data-action="reopen"]{font-size:14px}}


/* Buyer footer and fixed ID field, 20261023 r3 */
.buyer-page #claim-info{height:48px;min-height:48px;max-height:48px;resize:none;line-height:24px;box-sizing:border-box;min-width:0}.buyer-page .lottery-claim-form input{resize:none}.buyer-support{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;margin-top:24px;padding:16px 24px;border:1px solid var(--line);border-radius:24px;background:var(--surface);font-size:13px;color:var(--slate)}body:not(.has-order):not(.room-standalone) .buyer-support{display:none}.buyer-support details{max-width:72%;text-align:right}.buyer-support summary{display:flex;align-items:center;justify-content:flex-end;min-height:44px;color:var(--accent);cursor:pointer;list-style:none}.buyer-support summary::-webkit-details-marker{display:none}.buyer-support p{font-size:12px;line-height:1.7;margin:0 0 8px;color:var(--slate);text-align:left}.site-compliance .buyer-signature{flex:0 0 100%;margin:0 0 16px;text-align:center;font-size:12px;line-height:1.6;color:var(--slate)}@media(max-width:480px){.buyer-support{padding:12px 20px;margin-top:20px}.site-compliance{gap:8px 12px}}

/* Buyer dialog alignment, restrained prize list and touch feedback r4 */
.buyer-page,.buyer-page *{-webkit-tap-highlight-color:transparent}
.buyer-page .room-icon-close,.buyer-page .gift-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;line-height:1;box-sizing:border-box;align-self:center;margin:0}
.buyer-page .room-icon-close{position:relative;font-size:0}
.buyer-page .room-icon-close::before,.buyer-page .room-icon-close::after{content:'';position:absolute;top:50%;left:50%;width:14px;height:1.5px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.buyer-page .room-icon-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.buyer-page .gift-prize-marker{display:none}
.buyer-page .gift-prizes-dialog .lottery-prizes{display:block;list-style:none;padding:0;margin:0}
.buyer-page .gift-prizes-dialog .gift-prize-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.buyer-page .gift-prizes-dialog .gift-prize-item:last-child{border-bottom:0}
.buyer-page .gift-prize-content>strong{font-size:14px;font-weight:500;line-height:1.5}
.buyer-page .gift-prize-chance{min-width:48px;padding-left:8px}
.buyer-page .gift-prize-chance strong{font-size:16px;font-weight:600}
.buyer-page .gift-prize-chance span{margin-top:2px}
.buyer-page .gift-prizes-dialog .lottery-wheel-picker{gap:8px;margin-bottom:8px}
@media(hover:none){.buyer-page .room-text-action:hover{background:transparent;color:var(--slate)}.buyer-page .room-icon-close:hover{background:var(--input);color:var(--slate)}.buyer-page a:hover{text-decoration:none}}

/* Compact gift form and room history r5 */
.buyer-page .buyer-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0!important}
.buyer-page .buyer-room-history{list-style:none;padding:0;margin:0}.buyer-room-history>li{padding:16px 0;border-bottom:1px solid var(--line)}.buyer-room-history>li:first-child{padding-top:4px}.buyer-room-history>li:last-child{border-bottom:0}.buyer-room-history-top{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:13px;color:var(--slate)}.buyer-room-history-top strong{font-size:22px;line-height:1.4;letter-spacing:.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.buyer-room-history dl{margin:12px 0 0;display:grid;gap:6px}.buyer-room-history dl>div{display:flex;justify-content:space-between;gap:16px;font-size:12px;line-height:1.6}.buyer-room-history dt{color:var(--slate)}.buyer-room-history dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums}.buyer-room-history-empty{padding:16px 0}

/* Stable order bootstrap, r6: header first, loader inside main */
.buyer-page #order-loading{width:min(580px,100%);max-width:100%;box-sizing:border-box;margin:24px auto 40px;min-height:160px;padding:24px;order:initial}
.buyer-page:not([data-ready="1"]) .buyer-shell{min-height:52svh}
.buyer-page:not([data-ready="1"]) .buyer-support{display:none}
@media(max-width:600px){.buyer-page #order-loading{min-height:144px;margin:16px auto 32px}}

/* Always-visible room mode controls r8: native independent switches, no accordion. */
.room-mode-options{margin:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0;font-size:13px}
.room-mode-options label{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;margin:0;padding:0;cursor:pointer;color:var(--ink)}
.room-mode-options label[data-long-option]{border-top:1px solid var(--line)}
.room-mode-options label:has(input:disabled){cursor:default;color:var(--slate)}
.room-mode-options label:has(input:focus-visible){background:var(--accent-soft);border-radius:8px}
.room-mode-options input[type=checkbox]{appearance:none;display:block;position:relative;flex:0 0 38px;width:38px;min-width:38px;height:24px;min-height:24px;margin:0;padding:0;border:0;border-radius:20px;background:#85858f;box-shadow:none;outline:none;cursor:inherit;transition:background-color .18s ease}
.room-mode-options input[type=checkbox]::before{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .18s ease}
.room-mode-options input[type=checkbox]:checked{background:var(--accent)}
.room-mode-options input[type=checkbox]:checked::before{transform:translateX(14px)}
.room-mode-options input[type=checkbox]:disabled{opacity:.55}
.room-mode-options [data-long-note],.room-mode-options [data-collision-note]{margin:0;padding:0 48px 12px 0;font-size:12px;line-height:1.6;color:var(--slate)}
.room-mode-options [hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.room-mode-options input[type=checkbox],.room-mode-options input[type=checkbox]::before{transition:none}}

