/**
 * Portal cliente — mobile-first, glassmorphism, tema claro / oscuro.
 */
:root {
  --portal-safe-b: env(safe-area-inset-bottom, 0px);
  --portal-safe-t: env(safe-area-inset-top, 0px);

  --portal-glass-bg: rgba(255, 255, 255, 0.04);
  --portal-glass-border: transparent;
  --portal-glass-shadow: 0 24px 56px -20px rgba(0, 0, 0, 0.38);

  --portal-glass-strong-bg: rgba(255, 255, 255, 0.055);
  --portal-glass-strong-border: transparent;
  --portal-glass-strong-inset: rgba(255, 255, 255, 0.07);
  --portal-glass-strong-shadow: 0 32px 64px -22px rgba(0, 0, 0, 0.42);

  --portal-map-border: transparent;
  --portal-map-shadow-outer: 0 20px 50px rgba(0, 0, 0, 0.5);
  --portal-map-shadow-inset: inset 0 0 60px rgba(15, 20, 18, 0.35);

  --portal-progress-track-bg: rgba(255, 255, 255, 0.08);
  --portal-quote-row-border: rgba(255, 255, 255, 0.06);

  --portal-header-bg: rgba(8, 12, 10, 0.72);
  --portal-header-border: rgba(255, 255, 255, 0.1);

  --portal-glow-pulse-1: rgba(45, 212, 191, 0.2);
  --portal-glow-pulse-2: rgba(45, 212, 191, 0.12);
}

html[data-portal-theme="light"] {
  --portal-glass-bg: rgba(255, 255, 255, 0.48);
  --portal-glass-border: transparent;
  --portal-glass-shadow: 0 20px 48px -18px rgba(15, 45, 35, 0.08);

  --portal-glass-strong-bg: rgba(255, 255, 255, 0.62);
  --portal-glass-strong-border: transparent;
  --portal-glass-strong-inset: rgba(255, 255, 255, 0.88);
  --portal-glass-strong-shadow: 0 24px 56px -20px rgba(15, 45, 35, 0.1);

  --portal-map-border: transparent;
  --portal-map-shadow-outer: 0 16px 40px rgba(15, 45, 35, 0.12);
  --portal-map-shadow-inset: inset 0 0 48px rgba(255, 255, 255, 0.45);

  --portal-progress-track-bg: rgba(15, 45, 35, 0.1);
  --portal-quote-row-border: rgba(15, 45, 35, 0.08);

  --portal-header-bg: rgba(255, 255, 255, 0.82);
  --portal-header-border: rgba(18, 52, 40, 0.1);

  --portal-glow-pulse-1: rgba(45, 180, 155, 0.35);
  --portal-glow-pulse-2: rgba(45, 180, 155, 0.2);
}

@keyframes portal-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes portal-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.portal-enter {
  animation: portal-rise 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.portal-glass {
  background: var(--portal-glass-bg);
  backdrop-filter: blur(28px) saturate(135%);
  -webkit-backdrop-filter: blur(28px) saturate(135%);
  border: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.055),
    var(--portal-glass-shadow);
}

.portal-glass-strong {
  background: var(--portal-glass-strong-bg);
  backdrop-filter: blur(36px) saturate(140%);
  -webkit-backdrop-filter: blur(36px) saturate(140%);
  border: none;
  box-shadow:
    inset 0 1px 0 var(--portal-glass-strong-inset),
    var(--portal-glass-strong-shadow);
}

/* Tarjetas de pedido: hover sin “anillo” de borde */
.portal-order-card:hover {
  background: rgba(255, 255, 255, 0.065);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 36px 72px -24px rgba(0, 0, 0, 0.48);
}

