/* Hamish's v2.1 stylesheet, verbatim from docs/source/hamish/intake-form-v2.1.html (unused header rules dropped, keyboard focus on drop zones added). */
:root{
  --cpc-blue:#3a55a1;--cpc-darkblue:#30437b;--cpc-lightblue:#5c75bd;--cpc-grey:#a2afbf;
  --cpc-darkgrey:#747e89;--cpc-bodygrey:#969da5;--cpc-green:#108b44;--uni-orange:#f5811f;--uni-dark:#53565a;--uni-grey:#808285;
  --ink:#2b3038;--line:#dfe3ea;--bg:#f4f6f9;--card:#fff;--radius:10px;--err:#d23b3b;
  --font-head:"Franklin Gothic Demi","Franklin Gothic Medium","Arial Narrow",Arial,sans-serif;
  --font-body:"Myriad Pro","Segoe UI",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-print-color-adjust:exact;print-color-adjust:exact}
a{color:var(--cpc-blue)}
header.brand{background:#fff;color:var(--uni-dark);padding:14px 22px;border-bottom:4px solid var(--uni-orange)}
header.brand .row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
header.brand .uni-logo{height:38px;width:auto;display:block}
header.brand .cpc-logo{height:34px;width:auto;display:block}
header.brand .spacer{flex:1 1 40px}
.wrap{max-width:900px;margin:26px auto 60px;padding:0 18px}
.intro{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--cpc-green);border-radius:var(--radius);padding:16px 18px;margin-bottom:22px}
.intro h1{font-family:var(--font-head);color:var(--cpc-blue);font-size:20px;margin:0 0 6px}
.intro p{margin:6px 0;color:#41474f}
.keybox{background:#eef6f0;border:1px solid #cfe6d6;border-radius:8px;padding:12px 14px;margin-top:10px;font-size:14px}
.keybox b{color:var(--cpc-green)}
fieldset{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px 22px;margin:0 0 20px}
legend{font-family:var(--font-head);color:#fff;background:var(--uni-orange);padding:6px 14px;border-radius:20px;font-size:14px;letter-spacing:.5px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.grid .full{grid-column:1 / -1}
@media(max-width:640px){.grid{grid-template-columns:1fr}}
label.f{display:block;font-weight:600;margin:0 0 5px;color:#3a4048}
label.f .req{color:var(--cpc-green);font-weight:700}
.hint{font-weight:400;color:var(--cpc-bodygrey);font-size:12.5px;margin-top:2px}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=url],select,textarea{
  width:100%;padding:9px 11px;border:1px solid #cdd3dc;border-radius:7px;font-family:var(--font-body);font-size:14.5px;background:#fff;color:var(--ink)}
textarea{min-height:64px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cpc-lightblue);box-shadow:0 0 0 3px rgba(92,117,189,.18)}
/* invalid state */
.invalid input,.invalid select,.invalid textarea,input.invalid,select.invalid,textarea.invalid,.invalid .drop{border-color:var(--err) !important;background:#fdf3f3}
.invalid > label.f, .invalid-label{color:var(--err) !important}
.fielderr{display:none;color:var(--err);font-size:12.5px;margin-top:4px;font-weight:600}
.invalid .fielderr{display:block}
.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:4px}
.checks label{display:flex;align-items:center;gap:7px;font-weight:500;color:#41474f}
.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inline input[type=number]{max-width:150px}
.unit{max-width:130px}
.drop{border:2px dashed var(--cpc-grey);border-radius:10px;padding:16px;text-align:center;background:#fafbfd;cursor:pointer;transition:.15s}
.drop:hover,.drop.hot{border-color:var(--cpc-green);background:#f0f7f2}
.drop:focus-visible{outline:none;border-color:var(--cpc-lightblue);box-shadow:0 0 0 3px rgba(92,117,189,.18)}
.drop b{color:var(--cpc-blue)}
.filelist{list-style:none;padding:0;margin:10px 0 0}
.filelist li{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;margin-bottom:6px;background:#fff;font-size:13.5px}
.filelist li .sz{color:var(--cpc-bodygrey);margin-left:auto}
.filelist li button{background:none;border:none;color:#b23;cursor:pointer;font-size:16px;line-height:1}
.flag{background:#fff5e6;border:1px solid #f0d9a8;color:#8a6417;border-radius:8px;padding:8px 12px;font-size:13px;margin-top:6px;display:none}
.flag.show{display:block}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}
button.primary{background:var(--uni-orange);color:#fff;border:none;font-family:var(--font-head);font-size:16px;letter-spacing:.5px;padding:13px 26px;border-radius:8px;cursor:pointer}
button.primary:hover{background:#d96e12}
.savenote{font-size:13px;color:var(--cpc-bodygrey);margin-top:12px}
code{background:#eef1f7;padding:1px 6px;border-radius:4px;font-size:12.5px}
.foot{color:var(--cpc-bodygrey);font-size:12.5px;text-align:center;margin-top:26px;line-height:1.6}
.errsum{background:#fdf3f3;border:1px solid #f0c4c4;color:var(--err);border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:14px;display:none}
.errsum.show{display:block}
.errsum b{font-family:var(--font-head)}
