
/* ---------------- TOKENS / BASE ---------------- */
:root{
  /* Marca: ROSA = primario, MORADO = secundario */
  --pink:#c80168;
  --purple:#653bcb;

  /* Paleta “premium” */
  --bg:#ffffff;
  --canvas:#f7f8fb;              /* fondo de página */
  --header-bg:#fff0f7;           /* header distinto del fondo (rosa muy suave) */
  --footer-bg:#f2eefe;           /* footer distinto del fondo (morado muy suave) */
  --ink:#171923;
  --muted:#667085;
  --line:#e8eaf2;
  --success:#16a34a; --warn:#f59e0b; --danger:#ef4444;

  /* Dimensiones */
  --radius:16px; --radius-sm:12px;
  --shadow:0 12px 32px rgba(18, 24, 38, .08);
  --container:1200px;

  /* Espacios */
  --s1:.5rem; --s2:.75rem; --s3:1rem; --s4:1.5rem; --s5:2rem; --s6:3rem;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:linear-gradient(180deg,#fff 0%, var(--canvas) 100%);color:var(--ink);
  font-family:"Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.55; letter-spacing:.1px;
}
a{color:inherit;text-decoration:none}
.container{max-width:var(--container);margin-inline:auto;padding-inline:24px}
main{padding-block:var(--s5)}
h1,h2,h3{letter-spacing:.2px}
h1{font-size:2rem;margin:0 0 .8rem}
h2{font-size:1.35rem;margin:0 0 .6rem}
h3{font-size:1.1rem;margin:0 0 .45rem}
p{margin:.25rem 0}
.help{color:var(--muted);font-size:.95rem}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}

.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1024px){ .grid-3{grid-template-columns:1fr 1fr} }
@media (max-width:680px){ .grid-2,.grid-3{grid-template-columns:1fr} }

