/* ============================================================
   AdMedia Publisher Application — new-form.css
   Brand: primary #688DE0 · navy #2A354E · accent #FF8004
   Text  #443F4E · Font Nunito
   ============================================================ */

:root {
  --nf-primary: #688de0;
  --nf-primary-dark: #4f74c9;
  --nf-navy: #2a354e;
  --nf-accent: #ff8004;
  --nf-text: #443f4e;
  --nf-muted: #7c7889;
  --nf-line: #dfe1ea;
  --nf-line-soft: #eceef4;
  --nf-bg: #f6f7fb;
  --nf-white: #ffffff;
  --nf-error: #d84a4a;
  --nf-success: #2fa36b;
  --nf-radius: 8px;
  --nf-radius-sm: 5px;
  --nf-shadow: 0 10px 40px rgba(42, 53, 78, 0.08);
  --nf-shadow-sm: 0 2px 10px rgba(42, 53, 78, 0.06);
  --nf-focus: 0 0 0 3px rgba(104, 141, 224, 0.25);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: "Nunito", "Segoe UI", system-ui, sans-serif;
  color: var(--nf-text);
  background: var(--nf-bg);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

/* ---------- Header ---------- */
.nf-header {
  background: var(--nf-white);
  border-bottom: 1px solid var(--nf-line-soft);
  box-shadow: var(--nf-shadow-sm);
  position: sticky;
  top: 0;
  z-index: 20;
}
.nf-header-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.nf-logo img { height: 34px; display: block; }
.nf-header-tag {
  font-weight: 700;
  color: var(--nf-navy);
  font-size: 14px;
  letter-spacing: .02em;
}

/* ---------- Layout ---------- */
.nf-main { padding: 32px 16px 64px; }
.nf-wrap { max-width: 960px; margin: 0 auto; }

.nf-intro { text-align: center; margin-bottom: 26px; }
.nf-intro h1 {
  margin: 0 0 8px;
  font-size: 30px;
  font-weight: 800;
  color: var(--nf-navy);
}
.nf-intro p { margin: 0 auto; max-width: 620px; color: var(--nf-muted); }

.nf-req-mark { color: var(--nf-accent); font-weight: 800; }

/* ---------- Stepper ---------- */
.nf-stepper { margin-bottom: 22px; }
.nf-steps {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  justify-content: space-between;
  gap: 4px;
}
.nf-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  cursor: default;
  position: relative;
}
.nf-step-dot {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 14px;
  background: var(--nf-white);
  color: var(--nf-muted);
  border: 2px solid var(--nf-line);
  transition: all .2s ease;
  z-index: 2;
}
.nf-step-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--nf-muted);
  transition: color .2s ease;
}
.nf-step.is-active .nf-step-dot {
  background: var(--nf-primary);
  border-color: var(--nf-primary);
  color: #fff;
  box-shadow: 0 4px 12px rgba(104, 141, 224, 0.4);
}
.nf-step.is-active .nf-step-label { color: var(--nf-navy); }
.nf-step.is-done .nf-step-dot {
  background: var(--nf-navy);
  border-color: var(--nf-navy);
  color: #fff;
}
.nf-step.is-clickable { cursor: pointer; }

.nf-progress {
  height: 6px;
  background: var(--nf-line-soft);
  border-radius: 100px;
  overflow: hidden;
}
.nf-progress-bar {
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--nf-primary), var(--nf-accent));
  border-radius: 100px;
  transition: width .35s ease;
}

/* ---------- Form card ---------- */
.nf-form {
  background: var(--nf-white);
  border: 1px solid var(--nf-line-soft);
  border-radius: 14px;
  box-shadow: var(--nf-shadow);
  padding: 30px 30px 22px;
}

.nf-panel { display: none; animation: nf-fade .25s ease; }
.nf-panel.is-active { display: block; }
@keyframes nf-fade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.nf-panel-head { margin-bottom: 20px; }
.nf-panel-head h2 {
  margin: 0 0 4px;
  font-size: 21px;
  font-weight: 800;
  color: var(--nf-navy);
}
.nf-panel-head h3 {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 800;
  color: var(--nf-navy);
}
.nf-panel-head p { margin: 0; color: var(--nf-muted); font-size: 14px; }

/* ---------- Grid & fields ---------- */
.nf-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.nf-field { display: flex; flex-direction: column; min-width: 0; }
.nf-col-2 { grid-column: 1 / -1; }        /* full width */
.nf-col-span2 { grid-column: span 2; }    /* two of three columns */

