/* ============================================================
   EncuestaPop · app (mm2d.cl/encuestapop/app/)
   Componentes .p-* de la maqueta de 18 pantallas. Colores: tokens
   compartidos con la landing (../assets/tokens.css), tomados de la
   maqueta. Aquí no se escribe ningún color directo.
   ============================================================ */
@import url('../assets/tokens.css');

:root {
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --r: 14px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; background: var(--ep-bg); color: var(--ep-text); font: 15px/1.5 var(--font); display: flex; flex-direction: column; }
img { max-width: 100%; }
a { color: var(--ep-accent-text); }
a:hover, a:focus-visible { color: var(--ep-text); }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--ep-focus); outline-offset: 2px; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ep-surface); padding: 8px 12px; border-radius: 8px; z-index: 10; }
.skip:focus { left: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.ep-top { display: flex; justify-content: center; padding: 18px 16px 6px; }
.ep-brand img { display: block; height: 30px; width: auto; }
.ep-app { width: 100%; max-width: 480px; margin: 0 auto; padding: 8px 16px 96px; flex: 1; outline: none; }
.ep-foot { text-align: center; font-size: 11.5px; color: var(--ep-text-3); padding: 18px 16px 90px; }

/* tarjetas y textos */
.p-card { background: var(--ep-surface); border-radius: 16px; border: 1px solid var(--ep-border); padding: 18px; margin-bottom: 10px; }
.ep-loading { text-align: center; color: var(--ep-text-3); font-size: 14px; }
.p-h { font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; color: var(--ep-text); margin: 0 0 8px; }
.p-title { font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--ep-text); margin: 8px 0 6px; }
.p-sub { font-size: 14px; color: var(--ep-text-2); line-height: 1.55; margin: 0 0 12px; }
.p-small { font-size: 12.5px; color: var(--ep-text-3); }
.p-section-lbl { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ep-text-3); margin: 18px 0 8px; font-weight: 600; }
.p-note { background: var(--ep-surface-soft); border-radius: 10px; padding: 10px 12px; font-size: 13px; color: var(--ep-text-note); line-height: 1.5; margin: 10px 0; }
.p-lead { font-size: 16px; color: var(--ep-text); line-height: 1.55; }

/* botones */
.p-btn { display: block; width: 100%; padding: 13px; background: var(--ep-primary); color: var(--ep-on-primary); border: 0; border-radius: 12px; font-size: 15px; font-weight: 600; margin-top: 12px; cursor: pointer; text-align: center; text-decoration: none; }
.p-btn:hover, .p-btn:focus-visible { background: var(--ep-primary-hover); color: var(--ep-on-primary); }
.p-btn:active { background: var(--ep-primary); }
.p-btn:disabled { background: var(--ep-border-strong); color: var(--ep-surface); cursor: not-allowed; }
.p-btn-sec { display: block; width: 100%; padding: 12px; background: transparent; color: var(--ep-text); border: 1px solid var(--ep-border-strong); border-radius: 12px; font-size: 14px; font-weight: 500; margin-top: 8px; cursor: pointer; text-align: center; text-decoration: none; }
.p-btn-sec:hover, .p-btn-sec:focus-visible { border-color: var(--ep-text); }
.p-btn-danger { color: var(--ep-error); border-color: var(--ep-error-border); }
.p-link { background: none; border: 0; padding: 0; color: var(--ep-accent-text); font-size: 14px; cursor: pointer; text-decoration: underline; }
.p-back { background: none; border: 0; padding: 4px 0; font-size: 14px; color: var(--ep-text-2); cursor: pointer; }
.p-back:hover, .p-back:focus-visible { color: var(--ep-text); }

/* insignias */
.p-badge { display: inline-block; font-size: 11px; padding: 3px 10px; border-radius: 20px; font-weight: 600; }
.p-badge-navy { background: var(--ep-dark); color: var(--ep-on-dark); }
.p-badge-blue { background: var(--ep-accent-soft); color: var(--ep-accent-ink); }
.p-badge-gray { background: var(--ep-surface-soft); color: var(--ep-text-2); border: 1px solid var(--ep-border); }
.p-badge-ok { background: var(--ep-success-bg); color: var(--ep-success); }

