/* BFP Campus · componentes administrativos compartidos
   Superficies, KPI, toolbars, badges y vacíos reutilizables. */
:root{
  --bfp-admin-line:rgba(111,151,184,.22);
  --bfp-admin-surface:#ffffff;
  --bfp-admin-surface-soft:#f6fbff;
  --bfp-admin-ink:#0a2440;
  --bfp-admin-muted:#647b91;
  --bfp-admin-shadow:0 12px 30px rgba(24,65,99,.10);
  --bfp-admin-radius:1rem;
}
.bfp-ds-290 .bfp-kpi{
  min-height:96px!important;
  height:96px!important;
  padding:15px 16px!important;
  border:1px solid var(--bfp-admin-line)!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,var(--bfp-admin-surface),var(--bfp-admin-surface-soft))!important;
  box-shadow:var(--bfp-admin-shadow)!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:0!important;
}
.bfp-ds-290 .bfp-kpi .bfp-kpi-label{margin:0 0 6px!important}
.bfp-ds-290 .bfp-kpi .bfp-kpi-value{margin:0!important}
.bfp-ds-290 .bfp-kpi .bfp-kpi-note{margin:7px 0 0!important}
.bfp-admin-card{
  border:1px solid var(--bfp-admin-line);
  border-radius:var(--bfp-admin-radius);
  background:linear-gradient(145deg,var(--bfp-admin-surface),var(--bfp-admin-surface-soft));
  box-shadow:var(--bfp-admin-shadow);
}
.bfp-admin-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem;
  padding:.75rem;
  border:1px solid var(--bfp-admin-line);
  border-radius:.9rem;
  background:linear-gradient(145deg,var(--bfp-admin-surface),var(--bfp-admin-surface-soft));
  box-shadow:0 8px 20px rgba(24,65,99,.07);
}
.bfp-admin-badge{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  width:max-content;
  max-width:100%;
  padding:.3rem .52rem;
  border:1px solid #d5e4ef;
  border-radius:999px;
  background:#eef6fc;
  color:#315f80;
  font-size:.7rem;
  font-weight:800;
  line-height:1.2;
}
.bfp-admin-empty{
  display:grid;
  justify-items:center;
  gap:.35rem;
  padding:2rem 1rem;
  border:1px dashed #bfd2df;
  border-radius:var(--bfp-admin-radius);
  background:#f8fbfd;
  color:var(--bfp-admin-muted);
  text-align:center;
}
.bfp-admin-empty h3,.bfp-admin-empty p{margin:0}
.bfp-admin-empty h3{color:var(--bfp-admin-ink)}
.bfp-admin-icon{
  display:grid;
  place-items:center;
  width:2.6rem;
  aspect-ratio:1;
  border-radius:.8rem;
  background:linear-gradient(135deg,#dceeff,#e5f8f4);
  color:#2176ad;
  font-weight:900;
}
.bfp-admin-tabs{display:flex;flex-wrap:wrap;gap:.45rem}
.bfp-admin-tabs a{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  min-height:2.5rem;
  padding:.55rem .8rem;
  border:1px solid #d7e3ee;
  border-radius:.75rem;
  background:#fff;
  color:#315f80;
  text-decoration:none;
  font-weight:700;
}
.bfp-admin-tabs a.active{border-color:#287fc1;background:#0b5f97;color:#fff;box-shadow:0 7px 18px rgba(11,95,151,.18)}
.bfp-admin-tabs a:focus-visible,.bfp-admin-card a:focus-visible,.bfp-admin-toolbar :is(a,button,input,select):focus-visible{outline:3px solid rgba(35,201,216,.5);outline-offset:2px}

body.bfp-ds-290.dark-mode:not(.contrast){
  --bfp-admin-line:rgba(136,177,205,.21);
  --bfp-admin-surface:#12364e;
  --bfp-admin-surface-soft:#0d2b42;
  --bfp-admin-ink:#e9f4fb;
  --bfp-admin-muted:#adc2d1;
  --bfp-admin-shadow:0 12px 30px rgba(0,0,0,.18);
}
body.bfp-ds-290.dark-mode:not(.contrast) .bfp-admin-tabs a{border-color:#31536b;background:#15394f;color:#dcebf2}
body.bfp-ds-290.dark-mode:not(.contrast) .bfp-admin-tabs a.active{background:#d8eef8;color:#0b4d70}
body.bfp-ds-290.dark-mode:not(.contrast) .bfp-admin-badge{border-color:#31536b;background:#173e56;color:#dcebf2}
body.bfp-ds-290.dark-mode:not(.contrast) .bfp-admin-empty{border-color:#36576c;background:#102e43;color:#adc2d1}
body.bfp-ds-290.dark-mode:not(.contrast) .bfp-admin-empty h3{color:#eef7fb}

body.bfp-ds-290.contrast .bfp-kpi,
body.bfp-ds-290.contrast .bfp-admin-card,
body.bfp-ds-290.contrast .bfp-admin-toolbar,
body.bfp-ds-290.contrast .bfp-admin-empty{border:2px solid currentColor!important;background:#000!important;color:#fff!important;box-shadow:none!important}
body.bfp-ds-290.contrast .bfp-admin-tabs a{border:2px solid currentColor;background:#000;color:#fff}
body.bfp-ds-290.contrast .bfp-admin-tabs a.active{background:#fff;color:#000}

@media(max-width:720px){
  .bfp-ds-290 .bfp-kpi{min-height:90px!important;height:auto!important;padding:13px 14px!important}
  .bfp-admin-toolbar{align-items:stretch}
}
