/* CMS PT. Elis Cipta Mandiri - tampilan panel admin */
:root{
  --a-primary:#0B57A4; --a-primary-dark:#073C73; --a-bg:#F1F5FA; --a-card:#FFFFFF;
  --a-text:#1B2733; --a-muted:#6B7C8D; --a-line:#DEE7F1; --a-danger:#C0392B;
  --a-radius:14px;
}
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;background:var(--a-bg);color:var(--a-text);
  font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;font-size:15px;line-height:1.6;
}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0 0 10px;line-height:1.25}

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

/* Sidebar */
.sidebar{
  width:250px;flex-shrink:0;background:#082F57;color:#CFE0F2;
  display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh;
}
.side-brand{display:flex;gap:12px;align-items:center;margin-bottom:26px;padding:0 6px}
.side-brand .mark{
  width:40px;height:40px;border-radius:11px;background:#fff;color:var(--a-primary);
  display:grid;place-items:center;font-weight:800;
}
.side-brand strong{display:block;color:#fff;font-size:15px}
.side-brand small{font-size:11px;opacity:.75}
.sidebar nav{display:grid;gap:3px;flex:1;overflow-y:auto}
.sidebar nav a{
  display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;
  font-size:14px;transition:.18s;
}
.sidebar nav a i{font-style:normal;width:18px;text-align:center;opacity:.85}
.sidebar nav a:hover{background:rgba(255,255,255,.10);color:#fff}
.sidebar nav a.active{background:#fff;color:var(--a-primary);font-weight:600}
.side-link{margin-top:14px;font-size:13px;opacity:.85;padding:10px 13px}

/* Main */
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  background:#fff;border-bottom:1px solid var(--a-line);padding:16px 26px;
  display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:20;
}
.topbar h1{font-size:19px;margin:0;flex:1}
.topbar-user{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--a-muted)}
.side-toggle{display:none;background:none;border:0;font-size:20px;cursor:pointer}
.content{padding:26px;max-width:1200px;width:100%}

/* Kartu & tabel */
.card{background:var(--a-card);border:1px solid var(--a-line);border-radius:var(--a-radius);padding:24px;margin-bottom:22px}
.card h2{font-size:17px}
.card .hint{color:var(--a-muted);font-size:13px;margin:0 0 18px}

.grid-stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:22px}
.stat{background:#fff;border:1px solid var(--a-line);border-radius:var(--a-radius);padding:20px}
.stat b{display:block;font-size:28px;color:var(--a-primary);line-height:1.2}
.stat span{font-size:13px;color:var(--a-muted)}

table{width:100%;border-collapse:collapse;background:#fff}
.table-wrap{overflow-x:auto;border:1px solid var(--a-line);border-radius:var(--a-radius)}
th,td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--a-line);vertical-align:middle}
th{background:#F7FAFD;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--a-muted)}
tr:last-child td{border-bottom:0}
td img.thumb{width:56px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--a-line)}

/* Form */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.form-group{display:grid;gap:6px;margin-bottom:16px}
label{font-size:13px;font-weight:600}
input[type=text],input[type=number],input[type=email],input[type=password],input[type=url],select,textarea{
  width:100%;padding:11px 13px;border:1px solid var(--a-line);border-radius:10px;
  font-family:inherit;font-size:14px;background:#fff;color:var(--a-text);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--a-primary);outline-offset:1px}
textarea{min-height:110px;resize:vertical}
input[type=color]{width:64px;height:42px;padding:3px;border:1px solid var(--a-line);border-radius:10px;background:#fff}
.color-row{display:flex;align-items:center;gap:10px}
.color-row input[type=text]{max-width:130px}
.form-note{font-size:12px;color:var(--a-muted)}
.checkbox{display:flex;align-items:center;gap:8px}
.checkbox input{width:16px;height:16px}

/* Tombol */
.btn-sm,.btn-primary{
  display:inline-block;border:0;cursor:pointer;font-family:inherit;font-size:14px;
  padding:10px 18px;border-radius:10px;background:var(--a-primary);color:#fff;transition:.18s;
}
.btn-primary:hover,.btn-sm:hover{background:var(--a-primary-dark)}
.btn-sm{padding:7px 13px;font-size:13px}
.btn-ghost{background:#EDF3FA;color:var(--a-primary)}
.btn-ghost:hover{background:#DCE8F6;color:var(--a-primary-dark)}
.btn-danger{background:#FBE9E7;color:var(--a-danger)}
.btn-danger:hover{background:var(--a-danger);color:#fff}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}

/* Tab */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.tabs a{padding:9px 18px;border-radius:999px;background:#fff;border:1px solid var(--a-line);font-size:14px}
.tabs a.active{background:var(--a-primary);color:#fff;border-color:var(--a-primary)}

/* Alert & badge */
.alert{padding:13px 17px;border-radius:11px;margin-bottom:20px;font-size:14px}
.alert-success{background:#E7F6EC;color:#1B5E32;border:1px solid #B6E3C4}
.alert-danger{background:#FDECEC;color:#8B1E1E;border:1px solid #F3C0C0}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px}
.badge-on{background:#E7F6EC;color:#1B5E32}
.badge-off{background:#EEF1F4;color:#6B7C8D}
.badge-new{background:#FFF3D6;color:#8A6100}

.preview-img{max-height:70px;border-radius:8px;border:1px solid var(--a-line);margin-top:6px}

/* Login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;
  background:radial-gradient(900px 420px at 70% 10%,#CFE1F4,transparent 60%),var(--a-bg)}
.login-card{background:#fff;border:1px solid var(--a-line);border-radius:20px;padding:36px;width:min(400px,100%)}
.login-card h1{font-size:21px}
.login-card p{color:var(--a-muted);font-size:14px;margin:0 0 22px}
.login-card .btn-primary{width:100%;margin-top:6px}

@media (max-width:900px){
  .sidebar{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:.25s}
  .sidebar.open{transform:translateX(0)}
  .side-toggle{display:block}
  .content{padding:18px}
}
