.modern-passport{padding:20px 16px 42px;color:#171b19;background:#f7f7f4}
.modern-passport [hidden]{display:none!important}
.pass-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 94px;gap:14px;min-height:246px;margin-bottom:12px;padding:23px;overflow:hidden;border:1px solid #d8e5e2;border-radius:27px;background:radial-gradient(circle at 92% 7%,rgba(100,142,223,.22),transparent 34%),linear-gradient(145deg,#eaf8f6,#f7faff 62%,#eef1fb);box-shadow:0 13px 32px rgba(36,66,64,.08)}.pass-hero::after{position:absolute;right:-38px;bottom:-70px;width:170px;height:170px;border:1px solid rgba(31,166,169,.13);border-radius:50%;content:""}.pass-hero-copy{position:relative;z-index:1}.pass-hero-copy>span{color:#168e91;font-size:7px;font-weight:900;letter-spacing:.13em}.pass-hero h1{margin:8px 0 10px;font-size:24px;line-height:1.24;letter-spacing:-.045em}.pass-hero p{max-width:245px;margin:0;color:#65716d;font-size:8px;line-height:1.6}.pass-hero-actions{display:flex;align-items:center;gap:10px;margin-top:18px}.pass-hero-actions button{display:flex;height:42px;align-items:center;justify-content:center;gap:6px;padding:0 13px;border:0;border-radius:12px;color:#fff;background:#182725;box-shadow:0 8px 18px rgba(25,39,37,.16);font-size:8px;font-weight:900;cursor:pointer}.pass-hero-actions button svg{width:16px;height:16px}.pass-hero-actions a{display:flex;align-items:center;gap:2px;color:#52615c;font-size:7px;font-weight:800}.pass-hero-actions a svg{width:13px;height:13px}.pass-hero-visual{position:relative;z-index:1;align-self:center;padding:11px;border:1px solid rgba(255,255,255,.72);border-radius:19px;background:rgba(255,255,255,.58);box-shadow:0 9px 24px rgba(40,75,73,.09);text-align:center;backdrop-filter:blur(8px)}.pass-hero-visual>span,.pass-hero-visual>small{display:block;color:#687570;font-size:4.5px;font-weight:900;letter-spacing:.1em}.pass-hero-visual>svg{width:66px;height:66px;margin:8px auto;color:#1a3735}.pass-hero-visual>svg path{fill:currentColor;stroke:none}.pass-hero-visual>small{color:#168d90}
.pass-hero{display:block;min-height:0}.pass-hero p{max-width:330px}
.pass-overview{padding:21px;border:1px solid #dcdfd9;border-radius:24px;background:#fff;box-shadow:0 12px 32px rgba(32,45,42,.07)}
.pass-overview-head,.pass-progress-copy,.pass-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.pass-kicker,.pass-section-head span{color:#15999d;font-size:7px;font-weight:900;letter-spacing:.12em}
.pass-overview h2{margin:5px 0 0;font-size:24px;letter-spacing:-.04em}
.pass-status{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;color:#176b58;background:#e6f6ef;font-size:7px;font-weight:800}
.pass-status i{width:6px;height:6px;border-radius:50%;background:#35b87f;box-shadow:0 0 0 4px rgba(53,184,127,.12)}
.pass-member-row{display:flex;align-items:center;gap:12px;margin-top:21px;padding:15px;border-radius:18px;background:#f3f7f6}
.pass-member-mark{display:grid;flex:0 0 50px;width:50px;height:50px;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(145deg,#21b7bb,#648adc);font:800 22px 'DM Sans',sans-serif}
.pass-member-row small{display:block;color:#7d8580;font-size:6px;font-weight:800;letter-spacing:.1em}
.pass-member-row strong{display:block;margin-top:4px;font-size:12px}
.pass-member-row button{display:flex;align-items:center;gap:5px;margin-top:5px;padding:0;border:0;color:#5f6964;background:transparent;font-size:7px;cursor:pointer}
.pass-member-row svg{width:12px;height:12px}
.pass-progress-copy{align-items:center;margin-top:20px;color:#6e756f;font-size:8px}.pass-progress-copy strong{color:#1b211e;font-size:9px}
.pass-progress-bar{height:7px;margin-top:8px;overflow:hidden;border-radius:999px;background:#e9ece8}.pass-progress-bar i{display:block;width:40%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#25b9bc,#6d8bdd)}
.pass-overview>p{margin:9px 0 0;color:#737b75;font-size:7px}
.pass-quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.pass-quick-actions button,.pass-quick-actions a{display:flex;min-width:0;min-height:96px;align-items:center;justify-content:center;padding:13px 5px;border:1px solid #dcdfd9;border-radius:18px;color:#19201d;background:#fff;box-shadow:0 7px 20px rgba(33,42,40,.04);text-align:center;cursor:pointer;flex-direction:column}
.pass-quick-actions span{display:grid;width:36px;height:36px;place-items:center;border-radius:12px;color:#188e91;background:#e5f5f4}.pass-quick-actions svg{width:18px;height:18px}.pass-quick-actions strong{margin-top:8px;font-size:8px}.pass-quick-actions small{margin-top:3px;color:#8a908b;font-size:6px}
.pass-section{margin-top:31px}.pass-section-head{align-items:flex-end}.pass-section-head h2{margin:5px 0 0;font-size:19px;letter-spacing:-.04em}.pass-section-head>b{padding-bottom:2px;color:#6f7771;font-size:7px}
.checkin-history,.modern-benefit-list{display:grid;gap:8px;margin-top:13px}
.checkin-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px;border:1px solid #dcdfd9;border-radius:17px;color:#1a201d;background:#fff}
.checkin-row>span{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;color:#8d958f;background:#eef0ed;font-size:11px;font-weight:900}.checkin-row.complete>span{color:#fff;background:#2bb8a0}.checkin-row svg{width:17px;height:17px;stroke-width:2.5}
.checkin-row small{display:block;color:#7d8580;font-size:6px}.checkin-row strong{display:block;margin:4px 0;font-size:9px}.checkin-row p{margin:0;color:#939994;font-size:6px}.checkin-row>b{color:#188d90;font-size:7px}
.modern-benefit{display:grid;grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px;border:1px solid #dcdfd9;border-radius:18px;background:#fff}
.modern-benefit>span{display:grid;width:43px;height:43px;place-items:center;border-radius:13px;color:#fff;background:#273634;font-size:6px;font-weight:900}.modern-benefit.available>span{background:#24b8bc}.modern-benefit small{display:block;color:#188f92;font-size:6px;font-weight:900;letter-spacing:.06em}.modern-benefit strong{display:block;margin:4px 0;font-size:9px}.modern-benefit p,.modern-benefit em{display:block;margin:0;color:#7f8781;font-size:6px;font-style:normal}.modern-benefit em{margin-top:4px;color:#a1a6a2}
.modern-benefit button{height:34px;padding:0 10px;border:0;border-radius:10px;color:#fff;background:#1e2927;font-size:7px;font-weight:900;cursor:pointer}.modern-benefit button:disabled{color:#75807b;background:#e4e8e5}.modern-benefit.locked{background:#f0f2ef}.modern-benefit.locked>span{color:#8b938e;background:#e0e4e0}.modern-benefit.locked>b{color:#868e88;font-size:6px}
.pass-guide{margin-top:30px;padding:18px;border:1px solid #dcdfd9;border-radius:20px;background:#fff}.pass-guide>div>span{color:#15999d;font-size:7px;font-weight:900}.pass-guide h2{margin:5px 0 0;font-size:16px}.pass-guide ol{display:grid;gap:11px;margin:16px 0 0;padding:0;list-style:none}.pass-guide li{display:flex;align-items:center;gap:9px;color:#656d67;font-size:7px}.pass-guide li b{display:grid;flex:0 0 24px;width:24px;height:24px;place-items:center;border-radius:8px;color:#187d7f;background:#e7f5f4;font-size:7px}
.passport-scan-modal{position:fixed;top:0;bottom:0;left:50%;z-index:90;width:min(100%,480px);transform:translateX(-50%)}.passport-scan-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(18,28,27,.62);backdrop-filter:blur(6px)}.passport-scan-sheet{position:absolute;right:0;bottom:0;left:0;max-height:92vh;overflow:auto;padding:20px 20px calc(22px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;outline:0;color:#192220;background:#fff;box-shadow:0 -18px 50px rgba(18,29,27,.22)}.passport-scan-head{display:flex;align-items:flex-start;justify-content:space-between}.passport-scan-head span{color:#178f92;font-size:7px;font-weight:900;letter-spacing:.13em}.passport-scan-head h2{margin:5px 0 0;font-size:20px}.passport-scan-head>button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:50%;color:#5d6762;background:#f0f3f1;cursor:pointer}.passport-scan-head>button svg{width:17px;height:17px}.passport-scanner{position:relative;height:236px;margin-top:18px;overflow:hidden;border-radius:22px;background:radial-gradient(circle at 50% 35%,#314642,#14211f 72%)}.passport-scanner video{width:100%;height:100%;object-fit:cover}.passport-scanner-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.78);flex-direction:column}.passport-scanner-placeholder svg{width:48px;height:48px;color:#8ce2dd}.passport-scanner-placeholder strong{margin-top:10px;font-size:8px}.scan-corner{position:absolute;width:34px;height:34px;border-color:#8ce2dd;border-style:solid}.corner-one{top:22px;left:25px;border-width:3px 0 0 3px;border-radius:8px 0 0}.corner-two{top:22px;right:25px;border-width:3px 3px 0 0;border-radius:0 8px 0 0}.corner-three{right:25px;bottom:22px;border-width:0 3px 3px 0;border-radius:0 0 8px}.corner-four{bottom:22px;left:25px;border-width:0 0 3px 3px;border-radius:0 0 0 8px}.scan-line{position:absolute;right:26px;left:26px;top:50%;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,#8ce2dd,transparent);box-shadow:0 0 13px #8ce2dd;animation:passport-scan 2.4s ease-in-out infinite}@keyframes passport-scan{0%,100%{transform:translateY(-75px);opacity:.45}50%{transform:translateY(75px);opacity:1}}.passport-scan-status{min-height:18px;margin:12px 2px 0;color:#77807b;text-align:center;font-size:7px;line-height:1.5}.passport-scan-status.success{color:#16866d;font-weight:800}.passport-scan-status.error{color:#c44e5e}.passport-camera-start,.passport-location-checkin{display:flex;width:100%;height:45px;align-items:center;justify-content:center;gap:7px;border:0;border-radius:12px;color:#fff;background:#1c2b28;font-size:8px;font-weight:900;cursor:pointer}.passport-camera-start svg,.passport-location-checkin svg{width:16px;height:16px}.passport-manual-checkin{margin-top:14px;padding:14px;border-radius:16px;background:#f4f7f5}.passport-manual-checkin>span{display:block;margin-bottom:8px;color:#747d78;font-size:7px;font-weight:700}.passport-manual-checkin>div{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:7px}.passport-manual-checkin input{min-width:0;height:41px;padding:0 12px;border:1px solid #dce3df;border-radius:10px;outline:0;color:#1e2825;background:#fff;font-size:9px;text-transform:uppercase}.passport-manual-checkin input:focus{border-color:#44b6b5;box-shadow:0 0 0 3px rgba(68,182,181,.12)}.passport-manual-checkin button{border:0;border-radius:10px;color:#fff;background:#249d9f;font-size:8px;font-weight:900;cursor:pointer}.passport-manual-checkin small{display:block;margin-top:7px;color:#9aa09c;font-size:6px}.passport-location-checkin{height:auto;margin-top:10px;padding:7px;border:0;color:#65716c;background:transparent;font-size:7px}.passport-scan-open{overflow:hidden}
.passport-toast{position:fixed;right:20px;bottom:92px;left:20px;z-index:70;width:min(calc(100% - 40px),440px);margin:auto;padding:13px 16px;border-radius:13px;color:#fff;background:rgba(31,42,43,.95);box-shadow:0 12px 30px rgba(0,0,0,.2);text-align:center;font-size:9px;backdrop-filter:blur(10px)}
@media(max-width:359px){.modern-passport{padding-right:12px;padding-left:12px}.pass-hero{grid-template-columns:minmax(0,1fr) 82px;padding:18px}.pass-hero h1{font-size:21px}.pass-hero-actions{gap:7px}.pass-hero-actions button{padding:0 10px}.pass-hero-visual{padding:8px}.pass-hero-visual>svg{width:58px;height:58px}.pass-overview{padding:17px}.pass-quick-actions{gap:6px}.modern-benefit{grid-template-columns:39px minmax(0,1fr)}.modern-benefit>button,.modern-benefit>b{grid-column:2}.modern-benefit>span{width:39px;height:39px}}
