/* =====================================================
   AUDITORIA FINAL · BLOQUE 1 · INICIO / DÍAS / RUTA
===================================================== */

/* Evita cortes superiores en tablet/navegador */
.main-content{
  padding-top:10px !important;
}

/* Títulos de sección más equilibrados */
.section-title{
  margin-top:10px !important;
  margin-bottom:22px !important;
}

.section-title h2{
  line-height:.9 !important;
}

/* Cards generales: blanco limpio */
.today-card,
.note-card,
.route-timeline-card,
.info-card{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:0 16px 34px rgba(22,55,69,.10) !important;
}

/* =========================
   RUTA · reducir aire vacío
========================= */

#view-route .route-timeline-card{
  min-height:150px !important;
  padding:20px 24px !important;
  align-items:center !important;
}

#view-route .timeline-content{
  justify-content:center !important;
  gap:6px !important;
}

#view-route .timeline-top h3{
  font-size:clamp(1.9rem,2.7vw,2.45rem) !important;
  margin-bottom:4px !important;
}

#view-route .timeline-mood{
  margin-top:2px !important;
}

#view-route .timeline-actions{
  margin-top:8px !important;
}

/* =========================
   DÍAS · cards más compactas
========================= */

#view-days .note-card{
  min-height:128px !important;
  padding:18px 22px !important;
}

#view-days .note-card h4{
  font-size:1.55rem !important;
  line-height:.95 !important;
}

#view-days .day-section-head{
  margin-bottom:10px !important;
}

/* =========================
   HOME · equilibrio visual
========================= */

#view-home .home-smart-card,
#view-home .today-card{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
}

#view-home .quick-actions{
  gap:18px !important;
}

#view-home .weather-actions{
  justify-content:flex-end !important;
}

/* =========================
   NAV inferior
========================= */

.bottom-nav{
  background:rgba(255,250,235,.96) !important;
  border:1px solid rgba(22,55,69,.12) !important;
  box-shadow:0 14px 34px rgba(22,55,69,.16) !important;
}

.bottom-nav button.active{
  background:linear-gradient(135deg,#123949,#0f5b73) !important;
  color:#fff8e8 !important;
}

/* Tablet */
@media(max-width:900px){
  #view-route .route-timeline-card{
    min-height:140px !important;
  }

  #view-days .note-card{
    min-height:122px !important;
  }
}

/* Móvil */
@media(max-width:760px){
  .main-content{
    padding-top:6px !important;
  }

  #view-route .route-timeline-card{
    min-height:auto !important;
  }

  #view-route .timeline-top h3{
    font-size:2rem !important;
  }

  #view-days .note-card{
    min-height:118px !important;
  }
}
/* =====================================================
   AUDITORIA FINAL · BLOQUE 2 · HOTEL / COMER / GASTOS
===================================================== */

/* HOTEL · menos aire y botones equilibrados */
#view-hotels .hotel-card-pro{
  min-height:auto !important;
  padding:22px 24px !important;
}

#view-hotels .hotel-actions{
  margin-top:18px !important;
  gap:12px !important;
}

#view-hotels .hotel-actions button{
  min-height:42px !important;
  border-radius:16px !important;
}

#view-hotels .hotel-notes{
  background:#fffaf0 !important;
  border:1px solid rgba(22,55,69,.12) !important;
  border-radius:20px !important;
}

/* COMER · filtros y estado vacío más premium */
#view-food .add-flex-btn{
  min-height:42px !important;
  padding:0 18px !important;
  border-radius:16px !important;
}

#view-food .food-price-filter button,
#view-food .food-tag-filter button{
  min-height:38px !important;
  padding:0 16px !important;
  border-radius:999px !important;
  box-shadow:0 8px 18px rgba(22,55,69,.07) !important;
}

#view-food .food-results-summary{
  background:#fff !important;
  border:1px solid rgba(22,55,69,.12) !important;
  border-radius:22px !important;
}

#view-food #foodList .info-card,
#view-food #foodList .food-zone-block{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  border-radius:28px !important;
}

/* GASTOS · resumen más elegante */
#view-expenses .expense-summary article,
#view-expenses .family-balance-grid article{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  border-radius:26px !important;
  box-shadow:0 14px 30px rgba(22,55,69,.09) !important;
  min-height:112px !important;
}

