/* ========================================================================== 
   TARJETAS INSTITUCIONALES

   Capa visual final para Inicio, Biblioteca y Temas. Mantiene intactos los
   estantes y las fichas documentales: el alcance de cada regla está acotado a
   las tres vistas donde se usan estas tarjetas.
   ========================================================================== */

:where(#vista-inicio,#vista-biblioteca,#vista-temas){
  --cf-navy:#082d58;
  --cf-blue:#145fa8;
  --cf-blue-bright:#2384ca;
  --cf-red:#d8322e;
  --cf-gold:#e2b323;
  --cf-green:#24945a;
  --cf-purple:#7550a3;
  --cf-ink:#102942;
  --cf-muted:#607184;
  --cf-line:rgba(8,45,88,.13);
  --cf-line-strong:rgba(8,45,88,.23);
  --cf-card-shadow:0 12px 30px -18px rgba(8,45,88,.34),0 3px 9px rgba(8,45,88,.055);
  --cf-card-shadow-up:0 24px 48px -22px rgba(8,45,88,.42),0 8px 18px rgba(8,45,88,.08);
  --cf-ease:cubic-bezier(.2,.72,.25,1);
}

@keyframes cf-card-in{
  from{opacity:0;transform:translateY(15px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@keyframes cf-bar-in{
  from{transform:scaleX(.04);filter:saturate(.7)}
  to{transform:scaleX(1);filter:saturate(1)}
}

/* --------------------------------------------------------------------------
   INICIO · controles e indicadores
   -------------------------------------------------------------------------- */

#vista-inicio .bibdash-filtros{
  position:relative;
  overflow:hidden;
  border-color:var(--cf-line);
  background:
    radial-gradient(100% 160% at 100% 0,rgba(35,132,202,.09),transparent 55%),
    linear-gradient(145deg,rgba(255,255,255,.96),rgba(244,249,253,.91));
  box-shadow:var(--cf-card-shadow);
  animation:cf-card-in .55s var(--cf-ease) .05s backwards;
}

#vista-inicio .bibdash-filtros::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(180deg,var(--cf-red),var(--cf-gold));
}

#vista-inicio .bibdash-filtro label{
  color:var(--cf-navy);
  font-size:11px;
  font-weight:750;
  letter-spacing:.035em;
}

#vista-inicio .bibdash-filtro select{
  border-color:rgba(8,45,88,.16);
  background:rgba(255,255,255,.94);
  box-shadow:inset 0 1px 2px rgba(8,45,88,.035);
  transition:border-color .2s var(--cf-ease),box-shadow .2s var(--cf-ease);
}

#vista-inicio .bibdash-filtro select:focus{
  border-color:var(--cf-blue);
  box-shadow:0 0 0 3px rgba(20,95,168,.14);
  outline:0;
}

#vista-inicio .bibdash-kpi{
  --cf-accent:var(--cf-blue);
  --cf-soft:rgba(20,95,168,.14);
  isolation:isolate;
  min-height:154px;
  border:1px solid var(--cf-line);
  border-radius:22px;
  background:
    radial-gradient(130px 105px at 100% 100%,var(--cf-soft),transparent 72%),
    linear-gradient(145deg,#fff 5%,#f3f8fc 100%);
  box-shadow:var(--cf-card-shadow);
  transition:transform .28s var(--cf-ease),box-shadow .28s var(--cf-ease),border-color .28s var(--cf-ease);
  animation:cf-card-in .62s var(--cf-ease) backwards;
}

#vista-inicio .bibdash-kpi:nth-child(1){animation-delay:.10s}
#vista-inicio .bibdash-kpi:nth-child(2){animation-delay:.16s}
#vista-inicio .bibdash-kpi:nth-child(3){animation-delay:.22s}
#vista-inicio .bibdash-kpi:nth-child(4){animation-delay:.28s}

#vista-inicio .bibdash-kpi::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--cf-accent),rgba(255,255,255,.55));
}

#vista-inicio .bibdash-kpi::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:-38px;
  bottom:-52px;
  width:156px;
  height:156px;
  border:28px solid var(--cf-soft);
  border-radius:50%;
  background:transparent;
  opacity:1;
  transition:transform .38s var(--cf-ease);
}

