/* /css/styles.css */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Playfair+Display:wght@600;700&display=swap');

:root{
  /* Colores base */
  --bg:        #F7F4EE;  /* crema suave */
  --text:      #2B2B2B;  /* charcoal */
  --muted:     #8B8B8B;  /* gris texto secundario */

  /* Marca */
  --primary:    #C9A96A;  /* dorado */
  --primary-600:#B89257;
  --primary-700:#A27E45;

  /* Superficies */
  --surface:   #FFFFFF;  /* tarjetas, modales */
  --shadow:    0 10px 24px rgba(0,0,0,.06);

  /* Bordes */
  --border:    #E7E2D6;

  /* Estados calendario */
  --ok-bg:     #EAF3E7;  /* disponible */
  --ok-text:   #234D2C;
  --ok-border: #8BBF8A;

  --hold-bg:     #FFF1D9;  /* hold */
  --hold-text:   #8A5A1F;
  --hold-border: #F3C37A;

  --bad-bg:     #F7E6E6;  /* ocupado */
  --bad-text:   #7F2E2E;
  --bad-border: #E2A1A1;

  /* Acciones */
  --btn-fg:    #222;     /* texto botón */
  --btn-bg:    var(--primary);
  --btn-bg-h:  var(--primary-600);

  /* Pills estado reservas */
  --pill-pending-bg: rgba(201,169,106,.16);
  --pill-pending-fg: #8B6B36;
  --pill-current-bg: #EFE6D6;
  --pill-current-fg: #6B522A;
  --pill-expired-bg: #EEE3E3;
  --pill-expired-fg: #804040;
}

/* Reset + base */
*{ box-sizing:border-box; margin:0; padding:0; }
body{
  font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
}

