:root{
  --brand:#0EA5E9; --bg:#0b1220; --ink:#0f172a; --muted:#64748b;
  --card:#ffffff; --accent:#14b8a6; --light:#f8fafc;
  --banner-desktop-h: clamp(260px, 46vw, 520px);
  --header-h: 68px; /* altura del header fijo */
}

*{box-sizing:border-box}

/* Resets + bloqueo de scroll horizontal */
html,body{margin:0;padding:0}
html{overflow-y:auto}
body{
  min-height:100dvh;
  overflow-x:hidden;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans','Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';
  color:var(--ink); background:#fff; line-height:1.5;
  display:flex; flex-direction:column;
  padding-top: var(--header-h); /* compensa header fijo */
}

/* Ayudas generales */
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.container{width:min(1100px,92%);margin:0 auto}
.small{font-size:.9rem;color:var(--muted)}
.muted{color:var(--muted)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* =========================
   Header (FIJO)
   ========================= */
.site-header{
  background:#fff; border-bottom:1px solid #e5e7eb;
  position:fixed; top:0; left:0; right:0;
  z-index:1100; width:100%; overflow-x:clip;
}
.header-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:.8rem 0; gap:.8rem;
}
.brand{display:flex; align-items:center; gap:.6rem; font-weight:700; font-size:1.05rem; color:var(--ink); flex-shrink:0}
.brand img{width:34px; height:34px}

