:root{--ink:#0d1b2a;--pink:#ef3f72;--yellow:#ffc425;--red:#ef3b39;--muted:#687281;--line:#d9dde3;--paper:#f7f6f2}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans TC",sans-serif}.member-header{height:112px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,6vw,88px);background:#fff;border-bottom:1px solid var(--line)}.logo{text-decoration:none;font-size:32px;font-style:italic;font-weight:700;letter-spacing:-3px;color:var(--ink)}.logo i,.logo b,.logo em{font-style:italic}.logo i{color:var(--yellow)}.logo b{color:var(--pink)}.logo em{color:var(--red)}.back-link{color:var(--ink);text-decoration:none;font-weight:600;border-bottom:2px solid var(--yellow);padding:12px 0}.member-shell{min-height:calc(100vh - 162px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.75fr);gap:clamp(28px,5vw,80px);align-items:center;padding:clamp(44px,7vw,100px)}.member-story h1{font-size:clamp(48px,7vw,96px);line-height:.98;letter-spacing:-.06em;margin:24px 0 30px;max-width:850px}.member-story h1 em{font-family:"Playfair Display",serif;color:var(--pink);font-weight:600}.eyebrow{font-family:"DM Mono",monospace;letter-spacing:.16em;font-size:13px}.intro{font-size:clamp(18px,2vw,24px);line-height:1.8;max-width:760px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid var(--line)}.benefits article{padding:26px 22px;border-right:1px solid var(--line)}.benefits article:last-child{border-right:0}.benefits span{font-family:"DM Mono",monospace;color:var(--pink)}.benefits strong,.benefits small{display:block}.benefits strong{font-size:18px;margin:18px 0 8px}.benefits small{line-height:1.6;color:var(--muted)}.auth-card{position:relative;background:#fff;border:1px solid #cfd4da;padding:clamp(34px,5vw,64px);box-shadow:20px 24px 0 rgba(13,27,42,.06);overflow:hidden}.auth-accent{display:flex;position:absolute;left:0;top:0;width:100%;height:7px}.auth-accent i,.auth-accent b,.auth-accent em{flex:1}.auth-accent i{background:var(--yellow)}.auth-accent b{background:var(--pink)}.auth-accent em{background:var(--red)}.auth-card h2{font-size:clamp(38px,5vw,58px);letter-spacing:-.04em;margin:18px 0}.auth-copy{font-size:18px;line-height:1.75;color:var(--muted)}.google-button,.primary-link{width:100%;min-height:62px;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:32px;border:0;background:var(--ink);color:#fff;font-size:17px;font-weight:700;text-decoration:none;cursor:pointer}.google-button svg{width:23px;height:23px;background:#fff;border-radius:50%;padding:2px}.google-button:disabled{opacity:.65}.auth-status{min-height:24px;margin:16px 0 0;text-align:center;color:var(--muted)}.auth-status.error{color:#bd273f}.privacy-note{font-size:13px;line-height:1.7;color:#7a828c;border-top:1px solid var(--line);margin-top:26px;padding-top:20px}.signed-in{text-align:center}.signed-in[hidden],#signedOutView[hidden]{display:none}.signed-in img{width:92px;height:92px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 0 0 2px var(--yellow)}.member-email{color:var(--muted)}.member-state{display:flex;justify-content:center;align-items:center;gap:9px;margin:28px 0}.member-state span{width:10px;height:10px;border-radius:50%;background:#2fa56c}.signout-button{margin-top:18px;background:none;border:0;border-bottom:1px solid var(--ink);padding:8px 0;font-size:15px;cursor:pointer}footer{height:50px;display:flex;align-items:center;padding:0 clamp(24px,6vw,88px);background:var(--ink);color:#fff;font-family:"DM Mono",monospace;font-size:12px;letter-spacing:.12em}.auth-divider{display:flex;align-items:center;gap:14px;margin:28px 0 24px;color:var(--muted);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.phone-form label{display:block;margin:0 0 9px;font-size:15px;font-weight:700}.phone-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch}.country-code{display:flex;align-items:center;padding:0 14px;border:1px solid var(--line);border-right:0;background:#f2f3f5;font-family:"DM Mono",monospace}.phone-form input{min-width:0;height:54px;border:1px solid var(--line);border-radius:0;padding:0 14px;color:var(--ink);background:#fff;font:16px "Noto Sans TC",sans-serif;outline:none}.phone-form input:focus{border-color:var(--pink);box-shadow:inset 0 0 0 1px var(--pink)}.sms-button{min-height:54px;padding:0 18px;border:0;background:var(--ink);color:#fff;font-weight:700;cursor:pointer}.sms-button.verify{background:var(--pink)}.sms-button:disabled{cursor:not-allowed;opacity:.55}.phone-form small{display:block;margin-top:9px;color:var(--muted);line-height:1.6}.verification-area{margin-top:20px}.verification-area[hidden]{display:none}.verification-area .phone-row{grid-template-columns:minmax(0,1fr) auto}.member-email:empty:after{content:"手機會員"}@media(max-width:900px){.member-header{height:92px}.member-shell{grid-template-columns:1fr;padding:38px 24px 60px}.member-story h1{font-size:52px}.benefits{grid-template-columns:1fr}.benefits article{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:40px 1fr}.benefits article small{grid-column:2}.auth-card{box-shadow:10px 12px 0 rgba(13,27,42,.06)}}@media(max-width:520px){.logo{font-size:26px}.back-link{font-size:14px}.member-story h1{font-size:44px}.intro{font-size:17px}.auth-card{padding:36px 24px}.auth-card h2{font-size:40px}footer{font-size:10px}.phone-row{grid-template-columns:auto minmax(0,1fr)}.sms-button{grid-column:1/-1;margin-top:10px}.verification-area .phone-row{grid-template-columns:1fr}.auth-divider{margin-top:24px}}

/* v57 · Four-control member navigation: 中文 / EN / Join / Sign In. */
.member-header{height:auto;min-height:100px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center}
.member-header-actions{justify-self:end;width:min(560px,100%);display:grid;grid-template-columns:repeat(4,minmax(76px,1fr));gap:8px;align-items:stretch}
.member-header-actions .language-switch{grid-column:1 / span 2;width:100%;margin:0!important;display:grid;grid-template-columns:1fr 1fr}
.member-header-actions .language-switch button{min-height:44px;padding:0 10px;font:600 12px/1 "DM Mono",monospace;letter-spacing:.08em}
.member-header-actions .language-switch button span{font-size:0}
.member-header-actions .language-switch button[data-lang="zh"] span::after{content:"中文";font-size:12px}
.member-header-actions .language-switch button[data-lang="en"] span::after{content:"EN";font-size:12px}
.member-nav-button{min-height:46px;display:flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--ink);background:#fff;color:var(--ink);font-weight:700;text-decoration:none;text-align:center;white-space:nowrap}
.member-nav-button[aria-current="page"]{background:var(--ink);color:#fff;border-bottom:3px solid var(--pink)}
@media(max-width:680px){.member-header{grid-template-columns:1fr;gap:12px;padding:14px 18px 16px}.member-header>.logo{justify-self:start}.member-header-actions{justify-self:stretch;width:100%;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.member-nav-button{min-width:0;min-height:40px;padding:0 6px;font-size:12px}.member-header-actions .language-switch button{min-width:0;min-height:40px;padding:0 6px}}
@media(max-width:390px){.member-header{padding:12px 14px 14px}.member-header-actions{gap:6px}.member-nav-button{font-size:11px}}

.phone-format-example{display:block;margin:10px 0 4px;color:#596475;font-size:13px;line-height:1.55}
.phone-refresh-button{width:100%;min-height:48px;margin:10px 0 2px;border:1px solid #0d1b2a;background:#fff;color:#0d1b2a;font-weight:700;cursor:pointer}
.phone-refresh-button:hover{background:#f2f4f6}
.member-header-user{max-width:180px;padding:10px 14px;border:1px solid rgba(255,255,255,.45);color:#fff;text-decoration:none;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:620px){.member-header-user{order:3;max-width:100%;width:100%;text-align:center}.member-header-actions{flex-wrap:wrap}}

.external-browser-notice .browser-fallback-link{margin-left:8px;background:#fff!important;color:#0d1b2a!important;border:1px solid #0d1b2a}
@media(max-width:520px){.external-browser-notice a{width:100%;justify-content:center}.external-browser-notice .browser-fallback-link{margin:8px 0 0}}

.member-nav-button[hidden]{display:none!important}


.member-name-setup{margin:28px 0 34px;padding:28px;border:1px solid #cdd2d8;border-top:6px solid var(--yellow);background:linear-gradient(135deg,#fff 0%,#f5f7f8 100%)}
.member-name-setup h3{margin:6px 0 10px;font-size:clamp(24px,4vw,38px);line-height:1.05}
.member-name-setup>p:not(.eyebrow){max-width:680px;margin:0 0 22px;color:#596475;line-height:1.65}
.member-name-setup form label{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-weight:800}
.member-name-setup form label small{color:#6c7480;font-weight:500}
.member-name-setup-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
.member-name-setup-row input{min-width:0;min-height:58px;border:1px solid #b9c0c8;padding:0 18px;font:700 18px/1 var(--sans);text-transform:uppercase}
.member-name-setup-row button{min-height:58px;border:0;background:var(--ink);color:#fff;padding:0 24px;font-weight:800;cursor:pointer}
.member-name-setup-row button:disabled{opacity:.55;cursor:wait}
.member-name-availability{display:block;min-height:22px;margin-top:8px;color:#596475}
.member-name-availability[data-state="available"]{color:#14845d}
.member-name-availability[data-state="taken"],.member-name-availability[data-state="invalid"],.member-name-availability[data-state="error"]{color:#c93462}
@media(max-width:620px){.member-name-setup{margin:20px 0 28px;padding:22px 18px}.member-name-setup form label{display:block}.member-name-setup form label small{display:block;margin-top:4px}.member-name-setup-row{grid-template-columns:1fr}.member-name-setup-row button{width:100%}}


/* v74 — coordinated language, membership and signed-in identity */
.member-header-user{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:48px;padding:6px 12px;line-height:1.05}
.member-header-user small{font:500 8px/1.2 "DM Mono",monospace;letter-spacing:.14em;opacity:.72}
.member-header-user strong{max-width:180px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.member-header-user span{max-width:180px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;opacity:.76}
@media(max-width:680px){
  .member-header-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:42px!important;gap:7px!important}
  .member-header-actions .language-switch{display:contents!important;border:0!important}
  .member-header-actions .language-switch button{min-height:42px!important;border:1px solid #cfd5db!important;background:#fff!important}
  .member-header-actions .language-switch button.active{background:#0d1b2a!important;color:#fff!important;border-color:#0d1b2a!important}
  .member-nav-button{min-height:42px!important}
  .member-header-user{grid-column:3/5!important;grid-row:1!important;order:initial!important;width:100%!important;max-width:none!important;min-height:42px!important;padding:5px 8px!important;text-align:left!important}
  .member-header-user strong,.member-header-user span{max-width:100%!important}
}

.member-header-user[hidden]{display:none!important}


@media(max-width:680px){
  .member-header{grid-template-columns:1fr!important;grid-template-rows:auto auto!important;height:auto!important;min-height:0!important;padding:12px 18px 14px!important;gap:10px!important}
  .member-header>.logo{grid-column:1!important;grid-row:1!important;justify-self:start!important}
  .member-header-actions{grid-column:1!important;grid-row:2!important;justify-self:stretch!important;width:100%!important}
}

@media(max-width:680px){.member-header-user small{display:none}.member-header-user strong{margin-top:0;font-size:11px}.member-header-user span{font-size:9px}}

.not-member-notice{margin:24px 0 4px;padding:24px;border:1px solid #e3b529;border-left:5px solid #ffc21c;background:#fffaf0;color:#0d1b2a}
.not-member-notice .eyebrow{margin:0 0 10px;color:#a86400}
.not-member-notice h3{margin:0 0 10px;font-size:clamp(1.2rem,4vw,1.55rem);line-height:1.25}
.not-member-notice>p:not(.eyebrow){margin:0 0 18px;color:#586271;line-height:1.7}
.not-member-join{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:0 22px;background:#0d1b2a;color:#fff;text-decoration:none;font-weight:700;border-bottom:4px solid #ef3b79}
.not-member-join:focus-visible{outline:3px solid #ffc21c;outline-offset:3px}


/* v93 — ordered SMS verification and clear member return */
.phone-security-step{margin-top:18px;padding:16px;border:1px solid #cfd5db;background:#f7f6f2}
.phone-security-step>label{display:block;margin-bottom:8px;font-weight:700;color:#0d1b2a}
.phone-security-step .recaptcha-box{margin:0 0 8px}
.phone-security-step .recaptcha-hint{display:block;margin:0!important;color:#596673!important;font-size:12px;line-height:1.55}
.sms-destination{margin:0 0 13px;padding:12px 14px;border-left:4px solid #25a776;background:#edf8f4;color:#0d1b2a;font-weight:700}
.member-shopping-return{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:26px;border:1px solid #cfd5db;background:#f5f6f7}
.member-shopping-return .shopping-gateway-heading p:last-child{margin-bottom:0}
.member-shopping-home-button{min-height:58px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;background:#0d1b2a;color:#fff;text-decoration:none;font-weight:700;white-space:nowrap;border-bottom:4px solid #e7316f}
@media(max-width:680px){.phone-security-step{padding:12px}.member-shopping-return{grid-template-columns:1fr;padding:18px}.member-shopping-home-button{width:100%;white-space:normal;text-align:center}}

/* v94 — inline authentication feedback */
.method-auth-status{position:relative;margin:12px 0 0;padding:13px 15px 13px 42px;border:1px solid #cfd5db;border-left:5px solid #7a8794;background:#f4f6f8;color:#1b2b3b;font-size:14px;font-weight:700;line-height:1.5;text-align:left}
.method-auth-status[hidden]{display:none!important}
.method-auth-status:before{position:absolute;left:15px;top:12px;font-size:17px;line-height:1;content:"…"}
.method-auth-status.is-pending{border-left-color:#1689c9;background:#eef7fc;color:#103b55}
.method-auth-status.is-pending:before{content:"●";color:#1689c9}
.method-auth-status.is-success{border-left-color:#25a776;background:#edf8f4;color:#145f47}
.method-auth-status.is-success:before{content:"✓";color:#16845d}
.method-auth-status.is-warning{border-left-color:#e3a714;background:#fff8e4;color:#6b4a00}
.method-auth-status.is-warning:before{content:"!";color:#b67700}
.method-auth-status.is-error{border-left-color:#d43b58;background:#fff0f3;color:#85243a}
.method-auth-status.is-error:before{content:"×";color:#c52e4b}
.method-auth-status--compact{margin-top:10px}
.verification-area .method-auth-status{grid-column:1/-1}
.google-button+.method-auth-status{margin-bottom:0}
.method-auth-status+.not-member-notice{margin-top:12px}
.not-member-notice{padding:18px 20px}
.not-member-notice h3{font-size:clamp(1.08rem,3.5vw,1.35rem)}
@media(max-width:620px){.method-auth-status{padding:12px 13px 12px 39px;font-size:13px}.method-auth-status:before{left:13px}.not-member-notice{padding:16px}}