#vista-inicio .bibdash-kpi[data-kpi="articulos"]{
  --cf-accent:var(--cf-green);
  --cf-soft:rgba(36,148,90,.13);
}

#vista-inicio .bibdash-kpi[data-kpi="temas"]{
  --cf-accent:var(--cf-purple);
  --cf-soft:rgba(117,80,163,.13);
}

#vista-inicio .bibdash-kpi[data-kpi="periodo"]{
  --cf-accent:#c78a12;
  --cf-soft:rgba(226,179,35,.17);
}

/* El primer indicador domina la fila porque expresa el tamaño real del fondo. */
#vista-inicio .bibdash-kpi[data-kpi="documentos"]{
  --cf-accent:var(--cf-gold);
  --cf-soft:rgba(255,255,255,.12);
  border-color:rgba(8,45,88,.30);
  background:
    radial-gradient(170px 150px at 105% 110%,rgba(80,176,236,.32),transparent 72%),
    linear-gradient(145deg,#072747 0%,#0b497d 58%,#1575b4 100%);
  box-shadow:0 20px 42px -22px rgba(5,38,70,.72),0 7px 16px rgba(8,45,88,.14);
}

#vista-inicio .bibdash-kpi > span{
  color:var(--cf-accent);
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
}

#vista-inicio .bibdash-kpi strong{
  position:relative;
  z-index:1;
  margin:12px 0 8px;
  color:var(--cf-ink);
  font-size:clamp(34px,3.7vw,48px);
  font-weight:760;
  letter-spacing:-.055em;
}

#vista-inicio .bibdash-kpi small{
  position:relative;
  z-index:1;
  color:var(--cf-muted);
  font-size:12px;
  line-height:1.4;
}

#vista-inicio .bibdash-kpi[data-kpi="documentos"] strong{color:#fff}
#vista-inicio .bibdash-kpi[data-kpi="documentos"] small{color:rgba(255,255,255,.76)}

@media (hover:hover){
  #vista-inicio .bibdash-kpi:hover{
    transform:translateY(-4px);
    border-color:var(--cf-line-strong);
    box-shadow:var(--cf-card-shadow-up);
  }
  #vista-inicio .bibdash-kpi:hover::after{transform:translate(-8px,-7px) scale(1.06)}
}

/* --------------------------------------------------------------------------
   INICIO · paneles del dashboard
   -------------------------------------------------------------------------- */

#vista-inicio .bibdash-panel{
  --cf-panel-accent:var(--cf-blue);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid var(--cf-line);
  background:
    radial-gradient(320px 210px at 100% 0,rgba(35,132,202,.075),transparent 70%),
    linear-gradient(155deg,rgba(255,255,255,.98),rgba(244,248,252,.94));
  box-shadow:0 18px 45px -28px rgba(8,45,88,.44),0 4px 12px rgba(8,45,88,.045);
  animation:cf-card-in .66s var(--cf-ease) backwards;
}

#vista-inicio .bibdash-graficos .bibdash-panel:nth-child(1){animation-delay:.20s}
#vista-inicio .bibdash-graficos .bibdash-panel:nth-child(2){
  --cf-panel-accent:var(--cf-green);
  animation-delay:.27s;
}
#vista-inicio .bibdash-temas-panel{
  --cf-panel-accent:var(--cf-purple);
  animation-delay:.32s;
}
#vista-inicio .bibdash > .bibdash-panel:last-child{
  --cf-panel-accent:var(--cf-red);
  animation-delay:.38s;
}

#vista-inicio .bibdash-panel::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,var(--cf-panel-accent) 0%,rgba(255,255,255,.2) 78%);
}

#vista-inicio .bibdash-panel::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-115px;
  right:-90px;
  width:235px;
  height:235px;
  border:38px solid rgba(20,95,168,.035);
  border-radius:50%;
}

#vista-inicio .bibdash-panel-cab{
  position:relative;
  z-index:1;
  padding-bottom:16px;
  border-bottom:1px solid rgba(8,45,88,.085);
}