#view-expenses .expense-summary strong,
#view-expenses .family-balance-grid strong,
#view-expenses .family-balance-grid h3{
  font-family:"Caveat",cursive !important;
  color:#123949 !important;
}

#view-expenses .comic-form{
  background:#fff !important;
  border:1px solid rgba(22,55,69,.14) !important;
  border-radius:28px !important;
  padding:18px 20px !important;
  box-shadow:0 14px 30px rgba(22,55,69,.09) !important;
}

#view-expenses .comic-form input,
#view-expenses .comic-form select{
  height:48px !important;
}

#view-expenses .comic-form button{
  min-height:48px !important;
  padding:0 22px !important;
  border-radius:16px !important;
}

#view-expenses .lock-card{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  border-radius:30px !important;
  box-shadow:0 18px 40px rgba(22,55,69,.12) !important;
}
/* =====================================================
   AUDITORIA FINAL · BLOQUE 3 · FOTOS / CHAT / MÁS
===================================================== */

/* CHAT · caja menos vacía y más oficial */
#view-chat .chat-whatsapp-card,
#view-chat .chat-avatar-picker,
#view-chat .chat-box,
#view-chat .chat-form{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:0 14px 30px rgba(22,55,69,.09) !important;
}

#view-chat .chat-box{
  min-height:280px !important;
  max-height:46vh !important;
  border-radius:28px !important;
  padding:18px !important;
}

#view-chat .chat-box:empty::before{
  content:"💬 Todavía no hay mensajes. Escribe el primero del viaje.";
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  min-height:230px;
  font-family:"Caveat",cursive;
  font-size:2rem;
  color:#123949;
  opacity:.72;
  text-align:center;
}

#view-chat .chat-avatar-picker{
  border-radius:26px !important;
  overflow:hidden !important;
}

#view-chat .chat-avatar-picker summary{
  font-family:"Caveat",cursive !important;
  font-size:2rem !important;
  color:#123949 !important;
}

#view-chat .chat-form{
  border-radius:26px !important;
  padding:10px 12px !important;
}

#view-chat .chat-form select,
#view-chat .chat-input-wrap{
  height:48px !important;
  border-radius:18px !important;
}

#view-chat .chat-form > button{
  min-height:48px !important;
  border-radius:18px !important;
}

#view-chat .small-btn{
  min-height:42px !important;
  border-radius:16px !important;
  background:#fff !important;
}

/* MÁS · icono cabecera blanco, no marrón */
#view-more .section-title > span,
#view-bookings .section-title > span,
#view-documents .section-title > span,
#view-checklist .section-title > span,
#view-top .section-title > span,
#view-pending .section-title > span{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:0 10px 22px rgba(22,55,69,.10) !important;
}

/* Más cards finales */
#view-more .more-card{
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:0 16px 34px rgba(22,55,69,.10) !important;
}

#view-more .more-card::after{
  display:none !important;
}

/* Mobile */
@media(max-width:760px){
  #view-chat .chat-box{
    min-height:230px !important;
  }

  #view-chat .chat-form{
    grid-template-columns:1fr !important;
  }

  #view-photos .photo-upload-form{
    grid-template-columns:1fr !important;
  }

  #view-photos input[type="file"]{
    max-width:100% !important;
  }
}
/* =====================================================
   AUDITORIA FINAL · BLOQUE 4 · MODALES / ALERTAS
===================================================== */

/* Fondo modal más limpio */
.setup-modal,
.edit-modal{
  background:rgba(9,32,42,.42) !important;
  backdrop-filter:blur(14px) saturate(1.05) !important;
}

