:root {
    --frsc-green: #05228b;
    --frsc-green-dark: #020e3c;
    --frsc-red: #d71920;
    --ink: #17212b;
    --muted: #667085;
    --surface: #ffffff;
    --soft: #f3f6f5;
}

html { scroll-behavior: smooth; }
body { color: var(--ink); font-family: Inter, "Segoe UI", Arial, sans-serif; background: #fff; }
.public-header { z-index: 1030; }
.navbar { min-height: 78px; }
.navbar-brand img { object-fit: contain; }
.brand-title { display: block; color: var(--frsc-green-dark); letter-spacing: .04em; font-size: 1.18rem; line-height: 1; }
.brand-subtitle { font-size: .72rem; margin-top: .25rem; }
.nav-link { font-weight: 600; color: #344054; }
.nav-link:hover { color: var(--frsc-green); }
.btn-frsc { --bs-btn-color:#fff; --bs-btn-bg:var(--frsc-green); --bs-btn-border-color:var(--frsc-green); --bs-btn-hover-color:#fff; --bs-btn-hover-bg:var(--frsc-green-dark); --bs-btn-hover-border-color:var(--frsc-green-dark); --bs-btn-active-bg:var(--frsc-green-dark); --bs-btn-active-border-color:var(--frsc-green-dark); box-shadow: 0 8px 18px rgba(5,34,139,.18); }
.hero-section { position: relative; color: #fff; overflow: hidden; background: radial-gradient(circle at 80% 15%, rgba(255,255,255,.14), transparent 30%), linear-gradient(180deg, #05228b 0%, #020e3c 100%); }
.hero-section::after { content:""; position:absolute; width:390px; height:390px; border:80px solid rgba(215,25,32,.15); border-radius:50%; right:-160px; bottom:-220px; }
.hero-overlay { position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size:34px 34px; }
.min-vh-75 { min-height: 75vh; }
.hero-kicker { display:inline-flex; align-items:center; padding:.45rem .85rem; border:1px solid rgba(255,255,255,.3); border-radius:999px; background:rgba(255,255,255,.08); font-weight:600; }
.hero-full-name { font-size: clamp(1.4rem, 3vw, 2.25rem); max-width:760px; line-height:1.22; font-weight:600; }
.hero-copy { max-width:710px; color:rgba(255,255,255,.85); font-size:1.08rem; line-height:1.8; }
.hero-trust { display:flex; flex-wrap:wrap; gap:1.25rem; color:rgba(255,255,255,.84); font-size:.92rem; }
.hero-trust i { color:#fff; margin-right:.35rem; }
.hero-emblem-card { width:min(360px, 85vw); margin-inline:auto; background:rgba(255,255,255,.96); border-radius:32px; padding:2.2rem; box-shadow:0 28px 75px rgba(0,0,0,.28); transform:rotate(1.5deg); border-bottom:8px solid var(--frsc-red); }
.hero-emblem-card img { max-height:250px; object-fit:contain; }
.hero-emblem-caption { color:var(--frsc-green-dark); font-weight:700; margin-top:1rem; letter-spacing:.04em; }
.section-padding { padding: 5.5rem 0; }
.section-kicker { color:var(--frsc-green); text-transform:uppercase; letter-spacing:.13em; font-size:.78rem; font-weight:800; }
.section-title { font-weight:800; line-height:1.2; margin-top:.65rem; }
.section-heading { max-width:760px; }
.feature-card { padding:2rem; border-radius:20px; border:1px solid #e4e9e6; background:#fff; box-shadow:0 12px 30px rgba(20,48,34,.06); transition:.25s ease; }
.feature-card:hover { transform:translateY(-6px); box-shadow:0 22px 45px rgba(20,39,100,.14); border-color:rgba(5,34,139,.25); }
.feature-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:16px; background:rgba(5,34,139,.1); color:var(--frsc-green); font-size:1.65rem; margin-bottom:1.25rem; }
.feature-card h4 { font-size:1.08rem; font-weight:800; }
.feature-card p { color:var(--muted); line-height:1.7; margin-bottom:0; }
.workflow-section { background:linear-gradient(180deg, #05228b 0%, #020e3c 100%); }
.workflow-step { position:relative; min-height:190px; padding:1.75rem; border-radius:18px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.13); color:#fff; }
.workflow-step span { display:inline-grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--frsc-red); font-weight:800; }
.workflow-step h5 { margin-top:1.2rem; font-weight:800; }
.workflow-step p { color:rgba(255,255,255,.7); margin-bottom:0; }
.cta-card { padding:3.5rem; border-radius:28px; background:linear-gradient(180deg,#fff,#f6faf8); border:1px solid #e1ebe5; box-shadow:0 20px 55px rgba(15,70,42,.1); }
.public-footer { background:#122019; color:#fff; }
.auth-section { min-height:calc(100vh - 78px); display:flex; align-items:center; padding:4rem 0; background:radial-gradient(circle at top right, rgba(5,34,139,.18), transparent 30%), #f3f5fb; }
.auth-card { background:#fff; border:1px solid #e2e7f2; border-top:5px solid var(--frsc-green); border-radius:22px; padding:clamp(1.5rem,4vw,2.5rem); box-shadow:0 24px 65px rgba(20,39,100,.14); }
.auth-notice { background:#f7f9f8; border-radius:10px; padding:.85rem 1rem; color:#667085; font-size:.82rem; }
.success-circle { width:78px; height:78px; border-radius:50%; margin:auto; display:grid; place-items:center; background:rgba(5,34,139,.1); color:var(--frsc-green); font-size:2.2rem; }
.input-group-text { background:#f8faf9; }
.form-control:focus, .form-select:focus { border-color:rgba(5,34,139,.6); box-shadow:0 0 0 .25rem rgba(5,34,139,.12); }
@media (max-width: 991.98px) { .hero-section { text-align:center; } .hero-copy { margin-inline:auto; } .hero-trust,.hero-section .d-flex { justify-content:center; } .section-padding { padding:4rem 0; } }
