:root { --unp-blue:#123bb8; --unp-deep:#0b246e; --unp-green:#167a49; --unp-gold:#f0ca53; --ink:#152347; --muted:#5d6b83; --bs-primary:#123bb8; --bs-primary-rgb:18,59,184; }
body.registration-page { min-height:100vh; background:linear-gradient(180deg,#f8faff,#edf2fb); color:var(--ink); font-family:"DM Sans",sans-serif; }
.registration-page h1,.registration-page h2,.registration-page h3,.registration-page h4,.registration-page h5,.registration-page .navbar-brand { font-family:"Outfit",sans-serif; }
.registration-page a:focus-visible,.registration-page button:focus-visible,.registration-page input:focus-visible { outline:3px solid var(--unp-gold); outline-offset:3px; }
.registration-topline { height:5px; background:linear-gradient(90deg,var(--unp-blue) 0 64%,var(--unp-green) 64% 86%,var(--unp-gold) 86%); }
.registration-nav { background:#fff; border-bottom:1px solid #e5eaf4; }
.registration-nav .navbar-brand { color:var(--unp-deep); font-size:1rem; font-weight:800; line-height:1.05; }
.registration-nav .brand-mark { width:42px; height:42px; object-fit:contain; }
.registration-nav .brand-sub { display:block; margin-top:3px; color:var(--muted); font:600 .62rem "DM Sans",sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.registration-nav .home-link { color:var(--unp-blue); font-weight:700; text-decoration:none; }
.registration-nav .home-link:hover { text-decoration:underline; }
.registration-page .signup-card,.registration-page .registration-card { width:calc(100% - 2rem); margin:clamp(1.25rem,5vw,3.5rem) auto; border:1px solid #e2e9f5; border-radius:22px; overflow:hidden; box-shadow:0 24px 65px rgba(13,37,103,.1); }
.registration-page .signup-card { max-width:760px; }
.registration-page .registration-card { max-width:520px; }
.registration-page .card-header { display:flex; align-items:center; gap:1rem; border:0; padding:clamp(1.25rem,3vw,2rem); color:#fff; background:radial-gradient(circle at 90% 10%,#238b61,transparent 35%),linear-gradient(120deg,#0a246f,#123bb8); }
.registration-page .card-header img { width:66px; height:66px; object-fit:contain; flex-shrink:0; padding:7px; border-radius:14px; background:#fff; }
.registration-page .card-header h1 { font-size:clamp(1.5rem,3vw,2rem); font-weight:800; margin:0; }
.registration-page .card-header small { color:#dce7ff; }
.registration-page .card-body { padding:clamp(1.25rem,3vw,2.25rem); }
.registration-page .form-label { font-weight:700; }
.registration-page .form-control,.registration-page .form-select { min-height:45px; border-color:#cad5e8; border-radius:10px; }
.registration-page .form-control:focus,.registration-page .form-select:focus { border-color:var(--unp-blue); box-shadow:0 0 0 .2rem rgba(18,59,184,.12); }
.registration-page .btn-primary { background:var(--unp-blue); border-color:var(--unp-blue); font-weight:800; }
.registration-page .btn-primary:hover { background:var(--unp-deep); border-color:var(--unp-deep); }
.registration-page .card-body a { color:var(--unp-blue); font-weight:700; }
.registration-footer { margin-top:auto; padding:1.5rem 1rem; background:#091a50; color:#d3def9; text-align:center; font-size:.85rem; }
@media (max-width:575.98px) { .registration-nav .navbar-brand { font-size:.88rem; } .registration-nav .brand-sub { font-size:.52rem; } .registration-nav .brand-mark { width:38px; height:38px; } }
