:root{
  /* Paleta alineada al proyecto Colectate Rifas (colectate.com.uy):
     verde azulado primario + amarillo de acento. */
  --ct-teal:#1b7a72;
  --ct-teal-dark:#125650;
  --ct-cyan:#1b5c57;
  --ct-green:#0a7d3f;
  --ct-mint:#bfe4de;
  --ct-mint-tint:#eaf6f4;
  --ct-coral:#b3261e;
  --ct-coral-dark:#8f1e18;
  --ct-gold:#ffc93c;
  --ct-ink:#1f2430;
  --ct-ink-soft:#6b7280;
  --ct-bg:#f5f6f8;
  --ct-line: #e4e6eb;
  --ct-shadow: 0 2px 10px rgba(20,20,30,.06);
  --ct-shadow-sm: 0 1px 3px rgba(20,20,30,.06);
  --ct-radius: 14px;
  --bs-body-font-family:'Inter',sans-serif;
}

*{ box-sizing:border-box; }
body{ color:var(--ct-ink); background:var(--ct-bg); -webkit-font-smoothing:antialiased; }
h1,h2,h3,.display-font{ font-family:'Raleway',sans-serif; font-weight:800; letter-spacing:-0.01em; text-wrap:balance; }
.text-soft{ color:var(--ct-ink-soft); }
a{ transition:color .15s ease; }

.brand-word{ font-family:'Raleway',sans-serif; font-weight:800; font-style:italic; color:var(--ct-teal); font-size:22px; text-decoration:none; }