#vista-inicio .bibdash-panel-cab span{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  margin-bottom:7px;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(20,95,168,.085);
  color:var(--cf-panel-accent);
  font-size:11px;
  font-weight:800;
  letter-spacing:.095em;
}

#vista-inicio .bibdash-panel-cab h2{
  color:var(--cf-ink);
  font-size:clamp(21px,2.2vw,26px);
  font-weight:740;
  letter-spacing:-.035em;
}

#vista-inicio .bibdash-enlace{
  align-self:center;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(20,95,168,.075);
  color:var(--cf-blue);
  font-size:12px;
  font-weight:760;
  text-decoration:none;
  transition:background .2s var(--cf-ease),transform .2s var(--cf-ease),color .2s var(--cf-ease);
}

#vista-inicio .bibdash-enlace:hover,
#vista-inicio .bibdash-enlace:focus-visible{
  background:var(--cf-blue);
  color:#fff;
  text-decoration:none;
  transform:translateX(2px);
}

#vista-inicio .bibdash-barra{
  position:relative;
  border:1px solid transparent;
  transition:background .2s var(--cf-ease),border-color .2s var(--cf-ease),box-shadow .2s var(--cf-ease),transform .2s var(--cf-ease);
}

#vista-inicio .bibdash-barra:hover,
#vista-inicio .bibdash-barra:focus-visible,
#vista-inicio .bibdash-barra[aria-pressed="true"]{
  border-color:rgba(8,45,88,.09);
  background:rgba(255,255,255,.78);
  box-shadow:0 7px 18px -15px rgba(8,45,88,.44);
  transform:translateX(3px);
}

#vista-inicio .bibdash-barra:focus-visible{
  outline:3px solid rgba(20,95,168,.26);
  outline-offset:1px;
}

#vista-inicio .bibdash-barra-pista,
#vista-biblioteca .viz-barras-pista{
  overflow:hidden;
  border:1px solid rgba(8,45,88,.055);
  background:linear-gradient(180deg,#e9eef3,#f7f9fb);
  box-shadow:inset 0 1px 3px rgba(8,45,88,.08);
}

#vista-inicio .bibdash-barra-pista i,
#vista-biblioteca .viz-barras-pista i,
#vista-biblioteca .viz-medidor-pista i{
  transform-origin:left center;
  animation:cf-bar-in .72s var(--cf-ease) .18s backwards;
}

#vista-inicio .bibdash-donut{
  border:7px solid rgba(255,255,255,.78);
  box-shadow:0 17px 28px -19px rgba(8,45,88,.48),inset 0 0 0 1px rgba(8,45,88,.06);
  transition:transform .28s var(--cf-ease),box-shadow .28s var(--cf-ease);
}

#vista-inicio .bibdash-donut::before{
  background:linear-gradient(145deg,#fff,#f3f7fa);
  box-shadow:inset 0 0 0 1px rgba(8,45,88,.06),0 5px 14px rgba(8,45,88,.07);
}

@media (hover:hover){
  #vista-inicio .bibdash-donut:hover{
    transform:rotate(-3deg) scale(1.035);
    box-shadow:0 24px 36px -20px rgba(8,45,88,.54),inset 0 0 0 1px rgba(8,45,88,.06);
  }
}

/* --------------------------------------------------------------------------
   INICIO · tarjetas de temas
   -------------------------------------------------------------------------- */

#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema{
  --cf-topic-accent:var(--cf-blue);
  isolation:isolate;
  overflow:hidden;
  min-height:92px;
  padding:17px 18px 17px 15px!important;
  border:1px solid rgba(8,45,88,.115)!important;
  border-radius:17px!important;
  background:
    radial-gradient(130px 90px at 100% 0,rgba(35,132,202,.10),transparent 72%),
    linear-gradient(145deg,rgba(255,255,255,.99),rgba(242,247,251,.96))!important;
  box-shadow:inset 4px 0 0 var(--cf-topic-accent),0 11px 25px -20px rgba(8,45,88,.52)!important;
  transform:none;
  transition:transform .24s var(--cf-ease),box-shadow .24s var(--cf-ease),border-color .24s var(--cf-ease)!important;
  animation:cf-card-in .5s var(--cf-ease) backwards;
}

