/* ============================================================
   Bougainvillea Availability Plugin — Widget Styles
   ============================================================ */

:root {
  --bvr-bg:       #08140F;
  --bvr-bg2:      #0D1C16;
  --bvr-glass:    rgba(255,255,255,0.05);
  --bvr-border:   rgba(255,255,255,0.09);
  --bvr-gold:     #C9A84C;
  --bvr-gold-lt:  #E8C870;
  --bvr-green:    #7EB68B;
  --bvr-text:     #E4EDE9;
  --bvr-muted:    #7A9A88;
  --bvr-avail:    #27AE60;
  --bvr-booked:   #C0392B;
  --bvr-unknown:  #D4A017;
  --bvr-rad:      14px;
  --bvr-tr:       0.3s cubic-bezier(.4,0,.2,1);
}

.bvr-checker-wrap { font-family: 'Inter', sans-serif; }

/* Picker Bar */
.bvr-picker-bar {
  display: flex; align-items: flex-end; gap: 1rem;
  flex-wrap: wrap;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(201,168,76,.3);
  border-radius: var(--bvr-rad);
  padding: 1.4rem 1.6rem 1.2rem;
  margin-bottom: .6rem;
  backdrop-filter: blur(16px);
}
.bvr-picker-field { flex: 1; min-width: 160px; }
.bvr-picker-field label {
  display: block; font-size: .7rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--bvr-gold); margin-bottom: .4rem;
}
.bvr-input-wrap {
  position: relative;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--bvr-border);
  border-radius: 10px; overflow: hidden;
  transition: border-color var(--bvr-tr), box-shadow var(--bvr-tr);
}
.bvr-input-wrap:focus-within {
  border-color: var(--bvr-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,.15);
}
.bvr-icon {
  position: absolute; left: .8rem; top: 50%;
  transform: translateY(-50%); font-size: .9rem; pointer-events: none;
}
.bvr-input-wrap input {
  width: 100%; padding: .72rem .9rem .72rem 2.4rem;
  background: transparent; border: none; outline: none;
  color: var(--bvr-text); font-size: .88rem;
  font-family: 'Inter', sans-serif; cursor: pointer;
}
.bvr-input-wrap input::placeholder { color: var(--bvr-muted); }
.bvr-picker-arrow { color: var(--bvr-muted); padding-bottom: .65rem; flex-shrink: 0; }
.bvr-btn-check {
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--bvr-gold), var(--bvr-gold-lt));
  color: #08140F; border: none;
  padding: .72rem 1.6rem; border-radius: 10px;
  font-family: 'Inter', sans-serif; font-size: .86rem; font-weight: 600;
  cursor: pointer; letter-spacing: .03em; white-space: nowrap;
  transition: all var(--bvr-tr); box-shadow: 0 4px 18px rgba(201,168,76,.3);
}
.bvr-btn-check:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(201,168,76,.45); }
.bvr-spinner { display: inline-block; animation: bvr-spin 1s linear infinite; }
@keyframes bvr-spin { to { transform: rotate(360deg); } }

.bvr-hint { font-size: .75rem; color: var(--bvr-muted); margin: 0 0 1.4rem; text-align: center; }

/* Status */
.bvr-status {
  display: flex; align-items: center; gap: .6rem;
  background: var(--bvr-bg2); border: 1px solid var(--bvr-border);
  border-radius: 10px; padding: .5rem 1rem;
  font-size: .78rem; color: var(--bvr-muted); margin-bottom: 2rem;
}
.bvr-status-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--bvr-muted); flex-shrink: 0; transition: background var(--bvr-tr);
}
.bvr-status-dot.loading { background: var(--bvr-unknown); animation: bvr-pulse 1s infinite; }
.bvr-status-dot.success { background: var(--bvr-avail); box-shadow: 0 0 8px var(--bvr-avail); }
.bvr-status-dot.error   { background: var(--bvr-booked); }
#bvr-status-text { flex: 1; }
.bvr-refresh-btn {
  background: none; border: 1px solid var(--bvr-border);
  color: var(--bvr-muted); padding: .2rem .6rem; border-radius: 6px;
  font-size: .72rem; cursor: pointer; transition: all var(--bvr-tr);
}
.bvr-refresh-btn:hover { border-color: var(--bvr-gold); color: var(--bvr-gold); }
@keyframes bvr-pulse { 0%,100%{opacity:1}50%{opacity:.4} }

/* Rooms Grid */
.bvr-rooms-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.6rem;
}

/* Card */
.bvr-card {
  background: var(--bvr-glass);
  border: 1px solid var(--bvr-border);
  border-radius: var(--bvr-rad);
  overflow: hidden;
  transition: transform var(--bvr-tr), box-shadow var(--bvr-tr), border-color var(--bvr-tr);
  animation: bvr-fadeIn .5s ease both;
}
.bvr-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 48px rgba(0,0,0,.5);
  border-color: rgba(201,168,76,.25);
}
@keyframes bvr-fadeIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
.bvr-card:nth-child(1){animation-delay:.05s}
.bvr-card:nth-child(2){animation-delay:.12s}
.bvr-card:nth-child(3){animation-delay:.19s}
.bvr-card:nth-child(4){animation-delay:.26s}

/* Card Band */
.bvr-card-band {
  position: relative; height: 120px;
  display: flex; align-items: center; justify-content: center;
}
.bvr-band-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.bvr-band-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom,rgba(0,0,0,.15),rgba(0,0,0,.5)); }
.bvr-room-icon { position: relative; z-index:1; font-size: 2.4rem; filter: drop-shadow(0 4px 8px rgba(0,0,0,.5)); }
.bvr-units-tag {
  position: absolute; top: .7rem; left: .8rem; z-index: 2;
  background: rgba(0,0,0,.5); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.15);
  color: #fff; font-size: .65rem; padding: .22rem .6rem; border-radius: 20px;
}

