/* Reglas propias del generador de VEP.
   Tokens, tipografía y componentes comunes: estilo.css */

.stepper { display:flex; align-items:center; margin-bottom:24px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:10px 18px; }
.step { display:flex; align-items:center; gap:8px; flex:1; position:relative; justify-content:center; }
.step:not(:last-child)::after { content:''; position:absolute; top:50%; left:62%; width:76%; height:1px; background:var(--line); z-index:0; transform:translateY(-50%); }
.step.done:not(:last-child)::after { background:var(--accent); }
.step-circle { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:11px; font-family:var(--font-num); border:1px solid var(--line); background:#fff; color:var(--ink-faint); z-index:1; flex-shrink:0; }
.step.active .step-circle, .step.done .step-circle { border-color:var(--accent); background:var(--accent); color:#fff; }
.step-label { font-size:12px; color:var(--ink-faint); z-index:1; white-space:nowrap; }
.step.active .step-label { color:var(--ink); font-weight:600; }
.step.done .step-label { color:var(--ink-soft); }

.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:6px; }
.choice-btn { border:1px solid var(--line); border-radius:var(--radius); padding:24px 18px; background:#fff; cursor:pointer; text-align:center; transition:border-color .12s, background .12s; }
.choice-btn:hover { border-color:var(--accent); background:var(--accent-soft); }
.choice-btn .icon { width:32px; height:32px; margin:0 auto 12px; color:var(--accent); }
.choice-btn .icon svg { width:100%; height:100%; display:block; }
.choice-btn .title { font-size:15px; font-weight:600; color:var(--ink); margin-bottom:5px; }
.choice-btn .desc { font-size:12.5px; color:var(--ink-soft); line-height:1.5; }

.upload-zone { border:1px dashed var(--field-border); border-radius:var(--radius); padding:28px; text-align:center; cursor:pointer; transition:border-color .12s, background .12s; margin-bottom:18px; background:var(--bg); }
.upload-zone:hover, .upload-zone.drag { border-color:var(--accent); background:var(--accent-soft); }
.upload-zone input[type=file] { display:none; }
.upload-zone .uz-icon { width:24px; height:24px; margin:0 auto 8px; color:var(--ink-faint); }
.upload-zone .uz-icon svg { width:100%; height:100%; display:block; }
.upload-zone .uz-text { font-size:14px; color:var(--ink-soft); }
.upload-zone .uz-hint { font-size:12px; color:var(--ink-faint); margin-top:3px; }

.detected-box h3 { font-size:11px; font-weight:600; color:var(--accent); margin:0 0 10px; text-transform:uppercase; letter-spacing:.08em; }
.detected-row { display:flex; justify-content:space-between; gap:14px; font-size:13px; padding:4px 0; border-bottom:1px solid var(--accent-line); }
.detected-row:last-child { border-bottom:none; }
.detected-row .dr-label { color:var(--ink-soft); }
.detected-row .dr-val { font-weight:600; color:var(--ink); font-family:var(--font-num); font-variant-numeric:tabular-nums; white-space:nowrap; }
.detected-row .dr-zero { color:var(--ink-faint); font-family:var(--font-num); white-space:nowrap; }

.periodo-list { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.periodo-row { display:flex; align-items:center; gap:10px; background:var(--bg); border:1px solid var(--line); border-radius:var(--radius); padding:9px 13px; }
.periodo-row .periodo-val { font-weight:600; font-size:14px; min-width:78px; font-family:var(--font-num); }
.periodo-row .venc-val { font-size:13px; color:var(--ink-soft); flex:1; }
.add-periodo { display:flex; gap:8px; align-items:flex-end; }
.add-periodo input { max-width:140px; }

.imp-section { margin-bottom:24px; }
.imp-section h3 { font-size:12px; font-weight:600; color:var(--ink); margin:0 0 8px; padding-bottom:6px; border-bottom:1px solid var(--line); text-transform:uppercase; letter-spacing:.06em; }
.imp-row { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.imp-row .imp-desc { flex:1; font-size:13px; color:var(--ink-soft); }
.imp-row input { width:150px; text-align:right; }
.imp-row .imp-hint { font-size:11px; color:var(--ink-faint); width:78px; text-align:right; }

.modo-selector { display:flex; gap:6px; margin-bottom:16px; flex-wrap:wrap; }
.modo-btn { padding:7px 14px; border-radius:var(--radius); border:1px solid var(--line); background:#fff; cursor:pointer; font-size:13px; font-weight:500; color:var(--ink-soft); font-family:var(--font-body); transition:border-color .12s, background .12s, color .12s; }
.modo-btn:hover { border-color:var(--ink-faint); }
.modo-btn.active { border-color:var(--accent); background:var(--accent); color:#fff; }

.spinner { display:inline-block; width:15px; height:15px; border:2px solid var(--line); border-top-color:var(--accent); border-radius:50%; animation:spin .7s linear infinite; vertical-align:middle; margin-right:7px; }
@keyframes spin { to { transform:rotate(360deg); } }

.lista-simple { list-style:none; margin:0; }
.lista-simple li { padding:11px 0; border-bottom:1px solid var(--line-soft); }
.lista-simple li:first-child { padding-top:0; }
.lista-simple li:last-child { border-bottom:none; padding-bottom:0; }
.lista-simple a { font-weight:600; text-decoration:none; font-size:14.5px; }
.lista-simple a:hover { text-decoration:underline; }
.lista-simple span { display:block; color:var(--ink-soft); font-size:13px; margin-top:2px; line-height:1.5; }

@media (max-width:620px) {
  .step-label { display:none; }
  .choice-grid { grid-template-columns:1fr; }
  .imp-row { flex-wrap:wrap; }
  .imp-row input { width:100%; }
}
