:root{background:#090a3f}
body{background:#090a3f;color:#fff}
.portal-screen{width:min(430px,100%);height:100dvh;min-height:0;margin:auto;padding:0 20px;background:#090a3f;display:flex;flex-direction:column;overflow:hidden}
.portal-screen[hidden]{display:none}
.portal-header{display:flex;flex:none;align-items:center;justify-content:space-between;min-height:76px;margin:0;padding:11px 0;border-bottom:1px solid #ffffff21;background:#090a3f;z-index:2}
.portal-header strong{font-size:13px;letter-spacing:.16em;color:#fff}
.portal-header small{margin-top:4px;font-size:10px;color:#cdc8e9}
.portal-header img{width:49px;height:49px;border-radius:50%;background:#fff;object-fit:contain}
.portal-page{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 0 max(32px,env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:#ffffff4d transparent}
.portal-page[hidden]{display:none}
.portal-page h1{font-size:30px;line-height:1.16;letter-spacing:-.025em;margin:0 0 14px}
.portal-page>p{color:#f4eff7;font-size:16px;line-height:1.45;margin-bottom:26px}
#portal-home{padding-top:30px}
#portal-home h1{font-size:32px;margin-bottom:22px}
#portal-home>p{margin-bottom:32px}
.portal-tile{min-height:138px;margin-bottom:14px;padding:18px 20px;border:1px solid #eadfca;border-radius:24px;background:linear-gradient(130deg,#fffcf8,#f2ede8);color:#20132b;box-shadow:0 8px 24px #0002}
.portal-tile span{font-size:11px;font-weight:800;background:#250a40;color:white}
.portal-tile b{font-size:21px;margin-top:7px}
.portal-tile small{font-size:13px;color:#655b6a}
.portal-tile em{color:#e9700d;font-size:13px}
.back-button{font-size:14px;font-weight:650;margin-bottom:22px}
.portal-logo{width:86px;height:86px;margin:3px auto 22px;border:4px solid #fff;border-radius:50%;overflow:hidden;background:white;display:grid;place-items:center;box-shadow:0 7px 20px #0003}
.portal-logo img{width:100%;height:100%;object-fit:contain}
.badge-code-page{text-align:center}
.badge-code-page .back-button{display:block;text-align:left}
.badge-code-page h1{margin-bottom:12px}
.badge-code-page>p{max-width:300px;margin:0 auto 28px;color:#ebe8fa}
.badge-code-card{padding:35px 19px 30px;border-radius:26px;background:#fffcf8;color:#262039;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 26px #0002}
.badge-code-card label{font-size:12px;font-weight:850;letter-spacing:.14em;color:#5b5066}
.badge-code-digits{display:flex;justify-content:center;gap:12px;width:100%;margin:22px 0 18px}
.badge-code-digits input{width:45px;height:58px;border:1.5px solid #dccfd0;border-radius:13px;background:#fff;color:#241b38;text-align:center;font-size:27px;font-weight:800;outline:none}
.badge-code-digits input:focus{border-color:#ea760b;box-shadow:0 0 0 3px #ea760b25}
.badge-code-card small{font-size:13px;color:#726a78}
.badge-code-page .orange-action{margin-top:16px}
.badge-security-note{display:block;margin-top:22px;color:#d4cfe5;font-size:12px}
.orange-action{min-height:54px;border-radius:18px;background:linear-gradient(100deg,#f3951a,#ea6600);color:#fff;font-size:15px;box-shadow:0 7px 16px #0002}
.booking-fields{gap:11px;margin-top:18px}
.wheel-field{background:#fffcf8;color:#24182e;box-shadow:0 5px 14px #0001}
.wheel-field button{color:#ea720a}
.booking-result-card,.booking-choice button{background:#fffcf8;color:#24182e}
.booking-choice button.selected{border-color:#f3951a;background:#fff0dd}
.booking-error{color:#ffb88d!important}
@media(max-width:360px){.badge-code-digits{gap:8px}.badge-code-digits input{width:42px}}