/* Badge */
.bvr-badge {
  position: absolute; top: .7rem; right: .8rem; z-index: 2;
  padding: .25rem .75rem; border-radius: 20px;
  font-size: .68rem; font-weight: 600;
  backdrop-filter: blur(8px); transition: all var(--bvr-tr);
}
.bvr-badge-idle      { background:rgba(122,154,136,.25);color:var(--bvr-muted);border:1px solid rgba(122,154,136,.3); }
.bvr-badge-loading   { background:rgba(212,160,23,.2);color:var(--bvr-unknown);border:1px solid rgba(212,160,23,.3);animation:bvr-pulse 1.2s infinite; }
.bvr-badge-available { background:rgba(39,174,96,.2);color:#2ECC71;border:1px solid rgba(39,174,96,.4);box-shadow:0 0 12px rgba(39,174,96,.25); }
.bvr-badge-booked    { background:rgba(192,57,43,.2);color:#E74C3C;border:1px solid rgba(192,57,43,.35); }
.bvr-badge-unknown   { background:rgba(212,160,23,.2);color:var(--bvr-unknown);border:1px solid rgba(212,160,23,.3); }

/* Card Body */
.bvr-card-body { padding: 1.2rem 1.2rem .9rem; }
.bvr-card-subtitle { font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--bvr-gold);margin-bottom:.25rem; }
.bvr-card-name { font-size:1.08rem;font-weight:700;color:var(--bvr-text);margin:0 0 .5rem;line-height:1.3; }
.bvr-card-desc { font-size:.8rem;color:var(--bvr-muted);line-height:1.65;margin-bottom:.8rem; }
.bvr-card-meta { display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:.75rem; }
.bvr-card-meta span { font-size:.72rem;color:var(--bvr-muted); }
.bvr-amenities { display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem; }
.bvr-amenity {
  font-size:.65rem;padding:.2rem .55rem;border-radius:20px;
  background:rgba(126,182,139,.1);border:1px solid rgba(126,182,139,.2);color:var(--bvr-green);
}

/* Mini Calendar */
.bvr-cal-wrap { margin-bottom:1rem; }
.bvr-cal-nav { display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem; }
.bvr-cal-month { font-size:.72rem;font-weight:600;color:var(--bvr-text); }
.bvr-cal-arrow { background:none;border:none;color:var(--bvr-muted);cursor:pointer;font-size:.9rem;padding:.1rem .35rem;border-radius:4px;transition:color var(--bvr-tr); }
.bvr-cal-arrow:hover { color:var(--bvr-gold); }
.bvr-cal-grid { display:grid;grid-template-columns:repeat(7,1fr);gap:2px; }
.bvr-cal-dh { font-size:.55rem;text-align:center;color:var(--bvr-muted);text-transform:uppercase; }
.bvr-cal-d { aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.62rem;border-radius:4px;transition:background var(--bvr-tr); }
.bvr-cal-d.past     { color:rgba(122,154,136,.3); }
.bvr-cal-d.today    { background:rgba(201,168,76,.2);color:var(--bvr-gold);font-weight:700; }
.bvr-cal-d.avail    { color:var(--bvr-muted); }
.bvr-cal-d.avail:hover { background:rgba(126,182,139,.15);color:var(--bvr-green); }
.bvr-cal-d.blocked  { background:rgba(192,57,43,.2);color:#E74C3C; }
.bvr-cal-d.inrange  { background:rgba(39,174,96,.12);color:#2ECC71; }

/* Book Button */
.bvr-btn-book {
  display:block;width:100%;padding:.7rem;text-align:center;text-decoration:none;
  background:transparent;border:1px solid rgba(201,168,76,.35);
  color:var(--bvr-gold);font-size:.82rem;font-weight:500;
  border-radius:10px;cursor:pointer;letter-spacing:.04em;
  transition:all var(--bvr-tr);font-family:'Inter',sans-serif;
}
.bvr-btn-book:hover {
  background:linear-gradient(135deg,var(--bvr-gold),var(--bvr-gold-lt));
  border-color:transparent;color:#08140F;font-weight:600;
  box-shadow:0 6px 20px rgba(201,168,76,.3);transform:translateY(-1px);
}
.bvr-card.card-available .bvr-btn-book {
  background:linear-gradient(135deg,var(--bvr-gold),var(--bvr-gold-lt));
  border-color:transparent;color:#08140F;font-weight:600;
}

/* Skeleton */
.bvr-skeleton { background:linear-gradient(90deg,#0D1C16 25%,#112219 50%,#0D1C16 75%);background-size:200% 100%;animation:bvr-shimmer 1.5s infinite;border-radius:4px; }
@keyframes bvr-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.bvr-sk-band  { height:120px; }
.bvr-sk-title { height:18px;margin:1.2rem 1.2rem .6rem;border-radius:6px; }
.bvr-sk-line  { height:12px;margin:.4rem 1.2rem;border-radius:4px; }
.bvr-sk-line.short { width:60%; }
.bvr-sk-cal   { height:80px;margin:1rem 1.2rem;border-radius:8px; }

/* Responsive */
@media(max-width:640px){
  .bvr-picker-bar{flex-direction:column;}
  .bvr-picker-arrow{display:none;}
  .bvr-btn-check{width:100%;}
  .bvr-rooms-grid{grid-template-columns:1fr;}
}
