/* Identidad ProSalud — cuestionario */
:root{
  --teal-700:#0f766e;
  --teal-600:#0d9488;
  --teal-500:#14b8a6;
  --teal-50:#f0fdfa;
  --ink-900:#0b1f1d;
  --ink-700:#1f3a37;
  --ink-500:#4b6663;
  --ink-300:#94a8a5;
  --line:#d6e2e0;
  --bg:#f5f9f8;
  --card:#ffffff;
  --err:#b91c1c;
  --shadow:0 1px 2px rgba(15,118,110,.05), 0 6px 24px -8px rgba(15,118,110,.18);
  --radius:14px;
  --radius-sm:10px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, "Helvetica Neue", Arial, sans-serif;
  background:var(--bg);
  color:var(--ink-900);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.5;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* Topbar */
.topbar{
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  position:sticky;
  top:0;
  z-index:10;
}
.brand{
  font-weight:700;
  font-size:15px;
  letter-spacing:-.01em;
  color:var(--teal-700);
}
.brand .dim{
  color:var(--ink-500);
  font-weight:500;
  margin-left:6px;
}
.progress{
  display:flex;align-items:center;gap:10px;min-width:200px;
}
.progress .bar{
  flex:1;height:6px;background:var(--line);border-radius:99px;overflow:hidden;
}
.progress .bar span{
  display:block;height:100%;
  background:linear-gradient(90deg, var(--teal-500), var(--teal-700));
  transition:width .35s ease;
}
.progress .label{
  font-size:12px;color:var(--ink-500);font-variant-numeric:tabular-nums;min-width:46px;text-align:right;
}

/* Main */
.wrap{
  flex:1;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding:32px 20px 48px;
}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:32px 28px;
  width:100%;
  max-width:640px;
}
.card.welcome, .card.thanks{text-align:center;max-width:520px}
.card h1{
  font-size:28px;line-height:1.2;letter-spacing:-.02em;margin:0 0 12px;
  color:var(--ink-900);
}
.card.welcome h1{font-size:30px}
.card .lead{font-size:16px;color:var(--ink-500);margin:0 0 12px}
.card .count{font-size:13px;color:var(--ink-300);margin:0 0 24px}

/* Form bits */
.lbl{
  display:block;font-size:13px;color:var(--ink-500);margin:18px 0 6px;text-align:left;font-weight:600;
}
input[type="text"]{
  width:100%;padding:14px 16px;
  border:1.5px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:16px;
  background:#fff;
  color:var(--ink-900);
  font-family:inherit;
  outline:none;
  transition:border-color .15s, box-shadow .15s;
}
input[type="text"]:focus{
  border-color:var(--teal-600);
  box-shadow:0 0 0 3px rgba(13,148,136,.15);
}
input[type="radio"]{position:absolute;opacity:0;pointer-events:none}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 20px;
  border-radius:var(--radius-sm);
  font-size:15px;
  font-weight:600;
  text-decoration:none;
  border:1.5px solid transparent;
  cursor:pointer;
  font-family:inherit;
  transition:transform .08s, background .15s, border-color .15s, color .15s;
  min-height:46px;
  user-select:none;
}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--teal-700);color:#fff;}
.btn.primary:hover{background:var(--teal-600)}
.btn.ghost{background:transparent;color:var(--teal-700);border-color:var(--line);}
.btn.ghost:hover{background:var(--teal-50);border-color:var(--teal-500)}
.btn.block{display:flex;width:100%;margin-top:18px}

/* Question card */
.cat{
  display:inline-block;
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--teal-700);
  background:var(--teal-50);
  padding:5px 10px;border-radius:99px;
  margin-bottom:14px;
}
.q-text{
  font-size:22px;line-height:1.3;letter-spacing:-.015em;
  margin:0 0 28px;
  color:var(--ink-900);
}
.q-text::first-letter{}

/* Scale (radios) */
.scale{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  gap:12px;
  align-items:center;
  margin:0 0 24px;
}
.pole{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  font-size:13px;color:var(--ink-500);
}
.pole.left{align-items:flex-end;text-align:right}
.pole.right{align-items:flex-start;text-align:left}
.pole-label{font-weight:600;color:var(--ink-700);line-height:1.25;max-width:120px}
.pole-num{
  font-size:11px;color:var(--ink-300);font-weight:700;margin-top:6px;
}
.radios{
  display:flex;gap:6px;justify-content:center;
}
.radio{
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;
  padding:6px;
  border-radius:12px;
  transition:background .15s;
}
.radio:hover{background:var(--teal-50)}
.radio .dot{
  display:block;
  width:34px;height:34px;
  border:2px solid var(--line);
  border-radius:50%;
  background:#fff;
  position:relative;
  transition:border-color .15s, background .15s, transform .12s;
}
.radio .num{
  font-size:12px;color:var(--ink-300);font-weight:600;margin-top:4px;
  font-variant-numeric:tabular-nums;
}
.radio input:checked ~ .dot{
  border-color:var(--teal-700);
  background:var(--teal-700);
  transform:scale(1.08);
}
.radio input:checked ~ .dot::after{
  content:"";position:absolute;inset:8px;border-radius:50%;background:#fff;
}
.radio input:checked ~ .num{color:var(--teal-700);font-weight:700}
.radio input:focus-visible ~ .dot{
  box-shadow:0 0 0 3px rgba(13,148,136,.25);
}

.actions{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:8px;
}
.hint{
  font-size:12px;color:var(--ink-300);margin:14px 0 0;text-align:center;
}
.err{color:var(--err);font-size:14px}

/* Thanks */
.thanks .check{
  width:64px;height:64px;margin:0 auto 18px;
  border-radius:50%;
  background:var(--teal-50);
  color:var(--teal-700);
  display:flex;align-items:center;justify-content:center;
  font-size:36px;font-weight:700;
}
.thanks p{color:var(--ink-500);margin:0 0 8px}
.thanks .muted{font-size:13px;color:var(--ink-300)}
.cta-row{display:flex;gap:10px;justify-content:center;margin-top:24px;flex-wrap:wrap}

/* Footer */
.footer{
  padding:18px 20px 26px;text-align:center;font-size:12px;color:var(--ink-300);
}

/* Mobile tweaks */
@media (max-width:560px){
  .wrap{padding:20px 14px 36px}
  .card{padding:24px 18px;border-radius:12px}
  .card h1{font-size:24px}
  .card.welcome h1{font-size:26px}
  .q-text{font-size:19px}
  .topbar{padding:12px 14px}
  .progress{min-width:140px}
  .scale{grid-template-columns:1fr;gap:14px}
  .pole{flex-direction:row;justify-content:center;gap:8px;align-items:center;text-align:center !important}
  .pole.left{align-items:center}
  .pole.right{align-items:center}
  .pole-num{margin-top:0}
  .pole-label{max-width:none}
  .radios{gap:8px}
  .radio .dot{width:38px;height:38px}
  .actions{flex-direction:column-reverse;align-items:stretch}
  .actions .btn{width:100%}
  .brand .dim{display:none}
}
