.nval {
  /* ===========================================================
     COLORS DE MARCA — Novus Real Estate (mismos que la Reforma Express)
     =========================================================== */
  --ink: #262f2e;
  --paper: #f7f8f8;
  --paper-2: #edf1f1;
  --line: #dde3e2;
  --brass: #03989E;
  --brass-dark: #027077;
  --gain: #0a7a53;
  --gain-bg: #e4f3ec;
  --loss: #b5352e;
  --loss-bg: #f7e6e4;
  --warn: #8a6d1f;
  --warn-bg: #f1ead2;
  --gray: #545454;

  all: initial;
  display: block;
  font-family: 'Inter', -apple-system, sans-serif;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  max-width: 780px;
  margin: 0 auto;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
.nval *, .nval *::before, .nval *::after { box-sizing: border-box; font-family: inherit; }

.nval-head { padding: 26px 32px 20px; border-bottom: 1px solid var(--line); }
.nval-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); margin:0 0 8px; }
.nval-title { font-family:'Fraunces',serif; font-weight:600; font-size:24px; margin:0; letter-spacing:-.01em; }

.nval-progress { display:flex; gap:4px; padding:14px 32px 0; }
.nval-seg { height:3px; flex:1; background:var(--line); border-radius:2px; }
.nval-seg.done { background:var(--brass); }
.nval-seg.current { background:var(--gray); }

.nval-body { padding:24px 32px 30px; }

.nval-step-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); margin-bottom:10px; }
.nval-qtitle { font-family:'Fraunces',serif; font-weight:600; font-size:22px; line-height:1.3; margin:0 0 18px; }
.nval-help { font-size:13px; color:#5b6664; margin:-10px 0 18px; line-height:1.5; }

.nval-options { display:flex; flex-direction:column; gap:10px; }
.nval-opt-btn {
  text-align:left; background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:14px 16px; font-size:15px; color:var(--ink); cursor:pointer;
  transition:border-color .15s, background .15s; display:flex; align-items:center; justify-content:space-between;
}
.nval-opt-btn:hover { border-color:var(--brass); background:var(--paper-2); }
.nval-opt-btn .nval-arrow { opacity:0; color:var(--brass-dark); transition:opacity .15s; font-family:'IBM Plex Mono',monospace; }
.nval-opt-btn:hover .nval-arrow { opacity:1; }

.nval-field-label { display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#445451; margin:16px 0 6px; }
.nval-field-label:first-of-type { margin-top:0; }
.nval input[type=text], .nval input[type=number], .nval input[type=email], .nval input[type=tel] {
  width:100%; padding:11px 13px; font-size:15px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--ink);
}
.nval input:focus { outline:2px solid var(--brass); outline-offset:1px; border-color:var(--brass); }
.nval-row2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:520px) { .nval-row2 { grid-template-columns:1fr; } }

.nval-estado-grid { display:flex; flex-direction:column; gap:8px; }
.nval-estado-opt { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:3px; padding:11px 15px; cursor:pointer; }
.nval-estado-opt:hover { border-color:var(--brass); }
.nval-estado-opt.sel { border-color:var(--brass); background:var(--paper-2); }
.nval-estado-dot { width:9px; height:9px; border-radius:50%; border:2px solid var(--brass-dark); flex-shrink:0; }
.nval-estado-opt.sel .nval-estado-dot { background:var(--brass-dark); }

.nval-actions { margin-top:24px; display:flex; justify-content:space-between; align-items:center; }
.nval-btn-primary { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em; text-transform:uppercase; background:var(--brass); color:#fff; border:none; padding:13px 22px; border-radius:3px; cursor:pointer; }
.nval-btn-primary:hover { background:var(--brass-dark); }
.nval-btn-back { background:none; border:none; color:#5b6664; font-family:'IBM Plex Mono',monospace; font-size:12px; cursor:pointer; padding:8px 0; }
.nval-btn-back:hover { color:var(--ink); }

.nval-gate-note { background:var(--paper-2); border-left:3px solid var(--brass); padding:13px 15px; font-size:13px; line-height:1.55; color:#2b4340; margin-bottom:20px; border-radius:3px; }
.nval-warn-note { background:var(--warn-bg); border-left-color:var(--warn); color:#6e5716; }

.nval-loading { text-align:center; padding:56px 10px; }
.nval-spinner { width:32px; height:32px; border:3px solid var(--line); border-top-color:var(--brass); border-radius:50%; margin:0 auto; animation:nval-spin .85s linear infinite; }
@keyframes nval-spin { to { transform:rotate(360deg); } }
.nval-scan { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--brass-dark); text-align:left; max-width:360px; margin:24px auto 0; line-height:2.1; }
.nval-scan .ok { color:var(--gain); }

.nval-report-head { display:flex; justify-content:space-between; align-items:flex-start; border-bottom:2px solid var(--ink); padding-bottom:18px; margin-bottom:30px; }
.nval-report-head h1 { font-family:'Fraunces',serif; font-weight:600; font-size:21px; margin:0 0 6px; }
.nval-report-head .nval-sub { font-family:'IBM Plex Mono',monospace; font-size:11px; color:#5b6664; }

.nval-hero { background:#fff; border:1px solid var(--line); border-left:4px solid var(--brass); border-radius:4px; padding:26px 28px; text-align:center; margin:6px 0 26px; }
.nval-hero .nval-eyebrow2 { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--brass); margin-bottom:8px; }
.nval-hero .nval-amount { font-family:'Fraunces',serif; font-weight:600; font-size:34px; color:var(--brass-dark); line-height:1.1; }
.nval-hero .nval-hsub { font-size:13px; color:#5b6664; margin-top:8px; }

.nval-chip { display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; padding:4px 10px; border-radius:10px; background:var(--paper-2); color:var(--brass-dark); margin:0 8px 12px 0; }
.nval-chip.alta { background:var(--gain-bg); color:var(--gain); }
.nval-chip.baja { background:var(--loss-bg); color:var(--loss); }

.nval-cta { background:var(--paper-2); border:1px dashed var(--brass); border-radius:4px; padding:16px 18px; margin:20px 0; font-size:13.5px; }
.nval-cta a { color:var(--brass-dark); font-weight:600; }

.nval-disclaimer { background:var(--paper-2); border:1px solid var(--line); padding:18px 20px; border-radius:3px; font-size:11.5px; color:#5b6664; line-height:1.7; margin-top:28px; }
.nval-footer-note { margin-top:22px; font-size:11px; color:#8b9491; line-height:1.6; border-top:1px solid var(--line); padding-top:16px; }

.nval-narrativa { font-size:14px; line-height:1.7; color:var(--ink); margin:4px 0 20px; }

/* ---- Cabecera solo para la versión imprimible (vista previa interna) ---- */
.nval-print-header { display:none; }
.nval-print-header img { max-width:220px; height:auto; margin:0 auto; display:block; }

@media print {
  body { background:#fff !important; padding:0 !important; }
  .internal-banner, .nval-no-print { display:none !important; }
  .nval { all:unset; display:block; max-width:100%; font-family:'Inter',Arial,sans-serif; color:var(--ink); }
  .nval-head, .nval-progress { display:none !important; }
  .nval-print-header { display:block; text-align:center; padding:0 0 16px; border-bottom:2px solid var(--ink); margin-bottom:20px; }
  .nval-body { padding:0 !important; }
  .nval-report-head { align-items:center; }
  .nval-hero { break-inside:avoid; }
  .nval-cta { display:none !important; }
  .nval-disclaimer, .nval-footer-note { break-inside:avoid; }
  @page { margin:14mm; }
}
