/* =========================================================
   MarketingHub - Modern Professional Theme
   ========================================================= */
:root{
  --primary: #4f46e5;
  --primary-dark: #4338ca;
  --primary-light: #eef2ff;
  --secondary: #06b6d4;
  --success: #16a34a;
  --success-bg: #dcfce7;
  --danger: #dc2626;
  --danger-bg: #fee2e2;
  --warning: #d97706;
  --warning-bg: #fef3c7;
  --bg: #f4f6fb;
  --surface: #ffffff;
  --border: #e5e7eb;
  --text: #1f2937;
  --text-muted: #6b7280;
  --radius: 14px;
  --shadow-sm: 0 1px 2px rgba(16,24,40,.06);
  --shadow-md: 0 4px 14px rgba(16,24,40,.08);
  --sidebar-w: 260px;
}

*{ box-sizing: border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family:'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; }

/* ================= LAYOUT ================= */
.app-shell{ display:flex; min-height:100vh; }

.sidebar{
  width:var(--sidebar-w);
  background:linear-gradient(180deg,#1e1b4b 0%, #312e81 100%);
  color:#e0e7ff;
  display:flex; flex-direction:column;
  padding:22px 16px;
  position:sticky; top:0; height:100vh;
  transition:width .25s ease, padding .25s ease;
  flex-shrink:0;
  z-index:20;
}
.sidebar.collapsed{ width:76px; padding:22px 10px; }
.sidebar.collapsed .brand-text,
.sidebar.collapsed .nav-label,
.sidebar.collapsed .nav-item span{ display:none; }
.sidebar.collapsed .nav-item{ justify-content:center; }

.sidebar-brand{
  display:flex; align-items:center; gap:10px;
  padding:6px 10px 26px 10px;
  font-size:18px; font-weight:800; letter-spacing:.2px;
}
.brand-icon{
  width:38px; height:38px; border-radius:10px;
  background:rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center;
  color:#a5b4fc; font-size:16px;
}
.brand-text strong{ color:#a5b4fc; }

.nav-label{
  font-size:11px; text-transform:uppercase; letter-spacing:.08em;
  color:#818cf8; margin:18px 10px 8px; font-weight:700;
}
.sidebar-nav{ flex:1; overflow-y:auto; }
.nav-item{
  display:flex; align-items:center; gap:12px;
  padding:11px 12px; border-radius:10px;
  color:#c7d2fe; font-weight:600; font-size:14.5px;
  margin-bottom:3px; transition:background .15s ease, color .15s ease;
}
.nav-item i{ width:20px; text-align:center; font-size:15px; }
.nav-item:hover{ background:rgba(255,255,255,.08); color:#fff; }
.nav-item.active{ background:#fff; color:var(--primary-dark); box-shadow:var(--shadow-sm); }
.sidebar-footer{ border-top:1px solid rgba(255,255,255,.12); padding-top:14px; margin-top:10px; }
.nav-item.logout:hover{ background:rgba(220,38,38,.25); color:#fecaca; }

/* ================= MAIN AREA ================= */
.main-area{ flex:1; min-width:0; display:flex; flex-direction:column; }

.topbar{
  background:var(--surface);
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:16px;
  padding:16px 26px; position:sticky; top:0; z-index:10;
}
.btn-icon{
  border:1px solid var(--border); background:#fff; width:38px; height:38px;
  border-radius:10px; cursor:pointer; color:var(--text-muted);
  display:flex; align-items:center; justify-content:center;
  transition:all .15s ease;
}
.btn-icon:hover{ background:var(--primary-light); color:var(--primary); }

.topbar-title{ flex:1; }
.topbar-title h1{ font-size:19px; margin:0; font-weight:800; }
.topbar-title p{ margin:2px 0 0; font-size:13px; color:var(--text-muted); }

.topbar-right{ display:flex; align-items:center; gap:14px; }
.badge-security{
  display:flex; align-items:center; gap:6px;
  background:var(--success-bg); color:var(--success);
  font-size:12px; font-weight:700; padding:6px 12px; border-radius:20px;
}
.user-chip{ display:flex; align-items:center; gap:10px; padding-left:14px; border-left:1px solid var(--border); }
.user-avatar{
  width:36px; height:36px; border-radius:50%;
  background:var(--primary-light); color:var(--primary);
  display:flex; align-items:center; justify-content:center;
}
.user-info{ line-height:1.2; font-size:13px; }
.user-info strong{ display:block; }
.user-info small{ color:var(--text-muted); }

.content{ padding:26px; flex:1; }

.page-footer{
  padding:16px 26px; text-align:center; color:var(--text-muted); font-size:12.5px;
  border-top:1px solid var(--border); background:var(--surface);
}
.page-footer-sub{ margin-top:2px; opacity:.8; }

/* ================= ALERT / FLASH ================= */
.alert{
  margin:20px 26px 0; padding:13px 16px; border-radius:10px;
  display:flex; align-items:center; gap:10px; font-weight:600; font-size:14px;
}
.alert-success{ background:var(--success-bg); color:#166534; }
.alert-error{ background:var(--danger-bg); color:#991b1b; }
.alert-warning{ background:var(--warning-bg); color:#92400e; }

/* ================= CARD / STAT ================= */
.grid-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin-bottom:24px; }
.stat-card{
  background:var(--surface); border-radius:var(--radius); padding:20px;
  box-shadow:var(--shadow-sm); border:1px solid var(--border);
  display:flex; align-items:center; gap:14px;
}
.stat-icon{
  width:48px; height:48px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:20px;
}
.stat-icon.blue{ background:var(--primary-light); color:var(--primary); }
.stat-icon.green{ background:var(--success-bg); color:var(--success); }
.stat-icon.cyan{ background:#cffafe; color:#0891b2; }
.stat-icon.orange{ background:var(--warning-bg); color:var(--warning); }
.stat-value{ font-size:22px; font-weight:800; margin:0; }
.stat-label{ font-size:13px; color:var(--text-muted); margin:2px 0 0; }

.card{
  background:var(--surface); border-radius:var(--radius);
  border:1px solid var(--border); box-shadow:var(--shadow-sm);
  padding:22px; margin-bottom:22px;
}
.card-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.card-header h2{ font-size:16px; margin:0; font-weight:800; }

/* ================= FORM ================= */
.form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
label{ font-size:13px; font-weight:700; margin-bottom:6px; display:block; color:var(--text); }
input[type=text], input[type=email], input[type=tel], input[type=number],
input[type=date], input[type=password], select, textarea{
  width:100%; padding:10px 12px; border:1.5px solid var(--border); border-radius:9px;
  font-size:14px; font-family:inherit; background:#fff; color:var(--text);
  transition:border-color .15s ease, box-shadow .15s ease;
}
input:focus, select:focus, textarea:focus{
  outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(79,70,229,.15);
}
textarea{ resize:vertical; min-height:90px; }

/* ================= BUTTON ================= */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px; border-radius:9px; font-weight:700; font-size:14px;
  border:none; cursor:pointer; transition:transform .1s ease, opacity .15s ease;
}
.btn:active{ transform:scale(.97); }
.btn-primary{ background:var(--primary); color:#fff; }
.btn-primary:hover{ background:var(--primary-dark); }
.btn-outline{ background:#fff; border:1.5px solid var(--border); color:var(--text); }
.btn-outline:hover{ border-color:var(--primary); color:var(--primary); }
.btn-success{ background:var(--success); color:#fff; }
.btn-danger{ background:var(--danger); color:#fff; }
.btn-sm{ padding:6px 12px; font-size:12.5px; border-radius:7px; }
.btn-wa{ background:#25D366; color:#fff; }
.btn-wa:hover{ background:#1fb855; }
.btn-mail{ background:var(--secondary); color:#fff; }
.btn-mail:hover{ background:#0891b2; }

/* ================= TABLE ================= */
.table-wrap{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; font-size:13.5px; }
thead th{
  text-align:left; padding:12px 14px; background:#f9fafb;
  color:var(--text-muted); font-weight:700; text-transform:uppercase; font-size:11.5px;
  letter-spacing:.04em; border-bottom:1px solid var(--border);
}
tbody td{ padding:13px 14px; border-bottom:1px solid var(--border); vertical-align:middle; }
tbody tr:hover{ background:#f9fafb; }
.actions-cell{ display:flex; gap:6px; flex-wrap:wrap; }

.chip{ display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:20px; font-size:12px; font-weight:700; }
.chip-success{ background:var(--success-bg); color:var(--success); }
.chip-warning{ background:var(--warning-bg); color:var(--warning); }
.chip-muted{ background:#f3f4f6; color:var(--text-muted); }

/* ================= RESPONSIVE ================= */
@media (max-width: 860px){
  .sidebar{ position:fixed; left:-280px; height:100vh; box-shadow:var(--shadow-md); }
  .sidebar.collapsed{ left:0; width:var(--sidebar-w); padding:22px 16px; }
  .sidebar.collapsed .brand-text,
  .sidebar.collapsed .nav-label,
  .sidebar.collapsed .nav-item span{ display:inline; }
  .topbar{ padding:14px 16px; }
  .content{ padding:16px; }
  .user-info{ display:none; }
}
