/* ===== Cotizador wizard ===== */
.ctz-backdrop{
  position:fixed; inset:0; z-index:9999;
  background:rgba(15,17,33,.55);
  backdrop-filter:blur(3px);
  display:none;
  align-items:center; justify-content:center;
  padding:20px;
  opacity:0;
  transition:opacity var(--motion-base) var(--ease);
}
.ctz-backdrop.open{ display:flex; opacity:1; }

.ctz-modal{
  background:#fff;
  color:var(--color-ink);
  width:400px; max-width:100%;
  border-radius:20px;
  box-shadow:0 32px 80px rgba(0,0,0,.24);
  padding:0;
  position:relative;
  transform:scale(.93) translateY(12px);
  opacity:0;
  transition:transform .22s cubic-bezier(.34,1.56,.64,1), opacity .22s ease;
  max-height:90vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.ctz-backdrop.open .ctz-modal{ transform:scale(1) translateY(0); opacity:1; }

.ctz-modal-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 22px 16px;
  border-bottom:1px solid #f0f0f3;
  flex:0 0 auto;
}
.ctz-modal-title{
  font-size:15px; font-weight:700; color:var(--color-ink);
}
.ctz-close{
  width:32px; height:32px;
  border:none; background:#f0f0f4;
  color:var(--color-ink-muted);
  border-radius:50%;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .13s;
}
.ctz-close:hover{ background:#e4e4e8; color:var(--color-ink); }

.ctz-steps{
  display:flex; gap:6px; justify-content:center;
  padding:14px 22px 0;
  flex:0 0 auto;
}
.ctz-step-dot{
  width:20px; height:3px; border-radius:2px;
  background:var(--color-border);
  transition:background var(--motion-fast) var(--ease), width var(--motion-fast) var(--ease);
}
.ctz-step-dot.active{ background:var(--color-accent); width:28px; }
.ctz-step-dot.done{ background:var(--color-accent); }

.ctz-body{
  padding:16px 22px 22px;
  overflow-y:auto;
}

.ctz-panel{ display:none; }
.ctz-panel.active{ display:block; animation:ctzFadeIn var(--motion-base) var(--ease); }
@keyframes ctzFadeIn{ from{ opacity:0; transform:translateX(8px);} to{ opacity:1; transform:translateX(0);} }

.ctz-title{
  font-family:var(--font-body);
  font-size:16px; font-weight:700;
  margin:0 0 3px; text-align:left;
}
.ctz-sub{
  color:var(--color-ink-muted);
  font-size:13px; text-align:left;
  margin:0 0 18px;
}

.ctz-field{
  display:flex; flex-direction:column; gap:6px;
  margin-bottom:12px;
}
.ctz-field span{
  font-size:12.5px; font-weight:600; color:var(--color-ink-muted);
}
.ctz-field input, .ctz-field select{
  height:44px;
  padding:0 14px;
  border:1.5px solid var(--color-border);
  border-radius:10px;
  font-size:15px;
  font-family:var(--font-body);
  background:var(--color-bg);
  color:var(--color-ink);
  transition:border-color var(--motion-fast) var(--ease);
}
.ctz-field input:focus, .ctz-field select:focus{
  outline:none;
  border-color:var(--color-accent);
}
.ctz-field.ctz-error input, .ctz-field.ctz-error select{
  border-color:#D64545;
}

.ctz-pax-row{ display:flex; gap:10px; }
.ctz-field--half{ flex:1; margin-bottom:12px; }

.ctz-next, .ctz-back{
  height:46px;
  border-radius:10px;
  font-size:14.5px; font-weight:700;
  font-family:var(--font-body);
  border:none;
  cursor:pointer;
  transition:background var(--motion-fast) var(--ease), opacity var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);
}
.ctz-next{
  width:100%;
  background:var(--color-accent);
  color:#fff;
}
.ctz-next:hover{ background:var(--color-accent-hover); }
.ctz-next:active{ transform:scale(.98); }
.ctz-next[disabled]{ opacity:.6; cursor:default; transform:none; }
.ctz-next.loading{ position:relative; color:transparent; }
.ctz-next.loading::after{
  content:''; position:absolute; left:50%; top:50%;
  width:18px; height:18px; margin:-9px 0 0 -9px;
  border:2px solid rgba(255,255,255,.5); border-top-color:#fff;
  border-radius:50%;
  animation:ctzSpin .7s linear infinite;
}
@keyframes ctzSpin{ to{ transform:rotate(360deg); } }

.ctz-btnrow{ display:flex; gap:10px; }
.ctz-back{
  flex:0 0 90px;
  background:var(--color-bg-soft);
  color:var(--color-ink);
}
.ctz-back:hover{ background:var(--color-border); }
.ctz-btnrow .ctz-next{ flex:1; }

.ctz-result-icon{
  width:48px; height:48px; margin:4px auto 12px;
  background:#E8F5E9; color:#2E7D32;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:700;
}
:root[data-theme="dark"] .ctz-result-icon{ background:rgba(46,125,50,.2); }

.ctz-panel[data-panel="3"] .ctz-title,
.ctz-panel[data-panel="3"] .ctz-sub{ text-align:center; }

#ctzFolioLine{ font-weight:600; color:var(--color-ink); }

.ctz-actions{
  display:flex; flex-direction:column; gap:8px;
  margin-top:6px;
}
.ctz-action{
  height:46px;
  display:flex; align-items:center; justify-content:center;
  border-radius:10px;
  border:1.5px solid var(--color-border);
  background:var(--color-bg);
  color:var(--color-ink);
  font-size:14.5px; font-weight:600;
  font-family:var(--font-body);
  text-decoration:none;
  cursor:pointer;
  transition:border-color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.ctz-action:hover{ border-color:var(--color-accent); background:var(--color-bg-soft); }
.ctz-action--dl{
  background:var(--color-accent);
  border-color:var(--color-accent);
  color:#fff;
}
.ctz-action--dl:hover{ background:var(--color-accent-hover); border-color:var(--color-accent-hover); }

.ctz-note{
  text-align:center; font-size:12px; color:var(--color-ink-muted);
  margin:12px 0 0;
  min-height:16px;
}

@media (max-width:480px){
  .ctz-modal{ width:100%; }
  .ctz-modal-header{ padding:16px 18px 14px; }
  .ctz-body{ padding:14px 18px 18px; }
}
