/* La altura de la barra y la del logo las fija una sola hoja,
   components/navbar/navbar.css. Aquí había una medida propia que solo
   no se notaba porque esa hoja se carga después y la pisaba. Si el
   orden cambiaba —o el navegador servía una versión cacheada— esta
   pantalla volvía a su medida y la barra quedaba más alta o más baja
   que en el resto. Se quita para que no dependa de quién gane. */
/* La burbuja del chat y la tarjeta de archivo se mudaron a
   components/chat/chat.css, que cargan los cuatro trámites. Aquí había
   una copia por pantalla y habían derivado: borde azul en una, dorado
   ilegible en dos, sombra en unas sí y en otras no. */

/* ─────────────────────────────────────────────────────────────
   ESTA HOJA YA NO DECLARA SUS PROPIOS COLORES NI TIPOGRAFÍAS.

   Tenía un bloque :root con entre 30 y 54 variables. Las otras tres
   pantallas de trámite tenían el suyo, parecido pero no igual, y la
   portada y el panel tenían los suyos: 18 hojas declarando 85
   variables, de las cuales 65 valían cosas distintas según el archivo.

   Todo eso vive ahora en shared/css/tokens.css, que se carga antes que
   esta hoja. La identidad de las pantallas de trámite —Fraunces, Plus
   Jakarta Sans y el magenta— está allí, bajo [data-producto="tramite"],
   que es lo que declara el <html> de esta pantalla.

   Si aquí hace falta un color que no existe, se añade en tokens.css.
   ───────────────────────────────────────────────────────────── */

/* ═══════════════════════════════════════════════════════════
   VEHICLES.CSS — RUTH.il OFICIAL (MODO OSCURO Y CLARO)
   ═══════════════════════════════════════════════════════════ */

/* 1. MODO OSCURO (Por defecto) */
/* 2. MODO CLARO */
:root[data-theme="light"] {
  --page-bg: #F6F5F2;
  --page-card: #FFFFFF;
  --page-ink: #171A1C;
  --page-ink-2: #5B5F63;
  --page-border: #E4E1DA;
  
  --nav-bg: rgba(246, 245, 242, 0.95);
  --nav-border: #E4E1DA;

  --magenta: #C42A8E;
  --magenta-deep: #8E1C66;
  --magenta-soft: #F9AEDC;

  --gold: #FFEDA8;
  --gold-border: #B8860B; 
  --gold-ink: #8A6B1F;    
  
  --warning: #C75C42;
}

/* ═══════════════════════════════════
   RESET Y BASE
═══════════════════════════════════ */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--f-body);
  background: var(--page-bg);
  color: var(--page-ink);
  overflow: hidden;
  font-size: 17px;
  transition: background-color 0.3s ease, color 0.3s ease; 
}

/* ═══════════════════════════════════
   NAVBAR RUTH.il & LOGOS DINÁMICOS
═══════════════════════════════════ */

