/* ========================================================================
   MPM Application Form - styles
   Brand colours: navy #0b1f44, red #c8102e, bg #f6f8fb
   ===================================================================== */
*,*::before,*::after { box-sizing:border-box }
html { -webkit-text-size-adjust:100% }
body {
  margin:0;
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:#f6f8fb;
  color:#1d2a3a;
}
img { max-width:100% }

/* ---------------- Layout ---------------------------------------------- */
.mp-shell { max-width:1080px; margin:0 auto; padding:0 16px 60px; }

.mp-header {
  background:#fff;
  padding:18px 24px;
  margin:20px 0 24px;
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:20px;
  box-shadow:0 1px 3px rgba(15,30,60,.06);
}
.mp-header img { max-height:60px; width:auto; }
.mp-header .meta { flex:1; min-width:0; }
.mp-header h1 {
  font-size:18px; margin:0; color:#0b1f44; font-weight:700;
  letter-spacing:.2px;
}
.mp-header .sub { font-size:13px; color:#5a6982; margin-top:2px; }

/* ---------------- Card sections --------------------------------------- */
.mp-card {
  background:#fff;
  border-radius:12px;
  box-shadow:0 1px 3px rgba(15,30,60,.06);
  margin-bottom:18px;
  overflow:hidden;
}
.mp-card-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 22px;
  background:linear-gradient(180deg,#0b1f44,#0e2854);
  color:#fff;
  cursor:pointer;
  user-select:none;
}
.mp-card-head h2 {
  margin:0; font-size:15px; font-weight:600; letter-spacing:.3px;
  text-transform:uppercase;
}
.mp-card-head .chev {
  width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.15);
  display:flex; align-items:center; justify-content:center; font-size:12px;
  transition:transform .15s;
}
.mp-card.open .chev { transform:rotate(180deg); }
.mp-card-body { padding:20px 22px 22px; display:none; }
.mp-card.open .mp-card-body { display:block; }

/* ---------------- Fields --------------------------------------------- */
.mp-grid {
  display:grid; gap:14px 18px;
  grid-template-columns:repeat(12, 1fr);
}
.mp-f       { grid-column:span 12; }
.mp-f.span2 { grid-column:span 2; }
.mp-f.span3 { grid-column:span 3; }
.mp-f.span4 { grid-column:span 4; }
.mp-f.span5 { grid-column:span 5; }
.mp-f.span6 { grid-column:span 6; }
.mp-f.span8 { grid-column:span 8; }

@media (max-width:720px) {
  .mp-f.span2,.mp-f.span3,.mp-f.span4,.mp-f.span5,.mp-f.span6,.mp-f.span8 {
    grid-column:span 12;
  }
  .mp-header { flex-direction:column; align-items:flex-start; }
  .mp-card-head { padding:12px 16px; }
  .mp-card-body { padding:16px; }
}

label.mp-lab {
  display:block; font-weight:600; font-size:12.5px;
  color:#3a4a64; margin-bottom:5px;
  text-transform:uppercase; letter-spacing:.4px;
}
.mp-help { font-size:12px; color:#7a8aa5; margin-top:4px; }

input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],
input[type=password],select,textarea {
  width:100%;
  padding:9px 11px;
  border:1px solid #d0d8e4;
  border-radius:6px;
  font:inherit;
  background:#fff;
  color:#1d2a3a;
  transition:border-color .1s,box-shadow .1s;
}
input:focus,select:focus,textarea:focus {
  outline:0; border-color:#0b1f44;
  box-shadow:0 0 0 3px rgba(11,31,68,.12);
}
textarea { resize:vertical; min-height:80px; }

/* Radio / checkbox groups */
.mp-opts { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; padding-top:4px; }
.mp-opts label {
  display:flex; align-items:center; gap:6px;
  padding:5px 11px;
  background:#f1f4f8;
  border:1px solid #e0e6ef;
  border-radius:18px;
  font-size:13px;
  cursor:pointer;
  font-weight:500;
}
.mp-opts label:hover { background:#e7ecf3; }
.mp-opts input[type=radio],
.mp-opts input[type=checkbox] { accent-color:#c8102e; margin:0; }
.mp-opts label.checked,
.mp-opts label:has(input:checked) {
  background:#c8102e; color:#fff; border-color:#c8102e;
}

/* File input */
.mp-file {
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; border:1px dashed #c0cad8; border-radius:6px;
  background:#fafbfd;
}
.mp-file button {
  background:#0b1f44; color:#fff; border:0; padding:6px 12px;
  border-radius:5px; cursor:pointer; font:inherit; font-size:13px;
}
.mp-file input[type=file] { display:none; }
.mp-file span { font-size:13px; color:#5a6982; }

/* Repeating tables (cert tables, experience, family) */
.mp-table-wrap { overflow-x:auto; margin-top:6px; }
table.mp-tbl {
  width:100%; border-collapse:collapse; font-size:13px;
  min-width:720px;
}
table.mp-tbl th, table.mp-tbl td {
  border-bottom:1px solid #e6eaf0; padding:6px 8px; text-align:left; vertical-align:middle;
}
table.mp-tbl th {
  background:#f1f4f8; font-weight:600; color:#33425a;
  font-size:11.5px; text-transform:uppercase; letter-spacing:.3px;
}
table.mp-tbl input,table.mp-tbl select {
  padding:6px 8px; font-size:13px;
}
.mp-rowbtn {
  background:none; border:0; color:#c8102e; cursor:pointer;
  font-weight:600; font-size:18px; padding:2px 6px;
}
.mp-addrow {
  margin-top:10px;
  background:#fff;
  color:#0b1f44;
  border:1px dashed #b3becf;
  padding:8px 16px;
  border-radius:6px;
  cursor:pointer;
  font:inherit; font-weight:600;
}
.mp-addrow:hover { background:#f1f4f8; border-color:#0b1f44; }

/* Declaration block */
.mp-decl {
  background:#f9fafc; padding:14px 16px; border-left:3px solid #c8102e;
  border-radius:4px; font-size:13.5px; color:#33425a;
  margin:8px 0 14px;
}

/* Submit area */
.mp-submit {
  text-align:center;
  background:#fff; padding:24px;
  border-radius:12px;
  box-shadow:0 1px 3px rgba(15,30,60,.06);
  margin-top:8px;
}
.mp-submit button {
  background:#c8102e;
  color:#fff; border:0;
  padding:13px 32px;
  border-radius:6px;
  font:inherit; font-weight:700; font-size:15px;
  cursor:pointer;
  letter-spacing:.3px;
  text-transform:uppercase;
}
.mp-submit button:hover { background:#a30d26; }
.mp-submit button:disabled { background:#9ba6b8; cursor:not-allowed; }

/* Status messages */
.mp-msg {
  padding:18px 20px;
  border-radius:8px;
  margin:18px 0;
  font-size:14px;
}
.mp-msg.ok   { background:#e3f6ec; color:#0f5a36; border:1px solid #b5e5c8; }
.mp-msg.err  { background:#fde8eb; color:#7a1024; border:1px solid #f3b9c1; }

/* Footer */
.mp-foot {
  text-align:center; color:#7a8aa5; font-size:12px; padding:16px 0 0;
}

/* Print */
@media print {
  body { background:#fff; }
  .mp-card-head { background:#0b1f44 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .mp-card-body { display:block !important; }
  .mp-submit { display:none; }
}
