:root {
  /* Nueva paleta Kawaii Coquette de Kelly */
  --bg: #fdfaf4;           /* Fondo crema cálido suave */
  --bg2: #fff3f6;          /* Rosa blanquecino sutil para inputs y chips */
  --card: #ffffff;         /* Tarjetas blancas puras para generar contraste */
  --card-h: #ffeef2;       /* Hover rosa pastel */
  --accent: #fcaec4;       /* Rosa burbuja del nombre KELU */
  --accent-l: #ffccd8;     /* Rosa pastel claro decorativo */
  --green: #a7dfb5;        /* Verde pastel de NAILZ */
  --red: #ff7675;          /* Rojo coral suave para alertas */
  --txt: #3c2f32;          /* Texto chocolate oscuro (evita el negro rígido) */
  --txt2: #8c767a;         /* Texto secundario malva ceniza */
  --txt3: #c4b2b5;         /* Deshabilitados y placeholders */
  --border: #f5e6e1;       /* Bordes suaves de galleta */
  --r: 24px;               /* Esquinas muy redondeadas tipo sticker */
  --rs: 16px;
  --shadow: 0 10px 30px rgba(221, 191, 197, 0.25); /* Sombra suave y limpia */
}

* { 
  margin: 0; 
  padding: 0; 
  box-sizing: border-box; 
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

body { 
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 
  /* Degradado animado en tonos pastel: crema, algodón de azúcar y vainilla */
  background: linear-gradient(-45deg, #fdfaf4, #ffeef2, #f5f9f6, #fff5f7);
  background-size: 400% 400%;
  animation: coquetteGradient 14s ease infinite;
  color: var(--txt); 
  min-height: 100vh; 
  max-width: 480px; 
  margin: 0 auto; 
  overflow-x: hidden; 
  -webkit-font-smoothing: antialiased;
}

/* Animación fluida para el fondo pastel */
@keyframes coquetteGradient {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

input, textarea { 
  font-family: inherit; 
  color: var(--txt); 
}

input::placeholder, textarea::placeholder {
  color: var(--txt3);
}

button { 
  cursor: pointer; 
  border: none; 
  background: none; 
}

.card { 
  background: var(--card); 
  border-radius: var(--r); 
  padding: 20px; 
  margin-bottom: 16px; 
  border: 2px solid var(--border); /* Bordes estilo sticker */
  box-shadow: var(--shadow);
}

.card-t { 
  font-size: 12px; 
  font-weight: 800; 
  color: var(--txt2); 
  text-transform: uppercase; 
  letter-spacing: 1.5px; 
  margin-bottom: 16px; 
}

.field { 
  margin-bottom: 18px; 
}

.field label { 
  display: block; 
  font-size: 12px; 
  font-weight: 700; 
  color: var(--txt2); 
  margin-bottom: 8px; 
}

.field input, .field textarea { 
  width: 100%; 
  padding: 14px; 
  background: var(--bg2); 
  border: 1px solid var(--border); 
  border-radius: var(--rs); 
  outline: none; 
  font-size: 14px; 
}

.field input:focus, .field textarea:focus { 
  border-color: var(--accent); 
  background: var(--card);
  box-shadow: 0 0 0 3px rgba(252, 174, 196, 0.2);
}

/* Selector de Servicios Avanzado */
.service-selector {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.service-card {
  background: var(--card);
  border: 2px solid var(--border);
  border-radius: var(--rs);
  padding: 14px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.service-card:hover {
  border-color: var(--accent-l);
  background: var(--card-h);
}

.service-card.selected {
  background: rgba(252, 174, 196, 0.08);
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}

.service-info .name {
  font-size: 14px;
  font-weight: 700;
  color: var(--txt);
}

.service-info .desc {
  font-size: 12px;
  color: var(--txt2);
  margin-top: 2px;
}

.service-price {
  font-size: 14px;
  font-weight: 800;
  color: var(--txt2);
  background: var(--bg2);
  padding: 6px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
}

.service-card.selected .service-price {
  background: var(--accent);
  color: #ffffff;
  border-color: var(--accent);
}

.btn { 
  width: 100%; 
  padding: 16px; 
  border-radius: var(--rs); 
  font-size: 15px; 
  font-weight: 800; 
  text-align: center; 
}

.btn-primary { 
  background: linear-gradient(135deg, var(--accent), var(--accent-l)); 
  color: #ffffff; 
  box-shadow: 0 4px 15px rgba(252, 174, 196, 0.4);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(252, 174, 196, 0.5);
}

.hour-grid { 
  display: grid; 
  grid-template-columns: repeat(4, 1fr); 
  gap: 8px; 
  margin-top: 8px; 
}

.hour-chip { 
  padding: 10px 6px; 
  background: var(--card); 
  border: 2px solid var(--border); 
  border-radius: 12px; 
  text-align: center; 
  font-size: 13px; 
  font-weight: 700; 
  color: var(--txt2);
  cursor: pointer; 
}

.hour-chip:hover {
  border-color: var(--accent-l);
  background: var(--card-h);
}

.hour-chip.selected { 
  background: var(--accent); 
  color: #ffffff; 
  border-color: var(--accent); 
  font-weight: 800;
}

.hour-chip.active { 
  border-color: var(--green); 
  color: var(--green); 
}

/* Parches estéticos de Flatpickr */
.flatpickr-calendar {
  background: var(--card) !important;
  border: 2px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
  border-radius: var(--rs) !important;
}

/* Color de los números de los días */
.flatpickr-day {
  color: var(--txt) !important; 
}

/* Color del día seleccionado */
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
  background: var(--accent) !important;
  color: #ffffff !important;
  border-color: var(--accent) !important;
}

/* Color del texto del mes y los días de la semana */
.flatpickr-current-month, span.flatpickr-weekday, .flatpickr-month {
  color: var(--txt2) !important;
  fill: var(--txt2) !important;
}

/* ==========================================
   CONTROL DE TAMAÑO DEL LOGO ILUSTRADO
   ========================================== */
.brand-header {
  text-align: center;
  margin-top: 10px;
  margin-bottom: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
/* El .brand-logo-img se define al final con animaciones */

/* ==========================================
   MEJORAS VISUALES DEL CALENDARIO (FEEDBACK 2)
   ========================================== */
.flatpickr-day:not(.flatpickr-disabled):not(.selected) {
  background: var(--bg2) !important;
  border: 2px solid var(--accent-l) !important;
  font-weight: 800 !important;
  color: var(--txt) !important;
  border-radius: 50% !important;
  box-shadow: 0 2px 5px rgba(252, 174, 196, 0.2);
}

.flatpickr-day:not(.flatpickr-disabled):not(.selected):hover {
  background: var(--accent-l) !important;
  border-color: var(--accent) !important;
  transform: scale(1.1);
}

.flatpickr-day.flatpickr-disabled {
  color: var(--txt3) !important;
  opacity: 0.4 !important;
  text-decoration: line-through;
  pointer-events: auto !important;
  cursor: not-allowed !important;
}

/* ==========================================
   DISEÑO TIPO APPLE PARA EL PANEL ADMIN
   ========================================== */
.tabs {
  display: flex;
  gap: 8px;
  padding: 16px;
  background: rgba(253, 250, 244, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 100;
}

.tab {
  flex: 1;
  padding: 12px 10px;
  font-size: 13px !important;
  font-weight: 700 !important;
  background: var(--bg2);
  color: var(--txt2);
  border: 1px solid var(--border);
  border-radius: 14px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
}

.tab:hover {
  background: var(--card-h);
}

.tab.on {
  background: var(--card) !important;
  color: var(--txt) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 4px 15px rgba(252, 174, 196, 0.35);
}

.tab[style*="var(--red)"] {
  flex: 0 0 52px !important;
  background: #fff0f0 !important;
  border-color: #ffd6d6 !important;
  font-size: 18px !important;
}

.apple-card {
  background: var(--card);
  border-radius: 20px;
  padding: 18px;
  margin-bottom: 16px;
  border: 1px solid rgba(245, 230, 225, 0.8);
  box-shadow: 0 10px 30px rgba(60, 47, 50, 0.04), 0 1px 3px rgba(0, 0, 0, 0.02);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.apple-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 35px rgba(221, 191, 197, 0.25);
}

.apple-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--bg2);
}

/* ==========================================
   SPARKLES — DESTELLOS DE BRILLO EN EL FONDO
   ========================================== */
.sparkle {
  position: fixed;
  pointer-events: none;
  z-index: 0;
  animation: sparkleFloat 6s ease-in-out infinite;
}
.sparkle::before {
  content: "✦";
  font-size: 18px;
  display: block;
  animation: sparkleTwinkle 2s ease-in-out infinite;
}
@keyframes sparkleFloat {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
  10%  { opacity: 0.9; }
  90%  { opacity: 0.6; }
  100% { transform: translateY(-100vh) rotate(360deg); opacity: 0; }
}
@keyframes sparkleTwinkle {
  0%, 100% { opacity: 0.3; transform: scale(0.6); }
  50%      { opacity: 1; transform: scale(1.2); }
}
/* Variante dorada */
.sparkle.gold::before { content: "✧"; color: #ffd4a3; }
/* Variante rosa */
.sparkle.pink::before { content: "✦"; color: #fcaec4; }
/* Variante plata */
.sparkle.silver::before { content: "⋆"; color: #e8e8f0; }
/* Variante lila */
.sparkle.lilac::before { content: "✶"; color: #d4c5f0; }

/* ==========================================
   LOGO ANIMADO — PULSO Y BRILLO SUAVE
   ========================================== */
.brand-logo-img {
  width: 100%;
  max-width: 340px;
  height: auto;
  display: block;
  filter: drop-shadow(0 8px 25px rgba(221, 191, 197, 0.35));
  animation: logoPulse 4s ease-in-out infinite, logoShimmer 3s ease-in-out infinite;
}
@keyframes logoPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 8px 25px rgba(221, 191, 197, 0.35)); }
  50%      { transform: scale(1.03); filter: drop-shadow(0 12px 35px rgba(252, 174, 196, 0.55)); }
}
@keyframes logoShimmer {
  0%, 100% { filter: drop-shadow(0 8px 25px rgba(221, 191, 197, 0.35)) brightness(1); }
  25%      { filter: drop-shadow(0 10px 30px rgba(252, 174, 196, 0.5)) brightness(1.08); }
  75%      { filter: drop-shadow(0 10px 30px rgba(212, 197, 240, 0.45)) brightness(1.05); }
}

/* ==========================================
   TARJETAS RESUMEN DE FINANZAS
   ========================================== */
.fin-card {
  background: var(--card);
  border: 2px solid var(--border);
  border-radius: var(--rs);
  padding: 14px 12px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(221, 191, 197, 0.15);
}
.fin-card-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--txt2);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.fin-card-value {
  font-size: 20px;
  font-weight: 800;
  color: var(--txt);
}

/* ==========================================
   EXTRAS / TÉCNICAS ADICIONALES (CLIENTA)
   ========================================== */
.extras-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.extra-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  color: var(--txt);
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
}

.extra-chip:hover {
  background: var(--card-h);
  border-color: var(--accent-l);
}

.extra-chip input[type="checkbox"] {
  accent-color: var(--accent);
  width: 14px;
  height: 14px;
  cursor: pointer;
}

.extra-chip:has(input:checked) {
  background: rgba(252, 174, 196, 0.15);
  border-color: var(--accent);
  color: var(--txt);
  font-weight: 700;
}

/* ==========================================
   BOTONES DE FILTRO EN AGENDA (ADMIN)
   ========================================== */
.btn-filtro {
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  border-radius: 12px;
  background: var(--bg2);
  color: var(--txt2);
  border: 1px solid var(--border);
  cursor: pointer;
}

.btn-filtro:hover {
  background: var(--card-h);
}

.btn-filtro.active {
  background: var(--accent);
  color: #ffffff;
  border-color: var(--accent);
}