#vista-inicio .bibdash-tema:nth-child(3n+1){animation-delay:.05s}
#vista-inicio .bibdash-tema:nth-child(3n+2){animation-delay:.10s}
#vista-inicio .bibdash-tema:nth-child(3n){animation-delay:.15s}

#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-46px;
  right:-38px;
  width:112px;
  height:112px;
  border:20px solid rgba(20,95,168,.045);
  border-radius:50%;
  transition:transform .3s var(--cf-ease);
}

#vista-inicio .bibdash-tema-num{
  position:relative;
  z-index:1;
  width:36px;
  height:36px;
  border:1px solid rgba(255,255,255,.6);
  background:linear-gradient(145deg,var(--cf-navy),var(--cf-blue-bright));
  box-shadow:0 7px 14px -8px rgba(8,45,88,.72);
  color:#fff;
  font-size:11px;
  font-weight:800;
}

#vista-inicio .bibdash-tema strong{
  position:relative;
  z-index:1;
  color:var(--cf-ink)!important;
  font-size:14px;
  font-weight:720;
}

#vista-inicio .bibdash-tema small{
  position:relative;
  z-index:1;
  color:var(--cf-muted)!important;
  font-size:11px;
}

#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema:hover,
#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema:focus-visible{
  border-color:rgba(20,95,168,.28)!important;
  background:
    radial-gradient(140px 95px at 100% 0,rgba(35,132,202,.16),transparent 72%),
    linear-gradient(145deg,#fff,#eef6fc)!important;
  box-shadow:inset 4px 0 0 var(--cf-topic-accent),var(--cf-card-shadow-up)!important;
  transform:translateY(-4px);
}

#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema:hover::before,
#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema:focus-visible::before{
  transform:translate(-8px,7px) scale(1.08);
}

#vista-inicio .bibdash-tema:hover .bibdash-tema-num,
#vista-inicio .bibdash-tema:focus-visible .bibdash-tema-num{
  background:linear-gradient(145deg,var(--cf-blue),#39a1df);
  color:#fff;
}

#vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema-sugerido{
  --cf-topic-accent:#8b96a3;
  border-style:dashed!important;
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(243,245,247,.82))!important;
  box-shadow:inset 4px 0 0 rgba(96,113,132,.38),0 9px 22px -20px rgba(8,45,88,.44)!important;
}

#vista-inicio .bibdash-tema-sugerido .bibdash-tema-num{
  border-color:rgba(8,45,88,.08);
  background:linear-gradient(145deg,#eef1f4,#dce2e7);
  box-shadow:none;
  color:#52606d;
}

#vista-inicio .bibdash-tema:focus-visible,
#vista-inicio .bibdash-doc:focus-visible{
  outline:3px solid rgba(20,95,168,.30);
  outline-offset:3px;
}

/* --------------------------------------------------------------------------
   INICIO · documentos de la biblioteca
   -------------------------------------------------------------------------- */

#vista-inicio .bibdash-documentos{gap:10px}

#vista-inicio .bibdash-documentos button.bibdash-doc{
  position:relative;
  overflow:hidden;
  min-height:78px;
  padding:13px 15px!important;
  border:1px solid rgba(8,45,88,.10)!important;
  border-radius:15px!important;
  background:
    radial-gradient(190px 80px at 100% 50%,rgba(20,95,168,.065),transparent 75%),
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(246,249,252,.94))!important;
  box-shadow:0 9px 22px -19px rgba(8,45,88,.48)!important;
  transition:transform .22s var(--cf-ease),box-shadow .22s var(--cf-ease),border-color .22s var(--cf-ease)!important;
  animation:cf-card-in .48s var(--cf-ease) backwards;
}

#vista-inicio .bibdash-doc:nth-child(1){animation-delay:.05s}
#vista-inicio .bibdash-doc:nth-child(2){animation-delay:.09s}
#vista-inicio .bibdash-doc:nth-child(3){animation-delay:.13s}
#vista-inicio .bibdash-doc:nth-child(4){animation-delay:.17s}
#vista-inicio .bibdash-doc:nth-child(5){animation-delay:.21s}