/* ---------------- Controles ---------------- */
.input, select, textarea{
  width:100%;min-height:44px;padding:0 14px;border-radius:12px;background:#fff;outline:none;
  border:1px solid var(--line); transition: box-shadow .2s ease, border-color .2s ease;
}
.input:focus, select:focus, textarea:focus{border-color:color-mix(in srgb, var(--pink) 44%, #fff); box-shadow:0 0 0 3px color-mix(in srgb, var(--pink) 16%, transparent)}
textarea{padding:12px 14px;min-height:120px}
.label{font-weight:700;margin-bottom:6px;display:block}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.alert-stock{
  width:auto;min-height:20px;padding: 10px 14px;border-radius:12px;background:#fff;outline:none;
  border:1px solid red; transition: box-shadow .2s ease, border-color .2s ease; margin-bottom: 20px;
  display: flex;
  gap: 1em;
}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  height:44px;padding:0 16px;border-radius:12px;border:1px solid transparent;font-weight:800;cursor:pointer;
  transition:filter .2s ease, transform .06s ease, background .25s ease, border-color .25s ease;
}
.btn:active{transform:translateY(1px)}
/* Base sólido ROSA; degradado SOLO en interacción */
.btn.primary{background:var(--pink);color:#fff}
.btn.primary:is(:hover,:focus-visible,:active){background:linear-gradient(90deg,var(--pink),var(--purple))}
.btn.secondary{background:#fff;border-color:var(--line);color:var(--ink)}
.btn.link{border: none !important;}
.btn.secondary:hover{filter:brightness(.96)}
.btn.ghost{background:transparent;border-color:var(--line)}
.btn.icon{width:44px;padding:0}

/* Chips / badges */
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:999px;font-weight:800;font-size:.82rem}
.badge.success{background:#e8fff0;color:#166534;border:1px solid #b8f0ce}
.badge.completed{background:#fae8ff;color: var(--pink);border:1px solid var(--header-bg)}
.badge.warn{background:#fff7e6;color:#8a5b00;border:1px solid #ffe0a6}
.badge.danger{background:#ffecec;color:#8a1b1b;border:1px solid #ffd1d1}

/* ---------------- Header Pro ---------------- */
.site-header{
  position:sticky;top:0;z-index:70;background:var(--header-bg);
  border-bottom:none; box-shadow:0 2px 12px rgba(200,1,104,.06);
}
/* Topbar fino de contacto */
.topbar{background:#fff;border-bottom:1px solid #ffe1ef}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;min-height:36px}
.topbar__inner .help{font-size:.9rem}

/* Navbar principal */
.navbar{display:flex;align-items:center;justify-content:space-between; min-height:76px}
.logo{display:flex;align-items:center;gap:.75rem;font-weight:900}
/* .logo__mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--pink),var(--purple))} */
.logo__img{width:70px;height:50px}
/* Contenedor “píldora” para el menú */
.nav-shell{display:flex;align-items:center;gap:12px}
.nav-pills{
  display:flex;align-items:center;gap:4px; padding:6px;
}
.nav-pills a{
  position:relative;padding:10px 14px;border-radius:999px;color:#2e2a35;font-weight:800
}
.nav-pills a:hover{color:var(--pink)}
.nav-pills a.active{color:var(--pink)}
.nav-pills a::after{
  content:"";position:absolute;left:12px;right:12px;bottom:6px;height:3px;border-radius:2px;
  background:var(--pink);opacity:0;transform:scaleX(.4);transition:.22s ease
}
.nav-pills a:hover::after,.nav-pills a.active::after{opacity:1;transform:scaleX(1)}

.nav-right{display:flex;align-items:center;gap:10px}
.btn.icon{width:40px;height:40px;border-radius:999px;padding:0}
.hamburger{display:none}


@media (max-width:860px){
  .nav-pills{display:none}
  .hamburger{display: inline-flex;}
}

/* Drawer móvil */
.drawer{
  position:fixed;top:112px;right:0;bottom:0;width:320px;background:#fff;border-left:1px solid var(--line);
  transform:translateX(100%);transition:transform .25s ease;z-index:75;padding:20px;display:flex;flex-direction:column;gap:8px
}
.drawer.open{transform:translateX(0)}
.drawer a{padding:10px 12px;border-radius:12px}
.drawer a:hover{background:#f7f7fb}

/* ---------------- Slider Pro ---------------- */
.slider{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#e9eef5}
.slider__track{display:flex;transition:transform .6s ease}
.slider__item{min-width:100%;height:440px;position:relative;isolation:isolate}
.slide-1{background:linear-gradient(120deg,#9bb2c4 0%, #d6dee6 100%)}
.slide-2{background:linear-gradient(120deg,#bfb2d9 0%, #e7ddff 100%)}
.slide-3{background:linear-gradient(120deg,#ffd6e8 0%, #ffe7f2 100%)}
/* overlay triangular */
/* .slider__item::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:color-mix(in srgb, #6787a1 65%, transparent);
  -webkit-clip-path:polygon(0 0, 65% 0, 45% 100%, 0 100%);
          clip-path:polygon(0 0, 65% 0, 45% 100%, 0 100%);
  opacity:.8;
} */
/* título grande encima, estilo hero */
.slider__caption{position:absolute; left:72px; top:50%; transform:translateY(-50%); color:#2a313c; z-index:1; max-width:600px;}
.slider__title{font-size:56px; line-height:1.06; letter-spacing:.3px; margin:0 0 10px}
.slider__desc{color:#fff; font-size:18px; max-width:520px; text-shadow:0 1px 0 rgba(0,0,0,.06)}
/* flechas circulares */
.slider__arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:56px;height:56px;border-radius:999px;border:1px solid color-mix(in srgb,#fff 40%, var(--line));
  background:rgba(255,255,255,.6); backdrop-filter:blur(6px);
  display:grid;place-items:center;cursor:pointer;z-index:2
}
.slider__arrow:hover{background:#fff}
.slider__arrow--prev{left:22px}
.slider__arrow--next{right:22px}
.slider__arrow svg{stroke:#5e6a7b}
.slider__controls{position:absolute;inset:auto 0 14px 0;display:flex;justify-content:center;gap:8px;z-index:2}
.slider__dot{width:10px;height:10px;border-radius:999px;background:#cbd5e1;border:1px solid #b6c0cf;cursor:pointer}
.slider__dot.active{background:var(--pink);border-color:var(--pink)}
@media (max-width:760px){
  .slider__caption{left:24px}
  .slider__title{font-size:36px}
  .slider__desc{font-size:15px}
  .slider__arrow{display:none}
}

/* ---------------- Productos ---------------- */
.product{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}
.product__body{display:grid;gap:8px}
.qty{display:flex;align-items:center;gap:.6rem}
.qty select{width:120px}

/* ---------------- Tablas pro ---------------- */
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
.table-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}
.table{width:100%;border-collapse:separate;border-spacing:0}
.table th,.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle; text-align: center !important;}
.table thead th{background:#fbfbfe;text-align:center !important;font-size:.92rem}
.table tr:hover td{background:#fff6fb}
.table .num{width:60px}
.pagination{display:flex;gap:.4rem;align-items:center}
.pagination button{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer}
.pagination .info{color:var(--muted);font-size:.9rem}
.pagination .infoLinks{color:var(--muted);font-size:.9rem}
.pagination .infoEVisa{color:var(--muted);font-size:.9rem}

/* Subidor de PDF estilizado */
.upload-chip{
  display:inline-flex;align-items:center;gap:.55rem;padding:.55rem .8rem;height:40px;
  border-radius:999px;background:#f6f7fb;border:1px dashed #cfd5e3;color:#394055;font-weight:700;cursor:pointer;
}
.upload-chip:hover{background:#fff}
.upload-chip svg{flex:0 0 auto}

/* ---------------- Modales ---------------- */
.modal{position:fixed;inset:0;background:rgba(18,24,38,.35);display:none;align-items:center;justify-content:center;padding:18px;z-index:80}
.modal.open{display:flex}
.modal__dialog{width:min(100%,980px);background:#fff;border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--line);max-height:85vh;overflow:auto}
.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.modal__body{padding:20px;display:grid;gap:16px}
.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}
fieldset{border:1px solid var(--line);border-radius:16px;padding:18px}
legend{padding:0 8px;font-weight:800}

/* ---------------- Footer ---------------- */
.site-footer{border-top:1px solid #ddd7ff;background:var(--footer-bg);margin-top:var(--s6);box-shadow:0 -2px 12px rgba(101,59,203,.06)}
.footer-inner{display:grid;gap:16px;padding-block:22px}
.footer-cols{display:grid;gap:14px;grid-template-columns:2fr 1fr 1fr 2fr}
.footer-cols a{color:inherit}
@media (max-width:900px){ .footer-cols{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .footer-cols{grid-template-columns:1fr} }

.pdfSvg {
  display: flex;
  justify-content: center;
}

/* ---------------- WhatsApp FAB ---------------- */
/* .whatsapp-fab{
  position:fixed;right:16px;bottom:84px;width:56px;height:56px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;background:#25d366;border:none;color:#fff;
  box-shadow:var(--shadow);cursor:pointer;z-index:85;text-decoration:none
}
.whatsapp-fab:hover{filter:brightness(.95)} */

.whatsapp-fab {
  position: fixed;
  right: 16px;
  bottom: 84px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #25d366;
  border: none;
  color: #fff;
  box-shadow: var(--shadow);
  cursor: pointer;
  z-index: 85;
  text-decoration: none;
}
.whatsapp-fab:hover {
  filter: brightness(.95);
}

/* Ventana flotante */
.whatsapp-fab::before {
  content: "Hola Ana, necesito ayuda en la plataforma de visas de BCortes";
  position: absolute;
  right: 70px; /* se ubica a la izquierda del botón */
  bottom: 0;
  background: #fff;
  color: #333;
  font-size: 14px;
  padding: 8px 12px;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transform: translateY(10px);
}

/* Flechita de la burbuja */
.whatsapp-fab::after {
  content: "";
  position: absolute;
  right: 60px;
  bottom: 18px;
  border-width: 6px;
  border-style: solid;
  border-color: transparent transparent transparent #fff;
  opacity: 0;
  transition: opacity 0.3s ease;
}

/* Mostrar ventana al pasar el cursor */
.whatsapp-fab:hover::before,
.whatsapp-fab:hover::after {
  opacity: 1;
  transform: translateY(0);
}
.btn-whatsapp{
  color: #25D366;
  font-weight: bold;
  text-decoration: none;
}
.btn-whatsapp:hover {
  color: #1ebe5a;
  text-decoration: underline;
}
/* ---------------- Utilidades ---------------- */
.hidden{display:none!important}
/* .route{display:none} */
.route { display: block; } /* Siempre visible */

.route.active{display:block}

.sm-text-input{
  font-size: small;
  color: gray;
}
.pdf-icon{
  display: flex;
  align-items: center;
}
.btn-ver{
   background: none; 
    border: none; 
    padding: 0; 
    margin: 0; 
    cursor: pointer; 
    display: inline-flex; 
    align-items: center; 
    justify-content: center;
}
.btn-pdf{
   background: none; 
    border: none; 
    padding: 0; 
    margin: 0; 
    cursor: pointer; 
    display: inline-flex; 
    align-items: center; 
    justify-content: center;
}
.estatus-evisa-heading{
  display: flex;
  justify-content: space-between;
}
.action-btn{
   background: none; 
    border: none; 
    padding: 0; 
    margin: 0; 
    cursor: pointer; 
    display: inline-flex; 
    align-items: center; 
    justify-content: center;
}

.custom-select.input {
    position: relative;
    width: 380px;
    cursor: default;
  }

  /* Toggle visible */
  .select-toggle {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  .select-toggle .title { font-weight:600; color:#111; }
  .select-toggle .subtitle { color:var(--muted); font-size:13px; margin-left:8px; }

  .chev { transition: transform .18s ease; }

  /* Opciones (tooltip) */
  .select-options {
    position: absolute;
    left: 0;
    top: calc(100% + 8px);
    width: 100%;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 6px;
    max-height: 260px;
    overflow:auto;
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity .16s ease, transform .18s ease;
    z-index: 40;
  }

  /* Mostrar al hover del contenedor (tooltip-like) */
  .custom-select.input:hover .select-options,
  .select-options.open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .option {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding: 10px 12px;
    border-radius: 8px;
    margin: 4px 2px;
    cursor:pointer;
  }
  .option:hover { background: #f2f8ff; }

  .option .label { font-weight:500; color:#111; }
  .option .muted { color: var(--muted); font-size:13px; }

  /* Opción Hotel tiene panel tooltip lateral */
  .option.has-hotel { position: relative; }

  .hotel-panel {
    display: none;
    position: absolute;
    left: calc(100% + 10px);
    top: 0;
    width: 340px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: var(--shadow);
    padding: 10px;
    z-index: 60;
    max-height: 300px;
    overflow:auto;
  }

  /* Aparecer al hover sobre la opción Hotel (tooltip) */
  .option.has-hotel:hover .hotel-panel,
  .option.has-hotel.open .hotel-panel {
    display: block;
  }

  .hotel-panel h4 { margin:0 0 8px 0; font-size:14px; }
  .hotel-panel ul { list-style: none; padding:0; margin:0; }
  .hotel-panel li {
    padding: 8px; border-radius: 6px; cursor: pointer;
  }
  .hotel-panel li:hover { background:#f7fbff; }

  /* Responsive: en pantallas pequeñas el panel aparece debajo */
  @media (max-width: 640px) {
    .hotel-panel { left: 0; top: calc(100% + 8px); width: 100%; }
    .custom-select.input { width: 100%; }
  }

  /* Campo readonly de dirección */
  .address-row { margin-top: 12px; display:flex; gap:8px; align-items:center; }
  .address-row input[readonly] {
    flex:1;
    background:#f7f9fc;
    border:1px solid var(--border);
    padding:10px 12px;
    border-radius:8px;
    color:#111;
  }

    /* .tooltip {
    position: fixed;
    top: 80%;
    left: 45%;
    transform: translate(-50%, -50%) translateY(20px);
    background: var(--success, #28a745);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 14px;
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    z-index: 80;
  }

  .tooltip-success {
    position: fixed;
    top: 80%;
    left: 45%;
    transform: translate(-50%, -50%) translateY(20px);
    background: var(--success, #28a745);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 14px;
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    z-index: 80;
  }
 .tooltip-error {
    position: fixed;
    top: 80%;
    left: 45%;
    transform: translate(-50%, -50%) translateY(20px);
    background: var(--danger, #ef4444);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 14px;
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    z-index: 80;
  }

  .tooltip.show {
    opacity: 1;
    transform: translateY(0);
  } */

  #tooltip {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background: rgba(30, 30, 30, 0.95);
  color: #fff;
  padding: 0.75rem 1.25rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.3px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
  z-index: 9999;
}

/* Estado visible */
#tooltip.show {
  opacity: 1;
  transform: translateY(0);
}

/* Estado oculto */
#tooltip.hidden {
  display: none;
}

  .user-register{
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px;
  }

  .green-warning{
    color: var(--success);
  }

  .password-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.75em;
}
.password-wrapper:focus-within {
  border-color: color-mix(in srgb, var(--pink) 44%, #fff);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 16%, transparent);
}

/* Input interno sin borde */
.password-wrapper input {
  width: 100%;
  border: none;
  outline: none;
  font-size: 16px;
  padding: 0.6em 0;
  background: transparent;
}

/* Botón del ojo */
.password-wrapper button {
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  padding: 0 0.5em;
  transition: stroke 0.2s ease;
}

.password-wrapper button:hover svg {
  stroke: var(--pink);
}