html[data-portal-theme="light"] body.portal-body .portal-order-card:hover {
  background: rgba(255, 255, 255, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 28px 56px -18px rgba(15, 45, 35, 0.12);
}

/* Archivados: bloque principal (más aire, integrado al fondo) */
.portal-archived-trigger {
  border: none;
  background: rgba(255, 255, 255, 0.038);
  backdrop-filter: blur(32px) saturate(130%);
  -webkit-backdrop-filter: blur(32px) saturate(130%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    0 28px 60px -24px rgba(0, 0, 0, 0.4);
  transition: background 0.28s ease, box-shadow 0.28s ease;
}

@media (hover: hover) {
  .portal-archived-trigger:hover {
    background: rgba(255, 255, 255, 0.048);
  }
}

html[data-portal-theme="light"] body.portal-body .portal-archived-trigger {
  background: rgba(255, 255, 255, 0.52);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88),
    0 22px 50px -20px rgba(15, 45, 35, 0.09);
}

@media (hover: hover) {
  html[data-portal-theme="light"] body.portal-body .portal-archived-trigger:hover {
    background: rgba(255, 255, 255, 0.58);
  }
}

.portal-archived-row {
  transition: background 0.22s ease, transform 0.2s ease;
}

@media (hover: hover) {
  .portal-archived-row.portal-glass:hover {
    background: rgba(255, 255, 255, 0.055);
  }
}

@media (hover: hover) {
  html[data-portal-theme="light"] body.portal-body .portal-archived-row.portal-glass:hover {
    background: rgba(255, 255, 255, 0.58);
  }
}

/* Categorías de interés: panel amplio, chips suaves */
.portal-categories-shell {
  border: none;
  background: rgba(255, 255, 255, 0.036);
  backdrop-filter: blur(32px) saturate(130%);
  -webkit-backdrop-filter: blur(32px) saturate(130%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.045),
    0 32px 70px -28px rgba(0, 0, 0, 0.42);
}

html[data-portal-theme="light"] body.portal-body .portal-categories-shell {
  background: rgba(255, 255, 255, 0.5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 24px 56px -22px rgba(15, 45, 35, 0.09);
}

.portal-interest-tag {
  border: none;
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  color: rgba(204, 251, 241, 0.9);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

html[data-portal-theme="light"] body.portal-body .portal-interest-tag {
  color: #0f766e;
  background: rgba(13, 148, 136, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.portal-map-shell {
  position: relative;
  border-radius: 1.25rem;
  overflow: hidden;
  border: none;
  box-shadow: var(--portal-map-shadow-outer);
}

.portal-map-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: var(--portal-map-shadow-inset);
  z-index: 500;
}

#portal-map {
  height: min(52vh, 380px);
  width: 100%;
  z-index: 1;
}

@media (min-width: 768px) {
  #portal-map {
    height: 360px;
  }
}

.portal-progress-track {
  height: 6px;
  border-radius: 999px;
  background: var(--portal-progress-track-bg);
  overflow: hidden;
}

.portal-progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    rgba(45, 212, 191, 0.5),
    rgba(45, 212, 191, 1),
    rgba(52, 211, 153, 0.8)
  );
  background-size: 200% 100%;
  transition: width 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.portal-progress-fill--pulse {
  animation: portal-shimmer 3s ease-in-out infinite;
}

.portal-touch-target {
  min-height: 44px;
  min-width: 44px;
}

/* Leaflet: sin controles de zoom visibles para cliente */
.leaflet-control-zoom {
  display: none !important;
}

.portal-map-boat-marker {
  background: transparent !important;
  border: none !important;
}

.portal-map-boat-svg {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.portal-map-boat-svg svg {
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.55));
}

.portal-quote-row {
  border-bottom: 1px solid var(--portal-quote-row-border);
}

.portal-quote-row:last-child {
  border-bottom: none;
}

/* Badges de estado (color semántico + punto, sin ancho forzado en flex) */
.portal-status-badge {
  border-width: 1px;
  border-style: solid;
  backdrop-filter: blur(16px) saturate(130%);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.portal-status-badge-dot {
  width: 0.5rem;
  height: 0.5rem;
  flex-shrink: 0;
}

.portal-status-badge--docs {
  background: linear-gradient(145deg, rgba(239, 68, 68, 0.28), rgba(239, 68, 68, 0.1));
  border-color: rgba(252, 165, 165, 0.4);
  color: #fecaca;
}

.portal-status-badge--docs .portal-status-badge-dot {
  background: #f87171;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

.portal-status-badge--transit {
  background: linear-gradient(145deg, rgba(245, 158, 11, 0.3), rgba(245, 158, 11, 0.12));
  border-color: rgba(252, 211, 77, 0.45);
  color: #fde68a;
}

.portal-status-badge--transit .portal-status-badge-dot {
  background: #fbbf24;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.portal-status-badge--arriving {
  background: linear-gradient(145deg, rgba(16, 185, 129, 0.28), rgba(16, 185, 129, 0.1));
  border-color: rgba(110, 231, 183, 0.4);
  color: #a7f3d0;
}

.portal-status-badge--arriving .portal-status-badge-dot {
  background: #34d399;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.portal-status-badge--done {
  background: linear-gradient(145deg, rgba(45, 212, 191, 0.26), rgba(45, 212, 191, 0.1));
  border-color: rgba(94, 234, 212, 0.45);
  color: #ccfbf1;
}

.portal-status-badge--done .portal-status-badge-dot {
  background: #2dd4bf;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.portal-status-badge--canceled {
  background: linear-gradient(145deg, rgba(148, 163, 184, 0.2), rgba(148, 163, 184, 0.08));
  border-color: rgba(148, 163, 184, 0.35);
  color: #cbd5e1;
}

.portal-status-badge--canceled .portal-status-badge-dot {
  background: #94a3b8;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15);
}

.portal-status-badge--default {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.05));
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.82);
}

