/* ── Novias Subastas — Estilos frontend ────────────────────────────────── */
:root {
    --ns-primary:   #c0165a;
    --ns-primary-d: #960e44;
    --ns-accent:    #ff6b9d;
    --ns-bg:        #fff5f8;
    --ns-border:    #f0c0d0;
    --ns-text:      #2d2d2d;
    --ns-muted:     #888;
    --ns-radius:    12px;
    --ns-shadow:    0 4px 20px rgba(192,22,90,.12);
}

* { box-sizing: border-box; }

/* ── Contenedor global ─────────────────────────────────────────────────── */
.ns-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px 16px;
}

/* ── Box / tarjeta genérica ──────────────────────────────────────────────── */
.ns-box {
    background: #fff;
    border: 1px solid var(--ns-border);
    border-radius: var(--ns-radius);
    padding: 32px;
    max-width: 480px;
    margin: 30px auto;
    box-shadow: var(--ns-shadow);
}
.ns-box-wide { max-width: 780px; }

.ns-box h2 {
    margin-top: 0;
    color: var(--ns-primary);
    font-size: 1.5rem;
    border-bottom: 2px solid var(--ns-border);
    padding-bottom: 12px;
}

/* ── Formularios ─────────────────────────────────────────────────────────── */
.ns-form .ns-campo { margin-bottom: 18px; }
.ns-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--ns-text);
    font-size: .9rem;
}
.ns-form input[type="text"],
.ns-form input[type="tel"],
.ns-form input[type="number"],
.ns-form input[type="password"],
.ns-form input[type="date"],
.ns-form select,
.ns-form textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--ns-border);
    border-radius: 8px;
    font-size: 1rem;
    color: var(--ns-text);
    transition: border-color .2s;
    background: #fff;
}
.ns-form input:focus,
.ns-form select:focus,
.ns-form textarea:focus {
    outline: none;
    border-color: var(--ns-primary);
}

/* Teléfono con código */
.ns-tel { display: flex; gap: 8px; }
.ns-tel select { width: auto; min-width: 130px; flex-shrink: 0; }
.ns-tel input  { flex: 1; }

/* Grid 2 columnas */
.ns-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 20px;
}
@media(max-width:600px){ .ns-grid-2 { grid-template-columns: 1fr; } }

