.setf-tariff{--setf-primary:#2787b7;--setf-past:#9aa2aa;--setf-line:#dfe4e8;--setf-radius:0px;font-family:inherit;color:inherit;width:100%}
.setf-front-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:0 0 14px}.setf-front-head h3{margin:0;font-size:1.25rem}.setf-front-head p{margin:4px 0 0;color:#6b7280;font-size:.92rem}
.setf-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}.setf-table{width:100%;border-collapse:collapse;table-layout:fixed}.setf-table col.setf-category-col{width:28%}.setf-table col.setf-price-col{width:auto}.setf-table th,.setf-table td{padding:14px 12px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--setf-line);box-sizing:border-box}.setf-table thead th{font-size:.92rem;font-weight:700;position:relative}.setf-table thead th:first-child,.setf-table tbody th{text-align:left}.setf-table tbody th strong{display:block}.setf-table tbody th small{display:block;margin-top:4px;color:#6b7280;font-weight:400}.setf-table thead th span,.setf-table thead th small{display:block}.setf-table thead th small{margin-top:4px;font-weight:400;color:#6b7280;font-size:.78rem;line-height:1.25}.setf-amount{font-weight:700;white-space:nowrap}.setf-col-past{color:var(--setf-past)!important}.setf-col-past .setf-amount{opacity:.9}

/* 1. Columna actual: solo la vigente queda encuadrada. Sin curvas por defecto. */
.setf-style-current-border .setf-table .setf-col-current{border-left:2px solid var(--setf-primary);border-right:2px solid var(--setf-primary);background:color-mix(in srgb,var(--setf-primary) 4%,transparent)}
.setf-style-current-border .setf-table thead .setf-col-current{border-top:2px solid var(--setf-primary);border-bottom-color:var(--setf-line);border-radius:var(--setf-radius) var(--setf-radius) 0 0}.setf-style-current-border .setf-table tbody tr:last-child .setf-col-current{border-bottom:2px solid var(--setf-primary);border-radius:0 0 var(--setf-radius) var(--setf-radius)}
.setf-style-current-border .setf-table .setf-col-current .setf-amount{color:var(--setf-primary)}

/* 2. HR de color debajo del encabezado. */
.setf-style-line .setf-table thead th{border-bottom:3px solid var(--setf-primary)}.setf-style-line .setf-table .setf-col-current .setf-amount,.setf-style-line .setf-table thead .setf-col-current span{color:var(--setf-primary)}

/* 3. Línea superior fuerte, cuerpo limpio. */
.setf-style-topline .setf-table{border-top:4px solid var(--setf-primary)}.setf-style-topline .setf-table thead th{background:color-mix(in srgb,var(--setf-primary) 5%,transparent)}.setf-style-topline .setf-table thead .setf-col-current{background:color-mix(in srgb,var(--setf-primary) 16%,transparent)}.setf-style-topline .setf-table tbody .setf-col-current{background:color-mix(in srgb,var(--setf-primary) 6%,transparent)}

/* 4. Minimal. */
.setf-style-minimal .setf-table th,.setf-style-minimal .setf-table td{border-bottom:1px solid var(--setf-line)}.setf-style-minimal .setf-table thead th{font-weight:600}.setf-style-minimal .setf-table .setf-col-current .setf-amount,.setf-style-minimal .setf-table thead .setf-col-current span{color:var(--setf-primary)}.setf-style-minimal .setf-table thead .setf-col-current::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:8px solid var(--setf-primary)}

