*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--navy:#0B1E3D;--green:#1A7A4A;--cream:#FAF8F4;--slate:#5C6B84;--white:#fff;--red:#C0392B;--font-d:'Cormorant Garamond',serif;--font-b:'DM Sans',sans-serif}
html,body{height:100%}
body{font-family:var(--font-b);min-height:100%;background:#0B2E1A;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow-y:auto;position:relative}
body::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 65% 55% at 15% 85%,rgba(26,122,74,.25) 0%,transparent 60%),radial-gradient(ellipse 50% 40% at 85% 10%,rgba(11,46,26,.9) 0%,transparent 65%);pointer-events:none}
.grid{position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}
.wrap{position:relative;z-index:1;width:100%;max-width:420px;margin:auto}
.brand{text-align:center;margin-bottom:28px}
.emblem{width:58px;height:58px;background:var(--green);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;margin:0 auto 14px;box-shadow:0 8px 28px rgba(26,122,74,.45)}
.brand h1{font-family:var(--font-d);font-size:1.5rem;font-weight:700;color:var(--white);line-height:1.25}
.brand p{font-size:.71rem;color:rgba(255,255,255,.4);margin-top:5px;letter-spacing:.05em;text-transform:uppercase}
.card{background:var(--white);border-radius:18px;padding:32px 28px 26px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.role-tag{display:inline-block;background:rgba(26,122,74,.1);color:var(--green);padding:3px 10px;border-radius:12px;font-size:.63rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.card h2{font-family:var(--font-d);font-size:1.3rem;color:var(--navy);margin-bottom:4px}
.card p{font-size:.79rem;color:var(--slate);margin-bottom:22px}
.fg{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}
label{font-size:.76rem;font-weight:600;color:var(--navy)}
input{padding:10px 13px;border:1.5px solid rgba(11,30,61,.12);border-radius:9px;font-size:.875rem;font-family:var(--font-b);color:var(--navy);outline:none;width:100%;transition:border-color .18s,box-shadow .18s;background:var(--white)}
input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(26,122,74,.11)}
.err{background:#FDEAEA;color:var(--red);padding:9px 13px;border-radius:8px;font-size:.8rem;margin-bottom:14px;display:none}
.err.show{display:block}
.sub{width:100%;padding:12px;background:var(--navy);color:var(--white);border:none;border-radius:9px;font-size:.9rem;font-weight:600;font-family:var(--font-b);cursor:pointer;margin-top:4px;transition:background .18s;display:flex;align-items:center;justify-content:center;gap:8px}
.sub:hover{background:var(--green)}
.sub:disabled{opacity:.65;cursor:not-allowed}
.foot{text-align:center;font-size:.72rem;color:rgba(255,255,255,.28);margin-top:18px}
.admin-link{text-align:center;margin-top:14px;font-size:.78rem;color:var(--slate)}
.admin-link a{color:var(--navy);font-weight:600;text-decoration:underline}
@media(max-width:480px){
  .card{padding:24px 18px 20px;border-radius:14px}
  .brand h1{font-size:1.3rem}
  body{padding:20px 12px}
}