/* ==========================================================================
   HOME HUNTERZ ADMIN — shares design tokens with the public site's
   css/style.css (same fonts, same navy/orange palette) so it feels like
   part of the same product, but is laid out as a standard admin
   dashboard (sidebar + content), not the marketing site's design.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --navy-900:#0A1130;
  --orange-600:#FE5901;
  --orange-700:#E24E00;
  --orange-100:#FFE4D3;
  --paper:#FFFFFF;
  --mist:#F5F6F9;
  --line:#E7E9F0;
  --ink:#1B2033;
  --slate:#5B6478;
  --green:#1C9A5B;
  --red:#D14343;
  --amber:#C77E00;
  --radius-md:16px;
  --radius-lg:20px;
  --shadow-card:0 12px 30px -14px rgba(10,17,48,.18);
  --transition-fast:.15s ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{
  font-family:'Inter',sans-serif;color:var(--ink);background:var(--mist);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,textarea,select{font-family:inherit;font-size:14px;}
ul{list-style:none;}
img{max-width:100%;display:block;}

/* ---------- Layout shell ---------- */
.admin-shell{display:flex;min-height:100vh;}

.admin-sidebar{
  width:260px;flex-shrink:0;background:var(--navy-900);color:#fff;
  display:flex;flex-direction:column;padding:24px 0;
  position:sticky;top:0;height:100vh;overflow-y:auto;
}
.admin-brand{display:flex;align-items:center;gap:10px;padding:0 22px 22px;}
.admin-brand img{height:34px;}
.admin-brand-word{font-family:'Anton',sans-serif;font-size:16px;letter-spacing:.03em;}
.admin-brand-word span{color:var(--orange-600);}
.admin-brand-sub{display:block;font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.4);margin-top:2px;text-transform:uppercase;}

