/* Standalone login: isolated from Bootstrap and legacy global form styles. */
:root { color-scheme:light; }
.rfg-access { --ink:#17273f; --muted:#718098; --blue:#2563eb; margin:0; background:#fff; color:var(--ink); font:14px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.rfg-access *,.rfg-access *::before,.rfg-access *::after { box-sizing:border-box; }
.rfg-access [hidden] { display:none !important; }
.rfg-access a { text-decoration:none; }
.rfg-access button,.rfg-access input { font:inherit; }
.rfg-access button,.rfg-access a,.rfg-access input { -webkit-tap-highlight-color:transparent; }
.rfg-access a:focus-visible,.rfg-access button:focus-visible,.rfg-access input[type=checkbox]:focus-visible { outline:3px solid #91b3fa; outline-offset:4px; }
.rfg-access svg { width:20px; height:20px; flex:none; }
.access-layout { display:grid; grid-template-columns:minmax(420px,.95fr) minmax(0,1.05fr); min-height:100vh; min-height:100svh; max-width:2000px; margin:auto; }
.access-main { padding:44px clamp(32px,5.8vw,100px) 26px; display:flex; flex-direction:column; min-width:0; }
.access-brand { display:inline-flex; align-items:center; gap:16px; color:var(--ink); width:fit-content; }
.access-brand-mark { position:relative; display:flex; align-items:center; font-size:29px; letter-spacing:-2px; font-weight:800; line-height:1; padding-bottom:5px; }
.access-brand-mark>span { position:absolute; bottom:0; left:0; height:3px; width:18px; background:var(--blue); border-radius:8px; }
.access-brand-copy { border-inline-start:1px solid #dfe6f0; padding-inline-start:16px; font-size:14px; font-weight:600; line-height:1.4; }
.access-brand-copy small { display:block; color:var(--muted); font-size:10px; font-weight:400; margin-top:3px; letter-spacing:.1px; }
.access-form-wrap { width:100%; max-width:410px; margin:auto; padding:58px 0 48px; }
.access-eyebrow { color:#6880a4; font-size:9px; font-weight:700; letter-spacing:1.8px; }
.access-intro h1 { font-size:clamp(30px,3vw,42px); font-weight:700; letter-spacing:-1.5px; line-height:1.2; margin:14px 0 12px; }
.access-intro>p { margin:0; color:var(--muted); font-size:13px; }
.access-intro { margin-bottom:34px; }
.access-field { margin-bottom:23px; }
.access-field label { display:block; font-size:12px; font-weight:600; color:#35445e; margin-bottom:9px; }
.access-label-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.access-link { color:#3564bb; font-size:11px; font-weight:500; }
.access-link:hover { color:#1749a0; text-decoration:underline; }
.access-input-wrap { position:relative; }
.access-input-wrap input { width:100%; height:50px; padding:13px 43px; border:1px solid #dce3ee; border-radius:9px; background:#fcfdff; color:var(--ink); outline:0; font-size:13px; transition:border-color .15s,box-shadow .15s; }
.access-input-wrap input::placeholder { color:#9aa5b6; font-size:12px; opacity:1; }
.access-input-wrap input:focus { border-color:#80a7f4; background:#fff; box-shadow:0 0 0 4px #2563eb0d; }
.access-input-wrap input[aria-invalid=true] { border-color:#d7717b; background:#fffafb; }
.access-input-wrap input[aria-invalid=true]:focus { box-shadow:0 0 0 4px #c544560c; }
.access-input-wrap input:-webkit-autofill { -webkit-box-shadow:0 0 0 1000px #f7faff inset; -webkit-text-fill-color:var(--ink); }
.access-input-icon { position:absolute; left:15px; top:15px; color:#8b9bb3; pointer-events:none; width:18px !important; height:18px !important; }
.access-password-toggle { position:absolute; inset-inline-end:5px; top:5px; display:grid; place-items:center; width:40px; height:40px; border:0; background:transparent; color:#8593aa; cursor:pointer; border-radius:6px; }
.access-password-toggle:hover { background:#f0f4fb; color:#45628f; }
.access-eye-slash { display:none; }.access-password-toggle[aria-pressed=true] .access-eye-slash { display:block; }
.access-field-error { font-size:11px; color:#b64052; margin:7px 0 0; line-height:1.6; }
.access-caps-notice { font-size:11px; color:#91671b; margin:7px 0 0; }
.access-remember { display:flex; align-items:center; gap:9px; width:fit-content; min-height:28px; cursor:pointer; color:#65758d; font-size:11px; margin:0 0 23px; }
.access-remember input { width:16px; height:16px; margin:0; accent-color:var(--blue); cursor:pointer; }
.access-submit { width:100%; min-height:50px; display:flex; justify-content:center; align-items:center; gap:10px; border:1px solid var(--blue); border-radius:9px; background:var(--blue); color:white; font-size:13px !important; font-weight:600 !important; cursor:pointer; box-shadow:0 4px 9px #2563eb16; transition:background .15s,box-shadow .15s; }
.access-submit:hover:not(:disabled) { background:#1e54d1; box-shadow:0 5px 14px #2563eb24; }.access-submit:disabled { opacity:.75; cursor:wait; }
.access-submit-arrow { width:17px !important; height:17px !important; }
.access-spinner { display:none; width:16px; height:16px; border:2px solid #ffffff60; border-top-color:white; border-radius:50%; animation:access-spin .7s linear infinite; }
.access-form[aria-busy=true] .access-spinner { display:block; }.access-form[aria-busy=true] .access-submit-arrow { display:none; }
.access-help { color:#8a97aa; font-size:11px; text-align:center; line-height:1.8; border-top:1px solid #edf1f6; padding-top:23px; margin:28px 0 0; }.access-help span { color:#61738f; }
.access-footer { display:flex; flex-direction:column; align-items:stretch; gap:12px; color:#8794a8; font-size:9px; line-height:1.5; }
.access-footer-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; }
.access-footer .rfg-developer-credit { align-self:center; }
.access-sculpture { position:relative; margin:24px -20px 22px; }
.access-sculpture::before { content:""; position:absolute; inset:15% 12%; border-radius:50%; background:#567da728; filter:blur(45px); z-index:-1; }
.access-sculpture img { display:block; width:100%; max-height:370px; height:auto; object-fit:contain; }
@media(min-width:821px) and (max-height:800px) { .access-sculpture { margin:8px -12px 14px; }.access-sculpture img { max-height:260px; } }
@media(max-width:1100px) and (min-width:821px) { .access-sculpture { margin-inline:-12px; } }
@media(max-width:820px) { .access-footer-meta { justify-content:center; }.access-footer { gap:10px; } }
.access-notice { display:flex; align-items:flex-start; gap:10px; padding:14px; border-radius:9px; margin-bottom:23px; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.access-notice-error { background:#fff4f5; color:#a23e50; border:1px solid #f1d9de; }.access-notice-error>svg { margin-top:2px; width:18px; height:18px; }.access-notice strong { font-size:12px; display:block; margin-bottom:3px; font-weight:600; }.access-notice p { margin:3px 0 0; font-size:11px; }.access-notice:focus { outline:2px solid #e6a6b0; outline-offset:3px; }
.access-notice-success { background:#edf8f3; color:#267758; border:1px solid #d9eee3; }
.access-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.access-showcase { position:relative; isolation:isolate; overflow:hidden; margin:16px 16px 16px 0; border-radius:20px; background:#101f39; background-image:radial-gradient(ellipse at 92% 78%,#25466e80,transparent 70%),radial-gradient(ellipse at 30% 5%,#29437450,transparent 70%); color:#f1f6ff; min-width:0; display:flex; align-items:center; }
.access-showcase::before { content:""; position:absolute; width:500px; height:500px; border:1px solid #c4d8ff08; border-radius:50%; left:22%; top:-370px; box-shadow:0 0 0 65px #c4d8ff03,0 0 0 130px #c4d8ff03; z-index:-1; }
.access-showcase-grain { position:absolute; inset:0; z-index:-1; background-image:radial-gradient(#d0e0ff22 .7px,transparent .7px); background-size:22px 22px; opacity:.27; mask-image:linear-gradient(transparent,#000 40%,transparent); }
.access-showcase-content { width:100%; padding:64px clamp(30px,4.7vw,80px) 35px; }
.access-showcase-kicker { display:flex; align-items:center; gap:9px; font-size:8px; letter-spacing:1.8px; font-weight:600; color:#a4b7d7; }.access-showcase-kicker>span { width:5px; height:5px; background:#81a9fc; border-radius:50%; }
.access-showcase h2 { font-size:clamp(30px,3.5vw,50px); font-weight:600; letter-spacing:-1.6px; line-height:1.18; margin:24px 0 20px; }.access-showcase h2>span { color:#a6c3fa; }
.access-showcase-copy { font-size:12px; color:#a5b7d0; line-height:1.9; max-width:370px; margin:0; }
.access-showcase-footer { display:flex; align-items:center; flex-wrap:wrap; gap:14px 22px; color:#91a8cb; padding-top:22px; border-top:1px solid #b0c8f215; font-size:9px; }.access-showcase-footer>span { display:flex; align-items:center; gap:7px; }.access-showcase-footer svg { width:13px; height:13px; }.access-showcase-footer>small { width:100%; font-size:7px; color:#617b9e; }
@keyframes access-spin { to { transform:rotate(360deg); } }
@media(min-width:1500px) { .access-form-wrap { max-width:430px; }.access-showcase-content { padding-inline:80px; } }
@media(max-width:1100px) { .access-main { padding-inline:36px; }.access-layout { grid-template-columns:1fr 1fr; }.access-showcase-content { padding-inline:32px; }.access-showcase h2 { font-size:34px; }.access-showcase-copy { font-size:11px; }.access-footer { font-size:8px; flex-wrap:wrap; } }
@media(max-width:820px) { .access-layout { grid-template-columns:1fr; }.access-main { padding:30px 32px 24px; min-height:100vh; min-height:100svh; }.access-form-wrap { max-width:410px; padding-block:52px; }.access-brand { align-self:flex-start; }.access-showcase { display:none; }.access-footer { justify-content:center; gap:8px 16px; font-size:9px; }.access-intro h1 { font-size:36px; } }
@media(max-width:400px) { .access-main { padding:25px 22px 20px; }.access-form-wrap { padding-block:42px; }.access-intro h1 { font-size:32px; }.access-intro { margin-bottom:28px; }.access-label-row { gap:8px; }.access-link { font-size:10px; }.access-input-wrap input { font-size:16px; }.access-help { font-size:10px; }.access-brand-mark { font-size:27px; }.access-brand-copy { font-size:12px; } }
@media(min-width:821px) and (max-height:800px) {
    .access-main { padding-top:28px; padding-bottom:20px; }
    .access-form-wrap { padding-block:28px; }
    .access-intro { margin-bottom:24px; }
    .access-intro h1 { font-size:36px; margin:10px 0; }
    .access-field { margin-bottom:18px; }
    .access-remember { margin-bottom:18px; }
    .access-help { margin-top:20px; padding-top:16px; }
    .access-showcase-content { padding:34px clamp(28px,4vw,64px) 24px; }
    .access-showcase h2 { font-size:38px; margin:18px 0 14px; }
    .access-showcase-footer { padding-top:16px; gap:10px 20px; }
}
@media(max-width:820px) { .access-input-wrap input { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .rfg-access * { transition:none !important; }.access-spinner { animation:none; border-style:dotted; } }
