/* =========================
   KTiX UI — iOS-like (light)
   ========================= */

:root{
  /* iOS Light Glass */
  --kt-bg: #f5f7fb;
  --kt-surface: rgba(255,255,255,.78);
  --kt-surface-solid: rgba(255,255,255,.92);

  --kt-border: rgba(15,23,42,.10);
  --kt-border-strong: rgba(15,23,42,.18);

  --kt-text: #111827;
  --kt-muted: rgba(17,24,39,.58);

  --kt-primary: #0a84ff;
  --kt-primary-2: #5ac8fa;
  --kt-primary-soft: rgba(10,132,255,.10);

  --kt-danger: #e11d48;
  --kt-danger-soft: rgba(225,29,72,.10);

  --kt-success: #16a34a;
  --kt-success-soft: rgba(22,163,74,.10);

  --kt-glass: linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.58));
  --kt-glass-strong: linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.72));
  --ktix-bg-image: none;

  --kt-radius: 16px;
  --kt-radius-sm: 12px;

  --kt-shadow: 0 20px 60px rgba(15,23,42,.10);
  --kt-shadow-soft: 0 10px 30px rgba(15,23,42,.08);

  --kt-pad: 14px;
  --kt-pad-sm: 12px;
  --kt-tap: 44px;

  --kt-font: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, Arial, "Helvetica Neue", Helvetica, "Apple Color Emoji","Segoe UI Emoji";
}

/* Oculta el engine sin romper JS */
.ktix-engine{
  position:absolute; left:-99999px; top:-99999px;
  width:1px; height:1px; overflow:hidden;
  opacity:0; pointer-events:none;
}

.ktix{
  font-family: var(--kt-font);
  color: var(--kt-text);
  position: relative;
  box-sizing: border-box;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  color-scheme: light;
}

.ktix-ui{
  padding: 15px 6px;
  overflow: visible;
  box-sizing: border-box;
  border-radius: calc(var(--kt-radius) + 2px);
  background:
    radial-gradient(1200px 400px at 12% -10%, rgba(10,132,255,.10), rgba(255,255,255,0)),
    linear-gradient(180deg, #fbfcff 0%, #f2f5fa 100%);

  box-shadow: var(--kt-shadow);
  position: relative;
}

.ktix-ui::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.42), rgba(255,255,255,.42)), var(--ktix-bg-image);
  background-size: cover;
  background-position: center;
  filter: blur(14px);
  opacity: .55;
  transform: scale(1.08);
  border-radius: inherit;
  z-index: 0;
  pointer-events: none;
}

.ktix-ui > *{
  position: relative;
  z-index: 1;
}

.evcal_evdata_row .evcal_evdata_cell >* {
  margin: 0 auto;
}

@media (max-width: 568px) {
  .evcal_eventcard .evcal_evdata_row .evcal_evdata_cell {
    /* padding-left: 0px; */
    /* margin-left: -30px; */
  }
}

/* Loading */
.ktix-ui .ktix-loading{
  padding: 10px 12px;
  border-radius: 999px;
  background: var(--kt-primary-soft);
  color: var(--kt-primary);
  border: 1px solid rgba(10,132,255,.18);
  font-weight: 600;
}