.nf-field > label {
  font-weight: 700;
  font-size: 13.5px;
  color: var(--nf-navy);
  margin-bottom: 6px;
}
.nf-hint-inline { font-weight: 600; color: var(--nf-muted); font-size: 12px; }
.nf-help {
  margin: -2px 0 8px;
  font-size: 12.5px;
  color: var(--nf-muted);
}

input[type=text],
input[type=email],
input[type=url],
input[type=tel],
input[type=number],
select,
textarea {
  width: 100%;
  font-family: inherit;
  font-size: 14.5px;
  color: var(--nf-text);
  background: var(--nf-white);
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius-sm);
  padding: 11px 13px;
  transition: border-color .15s ease, box-shadow .15s ease;
  appearance: none;
}
/* Keep all single-line controls the exact same height */
input[type=text],
input[type=email],
input[type=url],
input[type=tel],
input[type=number],
select {
  height: 46px;
  line-height: 1.4;
}
textarea { resize: none; min-height: 84px; height: auto; }

select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237c7889' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  padding-right: 34px;
  cursor: pointer;
}

input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #141414;
  box-shadow: 0 0 0 3px rgba(20, 20, 20, 0.12);
}
input::placeholder, textarea::placeholder { color: #aeb0bd; }

/* invalid state */
.nf-field.is-invalid input,
.nf-field.is-invalid select,
.nf-field.is-invalid textarea,
.nf-field.is-invalid .nf-checkgrid,
.nf-field.is-invalid .nf-input-affix {
  border-color: var(--nf-error);
}
.nf-field.is-invalid .nf-input-affix input { border: none; }
.nf-error {
  color: var(--nf-error);
  font-size: 12px;
  font-weight: 700;
  margin-top: 5px;
  min-height: 0;
  display: none;
}
.nf-field.is-invalid .nf-error { display: block; }

/* ---------- Affix inputs ---------- */
.nf-input-affix {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius-sm);
  overflow: hidden;
  background: #fff;
}
.nf-input-affix:focus-within {
  border-color: #141414;
  box-shadow: 0 0 0 3px rgba(20, 20, 20, 0.12);
}
.nf-input-affix { height: 46px; }
.nf-input-affix input { border: none !important; box-shadow: none !important; height: 100%; }
.nf-affix {
  padding: 0 12px;
  color: var(--nf-muted);
  font-weight: 700;
  font-size: 14px;
  background: var(--nf-line-soft);
  align-self: stretch;
  display: grid;
  place-items: center;
}
.nf-affix-pre { border-right: 1px solid var(--nf-line); }

/* rate control — three columns: model / type / value */
.nf-rate { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; align-items: start; }
.nf-rate .nf-input-affix { grid-column: auto; }

/* ---------- Checkbox grids ---------- */
.nf-checkgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.nf-checkgrid-4 { grid-template-columns: repeat(4, 1fr); }
.nf-check {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 13px;
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius-sm);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  background: #fff;
}
.nf-check:hover { border-color: #141414; }
.nf-check input {
  width: 17px; height: 17px;
  accent-color: #141414;
  cursor: pointer;
  flex: none;
}
/* Keyboard focus must stay visible. The approved design removed the outline
   without replacing it, leaving every checkbox (verticals, geo capabilities
   and the required consent box) with no focus indicator at all. */
.nf-check input:focus { outline: none; }
.nf-check input:focus-visible { outline: 2px solid #141414; outline-offset: 2px; }
.nf-check:has(input:checked) {
  border-color: #141414;
  background: rgba(20, 20, 20, 0.05);
}
.nf-check-block {
  align-items: flex-start;
  font-weight: 600;
  line-height: 1.5;
  background: var(--nf-bg);
}
.nf-check-block input { margin-top: 2px; }
.nf-link { color: var(--nf-primary); font-weight: 800; text-decoration: underline; }
.nf-link:hover { color: var(--nf-primary-dark); }

/* ---------- Repeatable URL rows ---------- */
.nf-repeat { display: flex; flex-direction: column; gap: 14px; }
.nf-url-row {
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius);
  padding: 16px;
  background: var(--nf-bg);
  position: relative;
}
.nf-url-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 12px;
}
.nf-url-row .nf-sub-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--nf-navy);
  margin-bottom: 5px;
  display: block;
}
.nf-row-remove {
  position: absolute;
  top: 10px;
  right: 10px;
  border: none;
  background: transparent;
  color: var(--nf-muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 4px;
}
.nf-row-remove:hover { color: var(--nf-error); background: rgba(216,74,74,.1); }
.nf-rel-wrap { margin-top: 12px; }

.nf-repeat-simple { gap: 12px; margin-bottom: 14px; }
.nf-simple-row { display: flex; gap: 10px; align-items: center; }
.nf-simple-row input { flex: 1; }
.nf-simple-row .nf-row-remove {
  position: static;
  flex: none;
  width: 46px;
  height: 46px;
  font-size: 22px;
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius-sm);
  background: #fff;
  color: var(--nf-muted);
}
.nf-simple-row .nf-row-remove:hover { border-color: var(--nf-error); color: var(--nf-error); background: rgba(216,74,74,.06); }

