/* ============================================
   AIPI THEME — Asambleas Virtuales
   Paleta extraída del logo AIPI:
     Naranja  #F5A623  (A)
     Verde    #7EC845  (I)
     Rosa     #D4589A  (P)
     Azul     #54ADE8  (I)
     Pasteles de los edificios: #F4B8C7, #A8CBE8, #EDD9A3, #C3E6A0
   ============================================ */

/* ---------- variables ---------- */
:root{
  --ai-orange:#F5A623;
  --ai-green:#7EC845;
  --ai-pink:#D4589A;
  --ai-blue:#54ADE8;
  /* tonos suaves para fondos */
  --ai-bg-start:#fdf6ec;   /* crema suave, pastel del logo */
  --ai-bg-end:#eef5fc;     /* azul lavanda claro */
  --ai-card-bg:#ffffff;
  --ai-text:#333340;
  --ai-text-light:#6b6b7b;
  --ai-border:#e8e4f0;
  --ai-radius:18px;
  --ai-radius-sm:12px;
  --ai-shadow:0 6px 24px rgba(0,0,0,.07);
  --ai-shadow-lg:0 12px 40px rgba(0,0,0,.10);
  --ai-transition:all .25s ease;
}

/* ---------- global ---------- */
*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:'Inter','Nunito',-apple-system,BlinkMacSystemFont,sans-serif!important;
  color:var(--ai-text);
}

/* ---------- fondo ---------- */
.bg-login-image,
body.bg-login-image{
  background:linear-gradient(145deg, var(--ai-bg-start) 0%, #fff8f0 30%, #f5f0fa 60%, var(--ai-bg-end) 100%)!important;
  background-attachment:fixed!important;
  min-height:100vh;
  position:relative;
}
/* decoraciones suaves inspiradas en los pasteles del logo */
.bg-login-image::before{
  content:'';
  position:fixed;inset:0;
  background:
    radial-gradient(ellipse at 10% 80%, rgba(244,184,199,.25) 0%,transparent 50%),
    radial-gradient(ellipse at 90% 15%, rgba(168,203,232,.20) 0%,transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(195,230,160,.12) 0%,transparent 45%);
  pointer-events:none;z-index:0;
}
.bg-login-image>.container{position:relative;z-index:1}

/* ---------- logo header ---------- */
.aipi-logo-header{text-align:center;padding:32px 0 12px}
.aipi-logo-header img{
  max-width:200px;height:auto;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.08));
  transition:var(--ai-transition);
}
.aipi-logo-header img:hover{transform:scale(1.04)}

/* ---------- cards ---------- */
.card{
  background:var(--ai-card-bg)!important;
  border:1px solid var(--ai-border)!important;
  border-radius:var(--ai-radius)!important;
  box-shadow:var(--ai-shadow)!important;
  overflow:hidden;
  transition:var(--ai-transition);
  position:relative;
}
/* barrita multicolor arriba */
.card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;z-index:2;
  background:linear-gradient(90deg,var(--ai-orange),var(--ai-green),var(--ai-pink),var(--ai-blue));
}
.card:hover{
  box-shadow:var(--ai-shadow-lg)!important;
  transform:translateY(-2px);
}
.card .p-5{padding:2.2rem!important}

/* ---------- títulos ---------- */
.h4, h1.h4, .text-gray-900{
  color:var(--ai-text)!important;
  font-weight:700!important;
  font-size:1.45rem!important;
  letter-spacing:-.02em;
}

/* ---------- formularios ---------- */
.form-control{
  border:2px solid var(--ai-border)!important;
  border-radius:var(--ai-radius-sm)!important;
  padding:.8rem 1.1rem!important;
  font-size:.95rem!important;
  background:#fafafa!important;
  color:var(--ai-text)!important;
  transition:var(--ai-transition)!important;
}
.form-control:focus{
  border-color:var(--ai-orange)!important;
  box-shadow:0 0 0 3px rgba(245,166,35,.18)!important;
  background:#fff!important;
  outline:none!important;
}
.form-control::placeholder{color:#b0afc0!important}

label,.form-group label{
  font-weight:600!important;
  color:var(--ai-text-light)!important;
  font-size:.85rem!important;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:.45rem!important;
}

/* ---------- botones base ---------- */
.btn{
  border-radius:var(--ai-radius-sm)!important;
  font-weight:600!important;
  font-size:.95rem!important;
  padding:.75rem 1.4rem!important;
  border:none!important;
  transition:var(--ai-transition)!important;
  letter-spacing:.02em;
  position:relative;overflow:hidden;
}
.btn::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 100%);
  pointer-events:none;
}

/* primary → naranja AIPI */
.btn-primary,.btn-primary.btn-user{
  background:var(--ai-orange)!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(245,166,35,.30)!important;
}
.btn-primary:hover,.btn-primary.btn-user:hover{
  background:#e69615!important;
  box-shadow:0 6px 20px rgba(245,166,35,.40)!important;
  transform:translateY(-2px)!important;
}
.btn-primary:active{transform:translateY(0)!important}

/* submit / registrar → verde AIPI */
input[type="submit"].btn,
input[name="registrar"]{
  background:var(--ai-green)!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(126,200,69,.30)!important;
  border-radius:var(--ai-radius-sm)!important;
  font-weight:700!important;
  font-size:1rem!important;
  padding:.85rem 1.4rem!important;
}
input[type="submit"].btn:hover,
input[name="registrar"]:hover{
  background:#6ab938!important;
  box-shadow:0 6px 18px rgba(126,200,69,.40)!important;
  transform:translateY(-2px)!important;
}

