.kda-box{border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:16px;margin:16px 0;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.kda-box h3{margin-top:0}.kda-note,.kda-privacy,.kda-updated{font-size:.95em;color:#555}.kda-topline{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.kda-topline .kda-note{margin-top:0;max-width:850px}.kda-alert{padding:10px 12px;border-radius:8px;margin:12px 0}.kda-success{background:#e8f7ee}.kda-error{background:#fde8e8}.kda-warning{background:#fff4d8}.kda-info{background:#eef4ff}.kda-muted{color:#666;background:#f7f7f7}.kda-form{display:grid;gap:14px}.kda-field{display:grid;gap:6px;font-weight:600}.kda-field input{max-width:160px;padding:8px;border:1px solid #bbb;border-radius:8px}.kda-options{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.kda-option{display:flex;align-items:center;gap:8px;border-radius:10px;padding:12px;border:1px solid #d7d7d7;cursor:pointer;font-weight:700;background:#f7f7f7;color:#222}.kda-option:hover{background:#f0f0f0}.kda-option input{accent-color:#333}.kda-option:has(input:checked){border-color:#222;box-shadow:0 0 0 2px rgba(0,0,0,.08);background:#fff}.kda-button{border:0;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer;background:#222;color:#fff;max-width:220px;text-align:center;display:inline-block}.kda-button-change,.kda-button-change-submit{background:#365ad8;color:#fff}.kda-change-vote{margin-top:14px}.kda-change-vote summary{list-style:none}.kda-change-vote summary::-webkit-details-marker{display:none}.kda-change-vote[open] summary{margin-bottom:12px}.kda-privacy-button{display:inline-block;border:1px solid #c7d7ef;background:#f2f7ff;color:#17427a;border-radius:999px;padding:8px 12px;font-size:.92em;font-weight:700;cursor:pointer;white-space:nowrap}.kda-privacy-button:hover{background:#e6f0ff}.kda-modal-toggle{position:absolute;opacity:0;pointer-events:none}.kda-modal{display:none}.kda-modal-toggle:checked~.kda-modal{display:block}.kda-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99998;cursor:pointer}.kda-modal-card{position:fixed;z-index:99999;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,calc(100vw - 32px));background:#fff;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.28);padding:22px;display:grid;gap:12px;color:#222}.kda-modal-card strong{font-size:1.15em}.kda-modal-close{justify-self:start;border:0;border-radius:8px;background:#222;color:#fff;padding:9px 14px;font-weight:700;cursor:pointer}.kda-bar-title{font-weight:800;margin-bottom:5px}.kda-bar-meta{margin-bottom:10px}.kda-meter{height:18px;border-radius:999px;background:linear-gradient(90deg,#f4bfd0 0 25%,#c5eadf 25% 50%,#df3d42 50% 75%,#9147d8 75% 100%);overflow:hidden;position:relative}.kda-meter span{display:block;height:100%;background:rgba(0,0,0,.28);border-right:3px solid #111}.kda-scale{display:grid;grid-template-columns:repeat(4,1fr);font-size:.85em;color:#555;margin-top:5px}.kda-scale span:nth-child(2){text-align:center}.kda-scale span:nth-child(3){text-align:center}.kda-scale span:nth-child(4){text-align:right}.kda-distribution{display:grid;gap:9px;margin-top:14px}.kda-row{display:grid;grid-template-columns:150px 1fr 60px;gap:10px;align-items:center}.kda-rowbar{height:14px;background:#eee;border-radius:999px;overflow:hidden}.kda-rowbar i{display:block;height:100%}.kda-baja{background:#f4bfd0}.kda-media{background:#c5eadf}.kda-alta{background:#df3d42}.kda-muy_alta{background:#9147d8}.kda-age-chart{display:grid;gap:8px}.kda-age-line{display:grid;grid-template-columns:70px 1fr 40px;gap:8px;align-items:center}.kda-stacked{height:20px;background:#eee;border-radius:999px;overflow:hidden;display:flex}.kda-stacked span{display:block;height:100%}.kda-table{width:100%;border-collapse:collapse}.kda-table th,.kda-table td{border-bottom:1px solid #e5e5e5;padding:8px;text-align:left}.kda-table th{font-weight:800;background:#f7f7f7}@media(max-width:700px){.kda-topline{display:block}.kda-privacy-button{margin-bottom:12px}.kda-options{grid-template-columns:1fr}.kda-row{grid-template-columns:1fr}.kda-age-line{grid-template-columns:1fr}.kda-table{font-size:.9em;display:block;overflow-x:auto}}


/* Ajustes 0.1.2: lectura, formulario compacto y uso de colores solo en resultados */
.kda-vote-box{color:#1f2937;background:#fff;}
.kda-vote-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.kda-vote-head h3{margin:0;font-size:1.45rem;line-height:1.2;color:#111827;}
.kda-alert{color:#1f2937!important;}
.kda-success{background:#e8f7ee!important;color:#14532d!important;}
.kda-info{background:#eef4ff!important;color:#1e3a8a!important;}
.kda-error{background:#fde8e8!important;color:#7f1d1d!important;}
.kda-warning{background:#fff4d8!important;color:#713f12!important;}
.kda-muted,.kda-empty-results{background:#f8fafc!important;color:#475569!important;border-color:#d9e2ec;}
.kda-option{background:#fff!important;color:#1f2937!important;border:1px solid #d7dce3!important;box-shadow:none;}
.kda-option:hover{background:#f8fafc!important;}
.kda-option:has(input:checked){background:#f8fafc!important;border-color:#111827!important;box-shadow:0 0 0 2px rgba(17,24,39,.12)!important;}
.kda-button-change{background:#2563eb!important;color:#fff!important;}
.kda-button-change-submit{background:#2563eb!important;color:#fff!important;}
.kda-change-vote{margin-top:12px;}
.kda-empty-results{padding:12px 16px;margin:10px 0;}

@media(max-width:900px){
  .kda-options{grid-template-columns:1fr!important;}
  .kda-option{padding:10px 12px;}
  .kda-button{width:100%;max-width:none;}
}

.kda-vote-count {
  margin: -4px 0 12px;
  font-weight: 700;
  color: #334155;
}

.kda-empty-results{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.kda-empty-text{display:inline-block}.kda-source-button{display:inline-block;border:1px solid #c7d7ef;background:#f2f7ff;color:#17427a;border-radius:999px;padding:7px 11px;font-size:.9em;font-weight:700;cursor:pointer;white-space:nowrap}.kda-source-button:hover{background:#e6f0ff}@media(max-width:700px){.kda-empty-results{display:block}.kda-source-button{margin-top:10px}}

/* Ajustes 0.1.8: contenido editable de mensajes emergentes */
.kda-modal-body{display:block;line-height:1.55;}
.kda-modal-body p{margin:.35em 0 .7em;}
.kda-modal-body ul,.kda-modal-body ol{margin:.35em 0 .7em 1.2em;}
.kda-modal-body a{color:#17427a;text-decoration:underline;}

/* Ajustes 0.1.11: popovers junto al botón, sin invadir la columna lateral, y marcador inequívoco */
.kda-box{position:relative;}
.kda-box:has(.kda-modal-toggle:checked),.kda-modal-wrap:has(.kda-modal-toggle:checked){z-index:1000000;}
.kda-modal-wrap{position:relative;display:inline-block;vertical-align:middle;}
.kda-modal-toggle:checked~.kda-modal{display:block;}
.kda-modal-backdrop{position:fixed;inset:0;background:transparent!important;z-index:999998;cursor:default;}
.kda-modal-card{position:absolute!important;left:auto!important;right:0!important;top:calc(100% + 10px)!important;transform:none!important;z-index:999999;width:min(620px,calc(100vw - 32px));max-width:620px;background:#fff;border:1px solid #d7e1ef;border-radius:14px;box-shadow:0 14px 38px rgba(15,23,42,.18);padding:18px;display:grid;gap:10px;color:#1f2937;text-align:left;}
.kda-modal-card::before{content:"";position:absolute;top:-8px;right:32px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #fff;filter:drop-shadow(0 -1px 0 #d7e1ef);}
.kda-empty-results .kda-modal-card{left:0!important;right:auto!important;}
.kda-empty-results .kda-modal-card::before{left:22px;right:auto;}
.kda-modal-close{justify-self:start;border:0;border-radius:8px;background:#1f2937;color:#fff;padding:8px 13px;font-weight:700;cursor:pointer;}
.kda-privacy-button,.kda-source-button{border-radius:999px!important;}
.kda-bar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px;}
.kda-bar-footer .kda-updated{margin:0;}
.kda-meter-wrap{position:relative;padding-top:12px;margin-top:2px;}
.kda-meter{height:18px;border-radius:999px;background:linear-gradient(90deg,#b990a2 0 25%,#9eb5aa 25% 50%,#e63b44 50% 75%,#9147d8 75% 100%)!important;overflow:visible!important;position:relative;}
.kda-meter .kda-meter-marker{position:absolute;top:-5px;bottom:-5px;width:7px;height:auto;background:#111827!important;border:2px solid #fff;border-radius:999px;box-shadow:0 0 0 2px rgba(17,24,39,.35),0 2px 6px rgba(0,0,0,.28);transform:translateX(-50%);display:block;}
.kda-meter .kda-meter-marker::before{content:"";position:absolute;left:50%;top:-11px;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:0;border-bottom:8px solid #111827;}
@media(max-width:700px){.kda-modal-card{left:0!important;right:auto!important;width:min(520px,calc(100vw - 36px));}.kda-modal-card::before{left:22px;right:auto;}.kda-bar-footer{display:block}.kda-bar-footer .kda-source-modal-wrap{margin-top:10px}}

/* Ajustes 0.1.16: marcador animado y mayor contraste visual de la barra */
.kda-meter{
  height:22px!important;
  background:linear-gradient(90deg,
    #c45f86 0 25%,
    #6fae90 25% 50%,
    #f22232 50% 75%,
    #8428d6 75% 100%)!important;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.16),0 1px 2px rgba(15,23,42,.10);
}
.kda-meter::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(0,0,0,.08));
  pointer-events:none;
}
.kda-meter .kda-meter-marker{
  width:8px;
  top:-6px;
  bottom:-6px;
  background:#0f172a!important;
  border:2px solid #fff;
  box-shadow:0 0 0 2px rgba(15,23,42,.55),0 3px 8px rgba(0,0,0,.34);
  animation:kdaMarkerSlide .9s cubic-bezier(.18,.84,.28,1) both;
  z-index:2;
}
.kda-meter .kda-meter-marker::before{
  top:-13px;
  border-left-width:8px;
  border-right-width:8px;
  border-bottom-width:10px;
  border-bottom-color:#0f172a;
}
@keyframes kdaMarkerSlide{
  from{left:0%;}
}
@media (prefers-reduced-motion: reduce){
  .kda-meter .kda-meter-marker{animation:none;}
}

/* Ajustes 0.1.17: velocidad configurable y contraste antes/después del cursor */
.kda-meter{
  height:24px!important;
  background:linear-gradient(90deg,
    #b91c5c 0 25%,
    #15805a 25% 50%,
    #e60012 50% 75%,
    #7e22ce 75% 100%)!important;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.28),0 1px 3px rgba(15,23,42,.18);
}
.kda-meter .kda-meter-fill{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  height:100%;
  display:block;
  border-radius:999px 0 0 999px;
  background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(0,0,0,.26))!important;
  border-right:3px solid rgba(15,23,42,.75)!important;
  box-shadow:inset -10px 0 18px rgba(255,255,255,.18),inset 0 0 0 1px rgba(255,255,255,.18);
  pointer-events:none;
  z-index:1;
}
.kda-meter .kda-meter-marker{
  width:9px!important;
  top:-8px!important;
  bottom:-8px!important;
  background:#0b1220!important;
  border:2px solid #fff!important;
  box-shadow:0 0 0 3px rgba(15,23,42,.62),0 4px 10px rgba(0,0,0,.38)!important;
  animation:kdaMarkerSlide var(--kda-marker-duration,2200ms) cubic-bezier(.16,.82,.22,1) both!important;
  z-index:3!important;
}
.kda-meter .kda-meter-marker::before{
  top:-15px!important;
  border-left-width:9px!important;
  border-right-width:9px!important;
  border-bottom-width:11px!important;
  border-bottom-color:#0b1220!important;
}
@keyframes kdaMarkerSlide{
  from{left:0%;}
  to{left:var(--kda-marker-target,0%);}
}
.kda-meter[style*="--kda-marker-duration:0ms"] .kda-meter-marker{animation:none!important;}
@media (prefers-reduced-motion: reduce){
  .kda-meter .kda-meter-marker{animation:none!important;}
}


/* Ajustes 0.1.18: eliminar doble cursor visual.
   La diferencia antes/después se mantiene por sombreado, no por una línea vertical adicional. */
.kda-meter .kda-meter-fill{
  border-right:0!important;
  background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(0,0,0,.22))!important;
  box-shadow:inset -18px 0 28px rgba(255,255,255,.12),inset 0 0 0 1px rgba(255,255,255,.16)!important;
}
.kda-meter .kda-meter-marker{
  z-index:5!important;
}


/* Ajustes 2.0.0: el contraste avanza sincronizado con el cursor. */
.kda-meter .kda-meter-fill{
  width:var(--kda-marker-target,0%)!important;
  animation:kdaFillSlide var(--kda-marker-duration,2200ms) cubic-bezier(.16,.82,.22,1) both!important;
}
@keyframes kdaFillSlide{
  from{width:0%;}
  to{width:var(--kda-marker-target,0%);}
}
.kda-meter[style*="--kda-marker-duration:0ms"] .kda-meter-fill{animation:none!important;}
@media (prefers-reduced-motion: reduce){
  .kda-meter .kda-meter-fill{animation:none!important;}
}
.kda-version{display:inline-block;font-family:monospace;font-weight:700;background:#eef4ff;color:#1e3a8a;border:1px solid #c7d7ef;border-radius:999px;padding:.2em .55em;}

/* Ajustes 2.0.1: versión visible por defecto en la esquina superior derecha del bloque. */
.kda-public-version{
  position:absolute;
  top:-12px;
  right:14px;
  z-index:20;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:2px 8px;
  border:1px solid #c7d7ef;
  border-radius:999px;
  background:#eef4ff;
  color:#1e3a8a;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:11px;
  font-weight:800;
  line-height:1;
  box-shadow:0 1px 4px rgba(15,23,42,.12);
}
.kda-box{overflow:visible;}


/* Ajustes 2.0.2: barra base gris y revelado progresivo fluido del color. */
@property --kda-progress {
  syntax: '<percentage>';
  inherits: true;
  initial-value: 0%;
}
.kda-meter{
  --kda-progress: var(--kda-marker-target,0%);
  background:#d9dee7!important;
  overflow:visible!important;
  position:relative;
  animation:kdaProgressReveal var(--kda-marker-duration,2200ms) linear both!important;
  will-change:--kda-progress;
}
.kda-meter::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:var(--kda-progress,0%);
  border-radius:999px;
  background:linear-gradient(90deg,
    #b91c5c 0 25%,
    #15805a 25% 50%,
    #e60012 50% 75%,
    #7e22ce 75% 100%)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.20),inset 0 -7px 14px rgba(0,0,0,.14),inset 0 8px 12px rgba(255,255,255,.18);
  pointer-events:none;
  z-index:1;
}
.kda-meter::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.26),rgba(0,0,0,.08));
  pointer-events:none;
  z-index:2;
}
.kda-meter .kda-meter-fill{
  display:none!important;
}
.kda-meter .kda-meter-marker{
  left:var(--kda-progress,0%)!important;
  animation:none!important;
  z-index:5!important;
  will-change:left;
}
@keyframes kdaProgressReveal{
  from{--kda-progress:0%;}
  to{--kda-progress:var(--kda-marker-target,0%);}
}
.kda-meter[style*="--kda-marker-duration:0ms"]{
  animation:none!important;
}
@media (prefers-reduced-motion: reduce){
  .kda-meter{animation:none!important;}
}

/* Ajustes 2.0.3: revelado correcto por tramos.
   La barra parte de gris; debajo quedan fijos los cuatro tramos de color.
   El cursor solo descubre el tramo alcanzado, sin comprimir ni arrastrar todos los colores. */
.kda-meter{
  background:#d7dce5!important;
  overflow:visible!important;
  position:relative!important;
  animation:none!important;
  isolation:isolate;
}
.kda-meter::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,
    #b91c5c 0 25%,
    #15805a 25% 50%,
    #e60012 50% 75%,
    #7e22ce 75% 100%)!important;
  transform-origin:left center!important;
  transform:scaleX(var(--kda-marker-scale,0))!important;
  animation:kdaSegmentReveal var(--kda-marker-duration,2200ms) cubic-bezier(.18,.84,.25,1) both!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.20),inset 0 -7px 14px rgba(0,0,0,.14),inset 0 8px 12px rgba(255,255,255,.16)!important;
  pointer-events:none!important;
  z-index:1!important;
}
.kda-meter::after{
  z-index:2!important;
}
.kda-meter .kda-meter-fill{
  display:none!important;
}
.kda-meter .kda-meter-marker{
  left:var(--kda-marker-target,0%)!important;
  animation:kdaMarkerSlideSmooth var(--kda-marker-duration,2200ms) cubic-bezier(.18,.84,.25,1) both!important;
  z-index:5!important;
}
@keyframes kdaSegmentReveal{
  from{transform:scaleX(0);}
  to{transform:scaleX(var(--kda-marker-scale,0));}
}
@keyframes kdaMarkerSlideSmooth{
  from{left:0%;}
  to{left:var(--kda-marker-target,0%);}
}
.kda-meter[style*="--kda-marker-duration:0ms"]::before,
.kda-meter[style*="--kda-marker-duration:0ms"] .kda-meter-marker{
  animation:none!important;
}
@media (prefers-reduced-motion: reduce){
  .kda-meter::before,
  .kda-meter .kda-meter-marker{animation:none!important;}
}


/* Ajustes 2.0.4: revelado real por máscara, sin comprimir los tramos de color.
   La barra completa de colores permanece fija bajo el gris; la máscara la descubre
   desde la izquierda hasta la posición del cursor. */
.kda-meter{
  background:#d8dee8!important;
  background-image:none!important;
  overflow:visible!important;
  position:relative!important;
  animation:none!important;
  isolation:isolate!important;
}
.kda-meter::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,
    #c02665 0 25%,
    #13845f 25% 50%,
    #e11d2e 50% 75%,
    #8b35d6 75% 100%)!important;
  transform:none!important;
  transform-origin:left center!important;
  clip-path:inset(0 calc(100% - var(--kda-marker-target,0%)) 0 0 round 999px)!important;
  animation:kdaColorRevealClip var(--kda-marker-duration,2200ms) cubic-bezier(.16,.82,.22,1) both!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),inset 0 -7px 14px rgba(0,0,0,.16),inset 0 8px 12px rgba(255,255,255,.15)!important;
  pointer-events:none!important;
  z-index:1!important;
}
.kda-meter::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(0,0,0,.10))!important;
  pointer-events:none!important;
  z-index:2!important;
}
.kda-meter .kda-meter-fill{
  display:none!important;
}
.kda-meter .kda-meter-marker{
  left:var(--kda-marker-target,0%)!important;
  animation:kdaMarkerSlideFluid var(--kda-marker-duration,2200ms) cubic-bezier(.16,.82,.22,1) both!important;
  z-index:6!important;
  will-change:left!important;
}
@keyframes kdaColorRevealClip{
  from{clip-path:inset(0 100% 0 0 round 999px);}
  to{clip-path:inset(0 calc(100% - var(--kda-marker-target,0%)) 0 0 round 999px);}
}
@keyframes kdaMarkerSlideFluid{
  from{left:0%;}
  to{left:var(--kda-marker-target,0%);}
}
.kda-meter[style*="--kda-marker-duration:0ms"]::before,
.kda-meter[style*="--kda-marker-duration:0ms"] .kda-meter-marker{
  animation:none!important;
}
@media (prefers-reduced-motion: reduce){
  .kda-meter::before,
  .kda-meter .kda-meter-marker{animation:none!important;}
}

/* Ajustes 2.0.5: animación fluida con requestAnimationFrame.
   La barra gris cubre toda la escala; los tramos de color están fijos debajo y se descubren
   progresivamente desde la izquierda hasta la posición real del cursor. */
.kda-meter{
  background:#d7dde7!important;
  background-image:none!important;
  border:1px solid rgba(31,41,55,.28)!important;
  box-shadow:inset 0 1px 2px rgba(255,255,255,.75),inset 0 -2px 4px rgba(15,23,42,.16)!important;
  overflow:visible!important;
  position:relative!important;
  isolation:isolate!important;
  animation:none!important;
}
.kda-meter::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,
    #c02665 0 25%,
    #13845f 25% 50%,
    #e11d2e 50% 75%,
    #8b35d6 75% 100%)!important;
  clip-path:inset(0 calc(100% - var(--kda-progress,0%)) 0 0 round 999px)!important;
  animation:none!important;
  transition:none!important;
  box-shadow:inset 0 -7px 14px rgba(0,0,0,.16),inset 0 8px 12px rgba(255,255,255,.15)!important;
  pointer-events:none!important;
  z-index:1!important;
  will-change:clip-path!important;
}
.kda-meter::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.36),rgba(0,0,0,.12))!important;
  pointer-events:none!important;
  z-index:2!important;
}
.kda-meter .kda-meter-fill{display:none!important;}
.kda-meter .kda-meter-marker{
  left:var(--kda-progress,0%)!important;
  animation:none!important;
  transition:none!important;
  z-index:6!important;
  will-change:left!important;
}
.kda-meter[style*="--kda-marker-duration:0ms"]::before,
.kda-meter[style*="--kda-marker-duration:0ms"] .kda-meter-marker{
  animation:none!important;
}
@media (prefers-reduced-motion: reduce){
  .kda-meter::before,
  .kda-meter .kda-meter-marker{animation:none!important;transition:none!important;}
}

/* Ajustes 2.0.17: barra tipo Progress Bar con estado final inline y animación progresiva. */
.kda-meter.kda-meter-progressbar{
  height:22px!important;
  border-radius:999px!important;
  background:#d7dde7!important;
  background-image:none!important;
  border:1px solid rgba(31,41,55,.28)!important;
  box-shadow:inset 0 1px 2px rgba(255,255,255,.75),inset 0 -2px 4px rgba(15,23,42,.16)!important;
  overflow:visible!important;
  position:relative!important;
  isolation:isolate!important;
  animation:none!important;
}
.kda-meter.kda-meter-progressbar::before{content:none!important;display:none!important;}
.kda-meter.kda-meter-progressbar::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.36),rgba(0,0,0,.12))!important;
  pointer-events:none!important;
  z-index:3!important;
}
.kda-meter.kda-meter-progressbar .kda-meter-color{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  height:100%!important;
  width:100%!important;
  border:0!important;
  border-right:0!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,
    #c02665 0 25%,
    #13845f 25% 50%,
    #e11d2e 50% 75%,
    #8b35d6 75% 100%)!important;
  box-shadow:inset 0 -7px 14px rgba(0,0,0,.16),inset 0 8px 12px rgba(255,255,255,.15)!important;
  z-index:1!important;
  pointer-events:none!important;
  will-change:clip-path!important;
}
.kda-meter.kda-meter-progressbar .kda-meter-marker{
  display:block!important;
  position:absolute!important;
  top:-7px!important;
  bottom:-7px!important;
  width:8px!important;
  height:auto!important;
  background:#0f172a!important;
  border:2px solid #fff!important;
  border-radius:999px!important;
  box-shadow:0 0 0 2px rgba(15,23,42,.55),0 3px 8px rgba(0,0,0,.34)!important;
  transform:translateX(-50%)!important;
  animation:none!important;
  transition:none!important;
  z-index:6!important;
  will-change:left!important;
}
.kda-meter.kda-meter-progressbar .kda-meter-marker::before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:-15px!important;
  transform:translateX(-50%)!important;
  border-left:9px solid transparent!important;
  border-right:9px solid transparent!important;
  border-top:0!important;
  border-bottom:11px solid #0b1220!important;
}

/* Modal robusto: cerrado por defecto desde el HTML; JS solo abre/cierra. */
.kda-modal[hidden]{display:none!important;visibility:hidden!important;}
.kda-modal{display:none!important;}
.kda-modal.is-open{display:block!important;visibility:visible!important;}
.kda-modal-trigger{font-family:inherit;line-height:1.2;}
.kda-privacy-button,.kda-source-button{
  display:inline-block!important;
  border:1px solid #c7d7ef!important;
  background:#f2f7ff!important;
  color:#17427a!important;
  border-radius:999px!important;
  padding:8px 12px!important;
  font-size:.92em!important;
  font-weight:700!important;
  cursor:pointer!important;
  white-space:nowrap!important;
  text-decoration:none!important;
}
.kda-privacy-button:hover,.kda-source-button:hover{background:#e6f0ff!important;}
.kda-modal-backdrop{position:fixed!important;inset:0!important;background:transparent!important;z-index:999998!important;cursor:default!important;}
.kda-modal-card{position:absolute!important;left:auto!important;right:0!important;top:calc(100% + 10px)!important;transform:none!important;z-index:999999!important;width:min(620px,calc(100vw - 32px))!important;max-width:620px!important;background:#fff!important;border:1px solid #d7e1ef!important;border-radius:14px!important;box-shadow:0 14px 38px rgba(15,23,42,.18)!important;padding:18px!important;display:grid!important;gap:10px!important;color:#1f2937!important;text-align:left!important;}
.kda-modal-card::before{content:""!important;position:absolute!important;top:-8px!important;right:32px!important;border-left:8px solid transparent!important;border-right:8px solid transparent!important;border-bottom:8px solid #fff!important;filter:drop-shadow(0 -1px 0 #d7e1ef)!important;}
.kda-empty-results .kda-modal-card{left:0!important;right:auto!important;}
.kda-empty-results .kda-modal-card::before{left:22px!important;right:auto!important;}
.kda-modal-close{justify-self:start!important;border:0!important;border-radius:8px!important;background:#1f2937!important;color:#fff!important;padding:8px 13px!important;font-weight:700!important;cursor:pointer!important;}
@media(max-width:700px){.kda-modal-card{left:0!important;right:auto!important;width:min(520px,calc(100vw - 36px))!important;}.kda-modal-card::before{left:22px!important;right:auto!important;}}


/* Ajustes 2.0.17: cursor sincronizado y botón estable para visitantes. */
.kda-meter.kda-meter-progressbar{
  height:20px!important;
  min-height:20px!important;
  background:#d8dde6!important;
  overflow:visible!important;
}
.kda-meter.kda-meter-progressbar .kda-meter-color{
  display:block!important;
  clip-path:inset(0 calc(100% - var(--kda-current,var(--kda-marker-target,0%))) 0 0 round 999px)!important;
  -webkit-clip-path:inset(0 calc(100% - var(--kda-current,var(--kda-marker-target,0%))) 0 0 round 999px)!important;
}
.kda-meter.kda-meter-progressbar .kda-meter-marker{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  left:var(--kda-current,var(--kda-marker-target,0%))!important;
  top:-8px!important;
  bottom:-8px!important;
  width:8px!important;
  min-width:8px!important;
  height:auto!important;
  background:#0f172a!important;
  border:2px solid #fff!important;
  border-radius:999px!important;
  transform:translateX(-50%)!important;
  box-shadow:0 0 0 2px rgba(15,23,42,.55),0 3px 8px rgba(0,0,0,.34)!important;
  z-index:99!important;
  pointer-events:none!important;
}
.kda-meter.kda-meter-progressbar .kda-meter-marker::before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:-14px!important;
  transform:translateX(-50%)!important;
  border-left:8px solid transparent!important;
  border-right:8px solid transparent!important;
  border-bottom:10px solid #0f172a!important;
}
.kda-bar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;}
.kda-source-modal-wrap{display:inline-flex!important;align-items:center!important;justify-content:flex-end!important;}
.kda-source-button,.kda-privacy-button{
  appearance:none!important;-webkit-appearance:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:auto!important;min-width:0!important;max-width:100%!important;
  border:1px solid #bfdbfe!important;background:#eff6ff!important;color:#0f3b73!important;
  border-radius:999px!important;padding:8px 13px!important;
  font-size:14px!important;font-weight:800!important;line-height:1.2!important;
  cursor:pointer!important;text-decoration:none!important;text-align:center!important;
  box-shadow:0 1px 3px rgba(15,23,42,.08)!important;
}
.kda-source-button:hover,.kda-privacy-button:hover{background:#dbeafe!important;color:#082f5f!important;}
@media(max-width:700px){.kda-bar-footer{display:block}.kda-source-modal-wrap{margin-top:10px}.kda-source-button{width:100%!important}}


/* Ajustes 2.0.18: integrar el CSS global que corrige el cursor en visitantes anónimos.
   Mantiene visible el marcador aunque WP Rocket sirva CSS/JS minificado o diferido. */
.kda-meter,
.kda-meter.kda-meter-progressbar {
  position: relative !important;
  overflow: visible !important;
}

.kda-meter .kda-meter-marker,
.kda-meter.kda-meter-progressbar .kda-meter-marker {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  top: -7px !important;
  bottom: -7px !important;
  width: 8px !important;
  min-width: 8px !important;
  height: auto !important;
  left: var(--kda-current, var(--kda-marker-target, 0%)) !important;
  transform: translateX(-50%) !important;
  z-index: 50 !important;
  background: #111827 !important;
  border: 2px solid #ffffff !important;
  border-radius: 999px !important;
  box-shadow: 0 0 0 2px rgba(17, 24, 39, .35), 0 2px 7px rgba(0, 0, 0, .35) !important;
  pointer-events: none !important;
}

.kda-meter .kda-meter-marker::before,
.kda-meter.kda-meter-progressbar .kda-meter-marker::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: -12px !important;
  transform: translateX(-50%) !important;
  border-left: 7px solid transparent !important;
  border-right: 7px solid transparent !important;
  border-bottom: 9px solid #111827 !important;
}

/* KDA 2.0.18: botón del origen de datos con estilo estable en visitantes. */
.kda-source-button,
.kda-privacy-button,
button.kda-source-button,
button.kda-privacy-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: max-content !important;
  border: 1px solid #bfdbfe !important;
  background: #eff6ff !important;
  color: #0f3b73 !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .12) !important;
}

.kda-source-button:hover,
.kda-privacy-button:hover {
  background: #dbeafe !important;
  color: #0b3263 !important;
}

/* KDA 2.0.18: asegurar que el mensaje no salga abierto por defecto. */
.kda-modal[hidden],
.kda-source-panel[hidden],
.kda-origin-panel[hidden],
.kda-modal:not(.is-open) {
  display: none !important;
}

/* KDA 2.0.21: refuerzo final para visitantes anónimos con CSS minificado/cacheado. */
.kda-box .kda-meter.kda-meter-progressbar{
  background:#d8dde6!important;
  background-image:none!important;
  border:1px solid rgba(31,41,55,.28)!important;
  border-radius:999px!important;
  position:relative!important;
  overflow:visible!important;
  isolation:isolate!important;
}
.kda-box .kda-meter.kda-meter-progressbar .kda-meter-color{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(90deg,#c02665 0 25%,#13845f 25% 50%,#e11d2e 50% 75%,#8b35d6 75% 100%)!important;
  border-radius:999px!important;
  z-index:1!important;
  pointer-events:none!important;
}
.kda-box .kda-meter.kda-meter-progressbar::after{z-index:3!important;}
.kda-box .kda-meter.kda-meter-progressbar .kda-meter-marker{z-index:999!important;}
.kda-box button.kda-source-button.kda-modal-trigger{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  max-width:max-content!important;
  border:1px solid #bfdbfe!important;
  background:#eff6ff!important;
  color:#0f3b73!important;
  border-radius:999px!important;
  padding:8px 14px!important;
  font-weight:800!important;
  font-size:14px!important;
  line-height:1.2!important;
  cursor:pointer!important;
  text-decoration:none!important;
  box-shadow:0 1px 3px rgba(15,23,42,.12)!important;
}
.kda-box button.kda-source-button.kda-modal-trigger:hover{
  background:#dbeafe!important;
  color:#0b3263!important;
}

/* KDA 2.0.22: popover limpio para el mensaje de origen de datos */
.kda-bar-footer{position:relative!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;overflow:visible!important;}
.kda-source-modal-wrap{position:relative!important;display:inline-flex!important;justify-content:flex-end!important;align-items:center!important;margin-left:auto!important;overflow:visible!important;}
.kda-source-modal-wrap .kda-modal{position:absolute!important;right:0!important;top:calc(100% + 12px)!important;left:auto!important;z-index:1000001!important;width:min(620px,calc(100vw - 40px))!important;max-width:620px!important;}
.kda-source-modal-wrap .kda-modal[hidden],.kda-source-modal-wrap .kda-modal:not(.is-open){display:none!important;visibility:hidden!important;}
.kda-source-modal-wrap .kda-modal.is-open{display:block!important;visibility:visible!important;}
.kda-source-modal-wrap .kda-modal-backdrop{position:fixed!important;inset:0!important;background:transparent!important;z-index:1000000!important;}
.kda-source-modal-wrap .kda-modal-card{position:relative!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important;width:100%!important;max-width:620px!important;background:#fff!important;border:1px solid #dbe3ef!important;border-radius:14px!important;box-shadow:0 18px 42px rgba(15,23,42,.18)!important;padding:22px 24px 20px!important;display:block!important;color:#1f2937!important;text-align:left!important;line-height:1.55!important;z-index:1000002!important;}
.kda-source-modal-wrap .kda-modal-card::before{content:""!important;position:absolute!important;top:-9px!important;right:34px!important;left:auto!important;width:16px!important;height:16px!important;background:#fff!important;border-left:1px solid #dbe3ef!important;border-top:1px solid #dbe3ef!important;transform:rotate(45deg)!important;filter:none!important;}
.kda-source-modal-wrap .kda-modal-card strong{display:block!important;margin:0 0 14px!important;font-size:1.15em!important;line-height:1.25!important;color:#1f2937!important;}
.kda-source-modal-wrap .kda-modal-body{display:block!important;font-size:1em!important;color:#1f2937!important;}
.kda-source-modal-wrap .kda-modal-body p{margin:.55em 0 1em!important;}
.kda-source-modal-wrap .kda-modal-close{display:inline-flex!important;align-items:center!important;justify-content:center!important;margin-top:8px!important;border:0!important;border-radius:8px!important;background:#1f2937!important;color:#fff!important;padding:9px 14px!important;font-weight:800!important;cursor:pointer!important;}
@media(max-width:700px){.kda-bar-footer{display:block!important}.kda-source-modal-wrap{display:flex!important;justify-content:flex-start!important;margin-top:10px!important;margin-left:0!important}.kda-source-modal-wrap .kda-modal{left:0!important;right:auto!important;width:min(560px,calc(100vw - 36px))!important}.kda-source-modal-wrap .kda-modal-card::before{left:28px!important;right:auto!important}}

/* KDA 2.0.23: selector de votación para barras laterales */
.kda-selector-box{
  padding:18px!important;
}
.kda-selector-box>h3{
  margin:0 0 8px!important;
  font-size:1.15rem!important;
  line-height:1.25!important;
}
.kda-selector-text{
  margin:0 0 12px!important;
  font-size:.95rem!important;
  color:#475569!important;
}
.kda-selector-form{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  margin:0 0 12px!important;
}
.kda-selector-select{
  width:100%!important;
  max-width:100%!important;
  min-height:42px!important;
  border:1px solid #cbd5e1!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#111827!important;
  padding:8px 10px!important;
  font-size:15px!important;
}
.kda-selector-button{
  width:100%!important;
  justify-content:center!important;
}
.kda-selector-current{
  margin:10px 0!important;
  padding:10px 12px!important;
  border-radius:10px!important;
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
  color:#334155!important;
  font-size:.92rem!important;
}
.kda-selector-box .kda-vote-box{
  margin-top:12px!important;
  padding:14px!important;
  box-shadow:none!important;
}
.kda-selector-box .kda-vote-head{
  display:block!important;
}
.kda-selector-box .kda-vote-head h3{
  margin-bottom:8px!important;
  font-size:1.05rem!important;
}
.kda-selector-box .kda-options{
  grid-template-columns:1fr!important;
}
.kda-selector-box .kda-option{
  padding:9px 10px!important;
}
.kda-selector-box .kda-field input,
.kda-selector-box .kda-form input[type="number"]{
  width:100%!important;
}

/* KDA 2.0.26: panel automático de gráficas por curso */
.kda-graphs-panel{
  display:block!important;
  margin:18px 0!important;
}
.kda-graphs-intro{
  margin-bottom:18px!important;
}
.kda-graphs-intro p{
  margin:.35em 0 1em!important;
  color:#475569!important;
}
.kda-graphs-course-title{
  margin:28px 0 12px!important;
  padding:10px 14px!important;
  border-left:5px solid #2fb67d!important;
  background:#f0fdf4!important;
  color:#143b2b!important;
  border-radius:10px!important;
  font-size:1.25rem!important;
  line-height:1.25!important;
}
.kda-graphs-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:start!important;
}
.kda-graph-item .kda-results-box{
  margin:0!important;
  height:100%;
}
.kda-graph-item .kda-results-box h3{
  margin-bottom:8px!important;
  font-size:1.18rem!important;
  line-height:1.25!important;
}
.kda-graph-item .kda-bar-box{
  box-shadow:none!important;
  margin:12px 0!important;
  padding:14px!important;
}
.kda-graph-item .kda-distribution{
  margin-top:14px!important;
}
.kda-graph-item .kda-row{
  grid-template-columns:138px minmax(90px,1fr) 58px!important;
  gap:8px!important;
  font-size:.94rem!important;
}
@media(max-width:900px){
  .kda-graphs-grid{grid-template-columns:1fr!important;}
  .kda-graph-item .kda-row{grid-template-columns:1fr!important;}
}

/* Ajustes 2.0.30: comparador de asignaturas */
.kda-comparator{overflow:visible!important;}
.kda-compare-controls{display:grid;gap:8px;margin:12px 0 14px;}
.kda-compare-search-label{font-weight:800;color:#1f2937;}
.kda-compare-search{width:100%;max-width:520px;border:1px solid rgba(30,41,59,.22);border-radius:10px;padding:10px 12px;font:inherit;}
.kda-compare-help{margin:.2em 0 0;color:#4b5563;font-size:.95em;}
.kda-compare-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:12px 0 18px;}
.kda-compare-choice{display:flex;align-items:flex-start;gap:9px;border:1px solid rgba(30,41,59,.14);border-radius:12px;background:#fff;padding:10px 12px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;}
.kda-compare-choice:hover{background:#f8fffc;border-color:rgba(47,182,125,.35);}
.kda-compare-choice input{margin-top:3px;accent-color:#15805a;}
.kda-compare-choice span{display:block;font-weight:800;color:#172033;line-height:1.25;}
.kda-compare-choice small{display:block;margin-top:3px;color:#64748b;font-size:.86em;}
.kda-compare-choice.kda-hidden-by-search{display:none!important;}
.kda-compare-choice:has(input:checked){background:#ecfdf5;border-color:#34d399;box-shadow:0 0 0 2px rgba(52,211,153,.14);}
.kda-compare-empty{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px dashed #cbd5e1;color:#475569;}
.kda-compare-output{margin-top:12px;}
.kda-compare-bars{display:grid;gap:10px;margin:4px 0 18px;}
.kda-compare-bar{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,2fr) 64px;gap:10px;align-items:center;}
.kda-compare-bar-label{font-weight:800;color:#1f2937;}
.kda-compare-bar-track{height:18px;background:#e5e7eb;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(15,23,42,.12);}
.kda-compare-bar-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#c02665 0 25%,#13845f 25% 50%,#e11d2e 50% 75%,#8b35d6 75% 100%);}
.kda-compare-bar-value{font-weight:800;text-align:right;color:#172033;}
.kda-compare-table{margin-top:10px;}

/* Ajustes 2.0.30: popover de origen de datos calculado por JS y siempre dentro de la ventana */
.kda-source-modal-wrap .kda-modal{
  position:fixed!important;
  left:var(--kda-popover-left,20px)!important;
  top:var(--kda-popover-top,120px)!important;
  right:auto!important;
  width:min(620px,calc(100vw - 40px))!important;
  max-width:620px!important;
  z-index:1000001!important;
}
.kda-source-modal-wrap .kda-modal-card{
  max-height:calc(100vh - 40px)!important;
  overflow:auto!important;
}
.kda-source-modal-wrap .kda-modal-card::before{
  left:var(--kda-popover-arrow-left,28px)!important;
  right:auto!important;
}
@media(max-width:760px){
  .kda-compare-bar{grid-template-columns:1fr;gap:5px;}
  .kda-compare-bar-value{text-align:left;}
  .kda-source-modal-wrap .kda-modal{left:18px!important;right:auto!important;width:calc(100vw - 36px)!important;}
}

/* KDA 2.0.31: aviso de umbrales dentro del bloque de valoración. */
.kda-threshold-notice{
  background:#f8fbff!important;
  border:1px solid #d7e6fb!important;
  color:#244766!important;
  font-size:.94em!important;
  line-height:1.45!important;
  margin:8px 0 12px!important;
}
.kda-vote-head h3{
  line-height:1.25!important;
}
