/* ==========================================================================
   Estatein Admin Panel
   ========================================================================== */
:root{
  --a-navy-950:#0a1522;
  --a-navy-900:#0d1b2a;
  --a-navy-800:#13293d;
  --a-gold:#d4af37;
  --a-gold-light:#f1d789;
  --a-white:#ffffff;
  --a-off-white:#f5f7fa;
  --a-gray-100:#eef1f6;
  --a-gray-300:#c8cedb;
  --a-gray-500:#7c8798;
  --a-gray-700:#4b5568;
  --a-success:#2fb670;
  --a-danger:#e5484d;
  --a-info:#3b7dd8;
  --a-radius:12px;
  --a-shadow:0 4px 14px rgba(13,27,42,.08);
  --a-transition:.25s ease;
}
*,*::before,*::after{ box-sizing:border-box; }
body.admin-body{
  margin:0; font-family:'Inter',sans-serif; background:var(--a-off-white); color:var(--a-navy-900);
  line-height:1.55;
}
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,h5{ font-family:'Poppins',sans-serif; color:var(--a-navy-950); margin:0; }

.admin-wrap{ display:flex; min-height:100vh; }

/* Sidebar */
.admin-sidebar{
  width:260px; flex-shrink:0; background:linear-gradient(180deg,var(--a-navy-950),var(--a-navy-800));
  color:var(--a-gray-300); position:fixed; top:0; bottom:0; left:0; overflow-y:auto; z-index:50;
  transition:transform var(--a-transition);
}
.admin-brand{
  display:flex; align-items:center; gap:10px; padding:26px 24px; font-family:'Poppins',sans-serif;
  font-weight:700; font-size:1.25rem; color:var(--a-white); border-bottom:1px solid rgba(255,255,255,.08);
}
.admin-brand i{ color:var(--a-gold); }
.admin-brand span{ color:var(--a-gold); }
.admin-nav{ padding:18px 14px; }
.admin-nav-label{ font-size:.72rem; text-transform:uppercase; letter-spacing:1px; color:var(--a-gray-500); padding:14px 12px 8px; }
.admin-nav a{
  display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:10px; font-size:.9rem;
  font-weight:500; margin-bottom:4px; transition:var(--a-transition); color:var(--a-gray-300);
}
.admin-nav a i{ width:18px; text-align:center; color:var(--a-gray-500); transition:var(--a-transition); }
.admin-nav a:hover{ background:rgba(255,255,255,.06); color:var(--a-white); }
.admin-nav a.active{ background:linear-gradient(135deg,var(--a-gold),#c69a2b); color:var(--a-navy-950); font-weight:700; }
.admin-nav a.active i{ color:var(--a-navy-950); }
.admin-nav .badge-count{
  margin-left:auto; background:var(--a-danger); color:#fff; font-size:.7rem; padding:2px 8px; border-radius:20px; font-weight:700;
}

/* Main */
.admin-main{ flex:1; margin-left:260px; display:flex; flex-direction:column; min-height:100vh; }
.admin-topbar{
  height:72px; background:var(--a-white); border-bottom:1px solid var(--a-gray-100); display:flex;
  align-items:center; justify-content:space-between; padding:0 30px; position:sticky; top:0; z-index:30;
}
.admin-topbar h1{ font-size:1.3rem; }
.admin-topbar-actions{ display:flex; align-items:center; gap:18px; }
.admin-sidebar-toggle{ display:none; background:none; border:none; font-size:1.3rem; cursor:pointer; color:var(--a-navy-900); }
.admin-user{ display:flex; align-items:center; gap:10px; }
.admin-user-avatar{
  width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,var(--a-navy-900),var(--a-navy-800));
  color:var(--a-gold); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.9rem;
}
.admin-user-name{ font-size:.85rem; font-weight:600; }
.admin-user-role{ font-size:.72rem; color:var(--a-gray-500); }
.admin-view-site{
  font-size:.82rem; font-weight:600; color:var(--a-navy-900); display:flex; align-items:center; gap:6px;
}
.admin-view-site:hover{ color:var(--a-gold); }
.admin-logout-btn{
  background:none; border:1.5px solid var(--a-gray-100); border-radius:8px; padding:8px 14px; font-size:.82rem;
  font-weight:600; cursor:pointer; color:var(--a-navy-900); transition:var(--a-transition); display:flex; align-items:center; gap:6px;
}
.admin-logout-btn:hover{ background:var(--a-danger); border-color:var(--a-danger); color:#fff; }

.admin-content{ padding:30px; flex:1; }

/* Cards */
.a-card{ background:var(--a-white); border-radius:var(--a-radius); box-shadow:var(--a-shadow); padding:26px; margin-bottom:26px; }
.a-card-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:12px; }
.a-card-head h3{ font-size:1.05rem; }

/* Stat cards */
.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:20px; margin-bottom:26px; }
.stat-card{
  background:var(--a-white); border-radius:var(--a-radius); box-shadow:var(--a-shadow); padding:22px;
  display:flex; align-items:center; gap:16px; transition:var(--a-transition);
}
.stat-card:hover{ transform:translateY(-4px); }
.stat-card .stat-icon{
  width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  font-size:1.25rem; flex-shrink:0; background:linear-gradient(135deg,var(--a-navy-900),var(--a-navy-800)); color:var(--a-gold);
}
.stat-card .stat-icon.success{ background:rgba(47,182,112,.12); color:var(--a-success); }
.stat-card .stat-icon.info{ background:rgba(59,125,216,.12); color:var(--a-info); }
.stat-card .stat-icon.danger{ background:rgba(229,72,77,.12); color:var(--a-danger); }
.stat-card h3{ font-size:1.6rem; }
.stat-card span{ font-size:.8rem; color:var(--a-gray-500); font-weight:600; }

