@font-face { font-family: "Public Sans"; font-weight: 400; src: url(fonts/public-sans-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 600; src: url(fonts/public-sans-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 700; src: url(fonts/public-sans-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Source Serif 4"; font-weight: 600; src: url(assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2"); }
body { margin: 0; background: #0B2545; font-family: "Public Sans", system-ui, sans-serif; color: #1C2430; }
.stage { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; }
.card { width: 100%; max-width: 440px; background: #FFFFFF; border-radius: 12px; padding: 44px; box-sizing: border-box; display: flex; flex-direction: column; gap: 20px; }
.brand { font-size: 11px; letter-spacing: 0.14em; font-weight: 700; color: #3D679F; }
h1 { margin: 0; font-family: "Source Serif 4", Georgia, serif; font-size: 38px; font-weight: 600; color: #0B2545; }
.intro { margin: 0; font-size: 15px; line-height: 1.55; color: #3C4654; }
label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
input { height: 44px; padding: 0 12px; border: 1px solid #A7B2C1; border-radius: 6px; font-size: 15px; font-family: inherit; }
input:focus-visible, button:focus-visible { outline: 3px solid #3D679F; outline-offset: 2px; }
button { height: 46px; border-radius: 6px; border: none; background: #0B2545; color: #FFFFFF; font-size: 15px; font-weight: 600; font-family: inherit; cursor: pointer; }
button:disabled { opacity: 0.7; cursor: progress; }
.note { margin: 0; font-size: 12px; line-height: 1.5; color: #4A5563; }
.error { margin: 0; font-size: 14px; color: #9B1C1C; background: #FDECEC; border-radius: 6px; padding: 10px 12px; }