.navbar-ruth {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  background: var(--nav-bg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid var(--nav-border);
  box-shadow: 0 1px 32px rgba(0, 0, 0, 0.04);
  z-index: 1000;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.nav-logo {
  display: inline-block;
}

.nav-logo img {
  width: auto;
  object-fit: contain;
  display: block;
}

/* Control automático de logos según el tema */
.nav-logo .logo-light { display: none; }
.nav-logo .logo-dark { display: block; }

:root[data-theme="light"] .nav-logo .logo-light { display: block; }
:root[data-theme="light"] .nav-logo .logo-dark { display: none; }

.nav-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.nav-btn {
  font-family: var(--f-body);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--page-ink-2);
  text-decoration: none;
  padding: 10px 18px;
  border: 1px solid var(--page-border);
  background: transparent;
  transition: all 0.25s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 4px;
}

.nav-btn i { font-size: 0.95rem; }

.nav-btn:hover {
  border-color: var(--magenta);
  color: var(--magenta);
  transform: translateY(-1px);
  background: rgba(196, 42, 142, 0.1);
}

/* ===================== TOGGLE OSCURO/CLARO ===================== */
.theme-toggle { 
  position: relative; 
  width: 60px; 
  height: 32px; 
  border-radius: 100px; 
  border: 1px solid var(--page-border); 
  background: var(--page-card); 
  cursor: pointer; 
  display: inline-flex; 
  align-items: center; 
  justify-content: space-between; 
  padding: 0 8px; 
  flex-shrink: 0; 
  transition: border-color .2s ease; 
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
}

.theme-toggle:hover { 
  border-color: var(--magenta); 
}

.theme-toggle i { 
  font-size: 14px; 
  position: relative; 
  z-index: 1; 
  transition: color .2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
}

/* Colores de los iconos fijos en Modo Oscuro (Por defecto) */
.theme-toggle .tt-sun { color: var(--magenta-soft); }
.theme-toggle .tt-moon { color: var(--page-ink-2); }

/* Círculo deslizante (Thumb) */
.theme-toggle .tt-thumb {
  position: absolute; 
  top: 3px; 
  left: 3px; 
  width: 24px; 
  height: 24px; 
  border-radius: 50%;
  background: var(--magenta); 
  transition: transform .3s cubic-bezier(.4, 0, .2, 1);
  pointer-events: none;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

/* Estado Activo (Modo Claro) — El círculo se desliza a la derecha */
.theme-toggle.is-light .tt-thumb { 
  transform: translateX(28px); 
}

/* Colores de los iconos fijos en Modo Claro */
.theme-toggle.is-light .tt-sun { color: var(--page-ink-2); }
.theme-toggle.is-light .tt-moon { color: var(--magenta-deep); }

@media (max-width: 768px) {
  .navbar-ruth { padding: 0 18px; }
  
  .nav-btn { font-size: 0.65rem; padding: 8px 14px; }
  .nav-right { gap: 8px; }
}

/* ═══════════════════════════════════
   LAYOUT — PANEL UNICO
═══════════════════════════════════ */

.workspace {
  display: grid;
  grid-template-columns: 1fr;
  padding: clamp(78px, 6vh, 95px) clamp(12px, 1.2vw, 24px) clamp(12px, 1.2vw, 24px);
  height: 100vh;
  background: var(--page-bg);
}

.chat-panel.full-width {
  display: flex;
  flex-direction: column;
  background: var(--page-card);
  border: 1px solid var(--page-border);
  border-radius: clamp(14px, 1vw, 20px);
  overflow: hidden;
  height: calc(100vh - clamp(92px, 9vh, 115px));
  max-width: 860px;
  margin: 0 auto;
  width: 100%;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.05);
}

@media (max-width: 950px) {
  .workspace { height: auto; overflow-y: auto; }
  .chat-panel.full-width { height: calc(100vh - clamp(92px, 9vh, 115px)); min-height: 650px; }
}

/* ═══════════════════════════════════
   PANEL DE CHAT
═══════════════════════════════════ */

.chat-header {
  padding: clamp(16px, 1vw, 24px) clamp(20px, 1.3vw, 28px);
  border-bottom: 1px solid var(--page-border);
  background: linear-gradient(180deg, rgba(196, 42, 142, 0.1), transparent);
  flex-shrink: 0;
}

.chat-header h1,
.chat-header h2 {
  margin: 0;
  font-family: var(--f-display);
  font-size: 1.35rem;
  color: var(--page-ink);
  font-weight: 700;
}

.chat-header p {
  margin-top: 4px;
  font-size: clamp(0.75rem, 0.85vw, 0.9rem);
  letter-spacing: 0.08em;
  color: var(--page-ink-2);
  text-transform: uppercase;
}

/* ═══════════════════════════════════
   MIGAS DE PAN (PROGRESO)
═══════════════════════════════════ */

.breadcrumb-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  gap: 0;
  border-bottom: 1px solid var(--page-border);
  background: var(--page-card);
  flex-shrink: 0;
  flex-wrap: nowrap;
}