/* Buttons */
.a-btn{
  display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:9px; font-size:.86rem;
  font-weight:600; cursor:pointer; border:none; transition:var(--a-transition); font-family:inherit;
}
.a-btn-primary{ background:linear-gradient(135deg,var(--a-navy-900),var(--a-navy-800)); color:#fff; }
.a-btn-primary:hover{ opacity:.9; }
.a-btn-gold{ background:linear-gradient(135deg,var(--a-gold),#c69a2b); color:var(--a-navy-950); }
.a-btn-gold:hover{ opacity:.9; }
.a-btn-outline{ background:#fff; border:1.5px solid var(--a-gray-100); color:var(--a-navy-900); }
.a-btn-outline:hover{ border-color:var(--a-gold); }
.a-btn-danger{ background:rgba(229,72,77,.1); color:var(--a-danger); }
.a-btn-danger:hover{ background:var(--a-danger); color:#fff; }
.a-btn-sm{ padding:7px 13px; font-size:.78rem; }
.a-btn:disabled{ opacity:.5; cursor:not-allowed; }

/* Forms */
.a-form-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.a-form-group{ margin-bottom:20px; }
.a-form-group label{ display:block; font-size:.83rem; font-weight:600; margin-bottom:8px; color:var(--a-navy-900); }
.a-form-group .hint{ font-size:.76rem; color:var(--a-gray-500); margin-top:6px; display:block; }
.a-form-group input[type=text], .a-form-group input[type=email], .a-form-group input[type=password],
.a-form-group input[type=number], .a-form-group input[type=tel], .a-form-group input[type=file],
.a-form-group select, .a-form-group textarea{
  width:100%; padding:12px 14px; border:1.5px solid var(--a-gray-100); border-radius:9px;
  font-family:inherit; background:var(--a-off-white); font-size:.9rem; transition:var(--a-transition);
}
.a-form-group input:focus, .a-form-group select:focus, .a-form-group textarea:focus{
  outline:none; border-color:var(--a-gold); background:#fff;
}
.a-form-group.has-error input, .a-form-group.has-error select, .a-form-group.has-error textarea{ border-color:var(--a-danger); }
.a-error{ color:var(--a-danger); font-size:.78rem; margin-top:6px; display:block; }
.a-checkbox{ display:flex; align-items:center; gap:10px; font-size:.88rem; font-weight:500; }
.a-checkbox input{ width:18px; height:18px; accent-color:var(--a-gold); }
.a-checkbox-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px 20px; }

/* Table */
.a-table-wrap{ overflow-x:auto; }
.a-table{ width:100%; border-collapse:collapse; font-size:.87rem; }
.a-table th{
  text-align:left; padding:12px 16px; background:var(--a-off-white); color:var(--a-gray-500);
  font-weight:700; text-transform:uppercase; font-size:.72rem; letter-spacing:.5px; white-space:nowrap;
}
.a-table td{ padding:14px 16px; border-bottom:1px solid var(--a-gray-100); vertical-align:middle; }
.a-table tr:last-child td{ border-bottom:none; }
.a-table tr:hover td{ background:#fafbfd; }
.a-thumb{ width:56px; height:56px; border-radius:8px; object-fit:cover; }
.a-row-actions{ display:flex; gap:8px; }

/* Badges */
.a-badge{ display:inline-flex; align-items:center; gap:5px; padding:4px 12px; border-radius:20px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.3px; }
.a-badge-success{ background:rgba(47,182,112,.12); color:var(--a-success); }
.a-badge-gray{ background:var(--a-gray-100); color:var(--a-gray-700); }
.a-badge-gold{ background:rgba(212,175,55,.15); color:#9c7a15; }
.a-badge-info{ background:rgba(59,125,216,.12); color:var(--a-info); }
.a-badge-danger{ background:rgba(229,72,77,.12); color:var(--a-danger); }

/* Login page */
.admin-login-wrap{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:linear-gradient(135deg,var(--a-navy-950),var(--a-navy-800));
}
.admin-login-card{
  width:100%; max-width:420px; background:var(--a-white); border-radius:20px; padding:46px 40px;
  box-shadow:0 25px 60px rgba(0,0,0,.35);
}
.admin-login-brand{ text-align:center; margin-bottom:8px; font-family:'Poppins',sans-serif; font-weight:700; font-size:1.5rem; color:var(--a-navy-950); }
.admin-login-brand span{ color:var(--a-gold); }
.admin-login-sub{ text-align:center; color:var(--a-gray-500); font-size:.88rem; margin-bottom:32px; }
.admin-login-card .a-btn{ width:100%; justify-content:center; padding:13px; }

/* Image previews / gallery manager */
.a-image-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; margin-top:14px; }
.a-image-tile{ position:relative; border-radius:9px; overflow:hidden; height:100px; }
.a-image-tile img{ width:100%; height:100%; object-fit:cover; }
.a-image-tile label{
  position:absolute; top:6px; right:6px; background:rgba(10,21,34,.75); color:#fff; width:24px; height:24px;
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.7rem; cursor:pointer; margin:0;
}
.a-image-tile input:checked ~ label, .a-image-tile label:has(input:checked){ background:var(--a-danger); }

/* Pagination reuse */
.admin-content .pagination-wrap{ justify-content:flex-start; margin-top:22px; }
.admin-content .pagination-wrap a, .admin-content .pagination-wrap span{ box-shadow:none; border:1px solid var(--a-gray-100); }

/* Empty state */
.a-empty{ text-align:center; padding:60px 20px; color:var(--a-gray-500); }
.a-empty i{ font-size:2.2rem; color:var(--a-gold); margin-bottom:14px; }

/* Responsive */
@media (max-width:960px){
  .admin-sidebar{ transform:translateX(-100%); }
  .admin-sidebar.open{ transform:translateX(0); }
  .admin-main{ margin-left:0; }
  .admin-sidebar-toggle{ display:block; }
}
