:root {
  --bg: #edf8ff;
  --card: rgba(255,255,255,.94);
  --text: #16304f;
  --muted: #63748a;
  --primary: #0f62c9;
  --primary-dark: #08499b;
  --cyan: #20b9ef;
  --violet: #6d31d8;
  --pink: #e5287a;
  --gold: #f6b517;
  --green: #16a56f;
  --line: #d9e7f2;
  --ok: #138a63;
  --bad: #c44747;
  --wa: #25d366;
}
* { box-sizing: border-box; }
html, body { min-height:100%; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 10% 7%, rgba(32,185,239,.22), transparent 26%),
    radial-gradient(circle at 92% 16%, rgba(109,49,216,.14), transparent 24%),
    radial-gradient(circle at 14% 92%, rgba(22,165,111,.12), transparent 23%),
    linear-gradient(180deg, #eaf8ff 0%, #f7fbff 48%, #eef8f5 100%);
  background-attachment: fixed;
}
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-1;
  background: linear-gradient(90deg,
    rgba(22,165,111,.07) 0 14%, rgba(32,185,239,.07) 14% 28%, rgba(15,98,201,.07) 28% 42%,
    rgba(109,49,216,.07) 42% 56%, rgba(229,40,122,.07) 56% 70%, rgba(246,181,23,.07) 70% 84%, rgba(255,108,0,.07) 84% 100%);
  mask: linear-gradient(to bottom, transparent 0 58%, #000 82%, #000 100%);
}
.app-shell { width: min(100%, 720px); margin: 0 auto; padding: 24px 16px 36px; }
.card {
  position:relative; overflow:hidden;
  background: var(--card);
  border-radius: 26px;
  padding: 26px 22px;
  box-shadow: 0 18px 45px rgba(26,72,113,.14);
  border: 1px solid rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
}
.card::after {
  content:""; position:absolute; left:0; right:0; top:0; height:5px;
  background: linear-gradient(90deg, #10a66f, #19bce9, #1768db, #6d31d8, #e5287a, #f6b517, #ff7a00);
}
.hidden { display: none !important; }
.brand-strip { display:flex; align-items:center; gap:12px; margin-bottom:18px; padding:12px 14px; border-radius:18px; background:linear-gradient(135deg, rgba(232,247,255,.95), rgba(245,240,255,.92)); border:1px solid #dcecf8; }
.brand-strip.compact { margin-bottom:16px; padding:9px 12px; }
.mini-logo { width:52px; height:52px; border-radius:16px; box-shadow:0 5px 14px rgba(15,98,201,.14); }
.compact .mini-logo { width:42px; height:42px; border-radius:13px; }
.brand-kicker { font-size:.78rem; font-weight:800; letter-spacing:.08em; color:#5a6e84; text-transform:uppercase; }
.brand-name { font-size:1.08rem; font-weight:900; color:#163f75; margin-top:2px; }
.badge { display:inline-block; padding:7px 12px; border-radius:999px; background:linear-gradient(135deg,#e9f5ff,#eee9ff); color:var(--primary); font-weight:800; font-size:.88rem; border:1px solid #d7e8f7; }
h1 { margin:16px 0 8px; font-size:clamp(1.9rem,5vw,2.5rem); color:#18314f; }
h2 { line-height:1.35; color:#18314f; }
.subtitle { color:var(--muted); line-height:1.55; }
.field-label { display:block; margin:24px 0 8px; font-weight:800; color:#203a58; }
.text-input { width:100%; border:1.5px solid var(--line); border-radius:16px; padding:16px; font-size:1rem; outline:none; background:#fbfdff; color:#16304f; box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
.text-input:focus { border-color:#3c8de5; box-shadow:0 0 0 4px rgba(60,141,229,.12); background:#fff; }
button { border:0; border-radius:15px; padding:15px 18px; font-size:1rem; font-weight:800; cursor:pointer; }
.primary-btn { width:100%; background:linear-gradient(135deg,#0f69da,#0a4fae); color:#fff; margin-top:20px; box-shadow:0 10px 20px rgba(15,98,201,.22); }
.primary-btn:hover { background:linear-gradient(135deg,#0c5fc9,#083f90); }
.primary-btn:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.secondary-btn { width:100%; background:#edf4fa; color:var(--text); margin-top:10px; }
.whatsapp-btn { width:100%; background:linear-gradient(135deg,#2bd873,#1db85d); color:#fff; margin-top:18px; }
.evaluation-list { display:grid; gap:14px; margin-top:24px; }
.evaluation-card { position:relative; width:100%; text-align:left; background:linear-gradient(135deg,#f8fcff,#f2f8fd); border:1.5px solid #d8e6f0; padding:19px 18px 19px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px; box-shadow:0 6px 16px rgba(38,88,128,.06); }
.evaluation-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:6px; border-radius:15px 0 0 15px; background:linear-gradient(#19bce9,#1768db); }
.evaluation-card:nth-child(2)::before { background:linear-gradient(#e5287a,#6d31d8); }
.evaluation-card.active:hover { border-color:#6aa7dd; transform:translateY(-1px); }
.evaluation-card.disabled { opacity:.55; cursor:not-allowed; }
.evaluation-title { font-size:1.08rem; color:#173653; }
.evaluation-meta { font-size:.85rem; color:var(--muted); font-weight:700; background:#fff; border:1px solid #e3edf5; padding:5px 9px; border-radius:999px; }
.warning { color:var(--bad); font-weight:800; margin:12px 0 0; }
.quiz-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.exit-btn { width:auto; padding:8px 12px; background:#eef4f8; color:#63748a; font-size:.85rem; }
.top-row { display:flex; justify-content:space-between; gap:12px; font-size:.92rem; color:var(--muted); margin-top:22px; }
.progress-track { height:11px; background:#e8f0f6; border-radius:999px; overflow:hidden; margin:12px 0 22px; box-shadow:inset 0 1px 2px rgba(0,0,0,.04); }
.progress-bar { height:100%; width:0; background:linear-gradient(90deg,#19bce9,#1768db,#6d31d8,#e5287a); transition:width .25s ease; }
.section-label { margin:0 0 8px; color:#1468c7; font-size:.9rem; font-weight:900; }
#question-text { margin-top:8px; }
.answers { display:grid; gap:12px; margin-top:20px; }
.answer-btn { width:100%; text-align:left; background:#fbfdff; color:var(--text); border:1.5px solid #dce8f1; transition:.15s ease; display:flex; align-items:flex-start; gap:12px; box-shadow:0 4px 12px rgba(45,84,119,.04); }
.answer-btn:hover { border-color:#5e9fdb; transform:translateY(-1px); }
.option-letter { min-width:32px; width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,#e9f6ff,#ececff); color:#155fb6; font-weight:900; }
.answer-btn.selected { border-color:#2a80d3; background:linear-gradient(135deg,#eef8ff,#f2efff); box-shadow:0 0 0 3px rgba(42,128,211,.08); }
.answer-btn.selected .option-letter { background:linear-gradient(135deg,#1768db,#6d31d8); color:#fff; }
.result-icon { width:70px; height:70px; border-radius:50%; display:grid; place-items:center; margin:6px auto 0; font-size:2rem; font-weight:900; background:linear-gradient(135deg,#e9fbf4,#dff7ed); color:var(--ok); border:1px solid #ccebdd; box-shadow:0 8px 20px rgba(19,138,99,.12); }
#result-screen { text-align:center; }
.result-evaluation { margin-top:6px; }
.score-circle { width:160px; height:160px; margin:24px auto; border:10px solid #e7eff7; border-top-color:#1768db; border-right-color:#6d31d8; border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; box-shadow:0 10px 24px rgba(23,104,219,.10); }
.score-circle strong { font-size:2rem; color:#173653; }
.score-circle span { color:var(--muted); margin-top:4px; }
.summary { margin-top:20px; padding:17px; background:linear-gradient(135deg,#f7fbff,#f8f6ff); border-radius:16px; text-align:left; line-height:1.55; border:1px solid #e1ebf3; }
.whatsapp-group { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.whatsapp-group .whatsapp-btn { margin-top:0; }
.prof-signature { margin:30px 0 0; text-align:center; font-style:italic; font-weight:800; color:#245f9c; letter-spacing:.4px; }
@media (max-width:520px) { .card { padding:22px 18px; border-radius:22px; } .top-row { font-size:.84rem; } .evaluation-card { align-items:flex-start; flex-direction:column; gap:8px; } .evaluation-meta { align-self:flex-start; } .whatsapp-group { grid-template-columns:1fr; } }

/* Pantalla pública de instalación */
.install-screen { min-height:100dvh; display:grid; place-items:center; padding:0; background:#eef8ff; overflow:hidden; }
.welcome-wrap { position:relative; width:min(100vw, 680px); margin:auto; line-height:0; }
.welcome-art { width:100%; height:auto; display:block; }
.install-hotspot { position:absolute; left:20.5%; top:64.7%; width:59%; height:7.3%; border-radius:999px; background:transparent; border:0; cursor:pointer; padding:0; }
.install-hotspot:focus-visible { outline:4px solid rgba(37,99,235,.55); outline-offset:3px; }
.install-help { position:fixed; z-index:5; left:16px; right:16px; bottom:18px; max-width:620px; margin:auto; padding:12px 16px; border-radius:14px; background:#fff; color:#1e3a5f; box-shadow:0 8px 30px rgba(0,0,0,.18); text-align:center; line-height:1.4; font-weight:700; }
@media (min-width:681px){ .welcome-wrap{box-shadow:0 16px 50px rgba(31,80,130,.14);} }

.evaluation-card:nth-child(3)::before { background:linear-gradient(#f2b705,#ef6c35); }
.password-overlay { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:22px; background:rgba(16,42,67,.52); backdrop-filter:blur(5px); }
.password-overlay.hidden { display:none; }
.password-dialog { width:min(100%,430px); background:#fff; border-radius:24px; padding:26px; box-shadow:0 22px 70px rgba(16,42,67,.28); border:1px solid #dceaf4; }
.password-dialog h2 { margin:12px 0 6px; }
.password-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px; }
.password-actions button { margin:0; }