/* Caja modal */
.setup-card,
.edit-modal-card{
  width:min(760px,calc(100vw - 34px)) !important;
  max-height:calc(100vh - 54px) !important;
  padding:28px 34px 92px !important;
  border-radius:34px !important;
  background:#fff !important;
  background-image:linear-gradient(135deg,#ffffff,#f9fbfa) !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:0 26px 70px rgba(10,43,56,.28) !important;
}

/* Cabecera modal */
.setup-header,
.edit-modal-head{
  position:sticky !important;
  top:0 !important;
  z-index:4 !important;
  background:linear-gradient(180deg,#fff 72%,rgba(255,255,255,.88)) !important;
  padding-bottom:16px !important;
  margin-bottom:20px !important;
}

.setup-header h2,
.edit-modal-head h2{
  font-family:"Caveat",cursive !important;
  font-size:3rem !important;
  line-height:.9 !important;
  color:#123949 !important;
}

.setup-header p,
.edit-modal-head p{
  font-family:"Inter",system-ui,sans-serif !important;
  font-size:1rem !important;
  color:#4f6670 !important;
}

/* Icono modal */
.setup-icon,
.edit-modal-icon{
  width:60px !important;
  height:60px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:18px !important;
  background:#fff !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:0 10px 22px rgba(22,55,69,.10) !important;
  font-size:1.8rem !important;
}

/* Cerrar */
.edit-modal-close,
.setup-modal .edit-modal-close{
  position:absolute !important;
  top:22px !important;
  right:22px !important;
  width:44px !important;
  height:44px !important;
  background:#fff !important;
  color:#a94444 !important;
  border:1px solid rgba(185,71,71,.22) !important;
  box-shadow:0 10px 22px rgba(22,55,69,.10) !important;
}

/* Campos */
.edit-field,
.setup-group{
  gap:7px !important;
}

.edit-field label,
.setup-group label{
  font-family:"Inter",system-ui,sans-serif !important;
  font-size:.82rem !important;
  font-weight:900 !important;
  color:#123949 !important;
}

.edit-field input,
.edit-field select,
.edit-field textarea,
.setup-group input,
.setup-group select,
.setup-group textarea,
.edit-modal-form input,
.edit-modal-form select,
.edit-modal-form textarea{
  min-height:48px !important;
  border-radius:18px !important;
  background:#fffdf8 !important;
  border:1px solid rgba(22,55,69,.14) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75) !important;
  font-family:"Inter",system-ui,sans-serif !important;
  font-size:1rem !important;
  color:#123949 !important;
}

.edit-field textarea,
.edit-modal-form textarea{
  min-height:110px !important;
}

/* Botones fijos abajo */
.edit-modal-actions,
.setup-actions{
  position:sticky !important;
  bottom:0 !important;
  z-index:5 !important;
  background:linear-gradient(180deg,rgba(255,255,255,.78),#fff) !important;
  padding-top:16px !important;
  margin-top:20px !important;
}

.edit-modal-cancel,
.setup-cancel,
.edit-modal-save,
.setup-submit{
  min-height:52px !important;
  border-radius:18px !important;
  font-family:"Inter",system-ui,sans-serif !important;
  font-size:1rem !important;
  font-weight:900 !important;
}

/* Alerts nativos del navegador */
dialog,
[role="alertdialog"]{
  border-radius:28px !important;
}

/* Mobile */
@media(max-width:760px){
  .setup-card,
  .edit-modal-card{
    width:calc(100vw - 18px) !important;
    max-height:calc(100vh - 24px) !important;
    padding:22px 18px 86px !important;
    border-radius:28px !important;
  }

  .setup-header h2,
  .edit-modal-head h2{
    font-size:2.45rem !important;
  }

  .setup-actions,
  .edit-modal-actions{
    grid-template-columns:1fr !important;
  }
}
/* =========================================
   POSTAL BIENVENIDA PREMIUM
========================================= */

.welcome-postcard{
  position: relative;
  overflow: hidden;
  max-width: 430px;
  border-radius: 32px;
}

.welcome-art{
  height: 170px;
  margin: -28px -28px 18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.92)),
    url("../assets/bg/hero-viaje.jpg") center/cover no-repeat;
  border-radius: 0 0 34px 34px;
}

.welcome-header{
  text-align: center;
  margin-top: -72px;
  position: relative;
  z-index: 2;
}

.welcome-header .setup-icon{
  width: 62px;
  height: 62px;
  margin: 0 auto 8px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 28px rgba(18,57,73,.16);
  font-size: 2rem;
}

.welcome-kicker{
  font-family: "Caveat", cursive;
  font-size: 1.45rem;
  color: #b28b4a;
  margin: 0;
}

.welcome-header h2{
  font-family: "Caveat", cursive;
  font-size: clamp(2.45rem, 10vw, 3.45rem);
  line-height: .9;
  color: #123949;
  margin: 2px 0 8px;
}