.admin-nav{flex:1;padding:6px 12px;}
.admin-nav-group{margin-top:18px;}
.admin-nav-group:first-child{margin-top:0;}
.admin-nav-group-label{
  font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.35);padding:0 12px;margin-bottom:6px;
}
.admin-nav a, .admin-nav .admin-nav-toggle{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;
  color:rgba(255,255,255,.75);font-size:13.5px;font-weight:500;
  transition:background var(--transition-fast), color var(--transition-fast);
  width:100%;text-align:left;
}
.admin-nav a svg, .admin-nav-toggle svg{width:17px;height:17px;flex-shrink:0;}
.admin-nav a:hover, .admin-nav-toggle:hover{background:rgba(255,255,255,.06);color:#fff;}
.admin-nav a.active{background:var(--orange-600);color:#fff;}
.admin-nav-sub{padding-left:30px;display:flex;flex-direction:column;gap:2px;margin-top:2px;}
.admin-nav-sub a{font-size:13px;padding:7px 12px;}

.admin-sidebar-footer{padding:14px 22px 4px;border-top:1px solid rgba(255,255,255,.08);margin-top:12px;}
.admin-logout-btn{
  display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.6);font-size:13px;font-weight:600;
  padding:8px 0;transition:color var(--transition-fast);
}
.admin-logout-btn:hover{color:#fff;}

.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.admin-topbar{
  background:#fff;border-bottom:1px solid var(--line);padding:16px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:10;
}
.admin-topbar h1{font-size:19px;font-weight:700;color:var(--navy-900);}
.admin-topbar-actions{display:flex;align-items:center;gap:12px;}
.admin-mobile-toggle{display:none;width:38px;height:38px;border-radius:10px;background:var(--mist);align-items:center;justify-content:center;}
.admin-mobile-toggle svg{width:19px;height:19px;}

.admin-content{padding:26px 28px 60px;flex:1;}

/* ---------- Shared UI bits ---------- */
.admin-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);}
.admin-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border-radius:11px;font-size:13.5px;font-weight:700;
  transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  white-space:nowrap;
}
.admin-btn svg{width:16px;height:16px;}
.admin-btn-primary{background:var(--orange-600);color:#fff;}
.admin-btn-primary:hover{background:var(--orange-700);}
.admin-btn-outline{background:#fff;color:var(--navy-900);border:1.5px solid var(--line);}
.admin-btn-outline:hover{border-color:var(--navy-900);}
.admin-btn-ghost{color:var(--slate);}
.admin-btn-ghost:hover{color:var(--navy-900);}
.admin-btn-danger{color:var(--red);}
.admin-btn-danger:hover{background:#FEEAEA;}
.admin-btn-sm{padding:7px 12px;font-size:12.5px;}
.admin-btn:disabled{opacity:.5;cursor:not-allowed;}

.admin-field{margin-bottom:16px;}
.admin-field label{display:block;font-size:12.5px;font-weight:700;color:var(--navy-900);margin-bottom:7px;letter-spacing:.01em;}
.admin-field .req{color:var(--orange-600);}
.admin-field input, .admin-field select, .admin-field textarea{
  width:100%;padding:11px 14px;border:1.5px solid var(--line);border-radius:11px;
  background:#fff;color:var(--ink);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.admin-field input:focus, .admin-field select:focus, .admin-field textarea:focus{
  outline:none;border-color:var(--orange-600);box-shadow:0 0 0 3px rgba(254,89,1,.12);
}
.admin-field textarea{min-height:90px;resize:vertical;}
.admin-field-hint{font-size:11.5px;color:var(--slate);margin-top:5px;}
.admin-field.invalid input, .admin-field.invalid select, .admin-field.invalid textarea{border-color:var(--red);}
.admin-field-error{display:none;font-size:11.5px;color:var(--red);margin-top:5px;}
.admin-field.invalid .admin-field-error{display:block;}

.admin-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.admin-form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.admin-checkbox-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.admin-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);}
.admin-checkbox input{width:auto;}

.admin-toast{
  position:fixed;top:20px;right:20px;z-index:999;
  background:var(--navy-900);color:#fff;padding:13px 20px;border-radius:12px;
  font-size:13.5px;font-weight:600;box-shadow:0 16px 40px -16px rgba(0,0,0,.4);
  display:flex;align-items:center;gap:10px;
  transform:translateX(20px);opacity:0;pointer-events:none;transition:transform .25s ease, opacity .25s ease;
}
.admin-toast.show{transform:translateX(0);opacity:1;}
.admin-toast.success{background:var(--green);}
.admin-toast.error{background:var(--red);}

.admin-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:.02em;}
.admin-badge-green{background:#E4F7EC;color:var(--green);}
.admin-badge-orange{background:var(--orange-100);color:var(--orange-700);}
.admin-badge-slate{background:var(--mist);color:var(--slate);}
.admin-badge-red{background:#FEEAEA;color:var(--red);}
.admin-badge-amber{background:#FFF3DC;color:var(--amber);}

.admin-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.admin-table th{
  text-align:left;padding:12px 14px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--slate);border-bottom:1px solid var(--line);white-space:nowrap;
}
.admin-table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:middle;}
.admin-table tr:last-child td{border-bottom:0;}
.admin-table tr:hover td{background:var(--mist);}

.admin-empty{text-align:center;padding:60px 20px;color:var(--slate);}
.admin-empty svg{width:40px;height:40px;color:var(--line);margin-bottom:14px;}

.admin-modal-overlay{
  position:fixed;inset:0;background:rgba(10,17,48,.55);z-index:998;
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.admin-modal-overlay.open{opacity:1;pointer-events:auto;}
.admin-modal{background:#fff;border-radius:var(--radius-lg);max-width:440px;width:100%;padding:26px;box-shadow:0 30px 60px -20px rgba(0,0,0,.4);}
.admin-modal h3{font-size:17px;margin-bottom:10px;}
.admin-modal p{color:var(--slate);font-size:13.5px;margin-bottom:20px;}
.admin-modal-actions{display:flex;gap:10px;justify-content:flex-end;}

/* ---------- Login page ---------- */
.admin-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--navy-900);padding:20px;}
.admin-login-card{background:#fff;border-radius:var(--radius-lg);max-width:400px;width:100%;padding:36px 32px;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);}
.admin-login-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:26px;}
.admin-login-brand img{height:44px;}
.admin-login-brand-word{font-family:'Anton',sans-serif;font-size:19px;}
.admin-login-brand-word span{color:var(--orange-600);}
.admin-login-sub{text-align:center;color:var(--slate);font-size:13px;margin-bottom:24px;}
.admin-password-wrap{position:relative;}
.admin-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--slate);padding:4px;}
.admin-password-toggle svg{width:18px;height:18px;}
.admin-login-error{
  display:none;background:#FEEAEA;color:var(--red);font-size:13px;font-weight:600;
  padding:11px 14px;border-radius:10px;margin-bottom:18px;
}
.admin-login-error.show{display:block;}

