/* =========================================================
   LAPAKRUMAH.COM - APP CSS (ONE FILE)
   Pages: index.php, rumah.php, riwayat.php, akun.php
   Brand: blue, red, black, white, gold
========================================================= */

:root{
  --blue:#0b3a7e;
  --blue2:#1e66ff;
  --red:#d61f2c;
  --black:#0b0f19;
  --white:#ffffff;
  --gold:#d7b25a;

  --bg:#f4f6fb;
  --muted:#64748b;
  --card:#ffffff;
  --border:#e5e7eb;

  --shadow:0 10px 25px rgba(2,6,23,.08);
  --radius:16px;
  --radius2:22px;
}

/* ===== Reset / Base ===== */
*{box-sizing:border-box;margin:0;padding:0}
html,body{max-width:100%;overflow-x:hidden}
body{
  font-family:'Poppins',sans-serif;
  background:var(--bg);
  color:var(--black);
  padding-bottom:76px; /* space for bottom nav */
}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
button,input,select{font-family:inherit}
.lr-gold{color:var(--gold)}
.lr-muted{color:var(--muted)}
.lr-hr{border:none;border-top:1px solid var(--border);margin:14px 0}

/* ===== Layout ===== */
.lr-container{max-width:1100px;margin:0 auto;padding:14px 12px}
.lr-section{margin-top:14px}
.lr-section__head{
  display:flex;justify-content:space-between;gap:12px;
  align-items:flex-end;margin-bottom:12px;flex-wrap:wrap;
}
.lr-h2{font-size:18px;font-weight:900;line-height:1.2}
.lr-link{color:var(--blue);font-weight:900}

