/* Calendario de Cruceros PRO - estilos claros (namespaced) */

.bpm-crz-pro{
  --c-bg:#f7fbff;
  --c-card:#ffffff;
  --c-border:rgba(15,23,42,.10);
  --c-text:#0f172a;
  --c-muted:rgba(15,23,42,.68);
  --c-blue:#2aa8ff;
  --c-blue-soft:#a8ddff;
  --c-pill:#eaf4ff;
  --c-pill-strong:#d8eeff;
  max-width:1200px;
  margin:0 auto;
  padding:10px 12px;
  color:var(--c-text);
  font-size:16px;
  line-height:1.45;
}

.bpm-crz-pro *{box-sizing:border-box}

/* Header */
.bpm-crz-pro__header{
  position:relative;
  background:linear-gradient(180deg, rgba(42,168,255,.18) 0%, rgba(42,168,255,.05) 50%, rgba(255,255,255,1) 100%);
  border:1px solid var(--c-border);
  border-radius:26px;
  padding:18px 18px 16px;
  overflow:hidden;
}

.bpm-crz-pro__topbar{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
}

.bpm-crz-pro__topbar-left{justify-self:start;display:flex;align-items:center;gap:10px}
.bpm-crz-pro__topbar-center{justify-self:center}
.bpm-crz-pro__topbar-right{justify-self:end}

.bpm-crz-pro__kicker-label{font-size:14px;color:var(--c-muted)}

.bpm-crz-pro .bpm-crz-season{
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.95);
  border-radius:999px;
  padding:10px 14px;
  font-size:14px;
  color:var(--c-text);
}

.bpm-crz-pro__views{
  display:flex;
  gap:6px;
  padding:6px;
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.85);
  border-radius:999px;
}

.bpm-crz-pro .bpm-crz-view{
  border:0;
  background:transparent;
  padding:10px 16px;
  border-radius:999px;
  font-weight:700;
  color:rgba(15,23,42,.75);
  cursor:pointer;
}
.bpm-crz-pro .bpm-crz-view.is-active{
  background:rgba(42,168,255,.18);
  color:var(--c-text);
}

.bpm-crz-pro__updated{
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.90);
  border-radius:999px;
  padding:10px 14px;
  font-size:14px;
  color:var(--c-muted);
}

.bpm-crz-pro__heading{margin-top:18px}
.bpm-crz-pro__title{margin:0 0 6px;font-size:38px;line-height:1.1}
.bpm-crz-pro__subtitle{margin:0;font-size:16px;color:var(--c-muted)}

/* Hero art (crucero line) */
.bpm-crz-pro__hero-art{
  position:absolute;
  right:18px;
  bottom:10px;
  color:var(--c-blue);
  opacity:.35;
  pointer-events:none;
}
.bpm-crz-pro__hero-art .bpm-crz-ship{width:240px;max-width:35vw;height:auto}
@keyframes bpmFloat{0%{transform:translateY(0)}50%{transform:translateY(-6px)}100%{transform:translateY(0)}}
.bpm-crz-pro__hero-art{animation:bpmFloat 6s ease-in-out infinite}

/* Layout */
.bpm-crz-pro__grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:14px;
  margin-top:14px;
}