/* ── Botones ─────────────────────────────────────────────────────────────── */
.ns-btn {
    display: inline-block;
    background: var(--ns-primary);
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: 11px 24px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s, transform .1s;
    margin-top: 8px;
    margin-right: 8px;
}
.ns-btn:hover { background: var(--ns-primary-d); transform: translateY(-1px); }
.ns-btn-outline {
    background: transparent;
    border: 2px solid var(--ns-primary);
    color: var(--ns-primary) !important;
}
.ns-btn-outline:hover { background: var(--ns-bg); }
.ns-btn-danger { background: #c00; }
.ns-btn-danger:hover { background: #900; }
.ns-btn-sm { padding: 7px 14px; font-size: .85rem; }

/* ── Mensajes ────────────────────────────────────────────────────────────── */
.ns-error  { background: #fdecea; border: 1px solid #f5c6cb; color: #721c24; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; }
.ns-exito  { background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; }
.ns-mensaje { padding: 12px 16px; border-radius: 8px; margin-top: 12px; }

/* ── Fotos upload ────────────────────────────────────────────────────────── */
.ns-fotos label { font-weight: 600; margin-bottom: 10px; display: block; }
.ns-fotos-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    overflow: hidden;
}
@media(max-width:700px){ .ns-fotos-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media(max-width:420px){ .ns-fotos-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.ns-foto-item { display: flex; flex-direction: column; gap: 6px; min-width: 0; overflow: hidden; }
.ns-foto-item img.ns-preview {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 8px;
    border: 2px solid var(--ns-border);
}
.ns-foto-item input[type="file"] {
    font-size: .72rem;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    display: block;
}

/* ── Listado subastas ────────────────────────────────────────────────────── */
.ns-listado-wrap { padding: 10px 0; }

.ns-filtros { margin-bottom: 24px; }
.ns-filtro-form select {
    padding: 9px 14px;
    border: 1.5px solid var(--ns-border);
    border-radius: 8px;
    font-size: 1rem;
    background: #fff;
    cursor: pointer;
}

.ns-grid-subastas {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
@media(max-width:900px){ .ns-grid-subastas { grid-template-columns: repeat(2,1fr); } }
@media(max-width:500px){ .ns-grid-subastas { grid-template-columns: repeat(2,1fr); gap:12px; } }

.ns-card {
    background: #fff;
    border: 1px solid var(--ns-border);
    border-radius: var(--ns-radius);
    overflow: hidden;
    box-shadow: var(--ns-shadow);
    transition: transform .2s, box-shadow .2s;
}
.ns-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(192,22,90,.2); }

.ns-card-foto {
    width: 100%;
    padding-top: 130%;
    background-size: cover;
    background-position: center;
    background-color: var(--ns-bg);
}

.ns-card-info {
    padding: 14px;
}
.ns-card-info h3 {
    margin: 0 0 4px;
    font-size: 1rem;
    color: var(--ns-text);
}
.ns-card-info p {
    margin: 0 0 10px;
    color: var(--ns-muted);
    font-size: .85rem;
}

/* Paginación */
.ns-paginacion { margin-top: 30px; text-align: center; }
.ns-pag-btn {
    display: inline-block;
    width: 38px;
    height: 38px;
    line-height: 38px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid var(--ns-border);
    color: var(--ns-primary);
    text-decoration: none;
    margin: 3px;
    font-weight: 600;
    transition: background .2s, color .2s;
}
.ns-pag-btn:hover,
.ns-pag-activa {
    background: var(--ns-primary);
    color: #fff !important;
    border-color: var(--ns-primary);
}

.ns-vacio { text-align: center; padding: 40px; color: var(--ns-muted); font-size: 1.1rem; }

/* ── Perfil de subasta ───────────────────────────────────────────────────── */
.ns-perfil-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
@media(max-width:768px){ .ns-perfil-wrap { grid-template-columns: 1fr; } }

/* Galería */
.ns-galeria-principal img {
    width: 100%;
    border-radius: var(--ns-radius);
    aspect-ratio: 3/4;
    object-fit: cover;
    box-shadow: var(--ns-shadow);
}
.ns-galeria-thumbs {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}
.ns-thumb {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: .7;
    transition: opacity .2s, border-color .2s;
}
.ns-thumb:hover,
.ns-thumb.activa { opacity: 1; border-color: var(--ns-primary); }

/* Info perfil */
.ns-perfil-info h1 {
    color: var(--ns-primary);
    margin-top: 0;
    font-size: 1.8rem;
}
.ns-edad {
    font-size: 1rem;
    color: var(--ns-muted);
    font-weight: 400;
}
.ns-ubicacion { color: var(--ns-muted); font-size: 1rem; }
.ns-cierre { color: #d97706; font-size: .9rem; }
.ns-descripcion { margin: 16px 0; line-height: 1.7; }

/* Pujas */
.ns-pujas-box,
.ns-ranking-box {
    background: var(--ns-bg);
    border: 1px solid var(--ns-border);
    border-radius: var(--ns-radius);
    padding: 20px;
    margin-top: 20px;
}
.ns-pujas-box h2,
.ns-ranking-box h2 {
    margin-top: 0;
    color: var(--ns-primary);
    font-size: 1.2rem;
}

.ns-saldo-info { font-size: .95rem; margin-bottom: 16px; }
.ns-link-comprar { margin-left: 10px; color: var(--ns-primary); font-size: .85rem; }

.ns-emoji-botones {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ns-emoji-btn {
    background: #fff;
    border: 2px solid var(--ns-border);
    border-radius: 10px;
    padding: 10px 16px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    transition: border-color .2s, box-shadow .2s, transform .1s;
    min-width: 80px;
}
.ns-emoji-btn:hover {
    border-color: var(--ns-primary);
    box-shadow: 0 2px 10px rgba(192,22,90,.2);
    transform: translateY(-2px);
}
.ns-emoji-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.ns-emoji-btn.ns-cargando { opacity: .7; }
.ns-emoji-icon { font-size: 1.8rem; line-height: 1; }
.ns-emoji-nombre { font-size: .75rem; color: var(--ns-muted); }
.ns-emoji-costo { font-size: .8rem; font-weight: 700; color: var(--ns-primary); }

/* Ranking */
.ns-ranking { list-style: none; padding: 0; margin: 0; }
.ns-ranking li {
    padding: 10px 0;
    border-bottom: 1px solid var(--ns-border);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .95rem;
}
.ns-ranking li:last-child { border-bottom: none; }
.ns-rank-num { font-size: 1.2rem; }
.ns-rank-emojis { font-size: 1.2rem; margin-left: auto; }

/* ── Planes de monedas ───────────────────────────────────────────────────── */
.ns-saldo { font-size: 1.1rem; margin-bottom: 24px; }
.ns-planes {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 16px;
}
@media(max-width:700px){ .ns-planes { grid-template-columns: repeat(2,1fr); } }
@media(max-width:400px){ .ns-planes { grid-template-columns: 1fr; } }

.ns-plan {
    background: #fff;
    border: 2px solid var(--ns-border);
    border-radius: var(--ns-radius);
    padding: 20px 14px;
    text-align: center;
    transition: border-color .2s, box-shadow .2s;
}
.ns-plan:hover { border-color: var(--ns-primary); box-shadow: var(--ns-shadow); }
.ns-plan-monedas { font-size: 1.6rem; font-weight: 700; color: var(--ns-primary); }
.ns-plan-precio  { font-size: 1rem; color: var(--ns-muted); margin: 6px 0 14px; }
.ns-btn-paypal   { background: #0070ba; width: 100%; margin: 4px 0; }
.ns-btn-paypal:hover { background: #005ea6; }

/* ── Link helper ────────────────────────────────────────────────────────── */
.ns-link { text-align: center; margin-top: 16px; font-size: .9rem; }
.ns-aviso-login { text-align: center; padding: 10px 0; }
.ns-sin-foto { aspect-ratio: 3/4; background: var(--ns-bg); display:flex; align-items:center; justify-content:center; border-radius:var(--ns-radius); color:var(--ns-muted); }

/* WhatsApp */
.ns-btn-wa {
    background: #25D366;
    color: #fff !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    width: 100%;
    justify-content: center;
}
.ns-btn-wa:hover { background: #1ebe5d; }

/* ── Estado badges ── */
.ns-estado-badge { padding: 12px 16px; border-radius: 8px; margin-bottom: 18px; font-size: 15px; }
.ns-estado-pendiente { background: #fff8e1; border: 1px solid #ffe082; color: #795548; }
.ns-estado-activa    { background: #e8f5e9; border: 1px solid #a5d6a7; color: #2e7d32; }
.ns-estado-rechazada { background: #ffebee; border: 1px solid #ef9a9a; color: #b71c1c; }
.ns-info-fechas      { background: #f5f5f5; border-radius: 8px; padding: 12px 16px; margin-bottom: 16px; }
.ns-info-fechas small { color: #888; }

/* ── Modal Yape ── */
.ns-modal-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.55);
    z-index: 9999; display: flex; align-items: center; justify-content: center;
}
.ns-modal-box {
    background: #fff; border-radius: 14px; padding: 28px 24px;
    max-width: 440px; width: 95%; position: relative;
    box-shadow: 0 8px 40px rgba(0,0,0,0.22);
    max-height: 92vh; overflow-y: auto;
}
.ns-modal-cerrar {
    position: absolute; top: 12px; right: 14px;
    background: none; border: none; font-size: 20px;
    cursor: pointer; color: #999; line-height: 1;
}
.ns-modal-cerrar:hover { color: #c00; }
.ns-yape-qr { text-align: center; margin: 16px 0; }
.ns-yape-qr img { max-width: 200px; border: 1px solid #eee; border-radius: 10px; padding: 6px; }
.ns-qr-caption { font-size: 13px; color: #888; margin-top: 6px; }

/* ── Filtros listado ── */
.ns-filtro-form { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ns-filtro-form select { padding: 8px 12px; border-radius: 8px; border: 1px solid #ddd; font-size: 14px; }

/* ── Emoji publico (sin login) ── */
.ns-emoji-publico { opacity: 0.8; cursor: pointer; }

/* ── Coin icon fallback ── */
.ns-coin { font-size: 1em; }
.ns-saldo { font-size: 16px; margin-bottom: 16px; }
.ns-saldo strong { color: #c0186a; font-size: 18px; }

/* ── WhatsApp button full width ── */
.ns-btn-wa-full { 
    display: flex; align-items: center; justify-content: center; 
    gap: 8px; width: 100%; margin-top: 16px; 
    background: #25d366; color: #fff; border: none;
}
.ns-btn-wa-full:hover { background: #1da851; }

/* ── Yape instrucciones ── */
.ns-yape-instruc { color: #555; font-size: 14px; margin: 12px 0; }

/* ── Icono de moneda personalizable ── */
img.ns-coin, img.ns-coin-sm {
    display: inline-block;
    vertical-align: middle;
    object-fit: contain;
}
img.ns-coin    { width: 22px; height: 22px; }
img.ns-coin-sm { width: 16px; height: 16px; }
span.ns-coin   { font-size: 1.1em; vertical-align: middle; }
span.ns-coin-sm{ font-size: 0.9em; vertical-align: middle; }

/* ── Contador regresivo ── */
.ns-countdown {
    display: flex; gap: 8px; align-items: center;
    flex-wrap: wrap; margin: 8px 0 14px;
    font-size: 14px; color: #555;
}
.ns-countdown-label { font-weight: 500; }
.ns-countdown-units {
    display: flex; gap: 6px;
}
.ns-cd-unit {
    background: #fff0f5; border: 1px solid #f8a; border-radius: 6px;
    padding: 4px 10px; text-align: center; min-width: 52px;
}
.ns-cd-num  { display: block; font-size: 1.4em; font-weight: 700; color: #c0186a; line-height: 1.1; }
.ns-cd-txt  { display: block; font-size: 10px; color: #999; text-transform: uppercase; }
.ns-cd-sep  { font-size: 1.4em; color: #ccc; line-height: 2.2; }
.ns-countdown.ns-expired .ns-cd-unit { background: #f5f5f5; border-color: #ddd; }
.ns-countdown.ns-expired .ns-cd-num  { color: #aaa; }

/* ── Link de Pago button ── */
.ns-btn-linkpago {
    display: block; width: 100%; text-align: center;
    background: #6c3483; color: #fff;
    border: 2px solid #6c3483; border-radius: 8px;
    padding: 10px 16px; font-weight: 600;
    text-decoration: none; margin-top: 8px;
    transition: background .2s, color .2s;
}
.ns-btn-linkpago:hover { background: #5b2b70; border-color: #5b2b70; color: #fff; }

/* ── Fotos: eliminar + cambiar ── */
.ns-foto-preview-wrap { position: relative; display: inline-block; }
.ns-borrar-foto {
    display: flex; align-items: center; gap: 4px;
    font-size: 12px; color: #c0392b; cursor: pointer;
    margin-top: 4px; user-select: none;
}
.ns-borrar-foto input { margin: 0; }
.ns-btn-cambiar-foto {
    display: block; width: 100%; font-size: 12px; margin-top: 4px;
    background: none; border: 1px solid #ddd; border-radius: 4px;
    padding: 3px 6px; cursor: pointer; color: #555;
}
.ns-btn-cambiar-foto:hover { border-color: #c0186a; color: #c0186a; }
.ns-zoom-trigger { cursor: zoom-in; }
.ns-zoom-hint {
    display: block; font-size: 11px; color: #aaa;
    text-align: center; margin-top: 4px;
}

/* ── Share buttons ── */
.ns-share-box {
    margin-top: 28px; padding-top: 20px;
    border-top: 1px solid #f0f0f0;
}
.ns-share-box h3 { font-size: 16px; margin: 0 0 12px; color: #555; }
.ns-share-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.ns-share-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px; border-radius: 8px; font-size: 13px;
    font-weight: 600; text-decoration: none; cursor: pointer;
    border: none; transition: opacity .15s, transform .1s;
}
.ns-share-btn:hover { opacity: .88; transform: translateY(-1px); }
.ns-share-wa   { background: #25d366; color: #fff; }
.ns-share-fb   { background: #1877f2; color: #fff; }
.ns-share-tw   { background: #000;    color: #fff; }
.ns-share-tg   { background: #2ca5e0; color: #fff; }
.ns-share-copy { background: #f5f5f5; color: #333; border: 1px solid #ddd; }
.ns-share-copy:hover { background: #eee; }

/* ── Activity tags ── */
.ns-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.ns-tag {
    background: #fff0f6; color: #c0186a;
    border: 1px solid #f9c2d8; border-radius: 20px;
    padding: 4px 12px; font-size: 13px; font-weight: 600;
}

/* ── Subasta cerrada banner ── */
.ns-subasta-cerrada-banner {
    background: #f5f5f5; border: 1px solid #ddd; border-radius: 8px;
    padding: 10px 16px; font-size: 14px; color: #666; margin: 14px 0;
}

/* ── Winner reveal ── */
.ns-ganador-reveal {
    display: flex; align-items: flex-start; gap: 16px;
    background: linear-gradient(135deg, #fff9e6 0%, #fff3cd 100%);
    border: 2px solid #ffd700; border-radius: 12px;
    padding: 20px 24px; margin: 16px 0;
}
.ns-ganador-trofeo-big { font-size: 3em; line-height: 1; }
.ns-ganador-reveal strong { font-size: 17px; display: block; margin-bottom: 4px; color: #333; }
.ns-ganador-reveal p { color: #666; margin: 0 0 12px; font-size: 14px; }
.ns-btn-wa {
    display: inline-flex; align-items: center; gap: 8px;
    background: #25d366; color: #fff; padding: 10px 18px;
    border-radius: 8px; font-weight: 700; text-decoration: none;
    font-size: 14px;
}
.ns-btn-wa:hover { background: #1da851; color: #fff; }

/* ── Checks in form ── */
.ns-checks-section { margin: 20px 0; }
.ns-section-label { display: block; font-weight: 600; margin-bottom: 10px; color: #555; }
.ns-checks-grid { display: flex; gap: 16px; flex-wrap: wrap; }
.ns-check-item {
    display: flex; align-items: center; gap: 8px;
    background: #f9f9f9; border: 1px solid #eee; border-radius: 8px;
    padding: 10px 16px; cursor: pointer; font-size: 14px;
    transition: border-color .15s, background .15s;
}
.ns-check-item:hover { border-color: #c0186a; background: #fff0f6; }
.ns-check-item input { margin: 0; accent-color: #c0186a; }

/* ── Emoji explosion overlay ── */
#ns-explosion {
    position: fixed; inset: 0; z-index: 99997;
    display: flex; align-items: center; justify-content: center;
    pointer-events: none; opacity: 0;
}
#ns-explosion-emoji {
    font-size: 10em; line-height: 1;
    filter: drop-shadow(0 0 30px rgba(255,200,0,.8));
    transform: scale(0);
    display: block;
    transition: none;
}
#ns-explosion.ns-exp-in {
    opacity: 1;
}
#ns-explosion.ns-exp-in #ns-explosion-emoji {
    animation: ns-emoji-pop 0.9s cubic-bezier(.17,.89,.32,1.28) forwards;
}
#ns-explosion.ns-exp-out {
    opacity: 0;
    transition: opacity 0.5s ease;
}

@keyframes ns-emoji-pop {
    0%   { transform: scale(0) rotate(-15deg); opacity: 0; }
    40%  { transform: scale(1.3) rotate(8deg);  opacity: 1; }
    65%  { transform: scale(0.95) rotate(-4deg); opacity: 1; }
    80%  { transform: scale(1.1) rotate(2deg);  opacity: 1; }
    100% { transform: scale(1) rotate(0deg);   opacity: 1; }
}

@keyframes ns-particle-fly {
    0%   { transform: translate(-50%, -50%) scale(var(--sz,1)); opacity: 1; }
    100% { transform: translate(calc(-50% + var(--tx,0px)), calc(-50% + var(--ty,0px))) scale(0); opacity: 0; }
}

/* ── Listado: cerrada badge ── */
.ns-card-foto { position: relative; }
.ns-card-badge-cerrada {
    position: absolute; top: 8px; left: 8px;
    background: rgba(0,0,0,.65); color: #fff;
    font-size: 12px; font-weight: 700;
    padding: 3px 8px; border-radius: 20px;
    backdrop-filter: blur(4px);
}
.ns-card-cerrada .ns-card-foto { filter: grayscale(30%); }
.ns-card-cerrada .ns-btn { background: #7f8c8d; border-color: #7f8c8d; }

/* ── WhatsApp with country code ── */
.ns-wa-wrap { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; }
.ns-wa-select {
    flex: 0 0 auto; max-width: 200px; min-width: 140px;
    padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px;
    background: #fafafa; font-size: 14px;
}
.ns-wa-numero {
    flex: 1; min-width: 120px;
    padding: 8px 12px; border: 1px solid #ddd; border-radius: 6px;
    font-size: 14px;
}
@media (max-width: 480px) {
    .ns-wa-select, .ns-wa-numero { max-width: 100%; min-width: 100%; }
}

/* ── Nueva subasta notice ── */
.ns-info-nueva-subasta {
    background: #e8f5e9; border: 1px solid #a5d6a7;
    border-radius: 8px; padding: 12px 16px; margin-bottom: 20px;
    font-size: 14px; display: flex; align-items: center;
    justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.ns-link-historial { color: #c0186a; font-weight: 600; text-decoration: none; white-space: nowrap; }
.ns-link-historial:hover { text-decoration: underline; }


/* ── Mínimo de monedas en perfil ── */
.ns-minimo-box {
    background: #f0f4ff; border: 1px solid #c5d0f5;
    border-radius: 8px; padding: 10px 16px; margin: 12px 0;
    font-size: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.ns-minimo-hint {
    font-size: 12px; color: #888; display: block; width: 100%; margin-top: 2px;
}


/* ── Paginación unificada ── */
.ns-paginacion {
    display: flex; align-items: center; justify-content: center;
    gap: 6px; margin: 24px 0 8px; flex-wrap: wrap;
}
.ns-pag-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 10px;
    border: 1px solid #e0e0e0; border-radius: 8px;
    background: #fff; color: #444; font-size: 14px;
    text-decoration: none; cursor: pointer; transition: all .15s;
}
.ns-pag-btn:hover { background: #f5e6f0; border-color: #c0186a; color: #c0186a; }
.ns-pag-active { background: #c0186a !important; color: #fff !important; border-color: #c0186a !important; font-weight: 700; }
.ns-pag-dis { opacity: .4; cursor: default; pointer-events: none; }
.ns-pag-ellipsis { color: #bbb; font-size: 14px; padding: 0 2px; line-height: 36px; }

/* ── Lazy-load placeholder ── */
img[data-src], [data-bg] {
    background-color: #f3f3f3;
}
img[data-src] { min-height: 40px; }
.ns-card-foto.ns-lazy-bg, .ns-ganada-foto.ns-lazy-bg {
    background-color: #f0f0f0;
}

/* ── Fecha cierre en card listado ── */
.ns-card-cierre {
    font-size: 12px; color: #888; margin: 4px 0 8px;
}
.ns-card-cierre strong { color: #555; }

/* ── Ganancia USD en mis subastas ── */
.ns-ganancia-usd { color: #1a7a3c !important; font-weight: 700; }

.ns-box { max-width: 100%; overflow-x: hidden; }

/* ── Tiempo cita select ── */
.ns-campo select {
    width: 100%; padding: 8px 12px;
    border: 1px solid #ddd; border-radius: 6px;
    font-size: 14px; background: #fafafa;
    max-width: 100%;
}
