.nhi-coach-welcome { display:flex; align-items:center; gap:16px; padding:16px; background:#edf6ed; border-radius:14px; margin-bottom:20px; }
.nhi-coach-avatar { width:88px; height:88px; object-fit:cover; border-radius:50%; flex-shrink:0; }
.nhi-coach-initial { padding:20px; border-radius:50%; background:#d2e9d7; color:#215d3a; font-weight:700; font-size:28px; }
.nhi-coach-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
*{box-sizing:border-box}
:root{--green:#2f7d4a;--green2:#eaf6ee;--text:#183126;--muted:#6c7a72;--line:#dce7df;--bg:#f5f8f6;--danger:#a63d40}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.nhi-body{min-height:100vh}
.nhi-shell{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:0}
.nhi-card{width:100%;max-width:560px;min-height:100vh;background:#fff;padding:18px 18px 28px}
.nhi-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center}
.nhi-brand{font-weight:800;font-size:18px}
.nhi-progress-text{font-size:13px;color:var(--muted)}
.nhi-progress{height:5px;background:#edf2ee;border-radius:20px;overflow:hidden;margin:12px 0 28px}
.nhi-progress span{display:block;height:100%;width:0;background:var(--green);transition:width .25s ease}
.nhi-step{animation:fade .18s ease}
@keyframes fade{from{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:none}}
.nhi-eyebrow{font-size:14px;color:var(--green);font-weight:700;margin-bottom:8px}
h1{font-size:30px;line-height:1.08;margin:0 0 14px}
p{font-size:17px;line-height:1.45}
.nhi-help{color:var(--muted);font-size:14px}
.nhi-input{width:100%;font-size:20px;padding:16px 14px;border:1px solid var(--line);border-radius:14px;outline:none;background:#fff}
.nhi-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green2)}
.nhi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nhi-option{display:block;width:100%;text-align:left;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:17px;cursor:pointer;margin:8px 0}
.nhi-option:hover,.nhi-option.selected{border-color:var(--green);background:var(--green2)}
.nhi-actions{display:flex;gap:10px;margin-top:24px}
.nhi-btn{appearance:none;border:0;border-radius:14px;padding:15px 18px;font-size:17px;font-weight:800;cursor:pointer}
.nhi-primary{background:var(--green);color:#fff;flex:1}
.nhi-secondary{background:#eef2ef;color:var(--text)}
.nhi-back{background:transparent;color:var(--muted);padding-left:0}
.nhi-error{color:var(--danger);font-size:14px;margin-top:10px}
.nhi-summary{background:var(--green2);border-radius:18px;padding:18px;margin:18px 0}
.nhi-summary strong{font-size:22px}
.nhi-metric{padding:10px 0;border-bottom:1px solid rgba(47,125,74,.14)}
.nhi-metric:last-child{border-bottom:0}
.nhi-whatsapp{display:block;text-align:center;text-decoration:none;margin:10px 0;padding:15px;border-radius:14px;font-weight:800}
.nhi-wa1{background:#25D366;color:#08351a}
.nhi-wa2{background:#e7f8ed;color:#155b31;border:1px solid #b7e9c7}
.nhi-check{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.nhi-check input{margin-top:4px;transform:scale(1.2)}
.nhi-file{padding:16px;border:1px dashed #a8bdb0;border-radius:14px;background:#fbfdfb}
.nhi-file input{width:100%}
.nhi-number-row{display:grid;grid-template-columns:1fr 70px;align-items:center;gap:8px;margin:8px 0}
.nhi-number-row span{color:var(--muted)}
@media(min-width:620px){.nhi-shell{padding:28px}.nhi-card{min-height:auto;border-radius:24px;box-shadow:0 10px 40px rgba(0,0,0,.06);padding:28px}}

/* v0.2.0: contraste explícito frente a estilos heredados del tema */
.nhi-card,
.nhi-card h1,
.nhi-card p,
.nhi-card label,
.nhi-card span {
  color: var(--text);
}
.nhi-input,
.nhi-select,
.nhi-option,
.nhi-choice {
  color: #183126 !important;
  background-color: #ffffff !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #183126 !important;
}
.nhi-select {
  display: block !important;
  width: 100% !important;
  min-height: 60px !important;
  height: 60px !important;
  padding: 0 48px 0 16px !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background-color: #ffffff !important;
  color: #183126 !important;
  -webkit-text-fill-color: #183126 !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 60px !important;
  text-indent: 0 !important;
  opacity: 1 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image:
    linear-gradient(45deg, transparent 50%, #183126 50%),
    linear-gradient(135deg, #183126 50%, transparent 50%) !important;
  background-position:
    calc(100% - 20px) 26px,
    calc(100% - 14px) 26px !important;
  background-size: 6px 6px, 6px 6px !important;
  background-repeat: no-repeat !important;
}
.nhi-select:focus {
  border-color: var(--green) !important;
  box-shadow: 0 0 0 3px var(--green2) !important;
  outline: none !important;
}
.nhi-select option {
  color: #111111 !important;
  background-color: #ffffff !important;
  font-size: 18px !important;
}
.nhi-option:hover,
.nhi-option:focus,
.nhi-choice:hover,
.nhi-choice:focus,
.nhi-option.selected {
  color: #12301f !important;
  background: var(--green2) !important;
  border-color: var(--green) !important;
}
.nhi-primary {
  color: #ffffff !important;
  background: var(--green) !important;
  -webkit-text-fill-color: #ffffff !important;
}
.nhi-secondary,
.nhi-back {
  color: #183126 !important;
  -webkit-text-fill-color: #183126 !important;
}

/* v0.2.1: corrección específica para selects en iOS/WebKit */
@supports (-webkit-touch-callout: none) {
  .nhi-select {
    line-height: normal !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: block !important;
    vertical-align: middle !important;
  }
}

.nhi-card select,
.nhi-card select:focus,
.nhi-card select:active {
  color: #183126 !important;
  -webkit-text-fill-color: #183126 !important;
  background-color: #ffffff !important;
  opacity: 1 !important;
}

/* v0.2.2: selector de sexo sin <select> y elección foto cámara/carrete */
.nhi-choice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.nhi-choice-grid .nhi-choice {
  text-align: center;
  margin: 0;
  min-height: 58px;
  font-weight: 700;
}
.nhi-choice-grid .nhi-choice.selected {
  background: var(--green2) !important;
  border: 2px solid var(--green) !important;
  color: #12301f !important;
  -webkit-text-fill-color: #12301f !important;
}
.nhi-photo-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.nhi-photo-btn {
  width: 100%;
  min-height: 58px;
  text-align: center;
  border: 1px solid var(--line) !important;
  background: #ffffff !important;
  color: #183126 !important;
  -webkit-text-fill-color: #183126 !important;
}
.nhi-photo-btn:focus,
.nhi-photo-btn:hover {
  border-color: var(--green) !important;
  background: var(--green2) !important;
}
.nhi-hidden-file {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.nhi-photo-status {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f6f8f6;
  color: #5f6d64 !important;
  font-size: 14px;
}
.nhi-photo-status.selected {
  background: var(--green2);
  color: #12301f !important;
  font-weight: 600;
}

/* v0.3.0: bloques de fotografías iniciales */
.nhi-photo-block {
  margin: 18px 0 22px;
}
.nhi-photo-block > label {
  display: block;
  margin-bottom: 10px;
  color: #183126 !important;
}

/* v0.3.1: explicación previa a la participación en premios */
.nhi-info-box {
  margin: 0 0 18px;
  padding: 14px 16px;
  border-radius: 14px;
  background: #f3f8f4;
  border: 1px solid #d8e7dc;
  color: #183126 !important;
  line-height: 1.5;
}

/* v0.4.0: objetivos y cierre de reto */
.nhi-goal-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.nhi-goal-list .nhi-choice {
  margin: 0;
  min-height: 56px;
  text-align: left;
  padding-left: 18px;
}
