:root { --ink:#17213b; --blue:#1261aa; --blue-dark:#073f7a; --red:#e52b34; --soft:#eff6fc; --line:#cfdaea; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f5f8fc; font:17px/1.5 "Source Sans 3", Arial, sans-serif; }
.shell { width:min(100% - 40px, 1020px); margin:auto; }
.skip-link { position:absolute; left:-9999px; }
.skip-link:focus { left:20px; top:20px; z-index:10; background:#fff; padding:10px; }
.site-header { color:#fff; background:linear-gradient(116deg, var(--blue-dark), var(--blue)); padding:27px 0; box-shadow:inset 0 -4px 0 var(--red); }
.brand { display:flex; gap:18px; align-items:center; }
.brand img { width:84px; height:84px; object-fit:contain; background:#fff; border-radius:12px; padding:5px; }
.eyebrow { margin:0 0 3px; color:var(--blue); font-size:.82rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.site-header .eyebrow { color:#bcdcff; }
h1,h2,p { margin-top:0; }.brand h1 { margin:0; font-size:clamp(1.55rem,4vw,2.25rem); line-height:1.1; }.brand p:last-child { margin:5px 0 0; color:#d8e9fa; }
.layout { padding:52px 0 64px; }.intro { max-width:760px; margin-bottom:34px; }.intro h2 { margin-bottom:10px; font-size:clamp(1.75rem,4vw,2.6rem); line-height:1.1; }.notice { padding:14px 17px; border-left:4px solid var(--red); background:#fff; border-radius:0 8px 8px 0; }
.form-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:clamp(20px,4vw,38px); box-shadow:0 12px 36px #0b3e7610; }.form-heading { display:flex; justify-content:space-between; align-items:start; gap:20px; margin-bottom:25px; }.form-heading h2 { margin:0; font-size:1.75rem; }
.fields { display:grid; gap:17px; margin:0 0 22px; }.two-columns { grid-template-columns:repeat(2,1fr); }.three-columns { grid-template-columns:repeat(3,1fr); }.section-fields { grid-template-columns:1.25fr 1fr; }
.quick-tools { margin:0 0 22px; padding:17px; background:var(--soft); border:1px solid #d7e7f6; border-radius:8px; }.quick-tools h3 { margin:0 0 10px; font-size:1.05rem; }.tool-row { display:flex; flex-wrap:wrap; gap:9px; align-items:center; }.tool-row select { width:min(100%, 390px); margin:0; }.secondary,.text-button { cursor:pointer; font:inherit; font-weight:700; }.secondary { padding:10px 12px; color:var(--blue-dark); background:#fff; border:1px solid #9dbddd; border-radius:6px; }.secondary:hover { background:#e4f1fc; }.text-button { padding:7px; color:#9c262d; background:transparent; border:0; text-decoration:underline; }.text-button--muted { color:#52627b; }.fixed-signatory { align-self:end; margin:0; padding:11px 12px; border-left:3px solid var(--red); background:#f8fafc; line-height:1.35; }.fixed-signatory span { font-size:.88rem; color:#53627a; }
label,legend { display:block; font-size:.95rem; font-weight:700; } .optional { font-weight:400; color:#61708a; }
input,textarea,select { display:block; width:100%; margin-top:6px; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #aebed3; border-radius:6px; font:inherit; font-weight:400; } textarea { resize:vertical; } input:focus,textarea:focus,select:focus { outline:3px solid #87bfee88; border-color:var(--blue); }
.checks { display:flex; flex-wrap:wrap; gap:16px 28px; margin:4px 0 24px; padding:16px; border:1px solid var(--line); border-radius:8px; }.checks legend { padding:0 7px; }.checks label { display:flex; align-items:center; gap:7px; }.checks input { width:auto; margin:0; accent-color:var(--blue); }
.submit-row { display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); padding-top:23px; }.submit-row p { margin:0; color:#a0262d; font-size:.95rem; }.primary,.link-button { border:0; cursor:pointer; font:inherit; font-weight:800; }.primary { white-space:nowrap; padding:13px 19px; color:#fff; background:var(--blue); border-radius:7px; box-shadow:0 3px 0 var(--blue-dark); }.primary:hover { background:var(--blue-dark); }.link-button { padding:5px 0; color:var(--blue); background:transparent; text-decoration:underline; }
footer { padding:24px 0; color:#d5e7fb; background:var(--ink); font-size:.92rem; }.footer-inner { display:flex; justify-content:space-between; gap:16px; align-items:center; }.footer-inner a { color:#fff; font-weight:700; }
.login-page { display:grid; min-height:100vh; place-items:center; padding:24px; background:linear-gradient(135deg, #e6f2ff, #f7f9fc 55%, #edf2f8); }.login-shell { width:min(100%, 470px); }.login-card { padding:clamp(28px, 7vw, 48px); background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 16px 44px #0d407628; }.login-card img { display:block; width:88px; height:88px; margin-bottom:21px; padding:5px; object-fit:contain; background:#fff; border-radius:12px; }.login-card h1 { margin-bottom:9px; font-size:2rem; line-height:1.1; }.login-card form { display:grid; gap:8px; margin-top:24px; }.login-card form .primary { margin-top:12px; }.login-error { margin:20px 0 0; padding:10px 12px; color:#8e1820; background:#fff1f2; border-left:3px solid var(--red); }
@media (max-width:700px) { .layout { padding-top:34px; }.two-columns,.three-columns,.section-fields { grid-template-columns:1fr; }.submit-row,.footer-inner { align-items:stretch; flex-direction:column; }.primary { white-space:normal; }.form-heading { margin-bottom:20px; } }
