.ntv-wrap,
.ntv-wrap * { box-sizing: border-box; }

.ntv-wrap {
  --ntv-accent: #e8b22e;
  --ntv-bg: #0b0b0b;
  --ntv-panel: #171717;
  --ntv-text: #fff;
  --ntv-field: #292929;
  --ntv-line: #3d3d3d;
  --ntv-muted: #bdbdbd;
  width: 100%;
  max-width: 1200px;
  margin: 30px auto;
  padding: clamp(18px, 3vw, 30px);
  background: var(--ntv-bg) !important;
  color: var(--ntv-text) !important;
  font-family: Inter, Arial, Helvetica, sans-serif;
}

.ntv-header { max-width: 760px; margin: 0 auto 30px; text-align: center; }
.ntv-eyebrow { display: block; margin: 0 0 8px; color: var(--ntv-accent) !important; font-size: 12px; font-weight: 900; letter-spacing: 2px; }
.ntv-header h2 { margin: 0 0 12px; color: var(--ntv-text) !important; font-size: clamp(30px, 5vw, 48px); line-height: 1.05; }
.ntv-header p { margin: 0; color: #d2d2d2 !important; font-size: 17px; line-height: 1.6; }

.ntv-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .75fr); gap: 24px; align-items: start; }
.ntv-form { display: grid; gap: 24px; min-width: 0; }
.ntv-card,
.ntv-result {
  min-width: 0;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid var(--ntv-line);
  border-top: 4px solid var(--ntv-accent);
  border-radius: 16px;
  background: var(--ntv-panel) !important;
  box-shadow: 0 14px 38px rgba(0,0,0,.3);
}