.welcome-header p:last-child{
  color: rgba(18,57,73,.72);
  font-size: .92rem;
  margin: 0 auto 18px;
  max-width: 280px;
}

.welcome-form select,
.welcome-form input{
  min-height: 48px;
  border-radius: 18px;
  border: 1px solid rgba(18,57,73,.16);
  background: rgba(255,255,255,.88);
  color: #123949;
  font-weight: 700;
}

.welcome-avatar-grid{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
}

.welcome-avatar-grid input{
  display: none;
}

.welcome-avatar-grid span{
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(18,57,73,.14);
  font-size: 1.35rem;
  box-shadow: 0 8px 18px rgba(18,57,73,.08);
}

.welcome-avatar-grid input:checked + span{
  border-color: rgba(15,91,115,.65);
  background: rgba(232,247,251,.95);
  box-shadow: 0 10px 22px rgba(15,91,115,.18);
}

@media (max-width: 520px){
  .welcome-postcard{
    width: min(92vw, 430px);
  }

  .welcome-art{
    height: 155px;
  }

  .welcome-avatar-grid{
    grid-template-columns: repeat(3, 1fr);
  }
}
.welcome-family-hint{
  display:block;
  margin-top:8px;
  color:#0f5b73;
  font-weight:700;
  font-size:.78rem;
  line-height:1.25;
}
/* =========================================
   FIX FINAL POSTAL BIENVENIDA
========================================= */

#setupModal.setup-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));
  overflow-y: auto;
  background: rgba(255,255,255,.22);
  backdrop-filter: blur(4px);
}

#setupModal.setup-modal.hidden{
  display: none !important;
}

#setupModal .welcome-postcard{
  width: min(92vw, 430px);
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
  padding: 0 26px 22px;
  border-radius: 30px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 24px 70px rgba(18,57,73,.22);
}

#setupModal .welcome-art{
  height: clamp(105px, 20dvh, 150px);
  margin: 0 -26px 10px;
  border-radius: 30px 30px 28px 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.86)),
    url("../assets/bg/hero-viaje.jpg") center 42% / cover no-repeat;
}

#setupModal .welcome-header{
  margin-top: -48px;
  margin-bottom: 12px;
}

#setupModal .welcome-header .setup-icon{
  width: 54px;
  height: 54px;
  font-size: 1.7rem;
  margin-bottom: 6px;
}

#setupModal .welcome-kicker{
  font-size: 1.25rem;
}

#setupModal .welcome-header h2{
  font-size: clamp(2.1rem, 8vw, 3rem);
  margin: 0 0 6px;
}

#setupModal .welcome-header p:last-child{
  font-size: .9rem;
  line-height: 1.2;
  margin-bottom: 8px;
}

#setupModal .welcome-form{
  gap: 10px;
}

#setupModal .setup-group{
  margin-bottom: 10px;
}

#setupModal .setup-group label{
  margin-bottom: 6px;
  font-size: .88rem;
}

#setupModal .welcome-form select,
#setupModal .welcome-form input{
  min-height: 46px;
  font-size: .95rem;
  border-radius: 17px;
}

#setupModal .welcome-avatar-grid{
  gap: 8px;
}

#setupModal .welcome-avatar-grid span{
  height: 42px;
  border-radius: 15px;
  font-size: 1.22rem;
}

#setupModal .setup-submit{
  min-height: 54px;
  margin-top: 6px;
  border-radius: 19px;
  font-size: 1.02rem;
}

@media (max-width: 520px){
  #setupModal.setup-modal{
    align-items: start;
    padding-top: max(10px, env(safe-area-inset-top));
  }

  #setupModal .welcome-postcard{
    width: min(94vw, 430px);
    max-height: calc(100dvh - 20px);
    padding: 0 20px 18px;
    border-radius: 26px;
  }

  #setupModal .welcome-art{
    height: 105px;
    margin: 0 -20px 8px;
  }

  #setupModal .welcome-header{
    margin-top: -42px;
  }

  #setupModal .welcome-header h2{
    font-size: 2.35rem;
  }

  #setupModal .welcome-avatar-grid{
    grid-template-columns: repeat(6, 1fr);
  }

  #setupModal .welcome-avatar-grid span{
    height: 39px;
    font-size: 1.05rem;
  }

  #setupModal .setup-submit{
    min-height: 50px;
  }
}
/* =========================================
   FIX REAL MODAL BIENVENIDA - COMPACTO
========================================= */

