:root{
  --ppccr-bg:#fff;
  --ppccr-text:#0b1220;
  --ppccr-muted:#5b6b82;
  --ppccr-border:#e2ecf9;

  --ppccr-blue-900:#0a2e4e;
  --ppccr-blue-700:#0b4ea2;
  --ppccr-blue-500:#1d7afc;

  --ppccr-surface:#f6faff;
  --ppccr-shadow:0 10px 30px rgba(11,78,162,.08);
  --ppccr-radius:18px;
  --ppccr-font:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
}

.ppccr-sankey{
  background:linear-gradient(180deg,var(--ppccr-surface),#fff 58%);
  border:1px solid var(--ppccr-border);
  border-radius:16px;
  box-shadow:var(--ppccr-shadow);
  box-sizing:border-box;
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  overflow:hidden;
  color:var(--ppccr-text);
  font-family:var(--ppccr-font);
}

.ppccr-sankey .head{
  margin-bottom:4px;
}

.ppccr-sankey h3{
  margin:0;
  font-size:16px;
  line-height:1.1;
  font-weight:850;
  letter-spacing:.1px;
  color:var(--ppccr-blue-900);
}

.ppccr-sankey .sub{
  margin:3px 0 0;
  font-size:11px;
  color:var(--ppccr-muted);
}

.ppccr-sankey .viz{
  margin-top:6px;
  box-sizing:border-box;
  flex:1 1 auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  overflow:hidden;
  position:relative;
  display:grid;
  place-items:center;
  padding:6px 4px;
}

.ppccr-sankey .viz--solo{
  margin-top:0;
}

.ppccr-sankey svg{
  width:100%;
  height:auto;
  max-width:100%;
  max-height:100%;
  display:block;
  overflow:hidden;
}

.ppccr-sankey .callout-line{
  fill:none;
  stroke:rgba(103,125,151,.48);
  stroke-width:1.05;
  stroke-linecap:round;
}

.ppccr-sankey .node-value{
  font-size:15px;
  fill:var(--ppccr-blue-900);
  font-weight:850;
  letter-spacing:.1px;
}

.ppccr-sankey .node-label{
  font-size:10.5px;
  fill:var(--ppccr-blue-900);
  font-weight:730;
}

.ppccr-sankey .node-meta{
  font-size:9.5px;
  fill:var(--ppccr-muted);
  font-weight:610;
}

.ppccr-sankey .segment-inline-value{
  font-size:15px;
  font-weight:860;
  fill:#123e6a;
  letter-spacing:.12px;
  pointer-events:none;
}

.ppccr-sankey .segment-inline-label{
  font-size:10px;
  font-weight:740;
  fill:#264f78;
  letter-spacing:.08px;
  pointer-events:none;
}

.ppccr-sankey .motivo-inline-label{
  font-size:8.75px;
  font-weight:770;
  fill:#34597d;
  letter-spacing:.08px;
  paint-order:stroke;
  stroke:rgba(246,250,255,.62);
  stroke-width:.45px;
  stroke-linejoin:round;
  pointer-events:none;
}

.ppccr-sankey .legend{
  margin-top:6px;
  padding:4px 8px;
  border:1px solid var(--ppccr-border);
  border-radius:10px;
  background:rgba(245,250,255,.85);
  font-size:10px;
  color:var(--ppccr-muted);
}

@media (min-width: 1025px) {
  .ppccr-sankey{
    padding:18px 24px 16px;
    border-radius:20px;
  }

  .ppccr-sankey .viz--solo{
    padding-left:14px;
  }

  .ppccr-sankey .node-value{
    font-size:13.5px;
  }

  .ppccr-sankey .node-label{
    font-size:8.8px;
    font-weight:620;
    letter-spacing:.02px;
  }

  .ppccr-sankey .node-meta{
    font-size:8.6px;
  }
}

@media (max-width: 1024px) {
  .ppccr-sankey{
    padding:11px 12px;
  }

  .ppccr-sankey .node-value,
  .ppccr-sankey .segment-inline-value{
    font-size:14px;
  }

  .ppccr-sankey .node-label{
    font-size:10px;
  }

  .ppccr-sankey .node-meta{
    font-size:9px;
  }

  .ppccr-sankey .segment-inline-label{
    font-size:9.4px;
  }

  .ppccr-sankey .motivo-inline-label{
    font-size:8.4px;
  }
}

@media (max-width: 640px) {
  .ppccr-sankey{
    padding:10px;
  }

  .ppccr-sankey h3{
    font-size:15px;
  }

  .ppccr-sankey .sub{
    font-size:10px;
  }

  .ppccr-sankey .viz{
    margin-top:6px;
  }

  .ppccr-sankey .node-value,
  .ppccr-sankey .segment-inline-value{
    font-size:13px;
  }

  .ppccr-sankey .node-label{
    font-size:9.4px;
  }

  .ppccr-sankey .node-meta{
    font-size:8.5px;
  }

  .ppccr-sankey .segment-inline-label{
    font-size:8.8px;
  }

  .ppccr-sankey .motivo-inline-label{
    font-size:7.7px;
    stroke-width:.36px;
  }

  .ppccr-sankey .legend{
    margin-top:8px;
    padding:5px 7px;
    font-size:9.4px;
  }
}

@media (max-width: 420px) {
  .ppccr-sankey{
    padding:9px;
    border-radius:14px;
  }

  .ppccr-sankey .node-value,
  .ppccr-sankey .segment-inline-value{
    font-size:12px;
  }

  .ppccr-sankey .node-label{
    font-size:8.9px;
  }

  .ppccr-sankey .node-meta{
    font-size:8.1px;
  }

  .ppccr-sankey .segment-inline-label{
    font-size:8.3px;
  }

  .ppccr-sankey .motivo-inline-label{
    font-size:7.2px;
  }
}
