/* TouraCraft clean restoration v3.8
   Member-side Stamp ID claim surface only.
   Intentionally isolated from the broader My Passport visual restoration. */
.member-claim-card{position:relative;overflow:hidden}
.member-claim-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:18px;align-items:stretch}
.member-claim-copy{display:flex;flex-direction:column;justify-content:center;gap:8px}
.member-claim-copy h2{margin:0}
.member-claim-copy p{margin:0;max-width:720px;color:var(--muted)}
.member-claim-flow{font-size:12px;letter-spacing:.04em;color:var(--muted);margin-top:4px}
.member-claim-form{border:1px solid rgba(148,163,184,.24);background:rgba(6,18,42,.42);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.member-claim-form label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#dbeafe}
.member-claim-form input{text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.member-claim-form .action{width:100%}
.member-claim-message{margin-top:0}
.member-claim-success{border:1px solid rgba(34,197,94,.38);background:rgba(20,83,45,.22);border-radius:14px;padding:13px 14px;color:#dcfce7;line-height:1.45}
.member-claim-success b{color:#fff}
.member-claim-error{border:1px solid rgba(248,113,113,.42);background:rgba(127,29,29,.2);border-radius:14px;padding:13px 14px;color:#fee2e2;line-height:1.45}
@media(max-width:800px){.member-claim-layout{grid-template-columns:1fr}}
/* v3.32 automatic member confirmation + pending Points */
.member-points-status{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.member-points-status span{border:1px solid rgba(148,163,184,.24);border-radius:999px;padding:8px 12px;background:rgba(15,23,42,.28)}
.member-pending-visits{display:flex;flex-direction:column;gap:10px;margin-top:10px}.member-pending-visit{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid rgba(148,163,184,.22);border-radius:14px;padding:13px;background:rgba(6,18,42,.36)}
.member-pending-visit>div:first-child{display:flex;flex-direction:column;gap:4px}.member-pending-visit span{font-size:12px;color:var(--muted)}.member-pending-reward{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.member-pending-reward>b{white-space:nowrap}
@media(max-width:640px){.member-pending-visit{align-items:stretch;flex-direction:column}.member-pending-reward{justify-content:space-between}}

/* v3.33.2 Member Passport confirmation surface */
.passport-confirm-panel{margin:12px 0 16px;padding:18px;border:1px solid rgba(227,181,72,.55);border-radius:16px;background:linear-gradient(135deg,rgba(6,18,42,.92),rgba(14,38,63,.88));box-shadow:0 18px 45px rgba(0,0,0,.24)}
.passport-confirm-panel.hidden{display:none!important}.passport-confirm-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}.passport-confirm-head h3{margin:4px 0 3px;font-size:24px}.passport-confirm-head p{margin:0;color:var(--muted);max-width:700px;line-height:1.45}.passport-confirm-count{padding:8px 12px;border:1px solid rgba(227,181,72,.45);border-radius:999px;white-space:nowrap;font-size:12px;font-weight:900}.passport-confirm-count b{font-size:16px;color:#f2cf69}.passport-confirm-panel .member-pending-visit{background:rgba(255,255,255,.055);border-color:rgba(227,181,72,.3)}.passport-confirm-panel .member-claim-message{margin-top:12px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.07)}
@media(max-width:640px){.passport-confirm-head{flex-direction:column}.passport-confirm-count{align-self:flex-start}}

/* v3.33.4 Member confirmation reward moment + Passport points overview */
.passport-points-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 16px}.passport-points-overview>div{border:1px solid rgba(227,181,72,.38);border-radius:14px;background:rgba(6,18,42,.68);padding:13px 16px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.passport-points-overview span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#d8c079;font-weight:900}.passport-points-overview b{font-size:24px;color:#fff}.passport-points-overview small{width:100%;color:var(--muted);font-size:12px}
.visit-confirm-success-modal{position:fixed;inset:0;z-index:1200;background:rgba(2,8,23,.78);backdrop-filter:blur(12px);display:grid;place-items:center;padding:22px}.visit-confirm-success-modal.hidden{display:none!important}.visit-confirm-success-sheet{width:min(560px,94vw);border:1px solid rgba(227,181,72,.58);border-radius:24px;background:linear-gradient(145deg,#07162c,#102b43);box-shadow:0 30px 90px rgba(0,0,0,.55);padding:28px;text-align:center;color:#fff;overflow:hidden}.visit-confirm-success-sheet h2{margin:8px 0 5px;font-size:32px}.visit-confirm-partner{font-size:18px;font-weight:900;margin:5px 0 14px}.visit-confirm-points{font-size:34px;line-height:1.05;font-weight:1000;color:#f2cf69;margin:10px 0}.visit-confirm-success-sheet p{color:#d8e3ef;line-height:1.55;margin:10px auto;max-width:460px}.visit-confirm-availability{font-weight:900;color:#fff;margin:10px 0 22px}.visit-confirm-stamp-stage{height:126px;display:grid;place-items:center;position:relative}.visit-confirm-stamp{width:116px;height:116px;border:6px double #f2cf69;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#f2cf69;transform:translateY(-80px) rotate(-16deg) scale(1.4);opacity:0;filter:drop-shadow(0 12px 25px rgba(0,0,0,.35));letter-spacing:.06em}.visit-confirm-stamp span{font-size:10px;font-weight:900}.visit-confirm-stamp b{font-size:17px;line-height:1}.visit-confirm-stamp.animate{animation:touracraftStampDrop .72s cubic-bezier(.2,.95,.2,1.12) forwards, touracraftStampPulse .45s .72s ease-out}
@keyframes touracraftStampDrop{0%{transform:translateY(-90px) rotate(-35deg) scale(1.55);opacity:0}58%{opacity:1}78%{transform:translateY(8px) rotate(-8deg) scale(.92)}100%{transform:translateY(0) rotate(-10deg) scale(1);opacity:1}}@keyframes touracraftStampPulse{0%{filter:drop-shadow(0 0 0 rgba(242,207,105,0))}50%{filter:drop-shadow(0 0 26px rgba(242,207,105,.65))}100%{filter:drop-shadow(0 12px 25px rgba(0,0,0,.35))}}
.mini-stamp-spinner{display:inline-grid;place-items:center;width:18px;height:18px;border:2px solid currentColor;border-radius:50%;font-size:10px;animation:miniStampSpin .75s linear infinite;margin-right:6px}@keyframes miniStampSpin{to{transform:rotate(360deg)}}
@media(max-width:640px){.passport-points-overview{grid-template-columns:1fr}.visit-confirm-success-sheet{padding:22px 18px}.visit-confirm-success-sheet h2{font-size:27px}.visit-confirm-points{font-size:29px}}

/* v3.33.5 Member Card confirmation QA usability patch */
.member-card-modal{overflow-y:auto;align-items:start;padding-block:clamp(12px,4vh,36px)}
.member-card-sheet{max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.member-card-top{position:sticky;top:0;z-index:3}
.member-card-body{overflow:visible}
.member-card-sheet .member-pending-visit{background:#e7ebef;border-color:#c6d0d8;color:#0b2136}
.member-card-sheet .member-pending-visit span{color:#52697a}
.member-card-sheet .member-pending-reward>b{color:#0b2136}
.member-card-sheet .member-stamp-help{color:#52697a}
@media(max-height:760px){.member-card-top{padding:18px 26px 15px}.member-card-body{padding:20px 26px}.member-card-title{font-size:27px}.member-card-number{font-size:30px}.member-card-actions{margin-top:14px}.member-stamp-box{margin-top:14px;padding-top:14px}}

/* v3.33.6 - Member Card viewport-safe scroll container */
.member-card-modal{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  overflow-x:hidden;
  padding:12px 20px;
  overscroll-behavior:contain;
}
.member-card-sheet{
  width:min(540px,100%);
  height:calc(100dvh - 24px);
  max-height:calc(100dvh - 24px);
  margin:auto 0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.member-card-top{
  flex:0 0 auto;
}
.member-card-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
@media(max-width:520px){
  .member-card-modal{padding:8px}
  .member-card-sheet{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}
}

/* v3.33.7 - Celebration-first member confirmation experience */
.visit-confirm-processing{position:fixed;inset:0;z-index:1250;background:rgba(2,8,23,.82);backdrop-filter:blur(13px);display:grid;place-items:center;padding:20px}.visit-confirm-processing.hidden{display:none!important}.visit-confirm-processing-sheet{width:min(460px,92vw);text-align:center;color:#fff;padding:34px 26px;border:1px solid rgba(227,181,72,.5);border-radius:24px;background:linear-gradient(145deg,#07162c,#102b43);box-shadow:0 30px 90px rgba(0,0,0,.55)}.visit-confirm-processing-sheet h2{font-size:30px;margin:8px 0}.visit-confirm-processing-sheet p{color:#d8e3ef;margin:4px 0 0}.processing-stamp-wrap{height:126px;display:grid;place-items:center}.processing-stamp{width:104px;height:104px;border:5px double #f2cf69;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f2cf69;letter-spacing:.08em;animation:processingPassportStamp 1.05s ease-in-out infinite}.processing-stamp span{font-size:10px;font-weight:900}.processing-stamp b{font-size:17px;line-height:1.1}@keyframes processingPassportStamp{0%,100%{transform:rotate(-12deg) scale(.92);opacity:.7}45%{transform:rotate(8deg) scale(1.08);opacity:1}65%{transform:rotate(-5deg) scale(.98)}}
.visit-confirm-success-modal{overflow:hidden}.visit-confirm-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.visit-confirm-success-sheet{position:relative;z-index:1}.confetti-piece{position:absolute;left:var(--x);top:-24px;width:8px;height:15px;border-radius:2px;background:#f2cf69;opacity:0;animation:touraConfettiFall var(--dur) cubic-bezier(.18,.8,.28,1) var(--delay) forwards}.confetti-piece[data-shape="1"]{width:11px;height:11px;border-radius:50%;background:#fff}.confetti-piece[data-shape="2"]{width:6px;height:18px;background:#d9a72f}@keyframes touraConfettiFall{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}12%{opacity:1}100%{transform:translate3d(var(--drift),105vh,0) rotate(var(--spin));opacity:.92}}
.visit-confirm-success-sheet{transform:scale(.96);opacity:0;animation:visitSuccessReveal .28s ease-out .12s forwards}@keyframes visitSuccessReveal{to{transform:scale(1);opacity:1}}
.visit-confirm-stamp.animate{animation:touracraftStampDrop .68s cubic-bezier(.16,1.15,.28,1) forwards, touracraftStampPulse .5s .68s ease-out}

.member-pending-benefit{margin-top:3px;font-weight:800;color:#7b5a00!important}.member-pending-benefit b{font-weight:900}
.member-card-sheet .member-pending-benefit{color:#7a5a00!important}

.visit-confirm-benefit{display:inline-flex;align-items:center;justify-content:center;max-width:460px;margin:2px auto 8px;padding:8px 12px;border:1px solid rgba(242,207,105,.45);border-radius:999px;background:rgba(242,207,105,.1);color:#f7dda0;font-size:13px;font-weight:900;line-height:1.25}.visit-confirm-benefit.hidden{display:none!important}