h2,h3{ font-family:'Playfair Display', serif; color:#111; letter-spacing:.2px; }
h1{ font-family:'Playfair Display', serif; color:#111; letter-spacing:.2px; }

p{ color: var(--text); }
small{ color: #666; }

/* Contenedores */
.container{
  max-width:1200px;
  margin:0 auto;
  display:flex;
  gap:32px;
  padding:40px 24px;
}

.form-column{
  flex:1;
  background:var(--surface);
  border-radius:16px;
  padding:32px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
}

.summary-column{ flex:0.35; }

.summary-box{
  background:var(--surface);
  border-radius:16px;
  padding:24px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  position: sticky;
  top: 40px;
}

/* Botones */
button{
  padding:12px 22px;
  border:none;
  border-radius:10px;
  font-weight:600;
  cursor:pointer;
  transition:.2s ease;
  font-family: inherit;
}

.btn-primary{
  background:var(--btn-bg);
  color:var(--btn-fg);
}

.btn-primary:hover{ background:var(--btn-bg-h); }

.btn-primary:disabled{
  background:#D6C8A9;
  color:#777;
  cursor:not-allowed;
}

.btn-secondary{
  background:#EFE9DD;
  color:#4A3B23;
}

.btn-secondary:hover{ background:#E7DFCF; }

.btn-logout{
  background:#1C1C1C;
  color:#fff;
  width:auto;
}

.btn-save-guest{
  background:#27ae60;
  color:#fff;
  padding:6px 12px;
  font-size:0.85rem;
  width:auto;
  margin-top:0;
}

.btn-save-guest:hover{ background:#229954; }

.btn-sm{
  font-size:0.8rem;
  padding:0.3rem 0.7rem;
}

.btn-ghost{
  border-radius:999px;
  border:1px solid #ddd;
  background:#fff;
  font-size:0.8rem;
  padding:6px 10px;
  cursor:pointer;
}

.btn-ghost:hover{ background:#f5f0e4; }

/* Inputs */
input, select, textarea{
  width:100%;
  padding:12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-size:0.95rem;
  font-family: inherit;
}

input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(201,169,106,.18);
}

input:disabled{
  background:#F2EEE6;
  color:#8E8E8E;
  cursor:not-allowed;
}

/* Form layout */
.form-group{ margin-bottom:18px; }

label{
  display:block;
  font-weight:500;
  margin-bottom:6px;
  font-size:0.95rem;
}

label .required{ color:#e74c3c; }

.form-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:16px;
}

.date-group{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:8px;
}

.date-group input{ padding:10px; }

.date-label{
  font-size:0.75rem;
  color:#999;
  text-transform:uppercase;
  margin-top:4px;
}

/* Controles de adultos / niños */
.guest-counter{
  display:flex;
  align-items:center;
  gap:8px;
}

.guest-counter input{
  width:80px;
  text-align:center;
}

/* Botones + / - */
.guest-counter-btn{
  width:32px;
  height:32px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

.guest-counter-btn:hover{ background:#f5f0e4; }

#bookAdults, #bookChildren{
  font-size:1rem;
  min-height:44px;
}

/* Quitar flechitas nativas */
#bookAdults::-webkit-outer-spin-button,
#bookAdults::-webkit-inner-spin-button,
#bookChildren::-webkit-outer-spin-button,
#bookChildren::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* Pantallas login/profile */
.login-screen{ display:none; text-align:center; }
.login-screen.active{ display:block; }

.login-header{ margin-bottom:32px; }
.login-header h1{ font-size:2rem; margin-bottom:8px; color:#111; }
.login-header p{ color:#666; font-size:1.05rem; }

.login-tabs{
  display:flex;
  gap:16px;
  margin-bottom:32px;
  border-bottom:2px solid var(--border);
}

.login-tab{
  padding:12px 24px;
  cursor:pointer;
  border:none;
  background:none;
  font-size:1rem;
  font-weight:500;
  color:#9A8E78;
  transition:all 0.2s;
  border-bottom:3px solid transparent;
  margin-bottom:-2px;
}

.login-tab.active{
  color:#6B522A;
  border-bottom-color:var(--primary);
}

.login-form{ text-align:left; display:none; }
.login-form.active{ display:block; }

/* Stepper */
.step-indicator{
  display:flex;
  gap:16px;
  margin-bottom:32px;
  align-items:center;
}

.step{
  width:40px;
  height:40px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
}

.step.active{ background:var(--primary); color:#1E1E1E; }
.step.completed{ background:#1E1E1E; color:#fff; }
.step.inactive{ background:#EAE4D8; color:#9A8E78; }

.step-line{ flex:1; height:2px; background:#EAE4D8; }
.step-line.active{ background:var(--primary); }

.step-content{ display:none; }
.step-content.active{ display:block; animation: fadeIn 0.3s ease; }

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

/* Info boxes */
.info-box{
  background:#F4EFE6;
  border-left:4px solid var(--primary);
  padding:12px;
  border-radius:4px;
  margin-bottom:24px;
  font-size:0.9rem;
  color:#5A4C36;
}

.info-box.police{
  background:#FFF6E4;
  border-left-color:#E3B868;
}

/* Calendario */
.calendar-box{
  background:var(--surface);
  border-radius:16px;
  padding:24px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  margin-bottom:20px;
}

.calendar-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:24px;
}

.calendar-header h3{
  font-size:1.3rem;
  color:#1E1E1E;
  margin:0;
  font-weight:700;
}

.calendar-nav{ display:flex; gap:8px; }

.calendar-nav button{
  padding:8px 14px;
  background:var(--primary);
  color:#1E1E1E;
  border:none;
  border-radius:10px;
  cursor:pointer;
  font-weight:600;
}

.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:10px;
  margin-bottom:24px;
}

.day-header{
  text-align:center;
  font-weight:600;
  color:#7F745F;
  padding:8px;
  font-size:0.85rem;
}

.calendar-day{
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  font-weight:700;
  transition: all 0.18s;
  border:2px solid transparent;
  font-size:0.9rem;
  user-select:none;
  background:#F4EFE6;
  color:#3A3A3A;
}

.calendar-day.other-month{
  background:#F0ECE3;
  color:#B9B1A1;
  cursor:not-allowed;
}

.calendar-day.available{
  background:var(--ok-bg);
  color:var(--ok-text);
  border-color:var(--ok-border);
  cursor:pointer;
}

.calendar-day.available:hover{
  transform:translateY(-1px) scale(1.03);
  box-shadow:0 6px 14px rgba(35,77,44,.18);
}

.calendar-day.occupied{
  background:var(--bad-bg);
  color:var(--bad-text);
  border-color:var(--bad-border);
  cursor:not-allowed;
}

.calendar-day.hold{
  background:var(--hold-bg);
  color:var(--hold-text);
  border-color:var(--hold-border);
  cursor:not-allowed;
}

.calendar-day.selected{
  background:#1E1E1E;
  border-color:#1E1E1E;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
}

.calendar-day.checkout{
  background:var(--primary-700);
  color:#fff;
  border-color:var(--primary-700);
}

.calendar-day.range{
  background:#D8EFFF;
  color:#123A4A;
  border-color:#5C8FD8;
  box-shadow:0 0 0 1px rgba(92,143,216,.45);
}

.calendar-legend{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap:12px;
  font-size:0.85rem;
  margin-top:16px;
}

.legend-item{ display:flex; align-items:center; gap:8px; }
.legend-color{
  width:30px;
  height:30px;
  border-radius:4px;
  border:2px solid #ddd;
}
.legend-color.available{ background:var(--ok-bg); border-color:var(--ok-border); }
.legend-color.occupied{ background:var(--bad-bg); border-color:var(--bad-border); }
.legend-color.hold{ background:var(--hold-bg); border-color:var(--hold-border); }

#calendarInfo{
  margin-top:16px;
  padding:12px;
  background:#F4EFE6;
  border-radius:10px;
  font-size:0.9rem;
  color:#6B5B43;
  min-height:40px;
}

/* Layout reserva + calendario */
.booking-screen-cal{ display:flex; gap:32px; }
.booking-form-cal{ flex:1; }
.booking-calendar-col{ flex:0.5; }

/* Reservas (histórico / buscador / próxima) */
.next-booking{ margin: 8px 0 12px 0; }
.next-booking-highlight{
  border-radius:10px;
  padding:12px 12px 10px 12px;
  background:#fffaf0;
  border:1px solid #ffe2a8;
  border-left:4px solid var(--primary);
  box-shadow:0 2px 6px rgba(0,0,0,0.03);
}

.bookings-search{ margin: 8px 0 12px 0; }
.bookings-search input{
  width:100%;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid #e0e0e0;
  font-size:0.9rem;
  transition: all 0.15s ease;
}
.bookings-search input:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 2px rgba(201,169,106,0.12);
}

.bookings-history{ margin-top:4px; }

.booking-item{
  background:#fff;
  padding:10px 12px;
  border-radius:10px;
  margin-bottom:8px;
  border:1px solid #eeeeee;
  display:flex;
  flex-direction:column;
  gap:2px;
  cursor:pointer;
  transition: all 0.18s ease;
}

.booking-item:hover{
  box-shadow:0 3px 8px rgba(0,0,0,0.06);
  transform: translateY(-1px);
  border-color: var(--primary);
}

.booking-item h4{
  color:#1E1E1E;
  margin:0 0 2px 0;
  font-size:0.95rem;
  font-weight:600;
}

.booking-item p{
  margin:0;
  font-size:0.8rem;
  color:#666;
}

.booking-status{
  align-self:flex-start;
  margin-top:4px;
  padding:3px 8px;
  border-radius:999px;
  font-size:0.7rem;
  font-weight:600;
}

.status-pending{ background:var(--pill-pending-bg); color:var(--pill-pending-fg); }
.status-current{ background:var(--pill-current-bg); color:var(--pill-current-fg); }
.status-expired{ background:var(--pill-expired-bg); color:var(--pill-expired-fg); }

/* Summary */
.summary-title{
  font-size:1.1rem;
  font-weight:600;
  margin-bottom:16px;
  color:#1E1E1E;
}
.summary-item{ display:flex; justify-content:space-between; margin-bottom:12px; font-size:0.95rem; }
.summary-divider{ border-top:1px solid var(--border); margin:16px 0; }
.summary-total{ display:flex; justify-content:space-between; font-weight:600; font-size:1.1rem; }
.summary-discount{ color:#1C7F43; font-weight:700; }

/* Property cards (genéricas) */
.property-card{
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
}

.property-card img{
  width:100%;
  height:120px;
  object-fit:cover;
}

.property-info{
  padding:12px;
  background:#FAF7F0;
  font-size:0.85rem;
}

.property-info p{ margin:4px 0; }

/* Modal */
.modal{
  display:none;
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:rgba(0,0,0,0.45);
  justify-content:center;
  align-items:center;
  z-index:1000;
}

.modal.active{ display:flex; }

.modal-content{
  background:var(--surface);
  border-radius:16px;
  padding:24px;
  max-width:600px;
  width:90%;
  margin:auto;
  max-height:90vh;
  overflow-y:auto;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}

/* Loading */
.loading-spinner{
  display:inline-block;
  width:20px;
  height:20px;
  border:3px solid var(--primary);
  border-top:3px solid transparent;
  border-radius:50%;
  animation: spin 1s linear infinite;
  margin-right:8px;
}

@keyframes spin{ to{ transform:rotate(360deg); } }

.success-message{ color:#27ae60; margin-top:10px; font-weight:500; }
.error-message{ color:#e74c3c; margin-top:10px; font-weight:500; }
.loading-message{ color:#666; margin-top:10px; font-weight:500; }

/* Guest sections */
.guest-section{
  background:#fff;
  padding:16px;
  border-radius:8px;
  margin-bottom:12px;
  border-left:4px solid var(--primary);
}

.guest-section h4{ color:#1E1E1E; margin-bottom:12px; margin-top:0; }
.guest-section.principal{ border-left-color:#27ae60; background:#F0F8F7; }
.guest-section.children{ border-left-color:#3498db; background:#EFF7FF; }
.guest-section p{ margin:0 0 12px 0; }

.frequent-guest-item{
  background:#f9f9f9;
  padding:12px;
  border-radius:8px;
  margin-bottom:8px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-left:4px solid var(--primary);
}

.frequent-guest-item > div:first-child{ flex:1; }
.frequent-guest-item p{ margin:0; }
.frequent-guest-item button{ padding:4px 8px; font-size:0.8rem; margin:0 2px; width:auto; }

/* Autocomplete */
.autocomplete-container{ position:relative; }

.autocomplete-list{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  background:#fff;
  border:1px solid var(--border);
  border-top:none;
  border-radius:0 0 8px 8px;
  max-height:200px;
  overflow-y:auto;
  z-index:1000;
  display:none;
}

.autocomplete-list.active{ display:block; }

.autocomplete-item{
  padding:12px;
  border-bottom:1px solid #eee;
  cursor:pointer;
  transition: background 0.2s;
}

.autocomplete-item:hover{ background:#F4EFE6; }
.autocomplete-item:last-child{ border-bottom:none; }

/* Profile */
.profile-screen{ display:none; }
.profile-screen.active{ display:block; }

.profile-header{
  background:linear-gradient(135deg,#111 0%, #2A2A2A 60%);
  padding:40px;
  border-radius:16px;
  color:#fff;
  margin-bottom:32px;
  text-align:center;
}

.profile-header h1{ font-size:2.5rem; margin-bottom:8px; color:#fff; }
.profile-header p{ font-size:1.1rem; opacity:0.9; color:#fff; }

.profile-header .level-badge{
  display:inline-block;
  background:rgba(255,255,255,.18);
  padding:8px 16px;
  border-radius:20px;
  margin-top:12px;
  font-size:0.9rem;
}

.level-card{
  background:linear-gradient(135deg, var(--primary-600) 0%, var(--primary) 100%);
  padding:24px;
  border-radius:16px;
  margin-bottom:24px;
  color:#1E1E1E;
  text-align:center;
}

.level-number{ font-size:2.5rem; font-weight:700; margin-bottom:8px; }
.level-name{ font-size:1.2rem; margin-bottom:12px; }

.level-progress{
  background:rgba(255,255,255,0.35);
  border-radius:8px;
  height:8px;
  margin-top:12px;
  overflow:hidden;
}

.level-progress-bar{
  background:#1a8b7d;
  height:100%;
  width:0%;
  transition: width 0.3s;
}

.level-reward{
  font-size:0.9rem;
  margin-top:12px;
  padding:8px;
  background:rgba(0,0,0,0.08);
  border-radius:6px;
}

.points-card{
  background:linear-gradient(135deg, #EEE3CB 0%, var(--primary) 100%);
  padding:24px;
  border-radius:16px;
  margin-bottom:24px;
  color:#1E1E1E;
  text-align:center;
}

.points-number{ font-size:3rem; font-weight:700; margin-bottom:8px; }

.discount-badge{
  display:inline-block;
  background:#27ae60;
  padding:8px 16px;
  border-radius:6px;
  margin-top:8px;
  font-size:1rem;
  font-weight:700;
  color:#fff;
}

.profile-card{
  background:#f9f9f9;
  padding:24px;
  border-radius:12px;
  margin-bottom:24px;
}

.profile-row{
  display:flex;
  justify-content:space-between;
  padding:12px 0;
  border-bottom:1px solid #ddd;
}

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

.profile-label{ font-weight:500; color:#666; }
.profile-value{ color:#333; }

.bookings-header-toggle{
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:pointer;
  padding:4px 0 8px 0;
}

.bookings-header-toggle span{
  font-weight:600;
  color:#1a8b7d;
}

.bookings-header-toggle small{
  color:#666;
  font-size:0.85rem;
}

/* ===== Menú de usuario (tabs) ===== */
.user-tabs{
  display:flex;
  gap:0.5rem;
  margin-bottom:0.75rem;
  flex-wrap:wrap;
}

.user-tab{
  border:none;
  background:#e4e8f2;
  border-radius:999px;
  padding:0.3rem 0.9rem;
  cursor:pointer;
  font-size:0.9rem;
}

.user-tab.active{
  background:#003580;
  color:#fff;
}

.user-tab-content{ display:none; }
.user-tab-content.active{ display:block; }

/* ===== Layout reservas + chat (área usuario) ===== */
.user-reservas-layout{
  display:grid;
  grid-template-columns: 1.05fr 1.35fr;
  gap:1rem;
  margin-top:0.5rem;
}

.user-reservas-list,
.user-reservas-chat{ min-width:0; }

.user-reservas-list{
  background:#f7f8fc;
  border-radius:10px;
  padding:0.4rem 0.4rem 0.2rem;
  border:1px solid #e0e3f0;
}

.user-reservas-list .table-wrapper{
  max-height:360px;
  overflow-y:auto;
}

.user-reservas-list table{
  width:100%;
  border-collapse:collapse;
  font-size:0.86rem;
}

.user-reservas-list thead th{
  position:sticky;
  top:0;
  background:#eef1fb;
  z-index:1;
}

.user-reservas-list th,
.user-reservas-list td{
  padding:0.35rem 0.4rem;
  border-bottom:1px solid #dde1ee;
}

.user-reservas-list th{
  text-align:left;
  font-weight:600;
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.03em;
  color:#555;
}

.user-reservas-list tbody tr{
  cursor:pointer;
  transition: background 0.12s ease, transform 0.07s ease;
}

.user-reservas-list tbody tr:hover td{ background:#edf1ff; }

.user-reserva-row.selected td{
  background:#e0ebff;
  border-left:3px solid #003580;
}

.user-reservas-list td:nth-child(2){
  max-width:160px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.user-reservas-chat{
  background:#fff;
  border-radius:10px;
  padding:0.6rem 0.7rem;
  border:1px solid #e0e3f0;
}

/* Detalle reserva */
.reserva-detail{
  font-size:0.9rem;
  margin-bottom:0.5rem;
}

.reserva-detail p{ margin-bottom:0.2rem; }

.reserva-apto-card{
  display:flex;
  gap:0.75rem;
  margin-bottom:0.5rem;
  align-items:center;
}

.reserva-apto-card img{
  width:96px;
  height:72px;
  object-fit:cover;
  border-radius:8px;
}

.reserva-apto-card h4{
  margin:0 0 4px 0;
  font-size:0.98rem;
}

.reserva-apto-card small{ color:#666; font-size:0.8rem; }

/* Chips */
.reserva-chips{
  display:flex;
  flex-wrap:wrap;
  gap:0.25rem;
  margin:0.25rem 0 0.4rem;
}

.reserva-chip{
  background:#eef1fb;
  border-radius:999px;
  padding:0.15rem 0.55rem;
  font-size:0.75rem;
}

/* Chat (área usuario) */
.chat-section{ margin-top:0.4rem; }

.chat-messages{
  border:1px solid #dde1ee;
  border-radius:12px;
  padding:0.5rem;
  height:230px;
  overflow-y:auto;
  background:#fafbff;
  margin-bottom:0.5rem;
}

.chat-bubble{
  max-width:80%;
  padding:0.4rem 0.6rem;
  border-radius:12px;
  margin-bottom:0.35rem;
  font-size:0.9rem;
  line-height:1.3;
}

.chat-bubble.guest{
  background:#003580;
  color:#fff;
  margin-left:auto;
}

.chat-bubble.host{
  background:#e6e9f5;
  color:#222;
  margin-right:auto;
}

.chat-meta{
  font-size:0.7rem;
  opacity:0.8;
  margin-top:0.1rem;
}

.chat-form{
  display:flex;
  gap:0.4rem;
  align-items:center;
}

.chat-form input[type="text"]{
  flex:1;
  padding:0.45rem 0.55rem;
  border-radius:8px;
  border:1px solid var(--border);
  font-size:0.9rem;
}

/* ===== DETALLE (multi) ===== */
.detail-breadcrumb{
  margin:8px 0 4px;
  font-size:12px;
  color:#999;
}

.detail-header-main{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:12px;
}

.detail-header h1{ margin-bottom:4px; }

.detail-tagline{
  margin:0;
  font-size:14px;
  color:#555;
}

.detail-trust{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:#2c3e50;
  background:#f6efe1;
  border-radius:8px;
  padding:8px 10px;
}

.detail-main{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.detail-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:8px;
}

.detail-badge{
  display:inline-block;
  padding:2px 8px;
  font-size:11px;
  border-radius:999px;
  border:1px solid #ddd;
  background:#fafafa;
}

.detail-price{
  margin-top:6px;
  font-size:15px;
  color:#2c3e50;
}

.detail-address{
  margin-top:4px;
  font-size:13px;
  color:#555;
}

.detail-description h2{ margin-top:0; margin-bottom:6px; }

.detail-description p{
  font-size:14px;
  line-height:1.5;
}

.detail-services h3{ margin-bottom:6px; }

.detail-services ul{
  padding-left:18px;
  margin:0;
  font-size:13px;
}

.detail-gallery h3{ margin-bottom:8px; }

.detail-gallery-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap:8px;
}

.detail-gallery-grid figure{ margin:0; }

.detail-gallery-grid img{
  width:100%;
  border-radius:8px;
  display:block;
}

.detail-gallery-grid figcaption{
  font-size:11px;
  color:#666;
  margin-top:2px;
}

.detail-calendar{ margin-top:24px; }
.calendar-intro{ font-size:13px; color:#555; margin-bottom:12px; }
.calendar-hold-note{ font-size:12px; color:#777; margin-top:10px; }
.secure-note{ font-size:12px; color:#555; margin-top:8px; }

@media (max-width: 600px){
  .detail-header-main{
    flex-direction:column;
    align-items:flex-start;
  }
  .detail-trust{ width:100%; }
}

/* ===== MULTI LISTADO ===== */
.multi-container{
  max-width:1400px;
  margin:0 auto;
  padding:32px 24px 40px;
}

.multi-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:20px;
}

.multi-kicker{
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:#a07d3b;
  margin-bottom:4px;
}

.multi-header h1{
  font-size:1.6rem;
  margin-bottom:4px;
}

.multi-subtitle{
  font-size:0.9rem;
  color:#666;
}

.multi-summary{
  font-size:0.9rem;
  color:#555;
  padding:8px 12px;
  background:#f6efe1;
  border-radius:999px;
  align-self:flex-start;
}

.multi-filters{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:20px;
}

.filter-group{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.filter-actions{
  display:flex;
  gap:4px;
  vertical-align: bottom;
}

.filter-group label{
  font-size:0.8rem;
  color:#555;
}

.filter-group select,
.filter-group input{
  padding:8px 10px;
  border-radius:8px;
  border:1px solid #ddd;
  background:#fff;
  font-size:0.9rem;
}

/* Layout listado + mapa */
.multi-main{
  display:grid;
  grid-template-columns: 1fr 420px;
  gap:16px;
  margin-top:20px;
}

.multi-list{
  max-height: calc(100vh - 140px);
  overflow-y:auto;
  overflow-x:hidden;
  padding: 4px 10px 10px 4px;
}

.properties-grid{
  padding:6px;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:16px;
}

.multi-map{
  position:sticky;
  top:100px;
  height:calc(100vh - 120px);
}

.map-container{
  width:100%;
  height:100%;
  border-radius:12px;
  overflow:hidden;
}

/* Cards de alojamiento (multi) */
.property-card{
  box-shadow:0 2px 6px rgba(0,0,0,0.06);
  display:flex;
  flex-direction:column;
  cursor:pointer;
  transition:transform 0.12s ease, box-shadow 0.12s ease;
}

.property-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,0.08);
}

.property-card.active{
  box-shadow: 0 0 0 2px #1a8b7d, 0 8px 22px rgba(0,0,0,0.18);
  transform: translateY(-3px);
}

.property-image-wrap{
  position:relative;
  width:100%;
  padding-top:42%;
  overflow:hidden;
}

.property-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.property-pill{
  position:absolute;
  left:10px;
  bottom:10px;
  background:rgba(0,0,0,0.7);
  color:#fff;
  font-size:0.75rem;
  padding:4px 8px;
  border-radius:999px;
}

.property-content{
  padding:10px 12px 10px;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.property-header{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.property-title{
  font-size:1rem;
  margin:0;
}

.property-chip{
  font-size:0.75rem;
  padding:2px 8px;
  border-radius:999px;
  background:#f0ede4;
  color:#4a3e2b;
}

.property-chip-soft{
  background:#edf6ff;
  color:#31527d;
}

.property-meta{
  font-size:0.85rem;
  color:#666;
}

.property-desc{
  font-size:0.85rem;
  color:#555;
  margin-top:2px;
}

.property-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:8px;
}

.property-price{
  display:flex;
  flex-direction:column;
  font-size:0.8rem;
  color:#555;
}

.property-price strong{
  font-size:1rem;
  color:#1a8b7d;
}

.property-price-noinfo{
  font-size:0.85rem;
  color:#777;
}

.empty-state{
  grid-column:1/-1;
  padding:16px 14px;
  border-radius:10px;
  background:#fffbe6;
  border:1px dashed #e0c76f;
  font-size:0.9rem;
}

/* Popup mapa */
.map-popup{
  background:#fff;
  border-radius:12px;
  padding:10px;
  box-shadow:0 4px 18px rgba(0,0,0,0.15);
  width:240px;
  max-width: 80vw;
}

.map-popup img{
  display:block;
  width:100%;
  height:130px;
  border-radius:10px;
  object-fit:cover;
  background:#f3f0e8;
}

.map-popup h4{
  margin:6px 0 2px;
  font-size:0.95rem;
}

.gm-style .gm-style-iw-c{
  padding: 0 !important;
  border-radius: 12px !important;
}

.gm-style .gm-style-iw-d{
  overflow: hidden !important;
}

button.gm-ui-hover-effect{
    background: white !important;
}

.gm-style-iw-chr {
    display: flex;
    overflow: visible;
    position: absolute;
    align-self: end;
}

.map-popup .btn-primary{
  display:inline-block;
  margin-top:8px;
}

/* Responsive */
@media (max-width: 900px){
  .container{ flex-direction:column; }
  .summary-column{ flex:1; }
  .summary-box{ position:static; }
  .form-row{ grid-template-columns:1fr; }
  .booking-screen-cal{ flex-direction:column; }
  .booking-calendar-col{ flex:1; }
  .user-reservas-layout{ grid-template-columns:1fr; }
}

@media (min-width: 900px){
  .properties-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px){
  .properties-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1440px){
  .properties-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px){
  .property-image-wrap{ padding-top:48%; }
  .map-popup{ width:200px; }
  .map-popup img{ height:110px; }
}

.profile-topbar{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}

.status-chip{
  display:inline-flex;
  align-items:center;
  padding:2px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  border:1px solid rgba(0,0,0,.12);
}
/*
.status-ok{ }
.status-pending{ }
.status-cancel{ }
.status-expired{ }
*/

.user-reservas-filters{
  display:flex;
  gap:8px;
  align-items:center;
  margin:6px 0 10px;
}

.user-reservas-filters input{
  flex:1;
  min-width: 140px;
  padding: 8px 10px;
  border:1px solid #dde1ee;
  border-radius: 10px;
  outline: none;
}

.user-reservas-filters select{
  padding: 8px 10px;
  border:1px solid #dde1ee;
  border-radius: 10px;
  background: #fff;
}

.user-reserva-row {
  cursor: pointer;
}

.user-reserva-row:hover {
  background: rgba(0,0,0,0.03);
}

.user-reserva-row.is-selected {
  background: rgba(0,0,0,0.06);
}

.reserva-carousel{
  width:100%;
  border-radius:12px;
  overflow:hidden;
  margin: 0 0 12px;
  border: 1px solid #e0e3f0;
}

.reserva-carousel img{
  width:100%;
  height:180px;
  object-fit:cover;
  display:block;
}

.reserva-prop-cell{
  display:flex;
  align-items:center;
  gap:10px;
}

.reserva-thumb{
  width:44px;
  height:34px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(0,0,0,.08);
  flex: 0 0 auto;
}

.reserva-prop-name{
  display:inline-block;
  line-height:1.2;
}

/* =========================================================
   FIX mobile multi/index: mapa en 1 columna, sin sticky
   ========================================================= */
@media (max-width: 900px){
  .multi-container .multi-main{
    grid-template-columns: 1fr !important;
  }

  .multi-container .multi-map{
    position: static !important;
    height: 360px !important;
    min-height: 360px !important;
    width: 100% !important;
  }

  .multi-container .map-container{
    height: 100% !important;
    min-height: 360px !important;
    width: 100% !important;
  }

  .multi-container .multi-list{
    max-height: none !important;
    overflow: visible !important;
  }
}

@media (max-width: 768px){
  .multi-container{
    padding: 16px 12px 32px;
    overflow-x: hidden;
  }

  .multi-filters{
    overflow-x: hidden;
  }

  .filter-group select,
  .filter-group input{
    max-width: 100%;
    box-sizing: border-box;
  }

  .properties-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px){
  .properties-grid{
    grid-template-columns: 1fr;
  }

  .multi-container{
    padding: 12px 8px 24px;
  }
}

.btn-fecha{
  max-width: fit-content;
}

.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #333;
    color: white;
    padding: 10px;
    text-align: center;
    z-index: 1000;
}
.cookie-banner button {
    background-color: #27ae60;
    color: white;
    padding: 8px 16px;
    border: none;
    cursor: pointer;
    margin: 0 5px;
}
.cookie-banner button:hover {
    background-color: #2ecc71;
}

/* =========================
   RESPONSIVE GLOBAL FIXES
   ========================= */

/* Prevenir desbordamiento horizontal global */
body { overflow-x: hidden; }

/* Imágenes siempre responsive */
img { max-width: 100%; }

/* Tamaño mínimo táctil en botones principales */
.btn-primary,
.btn-secondary,
.btn-ghost,
.login-tab {
  min-height: 44px;
}

/* Prevenir zoom en iOS al hacer foco en input */
@media (max-width: 768px) {
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="date"],
  input[type="tel"],
  select,
  textarea {
    font-size: 16px;
  }
}

/* Filtros multi: columna vertical en móvil */
@media (max-width: 768px) {
  .multi-filters {
    flex-direction: column;
    gap: 8px;
  }
  .multi-filters .filter-group {
    width: 100%;
  }
  .multi-filters .filter-group select,
  .multi-filters .filter-group input {
    width: 100%;
    min-height: 44px;
  }
  .filter-actions {
    width: 100%;
    flex-direction: row;
  }
  .filter-actions .btn-primary,
  .filter-actions .btn-ghost {
    flex: 1;
    text-align: center;
  }
}

/* User-tabs: scroll horizontal en móvil (sin wrap) */
@media (max-width: 768px) {
  .user-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }
  .user-tabs::-webkit-scrollbar {
    display: none;
  }
  .user-tab {
    flex-shrink: 0;
    white-space: nowrap;
  }
}

/* Tabla de reservas del usuario: scroll horizontal en móvil */
@media (max-width: 768px) {
  .user-reservas-list .table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .user-reservas-list table {
    min-width: 380px;
  }
  /* Chat en mobile: debajo de la lista */
  .user-reservas-layout {
    gap: 0.75rem;
  }
}

/* Layout perfil: evitar overflow en el container */
@media (max-width: 600px) {
  .container {
    padding: 16px 12px;
    gap: 16px;
  }
  .form-column {
    padding: 20px 16px;
  }
  .form-row {
    grid-template-columns: 1fr;
  }
  .profile-header {
    padding: 24px 16px;
  }
  .profile-header h1 {
    font-size: 1.8rem;
  }
}
