:root{--red:#b21224;--red2:#e12432;--ink:#111827;--muted:#667085;--line:#e8e8ee;--soft:#f6f7fb;--card:#fff;--blue:#1d4ed8;--green:#15803d;--amber:#b45309;--purple:#6d28d9;--shadow:0 18px 45px rgba(17,24,39,.10);--shadow-soft:0 8px 24px rgba(17,24,39,.07);--radius:24px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{height:100%;background:#f4f5f8;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif}body{min-height:100%;margin:0;background:linear-gradient(180deg,#f5f5f8 0%,#f8f8fb 42%,#fff 100%)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.app-shell{min-height:100vh;padding-bottom:calc(28px + var(--safe-bottom))}.hero{position:sticky;top:0;z-index:50;padding-top:var(--safe-top);background:#20151a;color:white;box-shadow:0 12px 32px rgba(0,0,0,.18)}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at top left,rgba(255,255,255,.20),transparent 36%),linear-gradient(135deg,#7f0e1d 0%,#b21224 42%,#1f2937 100%);overflow:hidden}.hero-bg:after{content:"";position:absolute;inset:-30%;background:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 1px,transparent 1px 18px);transform:rotate(2deg)}.hero-content{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px clamp(16px,4vw,38px) 14px}.brand-row{display:flex;align-items:center;gap:14px}.brand-mark{width:48px;height:48px;border-radius:16px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:25px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}h1{font-size:clamp(25px,5vw,36px);line-height:1;margin:0;font-weight:850;letter-spacing:-.04em}.hero p{margin:6px 0 0;color:rgba(255,255,255,.78);font-size:14px}.hero-actions{display:flex;gap:10px;align-items:center}.tabs{position:relative;display:flex;gap:7px;overflow:auto;padding:0 clamp(12px,4vw,38px) 12px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{border:0;color:rgba(255,255,255,.75);background:rgba(255,255,255,.10);backdrop-filter:blur(10px);border-radius:999px;padding:10px 15px;white-space:nowrap;font-weight:750}.tab.active{background:white;color:#9b1020}.dot-count{display:inline-flex;min-width:21px;height:21px;border-radius:999px;align-items:center;justify-content:center;background:#fef3c7;color:#7c2d12;font-size:12px;margin-left:5px}main{max-width:1880px;margin:0 auto;padding:22px clamp(14px,3vw,32px)}.view{display:none;animation:fade .22s ease}.active-view{display:block}@keyframes fade{from{opacity:.1;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn{border:0;border-radius:999px;padding:10px 15px;font-weight:800;box-shadow:none;transition:.16s transform,.16s background,.16s opacity}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(135deg,var(--red),var(--red2));color:white;box-shadow:0 8px 18px rgba(178,18,36,.25)}.btn.soft{background:#fff;color:#344054;border:1px solid var(--line);box-shadow:var(--shadow-soft)}.btn.glass{background:rgba(255,255,255,.18);color:white;border:1px solid rgba(255,255,255,.25)}.btn.danger-soft{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.icon-btn{width:38px;height:38px;border-radius:12px;border:0;background:#f2f4f7;font-size:22px;line-height:1}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:24px}.kpi{position:relative;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow-soft);overflow:hidden}.kpi:after{content:"";position:absolute;right:-32px;top:-32px;width:96px;height:96px;border-radius:999px;background:linear-gradient(135deg,rgba(178,18,36,.14),rgba(29,78,216,.08))}.kpi .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}.kpi .value{font-size:30px;font-weight:900;letter-spacing:-.04em;margin-top:6px}.kpi .sub{font-size:13px;color:var(--muted);margin-top:2px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:12px 0 16px}.section-head h2{font-size:28px;margin:0 0 4px;font-weight:900;letter-spacing:-.04em}.section-head p{margin:0;color:var(--muted)}.row-actions{display:flex;gap:10px;flex-wrap:wrap}.sticky-count{position:sticky;top:142px;z-index:20;background:rgba(248,248,251,.86);backdrop-filter:blur(12px);padding:10px 0}.cards-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:dense;align-items:stretch;gap:16px}.explore-grid{align-items:flex-start}.pair-card{grid-column:span var(--card-span,2);width:100%;max-width:none;min-width:0;height:100%;flex:none;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);overflow:hidden;position:relative;transition:.18s transform,.18s box-shadow,.18s border
  overflow:visible !important;}.pair-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#f3c7cd}.pair-card.status-fav{border-color:#f59e0b;box-shadow:0 10px 28px rgba(245,158,11,.15)}.pair-card.status-duda{border-color:#60a5fa}.pair-card.status-descartado{opacity:.58;filter:saturate(.75)}.pair-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:15px 15px 11px;background:linear-gradient(180deg,#fff,#fbfbfd)}.pair-title{display:flex;gap:10px;align-items:center}.pair-title h3{margin:0;font-size:23px;letter-spacing:-.04em}.pair-title span{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-top:2px}.score-pill{min-width:68px;text-align:center;padding:8px 10px;border-radius:16px;background:#111827;color:white;font-size:20px;font-weight:900;box-shadow:0 8px 18px rgba(17,24,39,.18)}.score-pill.good{background:linear-gradient(135deg,#15803d,#22c55e)}.score-pill.mid{background:linear-gradient(135deg,#b45309,#f59e0b)}.score-pill.low{background:linear-gradient(135deg,#991b1b,#ef4444)}.meta-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:0 14px 11px}.meta-item{background:#f7f8fb;border:1px solid #edf0f4;border-radius:15px;padding:8px}.meta-item b{display:block;font-size:13px}.meta-item small{color:var(--muted);font-size:11px;font-weight:700}.badges{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 12px}.badge{font-size:11px;font-weight:900;letter-spacing:.03em;border-radius:999px;padding:6px 8px;background:#eef2ff;color:#3730a3}.badge.red{background:#ffe4e6;color:#be123c}.badge.green{background:#dcfce7;color:#166534}.badge.amber{background:#fef3c7;color:#92400e}.badge.purple{background:#f3e8ff;color:#6d28d9}.badge.gray{background:#f2f4f7;color:#475467}.badge.blue{background:#dbeafe;color:#1d4ed8}.day-columns{display:grid;gap:8px;padding:0 14px 14px;align-items:start;overflow-x:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.day-columns::-webkit-scrollbar{height:6px}.day-columns::-webkit-scrollbar-thumb{background:#d0d5dd;border-radius:999px}.day-col{border:1px solid #edf0f4;border-radius:16px;background:#fff;overflow:hidden;min-width:0}.day-title{padding:8px 10px;background:#111827;color:white;font-size:12px;font-weight:900;letter-spacing:.04em}.sector-empty{min-height:58px;padding:12px 10px;color:#667085;background:#fbfcff}.sector-empty b{display:block;color:#344054;font-size:13px}.sector-empty span{font-size:11px;font-weight:800}.sector-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:8px 9px;border-top:1px solid #f0f2f6;min-width:0}.sector-route{font-size:12.5px;font-weight:900;white-space:normal;overflow-wrap:anywhere;line-height:1.12;letter-spacing:-.02em}.sector-flight{font-size:10.5px;color:var(--muted);font-weight:800;overflow-wrap:anywhere;line-height:1.12}.sector-time{font-size:11.2px;font-weight:900;color:#111827;white-space:normal;text-align:right;line-height:1.12;letter-spacing:-.04em;max-width:58px;overflow-wrap:anywhere}.overnight-box{margin:0 14px 14px;border:1px solid #f2e7c5;background:linear-gradient(180deg,#fff8e1,#fff);border-radius:18px;padding:10px 12px}.overnight-box strong{font-size:13px}.overnight-box p{margin:3px 0 0;color:#7c2d12;font-size:12px;font-weight:700}.card-actions{display:flex;gap:7px;padding:11px 14px 14px;border-top:1px solid #f0f2f6}.mini-btn{border:0;border-radius:13px;padding:9px 8px;background:#f3f4f6;color:#344054;font-weight:850;flex:1}.mini-btn.active{background:#fef3c7;color:#92400e}.mini-btn.compare-active{background:#dbeafe;color:#1d4ed8}.mini-btn.primary{background:#111827;color:white}.filters-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:14px;box-shadow:var(--shadow-soft);margin-bottom:16px}.search-wrap{display:flex;align-items:center;gap:10px;background:#f7f8fb;border:1px solid #edf0f4;border-radius:18px;padding:0 12px;margin-bottom:12px}.search-wrap input{border:0;outline:0;background:transparent;width:100%;height:46px}.filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filter-row label{font-size:12px;color:var(--muted);font-weight:850;display:flex;flex-direction:column;gap:5px;min-width:142px}.filter-row select,.year-input input{height:38px;border:1px solid #d0d5dd;border-radius:13px;background:white;padding:0 10px;color:#111827}.filter-row.compact{margin-top:10px}.filter-row.compact label{min-width:190px}.filter-row input[type=range]{accent-color:var(--red)}.check{flex-direction:row!important;align-items:center!important;min-width:180px!important;color:#344054!important}.check input{accent-color:var(--red)}.dashboard-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft);padding:18px}.panel h2,.panel h3{margin:0 0 10px;font-weight:900;letter-spacing:-.035em}.bar-list{display:flex;flex-direction:column;gap:10px}.bar-row{display:grid;grid-template-columns:78px 1fr 48px;align-items:center;gap:10px;font-weight:850}.bar-track{height:11px;border-radius:999px;background:#f1f5f9;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--red),#f59e0b)}.insight-list{display:grid;gap:10px}.insight{border-radius:18px;background:#f7f8fb;padding:12px;border:1px solid #edf0f4}.insight b{display:block;margin-bottom:3px}.insight span{color:var(--muted);font-size:13px}.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.compare-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft);padding:16px}.compare-card h3{margin:0 0 8px;font-size:22px}.compare-metric{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #f0f2f6;padding:10px 0}.compare-metric.best{color:#166534;font-weight:900}.shortlist{display:grid;gap:10px}.short-row{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft);padding:12px}.short-rank{width:42px;height:42px;border-radius:15px;background:#111827;color:white;display:grid;place-items:center;font-weight:900}.short-main b{font-size:18px}.short-main span{display:block;color:var(--muted);font-size:13px;margin-top:2px}.short-actions{display:flex;gap:8px}.note-input{width:100%;margin-top:8px;border:1px solid #d0d5dd;border-radius:12px;padding:8px 10px;background:#fbfbfd}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-grid .wide{grid-column:1/-1}.preset-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.chip{border:1px solid #e4e7ec;background:#fff;border-radius:999px;padding:9px 12px;font-weight:850}.chip.active{background:#111827;color:white;border-color:#111827}.sliders{display:grid;gap:14px}.slider-control label{display:flex;justify-content:space-between;font-weight:850;font-size:14px}.slider-control input{width:100%;accent-color:var(--red)}.data-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.year-input{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:850;color:var(--muted);max-width:180px}.rules-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:260px;overflow:auto}.rule-pill{border:1px solid #edf0f4;background:#f8fafc;border-radius:14px;padding:8px 10px;font-size:12px}.rule-pill b{font-size:14px}.detail-dialog{width:min(1100px,calc(100vw - 24px));border:0;border-radius:28px;padding:0;box-shadow:0 30px 100px rgba(0,0,0,.25);background:#fff;max-height:calc(100dvh - 24px)}.detail-dialog::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}.small-dialog{width:min(560px,calc(100vw - 24px))}.detail-content{padding:18px;max-height:calc(100dvh - 24px);overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.modal-head h2{margin:0;font-size:30px;letter-spacing:-.05em}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-panel{border:1px solid #edf0f4;border-radius:22px;padding:14px;background:#fff}.detail-panel h3{margin:0 0 9px}.timeline-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:14px 0}.detail-day{background:#f8fafc;border:1px solid #e5e7eb;border-radius:20px;overflow:hidden}.detail-day h4{margin:0;background:#111827;color:white;padding:10px 12px}.detail-sector{padding:10px 12px;border-top:1px solid #e5e7eb}.detail-sector b{font-size:15px}.detail-sector span{display:block;color:#667085;font-size:12px;font-weight:750;margin-top:2px}.toast{position:fixed;left:50%;bottom:calc(18px + var(--safe-bottom));transform:translateX(-50%) translateY(20px);background:#111827;color:white;padding:12px 16px;border-radius:999px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.22s;z-index:999}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard-split,.settings-grid{grid-template-columns:1fr}.settings-grid .wide{grid-column:auto}.sticky-count{top:132px}}@media(max-width:720px){.hero-content{align-items:flex-start}.hero-actions{flex-direction:column;align-items:flex-end}.kpi-grid{grid-template-columns:repeat(2,1fr)}.cards-grid,.explore-grid{display:grid;grid-template-columns:1fr}.pair-card{grid-column:1/-1;width:100%;max-width:100%}.pair-card-head{padding:14px}.meta-strip{grid-template-columns:repeat(2,1fr)}.day-columns{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.day-columns .day-col{min-width:165px}.section-head{align-items:flex-start;flex-direction:column}.sticky-count{top:128px}.detail-grid{grid-template-columns:1fr}.short-row{grid-template-columns:44px 1fr}.short-actions{grid-column:1/-1}.tabs{padding-bottom:10px}.tab{padding:9px 12px}.filter-row label{min-width:calc(50% - 8px)}.filter-row.compact label{min-width:100%!important}.hero p{font-size:12px}}@media(max-width:420px){.kpi-grid{grid-template-columns:1fr}.brand-mark{width:42px;height:42px}.hero-actions{display:none}.filter-row label{min-width:100%}.pair-title h3{font-size:21px}.score-pill{font-size:18px}.modal-head h2{font-size:25px}}