.step {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--page-ink-2);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  transition: all 0.4s ease;
  white-space: nowrap;
}

.step .step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--page-bg);
  color: var(--page-ink-2);
  font-size: 1rem;
  border: 1px solid var(--page-border);
  transition: all 0.4s ease;
  flex-shrink: 0;
}

.step .step-label { transition: all 0.4s ease; font-weight: 600; }

.step-connector {
  width: 28px;
  height: 2px;
  background: var(--page-border);
  margin: 0 4px;
  transition: all 0.4s ease;
  flex-shrink: 0;
}

.step.active .step-icon {
  background: var(--magenta);
  color: #FFFFFF;
  border-color: var(--magenta-deep);
  box-shadow: 0 0 15px rgba(196, 42, 142, 0.5);
}

.step.active { color: var(--magenta-texto); }

.step.done .step-icon {
  background: var(--success);
  color: var(--page-ink);
  border-color: var(--success);
  box-shadow: 0 0 15px rgba(169, 245, 200, 0.5);
}

.step.done { color: #1a7a3a; }
.step-connector.done { background: var(--success); }

@media (max-width: 768px) {
  .breadcrumb-progress { padding: 10px 12px; overflow-x: auto; justify-content: flex-start; }
  .step .step-label { display: none; }
  .step .step-icon { width: 30px; height: 30px; font-size: 0.85rem; }
  .step-connector { width: 16px; }
}

@media (max-width: 480px) {
  .step .step-icon { width: 26px; height: 26px; font-size: 0.75rem; }
  .step-connector { width: 10px; }
}

/* ═══════════════════════════════════
   CHAT WRAPPER (SCROLL)
═══════════════════════════════════ */

.chat-wrapper {
  flex: 1;
  overflow-y: auto;
  padding: clamp(16px, 1.2vw, 28px);
}

.chat-wrapper::-webkit-scrollbar { width: 8px; }
.chat-wrapper::-webkit-scrollbar-track { background: transparent; }
.chat-wrapper::-webkit-scrollbar-thumb {
  background: rgba(142, 28, 102, 0.25);
  border-radius: 20px;
}
.chat-wrapper::-webkit-scrollbar-thumb:hover { background: rgba(142, 28, 102, 0.45); }

/* ═══════════════════════════════════
   MENSAJES Y ALERTAS
═══════════════════════════════════ */

.bot-message, .user-message { margin: 14px 0; display: flex; animation: slideUp 0.35s ease-in-out; }
.bot-message { justify-content: flex-start; }
.user-message { justify-content: flex-end; }




/* --- NUEVAS CLASES PARA EL CONTENIDO INTERNO --- */

.bubble-icon {
  font-size: 1.8rem;
  color: var(--info); /* Icono azul */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0; /* Evita que el icono se aplaste */
}

.bubble-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bubble-content h4 {
  color: var(--info); /* Título azul */
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0;
  font-family: var(--f-body);
}

.bubble-content p {
  color: var(--page-ink);
  margin: 0;
  font-size: 0.95rem;
}

.alert-success-custom {
  background: rgba(169, 245, 200, 0.15);
  border: 2px solid var(--success);
  border-radius: 14px;
  padding: 18px 22px;
  color: var(--page-ink);
  font-size: 1rem;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: 0 0 30px rgba(169, 245, 200, 0.1);
  animation: pulseSuccess 2s ease-in-out infinite;
  max-width: 92%;
}

.alert-success-custom i { font-size: 2rem; color: var(--success); flex-shrink: 0; }
.alert-success-custom .alert-title { font-weight: 700; font-size: 1.15rem; color: #1a7a3a; display: block; margin-bottom: 3px; }
.alert-success-custom .alert-text { font-size: 0.95rem; }

.alert-warning-custom {
  background: rgba(255, 179, 167, 0.15);
  border: 2px solid var(--warning);
  border-radius: 14px;
  padding: 18px 22px;
  color: var(--page-ink);
  font-size: 1rem;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 92%;
}

.alert-warning-custom i { font-size: 2rem; color: var(--warning); flex-shrink: 0; }
.alert-warning-custom .alert-title { font-weight: 700; font-size: 1.15rem; color: #b85a4a; display: block; margin-bottom: 3px; }
.alert-warning-custom .alert-text { font-size: 0.95rem; }

.alert-danger-custom {
  background: rgba(220, 53, 69, 0.10);
  border: 2px solid var(--danger);
  border-radius: 14px;
  padding: 18px 22px;
  color: var(--page-ink);
  font-size: 1rem;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 92%;
}

.alert-danger-custom i { font-size: 2rem; color: var(--danger); flex-shrink: 0; }
.alert-danger-custom .alert-title { font-weight: 700; font-size: 1.15rem; color: #b02a37; display: block; margin-bottom: 3px; }
.alert-danger-custom .alert-text { font-size: 0.95rem; }

.alert-info-custom {
  background: rgba(179, 212, 255, 0.15);
  border: 2px solid var(--info);
  border-radius: 14px;
  padding: 18px 22px;
  color: var(--page-ink);
  font-size: 1rem;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 92%;
}

.alert-info-custom i { font-size: 2rem; color: var(--info); flex-shrink: 0; }
.alert-info-custom .alert-title { font-weight: 700; font-size: 1.15rem; color: #2a6fa8; display: block; margin-bottom: 3px; }
.alert-info-custom .alert-text { font-size: 0.95rem; }

/* ═══════════════════════════════════
   TARJETAS
═══════════════════════════════════ */

.completion-card {
  background: linear-gradient(145deg, rgba(169, 245, 200, 0.12), rgba(169, 245, 200, 0.04));
  border: 2px solid var(--success);
  border-radius: 18px;
  padding: 30px 32px;
  text-align: center;
  box-shadow: 0 0 50px rgba(169, 245, 200, 0.08);
  animation: fadeInUp 0.6s ease-out;
  max-width: 92%;
}

.completion-card .completion-icon { font-size: 3.8rem; color: var(--success); display: block; margin-bottom: 14px; }
.completion-card .completion-title { font-family: var(--f-display); font-size: 1.6rem; font-weight: 700; color: #1a7a3a; margin-bottom: 8px; }
.completion-card .completion-subtitle { font-size: 1.1rem; color: var(--page-ink-2); margin-bottom: 14px; }
.completion-card .completion-detail { font-size: 1rem; color: var(--page-ink); line-height: 1.7; }
.completion-card .completion-divider { border: none; border-top: 2px solid rgba(169, 245, 200, 0.2); margin: 18px 0; }
.completion-card .completion-badge { display: inline-block; background: rgba(169, 245, 200, 0.2); color: #1a7a3a; padding: 6px 22px; border-radius: 30px; font-size: 0.9rem; font-weight: 600; letter-spacing: 0.06em; margin-top: 10px; }


.file-card h5 { font-size: 1.15rem; font-weight: 700; color: var(--page-ink); margin-bottom: 8px; }
.file-card i { margin-right: 8px; }
.file-card .btn { font-size: 0.9rem; padding: 10px 20px; border-radius: 10px; margin-bottom: 8px; }

.resumen-documentos { max-width: 95%; font-size: 1rem; margin: 8px 0; }
.resumen-documentos table {
  background: var(--page-card) !important;
  margin-bottom: 0;
  border-radius: 8px;
  overflow: hidden;
  border-collapse: collapse;
  width: 100%;
  border: 1px solid var(--page-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.resumen-documentos th {
  color: var(--magenta);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 12px 16px 8px 16px;
  border: none;
  border-bottom: 1px solid var(--page-border);
  background: var(--page-bg) !important;
  text-align: left;
}

.resumen-documentos td {
  border: none;
  border-bottom: 1px solid var(--page-border);
  font-size: 0.95rem;
  padding: 10px 16px;
  color: var(--page-ink);
  background: var(--page-card) !important;
}

.resumen-documentos tr:last-child td { border-bottom: none; }
.resumen-documentos td:first-child { color: var(--page-ink-2); font-weight: 500; width: 38%; }
.resumen-documentos td:last-child { color: var(--page-ink); font-weight: 600; text-align: right; width: 62%; }
.resumen-documentos tbody tr:nth-child(even) td { background: var(--page-bg) !important; }
.resumen-documentos tbody tr:hover td { background: rgba(196, 42, 142, 0.08) !important; transition: background 0.2s ease; }

@media (max-width: 768px) {
  .resumen-documentos td:first-child { width: 42%; font-size: 0.85rem; }
  .resumen-documentos td:last-child { width: 58%; font-size: 0.85rem; }
  .resumen-documentos th { font-size: 0.65rem; padding: 10px 12px 6px 12px; }
  .resumen-documentos td { padding: 8px 12px; font-size: 0.85rem; }
}

/* ═══════════════════════════════════
   BOTONES E INPUTS
═══════════════════════════════════ */

.btn-success-custom {
  background: var(--success);
  color: var(--page-ink);
  border: none;
  padding: 12px 24px;
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.3s ease;
  cursor: pointer;
}
.btn-success-custom:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(169, 245, 200, 0.3); background: #8ae0b0; }

.btn-primary-custom {
  background: var(--magenta);
  color: #FFFFFF;
  border: 1px solid var(--magenta-deep);
  padding: 12px 24px;
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.3s ease;
  cursor: pointer;
}
.btn-primary-custom:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(196, 42, 142, 0.3);
  background: var(--magenta-deep);
  color: #FFF;
}

#fileUploadCard.card { background: var(--page-bg) !important; border: 1px solid var(--page-border) !important; color: var(--page-ink); flex-shrink: 0; border-radius: 12px; }
#fileInput { background: var(--page-card) !important; color: var(--page-ink); border: 1px solid var(--page-border); font-size: 0.95rem; padding: 10px; border-radius: 8px; }
#fileInput::file-selector-button { background: var(--page-border); color: var(--page-ink); border: none; padding: 10px 16px; margin-right: 12px; border-radius: 8px; cursor: pointer; font-size: 0.9rem; transition: background 0.3s ease; }
#fileInput::file-selector-button:hover { background: var(--magenta); color: #FFFFFF; }
#sendBtn { background: var(--success); border: none; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1rem; font-weight: 600; padding: 12px; border-radius: 10px; color: var(--page-ink); }
#sendBtn:hover { background: #8ae0b0; }

.input-area {
  display: flex;
  gap: clamp(10px, 0.8vw, 16px);
  padding: clamp(14px, 1vw, 20px);
  border-top: 1px solid var(--page-border);
  flex-shrink: 0;
  background: var(--page-card);
  border-radius: 0 0 clamp(14px, 1vw, 20px) clamp(14px, 1vw, 20px);
}

.input-area input {
  flex: 1;
  background: var(--page-bg) !important;
  color: var(--page-ink) !important;
  border: 1px solid var(--page-border);
  border-radius: 12px;
  padding: 0 18px;
  height: clamp(48px, 5vh, 56px);
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  font-family: var(--f-body);
}

.input-area input::placeholder { color: var(--page-ink-2) !important; font-size: 0.95rem; }
.input-area input:focus { outline: none !important; border-color: var(--magenta) !important; box-shadow: 0 0 0 4px rgba(196, 42, 142, 0.25) !important; }
.input-area input:disabled { background: var(--page-bg) !important; color: var(--page-ink-2) !important; cursor: not-allowed; }

#sendTextBtn {
  width: clamp(56px, 4.5vw, 66px);
  height: clamp(48px, 5vh, 56px);
  border: 1px solid var(--magenta-deep);
  border-radius: clamp(12px, 0.8vw, 16px);
  background: var(--magenta);
  color: #FFFFFF;
  font-size: 1.2rem;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.35s ease;
  box-shadow: 0 5px 20px rgba(196, 42, 142, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
}
#sendTextBtn i { font-size: 1.3rem; }
#sendTextBtn:hover { transform: translateY(-3px); background: var(--magenta-deep); color: #FFF; box-shadow: 0 12px 30px rgba(196, 42, 142, 0.4); }
#sendTextBtn:active { transform: scale(0.96); }
#sendTextBtn:disabled { background: var(--page-bg); border-color: var(--page-border); color: var(--page-ink-2); cursor: not-allowed; transform: none; box-shadow: none; }

input[type="date"], input[type="time"] {
  background: var(--page-card) !important;
  border: 1px solid var(--page-border) !important;
  color: var(--page-ink) !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  width: 100%;
  font-family: var(--f-body);
  font-size: 0.95rem;
  cursor: pointer;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
input[type="date"]:focus, input[type="time"]:focus {
  border-color: var(--magenta) !important;
  box-shadow: 0 0 0 3px rgba(196, 42, 142, 0.25) !important;
  outline: none !important;
}
input[type="date"]::-webkit-calendar-picker-indicator, input[type="time"]::-webkit-calendar-picker-indicator { filter: invert(0.3); cursor: pointer; padding: 4px; }
input[type="date"]:disabled, input[type="time"]:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-confirmar-fecha {
  background: var(--success) !important;
  color: var(--page-ink) !important;
  border: none !important;
  padding: 10px 20px !important;
  border-radius: 10px !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  width: 100% !important;
}
.btn-confirmar-fecha:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(169, 245, 200, 0.3); background: #8ae0b0 !important; }

#fileInput:disabled, .form-control:disabled { background: var(--page-bg) !important; color: var(--page-ink-2); cursor: not-allowed; border-color: var(--page-border) !important; }
.btn:disabled, #sendBtn:disabled { opacity: 0.65; cursor: not-allowed; background: var(--page-border); color: var(--page-ink-2); }

/* ═══════════════════════════════════
   DROPDOWN Y SUBMENÚ
═══════════════════════════════════ */

@media (max-width: 768px) {
}

/* ═══════════════════════════════════
   CANVAS Y UTILIDADES
═══════════════════════════════════ */

#network-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  display: block;
}

::selection { background: var(--magenta); color: #FFFFFF; }
::-moz-selection { background: var(--magenta); color: #FFFFFF; }
:focus-visible { outline: 2px solid var(--magenta); outline-offset: 2px; border-radius: 4px; }

button, .btn, .nav-btn, a[class*="btn"] {
  transition: transform .18s cubic-bezier(.22, 1, .36, 1), background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
button:active, .btn:active, .nav-btn:active, a[class*="btn"]:active { transform: translateY(1px) scale(.99); }

/* ═══════════════════════════════════
   ANIMACIONES
═══════════════════════════════════ */

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes pulseSuccess {
  0%, 100% { box-shadow: 0 0 30px rgba(169, 245, 200, 0.1); }
  50% { box-shadow: 0 0 50px rgba(169, 245, 200, 0.2); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.summary-card, .success-card { animation: fadeIn 0.4s ease-in-out; }

/* ---------- El distintivo de la tarjeta final cuenta el desenlace ----------
   El verde de arriba es el color de "todo bien", y era el único que había:
   también cuando el envío fallaba. Un aviso rojo debajo y un distintivo
   verde encima, a la vez, no se leen como un fallo. */
.completion-card .completion-badge.ok {
  background: rgba(169, 245, 200, 0.28);
  color: #146b32;
}
.completion-card .completion-badge.fallo {
  background: rgba(229, 72, 77, 0.14);
  color: #B42318;
}