.portal-status-badge--default .portal-status-badge-dot {
  background: rgba(255, 255, 255, 0.55);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

@keyframes portal-badge-live-pulse {
  0%,
  100% {
    box-shadow:
      0 2px 12px rgba(0, 0, 0, 0.18),
      inset 0 1px 0 rgba(255, 255, 255, 0.1);
    opacity: 1;
  }
  50% {
    box-shadow:
      0 2px 14px rgba(0, 0, 0, 0.22),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
    opacity: 0.96;
  }
}

.portal-status-badge.portal-status-live {
  animation: portal-badge-live-pulse 4s ease-in-out infinite;
}

/* Panel descripción: relieve y aire interno */
.portal-description-panel {
  border: none;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(255, 255, 255, 0.032) 55%,
    rgba(0, 0, 0, 0.06) 100%
  );
  backdrop-filter: blur(22px) saturate(125%);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
  box-shadow:
    0 20px 48px -16px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Texto largo (p. ej. descripción generada desde cotización) */
.portal-description-text {
  white-space: pre-line;
  word-break: break-word;
}

/* Fondo de página */
/* Forzar fondo claro por encima de utilidades Tailwind (.bg-dark-bg) */
html[data-portal-theme="light"] body.portal-body,
html[data-portal-theme="light"] body.portal-body.bg-dark-bg {
  background: linear-gradient(165deg, #f2f7f4 0%, #e8f0ec 45%, #dfeae4 100%) !important;
  color: #122018;
}

html[data-portal-theme="light"] body.portal-body .text-white {
  color: #0f1714 !important;
}

/* Sin color-mix (Safari/iOS antiguos en producción ignoraban la regla y el tema quedaba a medias) */
html[data-portal-theme="light"] body.portal-body .text-white\/85 {
  color: rgba(15, 23, 20, 0.85) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/90 {
  color: rgba(15, 23, 20, 0.9) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/95 {
  color: rgba(15, 23, 20, 0.95) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/80 {
  color: rgba(15, 23, 20, 0.8) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/75 {
  color: rgba(15, 23, 20, 0.75) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/70 {
  color: rgba(15, 23, 20, 0.7) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/25 {
  color: rgba(15, 23, 20, 0.25) !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/20 {
  color: rgba(15, 23, 20, 0.2) !important;
}

html[data-portal-theme="light"] body.portal-body .text-accent-teal,
html[data-portal-theme="light"] body.portal-body .text-teal-200,
html[data-portal-theme="light"] body.portal-body .text-teal-300 {
  color: #0f766e !important;
}

html[data-portal-theme="light"] body.portal-body .text-dim {
  color: #4d6056 !important;
}

html[data-portal-theme="light"] body.portal-body .border-white\/10,
html[data-portal-theme="light"] body.portal-body .border-white\/12,
html[data-portal-theme="light"] body.portal-body .border-white\/15,
html[data-portal-theme="light"] body.portal-body .border-white\/20,
html[data-portal-theme="light"] body.portal-body .border-white\/25,
html[data-portal-theme="light"] body.portal-body .border-white\/30 {
  border-color: rgba(18, 48, 38, 0.12) !important;
}

html[data-portal-theme="light"] body.portal-body .ring-white\/10,
html[data-portal-theme="light"] body.portal-body .ring-white\/5 {
  --tw-ring-color: rgba(18, 48, 38, 0.12) !important;
}

html[data-portal-theme="light"] body.portal-body .bg-white\/5,
html[data-portal-theme="light"] body.portal-body .bg-white\/10 {
  background-color: rgba(255, 255, 255, 0.65) !important;
}

html[data-portal-theme="light"] body.portal-body .bg-white\/\[0\.03\] {
  background-color: rgba(255, 255, 255, 0.55) !important;
}

html[data-portal-theme="light"] body.portal-body .bg-white\/\[0\.06\] {
  background-color: rgba(255, 255, 255, 0.72) !important;
}

html[data-portal-theme="light"] body.portal-body .bg-black\/20 {
  background-color: rgba(255, 255, 255, 0.45) !important;
}

html[data-portal-theme="light"] body.portal-body .divide-white\/\[0\.06\] > :not([hidden]) ~ :not([hidden]) {
  border-color: rgba(18, 48, 38, 0.08) !important;
}

html[data-portal-theme="light"] body.portal-body header.sticky {
  background: var(--portal-header-bg) !important;
  border-color: var(--portal-header-border) !important;
}

html[data-portal-theme="light"] body.portal-body .grain-overlay {
  opacity: 0.025 !important;
}

html[data-portal-theme="light"] body.portal-body .portal-theme-toggle {
  color: #1a2e24 !important;
  border-color: rgba(18, 48, 38, 0.15) !important;
  background: rgba(255, 255, 255, 0.5) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-theme-toggle:hover {
  background: rgba(255, 255, 255, 0.85) !important;
  border-color: rgba(45, 180, 155, 0.35) !important;
}

/* Alertas del portal en tema claro */
html[data-portal-theme="light"] body.portal-body .border-red-400\/30 {
  border-color: rgba(220, 80, 70, 0.35) !important;
}

html[data-portal-theme="light"] body.portal-body .text-red-200 {
  color: #7f1d1d !important;
}

html[data-portal-theme="light"] body.portal-body .border-emerald-400\/30 {
  border-color: rgba(16, 120, 80, 0.35) !important;
}

html[data-portal-theme="light"] body.portal-body .text-emerald-100 {
  color: #064e3b !important;
}

html[data-portal-theme="light"] body.portal-body .border-amber-400\/30 {
  border-color: rgba(180, 120, 30, 0.4) !important;
}

html[data-portal-theme="light"] body.portal-body .text-amber-100 {
  color: #713f12 !important;
}

html[data-portal-theme="light"] body.portal-body .text-white\/90.border-white\/15 {
  color: #142018 !important;
}

html[data-portal-theme="light"] body.portal-body .btn-close.btn-close-white {
  filter: invert(0.85);
  opacity: 0.5;
}

/* Badges portal en tema claro */
html[data-portal-theme="light"] body.portal-body .portal-status-badge--docs {
  color: #7f1d1d !important;
  border-color: rgba(185, 28, 28, 0.35) !important;
  background: linear-gradient(145deg, rgba(254, 202, 202, 0.95), rgba(254, 226, 226, 0.75)) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-status-badge--transit {
  color: #78350f !important;
  border-color: rgba(180, 83, 9, 0.4) !important;
  background: linear-gradient(145deg, rgba(253, 230, 138, 0.95), rgba(254, 243, 199, 0.8)) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-status-badge--arriving {
  color: #064e3b !important;
  border-color: rgba(5, 150, 105, 0.4) !important;
  background: linear-gradient(145deg, rgba(167, 243, 208, 0.9), rgba(209, 250, 229, 0.85)) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-status-badge--done {
  color: #115e59 !important;
  border-color: rgba(13, 148, 136, 0.4) !important;
  background: linear-gradient(145deg, rgba(204, 251, 241, 0.95), rgba(236, 253, 245, 0.85)) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-status-badge--canceled {
  color: #475569 !important;
  border-color: rgba(100, 116, 139, 0.35) !important;
  background: linear-gradient(145deg, rgba(241, 245, 249, 0.95), rgba(248, 250, 252, 0.9)) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-status-badge--default {
  color: #1e293b !important;
  border-color: rgba(30, 41, 59, 0.2) !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(241, 245, 249, 0.85)) !important;
}

html[data-portal-theme="light"] body.portal-body .portal-description-panel {
  border: none !important;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.92) 0%,
    rgba(248, 250, 249, 0.78) 100%
  ) !important;
  backdrop-filter: blur(18px) saturate(120%);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  box-shadow:
    0 10px 36px rgba(15, 45, 35, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
}

/* Badges de estado en tarjetas (contraste en tema claro) */
html[data-portal-theme="light"] body.portal-body .text-red-300 {
  color: #991b1b !important;
}

html[data-portal-theme="light"] body.portal-body .text-amber-200 {
  color: #92400e !important;
}

html[data-portal-theme="light"] body.portal-body .text-emerald-200 {
  color: #065f46 !important;
}

html[data-portal-theme="light"] body.portal-body .border-red-400\/25 {
  border-color: rgba(185, 28, 28, 0.35) !important;
}

html[data-portal-theme="light"] body.portal-body .border-amber-400\/25 {
  border-color: rgba(180, 83, 9, 0.35) !important;
}

html[data-portal-theme="light"] body.portal-body .border-emerald-400\/30 {
  border-color: rgba(5, 150, 105, 0.35) !important;
}

/* Login portal (misma hoja) */
html[data-portal-theme="light"] body.portal-login-page {
  background: linear-gradient(165deg, #f2f7f4 0%, #e8f0ec 100%) !important;
}

html[data-portal-theme="light"] body.portal-login-page .text-white {
  color: #0f1714 !important;
}

html[data-portal-theme="light"] body.portal-login-page .text-dim {
  color: #4d6056 !important;
}

html[data-portal-theme="light"] body.portal-login-page .glass-panel {
  background: rgba(255, 255, 255, 0.65) !important;
  border-color: rgba(18, 48, 38, 0.12) !important;
  box-shadow: 0 12px 40px rgba(15, 45, 35, 0.08) !important;
}

/*
 * Login / registro portal: texto siempre legible (focus, :focus-visible, autofill WebKit).
 * register.html no incluye Tailwind; form-control-premium no define color de fondo en este proyecto.
 */
body.portal-login-page .form-control,
body.portal-login-page .form-select,
body.portal-login-page textarea.form-control {
  background-color: #ffffff !important;
  color: #0f172a !important;
  border-color: rgba(148, 163, 184, 0.55) !important;
}

body.portal-login-page .form-control:focus,
body.portal-login-page .form-control:focus-visible,
body.portal-login-page .form-select:focus,
body.portal-login-page .form-select:focus-visible,
body.portal-login-page textarea.form-control:focus,
body.portal-login-page textarea.form-control:focus-visible {
  background-color: #ffffff !important;
  color: #0f172a !important;
  border-color: rgba(13, 148, 136, 0.65) !important;
  box-shadow: 0 0 0 0.2rem rgba(20, 184, 166, 0.28) !important;
}

body.portal-login-page .form-control::placeholder,
body.portal-login-page textarea.form-control::placeholder {
  color: #64748b !important;
  opacity: 1;
}

body.portal-login-page input:-webkit-autofill,
body.portal-login-page input:-webkit-autofill:hover,
body.portal-login-page input:-webkit-autofill:focus,
body.portal-login-page textarea:-webkit-autofill,
body.portal-login-page textarea:-webkit-autofill:hover,
body.portal-login-page textarea:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f172a !important;
  caret-color: #0f172a;
  box-shadow: 0 0 0 1000px #ffffff inset !important;
  transition: background-color 99999s ease-out;
}

html[data-portal-theme="light"] body.portal-login-page .form-control,
html[data-portal-theme="light"] body.portal-login-page .form-select,
html[data-portal-theme="light"] body.portal-login-page textarea.form-control,
html[data-portal-theme="light"] body.portal-login-page .form-control:focus,
html[data-portal-theme="light"] body.portal-login-page .form-control:focus-visible,
html[data-portal-theme="light"] body.portal-login-page textarea.form-control:focus,
html[data-portal-theme="light"] body.portal-login-page textarea.form-control:focus-visible {
  background-color: #ffffff !important;
  color: #0f172a !important;
}

html[data-portal-theme="light"] body.portal-login-page input:-webkit-autofill,
html[data-portal-theme="light"] body.portal-login-page input:-webkit-autofill:hover,
html[data-portal-theme="light"] body.portal-login-page input:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f172a !important;
  box-shadow: 0 0 0 1000px #ffffff inset !important;
}

/* Enlace “Ya tengo cuenta” / botones glass sin Tailwind */
body.portal-login-page a.btn.btn-glass,
body.portal-login-page .btn.btn-glass {
  color: #f1f5f9 !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

body.portal-login-page a.btn.btn-glass:hover,
body.portal-login-page .btn.btn-glass:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(45, 212, 191, 0.45) !important;
}

html[data-portal-theme="light"] body.portal-login-page a.btn.btn-glass,
html[data-portal-theme="light"] body.portal-login-page .btn.btn-glass {
  color: #0f172a !important;
  border-color: rgba(18, 48, 38, 0.2) !important;
  background: rgba(255, 255, 255, 0.75) !important;
}
