  /* Cabecera club Estilos Admin Clubs */

    .kv-club-header{display:flex;gap:16px;align-items:center;margin:10px 0 6px}
    .kv-club-logo{width:72px;height:72px;border:1px solid #eee;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
    .kv-club-logo img{width:100%;height:100%;object-fit:contain;padding:8px;display:block}
    .kv-club-title{margin:0;font-size:22px;line-height:1.2}
    .kv-club-sub{margin:2px 0 6px;color:#666}
    .kv-club-links a{font-size:13px}

    /* Topbar + filtros */
    .kv-act-topbar{

      display:flex;
      align-items:flex-start;
      gap:12px;
      flex-wrap:wrap;
      margin:8px 0 12px;
      background: #fff;
      padding: 10px;
      border-radius: 10px;

    }

    .kv-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom: 10px}
    .kv-filters input,.kv-filters select{
      height:36px;border:1px solid #e6e8eb;border-radius:999px;padding:0 12px;font-size:13px;background:#fff;width: 18%;
    }
    .kv-switch{display:flex;align-items:center;gap:6px;font-size:13px}

    /* Grid y tarjeta */
    .kv-act-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
    .kv-act-card{border:1px solid #e6e8eb;background:#fff;border-radius:18px;padding:18px 20px;box-shadow:0 1px 2px rgba(16,24,40,0.04);transition:box-shadow .25s, transform .25s}
    .kv-act-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(16,24,40,.08)}
    .kv-act-title{margin:0 0 16px;font-size:20px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}
    .kv-act-meta{margin:0 0 2px;font-weight:700}
    .kv-dot{margin:0 6px}
    .kv-act-date{margin:0;color:#6b7280;font-size:14px}
    .kv-act-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
    .kv-foot-counters{margin-top:10px;padding-top:10px;border-top:1px dashed #e6e8eb;font-size:12px;color:#6b7280;display:flex;gap:16px}

    /* Botones */
    .kv-btn{--kv-primary:#22bada;display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:999px;border:1px solid #dfe3e6;background:#fff;color:#111;font-weight:600;letter-spacing:.1px;transition:transform .12s,background-color .2s,border-color .2s,color .2s;text-decoration:none}
    .kv-btn:active{transform:translateY(1px)}
    .kv-btn-primary{background:var(--kv-primary);border-color:var(--kv-primary);color:#fff}
    .kv-btn-primary:hover,.kv-btn-primary:focus{background:#000;border-color:#000;color:#fff}
    .kv-btn-ghost{background:#f8fbfc;border-color:#cfe9f0;color:#127a8e;font-size:12px}
    .kv-btn-ghost:hover,.kv-btn-ghost:focus{background:#000;border-color:#000;color:#fff}

    .kv-btn-danger{ background:#fb8579 !important;border-color:#fb8579;color:#b11428;font-size: 12px;font-weight: normal;}
    .kv-btn-danger:hover,.kv-btn-danger:focus{background:#fb8579 !important;border-color:#fb8579 !important;color:#fff;font-size: 12px;font-weight: normal;}
    .kv-btn-danger[disabled]{opacity:.45;cursor:not-allowed}

    .kv-btn-danger .kv-btn-eliminar{
      color:#fb8579 !important; 
      font-size: 12px !important;
      font-weight: normal !important;
    }

    .kv-btn-csv{height:28px;padding:0 10px;font-size:12px} /* csv pequeño y delicado */

    /* Badge Finalizado */
    .kv-badge-status{display:inline-block;padding:4px 10px;border-radius:999px;background:#eef7ff;color:#0b6b9a;border:1px solid #d3ecff;font-weight:700;font-size:12px;vertical-align:middle}
    .kv-badge-finalizado{background:#f6f7f8;color:#666;border-color:#e4e6e8}

    /* Pager */
    .kv-pager{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:wrap}
    .kv-pager .kv-page-btn,.kv-pager .kv-page-num{height:32px;padding:0 10px;border:1px solid #dfe3e6;border-radius:999px;background:#fff;cursor:pointer;font-size:13px}
    .kv-pager .kv-page-num.is-active{background:var(--kv-primary);border-color:var(--kv-primary);color:#fff;font-weight:700}
    .kv-pager button[disabled]{opacity:.45;cursor:not-allowed}

    /* Modal */
    .kv-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999}
    .kv-modal[hidden]{display:none}
    .kv-modal-dialog{background:#fff;border-radius:18px;max-width:680px;width:min(92vw,680px);padding:18px 20px;border:1px solid #e6e8eb;box-shadow:0 20px 40px rgba(16,24,40,.16)}
    .kv-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}

    .kv-form-edit label{display:flex;flex-direction:column;gap:6px;margin:8px 0;font-weight:600}
    .kv-form-edit input,.kv-form-edit select,.kv-form-edit textarea{height:42px;border-radius:10px;border:1px solid #e6e8eb;padding:8px 12px}
    .kv-form-edit textarea{height:auto;min-height:90px}
    .kv-fieldset{border:1px dashed #e6e8eb;padding:10px;border-radius:10px;margin:8px 0}
    .kv-radio{margin-right:16px}


    .kv-form-edit input{height:42px;border-radius:10px;border:1px solid #e6e8eb;padding:8px 12px}
    .kv-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
    .kv-table-wrap{max-height:60vh;overflow:auto}
    .kv-table{width:100%;border-collapse:collapse}
    .kv-table th,.kv-table td{border-bottom:1px solid #eee;padding:8px;text-align:left;font-size:14px}

    .kv-act-meta{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0}
    .kv-item{display:inline-flex;align-items:center;gap:6px;margin-right:12px;white-space:wrap;font-size:14px}
    .kv-i{font-size:14px;line-height:1;display:inline-block}

    .kv-act-meta{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0}
    .kv-item{display:inline-flex;align-items:center;gap:6px;margin-right:12px;white-space:wrap}
    .kv-i{font-size:14px;line-height:1;display:inline-block}
    .kv-act-obs{display:flex;align-items:flex-start;gap:8px;margin-top:6px;color:#475569;font-size:13px}
    .kv-obs-text{line-height:1.35}




    /* móvil: casi full screen */
    @media (max-width: 480px){

      .kv-act-topbar{ 
        padding: 0px 0px 10px 0px;
      }

      .kv-filters input, .kv-filters select {
        width: 47%;
        margin-bottom: 10px;
      }

      #kv-hide-past{
        width: 20px !important;
      }


    }

     button.kv-btn {
      font-size:13px !important
     } 

    button.kv-btn-danger {
      font-size:13px !important
     } 

     /* Título + badges (precio/gratis + finalizado) */
    .kv-title-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:6px;
    }
    .kv-badges-right{
      display:flex;
      align-items:center;
      gap:8px;
    }

    .kv-price-badge,
    .kv-free-badge{
      display:inline-block;
      padding:4px 10px;
      border-radius:999px;
      font-size:12px;
      font-weight:700;
      line-height:1;
      white-space:nowrap;
      border:1px solid transparent;
    }

    .kv-price-badge{
      background:#fff6e6;
      color:#8a4b00;
      border-color:#ffd699;
    }

    .kv-free-badge{
      background:#eef7ee;
      color:#0a7a27;
      border-color:#bfe3c1;
    }

    .kv-rank-wrap{margin-top:18px}
    .kv-rank{border:1px solid #e6e8eb;border-radius:14px;background:#fff;padding:12px}
    .kv-rank *{font-size:14px}
    .kv-rank-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
    .kv-rank-tabs{display:flex;gap:6px}
    .kv-rank-tab{height:28px;padding:0 10px;border:1px solid #dfe3e6;border-radius:999px;background:#fff;cursor:pointer}
    .kv-rank-tab.is-active{background:#22bada;border-color:#22bada;color:#fff;font-weight:700}
    .kv-rank-controls{display:flex;gap:8px;align-items:center}
    .kv-rank-controls label{font-weight:700;display:inline-flex;align-items:center;gap:6px}
    .kv-rank-controls select{height:28px;border:1px solid #e6e8eb;border-radius:8px;padding:0 8px;background:#fff}

    .kv-rank-list{list-style:none;padding:0;margin:6px 0 8px;display:grid;gap:6px}
    .kv-rank-list li{display:flex;align-items:center;justify-content:space-evenly;border:1px dashed #eef1f4;border-radius:10px;padding:6px 10px}
    .kv-rank-pos{font-weight:800;color:#0b6b9a;margin-right:8px}
    .kv-rank-count{font-weight:800;color:#111;background:#f6f7f9;border:1px solid #eceff3;border-radius:999px;padding:2px 8px}

    .kv-rank-pager{display:flex;align-items:center;gap:8px;justify-content:flex-end}
    .kv-rank-empty{color:#667085}

    /* ===== Radios de "Tipo de acceso" compactos y alineados ===== */

    /* Aplica tanto en el form principal (.kv-form) como en el modal (.kv-form-edit) */
    .kv-form .kv-fieldset,
    .kv-form-edit .kv-fieldset{
      display: flex;
      flex-wrap: wrap;
      gap: 10px 18px;
      align-items: center;
    }

    .kv-form .kv-fieldset legend,
    .kv-form-edit .kv-fieldset legend{
      flex-basis: 100%;
      margin-bottom: 4px;
    }

    .kv-form .kv-radio,
    .kv-form-edit .kv-radio{
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-right: 10px;
      font-weight: 600;
    }

    /* Tamaño y color del radio */
    .kv-form .kv-radio input[type="radio"],
    .kv-form-edit .kv-radio input[type="radio"]{
      width: 16px;
      height: 16px;
      margin: 0;
      accent-color: #22bada;          /* color de marca */
      transform: none !important;      /* por si el tema los escala */
      box-shadow: none !important;
    }

  /* Estado deshabilitado (cuando no se puede cambiar) */
  .kv-form .kv-radio input[type="radio"]:disabled,
  .kv-form-edit .kv-radio input[type="radio"]:disabled{
    opacity: .55;
    cursor: not-allowed;
  }

  .kv-fieldset input[type="radio"] { appearance: auto !important; -webkit-appearance: auto !important; }


  /* ===== Modal: compacto + scroll ===== */
  .kv-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:12px}
  .kv-modal[hidden]{display:none}

  .kv-modal-dialog{
    background:#fff;border:1px solid #e6e8eb;border-radius:16px;
    width:min(96vw,760px);max-height:92vh; /* <- alto máximo con scroll */
    display:flex;flex-direction:column;box-shadow:0 20px 40px rgba(16,24,40,.18);
    font-size:14px;
  }

  .kv-modal-head{
    position:sticky;top:0;z-index:1;background:#fff;
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 16px;border-bottom:1px solid #eef1f3;
  }

  #kv-modal-body{
    overflow:auto; /* <- el scroll vive aquí */
    padding:12px 16px; overscroll-behavior:contain;
  }

  /* ===== Form de edición: grid compacto ===== */
  .kv-form-edit{
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap:10px 12px;
    align-items:start;
  }

  .kv-form-edit label{
    display:flex;flex-direction:column;gap:6px;margin:0; /* menos margen */
    font-weight:600;
  }

  .kv-form-edit input,
  .kv-form-edit select,
  .kv-form-edit textarea{
    height:36px; /* antes 42px */
    border-radius:8px;border:1px solid #e6e8eb;padding:6px 10px;font-size:14px;
  }

  .kv-form-edit textarea{
    min-height:84px;height:auto;resize:vertical;
    grid-column:1 / -1; /* Observaciones ancho completo */
  }

  /* fieldset de “tipo de acceso” y secciones largas en ancho completo */
  .kv-form-edit .kv-fieldset{grid-column:1 / -1;border:1px dashed #e6e8eb;padding:10px;border-radius:10px;margin:0}
  .kv-form-edit .kv-radio{display:inline-flex;align-items:center;gap:8px}

  /* acciones pegadas al fondo y separadas del contenido */
  .kv-modal-actions{
    position:sticky;bottom:0;z-index:1;background:#fff;
    display:flex;gap:8px;justify-content:flex-end;
    padding:10px 0 0;border-top:1px solid #eef1f3;margin-top:12px;
  }

  /* botones compactos */
  .kv-btn{height:32px;padding:0 12px;border-radius:999px;border:1px solid #dfe3e6;background:#fff;font-weight:600}
  .kv-btn-primary{background:#22bada;border-color:#22bada;color:#fff}
  .kv-btn-primary:hover,.kv-btn-primary:focus{background:#000;border-color:#000;color:#fff}
  .kv-btn-ghost{background:#f8fbfc;border-color:#cfe9f0;color:#127a8e}
  .kv-btn-danger{background:#fbeaec;border-color:#efc2c9;color:#b11428}

  /* móvil: casi full screen */
  @media (max-width: 480px){
    .kv-modal{padding:0}
    .kv-modal-dialog{width:100vw;max-height:100vh;border-radius:0}
    #kv-modal-body{padding:12px}
  }

  .kv-geo-grid{
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap:10px 12px; align-items:start;
  }

  .kv-geo-actions{display:flex;gap:8px;align-items:center}

 .kv-map{width: 100%;height:260px;border:1px solid #e6e8eb;border-radius:12px;margin-top:8px}
  /* Y, por si acaso, el modal scroll: */
  #kv-modal .kv-modal-dialog{max-height:90vh;overflow:auto}

@media (max-width:480px){ .kv-map{height:220px} }

  /* ponlo donde tienes los estilos del modal */
  #kv-map{ height: 260px; border-radius: 12px; border:1px solid #e6e8eb; }
  /* Opcional, en tu CSS */
  .kv-modal .leaflet-control-container { z-index: 10; }
  .leaflet-control-geocoder { max-width: 260px; }


 /* ====== Marquee Kanvur (lento) ====== */
  .kv-marquee{
    --kv-marquee-speed: 40s;      /* más lento (ajusta a 60s/70s si quieres aún más) */
    --kv-marquee-gap: 2rem;       /* espacio entre duplicados */
    --kv-marquee-bg: background: #22bada;
    --kv-marquee-border: background: #22bada;
    --kv-marquee-fg: background: #22bada;
    position: relative;
    overflow: hidden;
    width: 100%;
    background: var(--kv-marquee-bg);
    border: 1px solid var(--kv-marquee-border);
    border-radius: 12px;
    color: var(--kv-marquee-fg);
    line-height: 1.4;
    padding: 1px 1px;
    font-size: 12px;
    background: #22bada;
    color:#fff
  }

  .kv-marquee::before,
  .kv-marquee::after{
    content: "";
    position: absolute;
    top: 0; bottom: 0;
    width: 40px;
    pointer-events: none;
    z-index: 2;
  }
  .kv-marquee::before{
    left: 0;
    background: linear-gradient(to right, var(--kv-marquee-bg) 0%, transparent 100%);
  }
  .kv-marquee::after{
    right: 0;
    background: linear-gradient(to left, var(--kv-marquee-bg) 0%, transparent 100%);
  }

  .kv-marquee__track{
    display: inline-flex;
    align-items: center;
    gap: var(--kv-marquee-gap);
    white-space: nowrap;
    will-change: transform;
    animation: kv-marquee-scroll var(--kv-marquee-speed) linear infinite;
  }
  .kv-marquee:hover .kv-marquee__track{ animation-play-state: paused; }

  .kv-marquee__item{ display: inline-block; padding-right: .5rem; }

  .kvea-invite-box {
    margin-bottom: 20px;
    padding: 15px;
    border-left: 4px solid #0073aa;
    background: #f5f5f5;
}

.kvea-invite-box-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    max-width: 700px;
}

.kvea-invite-input {
    flex: 1;
    min-width: 240px;
    padding: 6px 8px;
}

.kvea-invite-help {
    margin-top: 8px;
    font-size: 13px;
    color: #555;
}


  @media (prefers-reduced-motion: reduce){
    .kv-marquee__track{ animation: none; }
  }

  @keyframes kv-marquee-scroll{
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }

  @media (max-width: 768px){
    .kv-marquee{ font-size: 13px; padding: .6rem .8rem; }
    .kv-marquee::before, .kv-marquee::after{ width: 24px; }
  }


  .kvea-retos-wrapper {
    margin-top: 20px;
}

.kvea-retos-admin-form {
    margin-bottom: 25px;
    padding: 15px;
    border: 1px solid #ddd;
    background: #fafafa;
}

.kvea-retos-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 15px;
}
.kvea-retos-table th,
.kvea-retos-table td {
    border: 1px solid #ddd;
    padding: 6px 8px;
}
.kvea-retos-table th {
    background: #f0f0f0;
}

.kvea-retos-actions .kvea-btn {
    margin: 2px 3px;
}

/* Modal */
.kvea-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
}
.kvea-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
}
.kvea-modal-dialog {
    position: relative;
    max-width: 80%;
    margin: 40px auto;
    background: #fff;
    padding: 15px 20px;
    border-radius: 4px;
}
.kvea-modal-close {
    position: absolute;
    top: 5px;
    right: 10px;
    background: transparent;
    border: 0;
    font-size: 20px;
    cursor: pointer;
}
.kvea-retos-ranking-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
}
.kvea-retos-ranking-table th,
.kvea-retos-ranking-table td {
    border: 1px solid #ddd;
    padding: 4px 6px;
}
.kvea-retos-ranking-table th {
    background: #f5f5f5;
}
