.ludoteca{width:100%;max-width:1600px;margin:0 auto;padding:var(--spacing-8) var(--spacing-4)}.ludoteca h1{font-family:var(--font-family-heading);font-size:var(--font-size-4xl);color:var(--color-brand-primary);text-align:center;margin-bottom:var(--spacing-6)}.ludoteca p{text-align:center;max-width:800px;margin:0 auto var(--spacing-4)}.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-6);margin:var(--spacing-8) 0;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.filter-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-neutral-700);margin-left:var(--spacing-1)}.search-input,.filter-select{padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-neutral-300);border-radius:var(--border-radius-md);font-size:var(--font-size-base);color:var(--color-neutral-900);background-color:var(--color-neutral-white);transition:var(--transition-base);min-width:200px;height:42px}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--color-brand-primary);box-shadow:0 0 0 3px var(--color-brand-primary-light)}.results-count{text-align:center;color:var(--color-neutral-600);margin-bottom:var(--spacing-6)}.no-results{text-align:center;color:var(--color-neutral-600);font-style:italic;margin-top:var(--spacing-8)}.contenedor-juegos{display:flex;flex-wrap:wrap;justify-content:center;margin-top:var(--spacing-6);gap:var(--spacing-4)}.contenedor-juegos .tarjeta-juego{background-image:linear-gradient(180deg,var(--color-neutral-50) 0%,var(--color-neutral-100) 100%);display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:minmax(2.5em,1fr) auto auto;gap:var(--spacing-3);grid-template-areas:"Title Title Title" "Cover Content Content" "Cover Content Content";background-color:var(--color-neutral-white);border:1px solid var(--color-neutral-300);border-radius:var(--border-radius-lg);overflow:hidden;max-width:460px;width:100%;box-shadow:var(--shadow-md);padding:var(--spacing-4);cursor:pointer;transition:var(--transition-base)}.contenedor-juegos .tarjeta-juego .cover{grid-area:Cover;border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.contenedor-juegos .tarjeta-juego .title{grid-area:Title;padding-bottom:var(--spacing-2);font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);border-bottom:1px solid var(--color-neutral-200);margin-bottom:var(--spacing-2)}.contenedor-juegos .tarjeta-juego .content{grid-area:Content}.contenedor-juegos .tarjeta-juego .content p{font-size:var(--font-size-base);margin-top:0;color:var(--color-neutral-700);line-height:1.5;text-align:left}.contenedor-juegos .tarjeta-juego .votos-container{grid-column:1 / -1;display:flex;gap:var(--spacing-4);margin-top:var(--spacing-2);padding-top:var(--spacing-3);border-top:1px solid var(--color-neutral-200)}.contenedor-juegos .tarjeta-juego .voto-item{display:flex;align-items:center}.contenedor-juegos .tarjeta-juego .voto-btn{display:flex;align-items:center;gap:var(--spacing-2);background:none;border:1px solid var(--color-neutral-300);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--border-radius-full);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-neutral-600);transition:var(--transition-base)}.contenedor-juegos .tarjeta-juego .voto-btn:hover:not(:disabled){background-color:var(--color-neutral-50);border-color:var(--color-brand-secondary);color:var(--color-brand-secondary);transform:translateY(-2px)}.contenedor-juegos .tarjeta-juego .voto-btn:active:not(:disabled){transform:translateY(0)}.contenedor-juegos .tarjeta-juego .voto-btn:disabled{opacity:.5;cursor:not-allowed}.contenedor-juegos .tarjeta-juego .voto-btn.star-btn.active{background-color:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning)}.contenedor-juegos .tarjeta-juego .voto-btn.request-btn.active{background-color:var(--color-success-bg);border-color:var(--color-success);color:var(--color-success)}.contenedor-juegos .tarjeta-juego:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px);border-color:var(--color-brand-secondary)}.toast-container{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:9999;width:90%;max-width:400px;pointer-events:none}.toast-message{padding:1rem;border-radius:8px;background-color:var(--color-neutral-800);color:#fff;box-shadow:0 4px 6px #0000001a;text-align:center;font-weight:700;opacity:0;animation:fadeInOut 4s ease-in-out forwards}.toast-message.error{background-color:var(--color-error)}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-20px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.favorites-section{background-color:var(--color-neutral-50);padding:1.5rem;border-radius:12px;border:1px dashed var(--color-neutral-300);margin-bottom:2rem}.favorites-section h2{font-size:1.5rem;color:var(--color-info);margin-top:0;margin-bottom:1rem;text-align:center}.section-divider{border:0;height:1px;background:var(--color-neutral-200);margin:2rem 0}.favorites-list{display:flex;flex-direction:column;gap:.5rem}.favorite-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:var(--color-neutral-white);border:1px solid var(--color-neutral-200);border-radius:8px;cursor:pointer;transition:all .2s ease}.favorite-item:hover{border-color:var(--color-info);box-shadow:var(--shadow-sm);transform:translate(2px)}.favorite-info{display:flex;flex-direction:column}.favorite-name{font-weight:700;color:var(--color-neutral-800)}.favorite-system{font-size:.85rem;color:var(--color-neutral-600)}.favorite-remove-btn{background:none;border:none;color:var(--color-warning);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.favorite-remove-btn:hover{background-color:var(--color-warning-bg);transform:scale(1.1)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4);animation:fadeIn .2s ease-out}.modal-content{background:var(--color-neutral-white);border-radius:var(--border-radius-lg);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-xl);animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.modal-close{position:absolute;top:var(--spacing-4);right:var(--spacing-4);background:var(--color-neutral-100);border:none;cursor:pointer;color:var(--color-neutral-600);z-index:10;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:var(--transition-base)}.modal-close:hover{background-color:var(--color-neutral-200);color:var(--color-neutral-900);transform:rotate(90deg)}.modal-body{padding:var(--spacing-8)}.modal-grid{display:grid;grid-template-columns:260px 1fr;gap:var(--spacing-8);align-items:start}.modal-cover{display:flex;justify-content:center;background:var(--color-neutral-50);border-radius:var(--border-radius-md);padding:var(--spacing-4);box-shadow:inset 0 2px 4px #0000000d}.modal-cover img{width:100%;height:auto;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);transition:transform .3s ease}.modal-cover img:hover{transform:scale(1.02)}.cover-placeholder{width:100%;aspect-ratio:2/3;display:flex;align-items:center;justify-content:center;color:var(--color-neutral-400);border:2px dashed var(--color-neutral-300);border-radius:var(--border-radius-md)}.modal-info h1{margin-top:0;margin-bottom:var(--spacing-2);font-family:var(--font-family-heading);font-size:var(--font-size-3xl);color:var(--color-brand-primary);line-height:1.1;letter-spacing:-.02em}.info-grid{display:flex;flex-direction:column;gap:var(--spacing-4);margin-bottom:var(--spacing-8)}.detail-item{display:flex;flex-direction:column;gap:var(--spacing-1)}.detail-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-600);font-weight:var(--font-weight-bold)}.detail-value{font-size:var(--font-size-lg);color:var(--color-neutral-900);line-height:1.5;font-weight:var(--font-weight-medium)}.detail-value .game-link{font-size:inherit;color:var(--color-info);margin-top:0;padding:0;display:inline-flex}.detail-value .game-link:hover{background:transparent;text-decoration:underline;color:var(--color-info)}.game-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-info);font-weight:600;text-decoration:none;padding:.25rem .5rem;border-radius:var(--border-radius-sm);transition:var(--transition-base);margin-top:var(--spacing-2)}.game-link:hover{background-color:var(--color-info-bg)}.modal-votos{display:flex;gap:var(--spacing-4);flex-wrap:wrap;margin-top:var(--spacing-4);padding-top:var(--spacing-6);border-top:1px solid var(--color-neutral-200)}.modal-votos .voto-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:.75rem 1.25rem;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-full);cursor:pointer;transition:var(--transition-base);border:1px solid var(--color-neutral-300);background-color:var(--color-neutral-white);color:var(--color-neutral-700)}.modal-votos .voto-btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.modal-votos .voto-btn:active{transform:translateY(-1px)}.modal-votos .star-btn:hover,.modal-votos .star-btn.active{border-color:var(--color-warning);background-color:var(--color-warning-bg);color:var(--color-warning)}.modal-votos .star-btn.active:hover{background-color:#ffe0b2}.modal-votos .request-btn:hover,.modal-votos .request-btn.active{border-color:var(--color-success);background-color:var(--color-success-bg);color:var(--color-success)}.modal-votos .request-btn.active:hover{background-color:#c8e6c9}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.modal-grid{grid-template-columns:1fr}.modal-cover{max-width:200px;margin:0 auto}}