/* formularios */
.p-field { display: block; margin-bottom: 12px; }
.p-field > span { display: block; font-size: 13px; font-weight: 500; color: var(--ep-text-2); margin-bottom: 5px; }
.p-input, .p-select { width: 100%; padding: 11px 12px; border: 1px solid var(--ep-border-strong); border-radius: 10px; font-size: 15px; background: var(--ep-surface); }
.p-input:focus, .p-select:focus, .p-textarea:focus { border-color: var(--ep-text); outline: none; box-shadow: 0 0 0 3px var(--ep-focus-ring); }
.p-hint { display: block; font-size: 12px; color: var(--ep-text-3); margin-top: 4px; }
.p-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; cursor: pointer; margin: 14px 0 4px; }
.p-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ep-primary); flex: none; }
.p-error { background: var(--ep-error-bg); border: 1px solid var(--ep-error-border); color: var(--ep-error); border-radius: 10px; padding: 10px 12px; font-size: 13.5px; margin: 10px 0; }
.p-ok { background: var(--ep-success-bg); border: 1px solid var(--ep-success-border); color: var(--ep-success); border-radius: 10px; padding: 10px 12px; font-size: 13.5px; margin: 10px 0; }
.p-textarea { width: 100%; min-height: 150px; padding: 12px; border: 1px solid var(--ep-border-strong); border-radius: 12px; font-size: 15px; line-height: 1.55; resize: vertical; background: var(--ep-surface); }
.p-count { text-align: right; font-size: 12px; color: var(--ep-text-3); margin-top: 4px; }
.ts-box { margin: 14px 0 4px; min-height: 65px; }

/* pasos del registro */
.p-step-bar { display: flex; gap: 4px; margin-bottom: 14px; }
.p-step-dot { flex: 1; height: 4px; border-radius: 2px; background: var(--ep-border); }
.p-step-dot.done { background: var(--ep-dark); }
.p-step-dot.active { background: var(--ep-accent-2); }

/* aviso de privacidad */
.p-privacy h2 { font-size: 18px; color: var(--ep-text); margin: 0 0 10px; line-height: 1.3; }
.p-privacy ul { margin: 0; padding-left: 18px; display: grid; gap: 9px; font-size: 14px; line-height: 1.5; color: var(--ep-text); }
.p-privacy .p-privacy-points { font-size: 15px; gap: 10px; }
.p-privacy-more { margin-top: 12px; border-top: 1px solid var(--ep-border); padding-top: 10px; }
.p-privacy-more summary { cursor: pointer; font-size: 14px; font-weight: 500; color: var(--ep-text-2); list-style: none; display: inline-flex; align-items: center; gap: 6px; padding: 4px 0; }
.p-privacy-more summary::-webkit-details-marker { display: none; }
.p-privacy-more summary::after { content: '+'; font-size: 16px; line-height: 1; }
.p-privacy-more[open] summary::after { content: '−'; }
.p-privacy-more summary:hover, .p-privacy-more summary:focus-visible { color: var(--ep-text); }
.p-privacy-more ul { margin-top: 10px; font-size: 13.5px; color: var(--ep-text-2); }

/* banner fundacional */
.p-fund-banner { background: var(--ep-dark); border-radius: 14px; padding: 13px 15px; display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: var(--ep-on-dark); }
.p-f-icon { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--ep-on-dark-2); display: flex; align-items: center; justify-content: center; flex: none; font-size: 15px; }
.p-f-title { font-size: 13px; font-weight: 600; }
.p-f-sub { font-size: 12px; color: var(--ep-on-dark-2); }

/* lista de preguntas */
.p-qlist { display: grid; gap: 8px; }
.p-qitem { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 14px; border: 1px solid var(--ep-border); border-radius: 14px; background: var(--ep-surface); cursor: pointer; }
.p-qitem:hover, .p-qitem:focus-visible { border-color: var(--ep-border-strong); }
.p-qnum { width: 28px; height: 28px; border-radius: 50%; background: var(--ep-surface-soft); color: var(--ep-text-2); font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex: none; }
.p-qitem.is-done .p-qnum { background: var(--ep-dark); color: var(--ep-on-dark); }
.p-qtext { flex: 1; font-size: 15px; font-weight: 500; color: var(--ep-text); line-height: 1.35; }
.p-qcta { font-size: 12.5px; color: var(--ep-accent-text); font-weight: 600; white-space: nowrap; }
.p-qitem.is-done .p-qcta { color: var(--ep-text-2); }
.p-progress { height: 6px; background: var(--ep-chart-track); border-radius: 3px; overflow: hidden; margin: 6px 0 4px; }
.p-progress > i { display: block; height: 100%; background: var(--ep-accent); border-radius: 3px; }