/* Upload grid — two per row */
.nf-upload-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.nf-upload-grid .nf-field { height: 100%; justify-content: space-between; }
.nf-upload-card {
  border: 1px solid var(--nf-line);
  border-radius: var(--nf-radius);
  padding: 16px 16px 18px;
  background: var(--nf-bg);
}
.nf-sublist {
  margin: 2px 0 10px;
  padding-left: 16px;
  color: var(--nf-muted);
  font-size: 12px;
  line-height: 1.5;
}
.nf-sublist li { margin: 1px 0; }
.nf-file { min-height: 48px; box-sizing: border-box; margin-top: auto; }

.nf-terms {
  margin-top: 8px;
}
.nf-terms-frame {
  display: block;
  width: 100%;
  height: 420px;
  margin: 12px 0 16px;
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius-sm);
  background: #fff;
}
.nf-terms .nf-field { max-width: none; }

/* Gap under repeatable URL rows (step 3) before the add button */
#addUrlBtn { margin-top: 16px; }

/* 50 / 50 equal-height pair (step 6) */
.nf-pair2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: end;
}
.nf-pair2 .nf-field { height: 100%; justify-content: flex-end; }
.nf-pair2 input { height: 50px; }
.nf-pair2 .nf-file {
  height: 50px;
  min-height: 50px;
  margin-top: 0;
  display: flex;
  align-items: center;
}


/* ---------- Traffic / Geo percentage grid ---------- */
.nf-traffic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.nf-traffic-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border: 1.5px solid var(--nf-line);
  border-radius: var(--nf-radius-sm);
  background: #fff;
}
.nf-traffic-row label { font-weight: 600; font-size: 13.5px; color: var(--nf-text); flex: 1; }
.nf-traffic-row .nf-pct {
  display: flex; align-items: center; gap: 4px;
  width: 96px; flex: none;
}
.nf-traffic-row input {
  width: 100%;
  text-align: right;
  padding: 7px 8px;
  height: 38px;
}
.nf-traffic-row .nf-pct span { color: var(--nf-muted); font-weight: 700; }

.nf-total {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  margin-top: 16px;
  padding: 12px 18px;
  border-radius: var(--nf-radius);
  background: var(--nf-navy);
  color: #fff;
}
.nf-total-label { font-weight: 700; letter-spacing: .03em; text-transform: uppercase; font-size: 12px; opacity: .85; }
.nf-total-value { font-weight: 800; font-size: 20px; }
.nf-total.is-ok { background: var(--nf-success); }
.nf-total.is-over { background: var(--nf-error); }

/* ---------- Fieldsets ---------- */
.nf-fieldset {
  border: 1px solid var(--nf-line);
  border-radius: var(--nf-radius);
  padding: 18px 20px 6px;
  margin: 0 0 22px;
}
.nf-fieldset legend {
  font-weight: 800;
  color: var(--nf-navy);
  padding: 0 8px;
  font-size: 15px;
}