.bpm-crz-pro__highlights{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.bpm-crz-pro__card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:22px;
  padding:14px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.bpm-crz-pro__badge{display:inline-block;background:rgba(56,211,159,.16);color:#0b6248;border:1px solid rgba(56,211,159,.25);padding:6px 10px;border-radius:999px;font-size:13px;font-weight:700;margin-bottom:10px}
.bpm-crz-pro__badge--alt{background:rgba(42,168,255,.16);color:#084f7c;border-color:rgba(42,168,255,.25)}

.bpm-crz-pro__empty{color:var(--c-muted);font-size:14px;padding:8px 4px}

/* Sidebar upcoming */
.bpm-crz-pro__sidebar{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:22px;
  padding:14px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.bpm-crz-pro__sidebar-head h3{margin:0 0 10px;font-size:18px}
.bpm-crz-pro__upcoming{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow:auto;padding-right:6px}
.bpm-crz-pro__upcoming-item{border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:10px 12px;background:rgba(248,251,255,.8)}
.bpm-crz-pro__upcoming-date{font-size:13px;color:var(--c-muted);margin-bottom:4px}
.bpm-crz-pro__upcoming-ship{font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:10px}
.bpm-crz-pro__upcoming-time{font-size:13px;color:var(--c-muted);margin-top:2px}
.bpm-crz-pro__pill{font-size:12px;background:rgba(42,168,255,.14);border:1px solid rgba(42,168,255,.22);padding:4px 8px;border-radius:999px;color:#084f7c;font-weight:700;white-space:nowrap}
.bpm-crz-pro__pill--soon{background:rgba(56,211,159,.14);border-color:rgba(56,211,159,.22);color:#0b6248}

/* Filters */
.bpm-crz-pro__filters{display:flex;align-items:center;gap:12px;margin-top:14px}
.bpm-crz-pro__filter{display:flex;align-items:center;gap:10px}
.bpm-crz-pro__filter--grow{flex:1}
.bpm-crz-pro .bpm-crz-month,
.bpm-crz-pro .bpm-crz-q{
  width:100%;
  border:1px solid var(--c-border);
  background:rgba(255,255,255,.95);
  border-radius:999px;
  padding:12px 14px;
  font-size:14px;
  color:var(--c-text);
}
.bpm-crz-pro .bpm-crz-month{max-width:220px}

/* List cards */
.bpm-crz-pro__list{margin-top:14px}
.bpm-crz-pro__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

.bpm-crz-card{
  background:var(--c-card);
  border:1px solid var(--c-border);
  border-radius:22px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
  overflow:hidden;
}
.bpm-crz-card__media{width:100%;aspect-ratio:16/9;overflow:hidden;background:#eaf3fb}
.bpm-crz-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.bpm-crz-card__media.is-empty{background:linear-gradient(135deg, rgba(42,168,255,.08), rgba(56,211,159,.06))}

.bpm-crz-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px 0}
.bpm-crz-card__tag{font-size:12px;font-weight:800;background:rgba(56,211,159,.16);border:1px solid rgba(56,211,159,.24);color:#0b6248;padding:4px 8px;border-radius:999px}
.bpm-crz-card__date{font-size:14px;color:var(--c-muted)}

.bpm-crz-card__times{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px 0}
.bpm-crz-time-pill{display:inline-flex;align-items:center;gap:6px;background:var(--c-pill);border:1px solid rgba(42,168,255,.18);padding:6px 10px;border-radius:999px;font-size:13px;color:#084f7c;font-weight:700}
.bpm-crz-time-pill.is-na{opacity:.65;color:rgba(15,23,42,.62);background:rgba(15,23,42,.05);border-color:rgba(15,23,42,.10)}

.bpm-crz-card__ship{margin:10px 14px 0;font-size:30px;letter-spacing:-.2px}

.bpm-crz-card__meta{padding:10px 14px 8px;color:var(--c-muted);font-size:14px}
.bpm-crz-flagline{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--c-muted);margin-bottom:6px}
.bpm-crz-flagemoji{font-size:20px}

.bpm-crz-card__details{padding:10px 14px 14px;border-top:1px solid rgba(15,23,42,.08)}
.bpm-crz-card__details summary{cursor:pointer;color:#1d4ed8;font-weight:800;list-style:none}
.bpm-crz-card__details summary::-webkit-details-marker{display:none}
.bpm-crz-card__details-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;color:var(--c-muted);font-size:15px}
.bpm-crz-card__loc,.bpm-crz-card__notes{grid-column:1/-1}

/* Ship block (today/next) */
.bpm-crz-pro__ship-wrap{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start}
.bpm-crz-pro__ship-media{width:120px;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#eaf3fb;border:1px solid rgba(15,23,42,.08)}
.bpm-crz-pro__ship-media img{width:100%;height:100%;object-fit:cover;display:block}
.bpm-crz-pro__ship-media.is-empty{background:linear-gradient(135deg, rgba(42,168,255,.10), rgba(56,211,159,.06))}
.bpm-crz-pro__ship-name{font-weight:900;font-size:18px;margin:0}
.bpm-crz-pro__ship-date{color:var(--c-muted);font-size:13px}
.bpm-crz-pro__ship-times{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
.bpm-crz-pro__ship-mini{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;color:var(--c-muted);font-size:13px}

/* Calendar */
.bpm-crz-pro__calendar{margin-top:10px}
.bpm-crz-cal{background:var(--c-card);border:1px solid var(--c-border);border-radius:22px;box-shadow:0 14px 34px rgba(15,23,42,.06);padding:14px}
.bpm-crz-cal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.bpm-crz-cal__month{font-size:20px;font-weight:900}
.bpm-crz-cal__nav{display:flex;gap:8px}
.bpm-crz-cal__btn{border:1px solid var(--c-border);background:rgba(248,251,255,.95);border-radius:999px;padding:8px 12px;cursor:pointer;font-weight:900;line-height:1;appearance:none;-webkit-appearance:none;color:var(--c-text)}

.bpm-crz-cal__week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin:8px 0 10px;color:var(--c-muted);font-size:13px;text-align:center}
.bpm-crz-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}

.bpm-crz-cal__day{border:1px solid rgba(15,23,42,.08);border-radius:16px;min-height:78px;padding:10px;background:rgba(248,251,255,.75);position:relative}
.bpm-crz-cal__day.is-out{opacity:.45}
.bpm-crz-cal__day.is-today{border-color:rgba(56,211,159,.35);box-shadow:0 0 0 3px rgba(56,211,159,.10) inset}
.bpm-crz-cal__num{font-weight:900;font-size:14px}
.bpm-crz-cal__chips{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.bpm-crz-cal__chip{display:block;border:1px solid rgba(42,168,255,.18);background:var(--c-pill);color:#084f7c;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.bpm-crz-cal__chip.is-na{opacity:.7;background:rgba(15,23,42,.05);border-color:rgba(15,23,42,.10);color:rgba(15,23,42,.62)}
.bpm-crz-cal__more{font-size:12px;color:var(--c-muted);font-weight:800;padding:0 6px}

/* Modal content (calendar day) */
.bpm-crz-modal__card{display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:start;border:1px solid rgba(15,23,42,.08);border-radius:18px;padding:12px;background:rgba(248,251,255,.75);margin:10px 0}
.bpm-crz-modal__media{width:160px;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#eaf3fb;border:1px solid rgba(15,23,42,.08)}
.bpm-crz-modal__media img{width:100%;height:100%;object-fit:cover;display:block}
.bpm-crz-modal__media.is-empty{background:linear-gradient(135deg, rgba(42,168,255,.10), rgba(56,211,159,.06))}
.bpm-crz-modal__cardbody{min-width:0}
.bpm-crz-modal__ship{font-weight:950;font-size:22px;letter-spacing:-.2px;margin:2px 0 8px}
.bpm-crz-modal__times{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.bpm-crz-modal__row{color:var(--c-muted);font-size:14px;line-height:1.45;margin:6px 0;overflow-wrap:anywhere}

@media (max-width: 680px){
  .bpm-crz-modal__card{grid-template-columns:1fr}
  .bpm-crz-modal__media{width:100%}
}

/* Modal */
.bpm-crz-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:18px;z-index:99999}
.bpm-crz-modal[hidden]{display:none !important}
.bpm-crz-modal__dialog{width:min(900px,95vw);background:var(--c-card);border:1px solid var(--c-border);border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.25);padding:16px;position:relative}
.bpm-crz-modal__close{position:absolute;right:14px;top:14px;border:0;background:rgba(15,23,42,.06);border:1px solid rgba(15,23,42,.10);width:44px;height:44px;border-radius:999px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.bpm-crz-modal__close svg{width:20px;height:20px}
.bpm-crz-modal__title{font-weight:900;font-size:22px;margin:6px 0 10px}

/* Footer */
.bpm-crz-pro__foot{margin-top:12px;color:var(--c-muted);font-size:13px}

/* Calendar-only mode */
.bpm-crz-pro.is-calendar-only .bpm-crz-pro__grid,
.bpm-crz-pro.is-calendar-only .bpm-crz-pro__filters{display:none !important}
.bpm-crz-pro.is-calendar-only .bpm-crz-pro__views-wrap{margin-top:10px}

/* Responsive */
@media (max-width: 980px){
  .bpm-crz-pro__grid{grid-template-columns:1fr}
  .bpm-crz-pro__highlights{grid-template-columns:1fr}
  .bpm-crz-pro__cards{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 640px){
  .bpm-crz-pro__topbar{grid-template-columns:1fr;justify-items:stretch}
  .bpm-crz-pro__topbar-right{justify-self:start}
  .bpm-crz-pro__views{justify-content:center}
  .bpm-crz-pro__title{font-size:30px}
  .bpm-crz-pro__cards{grid-template-columns:1fr}
  .bpm-crz-pro__ship-wrap{grid-template-columns:1fr}
  .bpm-crz-pro__ship-media{width:100%}
}
