:root{
  --brand:#1F3253; --ink:#0b172a; --muted:#5e6a7a; --card:#fff; --ring:rgba(31,50,83,.22);
}

/* Layout + sticky footer */
html,body{height:100%}
body{min-height:100vh;display:flex;flex-direction:column;margin:0;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif}
main{flex:1 0 auto}
footer{margin-top:auto;text-align:center;padding:16px 0;color:var(--muted);font-size:.9rem}

/* Center forms vertically when .center-main is present */
main.center-main{display:flex;align-items:center;justify-content:center;padding:24px 16px}

/* Header */
.site-header{background:#fff;border-bottom:1px solid #eef1f4;position:sticky;top:0;z-index:100}
.site-header .container{max-width:1100px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;gap:12px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--ink);text-decoration:none}
.logo{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--brand);color:#fff;font-weight:800}

/* Desktop nav */
.primary-nav{margin-left:auto;display:flex;gap:24px}
.primary-nav a{color:var(--ink);text-decoration:none;font-weight:600}
.primary-nav a:hover{color:var(--brand)}

/* Hamburger (hidden on desktop) */
.hamburger{display:none;width:36px;height:30px;position:relative;background:none;border:none;cursor:pointer}
.hamburger span{position:absolute;left:5px;right:5px;height:3px;background:var(--ink);border-radius:2px;transition:.25s}
.hamburger span:nth-child(1){top:6px}
.hamburger span:nth-child(2){top:13px}
.hamburger span:nth-child(3){top:20px}

/* Mobile nav */
@media (max-width:768px){
  .primary-nav{
    display:none;position:absolute;left:0;right:0;top:62px;background:#fff;
    flex-direction:column;gap:12px;padding:12px 16px 16px;box-shadow:0 8px 18px rgba(0,0,0,.08)
  }
  .site-header.nav-open .primary-nav{display:flex}
  .hamburger{display:block;margin-left:auto}
  .site-header.nav-open .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .site-header.nav-open .hamburger span:nth-child(2){opacity:0}
  .site-header.nav-open .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* Buttons keep navy brand */
button,.btn,[type=submit],a.button{background:var(--brand)!important;color:#fff!important;border:1px solid var(--brand)!important;border-radius:10px;padding:10px 16px;font-weight:700}

/* Form card */
.form-card{max-width:760px;margin:24px auto;background:var(--card);border:1px solid #e8edf3;border-radius:16px;padding:22px 20px 26px;box-shadow:0 6px 20px rgba(6,22,35,.04)}
.form-label{display:block;margin:10px 0 4px;font-weight:700;color:var(--ink)}
input,select,textarea{border:1px solid #cfd7e3;border-radius:10px;padding:10px 12px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--ring)}

/* Password eye */
.pw-wrap{position:relative;display:block}
.pw-input{padding-right:44px}
.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;border:0;background:var(--brand);color:#fff;cursor:pointer}
.pw-eye svg{width:18px;height:18px;fill:#fff}
.pw-eye[aria-pressed=true]{opacity:.85}

/* Defensive: if an auto-label and a real label exist side-by-side, hide the auto-label */
label.auto-label+label, label+label.auto-label{display:none}
