/* NexRide passenger-first entry and account onboarding — glass design v4. */
:root{--nr-green:#42ecc7;--nr-stroke:rgba(123,240,218,.27)}
.nr-gate{position:fixed;inset:0;z-index:15000;background:#03111d;display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);font-family:'DM Sans',Arial,sans-serif;color:#eefbf9;overflow:auto}
.nr-gate[hidden],.nr-modal-back[hidden]{display:none!important}
.nr-gate *,.nr-modal-back *{box-sizing:border-box}
.nr-visual{position:relative;background:linear-gradient(0deg,rgba(2,13,23,.57),rgba(3,27,35,.10)),url('/assets/glass-backdrop.jpg') center/cover no-repeat;min-height:100vh}
.nr-visual:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 48%,transparent 13%,#04131dbb 98%);pointer-events:none;z-index:1}
.nr-gate-map{position:absolute;inset:0;background:linear-gradient(145deg,#03202b50,#061d3059),url('/assets/pretoria-map-fallback.jpg') center/cover;transition:filter .3s}
.nr-gate-map .leaflet-container{height:100%;width:100%;background:transparent}.nr-gate-map .leaflet-tile{filter:saturate(.76) brightness(.74)}
.nr-on-map{position:absolute;top:28px;left:29px;z-index:710;background:#082731c9;border:1px solid #6bf6db59;border-radius:12px;padding:10px 14px;display:flex;align-items:center;gap:8px;backdrop-filter:blur(18px);font-size:11px;color:#b8f4e9;max-width:calc(100% - 58px)}
.nr-map-info{position:absolute;bottom:35px;left:32px;right:32px;z-index:710;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.nr-map-info strong{font:700 28px 'Outfit',sans-serif;display:block}.nr-map-info small{font-size:11px;color:#acd5df}
.nr-map-chip{padding:10px 12px;border:1px solid #59d7c37b;background:#0b2535d9;border-radius:12px;color:#e0fff7;font-size:11px;backdrop-filter:blur(18px)}
.nr-main{min-height:100vh;overflow-y:auto;background:radial-gradient(ellipse at 86% 20%,#16586357,transparent 37%),linear-gradient(155deg,#061c29,#041421 60%,#02121d);padding:30px clamp(22px,4vw,78px) 22px;display:flex;flex-direction:column;position:relative}
.nr-main:before{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(120deg,transparent,#6de8d006 40%,transparent);}
.nr-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:1}
.nr-brand{display:flex;gap:12px;align-items:center;font:800 27px 'Outfit',sans-serif;letter-spacing:-1px}.nr-brand-mark{border:1px solid #33efc8;border-radius:13px;color:#57fce0;display:grid;place-items:center;width:41px;height:41px;box-shadow:inset 0 0 17px #17d1bf39,0 0 24px #38f9d226;font-size:28px}.nr-brand small{display:block;font-size:8px;letter-spacing:3px;color:#67e9d6;margin-top:-5px}
.nr-link{background:transparent;color:#baf6e8;border:1px solid #3a9c9e87;padding:11px 15px;border-radius:11px;font-size:12px;font-weight:700;white-space:nowrap}
.nr-main-content{position:relative;z-index:1;width:min(100%,510px);margin:auto 0}
.nr-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#62eace;letter-spacing:2px;text-transform:uppercase;font-size:10px;font-weight:800;margin-bottom:16px}
.nr-main h1{font-family:'Outfit',sans-serif;font-weight:850;letter-spacing:-2.2px;line-height:1.04;font-size:clamp(42px,4.8vw,72px);margin:0 0 13px}.nr-main h1 em{font-style:normal;background:linear-gradient(100deg,#e9fffc,#3ef2c5);background-clip:text;-webkit-background-clip:text;color:transparent}
.nr-intro{font-size:13px;line-height:1.65;color:#aec8d5;max-width:430px;margin:0 0 24px}
.nr-book-card{background:linear-gradient(140deg,#123f48b8,#0b2637e0);border:1px solid #65d5ce62;border-radius:20px;padding:21px;backdrop-filter:blur(30px);box-shadow:0 25px 70px #0009,inset 0 1px #baffed3b}
.nr-label{color:#a6cece;font-size:10px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;display:block;margin-bottom:8px}
.nr-field-wrap{position:relative;margin-bottom:13px}
.nr-input-wrap{display:flex;align-items:center;gap:10px;min-height:57px;border:1px solid #537b8587;background:#061e2d;border-radius:12px;padding:0 13px;color:#51dfc4;transition:border .2s,box-shadow .2s}
.nr-input-wrap:focus-within{border-color:#55eed4;box-shadow:0 0 0 3px #2bdbb01d}
.nr-input-wrap input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#f1fffd;padding:12px 0;font-size:15px;letter-spacing:-.2px}
.nr-input-wrap input::placeholder{color:#789bab}
.nr-input-symbol{font-size:19px;font-weight:bold}.nr-input-symbol.red{color:#ff8291}.nr-input-symbol.teal{color:#55efcf}
.nr-locate{width:37px;height:37px;display:grid;place-items:center;border:1px solid #4b9e9d;border-radius:9px;color:#96fff0;background:#102f3e;font-size:17px;flex:0 0 auto}
.nr-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:22;background:#082333;border:1px solid #489b9c;border-radius:13px;box-shadow:0 15px 40px #000b;overflow:hidden;max-height:235px;overflow-y:auto}
.nr-suggestions[hidden]{display:none}.nr-suggestions button{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #ffffff0a;color:#e8fbf7;padding:12px 13px;font-size:12px;display:flex;gap:9px;align-items:center}.nr-suggestions button:hover{background:#104653}.nr-suggestions small{display:block;font-size:10px;color:#86adb9;margin-top:3px}.nr-suggestions button:focus-visible{outline:2px solid #56e6cf}
.nr-actions{display:flex;gap:9px;align-items:center;margin-top:18px}.nr-primary{border:0;background:linear-gradient(102deg,#44eec5,#74ffda);border-radius:12px;padding:16px 18px;color:#003c32;font-size:14px;font-weight:900;flex:1;box-shadow:0 10px 30px #13efbe38}.nr-primary:hover{filter:brightness(1.08)}.nr-primary:disabled{opacity:.55}
.nr-secondary{border:1px solid #50a9a788;background:#143642cc;color:#c8f6ed;padding:15px;border-radius:12px;font-size:12px;font-weight:750}
.nr-confirm-details{background:#061d2cae;border:1px solid #376c769e;border-radius:12px;padding:13px;margin-top:11px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.nr-confirm-details b{font-size:15px}.nr-confirm-details span{font-size:10px;color:#a5bfc8;display:block;margin-bottom:4px}.nr-confirm-details[hidden]{display:none}
.nr-validation{font-size:11px;color:#f8c6b6;min-height:13px;margin-top:7px}
.nr-trust{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:#9bcbc7;margin:17px 0 0}.nr-trust span{display:flex;align-items:center;gap:4px}.nr-trust b{color:#46e4c5}
.nr-foot{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:22px;color:#7899a6;font-size:10px}.nr-foot a{color:#93e9d8;text-decoration:none}.nr-foot button{border:0;color:#93e9d8;background:transparent;font-size:10px}
.nr-account-inline{margin-top:16px;display:flex;align-items:center;justify-content:space-between;color:#c5eae4;font-size:12px}
.nr-account-inline button{background:none;border:0;color:#51f0d5;font-weight:800}
.nr-modal-back{position:fixed;z-index:20000;inset:0;background:#000b;backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:15px;overflow:auto}
.nr-dialog{background:linear-gradient(135deg,#113846,#071d2d 72%);color:#edfafb;border:1px solid #53c5bc;border-radius:22px;box-shadow:0 30px 100px #000b;width:min(100%,460px);padding:25px;position:relative;max-height:95vh;overflow:auto;font-family:'DM Sans',sans-serif}
.nr-dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:11px}.nr-dialog-head h2{font:750 26px 'Outfit',sans-serif;letter-spacing:-.5px;margin:0}.nr-close{width:36px;height:36px;border-radius:10px;border:1px solid #3f8290;color:#d5faf0;background:#082331;font-size:23px}
.nr-dialog p{color:#afc9d2;font-size:12px;line-height:1.6;margin:0 0 17px}.nr-dialog label{display:block;color:#b9d8db;font-size:11px;margin:12px 0 5px;font-weight:800}.nr-dialog input,.nr-dialog select,.nr-dialog textarea{display:block;width:100%;border-radius:10px;border:1px solid #396a77;background:#061a2a;color:#f2fbff;padding:13px 12px;outline:none;font-size:14px}.nr-dialog textarea{min-height:82px;resize:vertical}.nr-dialog input:focus,.nr-dialog select:focus,.nr-dialog textarea:focus{border-color:#51e3cb}
.nr-dialog button[type=submit],.nr-dialog .nr-submit{width:100%;border:0;padding:14px;background:#4bf2ca;color:#002c24;border-radius:10px;font-weight:900;margin-top:16px}.nr-dialog .nr-ghost{background:none;border:0;color:#6ce8ce;font-weight:800;margin-top:15px;text-decoration:underline}.nr-dialog-error{font-size:12px;color:#ffb6b6;margin-top:12px;min-height:13px;white-space:pre-wrap}.nr-dialog-good{font-size:12px;color:#9af7df;margin-top:12px}.nr-dialog-fine{color:#7da7ad;font-size:10px;margin-top:13px}.nr-dialog-fine a{color:#9ee9e0}.nr-dialog .nr-tabs{display:flex;background:#051723;border:1px solid #245d66;border-radius:10px;padding:4px;gap:5px}.nr-dialog .nr-tabs button{flex:1;padding:11px;border:0;background:transparent;color:#a4c9c9;border-radius:8px}.nr-dialog .nr-tabs button.active{background:#165348;color:#cbfff0}
.nr-invisible{display:none!important}
@media(max-width:890px){.nr-gate{display:flex;flex-direction:column}.nr-visual{height:36vh;min-height:225px;max-height:340px}.nr-on-map{top:15px;left:16px;font-size:10px}.nr-map-info{bottom:20px;left:17px;right:17px}.nr-map-info strong{font-size:23px}.nr-main{min-height:unset;flex:1;margin-top:-42px;border-radius:25px 25px 0 0;border-top:1px solid #61f3d36c;padding:23px clamp(17px,4vw,28px) 24px;z-index:2}.nr-main-content{width:100%;margin:20px auto 10px}.nr-main h1{font-size:42px;letter-spacing:-1.4px}.nr-book-card{padding:17px}.nr-intro{margin-bottom:19px}.nr-foot{margin-top:15px}}
@media(max-width:480px){.nr-gate{overflow:auto}.nr-visual{height:30vh;min-height:190px}.nr-main{padding:16px 16px 20px;margin-top:-26px}.nr-brand{font-size:22px;gap:7px}.nr-brand-mark{width:35px;height:35px;font-size:23px}.nr-main-content{margin:15px auto 8px}.nr-main h1{font-size:39px}.nr-eyebrow{margin-bottom:9px}.nr-intro{font-size:12px;margin-bottom:13px}.nr-book-card{padding:15px;border-radius:17px}.nr-input-wrap{min-height:50px}.nr-input-wrap input{font-size:14px}.nr-actions{margin-top:12px}.nr-primary{padding:14px}.nr-foot{font-size:9px}.nr-map-info{bottom:14px}.nr-map-info strong{font-size:20px}.nr-trust{font-size:9px;gap:7px}.nr-on-map{max-width:calc(100% - 32px);font-size:9px}}