#vista-inicio .bibdash-documentos button.bibdash-doc > i{
  width:5px;
  height:45px;
  border-radius:999px;
  box-shadow:0 0 0 4px rgba(255,255,255,.75),0 5px 13px rgba(8,45,88,.16);
}

#vista-inicio .bibdash-doc-cuerpo > small{
  margin-bottom:3px;
  color:var(--cf-blue);
  font-size:10px;
  font-weight:800;
  letter-spacing:.075em;
}

#vista-inicio .bibdash-doc-cuerpo > strong{
  color:var(--cf-ink)!important;
  font-size:14px;
  font-weight:730;
}

#vista-inicio .bibdash-doc-cuerpo > span{color:var(--cf-muted)}

#vista-inicio .bibdash-doc-articulos{
  min-width:68px;
  padding:7px 10px;
  border:1px solid rgba(20,95,168,.09);
  border-radius:11px;
  background:rgba(20,95,168,.065);
  color:var(--cf-navy);
  font-weight:760;
}

#vista-inicio .bibdash-doc-flecha{
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  border-radius:50%;
  background:rgba(20,95,168,.08);
}

#vista-inicio .bibdash-documentos button.bibdash-doc:hover,
#vista-inicio .bibdash-documentos button.bibdash-doc:focus-visible{
  border-color:rgba(20,95,168,.24)!important;
  background:
    radial-gradient(210px 90px at 100% 50%,rgba(20,95,168,.11),transparent 75%),
    linear-gradient(145deg,#fff,#f2f8fc)!important;
  box-shadow:0 18px 35px -24px rgba(8,45,88,.58),0 5px 12px rgba(8,45,88,.055)!important;
  transform:translateX(4px);
}

/* --------------------------------------------------------------------------
   BIBLIOTECA · dashboard posterior a los estantes
   -------------------------------------------------------------------------- */

#vista-biblioteca #resumenBiblioteca > .resumen-card{
  --cf-summary-accent:var(--cf-blue);
  --cf-summary-soft:rgba(20,95,168,.12);
  isolation:isolate;
  min-height:142px;
  border-color:var(--cf-line);
  background:
    radial-gradient(150px 120px at 100% 100%,var(--cf-summary-soft),transparent 72%),
    linear-gradient(150deg,rgba(255,255,255,.99),rgba(242,247,251,.94));
  box-shadow:var(--cf-card-shadow);
  transition:transform .27s var(--cf-ease),box-shadow .27s var(--cf-ease),border-color .27s var(--cf-ease);
  animation:cf-card-in .58s var(--cf-ease) backwards;
}

#vista-biblioteca #resumenBiblioteca > .resumen-card::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--cf-summary-accent),rgba(255,255,255,.35));
}

#vista-biblioteca #resumenBiblioteca > .resumen-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:-48px;
  bottom:-64px;
  width:150px;
  height:150px;
  border:26px solid var(--cf-summary-soft);
  border-radius:50%;
  transition:transform .34s var(--cf-ease);
}

#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(1){animation-delay:.05s}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(2){
  --cf-summary-accent:var(--cf-green);
  --cf-summary-soft:rgba(36,148,90,.12);
  animation-delay:.10s;
}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(3){
  --cf-summary-accent:var(--cf-purple);
  --cf-summary-soft:rgba(117,80,163,.12);
  animation-delay:.15s;
}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(4){
  --cf-summary-accent:#c78a12;
  --cf-summary-soft:rgba(226,179,35,.16);
  animation-delay:.20s;
}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(5){animation-delay:.25s}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(6){
  --cf-summary-accent:var(--cf-green);
  --cf-summary-soft:rgba(36,148,90,.10);
  animation-delay:.30s;
}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(7){
  --cf-summary-accent:var(--cf-red);
  --cf-summary-soft:rgba(216,50,46,.09);
  animation-delay:.35s;
}