/* opciones (múltiple, escala, ranking) */
.p-opt { width: 100%; text-align: left; padding: 12px 14px; border: 1px solid var(--ep-border); background: var(--ep-surface); border-radius: 12px; font-size: 15px; cursor: pointer; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.p-opt.sel { border-color: var(--ep-primary); background: var(--ep-primary); color: var(--ep-on-primary); }
.p-scale-row { display: flex; gap: 6px; margin: 10px 0 4px; }
.p-scale-btn { flex: 1; padding: 13px 2px; border: 1px solid var(--ep-border); background: var(--ep-surface); border-radius: 10px; font-size: 16px; font-weight: 600; cursor: pointer; }
.p-scale-btn.sel { background: var(--ep-primary); color: var(--ep-on-primary); border-color: var(--ep-primary); }
.p-scale-labels { display: flex; justify-content: space-between; font-size: 12px; color: var(--ep-text-3); }
.p-rank-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px; border: 1px solid var(--ep-border); border-radius: 12px; background: var(--ep-surface); margin-bottom: 8px; cursor: pointer; text-align: left; font-size: 15px; }
.p-rank-item.picked { border-color: var(--ep-primary); background: var(--ep-surface-soft); }
.p-rank-num { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--ep-border-strong); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; color: var(--ep-text-2); flex: none; }
.p-rank-item.picked .p-rank-num { background: var(--ep-primary); border-color: var(--ep-primary); color: var(--ep-on-primary); }

/* resultados */
.p-bar-wrap { margin-bottom: 10px; }
.p-bar-label { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; margin-bottom: 4px; }
.p-bar-label b { font-weight: 600; font-variant-numeric: tabular-nums; }
.p-bar-bg { height: 8px; background: var(--ep-chart-track); border-radius: 4px; overflow: hidden; }
.p-bar-fill { height: 100%; border-radius: 4px; background: var(--ep-chart); }
.p-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; color: var(--ep-text-3); margin: 8px 0 0; }
.p-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.p-chip { padding: 7px 13px; border-radius: 20px; border: 1px solid var(--ep-border-strong); font-size: 13px; background: var(--ep-surface); cursor: pointer; }
.p-chip:hover, .p-chip:focus-visible { border-color: var(--ep-text); }
.p-chip.sel { background: var(--ep-primary); color: var(--ep-on-primary); border-color: var(--ep-primary); }
.p-seg-card { border: 1px solid var(--ep-border); border-radius: 12px; padding: 12px; margin-bottom: 8px; background: var(--ep-surface-muted); }
.p-seg-card .p-bar-fill { background: var(--ep-chart-2); }
.p-seg-card .p-bar-bg { background: var(--ep-border); }
.p-seg-head { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; font-weight: 600; color: var(--ep-text); margin-bottom: 8px; }
.p-seg-head span { font-weight: 400; color: var(--ep-text-3); font-size: 12.5px; }
.p-seg-card.is-insufficient { background: var(--ep-surface); }
.p-seg-card.is-insufficient .p-seg-head { margin: 0; color: var(--ep-text-2); }
.p-editorial { background: var(--ep-surface-soft); border-left: 3px solid var(--ep-dark); border-radius: 0 12px 12px 0; padding: 12px 14px; margin-top: 10px; }
.p-editorial-lbl { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ep-text-3); margin-bottom: 4px; font-weight: 600; }
.p-editorial-text { font-size: 14px; color: var(--ep-text-note); line-height: 1.55; white-space: pre-line; }
.p-mine { background: var(--ep-surface-soft); border-radius: 12px; padding: 12px 14px; font-size: 14px; color: var(--ep-text-note); line-height: 1.5; margin-top: 4px; white-space: pre-line; overflow-wrap: anywhere; }

/* historial y perfil */
.p-hist-item { padding: 12px 0; border-bottom: 1px solid var(--ep-border); }
.p-hist-item:last-child { border-bottom: 0; }
.p-hist-q { font-size: 14.5px; font-weight: 600; color: var(--ep-text); margin-bottom: 4px; }
.p-hist-a { font-size: 14px; color: var(--ep-text-2); line-height: 1.5; overflow-wrap: anywhere; }
.p-profile-circle { width: 56px; height: 56px; border-radius: 50%; background: var(--ep-dark); color: var(--ep-on-dark); font-size: 20px; font-weight: 600; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; text-transform: uppercase; }
.p-dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; font-size: 14px; margin: 10px 0; }
.p-dl dt { color: var(--ep-text-3); } .p-dl dd { margin: 0; color: var(--ep-text); }

/* barra de pestañas inferior */
.p-tab-bar { position: fixed; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; gap: 0; background: var(--ep-bg-translucent-strong); backdrop-filter: blur(8px); border-top: 1px solid var(--ep-border); padding: 6px max(8px, env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)); z-index: 5; }
.p-tab-bar[hidden] { display: none; }
.p-tab { flex: 1; max-width: 160px; background: none; border: 0; padding: 10px 0; font-size: 13px; color: var(--ep-text-3); cursor: pointer; font-weight: 500; }
.p-tab:hover, .p-tab:focus-visible { color: var(--ep-text); }
.p-tab.active { color: var(--ep-text); font-weight: 600; box-shadow: inset 0 -2px 0 var(--ep-accent); }

@media (min-width: 560px) { .p-card { padding: 22px; } .p-h { font-size: 26px; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