/* --- buttons --- */
.btn{ border-radius:10px; font-weight:600; padding:.6rem 1.1rem; transition:background-color .15s ease, border-color .15s ease, transform .1s ease, box-shadow .15s ease; }
.btn:active{ transform:translateY(1px); }
.btn-ct-primary{ background:var(--ct-teal); border-color:var(--ct-teal); color:#fff; box-shadow:var(--ct-shadow-sm); }
.btn-ct-primary:hover, .btn-ct-primary:focus{ background:var(--ct-teal-dark); border-color:var(--ct-teal-dark); color:#fff; }
.btn-ct-outline{ border:1.5px solid var(--ct-line); color:var(--ct-ink); font-weight:600; background:#fff; }
.btn-ct-outline:hover, .btn-ct-outline:focus{ background:var(--ct-mint-tint); border-color:var(--ct-teal); color:var(--ct-teal-dark); }
/* CTAs principales (aportar, abrir colecta): mismo color primario que el resto de la app,
   siguiendo el criterio de Colectate Rifas de usar un unico color de accion. */
.btn-ct-coral{ background:var(--ct-teal); border-color:var(--ct-teal); color:#fff; box-shadow:var(--ct-shadow-sm); }
.btn-ct-coral:hover, .btn-ct-coral:focus{ background:var(--ct-teal-dark); border-color:var(--ct-teal-dark); color:#fff; }
.btn-ct-danger-outline{ border:1.5px solid rgba(179,38,30,.35); color:var(--ct-coral); font-weight:600; background:transparent; }
.btn-ct-danger-outline:hover{ background:#fdecea; border-color:var(--ct-coral); color:var(--ct-coral-dark); }

/* --- header (igual en todas las vistas, mismo patron que Colectate Rifas) --- */
.site-header{ background:linear-gradient(120deg, var(--ct-teal-dark), var(--ct-teal)); position:sticky; top:0; z-index:40; }
.site-header-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding-top:1.1rem; padding-bottom:1.1rem; }
.site-header-logo{ font-family:'Raleway',sans-serif; font-weight:800; font-style:italic; font-size:1.15rem; color:#fff; text-decoration:none; display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem; }
.site-header-logo .marca-producto{ color:var(--ct-gold); font-style:normal; }
.site-header-logo .marca-tagline{ color:rgba(255,255,255,.65); font-style:normal; font-weight:600; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; }

.site-nav{ display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.site-nav a{ color:rgba(255,255,255,.82); font-weight:600; font-size:.9rem; text-decoration:none; }
.site-nav a:hover{ color:var(--ct-gold); text-decoration:none; }

/* El menu desplegable (Administracion) tiene fondo blanco propio de Bootstrap --
   necesita sus propios colores, no los del header oscuro. */
.site-nav .dropdown-menu{ min-width:14rem; padding:.4rem; border:1px solid var(--ct-line); box-shadow:var(--ct-shadow); }
.site-nav .dropdown-item{ color:var(--ct-teal); font-weight:600; border-radius:8px; padding:.5rem .75rem; }
.site-nav .dropdown-item:hover, .site-nav .dropdown-item:focus{ background:var(--ct-teal); color:#fff; }

.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; border:1px solid rgba(255,255,255,.35); border-radius:8px; background:transparent; cursor:pointer; padding:0; }
.nav-toggle span{ display:block; width:20px; height:2px; margin:0 auto; background:#fff; border-radius:999px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width:720px){
  .nav-toggle{ display:flex; }
  .site-nav{ display:none; flex-direction:column; align-items:stretch; gap:0; width:100%; order:3; margin-top:.75rem; border-top:1px solid rgba(255,255,255,.2); padding-top:.5rem; }
  .site-nav.is-open{ display:flex; }
  .site-nav a{ padding:.7rem .25rem; border-bottom:1px solid rgba(255,255,255,.15); }
}

.hero-eyebrow{ font-size:12.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ct-teal); }

/* --- cards --- */
.ct-card{ border:1px solid var(--ct-line); border-radius:var(--ct-radius); background:#fff; box-shadow:var(--ct-shadow-sm); transition:box-shadow .2s ease, transform .2s ease; }
.ct-card-pad{ padding:2rem 1.85rem; }
a.ct-card:hover, .ct-card.ct-card-hover:hover{ box-shadow:var(--ct-shadow); transform:translateY(-2px); }

/* --- badges --- */
.badge{ font-weight:600; letter-spacing:.01em; }
.badge-soon{ background:#fff8e1; color:#7a5b00; font-weight:600; font-size:11px; letter-spacing:.02em; }
.badge-pendiente{ background:#fff8e1; color:#7a5b00; }
.badge-habilitada{ background:#e6f7ee; color:#0a7d3f; }
.badge-deshabilitada{ background:#fdecea; color:#b3261e; }

/* --- forms --- */
.form-label{ font-weight:600; font-size:13.5px; color:var(--ct-ink); margin-bottom:.4rem; }
.form-control, .form-select{ border-radius:9px; border-color:var(--ct-line); padding:.6rem .85rem; font-size:14.5px; }
.form-control:focus, .form-select:focus{ border-color:var(--ct-teal); box-shadow:0 0 0 .2rem rgba(27,122,114,.15); }
.form-check-input{ border-color:var(--ct-line); }
.form-check-input:checked{ background-color:var(--ct-teal); border-color:var(--ct-teal); }
.form-text{ font-size:12.5px; }
fieldset.ct-fieldset{ border:1px solid var(--ct-line); border-radius:var(--ct-radius); }

/* --- alerts --- */
.alert{ border-radius:10px; font-size:14px; }
.alert-ct-success{ background:#e6f7ee; color:#0a7d3f; border:none; }
.alert-ct-error{ background:#fdecea; color:#b3261e; border:none; }

.auth-shell{ max-width:440px; margin:0 auto; }

/* --- tables (admin) --- */
.table{ font-size:14px; }
.table thead th{ font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--ct-ink-soft); font-weight:700; border-bottom-width:1px; }

.cta-band{ background:var(--ct-teal); color:#fff; border-radius:24px; }

/* --- footer (igual en todas las vistas) --- */
footer.ct-footer{ background:#0f3d3a; color:#cfd6e0; text-align:center; padding:1.25rem 1rem; font-size:.8rem; }
footer.ct-footer p{ margin:0; }
.ct-footer-ingresar{ display:inline-block; margin-top:.5rem; color:#7c8b95; font-size:.72rem; text-decoration:none; }
.ct-footer-ingresar:hover{ color:#cfd6e0; text-decoration:underline; }

.stat-num{ font-family:'Raleway',sans-serif; font-weight:800; font-size:2.1rem; color:var(--ct-teal); letter-spacing:-0.01em; }

.progress{ border-radius:99px; background:var(--ct-mint-tint); }
.progress-bar{ border-radius:99px; }

/* --- carrusel de medios de pago (en el footer, todas las vistas) --- */
.medios-footer{ background:#fff; padding:2.5rem 0; border-top:1px solid var(--ct-line); }
.medios-footer-titulo{ font-size:1.25rem; color:var(--ct-teal); text-transform:uppercase; letter-spacing:.02em; margin:0 0 1.75rem; }
.medios-footer-titulo::after{ content:''; display:block; width:48px; height:3px; background:var(--ct-teal); margin-top:.6rem; border-radius:999px; }
.medios-carrusel{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.medios-carrusel-track{ display:flex; align-items:center; gap:3rem; width:max-content; animation:medios-scroll 22s linear infinite; }
.medios-carrusel:hover .medios-carrusel-track{ animation-play-state:paused; }
.medios-carrusel-track img{ height:34px; max-width:110px; object-fit:contain; flex-shrink:0; opacity:.85; }
.medios-carrusel-track .medio-nombre-fallback{ font-size:.85rem; font-weight:700; color:var(--ct-ink-soft); white-space:nowrap; }
@keyframes medios-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .medios-carrusel-track{ animation:none; } }

/* --- asistente por pasos (abrir colecta) --- */
.wizard-steps{ display:flex; align-items:center; gap:.5rem; margin-bottom:1.75rem; flex-wrap:wrap; }
.wizard-step{ display:flex; align-items:center; gap:.5rem; color:var(--ct-ink-soft); font-size:.82rem; font-weight:600; }
.wizard-step .num{ width:26px; height:26px; border-radius:50%; background:#fff; border:2px solid var(--ct-line); display:flex; align-items:center; justify-content:center; font-size:.8rem; flex-shrink:0; }
.wizard-step.actual{ color:var(--ct-ink); }
.wizard-step.actual .num{ background:var(--ct-teal); border-color:var(--ct-teal); color:#fff; }
.wizard-step.hecho .num{ background:#0f3d3a; border-color:#0f3d3a; color:#fff; }
.wizard-line{ width:24px; height:2px; background:var(--ct-line); }
.wizard-panel[hidden]{ display:none; }
.wizard-resumen dt{ font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ct-ink-soft); font-weight:700; margin-top:.9rem; }
.wizard-resumen dd{ margin:0; word-break:break-word; }
.chip-monto{ border:1.5px solid var(--ct-line); background:#fff; color:var(--ct-teal); border-radius:999px; padding:.3rem .9rem; font-weight:600; font-size:.85rem; }
.chip-monto:hover, .chip-monto.activo{ background:var(--ct-teal); color:#fff; border-color:var(--ct-teal); }
.preview-card{ position:sticky; top:96px; }
.preview-card .preview-img{ width:100%; aspect-ratio:16/9; height:auto; object-fit:cover; border-radius:10px; margin-bottom:1rem; background:var(--ct-mint-tint); }
.preview-etiqueta{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ct-ink-soft); font-weight:700; margin-bottom:.6rem; }
.portada-vista{ max-height:140px; border-radius:10px; margin-top:.6rem; }
.aportante-fila{ display:flex; justify-content:space-between; gap:1rem; padding:.55rem 0; border-bottom:1px solid var(--ct-line); font-size:.9rem; }
.aportante-fila:last-child{ border-bottom:none; }
.opcion-radio{ display:flex; gap:.75rem; align-items:flex-start; border:1.5px solid var(--ct-line); border-radius:12px; padding:.8rem 1rem; margin-bottom:.6rem; background:#fff; }
.opcion-radio:has(input:checked){ border-color:var(--ct-teal); background:var(--ct-mint-tint); }
.opcion-radio input{ margin-top:.25rem; flex-shrink:0; }
.opcion-radio label{ cursor:pointer; flex:1; margin:0; }

/* --- buscador y colectas publicas (home) --- */
.buscador-colectas{ display:flex; gap:.5rem; }
.buscador-colectas .form-control{ border-radius:10px; }
.colectas-carrusel{ display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:.25rem .25rem 1rem; scrollbar-width:thin; }
.colectas-carrusel .colecta-card{ flex:0 0 min(290px, 82%); scroll-snap-align:start; }
.colectas-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:1rem; }
.colecta-card{ display:flex; flex-direction:column; text-decoration:none; color:inherit; overflow:hidden; }
.colecta-card:hover{ color:inherit; box-shadow:var(--ct-shadow); transform:translateY(-2px); }
.colecta-card-img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.colecta-card-img-vacia{ background:linear-gradient(120deg, var(--ct-teal-dark), var(--ct-teal)); }
.colecta-card-body{ padding:1rem 1.1rem 1.1rem; display:flex; flex-direction:column; flex:1; }
.badge-categoria{ align-self:flex-start; background:var(--ct-mint-tint); color:var(--ct-teal-dark); font-size:.7rem; }
.carrusel-flecha{ width:36px; height:36px; padding:0; line-height:1; }
@media (max-width:480px){ .buscador-colectas{ flex-direction:column; } }
.alert-ct-cerrada{ background:#eef0f3; color:#3b4350; border:none; }

/* --- carrito --- */
.carrito-item{ display:flex; overflow:hidden; }
.carrito-item-img{ width:120px; flex-shrink:0; object-fit:cover; }
.carrito-item-body{ padding:1rem 1.1rem; flex:1; min-width:0; }
.carrito-item-error{ border-color:rgba(179,38,30,.4); }
.carrito-resumen{ position:sticky; top:96px; }
.nav-carrito-n{ display:inline-block; min-width:1.3rem; padding:0 .35rem; margin-left:.25rem; border-radius:999px; background:var(--ct-gold); color:#0f3d3a; font-size:.72rem; font-weight:800; text-align:center; line-height:1.3rem; }
.pago-icono{ width:56px; height:56px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; font-size:1.6rem; font-weight:800; }
.pago-icono-ok{ background:#e6f7ee; color:#0a7d3f; }
.pago-icono-error{ background:#fdecea; color:#b3261e; }
.pago-icono-pendiente{ background:#fff8e1; color:#7a5b00; }
@media (max-width:480px){ .carrito-item-img{ width:76px; } }
.alert-ct-carrito{ background:var(--ct-mint-tint); color:#0f3d3a; border:1px solid var(--ct-mint); }

/* --- buscador con sugerencias en vivo --- */
.buscador-campo{ position:relative; flex:1; min-width:0; }
.buscador-sugerencias{ position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:60; margin:0; padding:.35rem; list-style:none; text-align:left; background:#fff; border:1px solid var(--ct-line); border-radius:12px; box-shadow:0 10px 30px rgba(20,20,30,.14); max-height:420px; overflow-y:auto; }
.buscador-sugerencias[hidden]{ display:none; }
.buscador-mensaje{ padding:.8rem .9rem; color:var(--ct-ink-soft); font-size:.9rem; }
.buscador-item{ border-radius:9px; }
.buscador-item.activa{ background:var(--ct-mint-tint); }
.buscador-enlace{ display:flex; gap:.75rem; align-items:center; padding:.5rem .6rem; text-decoration:none; color:var(--ct-ink); }
.buscador-enlace:hover{ color:var(--ct-ink); }
.buscador-miniatura{ width:64px; height:36px; border-radius:6px; object-fit:cover; flex-shrink:0; }
.buscador-miniatura-vacia{ background:linear-gradient(120deg, var(--ct-teal-dark), var(--ct-teal)); }
.buscador-cuerpo{ display:flex; flex-direction:column; min-width:0; line-height:1.3; }
.buscador-titulo{ font-weight:600; font-size:.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.buscador-fragmento{ font-size:.8rem; color:var(--ct-ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.buscador-categoria{ font-size:.72rem; color:var(--ct-teal-dark); font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.buscador-coincidencia{ background:rgba(255,201,60,.45); color:inherit; padding:0 .05em; border-radius:3px; }
.buscador-todos{ border-top:1px solid var(--ct-line); margin-top:.25rem; }
.buscador-todos a{ display:block; padding:.65rem .8rem; font-size:.85rem; font-weight:600; color:var(--ct-teal); text-decoration:none; }
.buscador-todos a:hover{ text-decoration:underline; }