/* Menú desktop */
.main-nav{
  display:flex; align-items:center; gap:.7rem; flex-wrap:nowrap; white-space:nowrap;
  z-index:1300; /* por encima de todo en móvil */
  background:transparent;
}
.main-nav a{
  padding:.35rem .55rem;
  border-radius:.6rem;
  color:#0f172a;
  font-weight:600;
  font-size:.95rem;
  white-space:nowrap;
}
.main-nav a.active{ background:#e6f4ff }

/* Botones */
.btn-cta{ background:var(--brand); color:#fff; padding:.6rem .9rem; border-radius:.8rem; font-weight:700; display:inline-block }
.btn-cta.big{ padding:.9rem 1.2rem; font-size:1.05rem }

.white-login{
  background:var(--brand); color:#fff!important;
  padding:.5rem .8rem; font-size:.92rem;
  display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap;
}
.white-login i{ color:#fff!important; line-height:1 }
.white-login:hover{ background:#0284c7; color:#fff!important }

/* Botón LOGOUT (rojo) */
.white-logout{
  background:#ef4444; color:#fff!important;
  padding:.6rem .9rem; border-radius:.8rem; font-weight:700; display:inline-block;
}
.white-logout i{ color:#fff!important; line-height:1 }
.white-logout:hover{ background:#dc2626; color:#fff!important; text-decoration:none }

/* Íconos FA */
.fa-solid{ font-weight:900!important }
.fa-brands{ font-family:"Font Awesome 6 Brands"!important; font-weight:400!important }

/* Botón hamburguesa */
.nav-toggle{
  display:none;
  font-size:1.6rem;
  background:none; border:none; line-height:1;
  position:relative;
  z-index:1400; /* por encima del nav */
}

/* ===== MENÚ MÓVIL ===== */
@media (max-width:900px){
  .main-nav{
    position:fixed;
    inset:var(--header-h,68px) 0 0 0; /* debajo del header fijo */
    transform:translateY(-120%);
    transition:transform .25s ease, opacity .2s ease;
    background:#fff; padding:1rem; border-bottom:1px solid #e5e7eb;
    flex-direction:column; gap:.5rem; white-space:normal;

    /* no bloquea clics cuando está cerrado */
    opacity:0; pointer-events:none;
  }
  .main-nav.open,
  body.nav-open .main-nav{
    transform:translateY(0);
    opacity:1; pointer-events:auto;
  }
  .nav-toggle{ display:block }
  .btn-cta, .white-login, .white-logout{ width:100%; text-align:center }
}

/* ===========================
   BANNER FULL-BLEED 100vw
   =========================== */
.banner-fullbleed{
  position:relative; display:block;
  width:100vw; min-width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  overflow:hidden;
}
@supports not (margin-left: calc(50% - 50vw)) {
  .banner-fullbleed{left:50%; right:50%; margin-left:-50vw; margin-right:-50vw;}
}

/* Slider adaptable por proporción del media */
.banner-slider{
  position:relative; width:100%;
  background:#000;
  overflow:hidden;
}
.banner-slider .slide{ display:none; }
.banner-slider .slide.active{ display:block; }

.banner-slider .slide.image{
  background-size:contain !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  position:relative;
}
.banner-slider .slide.image::before{
  content:"";
  display:block;
  width:100%;
  padding-top: var(--ar, 56.25%);
}

/* Video sin recorte */
.banner-slider .slide.video video{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
}

/* Dots */
.banner-slider .dots{
  position:absolute; left:50%; transform:translateX(-50%);
  bottom:12px; display:flex; gap:.5rem; z-index:2
}
.banner-slider .dots button{
  width:12px; height:12px; border-radius:999px; border:none; cursor:pointer;
  background:rgba(255,255,255,.6); box-shadow:0 0 0 2px rgba(0,0,0,.15) inset
}
.banner-slider .dots button.active{background:#fff}

/* Fallback sin media */
.banner-fallback{
  display:grid; place-items:center; text-align:center; color:#fff;
  background:linear-gradient(120deg,var(--brand),var(--accent)); padding:8rem 1rem
}

/* Secciones / layout general */
.site-main{flex:1 0 auto;display:flex;flex-direction:column;width:100%}
.section{padding:clamp(1.5rem,3vw,2.4rem) 0}
.section h2{margin:0 0 .8rem 0}

/* Hero */
.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem}
.hero h1{font-size:clamp(1.6rem,3vw,2.1rem);margin:.2rem 0}
.hero p{color:var(--muted)}
.hero-bullets{list-style:none;padding-left:0;margin:0;display:grid;gap:.4rem}
.hero-bullets li{padding-left:1.2rem;position:relative}
.hero-bullets li:before{content:"✓";position:absolute;left:0;color:var(--accent)}
@media (max-width:900px){.hero{grid-template-columns:1fr}}

/* Cards / grids comunes */
.cards h2,.trust h2,.cta h2{text-align:center}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.grid-3.tight{gap:.6rem}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.card{background:#fff;border:1px solid #e5e7eb;padding:1rem;border-radius:1rem;box-shadow:0 2px 10px rgba(0,0,0,.03)}
.card h3{margin:.2rem 0}
.card .link{font-weight:700}
@media (max-width:900px){.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}

/* Services / trust */
.service-block{margin:1.6rem 0}
.service-block h2{margin-bottom:.4rem}
.metric{display:grid;place-items:center;padding:1rem;background:#f1f5f9;border-radius:1rem}
.metric span{font-weight:900;font-size:1.8rem}

/* Notices / contact */
.notice{padding:.8rem 1rem;border-radius:.8rem;margin:1rem 0}
.notice.ok{background:#ecfeff;border:1px solid #06b6d4}
.notice.error{background:#fff1f2;border:1px solid #f43f5e}
.contact-form label{display:block;font-weight:600;margin:.6rem 0 .2rem}
.contact-form input,.contact-form textarea{width:100%;padding:.7rem .8rem;border-radius:.7rem;border:1px solid #dbe2ea;outline:none}
.contact-form button{margin-top:.6rem}

/* Footer */
.site-footer{
  background:#0f172a;color:#cbd5e1;
  margin-top:clamp(1.6rem,3vw,2.4rem);
  width:100%;max-width:100%;overflow-x:clip;
}
.site-footer h4{color:#fff;margin-bottom:.4rem}
.site-footer .list-plain{list-style:none;padding-left:0;margin:0}
.site-footer .mini-form{display:flex;gap:.4rem}
.site-footer input{flex:1;border-radius:.6rem;border:none;padding:.6rem}
.site-footer button{border:none;background:var(--brand);color:#fff;padding:.6rem .9rem;border-radius:.6rem}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:1rem;padding:.8rem 0}
.footer-bottom a{color:#9cc9ff}
.footer-bottom .sep{opacity:.6;margin:0 .5rem}

/* ========== CARDS DE SERVICIOS ========== */
.cards-servicios{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1.5rem;margin-top:2rem
}
.servicio-card{
  background:var(--card);border-radius:1rem;padding:1.5rem;
  box-shadow:0 4px 20px rgba(0,0,0,.06);
  transition:transform .25s ease, box-shadow .25s ease;
  display:flex;flex-direction:column;gap:.8rem
}
.servicio-card:hover{transform:translateY(-6px);box-shadow:0 8px 28px rgba(0,0,0,.12)}
.servicio-card .icon{
  width:60px;height:60px;background:var(--brand);color:#fff;
  display:flex;justify-content:center;align-items:center;border-radius:12px;
  font-size:1.6rem;margin-bottom:.5rem;box-shadow:0 4px 10px rgba(14,165,233,.4)
}
.servicio-card h3{margin:.5rem 0;color:var(--ink);font-size:1.3rem}
.servicio-card p{color:var(--muted);font-size:.95rem;line-height:1.6}
.servicio-card ul{list-style:none;padding:0;margin-top:.5rem;display:flex;flex-direction:column;gap:.3rem}
.servicio-card ul li{display:flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--ink)}
.servicio-card ul li i{color:var(--brand);font-size:1rem}
.servicios .cta{margin-top:2.5rem;text-align:center}
.servicios .cta .btn-cta{padding:1rem 1.8rem;font-size:1.05rem;display:inline-flex;align-items:center;gap:.5rem}

/* ===== Asesorías ===== */
.section-asesorias .section-head.colorful{
  text-align:center;max-width:950px;margin:0 auto 1.8rem;padding:1.2rem 1rem;
  background:linear-gradient(180deg, rgba(14,165,233,.10), rgba(20,184,166,.08));
  border:1px solid rgba(2,132,199,.15);border-radius:16px
}
.section-asesorias .section-head.colorful h1{margin:0 0 .4rem 0}
.section-asesorias .section-head .lead{color:var(--ink);opacity:.9;margin:.4rem auto .8rem;line-height:1.7}
.section-asesorias .value-points{
  display:flex;gap:.6rem;justify-content:center;list-style:none;padding:0;margin:.6rem 0 0;flex-wrap:wrap
}
.section-asesorias .value-points li{
  display:inline-flex;align-items:center;gap:.45rem;background:#eaf6ff;color:#0f172a;
  border:1px solid rgba(14,165,233,.25);border-radius:999px;padding:.38rem .7rem;font-weight:700
}
.section-asesorias .value-points i{color:var(--brand)}
.cards-deck.advisory-deck{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.4rem;margin-bottom:2.2rem}
@media (max-width:1000px){.cards-deck.advisory-deck{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.cards-deck.advisory-deck{grid-template-columns:1fr}}
.advisory-card{
  position:relative;background:#fff;border:1px solid #e6f1fb;border-radius:16px;
  padding:1.4rem 1.4rem 1.2rem;box-shadow:0 6px 20px rgba(2,132,199,.06);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease
}
.advisory-card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(2,132,199,.18);border-color:#bfdbfe}
.advisory-card h3{margin:.6rem 0 .4rem;font-size:1.2rem;color:var(--ink)}
.advisory-card p{color:var(--muted);margin:0 0 .6rem}
.advisory-card .mini-list{list-style:none;padding:0;margin:.2rem 0 0;display:grid;gap:.35rem}
.advisory-card .mini-list li{display:flex;align-items:center;gap:.45rem;font-size:.95rem;color:var(--ink)}
.advisory-card .mini-list li::before{content:"•";color:var(--accent);font-weight:900;margin-right:.2rem}
.advisory-card .card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.badge{background:#e6f4ff;color:#075985;border:1px solid #bfdbfe;padding:.25rem .55rem;border-radius:.6rem;font-size:.78rem;font-weight:800}
.badge-accent{background:#e6fffb;color:#0f766e;border-color:#99f6e4}
.badge-dark{background:#e2e8f0;color:#0f172a;border-color:#cbd5e1}
.card-icon{color:var(--brand);font-size:2rem;display:flex;align-items:center;justify-content:center;line-height:1;background:none;box-shadow:none;width:auto;height:auto}
@media (max-width:700px){.card-icon{font-size:1.8rem}}
.deliverables{margin-top:.2rem;margin-bottom:1.4rem}
.deliverables h4{margin:0 0 .6rem 0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;background:#f8fbff;color:#0f172a;border:1px solid #e5f0ff;font-weight:600;font-size:.88rem}
.chip i{color:var(--brand)}
.section-asesorias .section-cta{text-align:center;margin-top:2.6rem}
.section-asesorias .section-cta .btn-cta.big{
  padding:1rem 1.6rem;display:inline-flex;align-items:center;gap:.6rem;
  box-shadow:0 8px 22px rgba(14,165,233,.22);transition:transform .2s ease, box-shadow .2s ease, background .2s ease
}
.section-asesorias .section-cta .btn-cta.big:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(14,165,233,.32)}
.section-asesorias .section-cta .small{margin-top:.5rem;display:block}

/* ===== Portafolio ===== */
.section-portfolio .section-head.colorful{
  text-align:center;max-width:980px;margin:0 auto 1.6rem;padding:1.2rem 1rem;
  background:linear-gradient(180deg, rgba(14,165,233,.10), rgba(20,184,166,.08));
  border:1px solid rgba(2,132,199,.15);border-radius:16px
}
.section-portfolio .section-head.colorful .lead{color:var(--ink);opacity:.9}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media (max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.portfolio-grid{grid-template-columns:1fr}}
.case-card{
  background:#fff;border:1px solid #e6f1fb;border-radius:16px;
  padding:1rem 1rem 1.1rem;box-shadow:0 6px 18px rgba(2,132,199,.08);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease
}
.case-card:hover{transform:translateY(-6px);box-shadow:0 14px 28px rgba(14,165,233,.18);border-color:#bfdbfe}
.case-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;gap:.6rem}
.case-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:var(--brand);color:#fff;font-size:1.4rem;box-shadow:0 6px 14px rgba(14,165,233,.35)}
.case-pill{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;font-size:.86rem;padding:.38rem .7rem;border-radius:.6rem;color:#0f172a;background:#f1f8ff;border:1px solid #cfe8ff}
.case-pill i{color:var(--brand)}
.case-card h3{margin:.2rem 0 .35rem;font-size:1.15rem;color:var(--ink)}
.case-card p{margin:0 0 .6rem;color:var(--muted)}
.case-bullets{list-style:none;padding:0;margin:0 0 .7rem;display:grid;gap:.35rem}
.case-bullets li{display:flex;align-items:center;gap:.45rem}
.case-bullets li::before{content:"•";color:var(--accent);font-weight:900;margin-right:.1rem}
.case-cta .link{font-weight:800;color:var(--brand)}
.case-cta .link:hover{text-decoration:underline}
.section-portfolio .section-cta{text-align:center;margin-top:2rem}
.section-portfolio .section-cta .btn-cta.big{
  padding:1rem 1.6rem;display:inline-flex;align-items:center;gap:.6rem;
  box-shadow:0 8px 22px rgba(14,165,233,.25);transition:transform .2s ease, box-shadow .2s ease
}

/* ====== NOSOTROS ====== */
.section-about-pro{width:100%}
.about-hero{
  background:linear-gradient(135deg,var(--brand),var(--accent));
  color:#fff;text-align:center;padding:3rem 1rem
}
.about-hero h1{margin:0 0 .5rem;font-size:2.2rem}
.about-hero p{max-width:750px;margin:0 auto;font-size:1.1rem;opacity:.95}
.highlight-strip{width:100%;padding:2rem 1rem;color:#fff}
.highlight-strip .strip-content{display:flex;align-items:center;gap:1.2rem;max-width:1000px;margin:0 auto}
.highlight-strip i{font-size:2.5rem;flex-shrink:0}
.highlight-strip h2{margin:0 0 .3rem;font-size:1.5rem}
.highlight-strip p{margin:0;font-size:1rem;line-height:1.6}
.mission-strip{background:var(--brand)}
.vision-strip{background:var(--accent)}
.about-values{text-align:center;margin:2.5rem auto}
.about-values h2{margin-bottom:1.5rem}
.values-grid{gap:1.2rem}
.value-card{
  background:#fff;border:1px solid #e6f1fb;border-radius:12px;padding:1.4rem 1rem;
  box-shadow:0 6px 18px rgba(2,132,199,.08);transition:transform .3s ease, box-shadow .3s ease
}
.value-card:hover{transform:translateY(-6px);box-shadow:0 12px 28px rgba(14,165,233,.2)}
.value-card i{display:block;font-size:2rem;margin-bottom:.6rem;color:var(--brand)}
.value-card h3{margin-bottom:.4rem}
.about-strip{background:var(--brand);color:#fff;text-align:center;padding:1.2rem;font-weight:700;font-size:1.1rem}
.about-strip i{margin-right:.5rem}
.section-cta{text-align:center;padding:2rem 1rem;background:#f8fbff;border-top:1px solid #e5f0ff}
.section-cta h2{margin-bottom:1rem}
.section-cta .btn-cta.big{
  padding:1rem 1.6rem;display:inline-flex;align-items:center;gap:.6rem;
  box-shadow:0 8px 22px rgba(14,165,233,.25);transition:transform .2s ease, box-shadow .2s ease, background .2s ease
}
.section-cta .btn-cta.big:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(14,165,233,.35)}

/* ===== WhatsApp ===== */
.wa-inline{display:inline-flex;align-items:center;gap:.45rem;font-weight:700}
.wa-inline i{color:#25D366;font-size:1.15rem}
.wa-inline:hover{text-decoration:underline}

.wa-float{
  position:fixed; right:16px; bottom:18px;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff;
  display:grid; place-items:center;
  box-shadow:0 10px 24px rgba(0,0,0,.18), 0 6px 10px rgba(0,0,0,.12);
  z-index:60;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.wa-float i{font-size:28px;line-height:1}
.wa-float:hover{transform:translateY(-2px);background:#1ebe57;box-shadow:0 12px 28px rgba(0,0,0,.22), 0 8px 16px rgba(0,0,0,.16)}
@media (max-width:480px){
  .wa-float{ right:12px; bottom:12px; width:54px; height:54px; }
}

/* FA6 Brands fix */
.fa-brands{font-family:"Font Awesome 6 Brands" !important;font-weight:400 !important}
.fa-whatsapp:before{content:"\f232";font-family:"Font Awesome 6 Brands" !important}

/* Botón login en responsive */
@media (max-width:900px){
  .white-login {
    display: flex; align-items: center; justify-content: center;
    gap: .4rem; width: 100%; text-align: center;
  }
}

/* ===== Clientes ===== */
.section-clients .section-head.colorful {
  text-align:center;
  max-width:980px;
  margin:0 auto 1.6rem;
  padding:1.2rem 1rem;
  background:linear-gradient(180deg, rgba(14,165,233,.10), rgba(20,184,166,.08));
  border:1px solid rgba(2,132,199,.15);
  border-radius:16px;
}
.section-clients .section-head .lead { color:var(--ink); opacity:.95; }

.logos-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:1.5rem; justify-items:center; margin-top:1.8rem; }

.logo-card {
  background:#fff; border:1px solid #e6f1fb; border-radius:16px;
  width:260px; height:150px; display:flex; justify-content:center; align-items:center;
  box-shadow:0 6px 18px rgba(2,132,199,.08); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.logo-card:hover { transform:translateY(-4px); border-color:#bfdbfe; box-shadow:0 12px 28px rgba(14,165,233,.18); }

.logo-box { width:90%; height:80%; display:flex; align-items:center; justify-content:center; }
.logo-box img { width:100%; height:100%; object-fit:contain; filter:grayscale(100%) contrast(1.05) opacity(.9); transition:filter .22s ease, transform .2s ease; }
.logo-card:hover .logo-box img { filter:grayscale(0%) opacity(1); transform:scale(1.04); }

/* Excepciones logos */
.logo-card.logo-bodega .logo-box { width: 100%; height: 100%; }
.logo-card.logo-bodega .logo-box img { width:auto; height:140%; max-height:none; object-fit:contain; filter:none; }
.logo-card.logo-gia .logo-box img { filter:none !important; opacity:1 !important; }
.logo-card.logo-gia:hover .logo-box img { transform:scale(1.04); }

.note-clients { margin-top:1.2rem; text-align:center; }
.note-clients i { color:var(--brand); margin-right:.4rem; }

@media (max-width:900px) { .logos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width:600px) { .logos-grid { grid-template-columns: 1fr; } .logo-card { width:80%; max-width:280px; } }

/* ===== User box opcional ===== */
.userbox{
  display:inline-flex; align-items:center; gap:.45rem;
  background:#f1f5f9; border:1px solid #e2e8f0;
  padding:.35rem .55rem; border-radius:.8rem;
}
.userbox .hello{font-weight:800}
.userbox .role{
  background:#e6f4ff; border:1px solid #bfdbfe;
  padding:.12rem .45rem; border-radius:.6rem;
  font-size:.78rem; font-weight:800; white-space:nowrap;
}
.btn-logout{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.35rem .55rem; border-radius:.6rem;
  border:1px solid #fecaca; background:#fff1f2; color:#991b1b; text-decoration:none;
}
.btn-logout:hover{ background:#ffe4e6 }
/* Utilidad: forzar íconos Font Awesome en blanco */
.icon-white { color: #fff !important; }

.swal2-container{ z-index: 30000 !important; } /* por encima del header/nav */
  
/* ====== Filtros (admin tickets) ====== */
.filter-card{
  background:#f8fbff;
  border-color:#e5f0ff;
}

.filter-form label{
  display:block;
  font-weight:700;
  margin:.5rem 0 .25rem;
}

/* Aplica a todos los inputs "de texto" sin depender de type= */
.filter-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]),
.filter-form select,
.filter-form textarea{
  box-sizing:border-box;
  width:100%;
  padding:.7rem .9rem;
  border:1px solid #dbe2ea;
  border-radius:.7rem;
  background:#fff;
  color:#0f172a;
  transition:border-color .15s, box-shadow .15s;
}

.filter-form input::placeholder,
.filter-form textarea::placeholder{ color:#94a3b8; }

/* Focus consistente */
.filter-form input:focus,
.filter-form select:focus,
.filter-form textarea:focus{
  outline:none;
  border-color:#93c5fd;
  box-shadow:0 0 0 3px rgba(147,197,253,.35);
}

/* Select estilizado con flecha */
.filter-form select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position:right .7rem center;
  background-size:14px;
  padding-right:2rem;
}

.filter-form .actions{
  align-self:end;
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}
  
 