/* ===== Buttons ===== */
.lr-btn{
  border:1px solid var(--border);
  background:#fff;
  border-radius:14px;
  padding:10px 12px;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:8px;
}
.lr-btn--primary{background:var(--blue);border-color:var(--blue);color:#fff}
.lr-btn--ghost{background:#fff;color:var(--black)}
.lr-btn:disabled{opacity:.6;cursor:not-allowed}

/* =========================================================
   HEADER (TOPBAR) - FIXED RESPONSIVE 380px
========================================================= */
.lr-topbar{
  position:sticky;top:0;z-index:1000;
  background:var(--white);
  border-bottom:1px solid var(--border);

  /* use GRID for stable mobile layout */
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;

  width:100%;
  max-width:100vw;
  padding:10px 12px;
}

.lr-topbar__brand,
.lr-topbar__icons,
.lr-search{min-width:0}

.lr-brand{
  display:flex;align-items:center;gap:8px;
  min-width:0;
}
.lr-logo{
  width:34px;height:34px;border-radius:12px;
  object-fit:cover;flex:0 0 auto;
  border:1px solid rgba(0,0,0,.06);
}
.lr-brand__text{
  font-weight:800;
  display:block;
  min-width:0;
  max-width:160px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.lr-search{
  display:flex;gap:8px;align-items:center;
  min-width:0;
}
.lr-search input{
  flex:1 1 auto;min-width:0;width:100%;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  outline:none;background:#fff;
}
.lr-search button{
  flex:0 0 auto;
  border:none;border-radius:14px;
  padding:10px 14px;
  background:var(--blue);
  color:#fff;font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}

.lr-topbar__icons{
  display:flex;gap:8px;
  justify-self:end;
}
.lr-iconbtn{
  position:relative;
  width:40px;height:40px;border-radius:14px;
  background:#fff;border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
}
.lr-badge{
  position:absolute;top:-6px;right:-6px;
  min-width:20px;height:20px;border-radius:10px;
  background:var(--red);color:#fff;font-size:11px;font-weight:900;
  display:flex;align-items:center;justify-content:center;padding:0 6px;
}

/* 2-row layout on mobile */
@media (max-width:480px){
  .lr-topbar{
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto;
    gap:8px;
  }
  .lr-topbar__brand{grid-column:1;grid-row:1}
  .lr-topbar__icons{grid-column:2;grid-row:1}
  .lr-search{grid-column:1 / -1;grid-row:2}
  .lr-brand__text{max-width:140px}
}

/* smallest 380px */
@media (max-width:380px){
  .lr-topbar{padding:8px 10px}
  .lr-brand__text{max-width:110px}
  .lr-iconbtn{width:36px;height:36px}
  /* shrink search button to icon */
  .lr-search button{
    width:44px;
    padding:0;
    font-size:0;
  }
  .lr-search button::before{
    content:"🔎";
    font-size:18px;
    line-height:44px;
    display:block;
  }
}

/* =========================================================
   BOTTOM NAV (STICKY)
========================================================= */
.lr-bottomnav{
  position:fixed;left:0;right:0;bottom:0;z-index:1000;
  background:#fff;border-top:1px solid var(--border);
  display:flex;justify-content:space-around;
  padding:8px 6px;
}
.lr-bottomnav a{
  flex:1;display:flex;flex-direction:column;gap:4px;
  align-items:center;justify-content:center;
  padding:8px 6px;border-radius:14px;
  color:var(--muted);font-weight:700;font-size:12px;
}
.lr-bottomnav a.active{color:var(--blue);background:rgba(11,58,126,.08)}
.lr-navico{font-size:18px}

/* =========================================================
   HOME/UMUM: SLIDER
========================================================= */
.lr-slider{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
  box-shadow:var(--shadow);
}
.lr-slide{display:none}
.lr-slide.active{display:block}
.lr-slide img{width:100%;height:auto}

.lr-slidebtn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:40px;border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
  font-size:22px;font-weight:900;
  cursor:pointer;
}
.lr-slidebtn.prev{left:10px}
.lr-slidebtn.next{right:10px}

.lr-dots{
  position:absolute;left:0;right:0;bottom:10px;
  display:flex;gap:6px;justify-content:center;
}
.lr-dotbtn{
  width:9px;height:9px;border-radius:99px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(0,0,0,.08);
  cursor:pointer;
}
.lr-dotbtn.active{background:var(--gold)}

/* =========================================================
   GRID + HOUSE CARD (Home & Rumah)
========================================================= */
.lr-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
@media (max-width:980px){.lr-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.lr-grid{grid-template-columns:1fr}}

.lr-housecard{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius2);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.lr-housecard__img{position:relative;display:block}
.lr-chip{
  position:absolute;left:10px;bottom:10px;
  background:rgba(0,0,0,.72);color:#fff;
  font-size:12px;font-weight:900;
  padding:6px 10px;border-radius:999px;
}
.lr-housecard__body{padding:12px}
.lr-housecard__meta{
  display:flex;gap:8px;align-items:center;
  color:var(--muted);font-size:12px;font-weight:700;
  flex-wrap:wrap;
}
.lr-dot{opacity:.6}
.lr-housecard__title{font-weight:900;margin-top:6px;line-height:1.25}
.lr-housecard__price{color:var(--red);font-weight:900;margin-top:6px}
.lr-housecard__spec{
  display:flex;gap:10px;flex-wrap:wrap;
  color:var(--muted);font-size:12px;font-weight:700;
  margin-top:8px;
}
.lr-housecard__actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}

/* =========================================================
   FILTER BAR (Rumah)
========================================================= */
.lr-filterbar{
  background:#fff;border:1px solid var(--border);
  border-radius:22px;box-shadow:var(--shadow);
  padding:12px;
}
.lr-filter{
  display:flex;gap:10px;flex-wrap:wrap;
  align-items:flex-end;
}
.lr-filter label{display:grid;gap:6px}
.lr-filter label span{
  font-size:12px;color:var(--muted);
  font-weight:900;
}
.lr-filter select{
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  min-width:180px;
  outline:none;background:#fff;
}
@media (max-width:520px){
  .lr-filter select{min-width:100%}
}

/* =========================================================
   EMPTY STATE
========================================================= */
.lr-empty{
  background:#fff;border:1px dashed var(--border);
  border-radius:22px;padding:18px;text-align:center;
}
.lr-empty__title{font-weight:900}

/* =========================================================
   CARD (Akun / Umum)
========================================================= */
.lr-card{
  background:#fff;border:1px solid var(--border);
  border-radius:22px;box-shadow:var(--shadow);
  padding:14px;
}
.lr-card__title{font-weight:900;font-size:16px}
.lr-card__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* Profil rows */
.lr-profile{display:grid;gap:8px;margin-top:12px}
.lr-profile__row{
  display:flex;justify-content:space-between;gap:12px;
  padding:10px 0;border-bottom:1px dashed var(--border);
}
.lr-profile__row:last-child{border-bottom:none}

/* Status grid */
.lr-statusgrid{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:10px;margin-top:12px;
}
@media (max-width:980px){.lr-statusgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.lr-statusgrid{grid-template-columns:repeat(2,1fr)}}
.lr-statusbox{
  border:1px solid var(--border);
  border-radius:18px;padding:12px;
}
.lr-statusbox__label{color:var(--muted);font-weight:900;font-size:12px}
.lr-statusbox__num{font-weight:900;font-size:20px;margin-top:6px}

/* =========================================================
   RIWAYAT TABLE
========================================================= */
.lr-tablewrap{
  background:#fff;border:1px solid var(--border);
  border-radius:22px;box-shadow:var(--shadow);
  overflow:auto;
}
.lr-table{
  width:100%;
  border-collapse:collapse;
  min-width:780px;
}
.lr-table th,.lr-table td{
  padding:12px;border-bottom:1px solid var(--border);
  text-align:left;vertical-align:top;
}
.lr-table th{
  background:#f8fafc;
  font-size:12px;color:var(--muted);
  font-weight:900;
}

/* Pills */
.lr-pill{
  display:inline-flex;align-items:center;justify-content:center;
  padding:6px 10px;border-radius:999px;
  font-weight:900;font-size:12px;
  border:1px solid var(--border);
}
.lr-pill--pending{background:rgba(245,158,11,.12)}
.lr-pill--paid{background:rgba(22,163,74,.12)}
.lr-pill--failed,
.lr-pill--expired,
.lr-pill--canceled{background:rgba(220,38,38,.12)}
.lr-pill--app{background:rgba(11,58,126,.10)}

/* =========================================================
   FLASH
========================================================= */
.lr-flash{
  margin:10px 12px;
  padding:12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
  box-shadow:var(--shadow);
}
.lr-flash--success{border-color:rgba(22,163,74,.25)}
.lr-flash--danger{border-color:rgba(220,38,38,.25)}
.lr-flash--warning{border-color:rgba(245,158,11,.25)}

/* =========================================================
   SITEPLAN MODAL (dipakai di Rumah/Home)
========================================================= */
.lr-modal{position:fixed;inset:0;display:none;z-index:2000}
.lr-modal.show{display:block}
.lr-modal__backdrop{position:absolute;inset:0;background:rgba(2,6,23,.6)}
.lr-modal__dialog{
  position:relative;
  max-width:760px;
  margin:8vh auto 0;
  background:#fff;
  border-radius:22px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  overflow:hidden;
}
@media (max-width:520px){
  .lr-modal__dialog{margin:0;max-width:100%;height:100%;border-radius:0}
}
.lr-modal__head{
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:14px 14px;border-bottom:1px solid var(--border);
}
.lr-modal__title{font-weight:900}
.lr-modal__sub{color:var(--muted);font-size:12px;margin-top:2px}
.lr-iconclose{border:none;background:#fff;font-size:18px;cursor:pointer}
.lr-modal__body{padding:14px}
.lr-modal__foot{padding:12px 14px;border-top:1px solid var(--border)}

.lr-siteplan__legend{
  display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px
}
.lr-legend{
  display:flex;gap:8px;align-items:center;
  color:var(--muted);font-weight:900;font-size:12px
}
.lr-dotbox{width:14px;height:14px;border-radius:4px;display:inline-block}
.lr-dotbox--blue{background:var(--blue2)}
.lr-dotbox--red{background:var(--red)}
.lr-dotbox--gray{background:#94a3b8}

.lr-siteplan__grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:8px;
}
@media(max-width:520px){.lr-siteplan__grid{grid-template-columns:repeat(4,1fr)}}

.lr-block{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 8px;
  font-weight:900;
  text-align:center;
  cursor:pointer;
  user-select:none;
}
.lr-block.available{background:rgba(30,102,255,.12);color:var(--blue)}
.lr-block.locked{background:rgba(148,163,184,.18);color:#334155;cursor:not-allowed}
.lr-block.booked,.lr-block.acc{background:rgba(214,31,44,.12);color:#8a0f18}

.lr-panel{
  background:#fff;border:1px solid var(--border);
  border-radius:18px;padding:12px
}
/* =========================================================
   SITEPLAN MODAL - BIGGER, COMFY (DESKTOP & MOBILE)
   (Tempel di bawah section SITEPLAN MODAL Anda)
========================================================= */

/* modal dialog lebih lebar */
.lr-modal__dialog{
  max-width: 980px;          /* dari 760 -> 980 */
  width: calc(100% - 24px);
  margin: 6vh auto 0;
}

/* body lebih tinggi supaya grid muat */
.lr-modal__body{
  padding: 16px 18px;
}

/* wrapper 2 kolom: grid (kiri) lebih besar */
.sp-wrap{
  display: grid;
  grid-template-columns: 1.65fr .75fr !important; /* kiri lebih dominan */
  gap: 14px !important;
  align-items: start;
}

/* area grid: kasih tinggi tetap + scroll internal */
#spGrid{
  min-height: 360px;
  max-height: 52vh;          /* biar tidak kepanjangan */
  overflow: auto;
  padding-right: 6px;
}

/* scrollbar halus (opsional) */
#spGrid::-webkit-scrollbar{width:8px}
#spGrid::-webkit-scrollbar-thumb{
  background: rgba(100,116,139,.35);
  border-radius: 999px;
}
#spGrid::-webkit-scrollbar-track{background: transparent}

/* grid blok: lebih rapat dan enak dilihat */
.lr-siteplan__grid{
  grid-template-columns: repeat(8, 1fr) !important; /* dari 6 -> 8 */
  gap: 10px !important;
}

/* blok: lebih besar */
.lr-block{
  padding: 12px 8px !important;
  border-radius: 14px !important;
  font-size: 13px;
}

/* panel kanan: sticky biar ga hilang saat scroll grid */
#spPanel{
  position: sticky;
  top: 0;
}

/* Tablet */
@media (max-width: 980px){
  .lr-modal__dialog{max-width: 900px}
  .lr-siteplan__grid{grid-template-columns:repeat(6,1fr) !important}
}

/* Mobile */
@media (max-width: 520px){
  .lr-modal__dialog{
    margin: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    max-width: 100%;
  }

  .sp-wrap{
    grid-template-columns: 1fr !important;
  }

  #spGrid{
    max-height: 55vh;
    min-height: 320px;
  }

  .lr-siteplan__grid{
    grid-template-columns: repeat(4,1fr) !important;
    gap: 10px !important;
  }
}

/* Booking form inside modal */
.lr-form{display:grid;gap:10px}
.lr-form__title{font-weight:900;margin-bottom:2px}
.lr-field span{
  display:block;font-size:12px;color:var(--muted);
  font-weight:900;margin-bottom:6px
}
.lr-field input,.lr-field select{
  width:100%;
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  outline:none;
  background:#fff;
}
.lr-form__actions{display:flex;gap:10px;flex-wrap:wrap}
.lr-form__note{font-size:12px;color:var(--muted);margin-top:4px}

.lr-bookinfo__title{font-weight:900;margin-bottom:10px}
.lr-bookinfo__row{
  display:flex;justify-content:space-between;
  padding:8px 0;border-bottom:1px dashed var(--border)
}
.lr-bookinfo__row:last-child{border-bottom:none}

/* =========================================================
   FOOTER
========================================================= */
.lr-footer{margin-top:20px;padding:18px 12px}
.lr-footer__inner{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  padding:16px;
  display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;
}
.lr-footer__brand{font-weight:900}
.lr-footer__muted{color:var(--muted);font-size:13px;margin-top:4px}
.lr-footer__links{display:flex;gap:12px;flex-wrap:wrap}
.lr-footer__links a{color:var(--muted);font-weight:800}
.lr-footer__copy{color:var(--muted);text-align:center;font-size:12px;margin-top:10px}
/* ===== Slider (fix blank/height 0) ===== */
.lr-slider{
  position:relative;
  width:100%;
  border-radius:22px;
  overflow:hidden;
  background:#f1f5f9;
  border:1px solid var(--border);
  aspect-ratio: 16 / 9;   /* penting biar tinggi muncul */
  min-height: 180px;      /* aman untuk device kecil */
}

.lr-slide{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
}
.lr-slide.active{
  opacity:1;
  pointer-events:auto;
}

.lr-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* buttons */
.lr-slidebtn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;height:40px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:26px;
  font-weight:900;
  cursor:pointer;
  z-index:5;
}
.lr-slidebtn.prev{left:10px}
.lr-slidebtn.next{right:10px}