/* 5. Header sólido. */
.setf-style-solid .setf-table thead th{background:var(--setf-primary);color:#fff;border-bottom:0}.setf-style-solid .setf-table thead th small{color:rgba(255,255,255,.82)}.setf-style-solid .setf-table thead th:first-child{border-radius:var(--setf-radius) 0 0 0}.setf-style-solid .setf-table thead th:last-child{border-radius:0 var(--setf-radius) 0 0}.setf-style-solid .setf-table thead .setf-col-current{background:color-mix(in srgb,var(--setf-primary) 78%,#000 22%);color:#fff}.setf-style-solid .setf-table thead .setf-col-current small{color:rgba(255,255,255,.9)}.setf-style-solid .setf-table tbody .setf-col-current{background:color-mix(in srgb,var(--setf-primary) 8%,transparent)}

/* 6. Grid. */
.setf-style-grid .setf-table{border:1px solid var(--setf-line);border-radius:var(--setf-radius);overflow:hidden}.setf-style-grid .setf-table th,.setf-style-grid .setf-table td{border-right:1px solid var(--setf-line);border-bottom:1px solid var(--setf-line)}.setf-style-grid .setf-table tr>*:last-child{border-right:0}.setf-style-grid .setf-table tbody tr:last-child>*{border-bottom:0}.setf-style-grid .setf-table .setf-col-current{box-shadow:inset 0 2px 0 var(--setf-primary),inset 0 -2px 0 var(--setf-primary)}

.setf-mobile-vertical,.setf-mobile-current{display:none!important}.setf-mobile-card{border:1px solid var(--setf-line);border-radius:var(--setf-radius);padding:14px;margin-bottom:12px;background:#fff}.setf-mobile-card header{padding-bottom:8px}.setf-mobile-card header strong,.setf-mobile-card header small{display:block}.setf-mobile-card header small{margin-top:4px;color:#6b7280}.setf-mobile-rate{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--setf-line)}.setf-mobile-rate span strong,.setf-mobile-rate span small{display:block}.setf-mobile-rate span small{margin-top:2px;color:#6b7280;font-weight:400}.setf-mobile-rate b{white-space:nowrap}.setf-mobile-rate.setf-col-current{margin-left:-14px;margin-right:-14px;padding-left:12px;padding-right:14px;border-left:3px solid var(--setf-primary);background:color-mix(in srgb,var(--setf-primary) 6%,transparent)}.setf-mobile-rate.setf-col-current b{color:var(--setf-primary)}
.setf-current-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:3px solid var(--setf-primary)}.setf-current-caption span{font-size:.8rem;color:#6b7280;text-align:right}.setf-current-table{width:100%;border-collapse:collapse;table-layout:fixed}.setf-current-table th,.setf-current-table td{padding:12px 8px;border-bottom:1px solid var(--setf-line)}.setf-current-table thead th{text-transform:none;font-size:.83rem}.setf-current-table th{text-align:left}.setf-current-table td{text-align:right}.setf-current-table tbody th small{display:block;color:#6b7280;font-weight:400;margin-top:3px}.setf-current-table tbody td b{color:var(--setf-primary);white-space:nowrap}.setf-no-current{padding:14px;border:1px solid var(--setf-line);color:#6b7280}

@media(max-width:640px){
  .setf-front-head h3{font-size:1.1rem}
  .setf-mobile-mode-vertical .setf-desktop-output{display:none!important}.setf-mobile-mode-vertical .setf-mobile-vertical{display:block!important}
  .setf-mobile-mode-current .setf-desktop-output{display:none!important}.setf-mobile-mode-current .setf-mobile-current{display:block!important}
  .setf-mobile-mode-table .setf-desktop-output{display:block!important}.setf-mobile-mode-table .setf-table{min-width:680px}
}
/* El generador puede forzar la vista celular aunque el navegador sea ancho. */
.setf-force-mobile.setf-mobile-mode-vertical .setf-desktop-output{display:none!important}.setf-force-mobile.setf-mobile-mode-vertical .setf-mobile-vertical{display:block!important}
.setf-force-mobile.setf-mobile-mode-current .setf-desktop-output{display:none!important}.setf-force-mobile.setf-mobile-mode-current .setf-mobile-current{display:block!important}
.setf-force-mobile.setf-mobile-mode-table .setf-desktop-output{display:block!important}.setf-force-mobile.setf-mobile-mode-table .setf-table{min-width:680px}

/* v0.4 — Los estilos del template también se reflejan en las salidas móviles. */
/* Vertical: cada template conserva su lenguaje visual. */
.setf-style-current-border .setf-mobile-card{border-color:var(--setf-line)}
.setf-style-current-border .setf-mobile-rate.setf-col-current{position:relative;border:2px solid var(--setf-primary);margin:7px -8px;padding:10px 12px;background:color-mix(in srgb,var(--setf-primary) 4%,transparent)}

.setf-style-line .setf-mobile-card{border:0;border-radius:0;padding-left:0;padding-right:0}
.setf-style-line .setf-mobile-card header{border-bottom:3px solid var(--setf-primary);padding:0 2px 10px}
.setf-style-line .setf-mobile-rate{padding-left:2px;padding-right:2px}
.setf-style-line .setf-mobile-rate.setf-col-current{margin-left:0;margin-right:0;border-left:0;background:transparent}
.setf-style-line .setf-mobile-rate.setf-col-current b,.setf-style-line .setf-mobile-rate.setf-col-current strong{color:var(--setf-primary)}

.setf-style-topline .setf-mobile-card{border-top:4px solid var(--setf-primary)}
.setf-style-topline .setf-mobile-card header{background:color-mix(in srgb,var(--setf-primary) 6%,transparent);margin:-14px -14px 8px;padding:12px 14px}
.setf-style-topline .setf-mobile-rate.setf-col-current{border-left:0;background:color-mix(in srgb,var(--setf-primary) 13%,transparent)}
.setf-style-topline .setf-mobile-rate.setf-col-current strong,.setf-style-topline .setf-mobile-rate.setf-col-current b{color:color-mix(in srgb,var(--setf-primary) 78%,#000 22%)}

.setf-style-minimal .setf-mobile-card{border:0;border-radius:0;padding:0;margin-bottom:22px;background:transparent}
.setf-style-minimal .setf-mobile-card header{padding:0 0 9px;border-bottom:1px solid var(--setf-line)}
.setf-style-minimal .setf-mobile-rate{position:relative}
.setf-style-minimal .setf-mobile-rate.setf-col-current{margin-left:0;margin-right:0;padding-left:0;padding-right:0;border-left:0;background:transparent}
.setf-style-minimal .setf-mobile-rate.setf-col-current::before{content:"";position:absolute;top:0;left:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--setf-primary)}
.setf-style-minimal .setf-mobile-rate.setf-col-current strong,.setf-style-minimal .setf-mobile-rate.setf-col-current b{color:var(--setf-primary)}

.setf-style-solid .setf-mobile-card{overflow:hidden;padding:0}
.setf-style-solid .setf-mobile-card header{background:var(--setf-primary);color:#fff;padding:12px 14px}
.setf-style-solid .setf-mobile-card header small{color:rgba(255,255,255,.82)}
.setf-style-solid .setf-mobile-rate{padding-left:14px;padding-right:14px}
.setf-style-solid .setf-mobile-rate.setf-col-current{margin:0;border-left:0;background:color-mix(in srgb,var(--setf-primary) 12%,transparent)}
.setf-style-solid .setf-mobile-rate.setf-col-current strong,.setf-style-solid .setf-mobile-rate.setf-col-current b{color:color-mix(in srgb,var(--setf-primary) 75%,#000 25%)}

.setf-style-grid .setf-mobile-card{padding:0;overflow:hidden}
.setf-style-grid .setf-mobile-card header{padding:12px 14px;background:color-mix(in srgb,var(--setf-primary) 5%,transparent);border-bottom:1px solid var(--setf-line)}
.setf-style-grid .setf-mobile-rate{margin:0;padding:11px 14px;border-top:0;border-bottom:1px solid var(--setf-line)}
.setf-style-grid .setf-mobile-rate:last-child{border-bottom:0}
.setf-style-grid .setf-mobile-rate.setf-col-current{border-left:3px solid var(--setf-primary);box-shadow:inset 0 1px 0 var(--setf-primary),inset 0 -1px 0 var(--setf-primary)}

/* Solo tarifa actual: también responde a cada template. */
.setf-mobile-current{border-radius:var(--setf-radius);overflow:hidden}
.setf-style-current-border .setf-mobile-current{border:2px solid var(--setf-primary);padding:0 12px;background:#fff}
.setf-style-current-border .setf-current-caption{border-bottom:1px solid var(--setf-line);color:var(--setf-primary)}

.setf-style-line .setf-mobile-current{background:#fff}
.setf-style-line .setf-current-caption{border-bottom:3px solid var(--setf-primary)}
.setf-style-line .setf-current-table tbody td b{color:var(--setf-primary)}

.setf-style-topline .setf-mobile-current{border-top:4px solid var(--setf-primary);background:#fff}
.setf-style-topline .setf-current-caption{padding:12px;background:color-mix(in srgb,var(--setf-primary) 14%,transparent);border-bottom:1px solid var(--setf-line);color:color-mix(in srgb,var(--setf-primary) 76%,#000 24%)}
.setf-style-topline .setf-current-table th,.setf-style-topline .setf-current-table td{padding-left:12px;padding-right:12px}

.setf-style-minimal .setf-mobile-current{border-radius:0;background:transparent}
.setf-style-minimal .setf-current-caption{position:relative;border-bottom:1px solid var(--setf-line);padding-top:15px}
.setf-style-minimal .setf-current-caption::before{content:"";position:absolute;top:0;left:12px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--setf-primary)}
.setf-style-minimal .setf-current-caption strong,.setf-style-minimal .setf-current-table tbody td b{color:var(--setf-primary)}

.setf-style-solid .setf-mobile-current{border:1px solid var(--setf-line);background:#fff}
.setf-style-solid .setf-current-caption{padding:12px 14px;background:color-mix(in srgb,var(--setf-primary) 78%,#000 22%);color:#fff;border-bottom:0}
.setf-style-solid .setf-current-caption span{color:rgba(255,255,255,.86)}
.setf-style-solid .setf-current-table thead th{background:var(--setf-primary);color:#fff;border-bottom:0}
.setf-style-solid .setf-current-table th,.setf-style-solid .setf-current-table td{padding-left:14px;padding-right:14px}

.setf-style-grid .setf-mobile-current{border:1px solid var(--setf-line);background:#fff}
.setf-style-grid .setf-current-caption{padding:11px 12px;border-bottom:2px solid var(--setf-primary);background:color-mix(in srgb,var(--setf-primary) 5%,transparent)}
.setf-style-grid .setf-current-table th,.setf-style-grid .setf-current-table td{border-right:1px solid var(--setf-line);padding-left:12px;padding-right:12px}
.setf-style-grid .setf-current-table tr>*:last-child{border-right:0}

/* v0.8 — período Desde/Hasta explícito y precios formateados junto a la moneda. */
.setf-stage-dates{
  display:flex!important;
  flex-direction:column;
  gap:2px;
  margin-top:5px!important;
  line-height:1.25;
}
.setf-stage-dates span{display:block}
.setf-stage-dates em{
  font-style:normal;
  font-weight:700;
  opacity:.78;
}
.setf-table .setf-amount,
.setf-mobile-rate>b,
.setf-current-table td b,
.setf-current-price{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.setf-mobile-rate small span{display:block}

/* v0.9 — el encabezado muestra sólo el nombre editable; el período queda bajo demanda. */
.setf-stage-title-line{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:6px;
  max-width:100%;
  line-height:1.25;
}
.setf-table thead th .setf-stage-title-line>span{
  display:inline!important;
}
.setf-date-info{
  display:inline-grid;
  place-items:center;
  flex:0 0 18px;
  width:18px;
  height:18px;
  min-width:18px;
  min-height:18px;
  padding:0;
  margin:0;
  border:1px solid color-mix(in srgb,var(--setf-primary) 50%,var(--setf-line));
  border-radius:50%;
  background:#fff;
  color:var(--setf-primary);
  font:700 11px/1 Arial,sans-serif;
  cursor:pointer;
  vertical-align:middle;
  box-sizing:border-box;
}
.setf-date-info:hover,.setf-date-info:focus-visible{
  outline:none;
  background:var(--setf-primary);
  border-color:var(--setf-primary);
  color:#fff;
}
.setf-style-solid .setf-table thead .setf-date-info{
  border-color:rgba(255,255,255,.58);
  background:rgba(255,255,255,.12);
  color:#fff;
}
.setf-style-solid .setf-table thead .setf-date-info:hover,
.setf-style-solid .setf-table thead .setf-date-info:focus-visible{
  background:#fff;
  color:var(--setf-primary);
}
.setf-current-caption{
  justify-content:flex-start;
}
.setf-current-caption .setf-stage-title-line>span{
  font-size:inherit!important;
  color:inherit!important;
  text-align:left!important;
}
.setf-mobile-rate .setf-stage-title-line{
  justify-content:flex-start;
  text-align:left;
}

/* Tooltip único creado por frontend.js. Funciona con hover, teclado y tap. */
.setf-floating-date-tip{
  position:fixed;
  z-index:999999;
  display:none;
  min-width:190px;
  max-width:min(280px,calc(100vw - 24px));
  padding:10px 12px;
  border:1px solid rgba(15,23,42,.14);
  border-radius:7px;
  background:#17202a;
  color:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.18);
  font-size:12px;
  line-height:1.4;
  pointer-events:none;
  box-sizing:border-box;
}
.setf-floating-date-tip.is-visible{display:block}
.setf-floating-date-tip span{display:block}
.setf-floating-date-tip strong{font-weight:700;color:#fff}

/* v1.0 — fecha visible opcional debajo del nombre de cada tarifa. */
.setf-stage-title-line{
  flex-wrap:wrap;
}
.setf-stage-date-visible{
  flex:0 0 100%;
  display:block!important;
  margin-top:3px!important;
  color:inherit;
  opacity:.72;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.3;
  text-align:center;
}
.setf-stage-date-compact{white-space:nowrap}
.setf-stage-date-full em{
  font-style:normal;
  font-weight:650;
}
.setf-stage-date-full .setf-date-sep{display:inline!important;margin:0 2px}
.setf-mobile-rate .setf-stage-date-visible,
.setf-current-caption .setf-stage-date-visible{
  text-align:left;
}
.setf-mobile-rate .setf-stage-title-line,
.setf-current-caption .setf-stage-title-line{
  align-items:flex-start;
}
.setf-style-solid .setf-table thead .setf-stage-date-visible,
.setf-style-solid .setf-current-caption .setf-stage-date-visible{
  color:rgba(255,255,255,.9);
  opacity:1;
}
@media(max-width:520px){
  .setf-stage-date-full .setf-date-sep{display:none!important}
  .setf-stage-date-full>span{display:block!important}
  .setf-stage-date-compact{white-space:normal}
}