/* Steps */
.ktix-steps{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.ktix-step{ display:none; }
.ktix-step.is-active,
.ktix-step.ktix-step--leave-up,
.ktix-step.ktix-step--leave-down,
.ktix-step.ktix-step--enter-up,
.ktix-step.ktix-step--enter-down{ display:block; }

.ktix-step--leave-up{ animation: ktix-step-out-up .46s cubic-bezier(.16,.84,.35,1) forwards; }
.ktix-step--enter-up{ animation: ktix-step-in-up .46s cubic-bezier(.16,.84,.35,1) forwards; }
.ktix-step--leave-down{ animation: ktix-step-out-down .46s cubic-bezier(.16,.84,.35,1) forwards; }
.ktix-step--enter-down{ animation: ktix-step-in-down .46s cubic-bezier(.16,.84,.35,1) forwards; }

@keyframes ktix-step-in-up{
  from{ opacity:0; transform: translateY(28px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes ktix-step-out-up{
  from{ opacity:1; transform: translateY(0); }
  to{ opacity:0; transform: translateY(-22px); }
}
@keyframes ktix-step-in-down{
  from{ opacity:0; transform: translateY(-22px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes ktix-step-out-down{
  from{ opacity:1; transform: translateY(0); }
  to{ opacity:0; transform: translateY(22px); }
}

.ktix-step-head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  margin:0 0 10px 0;
}
.ktix-step-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:14px;
  color: var(--kt-text);
}
.ktix-step-head-actions{
  display:flex;
  align-items:center;
}
.ktix-step-head-actions .ktix-slot-confirm{
  padding: 8px 14px;
  font-size: 12px;
}
.ktix-step-back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
}
.ktix-step-back-icon{
  font-size: 16px;
  line-height: 1;
}
.ktix-step-back-text{
  font-size: 12px;
  line-height: 1;
}

.ktix-step-actions {
  margin-top: 12px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.ktix-step-actions .ktix-slot-back,
.ktix-step-actions .ktix-slot-cancel{
  margin-right:auto;
}
.ktix-step-actions .ktix-slot-confirm{
  margin-left:auto;
}

/* Cards container */
.ktix-cards{
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Group (iOS settings style) */
.ktix-group{
  padding: var(--kt-pad);
  border-radius: var(--kt-radius);
  background: var(--kt-glass), var(--kt-surface);
  border: 1px solid var(--kt-border);
  box-shadow: var(--kt-shadow-soft);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.ktix-group-title{
  margin: 2px 0 10px 2px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing:.06em;
  text-transform: uppercase;
  color: var(--kt-muted);
}

.ktix-group-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Ticket card */
.ktix-card{
  position: relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  padding:12px 14px;
  border-radius: var(--kt-radius-sm);

  background: var(--kt-glass-strong), var(--kt-surface-solid);
  border: 1px solid var(--kt-border);
  box-shadow: var(--kt-shadow-soft);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);

  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.ktix-card--featured{
  border-color: rgba(22,163,74,.30);
  background: linear-gradient(135deg, rgba(22,163,74,.10), rgba(22,163,74,.03)), var(--kt-surface-solid);
  box-shadow: 0 8px 20px rgba(22,163,74,.10);
}
.ktix-card-main{
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1 1 auto;
  font-size: 18px;
  min-width:0;
}

.ktix-card:hover{
  border-color: var(--kt-border-strong);
  transform: translateY(-1px);
}

.ktix-card-title{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:700;
  font-size: 18px;
  color: var(--kt-text);
}
.ktix-icon-cal{
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:6px;
  border:0;
  color: var(--kt-primary);
  background: transparent;
}
.ktix-icon-cal--alert{
  color:#b45309;
  background: transparent;
}
.ktix-icon-cal svg{
  width:18px;
  height:18px;
}

@media (min-width: 641px){
  .ktix-icon-cal{
    width:28px;
    height:28px;
  }
  .ktix-icon-cal svg{
    width:20px;
    height:20px;
  }
}

.ktix-card-type{
  margin-bottom:4px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  color: var(--kt-primary);
}

.ktix-card-price{
  margin-top:2px;
  font-size:13px;
  color: var(--kt-text);
  opacity: 1;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  padding:4px 10px;
  border-radius:999px;
  background: rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.10);
  box-shadow: var(--kt-shadow-soft);
  width: fit-content;
}
.ktix-price-bubble{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background: var(--kt-primary);
  font-weight:800;
  color: #ffffff;
  box-shadow: 0 3px 10px rgba(15,23,42,0.06);
}

.ktix-card-desc{
  margin-top:4px;
  font-size:13px;
  color: var(--kt-muted);
  opacity: 1;
}

.ktix-card-actions{
  display:flex;
  align-items:center;
  flex-direction:row;
  gap:10px;
  justify-content:flex-start;
}
.ktix-card-actions--stack{
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}
.ktix-qty-controls{
  display:flex;
  align-items:center;
  gap:8px;
}
.ktix-slot-flag {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 8px;
  color: var(--kt-muted);
  text-align: right;
  width: 220px;
  min-width: 220px;
  max-width: 220px;
  flex-direction: row;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 10px;
  padding: 8px;
  background: rgba(15,23,42,.03);
}
.ktix-slot-flag .ktix-icon-cal,
.ktix-slot-flag .ktix-icon-cal--alert{
  color: rgba(17,24,39,.45);
  padding:0;
  width:16px;
  height:16px;
  flex: 0 0 16px;
}
.ktix-slot-flag .ktix-icon-cal svg,
.ktix-slot-flag .ktix-icon-cal--alert svg{
  width:16px;
  height:16px;
}
.ktix-slot-flag-text{
  line-height: 1.2;
  display:inline-block;
  text-align: left;
}

.ktix-card-right{
  display:flex;
  align-items:center;
  gap:8px;
}

.ktix-card-pricebar{ display:none; }

/* Qty controls */
.ktix-q{
  width:34px;
  height:34px;
  border-radius:999px;
  border: 1px solid var(--kt-border);
  background: rgba(255,255,255,.86);
  cursor:pointer;

  font-size:18px;
  line-height:0;
  color: var(--kt-text);

  transition: transform .18s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
  -webkit-tap-highlight-color: transparent;
  position: relative;
}

.ktix-q:hover{
  border-color: rgba(10,132,255,.22);
  background: rgba(10,132,255,.06);
  transform: scale(1.1);
  box-shadow: 0 10px 20px rgba(15,23,42,.08);
}

.ktix-q:active{
  transform: scale(.9);
  animation: ktix-q-wink .22s ease;
}

.ktix-q:focus-visible{
  outline:none;
  box-shadow: 0 0 0 3px rgba(10,132,255,.18);
  border-color: rgba(10,132,255,.35);
}

.ktix-qv{
  min-width:22px;
  text-align:center;
  font-weight:700;
  color: var(--kt-text);
}

@keyframes ktix-q-wink{
  0%{ filter: brightness(1); box-shadow: 0 0 0 rgba(10,132,255,0); }
  50%{ filter: brightness(1.08); box-shadow: 0 0 18px rgba(10,132,255,.20); }
  100%{ filter: brightness(1); box-shadow: 0 0 0 rgba(10,132,255,0); }
}

/* Sold out */
.ktix-soldout{
  opacity:1;
  font-weight:700;
  color: var(--kt-danger);
}

.ktix-hide-stock{ display:none; }

/* Footer */
.ktix-footer{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:12px;
}

.ktix-summary{
  border: 1px solid var(--kt-border);
  background: var(--kt-glass), var(--kt-surface);
  border-radius: var(--kt-radius);
  padding: 10px 12px;
  display:flex;
  flex-direction:column;
  gap:6px;
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}
.ktix-summary-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  color: var(--kt-text);
}
.ktix-summary-row span:last-child{
  font-weight:700;
}
.ktix-summary-total{
  border-top: 1px dashed var(--kt-border);
  padding-top:6px;
  margin-top:2px;
}

.ktix-summary-discount-row{
  color: #15803d;
}

.ktix-summary-discount{
  font-weight:700;
}

.ktix-summary-discount-info{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  min-width:0;
}

.ktix-summary-discount-title{
  font-weight:700;
  color:#15803d;
}

.ktix-summary-discount-desc{
  font-size:11px;
  font-weight:600;
  color:var(--kt-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:220px;
}

.ktix-discount{
  display:flex;
  flex-direction:column;
  gap:8px;
  border:1px solid var(--kt-border);
  background: var(--kt-glass), var(--kt-surface);
  border-radius: var(--kt-radius-sm);
  padding:10px 12px;
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
}

.ktix-discount-label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color: var(--kt-muted);
}

.ktix-discount-row{
  display:flex;
  align-items:center;
  gap:8px;
}

.ktix-discount-input{
  flex:1 1 auto;
  min-width:0;
  min-height:38px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--kt-border);
  background: rgba(255,255,255,.88);
  color: var(--kt-text);
  outline:none;
  font-size:13px;
  text-transform:uppercase;
}

.ktix-discount-input::placeholder{
  color: var(--kt-muted);
  text-transform:none;
}

.ktix-discount-input:focus{
  border-color: rgba(10,132,255,.35);
  box-shadow: 0 0 0 3px rgba(10,132,255,.12);
}

.ktix-discount-apply{
  border:1px solid rgba(10,132,255,.24);
  border-radius:999px;
  min-height:38px;
  padding:0 14px;
  cursor:pointer;
  font-weight:700;
  background: var(--kt-primary-soft);
  color: var(--kt-primary);
  transition: transform .08s ease, filter .12s ease;
  white-space:nowrap;
}

.ktix-discount-apply:hover{
  filter: brightness(.98);
}

.ktix-discount-apply:active{
  transform: scale(.98);
}

.ktix-discount-apply:disabled{
  opacity:.6;
  cursor:not-allowed;
}

.ktix-discount-msg{
  font-size:12px;
  color: var(--kt-muted);
}

.ktix-discount-msg[hidden]{
  display:none !important;
}

.ktix-discount-msg.is-success{
  color:#15803d;
}

.ktix-discount-msg.is-error{
  color:#b91c1c;
}

.ktix-gift-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--kt-border);
  background: var(--kt-glass), var(--kt-surface);
  border-radius: var(--kt-radius-sm);
  padding:10px 12px;
  font-size:13px;
  font-weight:600;
  color: var(--kt-text);
  cursor:pointer;
  user-select:none;
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
}

.ktix-gift-check{
  width:18px;
  height:18px;
  margin:0;
  accent-color: var(--kt-primary);
}

.ktix-gift-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  color: var(--kt-primary);
  pointer-events:none;
}

.ktix-gift-icon svg{
  display:block;
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.ktix-gift-text{
  line-height:1.2;
}

/* Primary button */
.ktix-addall{
  border:1px solid rgba(10,132,255,.24);
  border-radius:999px;
  padding:12px 16px;
  cursor:pointer;

  font-weight:700;
  background: var(--kt-primary);
  color:#ffffff;

  box-shadow: 0 10px 22px rgba(10,132,255,.18);
  transition: transform .08s ease, box-shadow .12s ease, filter .12s ease;
  min-height: var(--kt-tap);
  -webkit-tap-highlight-color: transparent;
}

.evocard_box {
  background-color: transparent !important;
  border-radius: 20px;
}

.ktix-addall:hover{
  filter: brightness(.98);
  box-shadow: 0 14px 28px rgba(10,132,255,.22);
}

.ktix-addall:active{ transform: scale(.98); }

.ktix-addall:focus-visible{
  outline:none;
  box-shadow: 0 0 0 4px rgba(10,132,255,.16), 0 14px 28px rgba(10,132,255,.22);
}

.ktix-edit-slot-change{
  align-self:center;
  border:1px solid var(--kt-border);
  border-radius:999px;
  padding:10px 14px;
  background: transparent;
  color: var(--kt-text);
  font-weight:600;
  cursor:pointer;
  transition: background .12s ease, border-color .12s ease, transform .08s ease;
}

.ktix-edit-slot-change:hover{
  background: rgba(15,23,42,0.04);
  border-color: rgba(10,132,255,.24);
}

.ktix-edit-slot-change:active{
  transform: scale(.98);
}

.ktix-edit-slot-change[hidden]{
  display:none !important;
}

.ktix-ui-msg{
  opacity:1;
  font-size:13px;
  color: var(--kt-muted);
  text-align:center;
}

/* Overlay (iOS glass sheet) */
.ktix-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,0.52);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  z-index:5;
  color: var(--kt-text);
  text-align:center;
  padding:20px;
}