#setupModal.setup-modal:not(.hidden){
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.18) !important;
  backdrop-filter: blur(4px) !important;
}

#setupModal.setup-modal.hidden{
  display: none !important;
}

#setupModal .setup-card.welcome-postcard{
  width: min(92vw, 390px) !important;
  max-height: calc(100svh - 20px) !important;
  overflow: hidden !important;
  padding: 0 20px 16px !important;
  border-radius: 28px !important;
}

#setupModal .welcome-art{
  height: 82px !important;
  margin: 0 -20px 6px !important;
  border-radius: 28px 28px 24px 24px !important;
}

#setupModal .welcome-header{
  margin: -34px 0 10px !important;
}

#setupModal .welcome-header .setup-icon{
  width: 48px !important;
  height: 48px !important;
  font-size: 1.55rem !important;
  margin: 0 auto 5px !important;
}

#setupModal .welcome-header h2{
  font-size: 2.25rem !important;
  line-height: .9 !important;
  margin: 0 0 4px !important;
}

#setupModal .welcome-header p:last-child{
  font-size: .82rem !important;
  line-height: 1.15 !important;
  margin: 0 auto 6px !important;
}

#setupModal .setup-group{
  margin: 0 0 7px !important;
}

#setupModal .setup-group label{
  margin-bottom: 4px !important;
  font-size: .82rem !important;
}

#setupModal .welcome-form select,
#setupModal .welcome-form input{
  min-height: 39px !important;
  height: 39px !important;
  padding: 0 14px !important;
  font-size: .88rem !important;
  border-radius: 15px !important;
}

#setupModal .welcome-avatar-grid{
  grid-template-columns: repeat(6, 1fr) !important;
  gap: 7px !important;
}

#setupModal .welcome-avatar-grid span{
  height: 36px !important;
  border-radius: 13px !important;
  font-size: 1rem !important;
}

#setupModal .setup-submit{
  min-height: 46px !important;
  height: 46px !important;
  margin-top: 4px !important;
  border-radius: 17px !important;
  font-size: .98rem !important;
}
/* =========================================
   AJUSTE IMAGEN POSTAL BIENVENIDA
========================================= */

#setupModal.setup-modal:not(.hidden){
  background:
linear-gradient(rgba(255,255,255,.14),
                rgba(255,255,255,.14)),
url("../assets/bg/hero-viaje.jpg")
center 12% / cover no-repeat;
}

#setupModal.setup-modal:not(.hidden)::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(255,255,255,.18);
  pointer-events:none;
}

#setupModal .setup-card.welcome-postcard{
  position:relative !important;
  z-index:1 !important;
  background: rgba(255,255,255,.90) !important;
}

#setupModal .welcome-art{
  height: 96px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.50)),
    url("../assets/bg/hero-viaje.jpg") center 32% / cover no-repeat !important;
}
/* =========================================
   BIENVENIDA FULLSCREEN DEFINITIVA
========================================= */

#setupModal.welcome-screen.hidden{
  display:none !important;
}

#setupModal.welcome-screen:not(.hidden){
  position:fixed !important;
  inset:0 !important;
  z-index:99999 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
  padding:18px !important;
  overflow:hidden !important;
  background:
linear-gradient(rgba(255,255,255,.14),
                rgba(255,255,255,.14)),
url("../assets/bg/hero-viaje.jpg")
center 12% / cover no-repeat;
}

#setupModal .welcome-hero{
  width:min(92vw, 520px);
  text-align:center;
  color:#123949;
  text-shadow:0 2px 18px rgba(255,255,255,.75);
}

#setupModal .welcome-logo{
  width:54px;
  height:54px;
  margin:0 auto 8px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 12px 32px rgba(18,57,73,.16);
  font-size:1.65rem;
}

#setupModal .welcome-kicker{
  margin:0 0 2px;
  font-family:"Inter", sans-serif;
  font-size:1.05rem;
  font-weight:600;
}

