/* ===================== ADMIN DASHBOARD ===================== */
body.admin-body{background:var(--ice-50); min-height:100vh;}

/* ---- login screen ---- */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;}
.login-card{width:100%; max-width:420px; border-radius:var(--r-xl); padding:44px 40px; text-align:center;}
.login-card .brand-mark{margin:0 auto 18px;}
.login-card h1{font-size:1.4rem;}
.login-card p{margin-bottom:26px;}
.login-error{display:none; background:#fef2f2; color:#b91c1c; font-size:.85rem; font-weight:600; padding:12px 14px; border-radius:12px; margin-bottom:18px;}
.login-error.show{display:block;}
.login-hint{margin-top:20px; font-size:.78rem; color:var(--slate-400);}

/* ---- shell layout ---- */
.admin-shell{display:grid; grid-template-columns:260px 1fr; min-height:100vh;}
.admin-sidebar{
  background:linear-gradient(180deg,var(--navy-950),#040a17); color:#c7d4ea; padding:28px 20px;
  position:sticky; top:0; height:100vh; display:flex; flex-direction:column; gap:6px;
}
.admin-sidebar .brand{color:#fff; padding:0 10px 26px; margin-bottom:10px; border-bottom:1px solid rgba(255,255,255,.08);}
.admin-sidebar .brand small{color:#8ea0bf;}
.admin-nav-item{
  display:flex; align-items:center; gap:12px; padding:13px 14px; border-radius:14px; font-size:.9rem; font-weight:600;
  color:#aebbd1; border:none; background:none; width:100%; text-align:left; transition:.2s;
}
.admin-nav-item svg{width:18px;height:18px;}
.admin-nav-item:hover{background:rgba(255,255,255,.06); color:#fff;}
.admin-nav-item.active{background:linear-gradient(135deg,var(--blue-600),var(--blue-500)); color:#fff; box-shadow:0 10px 24px -10px rgba(37,99,235,.6);}
.admin-sidebar-footer{margin-top:auto; display:flex; flex-direction:column; gap:8px;}
.admin-main{padding:32px 40px 60px; max-width:100%; overflow-x:hidden;}
.admin-topbar{display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; flex-wrap:wrap; gap:14px;}
.admin-topbar h1{font-size:1.5rem; margin:0;}
.admin-topbar p{margin:4px 0 0;}
.admin-view{display:none;}
.admin-view.active{display:block;}

/* ---- stat cards ---- */
.stat-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:34px;}
.stat-card{background:#fff; border-radius:var(--r-lg); padding:24px; border:1px solid var(--ice-200); box-shadow:0 14px 34px -26px rgba(15,36,68,.35);}
.stat-card .ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.stat-card .ic svg{width:20px;height:20px;}
.stat-card b{display:block; font-family:var(--font-display); font-size:1.6rem; color:var(--navy-900);}
.stat-card span{font-size:.82rem; color:var(--slate-500); font-weight:600;}

/* ---- panel / card ---- */
.panel{background:#fff; border-radius:var(--r-lg); border:1px solid var(--ice-200); box-shadow:0 14px 34px -26px rgba(15,36,68,.35); padding:26px; margin-bottom:26px;}
.panel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:12px;}
.panel-head h2{font-size:1.15rem; margin:0;}

/* ---- table ---- */
.admin-table{width:100%; border-collapse:collapse; font-size:.88rem;}
.admin-table th{text-align:left; padding:12px 14px; color:var(--slate-500); font-weight:700; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; border-bottom:2px solid var(--ice-100);}
.admin-table td{padding:14px; border-bottom:1px solid var(--ice-100); vertical-align:middle; color:var(--navy-800);}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table img.thumb{width:52px;height:40px;object-fit:cover;border-radius:8px;}
.row-actions{display:flex; gap:8px;}
.icon-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--ice-200);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--slate-500);transition:.2s;}
.icon-btn svg{width:15px;height:15px;}
.icon-btn:hover{background:var(--ice-100); color:var(--blue-600);}
.icon-btn.danger:hover{background:#fee2e2; color:#b91c1c;}
.badge{display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:var(--r-pill); font-size:.72rem; font-weight:700; text-transform:capitalize;}
.badge.available{background:#e8f9f1; color:#0f9d63;}
.badge.occupied{background:#eef1f5; color:#5c6b81;}
.badge.setup{background:#fdf3e3; color:#a67617;}
.badge.new{background:#e7edff; color:#2563eb;}
.badge.contacted{background:#fdf3e3; color:#a67617;}
.badge.closed{background:#eef1f5; color:#5c6b81;}
.empty-state{text-align:center; padding:50px 20px; color:var(--slate-500);}
.empty-state svg{width:40px;height:40px;color:var(--slate-400); margin-bottom:12px;}

/* ---- modal ---- */
.modal-overlay{position:fixed; inset:0; background:rgba(6,14,31,.55); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; z-index:200; padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:#fff; border-radius:var(--r-lg); width:100%; max-width:640px; max-height:90vh; overflow-y:auto; padding:32px;}
.modal-box h2{font-size:1.2rem;}
.modal-close{position:absolute; top:24px; right:24px;}
.modal-box{position:relative;}

/* ---- amenity checklist ---- */
.amenity-check-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:14px 0 20px;}
.amenity-check{display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:12px; border:1px solid var(--ice-200); font-size:.85rem; font-weight:600; color:var(--navy-800); cursor:pointer; transition:.2s;}
.amenity-check input{width:16px;height:16px; accent-color:var(--blue-600);}
.amenity-check:has(input:checked){background:var(--ice-100); border-color:var(--blue-400);}

/* ---- image upload ---- */
.image-drop{border:2px dashed var(--ice-200); border-radius:16px; padding:24px; text-align:center; cursor:pointer; transition:.2s; position:relative;}
.image-drop:hover{border-color:var(--blue-400); background:var(--ice-50);}
.image-drop svg{width:26px;height:26px; color:var(--blue-500); margin-bottom:8px;}
.image-drop input{position:absolute; inset:0; opacity:0; cursor:pointer;}
.image-preview{width:100%; height:160px; object-fit:cover; border-radius:14px; margin-bottom:14px; display:none;}
.image-preview.show{display:block;}

/* status select pill look reused from filters */
.status-select{padding:8px 12px; border-radius:10px; border:1px solid var(--ice-200); font-size:.82rem; font-family:inherit; background:#fff;}

@media (max-width:960px){
  .admin-shell{grid-template-columns:1fr;}
  .admin-sidebar{position:relative; height:auto; flex-direction:row; overflow-x:auto; padding:16px;}
  .admin-sidebar .brand{display:none;}
  .admin-sidebar-footer{display:none;}
  .stat-cards{grid-template-columns:repeat(2,1fr);}
  .admin-main{padding:24px 16px 50px;}
  .amenity-check-grid{grid-template-columns:1fr;}
  .admin-table{display:block; overflow-x:auto; white-space:nowrap;}
}