/* ---------- Dashboard stat grid ---------- */
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;}
.admin-stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:20px;}
.admin-stat-label{font-size:12px;color:var(--slate);font-weight:600;margin-bottom:8px;}
.admin-stat-value{font-size:28px;font-weight:800;color:var(--navy-900);font-family:'Inter',sans-serif;}
.admin-two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;}

/* ---------- Property image manager ---------- */
.admin-dropzone{
  border:2px dashed var(--line);border-radius:var(--radius-md);padding:34px 20px;text-align:center;
  cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);
}
.admin-dropzone:hover, .admin-dropzone.dragover{border-color:var(--orange-600);background:var(--orange-100);}
.admin-dropzone svg{width:30px;height:30px;color:var(--orange-600);margin-bottom:10px;}
.admin-dropzone input{display:none;}
.admin-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:16px;}
.admin-image-item{
  position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;border:1.5px solid var(--line);
  cursor:grab;
}
.admin-image-item img{width:100%;height:100%;object-fit:cover;}
.admin-image-item.featured{border-color:var(--orange-600);box-shadow:0 0 0 2px var(--orange-600);}
.admin-image-featured-tag{
  position:absolute;top:6px;left:6px;background:var(--orange-600);color:#fff;font-size:9.5px;font-weight:700;
  padding:3px 8px;border-radius:100px;letter-spacing:.04em;text-transform:uppercase;
}
.admin-image-actions{
  position:absolute;inset:0;background:rgba(10,17,48,.55);opacity:0;transition:opacity var(--transition-fast);
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.admin-image-item:hover .admin-image-actions{opacity:1;}
.admin-image-actions button{
  width:30px;height:30px;border-radius:50%;background:#fff;color:var(--navy-900);
  display:flex;align-items:center;justify-content:center;
}
.admin-image-actions button svg{width:14px;height:14px;}
.admin-upload-progress{margin-top:12px;}
.admin-upload-progress-bar{height:6px;background:var(--line);border-radius:100px;overflow:hidden;margin-top:6px;}
.admin-upload-progress-fill{height:100%;background:var(--orange-600);width:0%;transition:width .2s ease;}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .admin-stat-grid{grid-template-columns:repeat(2,1fr);}
  .admin-two-col{grid-template-columns:1fr;}
  .admin-form-row, .admin-form-row-3{grid-template-columns:1fr;}
}
@media (max-width:900px){
  .admin-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:900;transform:translateX(-100%);transition:transform .25s ease;}
  .admin-sidebar.open{transform:translateX(0);}
  .admin-mobile-toggle{display:flex;}
  .admin-content{padding:18px 16px 50px;}
  .admin-topbar{padding:14px 16px;}
  .admin-stat-grid{grid-template-columns:1fr 1fr;}
  .admin-table{display:block;overflow-x:auto;white-space:nowrap;}
}
@media (max-width:520px){
  .admin-stat-grid{grid-template-columns:1fr;}
  .admin-checkbox-grid{grid-template-columns:1fr 1fr;}
}
