/* Modal base */
.infin-app-modal {
  position: fixed; inset: 0; z-index: 99999;
  display: none;
  background: rgba(16,22,33,.48);
  backdrop-filter: blur(4px);
}
.infin-app-dialog{
  position: relative;
  width: 680px; max-width: 92vw;
  margin: 6vh auto; background: #fff; color:#0f172a;
  border-radius: 16px; box-shadow: 0 12px 40px rgba(0,0,0,.25);
  padding: 20px 22px 16px;
}
.infin-app-close{
  position: absolute; right: 12px; top: 10px;
  border: 0; background: transparent; font-size: 26px; line-height: 1; cursor: pointer; color:#334155;
}

/* Header */
.infin-app-header h3 { margin: 4px 0 2px; font-size: 22px; }
.infin-app-subtitle{ margin:0 0 10px; color:#64748b; }
.infin-steps { display:flex; gap:8px; margin: 6px 0 2px; }
.infin-steps .dot{
  width:8px;height:8px;border-radius:50%;background:#cbd5e1; display:inline-block;
}
.infin-steps .dot.is-active{ background:#0ea5e9; }

/* Steps */
.step{ display:none; margin-top: 10px; }
.step.is-active{ display:block; }

.grid{ display:grid; gap:14px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.wide{ grid-column: 1 / -1; }

.field span{ font-size:13px; color:#475569; }
.field input, .field select, .field textarea{
  border:1px solid #cbd5e1; border-radius:10px; padding:10px 12px; font-size:14px;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:#0ea5e9; box-shadow: 0 0 0 3px rgba(14,165,233,.15);
}

/* Confirm */
.confirm { padding: 6px 4px; }
.program-summary strong { display:block; font-size:16px; }
.program-summary small { color:#64748b; }

/* Actions */
.infin-app-actions{
  display:flex; justify-content: space-between; align-items:center;
  margin-top: 12px;
}
.btn{
  border:1px solid #cbd5e1; background:#fff; color:#0f172a; padding:9px 14px;
  border-radius:10px; cursor:pointer;
}
.btn:hover{ border-color:#94a3b8; }
.btn.is-primary{
  background:#be123c; color:#fff; border-color:#be123c;
}
.btn.is-primary:hover{ background:#9f1239; }

/* Success state */
.infin-app-success{
  display:flex; gap:10px; align-items:center; justify-content:center;
  margin-top: 14px; padding:12px; background:#f0fdf4; color:#14532d; border-radius:10px;
}

/* Responsive */
@media (max-width: 600px){
  .grid{ grid-template-columns: 1fr; }
}
.infin-apply-btn:hover {
  background:#9f1239;
  color:#fff;
}