/* La primera cifra es la puerta de lectura del dashboard. */
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(1){
  --cf-summary-accent:var(--cf-gold);
  --cf-summary-soft:rgba(255,255,255,.115);
  border-color:rgba(8,45,88,.30);
  background:
    radial-gradient(170px 145px at 105% 110%,rgba(80,176,236,.30),transparent 72%),
    linear-gradient(145deg,#072747 0%,#0b497d 60%,#1575b4 100%);
  box-shadow:0 20px 42px -22px rgba(5,38,70,.72),0 7px 16px rgba(8,45,88,.14);
}

#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(1) .resumen-card-rotulo,
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(1) strong{color:#fff}
#vista-biblioteca #resumenBiblioteca > .resumen-card:nth-child(1) small{color:rgba(255,255,255,.76)}

#vista-biblioteca .resumen-card-rotulo,
#vista-biblioteca .resumen-card h3{
  color:var(--cf-summary-accent);
  font-size:11px;
  font-weight:820;
  letter-spacing:.09em;
}

#vista-biblioteca .resumen-card-cifra strong{
  margin:13px 0 8px;
  color:var(--cf-ink);
  font-size:clamp(32px,3.45vw,46px);
  font-weight:760;
  letter-spacing:-.055em;
}

#vista-biblioteca .resumen-card-cifra small{
  color:var(--cf-muted);
  line-height:1.4;
}

#vista-biblioteca .resumen-card .viz-medidor-pista{
  border:1px solid rgba(8,45,88,.06);
  box-shadow:inset 0 1px 3px rgba(8,45,88,.08);
}

#vista-biblioteca .resumen-card .resumen-enlace{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(20,95,168,.08);
  color:var(--cf-blue);
  font-weight:760;
  transition:background .2s var(--cf-ease),color .2s var(--cf-ease),transform .2s var(--cf-ease);
}

#vista-biblioteca .resumen-card .resumen-enlace:hover,
#vista-biblioteca .resumen-card .resumen-enlace:focus-visible{
  background:var(--cf-blue);
  color:#fff;
  text-decoration:none;
  transform:translateX(2px);
}

@media (hover:hover){
  #vista-biblioteca #resumenBiblioteca > .resumen-card:hover{
    border-color:var(--cf-line-strong);
    box-shadow:var(--cf-card-shadow-up);
    transform:translateY(-4px);
  }
  #vista-biblioteca #resumenBiblioteca > .resumen-card:hover::after{
    transform:translate(-7px,-6px) scale(1.05);
  }
}

