:root{
  --eeoms-primary:#1e3a5f; --eeoms-accent:#2563eb; --eeoms-sidebar:#0f2440;
  --eeoms-sidebar-hover:#1b3a63; --eeoms-muted:#64748b; --eeoms-bg:#f1f5f9;
}
*{box-sizing:border-box}
body{background:var(--eeoms-bg);font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:#1e293b}

/* ---------- Shell ---------- */
.eeoms-shell{display:flex;min-height:100vh}
.eeoms-sidebar{width:250px;background:var(--eeoms-sidebar);color:#cbd5e1;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;transition:transform .2s;z-index:1030}
.eeoms-main{flex:1;margin-left:250px;display:flex;flex-direction:column;min-height:100vh;transition:margin .2s}
.eeoms-content{padding:1.25rem;flex:1}
.eeoms-footer{padding:.75rem 1.25rem;color:var(--eeoms-muted);font-size:.8rem;border-top:1px solid #e2e8f0;background:#fff}

.brand{display:flex;align-items:center;gap:.6rem;padding:1.1rem 1.25rem;font-size:1.25rem;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.brand i{color:#60a5fa}

.menu{padding:.5rem 0 2rem}
.menu-group-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:.9rem 1.25rem .35rem;font-weight:600}
.menu-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;color:#cbd5e1;text-decoration:none;font-size:.9rem;border-left:3px solid transparent}
.menu-item:hover{background:var(--eeoms-sidebar-hover);color:#fff}
.menu-item.active{background:var(--eeoms-sidebar-hover);color:#fff;border-left-color:#60a5fa}
.menu-item i{font-size:1.05rem;width:20px;text-align:center}

/* ---------- Topbar ---------- */
.eeoms-topbar{height:60px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:1rem;padding:0 1.25rem;position:sticky;top:0;z-index:1020}
.topbar-title{font-weight:600;font-size:1.05rem}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--eeoms-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600}

/* ---------- KPI cards ---------- */
.kpi-card{background:#fff;border-radius:12px;padding:1.1rem 1.25rem;border:1px solid #e2e8f0;height:100%}
.kpi-card .kpi-label{color:var(--eeoms-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.kpi-card .kpi-value{font-size:1.6rem;font-weight:700;margin-top:.25rem}
.kpi-card .kpi-icon{width:44px;height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem}
.card{border:1px solid #e2e8f0;border-radius:12px}
.card-header{background:#fff;border-bottom:1px solid #e2e8f0;font-weight:600}

/* ---------- Login ---------- */
.guest-body{background:linear-gradient(135deg,#0f2440,#1e3a5f);min-height:100vh;display:flex;align-items:center;justify-content:center}
.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 45px rgba(0,0,0,.3);width:100%;max-width:410px;padding:2.25rem}
.login-brand{text-align:center;margin-bottom:1.5rem}
.login-brand i{font-size:2.4rem;color:var(--eeoms-accent)}

.badge-soft{padding:.35em .6em;border-radius:6px;font-weight:600;font-size:.72rem}
table.dataTable thead th{background:#f8fafc}

/* ---------- Responsive ---------- */
@media (max-width: 992px){
  .eeoms-sidebar{transform:translateX(-100%)}
  .eeoms-sidebar.show{transform:translateX(0)}
  .eeoms-main{margin-left:0}
}
