*{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#1e5fcf; --blue-dark:#0d3a8a; --blue-light:#e8f0fc;
  --white:#fff; --bg:#f5f8fc; --text:#0f1c33; --muted:#6b7a90;
  --border:#dfe6f0; --urgent:#e63946; --green:#2da44e;
  --shadow:0 2px 8px rgba(13,58,138,.08); --shadow-lg:0 8px 30px rgba(13,58,138,.15);
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Sarabun',sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
.container{max-width:1200px;margin:0 auto;padding:0 16px}
.hidden{display:none !important}
.muted{color:var(--muted);font-size:14px}
a{color:var(--blue);text-decoration:none}
button{cursor:pointer;font-family:inherit}
img{max-width:100%;display:block}

/* MODAL (edit / generic dialog) */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;z-index:1000}
.modal.hidden{display:none}
.modal-card{background:#fff;border-radius:12px;max-width:800px;width:100%;padding:24px;max-height:calc(100vh - 48px);overflow:auto}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}

/* TICKER */
.ticker-bar{background:var(--urgent);color:#fff;display:flex;align-items:center;overflow:hidden;height:36px}
.ticker-label{padding:0 16px;background:rgba(0,0,0,.2);font-weight:700;height:100%;display:flex;align-items:center;flex-shrink:0;font-size:14px}
.ticker-track{display:flex;gap:40px;white-space:nowrap;animation:tick 40s linear infinite;padding-left:40px}
.ticker-track a{color:#fff;font-size:14px}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* HEADER */
.header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.header-inner{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand-logo{width:42px;height:42px;background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;flex-shrink:0}
.brand-name{font-weight:700;font-size:18px;color:var(--blue-dark)}
.brand-sub{font-size:11px;color:var(--muted)}
.nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nav a{padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;color:var(--text)}
.nav a.active,.nav a:hover{background:var(--blue-light);color:var(--blue-dark)}

/* HERO */
.hero{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;padding:48px 0 32px}
.hero h1{font-size:32px;margin-bottom:8px}
.hero p{opacity:.9;margin-bottom:24px}

/* FILTER CARD */
.filter-card{background:#fff;color:var(--text);padding:20px;border-radius:14px;box-shadow:var(--shadow-lg)}
.filter-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr auto;gap:10px;margin-bottom:12px}
.filter-row input,.filter-row select,.filter-card input,.filter-card select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;width:100%}
.filter-row input:focus,.filter-row select:focus{outline:none;border-color:var(--blue)}
.amenity-filter{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:6px 12px;border:1px solid var(--border);border-radius:20px;background:#fff;font-size:13px;cursor:pointer;transition:all .15s}
.chip.active{background:var(--blue);color:#fff;border-color:var(--blue)}

/* BUTTONS */
.btn{padding:10px 16px;border:none;border-radius:8px;font-weight:600;font-size:14px;transition:all .15s;display:inline-flex;align-items:center;gap:6px;justify-content:center;text-decoration:none}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.btn-danger{background:var(--urgent);color:#fff}
.btn-edit{background:var(--green);color:#fff}
.btn-full,.btn.full{width:100%}

/* SECTION */
.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:24px 0 16px;gap:12px;flex-wrap:wrap}
.section-head h2{font-size:22px}

/* GRID */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding-bottom:40px}
.card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);transition:all .2s;position:relative;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card-link{color:inherit;display:block}
.card-img{aspect-ratio:16/10;background:#e0e8f3;position:relative;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.urgent-badge{position:absolute;top:10px;left:10px;background:var(--urgent);color:#fff;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:700;z-index:2}
.dist-badge{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.6);color:#fff;padding:4px 10px;border-radius:20px;font-size:12px;z-index:2}
.card-body{padding:14px}
.card-title{font-weight:700;font-size:16px;margin-bottom:4px;color:var(--text)}
.card-addr{font-size:13px;color:var(--muted);margin-bottom:8px}
.card-price{font-size:20px;font-weight:800;color:var(--blue);margin-bottom:8px}
.card-meta{display:flex;flex-wrap:wrap;gap:6px}
.meta-tag{background:var(--blue-light);color:var(--blue-dark);padding:3px 8px;border-radius:6px;font-size:12px}
.card-actions{padding:0 14px 14px;margin-top:auto}

/* DETAIL */
.detail-page{padding-top:24px;padding-bottom:40px}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;max-height:500px;margin-bottom:24px;border-radius:14px;overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover;cursor:pointer;background:#e0e8f3}
.gallery img:first-child{grid-row:span 2;height:100%}
.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:24px}
.detail-main h1{font-size:26px;margin-bottom:6px}
.detail-price{font-size:28px;font-weight:800;color:var(--blue);margin:14px 0}
.amenity-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.amenity-item{background:#fff;padding:10px;border-radius:8px;box-shadow:var(--shadow);font-size:14px}
.map-frame{width:100%;height:340px;border:0;border-radius:12px}
.contact-card{background:#fff;padding:20px;border-radius:14px;box-shadow:var(--shadow);position:sticky;top:80px}
.contact-card h3{margin-bottom:12px}

/* ADMIN */
.admin-page{padding-top:24px;padding-bottom:40px}
.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.tab{padding:10px 18px;border:1px solid var(--border);background:#fff;border-radius:10px;font-weight:600;font-size:14px}
.tab.active{background:var(--blue);color:#fff}
.tab-panel{background:#fff;padding:24px;border-radius:14px;box-shadow:var(--shadow)}
.tab-panel h2{margin-bottom:18px;font-size:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--text)}
.form-grid label.full{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{padding:10px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;width:100%}
.amenity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;font-weight:400}
.amenity-grid label{flex-direction:row;align-items:center;gap:6px;background:#f5f8fc;padding:8px;border-radius:6px;cursor:pointer}
.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.admin-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.admin-table th,.admin-table td{padding:10px;text-align:left;border-bottom:1px solid var(--border)}
.admin-table th{background:#f5f8fc;font-weight:700}

/* LOGIN GATE */
.login-gate{min-height:calc(100vh - 70px);display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;padding:32px;border-radius:14px;box-shadow:var(--shadow-lg);max-width:400px;width:100%;display:flex;flex-direction:column;gap:14px}
.login-card h2{font-size:22px}
.login-card input{padding:12px;border:1px solid var(--border);border-radius:8px;font-size:14px}
.error-msg{color:var(--urgent);font-size:13px;text-align:center}

/* MISC */
.empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:16px}
.loading{padding:40px;text-align:center;color:var(--muted)}
.footer{background:var(--blue-dark);color:#fff;text-align:center;padding:24px;margin-top:40px;font-size:14px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--text);color:#fff;padding:12px 20px;border-radius:8px;z-index:2000;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .3s;pointer-events:none}
.toast.show{opacity:1}

/* CONTACT MODAL */
.modal-form{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.modal-form input{padding:12px;border:1px solid var(--border);border-radius:8px;font-size:14px;width:100%}

/* RESPONSIVE */
@media(max-width:900px){
  .detail-grid{grid-template-columns:1fr}
  .contact-card{position:static}
}
@media(max-width:768px){
  .hero{padding:32px 0 24px}
  .hero h1{font-size:22px}
  .hero p{font-size:14px;margin-bottom:16px}
  .filter-card{padding:14px}
  .filter-row{grid-template-columns:1fr 1fr;gap:8px}
  .filter-row > input:first-child,.filter-row select,.filter-row button{grid-column:1/-1}
  .gallery{grid-template-columns:1fr 1fr;max-height:none}
  .gallery img:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:16/10;height:auto}
  .form-grid{grid-template-columns:1fr}
  .tab-panel{padding:16px}
  .modal-card{padding:16px}
  .brand-name{font-size:16px}
  .brand-sub{display:none}
  .nav a{padding:6px 10px;font-size:13px}
  .ticker-label{font-size:12px;padding:0 10px}
  .section-head h2{font-size:18px}
  .detail-main h1{font-size:20px}
  .detail-price{font-size:22px}
  .map-frame{height:260px}
}
@media(max-width:420px){
  .grid{grid-template-columns:1fr}
  .header-inner{padding:10px 12px}
  .nav{gap:2px}
}

/* WHY CHOOSE US */
.why-section{background:#fff;padding:32px 0;border-bottom:1px solid var(--border)}
.why-title{font-size:22px;color:var(--blue-dark);margin-bottom:18px;text-align:center}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;max-width:900px;margin:0 auto}
.why-item{display:flex;gap:10px;align-items:flex-start;background:var(--blue-light);padding:14px;border-radius:10px}
.why-icon{font-size:18px;flex-shrink:0}
.why-item strong{color:var(--blue-dark);font-size:15px}
.why-foot{text-align:center;margin-top:18px;color:var(--muted);font-size:15px}
@media(max-width:768px){
  .why-section{padding:24px 0}
  .why-title{font-size:18px;margin-bottom:14px}
  .why-item{padding:12px;font-size:14px}
}