/* --------------------------------------------------------------------------
   BIBLIOTECA Y TEMAS · tarjetas temáticas
   -------------------------------------------------------------------------- */

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card{
  --cf-topic-accent:var(--cf-blue);
  isolation:isolate;
  min-height:138px;
  padding:21px!important;
  border:1px solid var(--cf-line)!important;
  border-radius:19px!important;
  background:
    radial-gradient(145px 110px at 100% 0,rgba(35,132,202,.12),transparent 72%),
    linear-gradient(145deg,#fff,#f2f7fb)!important;
  box-shadow:var(--cf-card-shadow)!important;
  transition:transform .25s var(--cf-ease),box-shadow .25s var(--cf-ease),border-color .25s var(--cf-ease)!important;
  animation:cf-card-in .55s var(--cf-ease) backwards;
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--cf-topic-accent),#43a5df 72%,rgba(255,255,255,.45));
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:-58px;
  right:-48px;
  width:135px;
  height:135px;
  border:22px solid rgba(20,95,168,.055);
  border-radius:50%;
  transition:transform .32s var(--cf-ease);
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:nth-child(1){animation-delay:.04s}
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:nth-child(2){animation-delay:.08s}
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:nth-child(3){animation-delay:.12s}
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:nth-child(4){animation-delay:.16s}
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:nth-child(5){animation-delay:.20s}
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:nth-child(n+6){animation-delay:.24s}

/* El primer tema es el de mayor peso, por eso recibe el tratamiento destacado. */
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:first-child{
  --cf-topic-accent:var(--cf-gold);
  border-color:rgba(8,45,88,.28)!important;
  background:
    radial-gradient(160px 125px at 110% 110%,rgba(69,163,222,.26),transparent 72%),
    linear-gradient(145deg,#072747,#0d568d)!important;
  box-shadow:0 20px 42px -24px rgba(5,38,70,.72),0 7px 15px rgba(8,45,88,.13)!important;
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card h3{
  position:relative;
  z-index:1;
  color:var(--cf-ink)!important;
  font-size:17px;
  font-weight:740;
  line-height:1.25;
  letter-spacing:-.02em;
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card p{
  position:relative;
  z-index:1;
  color:var(--cf-muted)!important;
  font-size:12px;
  font-weight:620;
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:first-child h3{color:#fff!important}
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:first-child p{color:rgba(255,255,255,.72)!important}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card .tema-card-barra span{
  height:6px;
  border:1px solid rgba(8,45,88,.045);
  background:rgba(8,45,88,.09);
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card .tema-card-barra span.lleno{
  border-color:transparent;
  background:linear-gradient(90deg,var(--cf-blue),#43a5df)!important;
  box-shadow:0 3px 8px -4px rgba(20,95,168,.64);
  transform-origin:left center;
  animation:cf-bar-in .62s var(--cf-ease) .18s backwards;
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:first-child .tema-card-barra span{
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.16);
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:first-child .tema-card-barra span.lleno{
  background:linear-gradient(90deg,var(--cf-gold),#ffe17a)!important;
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:hover,
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:focus-visible{
  border-color:rgba(20,95,168,.30)!important;
  box-shadow:var(--cf-card-shadow-up)!important;
  transform:translateY(-5px);
}

:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:hover::after,
:is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card:focus-visible::after{
  transform:translate(-9px,8px) scale(1.08);
}

/* --------------------------------------------------------------------------
   BIBLIOTECA Y DETALLE DE TEMA · tarjetas documentales
   -------------------------------------------------------------------------- */

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card{
  --cf-doc-accent:#6b7684;
  --cf-doc-soft:rgba(107,118,132,.09);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:126px;
  padding:20px 58px 20px 21px;
  border:1px solid var(--cf-line);
  border-radius:17px;
  background:
    radial-gradient(230px 130px at 0 50%,var(--cf-doc-soft),transparent 74%),
    linear-gradient(145deg,rgba(255,255,255,.99),rgba(244,248,251,.95));
  box-shadow:var(--cf-card-shadow);
  transition:transform .25s var(--cf-ease),box-shadow .25s var(--cf-ease),border-color .25s var(--cf-ease);
  animation:cf-card-in .52s var(--cf-ease) backwards;
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Constitución"]{
  --cf-doc-accent:#6b3fa0;
  --cf-doc-soft:rgba(107,63,160,.10);
}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Ley"]{
  --cf-doc-accent:#1a4d76;
  --cf-doc-soft:rgba(26,77,118,.10);
}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Decreto"],
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Decreto Ley"]{
  --cf-doc-accent:#1f7a4d;
  --cf-doc-soft:rgba(31,122,77,.10);
}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Resolución"]{
  --cf-doc-accent:#a9700f;
  --cf-doc-soft:rgba(169,112,15,.11);
}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Jurisprudencia"]{
  --cf-doc-accent:#b3311c;
  --cf-doc-soft:rgba(179,49,28,.10);
}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card[data-tipo="Concepto"]{
  --cf-doc-accent:#2c6ca6;
  --cf-doc-soft:rgba(44,108,166,.10);
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:nth-child(1){animation-delay:.05s}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:nth-child(2){animation-delay:.10s}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:nth-child(3){animation-delay:.15s}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:nth-child(4){animation-delay:.20s}
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:nth-child(n+5){animation-delay:.25s}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card::after{
  content:"\2192";
  position:absolute;
  right:18px;
  top:50%;
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border:1px solid rgba(8,45,88,.08);
  border-radius:50%;
  background:rgba(255,255,255,.72);
  color:var(--cf-doc-accent);
  font-size:17px;
  font-weight:800;
  opacity:.58;
  transform:translate(-5px,-50%);
  transition:opacity .22s var(--cf-ease),transform .22s var(--cf-ease),background .22s var(--cf-ease),color .22s var(--cf-ease);
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card .tipo-marca{
  width:5px;
  border-radius:999px;
  background:var(--cf-doc-accent);
  box-shadow:0 0 0 4px rgba(255,255,255,.74),0 5px 13px rgba(8,45,88,.16);
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card .doc-card-tipo{
  padding:4px 10px;
  border:1px solid var(--cf-doc-soft);
  border-radius:999px;
  background:var(--cf-doc-soft);
  color:var(--cf-doc-accent);
  font-size:10px;
  font-weight:820;
  letter-spacing:.075em;
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card h3{
  color:var(--cf-ink);
  font-size:17px;
  font-weight:740;
  line-height:1.32;
  letter-spacing:-.018em;
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card p{
  color:var(--cf-muted);
  font-size:13px;
  line-height:1.55;
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card .doc-card-meta{
  color:#6c7c8c;
  font-size:11px;
  font-weight:650;
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card .doc-card-meta span:not(:last-child)::after{
  content:"\00b7";
  margin-left:var(--e3);
  color:rgba(8,45,88,.33);
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:hover,
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:focus-visible{
  border-color:var(--cf-doc-accent);
  box-shadow:var(--cf-card-shadow-up);
  transform:translateX(5px);
}

:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:hover::after,
:is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card:focus-visible::after{
  background:var(--cf-doc-accent);
  color:#fff;
  opacity:1;
  transform:translate(0,-50%);
}

:is(#vista-biblioteca,#vista-temas) .tema-card:focus-visible,
:is(#vista-biblioteca,#vista-temas) .doc-card:focus-visible{
  outline:3px solid rgba(20,95,168,.30);
  outline-offset:3px;
}

/* Los títulos de sección preparan la lectura de las rejillas sin añadir cajas. */
#vista-biblioteca .seccion-cab h2,
#vista-temas > .contenedor > .seccion-cab h2{
  position:relative;
  color:var(--cf-ink);
  font-size:clamp(23px,2.5vw,30px);
  font-weight:760;
  letter-spacing:-.035em;
}

#vista-biblioteca .seccion-cab h2::after,
#vista-temas > .contenedor > .seccion-cab h2::after{
  content:"";
  display:block;
  width:42px;
  height:4px;
  margin-top:8px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--cf-red),var(--cf-gold));
}

/* --------------------------------------------------------------------------
   Adaptación de tamaño y movimiento
   -------------------------------------------------------------------------- */

@media (max-width:720px){
  #vista-inicio .bibdash-kpi{min-height:132px;padding:19px}
  #vista-inicio .bibdash-kpi strong{font-size:clamp(29px,9vw,39px)}
  #vista-inicio .bibdash-panel-cab{align-items:flex-start;flex-direction:column}
  #vista-inicio .bibdash-enlace{align-self:flex-start}
  #vista-inicio .tablero .bibdash-temas-panel button.bibdash-tema{min-height:84px}

  #vista-biblioteca #resumenBiblioteca > .resumen-card{min-height:126px}

  :is(#vista-biblioteca #temasDestacados,#vista-temas #temasTodos) > .tema-card{
    min-height:116px;
    padding:18px!important;
  }

  :is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card{
    min-height:0;
    padding:17px 48px 17px 17px;
  }

  :is(#vista-biblioteca #documentosRecientes,#vista-temas .doc-lista) > .doc-card::after{
    right:12px;
    width:27px;
    height:27px;
    opacity:.85;
    transform:translate(0,-50%);
  }
}

@media (max-width:420px){
  #vista-inicio .bibdash-kpis{grid-template-columns:1fr}
  #vista-inicio .bibdash-kpi{min-height:122px}
  #vista-inicio .bibdash-documentos button.bibdash-doc{grid-template-columns:5px minmax(0,1fr) 28px}
  #vista-inicio .bibdash-doc-articulos{display:none}
}

@media (prefers-reduced-motion:reduce){
  #vista-inicio .bibdash-kpi:hover,
  #vista-inicio .bibdash-tema:hover,
  #vista-inicio .bibdash-doc:hover,
  #vista-biblioteca .resumen-card:hover,
  :is(#vista-biblioteca,#vista-temas) .tema-card:hover,
  :is(#vista-biblioteca,#vista-temas) .doc-card:hover{
    transform:none!important;
  }
}