.ktix-overlay-box{
  background: var(--kt-glass-strong), var(--kt-surface-solid);
  border-radius: 20px;
  padding: 16px 18px;
  min-width: 240px;
  max-width: 420px;
  border: 1px solid var(--kt-border);
  box-shadow: var(--kt-shadow);

  display:flex;
  flex-direction:column;
  gap:12px;
}

.ktix-overlay .ktix-spinner{
  margin: 0 auto 4px auto;
  width:28px; height:28px;
  border-radius:50%;
  border:3px solid rgba(15,23,42,.10);
  border-top-color: rgba(10,132,255,.85);
  animation: ktix-spin 0.8s linear infinite;
}

@keyframes ktix-spin{ to { transform: rotate(360deg); } }

.ktix-blur > .ktix-ui{
  filter: blur(3px);
  pointer-events:none;
}

/* Slots */
.ktix-slot-times{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ktix-review,
.ktix-slot-final{
  margin-top: 12px;
  padding: var(--kt-pad);
  border:1px solid var(--kt-border);
  border-radius: var(--kt-radius);
  background: var(--kt-glass), var(--kt-surface);
  box-shadow: var(--kt-shadow-soft);
  display:flex;
  flex-direction:column;
  gap:8px;
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}
.ktix-slot-final-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-weight:700;
}
.ktix-slot-final-name .ktix-slot-final-value{
  font-weight:800;
}
.ktix-slot-final-label{
  color: var(--kt-muted);
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.ktix-slot-final-value{
  color: var(--kt-text);
}
.ktix-bubble-slot,
.ktix-bubble-date{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background: var(--kt-primary-soft);
  border:1px solid rgba(10,132,255,.20);
  color: var(--kt-primary);
  font-weight:800;
}
.ktix-bubble-date{
  background: rgba(15,23,42,.04);
  border-color: rgba(15,23,42,.10);
  color: var(--kt-text);
}

/* Cards por entrada en resumen final */
.ktix-slot-card{
  border:1px solid var(--kt-border);
  border-radius: var(--kt-radius-sm);
  padding:10px 12px;
  background: var(--kt-glass-strong), var(--kt-surface-solid);
  box-shadow: var(--kt-shadow-soft);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ktix-slot-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:8px;
}
.ktix-slot-card-desc{
  color: var(--kt-muted);
  font-size: 13px;
}
.ktix-slot-card-name{
  font-weight:800;
  color: var(--kt-text);
  display:flex;
  align-items:center;
  gap:6px;
  font-size:18px;
}
.ktix-slot-card-name svg{
  width:16px;
  height:16px;
  flex: 0 0 16px;
}
.ktix-slot-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  font-weight:700;
  color: var(--kt-muted);
}
.ktix-slot-card-meta--final{
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.ktix-slot-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.ktix-slot-card-pricewrap{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  align-items:center;
}
.ktix-slot-meta-date,
.ktix-slot-meta-session{
  font-weight:600;
  color: var(--kt-text);
}
.ktix-slot-meta-price{
  color: var(--kt-text);
}
.ktix-slot-meta-sub{
  color: var(--kt-text);
  font-weight:800;
}

/* Burbujas precio en resumen final */
.ktix-bubble-price,
.ktix-bubble-total{
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:6px 10px;
  border-radius:10px;
  background: rgba(15,23,42,0.03);
  border:1px solid rgba(15,23,42,0.08);
  min-width:90px;
  box-shadow: var(--kt-shadow-soft);
}
.ktix-bubble-total{
  background: rgba(15,23,42,0.05);
  border-color: rgba(15,23,42,0.12);
}
.ktix-bubble-label{
  font-size:11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--kt-muted);
  margin-bottom:2px;
}
.ktix-bubble-val{
  font-weight:800;
  color: var(--kt-text);
  font-size:16px;
}

