:root { --navy:#13294b; --red:#c8102e; --gold:#f2a900; --bg:#f5f7fa; --card:#fff; --text:#1d2433; --muted:#5b6475; --line:#d9dee7; --ok:#1d7a46; }
* { box-sizing: border-box; }
html { scroll-padding-bottom:110px; }
html, body { margin:0; background:var(--bg); color:var(--text); font:16px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.testbanner { background:#fff3cd; color:#7a4b00; border-bottom:2px solid var(--gold); text-align:center; font-weight:700; padding:8px 12px; font-size:14px; position:sticky; top:0; z-index:5; }
.brand { display:flex; gap:12px; align-items:center; padding:16px 18px 10px; max-width:720px; margin:0 auto; }
.logo { width:46px; height:46px; border-radius:10px; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; letter-spacing:.5px; flex:none; border-bottom:4px solid var(--red); }
.agency { color:var(--red); font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:.6px; }
h1 { margin:0; font-size:20px; color:var(--navy); }
.progresswrap { max-width:720px; margin:0 auto; height:8px; background:#e3e8f0; border-radius:8px; overflow:hidden; width:calc(100% - 36px); }
.progress { height:100%; width:0; background:linear-gradient(90deg, var(--navy), var(--red)); transition:width .3s; }
.steplabel { max-width:720px; margin:6px auto 0; padding:0 18px; color:var(--muted); font-size:13px; }
main { max-width:720px; margin:10px auto; padding:0 12px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px 18px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.card h2 { margin:0 0 6px; color:var(--navy); font-size:22px; }
.stephelp { color:var(--muted); margin:0 0 14px; }
.field { margin:18px 0; }
.field > label, .field > .lbl { display:block; font-weight:600; margin-bottom:6px; }
.req { color:var(--red); margin-left:2px; }
.help { color:var(--muted); font-size:14px; margin:-2px 0 8px; }
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=number], select, textarea {
  width:100%; font:inherit; padding:11px 12px; border:1px solid #b9c1cf; border-radius:10px; background:#fff; color:inherit; }
textarea { min-height:90px; resize:vertical; }
input:focus, select:focus, textarea:focus { outline:3px solid rgba(19,41,75,.18); border-color:var(--navy); }
.choices { display:flex; flex-wrap:wrap; gap:8px; }
.choice { position:relative; }
.choice input { position:absolute; opacity:0; inset:0; }
.choice span { display:inline-block; padding:10px 18px; border:1.5px solid #b9c1cf; border-radius:999px; background:#fff; cursor:pointer; min-width:64px; text-align:center; }
.choice input:checked + span { background:var(--navy); color:#fff; border-color:var(--navy); }
.choice input:focus-visible + span { outline:3px solid rgba(19,41,75,.3); }
.choices.stack { flex-direction:column; }
.choices.stack .choice span { border-radius:10px; text-align:left; width:100%; }
.checks label.chk { display:flex; gap:12px; align-items:flex-start; border:1.5px solid var(--line); border-radius:10px; padding:10px 12px; margin:8px 0; cursor:pointer; background:#fff; }
.checks label.chk input { width:22px; height:22px; margin:2px 0 0; flex:none; accent-color:var(--navy); }
.checks label.chk.on { border-color:var(--navy); background:#eef2f8; }
.checks .ch { display:block; color:var(--muted); font-size:13px; font-weight:400; }
.addr { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.addr .street { grid-column:1 / -1; }
.addr .st { max-width:100%; }
.trow { border:1px solid var(--line); border-radius:12px; padding:10px 12px 4px; margin:10px 0; background:#fbfcfe; }
.trow .thead { display:flex; justify-content:space-between; align-items:center; font-weight:700; color:var(--navy); margin-bottom:4px; }
.tcells { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.tcells .wide { grid-column:1 / -1; }
.tcells label { font-size:13px; color:var(--muted); display:block; margin-bottom:3px; }
.tcell { margin-bottom:8px; }
.linkbtn { background:none; border:none; color:var(--red); font:inherit; cursor:pointer; padding:4px; text-decoration:underline; }
.addrow { margin-top:4px; }
.agree { display:flex; gap:12px; align-items:flex-start; background:#f7f9fc; border:1px solid var(--line); border-radius:10px; padding:12px; }
.agree input { width:22px; height:22px; flex:none; margin-top:2px; accent-color:var(--navy); }
.sigpad { border:1.5px dashed #9aa5b8; border-radius:10px; background:#fff; touch-action:none; width:100%; height:140px; display:block; margin-top:8px; }
.sigtools { display:flex; justify-content:space-between; font-size:13px; color:var(--muted); margin-top:4px; }
.typedsig { font-family:"Brush Script MT","Segoe Script","Snell Roundhand",cursive; font-size:26px; }
.err { color:var(--red); font-size:14px; margin-top:6px; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color:var(--red); }
.nav { position:sticky; bottom:0; display:flex; gap:10px; justify-content:space-between; max-width:720px; margin:0 auto; padding:12px; background:linear-gradient(rgba(245,247,250,0), var(--bg) 30%); }
.btn { font:inherit; font-weight:700; border-radius:12px; padding:13px 22px; border:none; cursor:pointer; flex:1; max-width:220px; }
.btn.primary { background:var(--red); color:#fff; margin-left:auto; }
.btn.secondary { background:#fff; color:var(--navy); border:1.5px solid var(--navy); }
.btn:disabled { opacity:.45; cursor:default; }
.foot { text-align:center; color:var(--muted); font-size:13px; padding:10px 12px 28px; }
.foot a { color:var(--muted); }
.notice { background:#eef6f0; border:1px solid #b8dcc5; color:#174a2c; border-radius:10px; padding:10px 12px; margin:12px 0; font-size:14px; }
.summary h3 { color:var(--navy); margin:22px 0 6px; font-size:17px; }
.summary table { width:100%; border-collapse:collapse; font-size:14px; }
.summary td, .summary th { border-bottom:1px solid var(--line); padding:7px 6px; text-align:left; vertical-align:top; }
.summary th { color:var(--muted); font-weight:600; }
.pill { display:inline-block; padding:2px 9px; border-radius:999px; font-weight:700; font-size:13px; background:#e9edf3; }
.pill.No { background:#fde8eb; color:#8a1022; } .pill.Yes { background:#e3f3e9; color:var(--ok); } .pill.NA { background:#eef0f4; color:#444; }
.dl { display:block; text-align:center; text-decoration:none; background:var(--navy); color:#fff; font-weight:700; padding:15px; border-radius:12px; margin:16px 0; font-size:17px; }
.loading { color:var(--muted); }
@media (max-width:520px) { .tcells, .addr { grid-template-columns:1fr; } .card { padding:18px 14px; } h1 { font-size:18px; } .card h2 { font-size:20px; } }

.files { display:flex; flex-direction:column; gap:8px; }
.filechip { display:flex; justify-content:space-between; align-items:center; gap:8px; background:#eef2f8; border:1px solid #c9d3e3; border-radius:10px; padding:8px 10px; font-size:14px; word-break:break-all; }
.filebtn { position:relative; display:inline-block; align-self:flex-start; }
.filebtn input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.filebtn span { display:inline-block; padding:10px 16px; border:1.5px dashed var(--navy); border-radius:10px; color:var(--navy); font-weight:600; background:#fff; }
.filebtn:focus-within span { outline:3px solid rgba(19,41,75,.3); }