/* danger / votar → rosa AIPI */
.btn-danger,.btn-danger.btn-user{
  background:var(--ai-pink)!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(212,88,154,.30)!important;
}
.btn-danger:hover{
  background:#c24988!important;
  box-shadow:0 6px 18px rgba(212,88,154,.40)!important;
  transform:translateY(-2px)!important;
}

/* warning → naranja claro */
.btn-warning{
  background:#f7bc55!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(245,166,35,.25)!important;
}
.btn-warning:hover{
  background:var(--ai-orange)!important;
  transform:translateY(-2px)!important;
}

/* success → verde */
.btn-success{
  background:var(--ai-green)!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(126,200,69,.25)!important;
}
.btn-success:hover{
  background:#6ab938!important;
  transform:translateY(-2px)!important;
}

/* secondary */
.btn-secondary{
  background:#eeecf3!important;
  color:var(--ai-text-light)!important;
  box-shadow:none!important;
}
.btn-secondary:hover{background:#dddae5!important;color:var(--ai-text)!important}

.btn-block+.btn-block,.form-group+.form-group{margin-top:.7rem}
.btn-user{border-radius:var(--ai-radius-sm)!important}
.btn-lg{padding:.95rem 1.5rem!important;font-size:1.05rem!important}

/* ---------- modales ---------- */
.modal-content{
  border:none!important;
  border-radius:var(--ai-radius)!important;
  box-shadow:0 20px 60px rgba(0,0,0,.15)!important;
  overflow:hidden;
}
.modal-header{
  background:linear-gradient(135deg,var(--ai-orange) 0%,#f7bc55 100%)!important;
  border-bottom:none!important;
  padding:1.3rem 1.8rem!important;
}
.modal-header .modal-title,
.modal-header h5{
  color:#fff!important;font-weight:700!important;font-size:1.1rem!important;
}
.modal-header .close,
.modal-header button[data-dismiss="modal"]{
  color:#fff!important;opacity:.85;text-shadow:none!important;
}
.modal-body{padding:1.8rem!important}
.modal-body h2{color:var(--ai-pink)!important;font-weight:700!important}
.modal-body h5,.modal-body H5{
  color:var(--ai-text)!important;font-weight:500!important;line-height:1.6!important;
}
.modal-footer{border-top:1px solid var(--ai-border)!important;padding:1rem 1.8rem!important}
.modal-backdrop.show{opacity:.45!important;background-color:#2a2040!important}

/* ---------- navbar video ---------- */
.navbar.bg-dark,.navbar-dark.bg-dark{
  background:linear-gradient(135deg,var(--ai-orange),#f7bc55)!important;
  border:none!important;
  padding:.5rem 1rem!important;
  box-shadow:0 3px 14px rgba(245,166,35,.25)!important;
}
body.bg-dark{background:#f9f7fc!important}

/* ---------- misceláneos ---------- */
hr{border-top:1px solid var(--ai-border)!important;margin:1.4rem 0!important}

h5[style*="color:red"],h5[style*="color: red"]{
  background:#fff5f5!important;color:#c92a2a!important;
  padding:.9rem 1.3rem!important;border-radius:var(--ai-radius-sm)!important;
  border:1px solid #ffc9c9!important;font-weight:600!important;font-size:.95rem!important;
}

.card .text-center h1[class*="h4"]:only-child{font-size:1.4rem!important}

/* whatsapp */
.whatsapp-float,#whatsapp-btn{
  background:#25d366!important;
  box-shadow:0 5px 16px rgba(37,211,102,.35)!important;
  transition:var(--ai-transition)!important;
}
.whatsapp-float:hover,#whatsapp-btn:hover{
  transform:scale(1.1)!important;
  box-shadow:0 7px 22px rgba(37,211,102,.45)!important;
}

/* ---------- animaciones ---------- */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
.card{animation:fadeUp .5s ease-out}
.aipi-logo-header{animation:fadeUp .35s ease-out}

/* shimmer en hover */
@keyframes shimmer{
  0%{background-position:-200% center}
  100%{background-position:200% center}
}
.btn-primary:hover::after,input[type="submit"].btn:hover::after{
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.18) 50%,transparent 100%);
  background-size:200% 100%;animation:shimmer 1.5s ease infinite;
}

/* scrollbar */
::-webkit-scrollbar{width:7px}
::-webkit-scrollbar-track{background:#f5f3f8}
::-webkit-scrollbar-thumb{background:#ccc8d6;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--ai-orange)}

/* fix opacity */
.row[style*="opacity: 0.9"]{opacity:1!important}

/* ---------- responsive ---------- */
@media(max-width:768px){
  .card .p-5{padding:1.4rem!important}
  .aipi-logo-header img{max-width:160px}
  .h4,h1.h4{font-size:1.2rem!important}
  .btn-lg{padding:.75rem 1.1rem!important;font-size:.95rem!important}
  .modal-content{border-radius:14px!important;margin:.5rem}
}
@media(max-width:480px){
  .card .p-5{padding:1rem!important}
  .aipi-logo-header{padding:20px 0 5px}
  .aipi-logo-header img{max-width:130px}
}

/* print */
@media print{
  .bg-login-image{background:#fff!important}
  .card{box-shadow:none!important;border:1px solid #ddd!important}
  .card::before{display:none}
}