/* Note / message */
.ktix-slot-days-msg{
  margin-bottom:10px;
  padding:12px 12px;
  border-radius: var(--kt-radius);
  background: rgba(245,158,11,.10);
  border:1px solid rgba(245,158,11,.26);
  box-shadow:none;
  font-weight:600;
  color: #92400e;
  display:flex;
  align-items:flex-start;
  gap:8px;
  transition: opacity .2s ease, max-height .2s ease, margin .2s ease, padding .2s ease, border-width .2s ease;
  max-height: 160px;
  opacity: 1;
}
.ktix-slot-days-msg.ktix-msg-hidden{
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
  border-width: 0;
  overflow: hidden;
}
.ktix-msg-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius: 50%;
  background: #f59e0b;
  color: #fff;
  font-weight:800;
  font-size:12px;
  line-height:1;
  margin-top:2px;
  flex: 0 0 18px;
}
.ktix-msg-text{
  flex: 1 1 auto;
  min-width: 0;
}

/* Step 3 container */
.ktix-step3 .ktix-slot-times{
  padding: var(--kt-pad);
  border:1px solid var(--kt-border);
  border-radius: var(--kt-radius);
  background: var(--kt-glass), var(--kt-surface);
  box-shadow: var(--kt-shadow-soft);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.ktix-slot-legend{
  margin-top: 8px;
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  font-size: 11px;
  color: var(--kt-muted);
}
.ktix-slot-legend-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.ktix-slot-legend-dot{
  width:20px;
  height:20px;
  border-radius:20%;
  display:inline-block;
  background: #9ca3af;
}
.ktix-slot-legend-dot--gray{ background: #9ca3af; }
.ktix-slot-legend-dot--blue{ background: #3b82f6; }
.ktix-slot-legend-dot--orange{ background: #f59e0b; }
.ktix-slot-legend-dot--red{ background: #ef4444; }

/* Slot summary */
.ktix-slot-summary{
  padding: var(--kt-pad);
  border-radius: var(--kt-radius);
  border:1px solid var(--kt-border);
  background: var(--kt-glass), var(--kt-surface);
  box-shadow: var(--kt-shadow-soft);
  margin-top: 8px;
  display:flex;
  flex-direction:column;
  gap:6px;
  font-weight:600;
  color: var(--kt-text);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.ktix-slot-summary-title{
  font-size:12px;
  letter-spacing:.06em;
  text-transform: uppercase;
  color: var(--kt-muted);
  font-weight:700;
}

.ktix-slot-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ktix-slot-row-left{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.ktix-slot-row-right{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color: var(--kt-muted);
}
.ktix-slot-price{ opacity:.75; }
.ktix-slot-sub{ font-weight:800; color: var(--kt-text); }
.ktix-slot-meta-label{
  display:block;
  font-size:11px;
  color: var(--kt-muted);
  font-weight:600;
  margin-bottom:2px;
}
.ktix-slot-total{
  border-top:1px solid var(--kt-border);
  padding-top:6px;
  margin-top:6px;
  font-weight:800;
  display:flex;
  justify-content:flex-end;
  gap:6px;
}

.ktix-slot-totals{
  border-top:1px solid var(--kt-border);
  padding-top:6px;
  margin-top:6px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.ktix-slot-total-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  color: var(--kt-muted);
}
.ktix-slot-total-row strong{
  color: var(--kt-text);
}
.ktix-slot-total-row--sum{
  font-size:13px;
  font-weight:800;
  color: var(--kt-text);
}
.ktix-slot-total-row--sum strong{
  font-size:32px;
  line-height:1.1;
}
.ktix-slot-total-label{
  display:block;
  font-size:11px;
  color: var(--kt-muted);
  font-weight:600;
  margin-bottom:2px;
}

/* Qty badge */
.ktix-qty-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  padding:4px 8px;
  border-radius:999px;
  background: var(--kt-primary);
  color:#fff;
  font-weight:700;
  font-size:12px;
  margin-left:0;
  box-shadow:none;
}
.ktix-qty-label{
  font-size:11px;
  color: var(--kt-muted);
  font-weight:600;
  margin-right:4px;
}
.ktix-qty-wrap{
  display:inline-flex;
  align-items:center;
  gap:4px;
}

/* Tags */
.ktix-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(15,23,42,.04);
  color: var(--kt-text);
  font-size:11px;
  font-weight:700;
  border:1px solid rgba(15,23,42,.08);
}

.ktix-tag--nofecha{
  background: var(--kt-danger-soft);
  border-color: rgba(225,29,72,.18);
  color: var(--kt-danger);
}

/* ===== Calendario (iOS, con aire) ===== */

.ktix-slot-calendar{
  margin-top: 8px;
  padding: 18px;
  border-radius: var(--kt-radius);
  border: 1px solid var(--kt-border);
  background: var(--kt-glass), var(--kt-surface);
  box-shadow: var(--kt-shadow-soft);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.ktix-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.ktix-cal-nav{
  border: 1px solid rgba(10,132,255,.18);
  background: var(--kt-primary-soft);
  color: var(--kt-primary);
  border-radius: 999px;
  padding: 8px 15px;
  min-height: 36px;
  cursor:pointer;
  font-weight: 700;
  transition: transform .08s ease, filter .12s ease;
  -webkit-tap-highlight-color: transparent;
}

.ktix-cal-nav:hover{ filter: brightness(.98); }
.ktix-cal-nav:active{ transform: scale(.98); }

.ktix-cal-month{
  font-weight: 700;
  text-transform: capitalize;
  letter-spacing: .01em;
}

.ktix-cal-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap: 10px;
}

.ktix-cal-weekday{
  text-align:center;
  font-size: 11px;
  line-height: 1;
  padding: 6px 0 10px;
  color: var(--kt-muted);
  font-weight: 600;
}

.ktix-cal-day{
  min-height: 44px;
  padding: 8px 0;
  border:1px solid var(--kt-border);
  color: var(--kt-text);
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  background: rgba(255,255,255,.86);
  transition: transform .08s ease, border-color .12s ease, background .12s ease;
  user-select: none;
}

.ktix-cal-day:hover{
  border-color: rgba(10,132,255,.22);
  background: rgba(10,132,255,.06);
}

.ktix-cal-day:active{ transform: scale(.98); }

.ktix-cal-day--disabled{
  opacity:.35;
  cursor:not-allowed;
}

.ktix-cal-day--empty{
  background: transparent;
  border: none;
  cursor: default;
}

.ktix-cal-day--sel{
  border-color: rgba(10,132,255,.42);
  background: rgba(10,132,255,.14);
}
.ktix-cal-day--soldout{
  border-color: rgba(225,29,72,.28);
  background: rgba(225,29,72,.10);
  color: #b91c1c;
}
.ktix-cal-day--hasslots{
  border-color: rgba(10,132,255,.42);
  background: rgba(10,132,255,.08);
  font-weight: 800;
  color: var(--kt-text);
  box-shadow: inset 0 0 0 1px rgba(10,132,255,.16);
}
.ktix-cal-day--noslots{
  opacity:.45;
  filter: saturate(.6);
}

.ktix-cal-attn{
  animation: ktix-cal-blink 1.2s ease-in-out 2;
}

@keyframes ktix-cal-blink{
  0%{
    box-shadow: 0 0 0 0 rgba(10,132,255,.0);
  }
  25%{
    box-shadow: 0 0 0 3px rgba(10,132,255,.18);
  }
  50%{
    box-shadow: 0 0 0 0 rgba(10,132,255,.0);
  }
  75%{
    box-shadow: 0 0 0 3px rgba(10,132,255,.18);
  }
  100%{
    box-shadow: 0 0 0 0 rgba(10,132,255,.0);
  }
}

/* Slot buttons */
.ktix-slot-btn{
  border: 1px solid rgba(10,132,255,.18);
  background: var(--kt-primary-soft);
  color: var(--kt-primary);
  padding: 10px 12px;
  border-radius: 999px;
  cursor:pointer;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:6px;
  transition: transform .08s ease, filter .12s ease;
  min-height: var(--kt-tap);
  -webkit-tap-highlight-color: transparent;
}

.ktix-slot-btn:hover{ filter: brightness(.98); }
.ktix-slot-btn:active{ transform: scale(.98); }
.ktix-slot-btn--sel{
  border-color: rgba(22,163,74,.35);
  background: rgba(22,163,74,.10);
  color: #15803d;
  box-shadow: 0 0 0 2px rgba(22,163,74,.12) inset;
}
.ktix-slot-btn--sel::after{
  content: "✓";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(22,163,74,.12);
  color: #166534;
  font-size: 12px;
  font-weight: 800;
}
.ktix-slot-btn--sold{
  border-color: rgba(225,29,72,.24);
  background: var(--kt-danger-soft);
  color: #b91c1c;
  cursor:not-allowed;
  opacity: .7;
}
.ktix-slot-btn--past{
  border-color: rgba(15,23,42,.10);
  background: rgba(15,23,42,.03);
  color: rgba(17,24,39,.40);
  cursor:not-allowed;
  opacity: .65;
}
.ktix-slot-btn--ins{
  border-color: rgba(220,38,38,.28);
  background: rgba(220,38,38,.10);
  color: #b91c1c;
  cursor:not-allowed;
  box-shadow: 0 0 0 1px rgba(220,38,38,.10) inset;
}
.ktix-slot-btn--low{
  border-color: rgba(245,158,11,.34);
  background: rgba(245,158,11,.10);
  color: #b45309;
}

/* Slot actions */
.ktix-slot-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

.ktix-slot-cancel,
.ktix-slot-back{
  border: 1px solid rgba(10,132,255,.18);
  background: var(--kt-primary-soft);
  color: var(--kt-primary);
  padding: 10px 12px;
  margin-top: 5px;
  border-radius: 999px;
  cursor:pointer;
  font-weight:700;
  transition: transform .08s ease, filter .12s ease;
  min-height: var(--kt-tap);
  -webkit-tap-highlight-color: transparent;
}

.ktix-slot-cancel:hover,
.ktix-slot-back:hover{ filter: brightness(.98); }

.ktix-slot-cancel:active,
.ktix-slot-back:active{ transform: scale(.98); }

.ktix-slot-continue,
.ktix-slot-confirm{
  border:1px solid rgba(10,132,255,.24);
  border-radius:999px;
  padding:10px 16px;
  cursor:pointer;
  font-weight:700;
  background: var(--kt-primary);
  color:#ffffff;
  box-shadow: 0 8px 18px rgba(10,132,255,.16);
  transition: transform .08s ease, box-shadow .12s ease, filter .12s ease;
  min-height: var(--kt-tap);
  -webkit-tap-highlight-color: transparent;
}
.ktix-slot-confirm:hover{
  filter: brightness(.98);
  box-shadow: 0 12px 22px rgba(10,132,255,.20);
}
.ktix-slot-confirm:active{ transform: scale(.98); }
.ktix-slot-confirm:disabled{
  opacity:.55;
  cursor:not-allowed;
  filter: grayscale(40%);
  box-shadow:none;
}

/* Badges */
.ktix-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.08);
  background: rgba(15,23,42,.04);
  font-size:11px;
  font-weight:800;
  color: var(--kt-text);
}

.ktix-badge--soldout{
  border-color: rgba(225,29,72,.18);
  background: var(--kt-danger-soft);
  color: var(--kt-danger);
}

/* Responsive */
@media (max-width: 640px){
  .ktix-card{ flex-direction:column; align-items:flex-start; }
  .ktix-card-actions{ width:100%; justify-content:flex-start; }
  .ktix-card-actions--stack{ align-items:flex-start; }
  .ktix-slot-flag{
    width: 100%;
    min-width: 0;
    max-width: 100%;
    text-align:left;
    flex-direction:row;
  }

  .ktix-slot-calendar{ padding: 14px; }
  .ktix-cal-grid{ gap: 8px; }
  .ktix-cal-day{ min-height: 42px; }
}

@media (max-width: 568px){
  .evcal_eventcard .evcal_evdata_row .evcal_evdata_cell{
    margin-left: 0 !important;
  }
}

@media (max-width: 480px){
  .evcal_evdata_row{
    padding: 0 !important;
  }
}

/* Iconos pequeños para resumen */
.ktix-bubble-slot .ktix-ico-clock-sm,
.ktix-bubble-date .ktix-ico-cal-sm{
  margin-right:6px;
}
.ktix-ico-ticket,
.ktix-ico-cal-sm,
.ktix-ico-clock-sm{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: var(--kt-primary);
  width:auto;
  height:auto;
  line-height:1;
}
.ktix-slot-card-name svg{
  width:20px;
  height:20px;
  flex-basis:20px;
}
