:root { --navy:#071722; --ivory:#f7f4ec; --gold:#b18a46; --teal:#53a9b0; --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --serif:Georgia,"Times New Roman",serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--navy); color:var(--ivory); font:1rem/1.6 var(--sans); }
button,input,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:focus-visible,a:focus-visible { outline:2px solid var(--teal); outline-offset:6px; }
.entry { min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:3rem 1.5rem; background:radial-gradient(ellipse at 50% 38%,#10303a55 0%,transparent 57%); }
.entry-brand { display:flex; flex-direction:column; align-items:center; text-align:center; max-width:100%; }
.logo-mark { width:88px; height:88px; margin-bottom:1.6rem; }
.entry-wordmark { margin:0; max-width:100%; overflow-wrap:anywhere; font:400 clamp(3.1rem,7.5vw,4.75rem)/1.04 var(--serif); letter-spacing:-.035em; }
.entry-wordmark span { display:block; }
.entry-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:.8rem; margin-top:3rem; }
.entry-signin { padding:.75rem 1.6rem; min-height:46px; border:1px solid #b18a4670; border-radius:2px; background:transparent; color:#e9e7df; font-size:.875rem; letter-spacing:.025em; transition:background .18s ease,border-color .18s ease; }
.entry-signin:hover { background:#b18a4610; border-color:var(--gold); }
.login-dialog { width:min(430px,calc(100% - 2rem)); max-height:90svh; padding:2.3rem; border:1px solid #a78b5840; border-radius:6px; color:#213542; background:var(--ivory); box-shadow:0 30px 100px #0006; }
.login-dialog::backdrop { background:#020a12cc; backdrop-filter:blur(5px); }
.login-dialog h2 { font:400 2rem/1.2 var(--serif); margin:.3rem 0 1.6rem; }
.dialog-close { position:absolute; top:.6rem; right:.8rem; display:grid; place-items:center; width:36px; height:36px; border:0; background:transparent; color:#213542; font-size:1.6rem; }
label { display:block; margin-bottom:1rem; font-size:.875rem; font-weight:600; }
input:not([type="checkbox"]),textarea { width:100%; display:block; margin-top:.4rem; min-height:46px; padding:.65rem .75rem; border:1px solid #bdc9cd; border-radius:3px; background:#fff9; color:#213542; }
input:focus,textarea:focus { outline:2px solid #176774; outline-offset:2px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:.7rem 1rem; border:1px solid transparent; border-radius:3px; font-size:.875rem; font-weight:650; text-decoration:none; }
.button-primary { background:var(--gold); color:#071722; }
.button-primary:hover { background:#c39c56; }
.full { width:100%; }
.forgot-link { display:block; margin:.85rem auto 0; padding:.35rem; border:0; background:transparent; color:#365d6b; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.form-status { font-size:.875rem; color:#176774; }
.form-status:empty { display:none; }
.login-username,.login-password,.login-remember,.login-submit { margin:0 0 1rem; }
.login-remember label { display:flex; align-items:center; gap:.55rem; font-weight:400; }
.login-remember input { width:18px; height:18px; accent-color:#176774; }
.login-submit .button { width:100%; min-height:46px; border:0; border-radius:3px; background:var(--gold); color:#071722; font-weight:650; }
.login-submit .button:hover { background:#c39c56; }
.page-notice { max-width:620px; margin:1.4rem auto 0; padding:.75rem 1rem; border:1px solid #53a9b055; color:#dcecef; text-align:center; font-size:.875rem; }
.page-notice.error,.form-status.error { color:#973e35; }
.hp-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.preview-access { border-top:1px solid #d6dad5; margin-top:1.4rem; padding-top:1rem; }
.preview-access p { color:#68777d; font-size:.8125rem; line-height:1.55; margin:0 0 .7rem; }
.preview-link { display:inline-block; color:#176774; font-size:.875rem; font-weight:600; text-underline-offset:4px; }
@media(max-width:480px) { .entry { padding:2rem 1rem; } .entry-wordmark { font-size:3.4rem; } .logo-mark { width:76px; height:76px; margin-bottom:1.4rem; } .entry-actions { margin-top:2.5rem; gap:.65rem; } .entry-signin { padding-inline:1rem; } .login-dialog { padding:1.7rem; } }
@media(prefers-reduced-motion:reduce) { * { transition:none!important; } }

.application-dialog { width:min(600px,calc(100% - 2rem)); overflow-y:auto; }
.application-intro { margin:0 0 1rem; color:#637079; font-size:.9375rem; }
.application-preview-note { font-size:.8125rem; color:#176774; margin:0 0 1.2rem; }
.application-form .field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.application-form textarea { resize:vertical; min-height:100px; }
.application-form .checkbox-label { display:flex; align-items:flex-start; gap:.7rem; font-weight:400; line-height:1.55; }
.application-form input[type="checkbox"] { width:18px; height:18px; flex:0 0 auto; margin:.2rem 0 0; accent-color:#176774; }
@media(max-width:420px) { .application-form .field-row { grid-template-columns:1fr; gap:0; } }
