:root{--ink:#442a19;--dust:#b77d69;--rose:#d8aaa0;--blush:#f1dedb;--paper:#fdf9f8;--cream:#f5eee9;--line:rgba(68,42,25,.14);--green:#65806c}*{box-sizing:border-box}html,body{width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}html{touch-action:pan-y}body{margin:0;background:#f8f3ef;color:var(--ink);font:300 14px/1.55 Arial,sans-serif}.portal-shell{width:min(620px,100%);min-height:100vh;margin:auto;padding:20px 15px 60px}.portal-brand,.member-head{display:flex;align-items:center;justify-content:space-between}.portal-brand img,.member-head img{width:56px;height:56px;object-fit:contain}.portal-brand span{font:500 20px Georgia,serif}.login-copy{margin:58px 0 28px}.login-copy p,.member-welcome p,.member-section header p{margin:0;color:var(--dust);font-size:9px;text-transform:uppercase;letter-spacing:.16em}.login-copy h1,.member-welcome h1{margin:8px 0 16px;font:500 48px/.92 Georgia,serif}.login-copy h1 em{color:var(--dust);font-weight:400}.login-copy>span{display:block;max-width:430px;opacity:.7}.login-card{padding:20px;border-radius:16px;background:var(--paper);box-shadow:0 12px 40px rgba(68,42,25,.06)}.login-card label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.login-card input{width:100%;max-width:100%;margin:7px 0 12px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--cream);font:inherit;font-size:16px}.login-card button,.topup-button{width:100%;min-height:49px;border:0;border-radius:9px;background:var(--ink);color:white;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.login-card small{display:block;margin-top:12px;text-align:center;opacity:.55}.login-card p{margin:0 0 14px}.login-card .back-link{width:auto;min-height:auto;margin:0 0 18px;padding:0;background:none;color:var(--dust);text-transform:none}.code-card input{text-align:center;font-size:22px;letter-spacing:.25em}.member-head button{border:0;background:none;color:var(--dust);font-size:10px}.member-welcome{margin:35px 0 20px}.member-welcome h1{font-size:41px;margin-bottom:8px}.member-welcome>small{opacity:.62}.digital-pass{min-height:245px;padding:22px;display:flex;flex-direction:column;border-radius:22px;background:linear-gradient(135deg,#442a19,#8d5f4e);color:white;box-shadow:0 20px 44px rgba(68,42,25,.22)}.pass-top,.pass-bottom{display:flex;align-items:center;justify-content:space-between}.pass-top span{font:500 18px Georgia,serif}.pass-top small,.pass-bottom small{font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.6)}.pass-center{margin:auto 0;display:flex;align-items:center;justify-content:space-between}.pass-center section small,.pass-center section span{display:block;color:rgba(255,255,255,.7)}.pass-center section strong{font:500 61px/.85 Georgia,serif}.member-qr{width:112px;height:112px;padding:9px;display:grid;grid-template-columns:1fr 1fr;gap:6px;background:white}.member-qr i{background:repeating-linear-gradient(45deg,#2c1b12 0 4px,transparent 4px 7px),repeating-linear-gradient(-45deg,#2c1b12 0 3px,transparent 3px 6px)}.pass-bottom span{font:500 18px Georgia,serif}.wallet-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.wallet-actions button{min-height:43px;border:0;border-radius:9px;background:#111;color:white;font-size:9px}.topup-button{margin-bottom:28px;background:var(--dust)}.member-section{margin-top:28px}.member-section h2{margin:5px 0 13px;font:500 28px/1 Georgia,serif}.member-events,.member-history{overflow:hidden;border-radius:14px;background:var(--paper)}.member-event,.history-row{min-height:68px;padding:12px 14px;display:grid;grid-template-columns:48px 1fr auto;gap:11px;align-items:center;border-bottom:1px solid var(--line)}.member-event:last-child,.history-row:last-child{border-bottom:0}.event-date{padding:8px;text-align:center;border-radius:9px;background:var(--blush);font:500 18px/1 Georgia,serif}.event-date small{display:block;margin-top:3px;font:7px Arial,sans-serif;text-transform:uppercase}.member-event strong,.member-event small,.history-row strong,.history-row small{display:block}.member-event small,.history-row small{font-size:9px;opacity:.55}.member-event button{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:transparent;font-size:8px}.history-row{grid-template-columns:32px 1fr auto}.history-row>i{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#e0ebe2;color:var(--green);font-style:normal}.history-row.debit>i{background:var(--blush);color:#a95f59}.history-row>b{color:var(--green)}.history-row.debit>b{color:#a95f59}.empty{padding:25px;text-align:center;opacity:.55}.portal-toast{position:fixed;left:50%;bottom:20px;padding:11px 17px;border-radius:8px;background:var(--ink);color:white;opacity:0;transform:translate(-50%,20px);transition:.2s}.portal-toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}@media(max-width:390px){.portal-shell{padding-left:11px;padding-right:11px}.login-copy h1{font-size:43px}.digital-pass{min-height:220px;padding:17px}.member-qr{width:91px;height:91px}.pass-center section strong{font-size:53px}.wallet-actions{grid-template-columns:1fr}}

.payment-modal{position:fixed;z-index:100;inset:0;display:none;align-items:flex-end;justify-content:center}.payment-modal.open{display:flex}.payment-backdrop{position:absolute;inset:0;background:rgba(45,28,18,.55);backdrop-filter:blur(4px)}.payment-dialog{position:relative;width:min(620px,100%);max-height:92vh;overflow:auto;padding:27px 18px calc(24px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:var(--paper);box-shadow:0 -20px 60px rgba(68,42,25,.18)}.payment-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:24px}.payment-eyebrow{margin:0;color:var(--dust);font-size:9px;text-transform:uppercase;letter-spacing:.16em}.payment-dialog h2{margin:6px 42px 18px 0;font:500 32px/1 Georgia,serif}.topup-summary{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.payment-dialog fieldset{margin:22px 0 10px;padding:0;border:0}.payment-dialog legend{margin-bottom:10px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.payment-option{display:flex;align-items:center;gap:12px;margin-bottom:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--cream)}.payment-option:has(input:checked){border-color:var(--dust);box-shadow:inset 0 0 0 1px var(--dust)}.payment-option input{accent-color:var(--dust)}.payment-option b,.payment-option small{display:block}.payment-option small{margin-top:2px;opacity:.6}.payment-help{min-height:38px;font-size:11px;opacity:.7}.payment-dialog form>button,.topup-result button{width:100%;min-height:49px;border:0;border-radius:9px;background:var(--ink);color:white;text-transform:uppercase;letter-spacing:.08em}.topup-result{text-align:center}.topup-result h3{margin:12px 0 8px;font:500 29px Georgia,serif}.topup-result p{margin:0 0 10px}.topup-result>small{display:block;margin-bottom:20px;opacity:.6}.result-icon{width:54px;height:54px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#e2eee4;color:var(--green);font-size:25px}.payment-qr{width:156px;height:156px;margin:8px auto 15px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px;background:white;border:1px solid var(--line)}.payment-qr i{background:repeating-linear-gradient(45deg,#2c1b12 0 5px,transparent 5px 8px),repeating-linear-gradient(-45deg,#2c1b12 0 4px,transparent 4px 7px)}@media(min-width:620px){.payment-modal{align-items:center}.payment-dialog{border-radius:24px;padding:30px}}

.member-head>div{display:flex;align-items:center;gap:10px}.member-head>div>span{font:500 18px Georgia,serif}.member-nav{position:sticky;z-index:15;top:54px;margin:12px -15px 0;padding:7px 15px;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;background:rgba(248,243,239,.95);border-top:1px solid var(--line);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.member-nav::-webkit-scrollbar{display:none}.member-nav a{min-width:78px;height:58px;padding:6px;display:grid;place-items:center;align-content:center;gap:3px;border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);text-decoration:none;font-size:8px;white-space:nowrap}.member-nav a.active{background:var(--ink);color:white}.member-nav svg{width:20px;height:20px;fill:currentColor}.member-anchor{scroll-margin-top:128px}.section-kicker{margin:20px 0 8px;color:var(--dust);font-size:9px;text-transform:uppercase;letter-spacing:.16em}.member-section header{display:flex;align-items:end;justify-content:space-between;gap:10px}.member-section header>a{margin-bottom:13px;color:var(--dust);font-size:9px;text-decoration:none}.member-event>a{padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:8px;text-decoration:none}.member-courses{display:grid;grid-template-columns:1fr 1fr;gap:9px}.member-courses article{min-height:145px;padding:15px;display:flex;flex-direction:column;border-radius:14px;background:var(--paper);border:1px solid var(--line)}.member-courses span{width:max-content;padding:4px 7px;border-radius:20px;background:var(--blush);color:var(--dust);font-size:7px;text-transform:uppercase;letter-spacing:.08em}.member-courses h3{margin:auto 0 5px;font:500 23px/1 Georgia,serif}.member-courses p{margin:0;font-size:9px;opacity:.6}.member-orders{overflow:hidden;border-radius:14px;background:var(--paper)}.member-order{min-height:70px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:center;border-bottom:1px solid var(--line)}.member-order:last-child{border-bottom:0}.member-order strong,.member-order small{display:block}.member-order strong{font-weight:500}.member-order small{font-size:8px;opacity:.55}.member-order>b{font-size:11px}.member-order>span{grid-column:1/-1;width:max-content;padding:4px 7px;border-radius:15px;font-size:7px;text-transform:uppercase}.member-order>span.paid{background:#e0ebe2;color:var(--green)}.member-order>span.pending{background:#f2e4d3;color:#8b653f}.empty-order{padding:22px;text-align:center}.empty-order p{margin:0 0 9px;opacity:.6}.empty-order a{color:var(--dust)}@media(max-width:390px){.member-nav{margin-left:-11px;margin-right:-11px;padding-left:11px;padding-right:11px}.member-head>div>span{display:none}.member-courses{grid-template-columns:1fr}}
.member-page[hidden]{display:none!important}.member-page{animation:memberPageIn .24s ease both}.pass-history-section{margin-top:28px}@keyframes memberPageIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.courses-intro{margin-bottom:18px}.courses-intro h2{max-width:420px;font-size:34px!important;line-height:.95!important}.courses-intro small{display:block;max-width:430px;margin-top:9px;opacity:.6}

.portal-brand img,.member-head img{width:74px;height:74px}
.member-qr{display:block;object-fit:contain;padding:7px;border-radius:8px}.wallet-actions button,.wallet-actions a{min-height:43px;border:0;border-radius:9px;background:#111;color:#fff;font-size:9px;display:grid;place-items:center;text-decoration:none}.wallet-actions button:disabled{opacity:.45;cursor:not-allowed}.wallet-actions a{background:var(--dust)}