/* ---------- File inputs ---------- */
.nf-file {
  border: 1.5px dashed var(--nf-line);
  background: var(--nf-bg);
  padding: 12px;
  border-radius: var(--nf-radius-sm);
  font-size: 13px;
  cursor: pointer;
  width: 100%;
}
.nf-file::file-selector-button {
  font-family: inherit;
  font-weight: 700;
  font-size: 12.5px;
  color: #fff;
  background: #141414;
  border: none;
  border-radius: 4px;
  padding: 8px 14px;
  margin-right: 12px;
  cursor: pointer;
}
.nf-file::file-selector-button:hover { background: #000; }

/* ---------- Buttons & nav ---------- */
.nf-btn {
  font-family: inherit;
  font-weight: 800;
  font-size: 14.5px;
  border-radius: var(--nf-radius-sm);
  padding: 12px 22px;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background .15s, box-shadow .15s, transform .05s;
}
.nf-btn:active { transform: translateY(1px); }
.nf-btn-primary {
  background: #141414;
  color: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22);
}
.nf-btn-primary:hover { background: #000; }
.nf-btn-ghost {
  background: #fff;
  color: var(--nf-navy);
  border-color: var(--nf-line);
}
.nf-btn-ghost:hover { border-color: var(--nf-primary); color: var(--nf-primary); }
.nf-btn-sm { padding: 9px 16px; font-size: 13px; }

.nf-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--nf-line-soft);
}
.nf-nav-spacer { flex: 1; }
.nf-nav-count { color: var(--nf-muted); font-weight: 700; font-size: 13px; }

/* ---------- Success ---------- */
.nf-success {
  background: #fff;
  border-radius: 14px;
  box-shadow: var(--nf-shadow);
  padding: 54px 30px;
  text-align: center;
  border: 1px solid var(--nf-line-soft);
}
.nf-success-icon {
  width: 68px; height: 68px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: var(--nf-success);
  color: #fff;
  font-size: 34px;
  display: grid; place-items: center;
}
.nf-success h2 { color: var(--nf-navy); margin: 0 0 8px; font-size: 24px; }
.nf-success p { color: var(--nf-muted); max-width: 460px; margin: 0 auto; }
.nf-success-email-warn {
  color: #8a5a00;
  background: #fff7e6;
  border: 1px solid #f0d9a8;
  border-radius: 8px;
  padding: 12px 14px;
  margin: 14px auto 0;
  max-width: 520px;
  text-align: left;
  font-size: 14px;
  line-height: 1.45;
}

/* ---------- Footer ---------- */
.nf-footer {
  text-align: center;
  padding: 22px;
  color: var(--nf-muted);
  font-size: 13px;
}

/* ---------- Utility ---------- */
.nf-hidden { display: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .nf-grid { grid-template-columns: repeat(2, 1fr); }
  .nf-col-span2 { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .nf-intro h1 { font-size: 24px; }
  .nf-form { padding: 22px 18px 18px; }
  .nf-traffic { grid-template-columns: 1fr; }
  .nf-upload-grid { grid-template-columns: 1fr; }
  .nf-pair2 { grid-template-columns: 1fr; }
  .nf-rate { grid-template-columns: 1fr; }
  .nf-url-grid { grid-template-columns: 1fr; }
  .nf-checkgrid { grid-template-columns: repeat(2, 1fr); }
  .nf-checkgrid-4 { grid-template-columns: repeat(2, 1fr); }
  .nf-rate { grid-template-columns: 1fr; }

  /* compact stepper: hide labels, show dots only */
  .nf-step-label { display: none; }
  .nf-steps { gap: 2px; }
  .nf-step-dot { width: 28px; height: 28px; font-size: 12px; }

  .nf-nav { flex-wrap: wrap; }
  .nf-nav-count { order: -1; width: 100%; text-align: center; margin-bottom: 4px; }
  .nf-btn { flex: 1; }
}

@media (max-width: 560px) {
  .nf-grid { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
  .nf-header-tag { display: none; }
  .nf-checkgrid, .nf-checkgrid-4 { grid-template-columns: 1fr; }
}

/* ============================================================
   PUB-3365 additions to the approved design.
   Everything above this line is the design as delivered, with
   one patched focus rule. Keep additions here so the port stays
   reviewable against the original.
   ============================================================ */

/* --- Stepper: completed steps are real buttons, for keyboard use --- */
.nf-step-btn {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
  cursor: default;
}
.nf-step.is-clickable .nf-step-btn { cursor: pointer; }
.nf-step-btn:focus { outline: none; }
.nf-step-btn:focus-visible .nf-step-dot {
  outline: 2px solid var(--nf-primary);
  outline-offset: 3px;
}

/* --- Honeypot: off-screen rather than display:none so bots still fill it --- */
.nf-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --- Returning-applicant banner --- */
.nf-resume {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  background: #fff;
  border: 1px solid var(--nf-line);
  border-left: 4px solid var(--nf-accent);
  border-radius: var(--nf-radius);
  padding: 14px 18px;
  margin-bottom: 22px;
  box-shadow: var(--nf-shadow-sm);
  font-size: 14px;
}

/* --- Draft save indicator in the nav bar --- */
.nf-save-state {
  font-size: 12px;
  font-weight: 700;
  color: var(--nf-muted);
  margin-right: 12px;
  min-height: 1em;
}
.nf-save-state.is-saving { color: var(--nf-muted); }
.nf-save-state.is-saved  { color: var(--nf-success); }
.nf-save-state.is-failed { color: var(--nf-error); }

/* --- Selected-file lists under each upload --- */
.nf-filelist {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  font-size: 12.5px;
}
.nf-filelist li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 5px 8px;
  border: 1px solid var(--nf-line-soft);
  border-radius: var(--nf-radius-sm);
  margin-bottom: 5px;
  background: #fbfbfd;
}
.nf-filelist .nf-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nf-filelist .nf-file-size { color: var(--nf-muted); flex: none; }
.nf-filelist li.is-rejected {
  border-color: var(--nf-error);
  background: rgba(216, 74, 74, 0.06);
  color: var(--nf-error);
}
.nf-upload-note { margin-bottom: 18px; }

/* --- Implementation type groups (step 6) --- */
.nf-impl {
  display: grid;
  gap: 14px;
}
.nf-impl-group {
  border: 1px solid var(--nf-line-soft);
  border-radius: var(--nf-radius);
  padding: 14px 16px;
  background: #fff;
}
.nf-impl-head {
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--nf-navy);
}