.ntv-card-title { display: flex; align-items: flex-start; gap: 14px; margin: 0 0 26px; }
.ntv-card-title > b { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--ntv-accent) !important; color: #111 !important; font-size: 16px; font-weight: 900; }
.ntv-card-title h3,
.ntv-result h3 { margin: 2px 0 5px; color: var(--ntv-text) !important; font-size: 23px; line-height: 1.2; }
.ntv-card-title p,
.ntv-result p { margin: 0; color: #d2d2d2 !important; font-size: 14px; line-height: 1.5; }

.ntv-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.ntv-field { display: block; min-width: 0; width: 100%; }
.ntv-full { grid-column: 1 / -1; }
.ntv-field > span { display: block; margin: 0 0 7px; color: var(--ntv-text) !important; font-size: 13px; font-weight: 800; }

.ntv-wrap input:not([type="checkbox"]),
.ntv-wrap select,
.ntv-wrap textarea {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  border: 1px solid #555 !important;
  border-radius: 8px !important;
  background: var(--ntv-field) !important;
  color: #fff !important;
  font: inherit;
  font-size: 15px;
  outline: none;
  box-shadow: none !important;
  color-scheme: dark;
  transition: border-color .2s, box-shadow .2s;
}
.ntv-wrap input:not([type="checkbox"]),
.ntv-wrap select { height: 48px; padding: 0 13px; }
.ntv-wrap textarea { min-height: 96px; padding: 12px 13px; resize: vertical; }
.ntv-wrap input::placeholder,
.ntv-wrap textarea::placeholder { color: #b8b8b8; opacity: 1; }
.ntv-wrap select option { background: #242424; color: #fff; }
.ntv-wrap input:focus,
.ntv-wrap select:focus,
.ntv-wrap textarea:focus { border-color: var(--ntv-accent) !important; box-shadow: 0 0 0 3px rgba(232,178,46,.22) !important; }

.ntv-affix { display: flex; align-items: center; width: 100%; height: 48px; overflow: hidden; border: 1px solid #555; border-radius: 8px; background: var(--ntv-field); }
.ntv-affix:focus-within { border-color: var(--ntv-accent); box-shadow: 0 0 0 3px rgba(232,178,46,.22); }
.ntv-affix > b { display: grid; align-self: stretch; min-width: 40px; place-items: center; background: var(--ntv-accent) !important; color: #111 !important; font-size: 15px; }
.ntv-wrap .ntv-affix input { height: 46px; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }

.ntv-consent { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 11px; align-items: start; margin: 22px 0 20px; color: #fff !important; cursor: pointer; font-size: 12px; line-height: 1.5; }
.ntv-consent input { width: 19px; height: 19px; margin: 0; accent-color: var(--ntv-accent); }
.ntv-submit { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 54px; margin: 0; padding: 14px 20px; border: 1px solid var(--ntv-accent) !important; border-radius: 8px !important; background: var(--ntv-accent) !important; color: #111 !important; cursor: pointer; font: inherit; font-size: 15px; font-weight: 900; transition: transform .2s, filter .2s; }
.ntv-submit span,
.ntv-submit i { color: #111 !important; }
.ntv-submit i { font-style: normal; font-size: 21px; }
.ntv-submit:hover { filter: brightness(.95); transform: translateY(-1px); }
.ntv-submit:disabled { opacity: .7; cursor: wait; transform: none; }

.ntv-message { display: none; margin-top: 13px; padding: 12px 14px; border-radius: 8px; font-size: 14px; font-weight: 700; line-height: 1.45; }
.ntv-message.ntv-success,
.ntv-message.ntv-error { display: block; }
.ntv-success { border: 1px solid #8ccb98; background: #eaf7ed; color: #1f632d; }
.ntv-error { border: 1px solid #e5a1a1; background: #fff0f0; color: #9b1c1c; }

.ntv-result { position: sticky; top: 24px; text-align: center; }
.ntv-result-icon { display: grid; width: 70px; height: 70px; margin: 0 auto 18px; place-items: center; border-radius: 50%; background: var(--ntv-accent) !important; color: #111 !important; font-size: 37px; font-weight: 900; }
.ntv-result-idle ul { display: grid; gap: 10px; margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid #3b3b3b; list-style: none; text-align: left; color: #ddd; font-size: 13px; }
.ntv-result-idle li::before { content: "✓"; margin-right: 9px; color: var(--ntv-accent); font-weight: 900; }
.ntv-result-label { display: block; margin: 0 0 9px; color: var(--ntv-accent) !important; font-size: 10px; font-weight: 900; letter-spacing: 1.5px; }
.ntv-result-success > strong { display: flex; flex-direction: column; gap: 3px; margin: 19px 0; color: var(--ntv-accent) !important; font-size: clamp(37px, 5vw, 50px); line-height: 1; }
.ntv-result-success > strong span { color: var(--ntv-accent) !important; }
.ntv-result-success > strong small { color: #aaa !important; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.ntv-result-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 22px 0; overflow: hidden; border: 1px solid #383838; border-radius: 9px; background: #383838; }
.ntv-result-stats span { display: flex; flex-direction: column; gap: 3px; padding: 13px 8px; background: #202020; color: #999; font-size: 10px; text-transform: uppercase; }
.ntv-result-stats b { color: #fff; font-size: 16px; }
.ntv-actions { display: grid; gap: 10px; }
.ntv-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 49px; padding: 12px 15px; border-radius: 8px; text-decoration: none !important; font-size: 13px; font-weight: 900; transition: transform .2s, filter .2s, border-color .2s; }
.ntv-actions a:hover { filter: brightness(.96); transform: translateY(-1px); }
.ntv-call { border: 1px solid var(--ntv-accent); background: var(--ntv-accent) !important; color: #111 !important; }
.ntv-inventory { border: 1px solid #4b4b4b; background: #292929 !important; color: #fff !important; }
.ntv-inventory:hover { border-color: var(--ntv-accent); }
.ntv-small { margin-top: 16px !important; color: #999 !important; font-size: 10px !important; line-height: 1.5 !important; }
.ntv-footer-note { margin: 18px 0 0 !important; color: #999 !important; font-size: 11px !important; text-align: center; }
.ntv-hp { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; }

/* Manual appraisal app */
.nva-form { width: 100%; max-width: 980px; margin: 0 auto; }
.nva-step[hidden],
.nva-complete[hidden],
.nva-progress[hidden] { display: none !important; }
.nva-progress { display: grid; grid-template-columns: auto minmax(30px, 1fr) auto minmax(30px, 1fr) auto; align-items: center; width: 100%; max-width: 720px; margin: 0 auto 28px; }
.nva-progress-step { display: flex; align-items: center; gap: 9px; min-width: 0; margin: 0; padding: 0; color: #888 !important; cursor: pointer; font: inherit; font-size: 12px; font-weight: 900; }
.nva-progress-step b { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #555; border-radius: 50%; background: #1e1e1e; color: #aaa; }
.nva-progress-step.is-active,
.nva-progress-step.is-complete { color: #fff !important; }
.nva-progress-step.is-active b,
.nva-progress-step.is-complete b { border-color: var(--ntv-accent); background: var(--ntv-accent); color: #111; }
.nva-progress i { display: block; height: 1px; margin: 0 12px; background: #444; }
.ntv-field small { display: block; margin: 7px 0 0; color: #aaa; font-size: 11px; line-height: 1.45; }
.nva-options,
.nva-condition { min-width: 0; margin: 4px 0 0; padding: 18px; border: 1px solid #454545; border-radius: 10px; background: #131313; }
.nva-options legend,
.nva-condition legend { padding: 0 7px; color: #fff; font-size: 14px; font-weight: 900; }
.nva-options legend small { color: #aaa; font-size: 10px; font-weight: 500; }
.nva-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.nva-check-grid label { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 10px; border: 1px solid #393939; border-radius: 7px; background: #202020; color: #ddd; cursor: pointer; font-size: 11px; line-height: 1.3; }
.nva-check-grid input { flex: 0 0 16px; width: 16px; height: 16px; margin: 0; accent-color: var(--ntv-accent); }
.nva-radio-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.nva-radio-grid label { display: block; min-width: 0; cursor: pointer; }
.nva-radio-grid input { position: absolute; opacity: 0; pointer-events: none; }
.nva-radio-grid label > span { display: block; min-height: 88px; padding: 15px; border: 1px solid #444; border-radius: 9px; background: #202020; transition: border-color .2s, background .2s, box-shadow .2s; }
.nva-radio-grid label > span b { display: block; margin-bottom: 5px; color: #fff; font-size: 14px; }
.nva-radio-grid label > span small { display: block; color: #aaa; font-size: 11px; line-height: 1.4; }
.nva-radio-grid input:checked + span { border-color: var(--ntv-accent); background: #201c11; box-shadow: 0 0 0 2px rgba(232,178,46,.18); }
.nva-radio-grid input:checked + span b { color: var(--ntv-accent); }
.nva-condition-fields { margin-top: 22px; }
.nva-photo-field { padding: 16px; border: 1px dashed #5d512f; border-radius: 10px; background: #19170f; }
.ntv-wrap .nva-photo-field input[type="file"] { height: auto; min-height: 50px; padding: 12px; }
.nva-photo-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.nva-photo-list span { max-width: 100%; padding: 5px 8px; overflow: hidden; border-radius: 5px; background: #292929; color: #ccc; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.nva-photo-list .nva-file-error { background: #fff0f0; color: #9b1c1c; }
.nva-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 12px; margin-top: 26px; padding-top: 22px; border-top: 1px solid #393939; }
.nva-next,
.nva-back { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; margin: 0; padding: 12px 18px; border: 1px solid var(--ntv-accent) !important; border-radius: 8px !important; background: var(--ntv-accent) !important; color: #111 !important; cursor: pointer; font: inherit; font-size: 12px; font-weight: 900; line-height: 1.2; text-align: center; text-decoration: none !important; transition: transform .2s, filter .2s; }
.nva-next,
.nva-back,
.nva-next *,
.nva-back * { color: #111 !important; }
.nva-next i { font-style: normal; font-size: 18px; }
.nva-next:hover,
.nva-back:hover { filter: brightness(.95); transform: translateY(-1px); }
.nva-nav .ntv-submit { width: 100%; min-width: 0; }
.nva-complete { max-width: 760px; margin: 0 auto; padding: clamp(30px, 6vw, 60px) !important; text-align: center; }
.nva-complete .nva-checkmark { display: grid; width: 74px; height: 74px; margin: 0 auto 19px; place-items: center; border-radius: 50%; background: var(--ntv-accent); color: #111; font-size: 36px; font-weight: 900; }
.nva-complete h3 { margin: 3px 0 12px; color: #fff; font-size: clamp(28px, 5vw, 42px); }
.nva-complete p { max-width: 570px; margin: 0 auto; color: #ccc; font-size: 15px; line-height: 1.6; }
.nva-complete-actions { margin-top: 24px; }
.nva-complete-actions a { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 12px 20px; border-radius: 8px; background: var(--ntv-accent); color: #111 !important; text-decoration: none !important; font-size: 13px; font-weight: 900; }

/* Protect the Newcombs theme from Elementor and active-theme overrides. */
.ntv-wrap .ntv-card,
.ntv-wrap .ntv-result { background-color: var(--ntv-panel) !important; }
.ntv-wrap .ntv-header h2,
.ntv-wrap .ntv-card-title h3,
.ntv-wrap .ntv-result h3,
.ntv-wrap .ntv-field > span { color: var(--ntv-text) !important; }
.ntv-wrap .ntv-submit,
.ntv-wrap .ntv-call { background-color: var(--ntv-accent) !important; color: #111 !important; }
.ntv-wrap .ntv-submit *,
.ntv-wrap .nva-next *,
.ntv-wrap .nva-back *,
.ntv-wrap .nva-complete-actions a { color: #111 !important; }

/* Keep Elementor and theme button styles from changing the app controls. */
.ntv-wrap .nva-progress-step,
.ntv-wrap .nva-progress-step:hover,
.ntv-wrap .nva-progress-step:focus,
.ntv-wrap .nva-progress-step:active {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  filter: none !important;
  transform: none !important;
  text-decoration: none !important;
}
.ntv-wrap .nva-progress-step b {
  display: grid !important;
  flex: 0 0 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  place-items: center !important;
  border: 1px solid #555 !important;
  border-radius: 50% !important;
  background: #1e1e1e !important;
  color: #aaa !important;
  -webkit-text-fill-color: #aaa !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.ntv-wrap .nva-progress-step.is-active b,
.ntv-wrap .nva-progress-step.is-complete b {
  border-color: var(--ntv-accent) !important;
  background: var(--ntv-accent) !important;
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
}
.ntv-wrap .nva-nav .nva-next,
.ntv-wrap .nva-nav .nva-back,
.ntv-wrap .nva-nav button.ntv-submit,
.ntv-wrap .nva-complete-actions a {
  -webkit-appearance: none !important;
  appearance: none !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 12px 18px !important;
  border: 1px solid var(--ntv-accent) !important;
  border-radius: 8px !important;
  background: var(--ntv-accent) !important;
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.ntv-wrap .nva-nav .nva-next *,
.ntv-wrap .nva-nav .nva-back *,
.ntv-wrap .nva-nav button.ntv-submit *,
.ntv-wrap .nva-complete-actions a * {
  color: #111 !important;
  -webkit-text-fill-color: #111 !important;
  text-shadow: none !important;
}

@media (max-width: 900px) {
  .ntv-layout { grid-template-columns: minmax(0, 1fr); }
  .ntv-result { position: static; }
}

@media (max-width: 560px) {
  .ntv-wrap { display: block !important; width: 100% !important; max-width: 100% !important; margin: 18px auto !important; padding: 0 10px 24px !important; overflow: visible !important; }
  .ntv-header { width: 100% !important; margin: 0 auto 24px !important; padding: 0 6px !important; }
  .ntv-header h2 { margin: 0 0 12px !important; font-size: 34px !important; line-height: 1.08 !important; }
  .ntv-header p { margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; }
  .ntv-layout,
  .ntv-form { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 22px !important; width: 100% !important; }
  .ntv-card,
  .ntv-result { width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 22px 17px !important; border-radius: 12px !important; border-color: var(--ntv-line) !important; border-top: 4px solid var(--ntv-accent) !important; }
  .ntv-card-title { gap: 12px !important; margin: 0 0 24px !important; }
  .ntv-card-title h3,
  .ntv-result h3 { margin: 2px 0 6px !important; font-size: 21px !important; line-height: 1.2 !important; }
  .ntv-card-title p,
  .ntv-result p { margin: 0 !important; font-size: 13px !important; line-height: 1.45 !important; }
  .ntv-fields { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; width: 100% !important; }
  .ntv-field,
  .ntv-full { display: block !important; grid-column: auto !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
  .ntv-field > span { margin: 0 0 8px !important; font-size: 14px !important; line-height: 1.25 !important; }
  .ntv-wrap .ntv-field input:not([type="checkbox"]),
  .ntv-wrap .ntv-field select { width: 100% !important; min-width: 0 !important; max-width: 100% !important; height: 52px !important; min-height: 52px !important; margin: 0 !important; padding: 0 13px !important; font-size: 16px !important; }
  .ntv-wrap .ntv-field textarea { width: 100% !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; padding: 13px !important; font-size: 16px !important; }
  .ntv-affix { width: 100% !important; max-width: 100% !important; height: 52px !important; min-height: 52px !important; margin: 0 !important; }
  .ntv-wrap .ntv-affix input { height: 50px !important; min-height: 50px !important; border: 0 !important; }
  .ntv-affix > b { min-width: 42px !important; }
  .ntv-consent { margin: 24px 0 20px !important; }
  .ntv-submit { width: 100% !important; min-height: 56px !important; }
  .ntv-result-success > strong { font-size: 42px !important; }
  .ntv-result-stats { grid-template-columns: 1fr !important; }
  .ntv-actions a { width: 100% !important; min-height: 52px !important; }
  .ntv-wrap .nva-progress { grid-template-columns: auto minmax(12px, 1fr) auto minmax(12px, 1fr) auto; align-items: start !important; margin-bottom: 22px; padding: 0 4px; }
  .ntv-wrap .nva-progress-step,
  .ntv-wrap .nva-progress-step:hover,
  .ntv-wrap .nva-progress-step:focus,
  .ntv-wrap .nva-progress-step:active { display: grid !important; grid-template-rows: 34px auto !important; justify-items: center !important; gap: 5px !important; width: auto !important; min-width: 58px !important; font-size: 10px !important; line-height: 1.1 !important; }
  .ntv-wrap .nva-progress-step b { width: 34px !important; min-width: 34px !important; max-width: 34px !important; height: 34px !important; min-height: 34px !important; max-height: 34px !important; }
  .ntv-wrap .nva-progress-step > span { display: block !important; margin: 0 !important; padding: 0 !important; line-height: 1.1 !important; white-space: nowrap !important; }
  .ntv-wrap .nva-progress > i { align-self: start !important; height: 1px !important; margin: 16px 4px 0 !important; }
  .nva-options,
  .nva-condition { padding: 15px 11px; }
  .nva-check-grid { grid-template-columns: 1fr 1fr; gap: 7px; }
  .nva-check-grid label { padding: 9px 7px; font-size: 10px; }
  .nva-radio-grid { grid-template-columns: 1fr; }
  .nva-radio-grid label > span { min-height: 0; }
  .nva-nav { display: grid; grid-template-columns: 1fr; }
  .nva-nav > span { display: none; }
  .ntv-wrap .nva-nav .nva-next,
  .ntv-wrap .nva-nav .nva-back,
  .ntv-wrap .nva-nav button.ntv-submit { width: 100% !important; min-width: 0 !important; min-height: 54px !important; margin: 0 !important; border-radius: 8px !important; color: #111 !important; -webkit-text-fill-color: #111 !important; }
  .nva-back { order: initial; }
  .nva-complete { padding: 34px 18px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ntv-wrap * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