#setupModal .welcome-hero h1{
  margin:0;
  font-family:"Caveat", cursive;
  font-size:clamp(2.7rem, 10vw, 4.4rem);
  line-height:.85;
  color:#123949;
}

#setupModal .welcome-subtitle{
  margin:8px auto 0;
  max-width:320px;
  font-size:.98rem;
  line-height:1.25;
  font-weight:500;
}

#setupModal .welcome-form-card{
  width:min(92vw, 430px);
  padding:22px;
  border-radius:30px;
  background:rgba(255,255,255,.42);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 24px 70px rgba(18,57,73,.20);
}

#setupModal .welcome-form-card .setup-group{
  margin:0 0 14px !important;
}

#setupModal .welcome-form-card label{
  display:block;
  margin:0 0 7px;
  color:#123949;
  font-weight:800;
  font-size:.92rem;
}

#setupModal .welcome-form-card select,
#setupModal .welcome-form-card input{
  width:100%;
  height:48px;
  min-height:48px;
  padding:0 16px;
  border-radius:19px;
  border:1px solid rgba(18,57,73,.15);
  background:rgba(255,255,255,.78);
  color:#123949;
  font-size:.98rem;
  font-weight:750;
  outline:none;
  box-shadow:0 8px 20px rgba(18,57,73,.06);
}

#setupModal #welcomeNewFamilyInput{
  margin-top:9px;
}

#setupModal .welcome-family-hint{
  display:block;
  margin-top:7px;
  color:#0f5b73;
  font-weight:750;
  font-size:.76rem;
  line-height:1.25;
}

#setupModal .welcome-avatar-grid{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:9px;
}

#setupModal .welcome-avatar-grid input{
  display:none;
}

#setupModal .welcome-avatar-grid span{
  height:43px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(18,57,73,.14);
  box-shadow:0 8px 18px rgba(18,57,73,.08);
  font-size:1.18rem;
}

#setupModal .welcome-avatar-grid input:checked + span{
  border-color:#0f5b73;
  background:rgba(232,247,251,.94);
  box-shadow:0 10px 24px rgba(15,91,115,.18);
}

#setupModal .setup-submit{
  width:100%;
  height:54px;
  min-height:54px;
  margin-top:4px;
  border:0;
  border-radius:20px;
  background:linear-gradient(135deg, #123949, #0f6c86);
  color:white;
  font-size:1.05rem;
  font-weight:900;
  box-shadow:0 16px 34px rgba(15,91,115,.24);
}

#setupModal .welcome-save-note{
  margin:12px 0 0;
  text-align:center;
  color:rgba(18,57,73,.78);
  font-weight:750;
  font-size:.78rem;
}

@media (max-width:520px){
  #setupModal.welcome-screen:not(.hidden){
    justify-content:center !important;
    gap:12px !important;
    padding:12px !important;
  }

  #setupModal .welcome-logo{
    width:46px;
    height:46px;
    font-size:1.4rem;
    margin-bottom:5px;
  }

  #setupModal .welcome-kicker{
    font-size:.95rem;
  }

  #setupModal .welcome-hero h1{
    font-size:2.8rem;
  }

  #setupModal .welcome-subtitle{
    font-size:.86rem;
    max-width:270px;
  }

  #setupModal .welcome-form-card{
    width:min(94vw, 430px);
    padding:17px;
    border-radius:26px;
  }

  #setupModal .welcome-form-card .setup-group{
    margin-bottom:10px !important;
  }

  #setupModal .welcome-form-card label{
    font-size:.84rem;
    margin-bottom:5px;
  }

  #setupModal .welcome-form-card select,
  #setupModal .welcome-form-card input{
    height:40px;
    min-height:40px;
    border-radius:15px;
    font-size:.88rem;
  }

  #setupModal .welcome-avatar-grid{
    grid-template-columns:repeat(6, 1fr);
    gap:7px;
  }

  #setupModal .welcome-avatar-grid span{
    height:37px;
    border-radius:13px;
    font-size:1rem;
  }

  #setupModal .setup-submit{
    height:48px;
    min-height:48px;
    border-radius:17px;
    font-size:.98rem;
  }

  #setupModal .welcome-save-note{
    font-size:.72rem;
    margin-top:8px;
  }
}
/* =========================================
   HERO BIENVENIDA - LEGIBILIDAD
========================================= */

