:root{
  --ink:#14202B; --steel:#3E4C59; --steel-soft:#6B7A87;
  --bg:#F5F3EE; --surface:#FFFFFF; --line:#E1DDD3;
  --accent:#E85D25; --accent-dk:#C24A1A; --accent-tint:#FBE9DF;
  --font-display:'Barlow Condensed',sans-serif; --font-body:'Inter',sans-serif; --font-mono:'IBM Plex Mono',monospace;
}
*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; font-family:var(--font-body); background:var(--bg); color:var(--ink); }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-display); font-weight:700; text-transform:uppercase; margin:0; letter-spacing:.01em; }
table{ border-collapse:collapse; width:100%; }

.admin-shell{ display:grid; grid-template-columns:240px 1fr; min-height:100vh; }

/* Sidebar */
.admin-sidebar{ background:var(--ink); color:#fff; padding:26px 20px; display:flex; flex-direction:column; }
.admin-logo{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-size:19px; text-transform:uppercase; margin-bottom:38px; }
.admin-logo svg{ width:24px; height:24px; }
.admin-nav{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; flex:1; }
.admin-nav a{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:4px; font-size:14px; color:rgba(255,255,255,.65); transition:.15s; }
.admin-nav a:hover{ color:#fff; background:rgba(255,255,255,.06); }
.admin-nav a.is-active{ color:#fff; background:var(--accent); }
.admin-nav svg{ width:17px; height:17px; flex:none; }
.admin-user{ border-top:1px solid rgba(255,255,255,.12); padding-top:16px; margin-top:16px; font-size:13px; }
.admin-user strong{ display:block; color:#fff; margin-bottom:8px; }
.admin-user a{ color:rgba(255,255,255,.55); font-size:12.5px; }
.admin-user a:hover{ color:#fff; }

/* Main */
.admin-main{ padding:32px 40px; }
.admin-topbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; flex-wrap:wrap; gap:14px; }
.admin-topbar p{ color:var(--steel-soft); font-size:13.5px; margin-top:6px; }

.btn{ display:inline-flex; align-items:center; gap:8px; padding:10px 18px; font-size:13.5px; font-weight:600; border-radius:3px; border:1px solid transparent; cursor:pointer; font-family:inherit; transition:.15s; }
.btn-primary{ background:var(--accent); color:#fff; }
.btn-primary:hover{ background:var(--accent-dk); }
.btn-outline{ background:#fff; border-color:var(--line); color:var(--ink); }
.btn-outline:hover{ border-color:var(--ink); }
.btn-danger{ background:#fff; border-color:#E2B6AF; color:#B02A2A; }
.btn-danger:hover{ background:#FBEAEA; }
.btn-sm{ padding:7px 12px; font-size:12.5px; }

.card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; }
.card-pad{ padding:24px; }

.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:32px; }
.stat-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:22px; }
.stat-card span{ font-family:var(--font-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--steel-soft); }
.stat-card b{ display:block; font-family:var(--font-display); font-size:34px; margin-top:8px; }
.stat-card em{ font-style:normal; font-size:12.5px; color:var(--accent-dk); }

.data-table th{ text-align:left; font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--steel-soft); padding:12px 16px; border-bottom:1px solid var(--line); background:#FAF9F5; }
.data-table td{ padding:14px 16px; border-bottom:1px solid var(--line); font-size:14px; vertical-align:middle; }
.data-table tr:last-child td{ border-bottom:none; }
.data-table tr:hover td{ background:#FAF9F5; }
.table-actions{ display:flex; gap:8px; }

.badge{ display:inline-block; padding:4px 10px; border-radius:20px; font-size:11.5px; font-weight:600; font-family:var(--font-mono); text-transform:uppercase; }
.badge-baru{ background:#E7EEFB; color:#2255A4; }
.badge-dihubungi{ background:#FBF3D9; color:#93701A; }
.badge-followup{ background:#F1E6FB; color:#6A2DA6; }
.badge-deal{ background:#E5F3EA; color:#1C6B34; }
.badge-batal{ background:#F3E3E1; color:#B02A2A; }

.thumb{ width:48px; height:48px; border-radius:4px; object-fit:cover; background:#EEEBE2; flex:none; }

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

/* Forms */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ margin-bottom:18px; }
.field.full{ grid-column:1/-1; }
.field label{ display:block; font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin-bottom:7px; color:var(--steel); }
.field input, .field select, .field textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:3px; font-family:inherit; font-size:14px; background:#FBFAF7;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--accent); background:#fff; }
.field textarea{ min-height:100px; resize:vertical; }
.field-hint{ font-size:11.5px; color:var(--steel-soft); margin-top:5px; }
.checkbox-row{ display:flex; align-items:center; gap:8px; }
.checkbox-row input{ width:auto; }

.form-actions{ display:flex; gap:12px; margin-top:8px; }

.alert{ padding:13px 16px; border-radius:4px; font-size:13.5px; margin-bottom:22px; }
.alert-success{ background:#E5F3EA; color:#1C6B34; }
.alert-error{ background:#FBEAEA; color:#B02A2A; }

.login-page{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--ink); }
.login-box{ width:380px; background:#fff; border-radius:8px; padding:38px 34px; }
.login-box .admin-logo{ color:var(--ink); justify-content:center; margin-bottom:6px; }
.login-box p.sub{ text-align:center; color:var(--steel-soft); font-size:13.5px; margin-bottom:28px; }

.filter-bar{ display:flex; gap:10px; margin-bottom:20px; flex-wrap:wrap; align-items:center; }
.filter-bar select, .filter-bar input{ padding:9px 12px; border:1px solid var(--line); border-radius:3px; font-family:inherit; font-size:13.5px; background:#fff; }

@media (max-width: 900px){
  .admin-shell{ grid-template-columns:1fr; }
  .admin-sidebar{ display:none; }
  .stat-grid{ grid-template-columns:1fr 1fr; }
  .form-grid{ grid-template-columns:1fr; }
}
