/* MFPC Secure Intake portal — same royal-blue / brushed-steel look as the scheduling portal + emails.
   No inline styles anywhere (strict CSP): every style lives here. */
:root { --royal:#1b2a8f; --royal-deep:#101c66; --blue:#0b5cad; --ink:#1f2933; --muted:#5b6570; --line:#d5dbe3;
        --page:#eef1f5; --err:#b42318; --ok:#1e9e57; --radius:14px; --font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body { font-family:var(--font); color:var(--ink); background:var(--page); line-height:1.55; min-height:100vh; display:flex; flex-direction:column; }
.site-head { background:#fff; border-bottom:1px solid var(--line); }
.site-head-inner { max-width:880px; margin:0 auto; padding:.7rem 1rem; display:flex; align-items:center; gap:1rem; }
.brand { height:44px; width:auto; }
.lock { margin-left:auto; color:var(--royal); font-weight:600; font-size:.9rem; }
.head-phone { color:var(--royal); font-weight:700; text-decoration:none; }
.steel { height:6px; background:linear-gradient(90deg,#eef1f4 0%,#c3ccd6 22%,#9aa6b3 50%,#c3ccd6 78%,#eef1f4 100%); }
.wrap { flex:1; width:100%; max-width:880px; margin:0 auto; padding:1.2rem 1rem 2rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem 1.5rem; box-shadow:0 10px 30px rgba(16,28,102,.06); }
.card.narrow { max-width:620px; margin:0 auto; }
h1 { font-size:1.45rem; margin:.2rem 0 .8rem; color:var(--royal-deep); }
h2 { font-size:1.1rem; margin:1rem 0 .5rem; }
.facts { padding-left:1.1rem; } .facts li { margin:.35rem 0; }
.dob-row { display:flex; gap:.6rem; } .dob-row label { flex:1; font-weight:600; font-size:.9rem; }
input[type=text], input[type=email], input[type=tel], input[type=date], input:not([type]), select, textarea, .dob-row input {
  width:100%; padding:.6rem .7rem; border:1px solid #8a94a3; border-radius:8px; font:inherit; background:#fff; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue); }
input[type=checkbox], input[type=radio] { margin:0; width:auto; }
.btn { display:inline-block; padding:.7rem 1.3rem; border-radius:9px; border:1px solid #8a94a3; background:#fff; color:var(--ink); font:inherit; font-weight:600; cursor:pointer; }
.btn.primary { background:var(--royal); border-color:var(--royal); color:#fff; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.linkbtn { background:none; border:0; color:var(--blue); text-decoration:underline; cursor:pointer; font:inherit; padding:0; }
.err, .qerr { color:var(--err); font-weight:600; }
.progress { display:flex; align-items:center; gap:.8rem; font-size:.85rem; color:var(--muted); margin-bottom:.4rem; }
.bar { flex:1; height:6px; background:#e6eaf0; border-radius:99px; overflow:hidden; }
.fill { height:100%; background:var(--royal); }
.fill.w0{width:0%}.fill.w5{width:5%}.fill.w10{width:10%}.fill.w15{width:15%}.fill.w20{width:20%}.fill.w25{width:25%}.fill.w30{width:30%}.fill.w35{width:35%}.fill.w40{width:40%}.fill.w45{width:45%}.fill.w50{width:50%}.fill.w55{width:55%}.fill.w60{width:60%}.fill.w65{width:65%}.fill.w70{width:70%}.fill.w75{width:75%}.fill.w80{width:80%}.fill.w85{width:85%}.fill.w90{width:90%}.fill.w95{width:95%}.fill.w100{width:100%}
.intro { background:#f5f7fa; border:1px solid var(--line); border-radius:10px; padding:.7rem .9rem; }
.qgrid { display:flex; flex-wrap:wrap; gap:1rem 1rem; margin-top:.6rem; }
.q { flex:1 1 100%; }
.q.half { flex:1 1 calc(50% - .5rem); min-width:14rem; }
.q.has-err input, .q.has-err select, .q.has-err textarea { border-color:var(--err); }
.qlabel { display:block; font-weight:600; margin-bottom:.35rem; }
.req { color:var(--err); }
.help { color:var(--muted); font-size:.85rem; margin:.2rem 0 .35rem; }
.choice { display:flex; align-items:center; justify-content:flex-start; gap:10px; padding:.45rem .6rem; border:1px solid var(--line); border-radius:8px; margin:.3rem 0; cursor:pointer; }
.choice:hover { background:#f5f7fb; }
.info { background:#eef2ff; border:1px solid #c7d2fe; border-radius:10px; padding:.7rem .9rem; margin:0; font-size:.92rem; }
.consent-text { margin:0 0 .3rem; font-weight:600; }
.decline { margin-top:.6rem; background:#fef3f2; border:1px solid #fecdca; border-radius:10px; padding:.75rem .9rem; }
.files { margin:.2rem 0 .4rem; padding-left:1.1rem; }
.sigpad { width:100%; max-width:600px; height:auto; aspect-ratio:600/180; border:1px solid #8a94a3; border-radius:8px; background:#fff; touch-action:none; display:block; }
.nav { display:flex; justify-content:space-between; gap:1rem; margin-top:1.4rem; }
.nav .btn.primary { margin-left:auto; }
.site-foot { text-align:center; color:var(--muted); font-size:.82rem; padding:1rem; border-top:1px solid var(--line); background:#fff; }
.site-foot .fine { margin-top:.3rem; }
@media (max-width:600px) { .card { padding:1rem; } .q.half { flex-basis:100%; } .lock { display:none; } }