/* V0.1.4 · ajuste fino de tarjetas */
.pair-card .day-columns{flex:0 0 auto}.pair-card .overnight-box{flex:0 0 auto}.sector-line>div{min-width:0}.day-col{box-shadow:0 1px 0 rgba(16,24,40,.03)}

/* V0.1.5 · barra inferior sin desbordamiento */
.card-actions{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:8px !important;
  border-top:1px solid #eef1f5;
  padding:12px 14px !important;
  background:#fff;
  margin-top:auto !important;
}
.card-actions .mini-btn{
  min-width:0 !important;
  width:100% !important;
  height:48px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  font-size:20px !important;
  line-height:1 !important;
}
.card-actions .mini-btn svg{
  width:22px;
  height:22px;
  display:block;
  flex:0 0 auto;
}
.card-actions .mini-btn.primary svg{
  width:23px;
  height:23px;
}
.card-actions .mini-btn .sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
@media(max-width:720px){
  .card-actions{gap:7px !important;padding:10px 12px !important}
  .card-actions .mini-btn{height:46px !important}
}

/* V0.1.6 · pernoctas entre días */
.day-columns.timeline{align-items:start;column-gap:10px;row-gap:8px}
.overnight-box{display:none !important}
.overnight-mini{
  align-self:center;
  min-height:94px;
  border-radius:16px;
  padding:10px 10px 9px;
  border:1px solid #e5e7eb;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  box-shadow:0 8px 18px rgba(15,23,42,.06);
  overflow:hidden;
}
.overnight-mini-label{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.overnight-mini-city{font-size:14px;font-weight:900;line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}
.overnight-mini-eff{font-size:18px;font-weight:950;line-height:1.0;letter-spacing:-.04em}
.overnight-mini-times{font-size:11px;font-weight:800;line-height:1.1;opacity:.88}
.overnight-mini.tone-good{background:linear-gradient(180deg,#ebfff1 0%,#d8f7e2 100%);border-color:#8dd4a2;color:#0f5132}
.overnight-mini.tone-mid{background:linear-gradient(180deg,#fff8db 0%,#fff1bf 100%);border-color:#f0d47a;color:#7a4b00}
.overnight-mini.tone-low{background:linear-gradient(180deg,#ffe6e6 0%,#ffd3d3 100%);border-color:#f1aaaa;color:#8a1c1c}
@media(max-width:980px){
  .day-columns.timeline{overflow-x:auto;grid-auto-flow:column;grid-auto-columns:minmax(165px,1fr)}
  .day-columns.timeline .overnight-mini{min-width:122px}
}


/* V0.1.7 · pernoctas centradas bajo los días + destino visual */
.meta-strip{grid-template-columns:1fr 1.35fr 1.35fr 1fr;align-items:stretch}
.meta-item{min-height:58px}
.destination-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.24);
  background-color:#111827;
  background-image:linear-gradient(135deg,rgba(17,24,39,.20),rgba(17,24,39,.04)),var(--city-img);
  background-size:cover;
  background-position:center;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.destination-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.32));
  pointer-events:none;
}
.destination-label{
  position:absolute;
  right:8px;
  bottom:8px;
  max-width:calc(100% - 16px);
  z-index:1;
  padding:6px 9px 7px;
  border-radius:13px;
  color:#fff;
  background:rgba(15,23,42,.56);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px) saturate(135%);
  box-shadow:0 8px 18px rgba(0,0,0,.18);
  text-align:right;
}
.destination-label small{display:block;color:rgba(255,255,255,.82);font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.destination-label b{display:block;color:#fff;font-size:14px;line-height:1.05;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.effective-card small{line-height:1.05;color:#475467}.effective-card b{font-size:15px}
.pair-timeline{padding-bottom:2px;overflow:visible}
.pair-timeline .day-columns.timeline{
  padding-bottom:7px;
  overflow:visible;
  grid-auto-flow:row;
  grid-auto-columns:initial;
}
.overnight-row{
  display:grid;
  gap:8px;
  padding:0 14px 15px;
  align-items:start;
  overflow:visible;
}
.overnight-slot{
  justify-self:center;
  align-self:start;
  width:min(224px,78%);
  display:flex;
  flex-direction:column;
  gap:7px;
  position:relative;
}
.overnight-slot::before{
  content:"";
  position:absolute;
  top:-8px;
  left:50%;
  width:1px;
  height:8px;
  background:#e5e7eb;
  transform:translateX(-50%);
}
.overnight-mini{
  width:100%;
  min-height:72px;
  padding:9px 10px;
  text-align:center;
}
.overnight-mini-label{font-size:9.5px}.overnight-mini-city{font-size:13px}.overnight-mini-eff{font-size:17px}.overnight-mini-times{font-size:10.5px}
@media(max-width:980px){
  .meta-strip{grid-template-columns:1fr 1fr}.destination-card{min-height:74px}
  .pair-timeline{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .pair-timeline .day-columns.timeline,.overnight-row{min-width:calc(var(--day-count) * 166px)}
  .day-columns.timeline .overnight-mini{min-width:0}
  .overnight-slot{width:min(210px,84%)}
}


/* V0.1.8 · correcciones de alineación, IATA y fallback destino */
.card-prelude{display:flex;flex-direction:column}
.pair-card-head{min-height:68px}
.meta-strip{align-items:stretch}
.meta-item{min-height:74px;display:flex;flex-direction:column;justify-content:space-between}
.meta-item small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.05;min-height:23px}
.meta-item b{line-height:1.08}
.badges{min-height:40px;align-content:flex-start}
.destination-card{
  position:relative;
  isolation:isolate;
  background:linear-gradient(135deg,#0f172a 0%,#334155 50%,#475569 100%);
}
.destination-card.img-fallback::before{
  content:attr(data-city);
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:26px;
  font-weight:950;
  letter-spacing:.08em;
  color:rgba(255,255,255,.18);
  z-index:0;
}
.destination-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  filter:saturate(1.02) contrast(1.02);
}
.destination-card::after{z-index:0}
.destination-label{z-index:1}
.overnight-row{padding-top:2px}
.overnight-slot{width:min(232px,78%)}
.overnight-mini-city{font-size:15px;letter-spacing:.04em}
@media(max-width:980px){
  .badges{min-height:0}
  .pair-card-head{min-height:auto}
  .meta-item{min-height:72px}
}

/* V0.1.9 · cajón de destino con imagen local y texto superpuesto */
.destination-card{
  padding:0 !important;
  min-height:74px;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:#111827 !important;
  border-color:rgba(15,23,42,.10);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10), 0 8px 18px rgba(15,23,42,.06);
}
.destination-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--dest-position,center);
  z-index:0;
  filter:saturate(1.08) contrast(1.04);
  transform:scale(1.015);
}
.destination-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(0,0,0,.26),rgba(0,0,0,.03) 54%,rgba(0,0,0,.20)),
    linear-gradient(180deg,rgba(255,255,255,.10),rgba(0,0,0,.14));
}
.destination-card.img-fallback::before{
  content:attr(data-city);
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:30px;
  font-weight:950;
  letter-spacing:.10em;
  color:rgba(255,255,255,.20);
  background:linear-gradient(135deg,#0f172a,#334155 55%,#64748b);
  z-index:0;
}
.destination-label{
  position:absolute !important;
  left:10px !important;
  right:auto !important;
  bottom:8px !important;
  max-width:calc(100% - 20px) !important;
  z-index:2 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  backdrop-filter:none !important;
  box-shadow:none !important;
  text-align:left !important;
  color:var(--dest-ink,#fff) !important;
  text-shadow:var(--dest-shadow,0 2px 12px rgba(0,0,0,.72));
}
.destination-label small{
  min-height:0;
  display:block;
  margin:0 0 1px;
  color:var(--dest-ink,#fff) !important;
  opacity:.88;
  font-size:9px;
  font-weight:950;
  letter-spacing:.12em;
  line-height:1;
  text-transform:uppercase;
}
.destination-label b{
  display:block;
  color:var(--dest-ink,#fff) !important;
  font-size:25px;
  line-height:.92;
  font-weight:950;
  letter-spacing:.085em;
}
@media(max-width:980px){
  .destination-card{min-height:78px}
  .destination-label b{font-size:24px}
}

/* V0.2.0 · filtros avanzados, reglas medibles, destinos y estados visuales */
.filter-row label{min-width:158px}
.filter-row.compact label{min-width:206px}
.dest-ribbon{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  padding:0 14px 12px;
  min-height:34px;
  align-items:flex-start;
}
.dest-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  border-radius:999px;
  border:1px solid #e5e7eb;
  padding:5px 7px;
  background:#f8fafc;
  color:#334155;
  font-weight:950;
  font-size:11px;
  letter-spacing:.03em;
}
.dest-chip small{font-weight:900;color:inherit;opacity:.78;font-size:10px}
.dest-chip.good{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.dest-chip.mid{background:#fef3c7;color:#92400e;border-color:#fde68a}
.dest-chip.low{background:#ffe4e6;color:#be123c;border-color:#fecdd3}
.dest-chip.neutral{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}
.pair-card.status-descartado{
  opacity:.46 !important;
  filter:grayscale(.92) saturate(.38) !important;
  background:#f2f4f7;
}
.card-actions .discard-btn.discard-active{
  color:#b91c1c !important;
  background:#fff1f2 !important;
  box-shadow:inset 0 -3px 0 #ef4444;
  text-decoration:underline;
  text-decoration-color:#ef4444;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
}
.card-actions .compare-btn.compare-active{
  color:#92400e !important;
  background:#fffbeb !important;
  box-shadow:inset 0 -3px 0 #f59e0b;
}
.slider-control.measured{
  border:1px solid #edf0f4;
  background:#fbfcff;
  border-radius:16px;
  padding:10px 12px;
}
.slider-control.measured p{
  margin:6px 0 0;
  color:#667085;
  font-size:12px;
  line-height:1.25;
}
.slider-control.measured b{color:#111827;font-size:12px}
.rules-preview.detailed-rules{
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  max-height:520px;
  gap:12px;
}
.rule-card{
  border:1px solid #edf0f4;
  background:#fff;
  border-radius:18px;
  padding:12px;
  box-shadow:0 8px 18px rgba(15,23,42,.04);
  display:flex;
  flex-direction:column;
  gap:9px;
}
.rule-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}
.rule-card-head b{font-size:22px;letter-spacing:-.04em;color:#111827}
.rule-card-head span{font-size:11px;color:#667085;font-weight:800}
.rule-main strong{display:block;font-size:13px;color:#111827}
.rule-main small{display:block;color:#667085;font-weight:700;margin-top:2px;line-height:1.25}
.rule-conditions{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.rule-conditions li{font-size:11px;font-weight:900;color:#155e75;background:#ecfeff;border:1px solid #cffafe;border-radius:999px;padding:5px 7px}
.transit-input{display:grid;grid-template-columns:1fr 86px;gap:6px 10px;align-items:center;font-size:12px;font-weight:900;color:#344054;margin-top:auto}
.transit-input input{height:34px;border:1px solid #d0d5dd;border-radius:12px;padding:0 8px;font-weight:900;text-align:right}
.transit-input span{grid-column:1/-1;color:#667085;font-size:11px;font-weight:700}
.day-title{font-size:11.5px;white-space:nowrap}
.effective-card b{font-size:16px}
@media(max-width:720px){
  .filter-row.compact label,.filter-row label{min-width:100%}
  .rules-preview.detailed-rules{grid-template-columns:1fr;max-height:none}
}


/* V0.2.1 · simplificación visual, filtros bidireccionales y recogidas protegidas */
.meta-strip.compact-3{grid-template-columns:1.45fr 1fr 1fr}
.card-actions .mini-btn{transition:background-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease}
.card-actions .mini-btn:active{transform:translateY(1px)}
.card-actions .mini-btn.active{color:#b21224;background:#fff1f2;box-shadow:inset 0 -3px 0 #f43f5e}
.card-actions .mini-btn.duda-active{color:#8a5b00;background:#fffbeb;box-shadow:inset 0 -3px 0 #facc15}
.card-actions .compare-btn.compare-active{color:#0f4c81 !important;background:#eff6ff !important;box-shadow:inset 0 -3px 0 #2563eb,0 0 0 1px #bfdbfe}
.inline-check{min-width:auto !important;align-self:end;padding-bottom:8px}
.range-pair{min-width:280px !important}
.range-pair output{display:block;margin:4px 0 8px;color:#334155;font-weight:900}
.range-stack{display:grid;gap:6px}
.range-stack input{width:100%}
.rule-group{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.rule-group-letter{position:sticky;top:0;z-index:1;background:#f8fafc;border:1px solid #e2e8f0;color:#0f172a;border-radius:12px;padding:8px 12px;font-size:20px;font-weight:950;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.rule-group-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.rule-conditions.vertical{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.rule-conditions.vertical li{width:100%;border-radius:12px;padding:8px 10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;line-height:1.25}
.transit-edit{display:grid;grid-template-columns:1fr 38px;gap:8px;align-items:center}
.transit-edit input:disabled{background:#f8fafc;color:#98a2b3;cursor:not-allowed}
.lock-btn{height:34px;border:1px solid #d0d5dd;border-radius:12px;background:#fff;font-size:16px;cursor:pointer}
.lock-btn.unlocked{background:#ecfeff;border-color:#67e8f9}
.rule-main small{display:none}
.rule-main strong{margin-bottom:2px}
@media(max-width:980px){.meta-strip.compact-3{grid-template-columns:1fr}.range-pair{min-width:100% !important}}


/* V0.2.4 · fotos reales descargables y sin SVG generados */
.destination-card.img-pending,
.destination-card:has(.destination-photo-pending){background:linear-gradient(135deg,#0f172a,#334155)}
.destination-photo-pending{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:rgba(255,255,255,.72);font-weight:900;text-transform:uppercase;letter-spacing:.06em;font-size:10px;line-height:1.2;background:linear-gradient(135deg,rgba(15,23,42,.72),rgba(30,41,59,.50))}
.destination-card .destination-label{background:rgba(255,255,255,.18);backdrop-filter:blur(7px);border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:4px 7px}
.destination-card .destination-label small,.destination-card .destination-label b{color:var(--dest-ink,#fff);text-shadow:var(--dest-shadow,0 2px 12px rgba(0,0,0,.72))}

/* V0.2.5 · filtros nuevos, descansos discretos y edición protegida */
.stacked-time{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.05}
.stacked-time span:first-child{font-weight:950;color:#111827}
.stacked-time span:last-child{font-weight:950;color:#475467}
.rest-indicators{display:flex;flex-wrap:wrap;gap:6px;margin:4px 16px 8px}
.rest-indicators span{font-size:10px;font-weight:900;letter-spacing:.02em;color:#475467;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:4px 7px}
.score-note{font-size:12px;color:#475467;background:#f8fafc;border:1px solid #edf0f4;border-radius:14px;padding:10px;margin:2px 0 0}
.rules-preview.detailed-rules{display:block;max-height:640px;overflow:auto}
.rule-group-letter{font-size:28px;line-height:1;text-transform:uppercase;background:#fff;color:#b21224;border-color:#fde2e7}
.rule-group-list{margin-bottom:14px}
.transit-input{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.transit-edit{display:grid;grid-template-columns:1fr 42px;gap:8px;align-items:center;width:100%}
.transit-edit input{width:100%;height:36px;border:1px solid #d0d5dd;border-radius:12px;padding:0 8px;font-weight:900;text-align:right;background:#fff}
.transit-edit input:disabled{background:#f3f4f6;color:#94a3b8;border-color:#e5e7eb;cursor:not-allowed}
.lock-btn{height:36px;border:1px solid #d0d5dd;border-radius:12px;background:#111827;color:white;font-size:16px;cursor:pointer;display:grid;place-items:center}
.lock-btn.unlocked{background:#f3f4f6;color:#94a3b8;border-color:#d1d5db}
.rule-main strong{font-size:13px;color:#0f172a}
@media(max-width:720px){.range-pair{min-width:100% !important}.rest-indicators{margin-left:14px;margin-right:14px}}


/* V0.2.7 · sliders duales de mínimo/máximo en una sola pista visual */
.dual-control{min-width:285px !important;}
.range-dual{position:relative;height:28px;margin-top:8px;--lo:0%;--hi:100%;}
.range-dual::before,.range-dual .range-fill{content:"";position:absolute;left:0;right:0;top:12px;height:6px;border-radius:999px;pointer-events:none;}
.range-dual::before{background:#e5e7eb;}
.range-dual .range-fill{left:var(--lo);right:calc(100% - var(--hi));background:linear-gradient(90deg,var(--red),#f59e0b);box-shadow:0 2px 10px rgba(178,18,36,.16);}
.range-dual input[type=range]{position:absolute;inset:0;width:100%;height:28px;margin:0;background:transparent;pointer-events:none;appearance:none;-webkit-appearance:none;accent-color:var(--red);}
.range-dual input[type=range]::-webkit-slider-runnable-track{height:6px;background:transparent;border:0;}
.range-dual input[type=range]::-moz-range-track{height:6px;background:transparent;border:0;}
.range-dual input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;border-radius:999px;background:#fff;border:3px solid var(--red);box-shadow:0 2px 8px rgba(15,23,42,.22);pointer-events:auto;cursor:pointer;margin-top:-6px;}
.range-dual input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:999px;background:#fff;border:3px solid var(--red);box-shadow:0 2px 8px rgba(15,23,42,.22);pointer-events:auto;cursor:pointer;}
.range-dual .range-max::-webkit-slider-thumb{border-color:#f59e0b;}
.range-dual .range-max::-moz-range-thumb{border-color:#f59e0b;}
.range-dual .range-max{z-index:2;}
.range-dual .range-min{z-index:3;}
.range-pair output{font-variant-numeric:tabular-nums;}


/* V0.2.8 · destinos dependientes y pernoctas alineadas en una única fila */
.overnight-row{
  display:block !important;
  position:relative !important;
  padding:0 14px 14px !important;
  min-height:90px !important;
  overflow:visible !important;
}
.overnight-slot{
  position:absolute !important;
  top:0 !important;
  left:calc((var(--overnight-pos, .5) * 100%) / var(--day-count, 1)) !important;
  transform:translateX(-50%) !important;
  width:clamp(92px, calc((100% - 28px) / var(--day-count, 1) * .92), 168px) !important;
  max-width:calc(100% - 28px) !important;
  display:flex !important;
  flex-direction:row !important;
  justify-content:center !important;
  align-items:stretch !important;
  gap:6px !important;
  z-index:2 !important;
}
.overnight-slot::before{
  content:"" !important;
  position:absolute !important;
  top:-8px !important;
  left:50% !important;
  width:1px !important;
  height:8px !important;
  background:#e5e7eb !important;
  transform:translateX(-50%) !important;
}
.overnight-slot .overnight-mini{
  width:100% !important;
  min-width:0 !important;
  min-height:76px !important;
  padding:8px 7px !important;
  overflow:hidden !important;
}
.overnight-mini-label{font-size:8.5px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.overnight-mini-city{font-size:12.5px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.overnight-mini-eff{font-size:16px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.overnight-mini-times{font-size:9.6px !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:980px){
  .pair-timeline{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .pair-timeline .day-columns.timeline,.overnight-row{min-width:calc(var(--day-count) * 166px) !important}
  .overnight-slot{width:142px !important}
}

/* V0.2.9 · recogidas limpias y sliders más ágiles */
.rule-conditions.only-conditions{margin-top:10px;margin-bottom:12px}
.rule-conditions.only-conditions li{font-variant-numeric:tabular-nums}
.overnight-mini-eff{font-variant-numeric:tabular-nums;white-space:nowrap}
.overnight-mini-times{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.range-dual input[type=range]::-webkit-slider-thumb{will-change:transform}
.range-dual input[type=range]::-moz-range-thumb{will-change:transform}
.slider-control.measured input[type=range]{will-change:contents}


/* V0.2.10 · corrección fina de alineación de la primera pernocta */
.overnight-row{padding:0 14px 14px !important;overflow:visible !important;}
.overnight-slot{
  left:calc(14px + ((100% - 28px) * var(--overnight-pos, .5) / var(--day-count, 1))) !important;
  width:clamp(92px, calc(((100% - 28px) / var(--day-count, 1)) * .86), 168px) !important;
  max-width:calc(100% - 28px) !important;
}
@media(max-width:980px){
  .overnight-slot{width:136px !important;}
}

/* V0.2.11 · alineación medida de pernoctas: centros reales entre subtarjetas */
.overnight-row{
  position:relative !important;
  padding:0 14px 14px !important;
  overflow:visible !important;
}
.overnight-slot{
  left:var(--overnight-left, calc(14px + ((100% - 28px) * var(--overnight-pos, .5) / var(--day-count, 1)))) !important;
  transform:translateX(-50%) !important;
  will-change:left,width;
}
.overnight-slot[data-anchor-index="0"]{
  z-index:3 !important;
}

/* V0.2.12 · prioridad real para la alineación medida desde JS */
.overnight-row{
  position:relative !important;
  padding:0 14px 14px !important;
  overflow:visible !important;
}
.overnight-row .overnight-slot{
  position:absolute !important;
  top:0 !important;
  transform:translateX(-50%) !important;
  max-width:calc(100% - 28px) !important;
  flex-direction:row !important;
}
.overnight-row .overnight-slot .overnight-mini{
  width:100% !important;
  min-width:0 !important;
}


/* V0.2.13 · pernoctas con grid nativo, sin posicionamiento absoluto */
.pair-timeline{overflow:visible !important}
.overnight-row{
  display:grid !important;
  gap:8px !important;
  padding:0 14px 14px !important;
  align-items:start !important;
  position:relative !important;
  overflow:visible !important;
}
.overnight-row .overnight-slot{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  justify-self:center !important;
  align-self:start !important;
  width:clamp(96px, 86%, 176px) !important;
  max-width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
}
.overnight-row .overnight-slot .overnight-mini{
  width:100% !important;
  min-width:0 !important;
}
@media(max-width:980px){
  .overnight-row .overnight-slot{width:136px !important;}
}

/* V0.2.14 · timeline limpio con medias columnas: días fila 1, pernoctas fila 2 */
.pair-timeline.timeline-grid{
  display:grid !important;
  gap:8px !important;
  padding:0 14px 14px !important;
  align-items:start !important;
  overflow:visible !important;
  grid-auto-flow:row !important;
}
.pair-timeline.timeline-grid .timeline-day{
  min-width:0 !important;
  width:100% !important;
}
.pair-timeline.timeline-grid .timeline-overnight{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  justify-self:center !important;
  align-self:start !important;
  width:clamp(106px, 92%, 176px) !important;
  max-width:100% !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  margin-top:2px !important;
}
.pair-timeline.timeline-grid .timeline-overnight .overnight-mini{
  width:100% !important;
  min-width:0 !important;
  padding:11px 10px !important;
}
.pair-timeline.timeline-grid .timeline-overnight .overnight-mini-label,
.pair-timeline.timeline-grid .timeline-overnight .overnight-mini-city,
.pair-timeline.timeline-grid .timeline-overnight .overnight-mini-eff,
.pair-timeline.timeline-grid .timeline-overnight .overnight-mini-times{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
@media(max-width:980px){
  .pair-timeline.timeline-grid{
    overflow-x:auto !important;
    min-width:calc(var(--day-count) * 166px) !important;
  }
  .pair-timeline.timeline-grid .timeline-overnight{width:136px !important;}
}

/* V0.2.15 · pernoctas aisladas de CSS heredado: clases stay-* */
.pair-timeline.timeline-grid-v15{
  display:grid !important;
  gap:8px !important;
  padding:0 14px 14px !important;
  align-items:start !important;
  overflow:visible !important;
  grid-auto-flow:row !important;
}
.pair-timeline.timeline-grid-v15 .timeline-day-v15{
  min-width:0 !important;
  width:100% !important;
}
.pair-timeline.timeline-grid-v15 .stay-slot-v15{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  justify-self:center !important;
  align-self:start !important;
  width:min(176px, 92%) !important;
  max-width:100% !important;
  min-width:106px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  margin:2px 0 0 !important;
  padding:0 !important;
  z-index:3 !important;
}
.stay-mini-v15{
  width:100% !important;
  min-width:0 !important;
  min-height:76px !important;
  padding:11px 10px !important;
  border-radius:18px !important;
  border:1px solid transparent !important;
  box-shadow:0 12px 28px rgba(17,24,39,.08) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  overflow:hidden !important;
}
.stay-label-v15{
  font-size:9px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  opacity:.82 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-city-v15{
  font-size:13px !important;
  font-weight:950 !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-eff-v15{
  font-size:17px !important;
  font-weight:950 !important;
  line-height:1.05 !important;
  letter-spacing:-.04em !important;
  font-variant-numeric:tabular-nums !important;
  white-space:nowrap !important;
}
.stay-times-v15{
  font-size:10px !important;
  font-weight:850 !important;
  line-height:1.1 !important;
  opacity:.9 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-tone-good{background:linear-gradient(180deg,#ebfff1 0%,#d8f7e2 100%) !important;border-color:#8dd4a2 !important;color:#0f5132 !important}
.stay-tone-mid{background:linear-gradient(180deg,#fff8db 0%,#fff1bf 100%) !important;border-color:#f0d47a !important;color:#7a4b00 !important}
.stay-tone-low{background:linear-gradient(180deg,#ffe6e6 0%,#ffd3d3 100%) !important;border-color:#f1aaaa !important;color:#8a1c1c !important}
@media(max-width:980px){
  .pair-timeline.timeline-grid-v15{
    overflow-x:auto !important;
    min-width:calc(var(--day-count) * 166px) !important;
  }
  .pair-timeline.timeline-grid-v15 .stay-slot-v15{
    width:136px !important;
    min-width:120px !important;
  }
}

/* V0.2.16 · timeline estable: días + lane de pernoctas absoluto aislado */
.pair-timeline-v16{
  --lane-h:96px;
  padding:0 14px 12px !important;
  overflow:visible !important;
}
.timeline-days-v16{
  display:grid !important;
  gap:8px !important;
  align-items:start !important;
  overflow:visible !important;
}
.timeline-days-v16 .day-card-v16{
  position:relative !important;
  min-width:0 !important;
  width:100% !important;
  overflow:hidden !important;
}
.stay-lane-v16{
  position:relative !important;
  height:var(--lane-h) !important;
  margin-top:8px !important;
  padding-inline:2px !important;
  overflow:visible !important;
}
.stay-slot-v16{
  position:absolute !important;
  top:0 !important;
  left:var(--stay-left) !important;
  transform:translateX(-50%) !important;
  width:clamp(112px, calc((100% / var(--day-count)) * .76), 174px) !important;
  max-width:calc((100% / var(--day-count)) * .92) !important;
  min-width:104px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  z-index:5 !important;
  margin:0 !important;
  padding:0 !important;
}
.stay-slot-v16 .stay-mini-v15{
  min-height:78px !important;
}

/* Indicadores de D anterior/posterior integrados en la tarjeta de día */
.day-card-v16.d-before-v16::before,
.day-card-v16.d-after-v16::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  bottom:0 !important;
  width:11px !important;
  background:linear-gradient(180deg,rgba(34,197,94,.85),rgba(34,197,94,.28)) !important;
  z-index:4 !important;
  pointer-events:none !important;
}
.day-card-v16.d-before-v16::after,
.day-card-v16.d-after-v16::after{
  content:"D" !important;
  position:absolute !important;
  left:2px !important;
  top:8px !important;
  z-index:5 !important;
  font-size:9px !important;
  font-weight:950 !important;
  color:white !important;
  text-shadow:0 1px 2px rgba(0,0,0,.28) !important;
}
.rest-indicators{display:none !important}

/* Horas de sectores más legibles: salida y llegada diferenciadas */
.sector-time.stacked-time{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:2px !important;
  min-width:48px !important;
}
.sector-time.stacked-time span:first-child{
  color:#0f172a !important;
  font-weight:950 !important;
}
.sector-time.stacked-time span:last-child{
  color:#64748b !important;
  font-weight:850 !important;
}
.sector-time.stacked-time span:first-child::before{
  content:"STD " !important;
  font-size:8px !important;
  color:#94a3b8 !important;
  margin-right:2px !important;
  font-weight:800 !important;
}
.sector-time.stacked-time span:last-child::before{
  content:"STA " !important;
  font-size:8px !important;
  color:#94a3b8 !important;
  margin-right:2px !important;
  font-weight:800 !important;
}

/* Botón de detalle menos dominante */
.card-actions .mini-btn.primary{
  background:#f1f5f9 !important;
  color:#334155 !important;
  border:1px solid #e2e8f0 !important;
  box-shadow:none !important;
}
.card-actions .mini-btn.primary:hover{
  background:#e2e8f0 !important;
  color:#0f172a !important;
}

/* Responsive */
@media(max-width:980px){
  .pair-timeline-v16{
    overflow-x:auto !important;
    min-width:calc(var(--day-count) * 166px) !important;
  }
  .stay-slot-v16{
    width:136px !important;
    max-width:150px !important;
  }
}


/* V0.2.17 · pernoctas corregidas: carril grid separado y D exterior fino */
.pair-timeline-v17{
  padding:0 14px 12px !important;
  overflow:visible !important;
}
.timeline-days-v17{
  display:grid !important;
  gap:8px !important;
  align-items:start !important;
  overflow:visible !important;
}
.timeline-days-v17 .day-card-v17{
  position:relative !important;
  min-width:0 !important;
  width:100% !important;
  overflow:visible !important;
}
.stay-lane-v17{
  display:grid !important;
  gap:0 !important;
  align-items:start !important;
  margin-top:9px !important;
  min-height:92px !important;
  overflow:visible !important;
}
.stay-lane-v17 .stay-slot-v17{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  justify-self:center !important;
  align-self:start !important;
  width:clamp(112px, 82%, 174px) !important;
  max-width:100% !important;
  min-width:104px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  z-index:5 !important;
  margin:0 !important;
  padding:0 !important;
}
.stay-mini-v17{
  width:100% !important;
  min-width:0 !important;
  min-height:78px !important;
  padding:11px 10px !important;
  border-radius:18px !important;
  border:1px solid transparent !important;
  box-shadow:0 12px 28px rgba(17,24,39,.08) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  overflow:hidden !important;
}
.stay-label-v17{
  font-size:9px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  opacity:.82 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-city-v17{font-size:13px !important;font-weight:950 !important;line-height:1.05 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
.stay-eff-v17{font-size:17px !important;font-weight:950 !important;line-height:1.05 !important;letter-spacing:-.04em !important;font-variant-numeric:tabular-nums !important;white-space:nowrap !important;}
.stay-times-v17{font-size:10px !important;font-weight:850 !important;line-height:1.1 !important;opacity:.9 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
.stay-tone-good{background:linear-gradient(180deg,#ebfff1 0%,#d8f7e2 100%) !important;border-color:#8dd4a2 !important;color:#0f5132 !important}
.stay-tone-mid{background:linear-gradient(180deg,#fff8db 0%,#fff1bf 100%) !important;border-color:#f0d47a !important;color:#7a4b00 !important}
.stay-tone-low{background:linear-gradient(180deg,#ffe6e6 0%,#ffd3d3 100%) !important;border-color:#f1aaaa !important;color:#8a1c1c !important}

/* D anterior/posterior: marca exterior fina, sin letra */
.timeline-days-v17 .day-card-v17.d-before-v17::before,
.timeline-days-v17 .day-card-v17.d-after-v17::before{
  content:"" !important;
  position:absolute !important;
  left:-7px !important;
  top:8px !important;
  bottom:8px !important;
  width:4px !important;
  border-radius:999px !important;
  background:linear-gradient(180deg,rgba(34,197,94,.75),rgba(34,197,94,.22)) !important;
  box-shadow:0 0 0 1px rgba(34,197,94,.08) !important;
  z-index:4 !important;
  pointer-events:none !important;
}
.timeline-days-v17 .day-card-v17.d-before-v17::after,
.timeline-days-v17 .day-card-v17.d-after-v17::after{content:none !important;display:none !important;}

@media(max-width:980px){
  .pair-timeline-v17{overflow-x:auto !important;min-width:calc(var(--day-count) * 166px) !important;}
  .stay-lane-v17 .stay-slot-v17{width:136px !important;max-width:150px !important;}
}

/* V0.2.18 · timeline final: días redondeados + pernoctas centradas por span de días */
.pair-timeline-v18{
  display:grid !important;
  gap:8px !important;
  padding:0 14px 14px !important;
  align-items:start !important;
  overflow:visible !important;
  grid-auto-flow:row !important;
}
.pair-timeline-v18 .day-card-v18{
  position:relative !important;
  min-width:0 !important;
  width:100% !important;
  overflow:hidden !important;
  border-radius:17px !important;
  border:1px solid #e6eaf0 !important;
  background:#fff !important;
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v18 .day-card-v18 .day-title{
  border-radius:16px 16px 0 0 !important;
}

/* D: solo por patrón. D inicial = borde izquierdo del primer día; D final = borde derecho del último día */
.pair-timeline-v18 .day-card-v18.d-before-v18::before,
.pair-timeline-v18 .day-card-v18.d-after-v18::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  bottom:0 !important;
  width:6px !important;
  background:linear-gradient(180deg,rgba(34,197,94,.92),rgba(34,197,94,.32)) !important;
  z-index:6 !important;
  pointer-events:none !important;
}
.pair-timeline-v18 .day-card-v18.d-before-v18::before{
  left:0 !important;
  border-radius:17px 0 0 17px !important;
}
.pair-timeline-v18 .day-card-v18.d-after-v18::before{
  right:0 !important;
  border-radius:0 17px 17px 0 !important;
}
.pair-timeline-v18 .day-card-v18.d-before-v18::after,
.pair-timeline-v18 .day-card-v18.d-after-v18::after{
  content:none !important;
  display:none !important;
}

/* Oculta cualquier indicador D antiguo */
.rest-indicators,
.day-card-v16::before,
.day-card-v16::after,
.day-card-v17::before,
.day-card-v17::after{
  display:none !important;
  content:none !important;
}

/* Pernoctas: spanning de 2 columnas de día. La primera queda entre día 1 y 2, no al final */
.pair-timeline-v18 .stay-slot-v18{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  justify-self:center !important;
  align-self:start !important;
  width:clamp(128px, 34%, 190px) !important;
  max-width:92% !important;
  min-width:118px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  margin:8px 0 0 !important;
  padding:0 !important;
  z-index:5 !important;
}
.stay-mini-v18{
  width:100% !important;
  min-width:0 !important;
  min-height:78px !important;
  padding:11px 10px !important;
  border-radius:18px !important;
  border:1px solid transparent !important;
  box-shadow:0 12px 28px rgba(17,24,39,.08) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  overflow:hidden !important;
}
.stay-label-v18{
  font-size:9px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  opacity:.82 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-city-v18{
  font-size:13px !important;
  font-weight:950 !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-eff-v18{
  font-size:17px !important;
  font-weight:950 !important;
  line-height:1.05 !important;
  letter-spacing:-.04em !important;
  font-variant-numeric:tabular-nums !important;
  white-space:nowrap !important;
}
.stay-times-v18{
  font-size:10px !important;
  font-weight:850 !important;
  line-height:1.1 !important;
  opacity:.9 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}
.stay-tone-good{background:linear-gradient(180deg,#ebfff1 0%,#d8f7e2 100%) !important;border-color:#8dd4a2 !important;color:#0f5132 !important}
.stay-tone-mid{background:linear-gradient(180deg,#fff8db 0%,#fff1bf 100%) !important;border-color:#f0d47a !important;color:#7a4b00 !important}
.stay-tone-low{background:linear-gradient(180deg,#ffe6e6 0%,#ffd3d3 100%) !important;border-color:#f1aaaa !important;color:#8a1c1c !important}

/* Horas: sin STD/STA, con color diferencial discreto */
.sector-time.stacked-time{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:3px !important;
  min-width:54px !important;
}
.sector-time.stacked-time span{
  display:inline-block !important;
  min-width:43px !important;
  padding:1px 5px !important;
  border-radius:7px !important;
  text-align:right !important;
  font-variant-numeric:tabular-nums !important;
  line-height:1.15 !important;
}
.sector-time.stacked-time span:first-child{
  color:#0b4a75 !important;
  background:#eaf6ff !important;
  font-weight:950 !important;
}
.sector-time.stacked-time span:last-child{
  color:#395469 !important;
  background:#f1f5f9 !important;
  font-weight:900 !important;
}
.sector-time.stacked-time span:first-child::before,
.sector-time.stacked-time span:last-child::before{
  content:none !important;
  display:none !important;
}

/* Detalle todavía más neutro */
.card-actions .mini-btn.primary{
  background:#f8fafc !important;
  color:#475569 !important;
  border:1px solid #e2e8f0 !important;
  box-shadow:none !important;
}
.card-actions .mini-btn.primary:hover{
  background:#eef2f7 !important;
  color:#1f2937 !important;
}

/* Anula lanes antiguas para evitar render doble accidental */
.pair-card .pair-timeline-v16,
.pair-card .pair-timeline-v17{
  display:none !important;
}

@media(max-width:980px){
  .pair-timeline-v18{
    overflow-x:auto !important;
    min-width:calc(var(--day-count) * 166px) !important;
  }
  .pair-timeline-v18 .stay-slot-v18{
    width:136px !important;
    max-width:150px !important;
    min-width:120px !important;
  }
}


/* V0.2.19 · solución definitiva: la pernocta NO participa en columnas de días */
.pair-timeline-v19{
  display:grid !important;
  gap:8px !important;
  padding:0 14px 14px !important;
  align-items:start !important;
  overflow:visible !important;
  grid-auto-flow:row !important;
}
.pair-timeline-v19 .day-card-v19{
  position:relative !important;
  min-width:0 !important;
  width:100% !important;
  overflow:visible !important;
  border-radius:17px !important;
  border:1px solid #e6eaf0 !important;
  background:#fff !important;
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v19 .day-card-v19 .day-title{
  border-radius:16px 16px 0 0 !important;
}
/* D exterior, pegada al borde y redondeada. D inicial a la izquierda, D final a la derecha. */
.pair-timeline-v19 .day-card-v19.d-before-v19::before,
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  bottom:0 !important;
  width:4px !important;
  background:linear-gradient(180deg,rgba(34,197,94,.88),rgba(34,197,94,.30)) !important;
  z-index:7 !important;
  pointer-events:none !important;
  box-shadow:0 10px 20px rgba(34,197,94,.10) !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::before{
  left:-4px !important;
  border-radius:999px 0 0 999px !important;
}
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  right:-4px !important;
  border-radius:0 999px 999px 0 !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::after,
.pair-timeline-v19 .day-card-v19.d-after-v19::after{content:none !important;display:none !important;}
/* Anula marcas D interiores de versiones anteriores */
.rest-indicators,
.day-card-v16::before,.day-card-v16::after,
.day-card-v17::before,.day-card-v17::after,
.day-card-v18::before,.day-card-v18::after{display:none !important;content:none !important;}
/* Carril propio: no crea ni ocupa columnas extra. Solo coloca por porcentaje sobre el ancho de los días. */
.pair-timeline-v19 .stay-lane-v19{
  position:relative !important;
  min-height:96px !important;
  margin-top:8px !important;
  overflow:visible !important;
  width:100% !important;
  max-width:100% !important;
}
.pair-timeline-v19 .stay-slot-v19{
  position:absolute !important;
  top:0 !important;
  left:var(--stay-left) !important;
  transform:translateX(-50%) !important;
  width:clamp(128px, calc((100% / var(--day-count)) * .82), 190px) !important;
  max-width:calc((100% / var(--day-count)) * 1.05) !important;
  min-width:116px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
  z-index:5 !important;
}
.stay-mini-v19{
  width:100% !important;
  min-width:0 !important;
  min-height:78px !important;
  padding:11px 10px !important;
  border-radius:18px !important;
  border:1px solid transparent !important;
  box-shadow:0 12px 28px rgba(17,24,39,.08) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  overflow:hidden !important;
}
.stay-label-v19{font-size:9px !important;font-weight:900 !important;letter-spacing:.08em !important;text-transform:uppercase !important;opacity:.82 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
.stay-city-v19{font-size:13px !important;font-weight:950 !important;line-height:1.05 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
.stay-eff-v19{font-size:17px !important;font-weight:950 !important;line-height:1.05 !important;letter-spacing:-.04em !important;font-variant-numeric:tabular-nums !important;white-space:nowrap !important;}
.stay-times-v19{font-size:10px !important;font-weight:850 !important;line-height:1.1 !important;opacity:.9 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;}
.stay-tone-good{background:linear-gradient(180deg,#ebfff1 0%,#d8f7e2 100%) !important;border-color:#8dd4a2 !important;color:#0f5132 !important}
.stay-tone-mid{background:linear-gradient(180deg,#fff8db 0%,#fff1bf 100%) !important;border-color:#f0d47a !important;color:#7a4b00 !important}
.stay-tone-low{background:linear-gradient(180deg,#ffe6e6 0%,#ffd3d3 100%) !important;border-color:#f1aaaa !important;color:#8a1c1c !important}
/* Mantiene horas sin STD/STA y con color suave */
.sector-time.stacked-time span:first-child::before,
.sector-time.stacked-time span:last-child::before{content:none !important;display:none !important;}
/* Evita que se pinte cualquier timeline antigua si quedase en caché del DOM */
.pair-card .pair-timeline-v16,.pair-card .pair-timeline-v17,.pair-card .pair-timeline-v18{display:none !important;}
@media(max-width:980px){
  .pair-timeline-v19{overflow-x:auto !important;min-width:calc(var(--day-count) * 166px) !important;}
  .pair-timeline-v19 .stay-slot-v19{width:136px !important;max-width:150px !important;min-width:120px !important;}
}


/* V0.2.21 · refinamiento visual y filtros no restrictivos por defecto */
/* D exterior con aspecto tipo V0.2.18: pegado, redondeado y fuera de la tarjeta */
.pair-card{overflow:visible !important;}
.pair-timeline-v19{overflow:visible !important;}
.pair-timeline-v19 .day-card-v19{overflow:visible !important;}
.pair-timeline-v19 .day-card-v19.d-before-v19::before,
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  bottom:0 !important;
  width:10px !important;
  background:linear-gradient(180deg,rgba(34,197,94,.88) 0%,rgba(34,197,94,.56) 55%,rgba(34,197,94,.28) 100%) !important;
  box-shadow:0 8px 18px rgba(34,197,94,.16) !important;
  z-index:8 !important;
  pointer-events:none !important;
  display:block !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::before{
  left:-7px !important;
  right:auto !important;
  border-radius:17px 0 0 17px !important;
}
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  right:-7px !important;
  left:auto !important;
  border-radius:0 17px 17px 0 !important;
}
/* Cubre el pequeño hueco blanco entre franja y tarjeta manteniendo la franja por fuera */
.pair-timeline-v19 .day-card-v19.d-before-v19{
  box-shadow:inset 3px 0 0 rgba(34,197,94,.24), 0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v19 .day-card-v19.d-after-v19{
  box-shadow:inset -3px 0 0 rgba(34,197,94,.24), 0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::after,
.pair-timeline-v19 .day-card-v19.d-after-v19::after{content:none !important;display:none !important;}

/* Horas de salida/llegada: sin STD/STA y con codificación más elegante */
.sector-time.stacked-time{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:3px !important;
  min-width:52px !important;
}
.sector-time.stacked-time span{
  min-width:42px !important;
  padding:1px 5px !important;
  border-radius:8px !important;
  text-align:right !important;
  font-variant-numeric:tabular-nums !important;
  line-height:1.15 !important;
  letter-spacing:-.03em !important;
  border:1px solid transparent !important;
}
.sector-time.stacked-time span:first-child{
  color:#92400e !important;
  background:#fff7ed !important;
  border-color:#fed7aa !important;
  font-weight:950 !important;
}
.sector-time.stacked-time span:last-child{
  color:#4c1d95 !important;
  background:#f5f3ff !important;
  border-color:#ddd6fe !important;
  font-weight:900 !important;
}
.sector-time.stacked-time span:first-child::before,
.sector-time.stacked-time span:last-child::before{content:none !important;display:none !important;}

/* Cajas de pernocta: jerarquía tipográfica más clara */
.stay-mini-v19{
  min-height:84px !important;
  padding:12px 11px !important;
  border-radius:19px !important;
}
.stay-label-v19{
  font-size:8.5px !important;
  letter-spacing:.105em !important;
  line-height:1.05 !important;
  margin-bottom:2px !important;
}
.stay-city-v19{
  font-size:15px !important;
  line-height:1.02 !important;
  letter-spacing:-.03em !important;
}
.stay-eff-v19{
  font-size:20px !important;
  line-height:1.02 !important;
  margin-top:1px !important;
}
.stay-times-v19{
  font-size:10.5px !important;
  line-height:1.1 !important;
  margin-top:1px !important;
}


/* V0.2.23 · marcador D exterior como offset adherido al borde de la subtarjeta */
.pair-card,
.pair-timeline-v19,
.pair-timeline-v19 .day-card-v19{
  overflow:visible !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19,
.pair-timeline-v19 .day-card-v19.d-after-v19{
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::before,
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  content:"" !important;
  position:absolute !important;
  top:-1px !important;
  bottom:-1px !important;
  width:9px !important;
  background:linear-gradient(180deg,rgba(34,197,94,.92) 0%,rgba(34,197,94,.58) 58%,rgba(34,197,94,.24) 100%) !important;
  border:1px solid rgba(134,239,172,.88) !important;
  box-shadow:0 8px 16px rgba(34,197,94,.13) !important;
  z-index:6 !important;
  pointer-events:none !important;
  display:block !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::before{
  left:-9px !important;
  right:auto !important;
  border-right:0 !important;
  border-radius:17px 0 0 17px !important;
  box-shadow:1px 0 0 rgba(34,197,94,.92), 0 8px 16px rgba(34,197,94,.13) !important;
}
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  right:-9px !important;
  left:auto !important;
  border-left:0 !important;
  border-radius:0 17px 17px 0 !important;
  box-shadow:-1px 0 0 rgba(34,197,94,.92), 0 8px 16px rgba(34,197,94,.13) !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::after,
.pair-timeline-v19 .day-card-v19.d-after-v19::after{
  content:none !important;
  display:none !important;
}


/* V0.2.24 · franja D exterior adyacente, sin hueco y sin superposición visible */
.pair-timeline-v19 .day-card-v19{
  position:relative !important;
  isolation:isolate !important;
  z-index:0 !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19,
.pair-timeline-v19 .day-card-v19.d-after-v19{
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::before,
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  content:"" !important;
  position:absolute !important;
  top:-1px !important;
  bottom:-1px !important;
  width:calc(100% + 9px) !important;
  border:1px solid rgba(134,239,172,.92) !important;
  background:linear-gradient(180deg,rgba(34,197,94,.94) 0%,rgba(34,197,94,.62) 58%,rgba(34,197,94,.26) 100%) !important;
  box-shadow:0 8px 16px rgba(34,197,94,.13) !important;
  z-index:-1 !important;
  pointer-events:none !important;
  display:block !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::before{
  left:-9px !important;
  right:auto !important;
  border-radius:17px !important;
}
.pair-timeline-v19 .day-card-v19.d-after-v19::before{
  right:-9px !important;
  left:auto !important;
  border-radius:17px !important;
}
.pair-timeline-v19 .day-card-v19.d-before-v19::after,
.pair-timeline-v19 .day-card-v19.d-after-v19::after{
  content:none !important;
  display:none !important;
}


/* V0.2.25 · franja D como offset exterior real: sin hueco, sin rellenar ni invadir la tarjeta */
.pair-timeline-v19 .day-card-v19{
  position:relative !important;
  overflow:visible !important;
  isolation:auto !important;
}
/* Desactiva el pseudo-elemento de V0.2.24, que podía teñir el fondo completo de la subtarjeta */
.pair-timeline-v19 .day-card-v19.d-before-v19::before,
.pair-timeline-v19 .day-card-v19.d-after-v19::before,
.pair-timeline-v19 .day-card-v19.d-before-v19::after,
.pair-timeline-v19 .day-card-v19.d-after-v19::after{
  content:none !important;
  display:none !important;
}
/* El offset se dibuja como una sombra sólida desplazada: la tarjeta opaca tapa la parte interior,
   por lo que solo queda visible la banda exterior y conserva exactamente el borde redondeado. */
.pair-timeline-v19 .day-card-v19.d-before-v19{
  box-shadow:
    -8px 0 0 0 rgba(34,197,94,.68),
    -9px 0 0 0 rgba(134,239,172,.88),
    0 4px 14px rgba(15,23,42,.05) !important;
}
.pair-timeline-v19 .day-card-v19.d-after-v19{
  box-shadow:
    8px 0 0 0 rgba(34,197,94,.68),
    9px 0 0 0 rgba(134,239,172,.88),
    0 4px 14px rgba(15,23,42,.05) !important;
}


/* V0.3.0 · PNP real bid, calendario, explicabilidad y depurador */
.planner-shell,.realbid-shell,.objective-shell,.debug-shell{padding:0 24px 28px}.planner-controls,.objective-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}.planner-controls label,.objective-controls label{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:12px;font-weight:800;color:#475569}.planner-controls input,.planner-controls select,.objective-controls select{width:100%;margin-top:6px;border:1px solid #e2e8f0;border-radius:12px;padding:9px;background:#f8fafc;font-weight:800}.calendar-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 14px}.cal-kpi{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:12px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.cal-kpi b{font-size:24px}.cal-kpi span,.cal-kpi small{display:block;color:#64748b;font-weight:800}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.week-head{font-weight:950;color:#64748b;text-align:center}.calendar-day{position:relative;overflow:hidden;isolation:isolate;min-height:104px;border:1px solid #e5e7eb;background:#fff;border-radius:18px;padding:8px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer;box-shadow:0 6px 18px rgba(15,23,42,.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.calendar-day:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.08)}.calendar-day>*{position:relative;z-index:1}.calendar-day span{font-weight:950}.calendar-day b{align-self:flex-start;border-radius:999px;padding:3px 8px;font-size:12px}.calendar-day em{font-style:normal;font-size:11px;color:#334155;font-weight:900}.calendar-day .calendar-overnight{display:block;margin-top:auto;font-size:24px;line-height:1;font-weight:950;letter-spacing:.08em}.calendar-day .calendar-extra{font-size:10px;font-weight:900;color:#475569}.calendar-day.has-pair-bg{border-color:rgba(148,163,184,.42)}.calendar-day.has-pair-bg:not(.has-pair-photo){background:linear-gradient(145deg,#334155 0%,#0f172a 100%)}.calendar-day.has-pair-bg::before{content:'';position:absolute;inset:0;background-image:var(--cal-photo,none);background-size:cover;background-position:var(--cal-photo-pos,center);transform:scale(1.03);z-index:-2}.calendar-day.has-pair-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.14) 0%,rgba(15,23,42,.10) 26%,rgba(15,23,42,.58) 100%);z-index:-1}.calendar-day.has-pair-bg span,.calendar-day.has-pair-bg em,.calendar-day.has-pair-bg .calendar-overnight,.calendar-day.has-pair-bg .calendar-extra{color:var(--cal-ink,#ffffff);text-shadow:var(--cal-shadow,0 2px 12px rgba(0,0,0,.72), 0 0 28px rgba(0,0,0,.45))}.calendar-day.has-pair-bg b{background:rgba(255,255,255,.9);color:#0f172a;border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(6px)}.calendar-day.dsa,.cal-legend.dsa{background:#eff6ff;border-color:#93c5fd}.calendar-day.db,.cal-legend.db{background:#fff7ed;border-color:#fdba74}.calendar-day.va,.cal-legend.va{background:#f0fdf4;border-color:#86efac}.calendar-day.rc,.cal-legend.rc{background:#fdf2f8;border-color:#f9a8d4}.calendar-day.xp,.cal-legend.xp{background:#f5f3ff;border-color:#c4b5fd}.calendar-day.free,.cal-legend.free{background:#ecfeff;border-color:#67e8f9}.calendar-day.rest,.cal-legend.rest{background:#f8fafc;border-color:#cbd5e1}.calendar-day.other,.cal-legend.other{background:#fef2f2;border-color:#fca5a5}.legend-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.cal-legend{padding:7px 10px;border:1px solid;border-radius:999px;font-size:12px;font-weight:900}.realbid-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:16px}.bid-list{display:flex;flex-direction:column;gap:10px}.bid-row{display:grid;grid-template-columns:30px 42px 1fr 36px;gap:10px;align-items:center;border:1px solid #e2e8f0;background:#fff;border-radius:18px;padding:10px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.bid-row.blocked{border-color:#fecaca;background:#fff7f7}.drag-handle{font-size:20px;color:#94a3b8;cursor:grab}.bid-rank{width:36px;height:36px;border-radius:12px;background:#0f172a;color:white;display:grid;place-items:center;font-weight:950}.bid-main b,.bid-main span,.bid-main small{display:block}.bid-main span{color:#64748b;font-weight:800}.bid-alert{margin-top:3px}.bid-alert.block{color:#b91c1c}.bid-alert.warn{color:#a16207}.empty-drop{padding:24px;border:2px dashed #cbd5e1;border-radius:18px;text-align:center;color:#64748b;font-weight:900}.mini-month{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.mini-month span{min-height:34px;border:1px solid #e5e7eb;border-radius:10px;padding:4px;font-weight:850}.mini-month b{display:block;font-size:10px}.source-list{margin:0;padding-left:18px;color:#64748b;font-weight:800}.ext-card-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ext-alert,.personal-tag{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950}.ext-alert.ok{background:#dcfce7;color:#166534}.ext-alert.warn{background:#fef3c7;color:#92400e}.ext-alert.bad{background:#fee2e2;color:#991b1b}.personal-tag{background:#eef2ff;color:#3730a3}.pnp-blocked{outline:2px solid rgba(239,68,68,.16)}.bid-btn{background:#ecfeff!important}.why-btn{background:#f5f3ff!important}.tag-btn{background:#fff7ed!important}.score-explain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.explain-list{margin:0 0 14px;padding-left:20px;color:#334155;font-weight:800}.rule-alert{border-radius:14px;padding:9px 11px;margin:6px 0;font-weight:850}.rule-alert.block{background:#fee2e2;color:#991b1b}.rule-alert.warn{background:#fef3c7;color:#92400e}.rule-alert.ok{background:#dcfce7;color:#166534}.objective-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.objective-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;box-shadow:0 8px 24px rgba(15,23,42,.05)}.objective-card b,.objective-card span{display:block}.objective-card span{font-size:12px;color:#64748b;font-weight:800}.compare-advanced{margin:18px 24px}.compare-bars{margin:12px 0}.compare-bars>b{display:block;margin-bottom:8px}.compare-bar-row{display:grid;grid-template-columns:120px 1fr 48px;gap:8px;align-items:center;margin:5px 0}.compare-bar-row span{font-weight:900;color:#475569}.compare-bar-row div{height:14px;background:#f1f5f9;border-radius:999px;overflow:hidden}.compare-bar-row i{display:block;height:100%;background:#cbd5e1;border-radius:999px}.compare-bar-row.winner i{background:#22c55e}.compare-bar-row em{text-align:right;font-style:normal;font-weight:900}.tag-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tag-grid button{border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:12px;font-weight:900}.tag-grid button.active{background:#eef2ff;border-color:#818cf8}.debug-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.debug-grid .wide{grid-column:1/-1}.debug-table{max-height:360px;overflow:auto;border:1px solid #e5e7eb;border-radius:16px}.debug-table div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:8px 10px;border-bottom:1px solid #f1f5f9}.debug-table span{color:#64748b;font-weight:800}.hidden-debug:not(.active-view){display:none!important}.card-actions .bid-btn,.card-actions .why-btn,.card-actions .tag-btn{min-width:46px}@media(max-width:980px){.calendar-kpis,.realbid-grid,.debug-grid{grid-template-columns:1fr}.month-grid{min-width:760px}.planner-shell{overflow:auto}.compare-bar-row{grid-template-columns:86px 1fr 42px}}


/* V0.3.2 · detalle interactivo de día en calendario */
.day-detail-dialog{
  max-width:min(980px,94vw);
}
.day-detail-content{
  max-height:86vh;
  overflow:auto;
}
.day-detail-hero{
  position:relative;
  overflow:hidden;
  min-height:138px;
  border-radius:22px;
  padding:18px;
  margin:10px 0 14px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:linear-gradient(145deg,#334155 0%,#0f172a 100%);
  color:#fff;
  box-shadow:0 16px 36px rgba(15,23,42,.18);
}
.day-detail-hero.has-photo::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--cal-photo);
  background-size:cover;
  background-position:var(--cal-photo-pos,center);
  transform:scale(1.03);
  z-index:0;
}
.day-detail-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,.10) 0%,rgba(15,23,42,.18) 34%,rgba(15,23,42,.72) 100%);
  z-index:1;
}
.day-detail-hero>*{
  position:relative;
  z-index:2;
  color:var(--cal-ink,#fff);
  text-shadow:var(--cal-shadow,0 2px 12px rgba(0,0,0,.72),0 0 28px rgba(0,0,0,.45));
}
.day-detail-hero small{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:950;
  font-size:11px;
}
.day-detail-hero b{
  font-size:48px;
  line-height:.95;
  letter-spacing:.06em;
  font-weight:950;
}
.day-detail-hero span{
  font-weight:900;
  opacity:.95;
}
.day-detail-tools{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto auto;
  gap:10px;
  align-items:end;
  margin:12px 0 16px;
}
.day-detail-tools label{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:10px;
  font-weight:900;
  color:#475569;
}
.day-detail-tools select{
  width:100%;
  margin-top:6px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:10px;
  background:#f8fafc;
  font-weight:900;
}
.day-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:10px 0 16px;
}
.day-detail-pair{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:22px;
  padding:14px;
  margin:12px 0;
  box-shadow:0 10px 28px rgba(15,23,42,.06);
}
.day-detail-pair-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.day-detail-pair-head b,
.day-detail-pair-head span{
  display:block;
}
.day-detail-pair-head b{
  font-size:18px;
}
.day-detail-pair-head span{
  color:#64748b;
  font-weight:850;
  font-size:12px;
}
.day-detail-pair h4{
  margin:12px 0 6px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#64748b;
}
.day-detail-sectors,
.day-detail-overnights{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:8px;
}
.day-detail-sectors div,
.day-detail-overnights div{
  border:1px solid #eef2f7;
  background:#f8fafc;
  border-radius:14px;
  padding:9px 10px;
}
.day-detail-sectors b,
.day-detail-sectors span,
.day-detail-overnights b,
.day-detail-overnights span{
  display:block;
}
.day-detail-sectors b,
.day-detail-overnights b{
  font-weight:950;
  color:#0f172a;
}
.day-detail-sectors span,
.day-detail-overnights span,
.muted.mini{
  color:#64748b;
  font-weight:850;
  font-size:12px;
}
@media(max-width:760px){
  .day-detail-tools,
  .day-detail-grid{
    grid-template-columns:1fr;
  }
  .day-detail-hero b{
    font-size:38px;
  }
}


/* V0.3.3 · mosaico dinámico de tarjetas */
.cards-grid{
  grid-template-columns:repeat(var(--mosaic-cols,6),minmax(0,1fr)) !important;
  gap:var(--mosaic-gap,16px) !important;
  grid-auto-flow:dense !important;
  align-items:stretch !important;
}
.mosaic-control{
  min-width:260px;
  max-width:360px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(226,232,240,.9);
  border-radius:18px;
  padding:10px 12px;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}
.mosaic-control label{
  display:block;
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#64748b;
  margin-bottom:6px;
}
.mosaic-row{
  display:grid;
  grid-template-columns:minmax(130px,1fr) auto;
  align-items:center;
  gap:10px;
}
#mosaicSize{
  width:100%;
  accent-color:#b21224;
}
#mosaicSizeLabel{
  white-space:nowrap;
  font-size:12px;
  font-weight:900;
  color:#334155;
}
html[data-mosaic-size="1"] .pair-card .card-prelude,
html[data-mosaic-size="2"] .pair-card .card-prelude{
  padding-bottom:10px;
}
html[data-mosaic-size="1"] .pair-title h3{
  font-size:18px;
}
html[data-mosaic-size="1"] .pair-title span{
  font-size:11px;
}
html[data-mosaic-size="1"] .meta-strip.compact-3{
  grid-template-columns:1fr;
}
html[data-mosaic-size="1"] .meta-item.destination-card{
  min-height:72px;
}
html[data-mosaic-size="1"] .effective-card b,
html[data-mosaic-size="1"] .meta-item b{
  font-size:18px;
}
html[data-mosaic-size="1"] .badges .badge:nth-child(n+4),
html[data-mosaic-size="2"] .badges .badge:nth-child(n+5){
  display:none;
}
html[data-mosaic-size="4"] .pair-card,
html[data-mosaic-size="5"] .pair-card{
  border-radius:28px;
}
html[data-mosaic-size="5"] .destination-card{
  min-height:128px;
}
html[data-mosaic-size="5"] .pair-title h3{
  font-size:26px;
}
@media(max-width:1180px){
  .cards-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
  .pair-card{grid-column:span 2 !important;}
  html[data-mosaic-size="4"] .pair-card,html[data-mosaic-size="5"] .pair-card{grid-column:span 4 !important;}
}
@media(max-width:760px){
  .sticky-count{position:relative;top:auto}
  .mosaic-control{order:3;max-width:none;width:100%}
  .section-head.sticky-count{align-items:stretch}
  .cards-grid{grid-template-columns:1fr !important;}
  .pair-card{grid-column:1 / -1 !important;}
}


/* V0.3.9 · calendario en inicio, progra anterior y densidad automática */
.mosaic-control-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.mosaic-control .mosaic-auto{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  font-size:11px;
  font-weight:950;
  color:#334155;
  text-transform:none;
  letter-spacing:0;
}
html[data-mosaic-auto="1"] #mosaicSize{
  opacity:.55;
}
.dashboard-calendar-panel{
  margin-top:16px;
}
.section-mini-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.section-mini-head h3{
  margin:0;
}
.section-mini-head p{
  margin:3px 0 0;
  color:var(--muted);
}
.dashboard-month-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
}
.dashboard-month-grid .week-head{
  font-size:11px;
  font-weight:950;
  color:#64748b;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.dashboard-month-grid .calendar-day{
  min-height:78px;
  border-radius:16px;
  padding:7px;
}
.dashboard-month-grid .calendar-day span{
  font-size:11px;
}
.dashboard-month-grid .calendar-day .calendar-overnight{
  font-size:18px;
}
.dashboard-month-grid .calendar-day em{
  font-size:10px;
}
.calendar-day.has-prev-program{
  outline:2px solid rgba(14,165,233,.28);
  outline-offset:-2px;
}
.prev-program-badge{
  background:rgba(255,255,255,.92) !important;
  color:#075985 !important;
  border:1px solid rgba(125,211,252,.85) !important;
}
.cal-legend.prev,
.calendar-day.prev{
  background:#f0f9ff;
  border-color:#7dd3fc;
}
.mini-month span.prev{
  background:#e0f2fe;
  border-color:#7dd3fc;
}
.day-detail-prev{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.day-detail-prev>div{
  border:1px solid #bae6fd;
  background:linear-gradient(180deg,#f0f9ff 0%,#e0f2fe 100%);
  border-radius:16px;
  padding:10px 12px;
}
.day-detail-prev b,
.day-detail-prev span,
.day-detail-prev small{
  display:block;
}
.day-detail-prev b{
  color:#075985;
  font-weight:950;
}
.day-detail-prev span{
  color:#0369a1;
  font-size:12px;
  font-weight:850;
}
.day-detail-prev small{
  color:#0f172a;
  font-size:11px;
  font-weight:800;
  margin-top:4px;
}
@media(max-width:900px){
  .dashboard-month-grid{
    gap:6px;
  }
  .dashboard-month-grid .calendar-day{
    min-height:64px;
  }
  .dashboard-month-grid .calendar-day .calendar-overnight{
    font-size:14px;
  }
}


/* V0.3.9 · Dashboard reorganizado + menú contextual calendario */
.dashboard-layout-v35{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,520px);
  gap:18px;
  align-items:start;
}
.dashboard-main-v35{
  min-width:0;
}
.dashboard-side-v35{
  display:flex;
  flex-direction:column;
  gap:14px;
  position:sticky;
  top:96px;
  align-self:start;
}
.dashboard-side-v35 .dashboard-calendar-panel{
  margin-top:0;
}
.dashboard-side-v35 .dashboard-month-grid{
  gap:7px;
}
.dashboard-side-v35 .calendar-day{
  min-height:74px;
}
.dashboard-side-v35 .calendar-day .calendar-overnight{
  font-size:17px;
}
.calendar-day{
  cursor:pointer;
}
.calendar-day:focus-visible{
  outline:3px solid rgba(178,18,36,.34);
  outline-offset:2px;
}
.calendar-remove-pairing{
  position:absolute !important;
  right:6px;
  top:6px;
  z-index:9 !important;
  width:22px;
  height:22px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(15,23,42,.72);
  color:#fff !important;
  font-size:15px !important;
  line-height:1 !important;
  font-weight:950 !important;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
  opacity:0;
  transform:scale(.92);
  transition:.15s ease;
}
.calendar-day:hover .calendar-remove-pairing,
.calendar-day:focus-within .calendar-remove-pairing{
  opacity:1;
  transform:scale(1);
}
.calendar-remove-pairing:hover{
  background:#be123c;
}
.calendar-context-menu{
  position:fixed;
  z-index:9999;
  width:min(340px,calc(100vw - 20px));
  max-height:min(78vh,680px);
  overflow:auto;
  border:1px solid rgba(226,232,240,.95);
  border-radius:20px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px);
  box-shadow:0 24px 80px rgba(15,23,42,.22);
  padding:10px;
}
.ctx-head{
  padding:10px 10px 8px;
  border-bottom:1px solid #eef2f7;
  margin-bottom:8px;
}
.ctx-head b,
.ctx-head span{
  display:block;
}
.ctx-head b{
  font-size:16px;
  color:#0f172a;
}
.ctx-head span{
  font-size:12px;
  color:#64748b;
  font-weight:850;
}
.ctx-section{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:6px 0;
}
.ctx-section small{
  font-size:10px;
  font-weight:950;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:#94a3b8;
  padding:0 8px;
}
.ctx-section button{
  display:grid;
  grid-template-columns:52px 1fr;
  align-items:center;
  gap:8px;
  text-align:left;
  border:1px solid transparent;
  background:#f8fafc;
  border-radius:14px;
  padding:9px 10px;
  cursor:pointer;
}
.ctx-section button:hover{
  background:#eef2f7;
  border-color:#dbe4ef;
}
.ctx-section button.active{
  background:#fff1f2;
  border-color:#fda4af;
}
.ctx-section button.danger{
  background:#fff7f7;
}
.ctx-section button.danger:hover{
  background:#ffe4e6;
  border-color:#fda4af;
}
.ctx-section button b{
  color:#0f172a;
  font-weight:950;
}
.ctx-section button span{
  color:#64748b;
  font-size:12px;
  font-weight:850;
}
.ctx-section.muted{
  background:#f8fafc;
  border:1px solid #eef2f7;
  border-radius:14px;
  padding:8px;
}
.ctx-section.muted p{
  margin:4px 0;
  font-size:12px;
  font-weight:850;
  color:#475569;
}
.ctx-footer{
  border-top:1px solid #eef2f7;
  margin-top:6px;
  padding:9px 8px 2px;
  color:#94a3b8;
  font-size:11px;
  font-weight:850;
}
@media(max-width:1180px){
  .dashboard-layout-v35{
    grid-template-columns:1fr;
  }
  .dashboard-side-v35{
    position:static;
  }
}
@media(max-width:720px){
  .calendar-remove-pairing{
    opacity:1;
  }
  .dashboard-side-v35 .calendar-day{
    min-height:62px;
  }
}


/* V0.3.9 · undo, histórico, puja clara y responsive iPhone/iPad */
.bid-btn{
  background:#ffffff !important;
  color:#334155 !important;
  border:1px solid #cbd5e1 !important;
  box-shadow:0 4px 12px rgba(15,23,42,.06) !important;
}
.bid-btn .bid-plus{
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:999px;
  border:2px solid currentColor;
  font-size:18px;
  line-height:16px;
  font-weight:950;
}
.bid-btn:hover{
  color:#047857 !important;
  border-color:#34d399 !important;
  background:#ecfdf5 !important;
}
.bid-btn.bid-active{
  background:linear-gradient(135deg,#10b981 0%,#059669 100%) !important;
  color:#ffffff !important;
  border-color:#059669 !important;
  box-shadow:0 10px 24px rgba(16,185,129,.28) !important;
}
.bid-btn.bid-active .bid-plus{
  border-color:#fff;
}
.pair-card.status-fav{
  border-color:#f59e0b !important;
  box-shadow:0 14px 34px rgba(245,158,11,.19),0 0 0 3px rgba(245,158,11,.09) !important;
  background:linear-gradient(180deg,#fffdf8 0%,#ffffff 32%) !important;
}
.pair-card.status-fav .pair-card-head{
  background:linear-gradient(180deg,#fff7ed 0%,#fff 100%) !important;
}
.detail-actions-v36{
  margin-top:14px;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.detail-actions-v36 .mini-btn{
  min-width:40px;
}
.usage-history-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.history-col h4{
  margin:0 0 7px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#64748b;
}
.history-item{
  width:100%;
  border:1px solid #eef2f7;
  background:#f8fafc;
  border-radius:14px;
  padding:9px 10px;
  text-align:left;
  cursor:pointer;
  margin-bottom:6px;
}
.history-item:hover{
  background:#fff;
  border-color:#dbe4ef;
  box-shadow:0 8px 18px rgba(15,23,42,.06);
}
.history-item b,
.history-item span{
  display:block;
}
.history-item b{
  font-weight:950;
  color:#0f172a;
}
.history-item span{
  color:#64748b;
  font-size:12px;
  font-weight:850;
}
.muted.mini{
  font-size:12px;
}

/* Touch targets + adaptable layout for iPhone/iPad */
button,
.btn,
.mini-btn,
.icon-btn,
.calendar-day,
.history-item,
input,
select{
  touch-action:manipulation;
}
@media(pointer:coarse){
  .mini-btn,
  .icon-btn{
    min-width:42px;
    min-height:42px;
  }
  .card-actions{
    gap:8px;
  }
  .calendar-remove-pairing{
    opacity:1;
    transform:scale(1);
  }
  .calendar-day{
    min-height:92px;
  }
}
@media(max-width:1024px){
  body{
    -webkit-text-size-adjust:100%;
  }
  .app-shell{
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
  }
  .tabs{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .tabs::-webkit-scrollbar{
    display:none;
  }
  .dashboard-layout-v35{
    grid-template-columns:1fr;
  }
  .dashboard-side-v35{
    position:static;
  }
  .kpi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:640px){
  .kpi-grid{
    grid-template-columns:1fr !important;
  }
  .section-head{
    gap:12px;
  }
  .dashboard-month-grid,
  .month-grid{
    gap:5px !important;
  }
  .dashboard-month-grid .calendar-day,
  .month-grid .calendar-day{
    min-height:70px !important;
    padding:6px !important;
    border-radius:14px !important;
  }
  .calendar-day .calendar-overnight{
    font-size:14px !important;
  }
  .calendar-day em,
  .calendar-day small{
    display:none;
  }
  .detail-dialog{
    max-width:100vw !important;
    width:100vw !important;
    margin:0 !important;
    max-height:100dvh !important;
  }
  .detail-dialog::backdrop{
    background:rgba(15,23,42,.5);
  }
  .detail-content,
  .day-detail-content{
    max-height:100dvh !important;
    border-radius:22px 22px 0 0 !important;
    padding-bottom:max(18px,env(safe-area-inset-bottom)) !important;
  }
  .detail-grid,
  .day-detail-grid,
  .score-explain-grid{
    grid-template-columns:1fr !important;
  }
}
@supports (-webkit-touch-callout:none){
  .calendar-context-menu,
  .detail-content{
    -webkit-overflow-scrolling:touch;
  }
  input,select,textarea{
    font-size:16px;
  }
}


/* V0.3.9 · pulido tarjetas, botones y pujas */
.pair-card{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
  isolation:isolate !important;
}
.pair-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:var(--radius);
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.pair-card>*{
  position:relative;
  z-index:1;
}
.pair-card:hover::before{
  box-shadow:var(--shadow);
  border-color:#f3c7cd;
}
.pair-card-head{
  border-radius:var(--radius) var(--radius) 0 0 !important;
  overflow:hidden;
}
.pair-card.status-fav::before{
  border-color:#f59e0b !important;
  box-shadow:0 14px 34px rgba(245,158,11,.20),0 0 0 3px rgba(245,158,11,.10) !important;
  background:linear-gradient(180deg,#fff7ed 0%,#ffffff 34%) !important;
}
.pair-card.status-fav .pair-card-head{
  background:linear-gradient(180deg,#fff7ed 0%,#ffffff 100%) !important;
}
.pair-card.status-duda::before{
  border-color:#facc15 !important;
  box-shadow:0 14px 34px rgba(250,204,21,.17),0 0 0 3px rgba(250,204,21,.10) !important;
  background:linear-gradient(180deg,#fffbeb 0%,#ffffff 34%) !important;
}
.pair-card.status-duda .pair-card-head{
  background:linear-gradient(180deg,#fffbeb 0%,#ffffff 100%) !important;
}
.pair-card.status-descartado::before{
  background:#f2f4f7 !important;
}
.ext-card-strip{
  margin:10px 14px 0 !important;
  padding:0 !important;
}
.ext-alert,.personal-tag{
  margin-left:0 !important;
}
.bid-btn{
  background:#ffffff !important;
  color:#334155 !important;
  border:1px solid #cbd5e1 !important;
  box-shadow:0 4px 12px rgba(15,23,42,.06) !important;
}
.bid-btn .bid-icon-svg{
  width:23px;
  height:23px;
  display:block;
}
.bid-btn:hover{
  color:#047857 !important;
  border-color:#34d399 !important;
  background:#ecfdf5 !important;
}
.bid-btn.bid-active{
  background:linear-gradient(135deg,#10b981 0%,#059669 100%) !important;
  color:#ffffff !important;
  border-color:#059669 !important;
  box-shadow:0 10px 24px rgba(16,185,129,.28), inset 0 -3px 0 rgba(4,120,87,.55) !important;
}
.card-actions .mini-btn.active{
  color:#92400e !important;
  background:#fef3c7 !important;
  box-shadow:inset 0 -3px 0 #f59e0b,0 0 0 1px #fde68a !important;
}
.card-actions .mini-btn.duda-active{
  color:#8a5b00 !important;
  background:#fffbeb !important;
  box-shadow:inset 0 -3px 0 #facc15,0 0 0 1px #fde68a !important;
}
.card-actions .discard-btn.discard-active{
  color:#b91c1c !important;
  background:#fff1f2 !important;
  box-shadow:inset 0 -3px 0 #ef4444,0 0 0 1px #fecdd3 !important;
}
.card-actions .compare-btn.compare-active{
  color:#92400e !important;
  background:#fffbeb !important;
  box-shadow:inset 0 -3px 0 #f59e0b,0 0 0 1px #fed7aa !important;
}
.why-btn,.tag-btn{
  border:1px solid transparent !important;
}
.short-row,.bid-row{
  cursor:pointer;
}
.short-row:hover,.bid-row:hover{
  border-color:#cbd5e1 !important;
  box-shadow:0 12px 28px rgba(15,23,42,.08) !important;
  transform:translateY(-1px);
}
.short-row:focus-visible,.bid-row:focus-visible{
  outline:3px solid rgba(178,18,36,.25);
  outline-offset:2px;
}
.realbid-shell .bid-row .icon-btn{
  cursor:pointer;
}
.history-col{
  min-width:0;
}
@media(max-width:760px){
  .ext-card-strip{
    margin-left:10px !important;
    margin-right:10px !important;
  }
  .short-row{
    grid-template-columns:42px 1fr;
  }
  .short-actions{
    grid-column:2;
    justify-content:flex-end;
  }
}


/* V0.3.9 · cierre inferior redondeado real: la cinta de botones ya no crea fondo cuadrado */
.pair-card{
  border-radius:var(--radius) !important;
  overflow:visible !important;
}
.pair-card::before{
  inset:0 !important;
  border-radius:var(--radius) !important;
}
.pair-card .card-actions{
  margin-top:auto !important;
  border-top:1px solid #f0f2f6 !important;
  border-radius:0 0 var(--radius) var(--radius) !important;
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(248,250,252,.92) 100%) !important;
  overflow:hidden !important;
  clip-path:inset(0 round 0 0 var(--radius) var(--radius)) !important;
  padding:11px 14px 14px !important;
  position:relative !important;
  z-index:2 !important;
}
.pair-card .card-actions::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:0 0 var(--radius) var(--radius);
  pointer-events:none;
  box-shadow:inset 0 -1px 0 rgba(226,232,240,.9);
}
.pair-card .pair-timeline-v19{
  padding-bottom:10px !important;
}
.pair-card .card-prelude{
  background:transparent !important;
}
.pair-card.status-fav .card-actions{
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,247,237,.92) 100%) !important;
}
.pair-card.status-duda .card-actions{
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,251,235,.94) 100%) !important;
}
.pair-card.status-descartado .card-actions{
  background:linear-gradient(180deg,rgba(255,255,255,.84) 0%,rgba(242,244,247,.90) 100%) !important;
}
@supports not (clip-path:inset(0 round 0 0 24px 24px)){
  .pair-card .card-actions{
    overflow:hidden !important;
  }
}


/* V0.3.9 · estados cromáticos coordinados entre tarjeta y detalle */
.card-actions .mini-btn.active,
.detail-actions-v36 .mini-btn.active{
  color:#991b1b !important;
  background:#fee2e2 !important;
  box-shadow:inset 0 -3px 0 #dc2626,0 0 0 1px #fecaca,0 8px 18px rgba(220,38,38,.18) !important;
}
.pair-card.status-fav::before{
  border-color:#dc2626 !important;
  box-shadow:0 16px 38px rgba(220,38,38,.25),0 0 0 3px rgba(220,38,38,.12) !important;
  background:linear-gradient(180deg,#fee2e2 0%,#ffffff 35%) !important;
}
.pair-card.status-fav .pair-card-head,
.pair-card.status-fav .card-actions{
  background:linear-gradient(180deg,#fee2e2 0%,#fff5f5 100%) !important;
}
.card-actions .compare-btn.compare-active,
.detail-actions-v36 .compare-btn.compare-active{
  color:#1d4ed8 !important;
  background:#dbeafe !important;
  box-shadow:inset 0 -3px 0 #2563eb,0 0 0 1px #bfdbfe,0 8px 18px rgba(37,99,235,.20) !important;
}
.bid-btn.bid-active{
  background:linear-gradient(135deg,#10b981 0%,#059669 100%) !important;
  color:#ffffff !important;
  border-color:#059669 !important;
  box-shadow:inset 0 -3px 0 rgba(4,120,87,.62),0 0 0 1px rgba(5,150,105,.34),0 12px 26px rgba(16,185,129,.36) !important;
}
.detail-content.detail-fav,
.detail-content.detail-duda,
.detail-content.detail-compare,
.detail-content.detail-bid{
  position:relative;
  overflow:hidden;
}
.detail-content.detail-fav{
  border:1px solid rgba(220,38,38,.25);
  box-shadow:0 22px 70px rgba(220,38,38,.18),0 0 0 4px rgba(220,38,38,.08);
  background:linear-gradient(180deg,#fff1f2 0%,#ffffff 150px);
}
.detail-content.detail-duda{
  border:1px solid rgba(250,204,21,.34);
  box-shadow:0 22px 70px rgba(250,204,21,.13),0 0 0 4px rgba(250,204,21,.08);
  background:linear-gradient(180deg,#fffbeb 0%,#ffffff 150px);
}
.detail-content.detail-compare{
  border:1px solid rgba(37,99,235,.25);
  box-shadow:0 22px 70px rgba(37,99,235,.16),0 0 0 4px rgba(37,99,235,.08);
}
.detail-content.detail-bid{
  border:1px solid rgba(5,150,105,.25);
  box-shadow:0 22px 70px rgba(16,185,129,.17),0 0 0 4px rgba(16,185,129,.09);
}
.detail-content.detail-fav.detail-compare{
  box-shadow:0 22px 70px rgba(220,38,38,.16),0 0 0 4px rgba(37,99,235,.08);
}
.detail-content.detail-fav.detail-bid{
  box-shadow:0 22px 70px rgba(220,38,38,.16),0 0 0 4px rgba(16,185,129,.09);
}
.detail-content.detail-duda.detail-compare{
  box-shadow:0 22px 70px rgba(250,204,21,.13),0 0 0 4px rgba(37,99,235,.08);
}

/* V0.4.0 · backup completo */
.btn.success-soft{background:#ecfdf3;color:#047857;border:1px solid #a7f3d0;box-shadow:var(--shadow-soft)}
.btn.success-soft:hover{background:#d1fae5}