.nf-success-ref {
  font-weight: 700;
  color: var(--nf-navy);
}

/* --- Email gate (?ref=) --- */
body.nf-claim-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body.nf-claim-page .nf-main {
  flex: 1;
  display: flex;
  align-items: center;
  padding-top: 24px;
  padding-bottom: 24px;
}
body.nf-claim-page .nf-wrap {
  width: 100%;
}
.nf-claim {
  background: #fff;
  border: 1px solid var(--nf-line);
  border-left: 4px solid var(--nf-accent);
  border-radius: var(--nf-radius);
  padding: 22px 22px 20px;
  box-shadow: var(--nf-shadow-sm);
  max-width: 460px;
  width: 100%;
  margin: 0 auto;
}
.nf-claim-form .nf-field { margin-bottom: 14px; }
.nf-claim-form .nf-btn { width: 100%; }
.nf-claim-error {
  color: var(--nf-error);
  font-size: 13.5px;
  font-weight: 700;
  margin: 0 0 12px;
}
.nf-readonly-banner {
  border-left-color: var(--nf-navy);
}
.nf-status-chip {
  display: inline-block;
  margin: 0 8px 0 0;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  vertical-align: middle;
  background: #e8eef5;
  color: var(--nf-navy);
}
.nf-status-review { background: #fff4e0; color: #9a5b00; }
.nf-status-approved { background: #e3f6ea; color: #157a3a; }
.nf-status-rejected { background: #fde8e8; color: #b42318; }
.nf-status-withdrawn { background: #eeeef2; color: #555; }
.nf-rejection-reason {
  margin-top: 8px;
  font-size: 14px;
  color: #3a3f4b;
}
body.nf-readonly .nf-file {
  display: none;
}
body.nf-readonly .nf-file-link {
  color: var(--nf-primary);
  font-weight: 700;
  text-decoration: none;
}
body.nf-readonly .nf-file-link:hover { text-decoration: underline; }
body.nf-readonly .nf-file-empty {
  border: none;
  background: transparent;
  color: var(--nf-muted);
  font-style: italic;
}
body.nf-readonly .nf-row-remove,
body.nf-readonly [data-add-simple],
body.nf-readonly #addUrlBtn,
body.nf-readonly #saveLaterBtn,
body.nf-readonly #submitBtn {
  display: none !important;
}
/* style.css (loaded for the shared site footer) sets
   button/input { box-shadow: none !important }. Restore the form's own shadows. */
.nf-btn-primary {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22) !important;
}
.nf-main input:focus,
.nf-main select:focus,
.nf-main textarea:focus,
.nf-claim-form input:focus {
  box-shadow: 0 0 0 3px rgba(20, 20, 20, 0.12) !important;
}

body.nf-readonly input:disabled,
body.nf-readonly select:disabled,
body.nf-readonly textarea:disabled {
  background: #f6f7fa;
  color: #2a3140;
  cursor: default;
  opacity: 1;
}

/* --- Respect reduced-motion preferences --- */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
