/* ============================================================
   Business-Theme · Génesis 1.00 · Shell estilo NiceAdmin (sidebar + topbar)
   ============================================================ */
*{box-sizing:border-box;}
body.app-body{margin:0;background:var(--pc-bg);color:var(--pc-text);
  font-family:var(--pc-font);font-size:15px;}
h1,h2,h3,h4,h5,h6{font-family:var(--pc-font-head);color:var(--pc-heading);}
a{color:var(--pc-accent);}
.text-muted{color:var(--pc-text-muted)!important;}

/* ---------- Sidebar ---------- */
.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:300px;background:var(--pc-surface);
  border-right:0;box-shadow:0 0 20px rgba(1,41,112,.1);display:flex;flex-direction:column;z-index:1040;
  transition:transform .3s ease;}
.app-sidebar .side-brand{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--pc-border);}
.app-sidebar .side-brand .chip{width:38px;height:38px;border-radius:9px;background:var(--pc-accent);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;}
.app-sidebar .side-brand b{font-size:22px;font-weight:700;color:var(--pc-heading);line-height:1;font-family:var(--pc-font-head);letter-spacing:.02em;}
.app-sidebar .side-brand small{color:var(--pc-muted-navy);font-size:11px;}
.app-nav{padding:12px 15px;overflow-y:auto;flex:1;}
.app-nav .nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--pc-muted-navy);
  padding:10px 15px 6px;font-weight:600;}
.app-nav a{display:flex;align-items:center;gap:10px;padding:10px 15px;border-radius:4px;
  color:var(--pc-heading);text-decoration:none;font-size:15px;font-weight:600;margin-bottom:4px;
  transition:background .2s,color .2s;}
.app-nav a i{font-size:18px;width:22px;text-align:center;color:var(--pc-muted-navy);transition:color .2s;}
.app-nav a:hover{background:var(--pc-bg);color:var(--pc-accent);}
.app-nav a:hover i{color:var(--pc-accent);}
.app-nav a.active{background:var(--pc-bg);color:var(--pc-accent);}
.app-nav a.active i{color:var(--pc-accent);}

/* ---------- Main ---------- */
.app-main{margin-left:300px;min-height:100vh;display:flex;flex-direction:column;}
.app-topbar{height:60px;background:var(--pc-surface);border-bottom:0;box-shadow:0 2px 20px rgba(1,41,112,.1);
  display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:1030;}
.app-topbar .burger{background:0;border:0;font-size:24px;color:var(--pc-heading);cursor:pointer;display:none;}
.app-topbar .page-title{font-size:18px;font-weight:600;margin:0;color:var(--pc-heading);font-family:var(--pc-font-head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto;}
.app-topbar .spacer{flex:1;}
.app-user{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--pc-heading);}
.app-user .avatar{width:38px;height:38px;border-radius:50%;background:var(--pc-accent-soft);
  color:var(--pc-accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;}
.app-user .u-name{font-size:14px;font-weight:600;line-height:1.1;color:var(--pc-heading);}
.app-user .u-role{font-size:12px;color:var(--pc-muted-navy);text-transform:capitalize;}
.app-content{padding:20px;flex:1;}

/* ---------- Encabezados de tarjeta (Poppins navy) ---------- */
.pc-card h6,.pc-card .card-title{font-family:var(--pc-font-title);color:var(--pc-heading);}
.pc-card{margin-bottom:0;}

/* ---------- Tablas estilo NiceAdmin ---------- */
.table thead th,.table>thead>tr>th{color:var(--pc-heading);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--pc-border);}
.table td{border-color:var(--pc-border);}
.badge{font-weight:600;}

/* ---------- KPI antiguos (respaldo) ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
.kpi{background:var(--pc-surface);border:0;border-radius:var(--pc-radius-card);box-shadow:var(--pc-shadow);
  padding:20px 22px;display:flex;align-items:center;gap:16px;}
.kpi .kpi-ico{width:56px;height:56px;border-radius:50%;background:var(--pc-accent-soft);color:var(--pc-accent);
  display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;}
.kpi .kpi-val{font-size:28px;font-weight:700;line-height:1;color:var(--pc-heading);}
.kpi .kpi-label{font-size:14px;color:var(--pc-text-muted);margin-top:4px;}

/* ---------- Overlay móvil ---------- */
.app-overlay{position:fixed;inset:0;background:rgba(1,41,112,.4);z-index:1035;display:none;}
.app-overlay.show{display:block;}

@media (max-width:1199.98px){
  .app-sidebar{transform:translateX(-100%);}
  .app-sidebar.open{transform:translateX(0);}
  .app-main{margin-left:0;}
  .app-topbar .burger{display:block;}
}
@media (max-width:575.98px){
  .app-topbar{padding:0 14px;gap:10px;}
  .app-topbar .page-title{font-size:15px;max-width:46vw;}
}