/* dots */
.lr-dots{
  position:absolute;
  left:0; right:0; bottom:10px;
  display:flex;
  justify-content:center;
  gap:8px;
  z-index:6;
}
.lr-dotbtn{
  width:9px;height:9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.35);
  cursor:pointer;
}
.lr-dotbtn.active{
  background:var(--gold);
  border-color:rgba(0,0,0,.15);
}

@media (max-width:380px){
  .lr-slider{min-height:150px}
  .lr-slidebtn{width:36px;height:36px}
}
/* =========================
   Banner (CSS-only slider)
   ========================= */
.lr-banner{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  border:1px solid var(--border);
  background:#f1f5f9;
}

.lr-banner__track{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
.lr-banner__track::-webkit-scrollbar{height:0}

.lr-banner__slide{
  flex:0 0 100%;
  scroll-snap-align:start;
}

.lr-banner__slide img{
  width:100%;
  height:220px;
  display:block;
  object-fit:cover;
}

.lr-banner__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:42px;height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:26px;
  font-weight:900;
  cursor:pointer;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:center;
}

.lr-banner__nav--prev{left:10px}
.lr-banner__nav--next{right:10px}

@media (max-width:380px){
  .lr-banner__slide img{height:160px}
  .lr-banner__nav{width:38px;height:38px}
}
/* ===== Siteplan grid fix (wajib) ===== */
#spGrid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:8px;
  margin-top:10px;
  max-height:48vh;
  overflow:auto;
  padding-right:4px;
}
@media(max-width:520px){
  #spGrid{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
}

.lr-block{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 8px;
  font-weight:900;
  text-align:center;
  user-select:none;
  background:#fff;
}
.lr-block.available{background:rgba(30,102,255,.12);color:var(--blue);border-color:rgba(30,102,255,.25)}
.lr-block.locked{background:rgba(148,163,184,.18);color:#334155}
.lr-block.booked,.lr-block.acc{background:rgba(214,31,44,.12);color:#8a0f18}

.lr-block:disabled{opacity:.65}