#setupModal .welcome-hero{
    position: relative;
    z-index: 2;
    max-width: 520px;
    padding: 14px 18px 20px;
}

/* Nube muy suave detrás del texto */
#setupModal .welcome-hero::before{
    content:"";
    position:absolute;
    inset:-12px -10px -8px;
    z-index:-1;

    border-radius:32px;

    background:
        radial-gradient(circle at center,
            rgba(255,255,255,.72) 0%,
            rgba(255,255,255,.52) 42%,
            rgba(255,255,255,.18) 72%,
            transparent 100%);
}

/* Icono */
#setupModal .welcome-logo{
    margin-bottom:10px;
}

/* Bienvenidos */
#setupModal .welcome-kicker{
    color:#31505d;
    font-weight:700;
    letter-spacing:.2px;
    margin-bottom:4px;
}

/* Título principal */
#setupModal .welcome-hero h1{
    color:#123949;
    text-shadow:
        0 2px 8px rgba(255,255,255,.95),
        0 0 18px rgba(255,255,255,.75);

    font-size:clamp(3rem,8vw,4.3rem);
    line-height:.9;
}

/* Subtítulo */
#setupModal .welcome-subtitle{
    color:#284753;
    font-weight:600;
    text-shadow:0 1px 8px rgba(255,255,255,.9);
    max-width:320px;
}
/* =========================================
   ESTADO DEL SISTEMA
========================================= */

.system-status-card{
  max-width: 430px;
}

.system-status-content{
  margin-top: 14px;
}

.system-status-loading{
  padding: 18px;
  border-radius: 20px;
  background: rgba(255,255,255,.7);
  color: #123949;
  font-weight: 800;
  text-align: center;
}

.system-status-list{
  display: grid;
  gap: 10px;
}

.system-status-row{
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(18,57,73,.10);
  box-shadow: 0 8px 18px rgba(18,57,73,.06);
}

.system-status-row strong{
  display: block;
  color: #123949;
  font-size: .9rem;
  margin-bottom: 4px;
}

.system-status-row span{
  display: block;
  color: rgba(18,57,73,.74);
  font-size: .82rem;
  font-weight: 700;
  word-break: break-word;
}

.system-status-footer{
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(15,91,115,.08);
  color: #123949;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: .82rem;
  font-weight: 800;
}
/* =========================================
   FIX FINAL ESTADO DEL SISTEMA
========================================= */

#systemStatusModal.setup-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  padding:14px;
  overflow:hidden;
}

#systemStatusModal.setup-modal.hidden{
  display:none !important;
}

#systemStatusModal .system-status-card{
  width:min(92vw, 430px);
  max-height:calc(100dvh - 28px);
  overflow-y:auto;
  padding-bottom:18px;
}

#systemStatusModal .setup-actions{
  position:sticky;
  bottom:0;
  z-index:2;
  padding-top:12px;
  background:linear-gradient(
    180deg,
    rgba(255,255,255,0),
    rgba(255,255,255,.96) 32%
  );
}

#systemStatusModal .setup-actions button{
  min-height:48px;
}
/* =========================================
   FIX RESERVAS - CARDS AÑADIDAS
========================================= */

#view-bookings .booking-card{
  padding:22px !important;
  border-radius:24px !important;
  overflow:hidden;
}

#view-bookings .booking-card h3{
  margin-bottom:12px !important;
  line-height:1.05 !important;
}

#view-bookings .booking-card .meta-line{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-bottom:14px !important;
}

#view-bookings .booking-card .booking-actions{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:10px !important;
  margin-top:16px !important;
}

#view-bookings .booking-card .booking-actions button{
  width:100% !important;
  min-height:44px !important;
  border-radius:16px !important;
  font-size:.92rem !important;
  white-space:nowrap !important;
}

#view-bookings .booking-card .map-link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-top:12px !important;
  padding:10px 16px !important;
  border-radius:16px !important;
  text-decoration:none !important;
  position:relative !important;
  z-index:1 !important;
}

@media (max-width: 720px){
  #view-bookings .booking-card .booking-actions{
    grid-template-columns:1fr !important;
  }

  #view-bookings .booking-card .booking-actions button,
  #view-bookings .booking-card .map-link{
    width:100% !important;
  }
}

