/* ==========================================================
   Portal Monagas — Cambios 5
   Interactividad futurista manteniendo la identidad institucional.
   ========================================================== */
:root{
  --future-blue:var(--azul,#1378b9);
  --future-cyan:var(--azul-claro,#74c1eb);
  --future-line:rgba(116,193,235,.34);
  --future-glow:rgba(19,120,185,.20);
  --future-ease:cubic-bezier(.16,1,.3,1);
}

/* Pantalla de carga */
.portal-loader{
  position:fixed;
  inset:0;
  z-index:20000;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:10px;
  background:
    linear-gradient(rgba(255,255,255,.94),rgba(247,251,254,.96)),
    repeating-linear-gradient(90deg,transparent 0 38px,rgba(19,120,185,.05) 39px 40px),
    repeating-linear-gradient(0deg,transparent 0 38px,rgba(19,120,185,.05) 39px 40px);
  color:var(--texto);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .34s ease,visibility .34s ease;
}
.portal-loader.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:all;
}
.portal-loader::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 48%,rgba(116,193,235,.25),transparent 260px);
  animation:futurePulse 2s ease-in-out infinite;
}
.portal-loader-core{
  position:relative;
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
  color:#fff;
  border-radius:50%;
  background:linear-gradient(135deg,var(--future-cyan),var(--future-blue));
  box-shadow:0 0 0 8px rgba(116,193,235,.08),0 22px 60px rgba(19,120,185,.26);
}
.portal-loader-core i{font-size:1.6rem}
.portal-loader-orbit{
  position:absolute;
  inset:-12px;
  border-radius:50%;
  border:1px solid rgba(19,120,185,.32);
  border-top-color:var(--future-blue);
  animation:futureOrbit 1.25s linear infinite;
}
.portal-loader-orbit.orbit-b{inset:-21px;animation-duration:1.9s;animation-direction:reverse;border-style:dashed}
.portal-loader strong{position:relative;font-size:1.02rem;letter-spacing:.04em}
.portal-loader > span:not(.portal-loader-orbit){position:relative;color:var(--texto-suave);font-size:.82rem;font-weight:650}
.portal-loader-track{
  position:relative;
  width:220px;height:3px;margin-top:8px;overflow:hidden;border-radius:999px;background:rgba(19,120,185,.10)
}
.portal-loader-track span{display:block;width:40%;height:100%;background:var(--gradiente);animation:futureTrack 1.15s var(--future-ease) infinite}

/* Futurismo sutil en secciones */
main section{position:relative;isolation:isolate}
main section::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:-1;
  width:180px;height:180px;
  border:1px solid rgba(116,193,235,.12);
  border-radius:38% 62% 56% 44%;
  right:3%;top:8%;
  opacity:.55;
  animation:futureMorph 12s ease-in-out infinite alternate;
}
.section-head .kicker{
  position:relative;
  overflow:hidden;
}
.section-head .kicker::after{
  content:"";
  position:absolute;left:-35%;bottom:0;width:35%;height:2px;
  background:linear-gradient(90deg,transparent,var(--future-cyan),transparent);
  animation:futureScan 3.4s ease-in-out infinite;
}

/* Tarjetas avanzadas */
.card,.secretaria-card,.direction-item,.system-card,.event-card,.featured-news-card,.home-gallery-item{
  position:relative;
  overflow:hidden;
}
.card::before,.secretaria-card::before,.direction-item::before,.system-card::before{
  content:"";
  position:absolute;
  pointer-events:none;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(120deg,transparent 12%,rgba(116,193,235,.55) 46%,transparent 72%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:0;
  transform:translateX(-35%);
  transition:opacity .28s ease;
}
.card:hover::before,.secretaria-card:hover::before,.direction-item:hover::before,.system-card:hover::before{
  opacity:1;
  animation:futureBorder 1.5s var(--future-ease) both;
}
.card:hover,.secretaria-card:hover,.direction-item:hover,.system-card:hover{
  box-shadow:0 20px 52px rgba(15,55,85,.14),0 0 0 1px rgba(116,193,235,.12);
}
.portal-icon,.secretaria-card .icon,.direction-future-icon{
  position:relative;
  overflow:hidden;
}
.portal-icon::after,.secretaria-card .icon::after,.direction-future-icon::after{
  content:"";
  position:absolute;inset:-50%;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);
  transform:translateX(-70%) rotate(8deg);
  animation:futureIconSweep 4.8s ease-in-out infinite;
}

/* Header Acceder */
.header-access{white-space:nowrap;box-shadow:0 12px 28px rgba(19,120,185,.16)}
.header-access i{transition:transform .24s var(--future-ease)}
.header-access:hover i{transform:translateX(3px)}

/* Secretarías */
.institutional-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin:0 0 26px;
  padding:12px;
  border:1px solid var(--linea);
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:var(--sombra-sm);
  backdrop-filter:blur(12px);
}
.institutional-search{
  display:flex;align-items:center;gap:10px;
  min-height:50px;padding:0 16px;border-radius:16px;
  background:var(--fondo);border:1px solid var(--linea);
}
.institutional-search i{color:var(--azul)}
.institutional-search input{
  width:100%;border:0;outline:0;background:transparent;font:inherit;color:var(--texto);
}
.institutional-count{
  display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:0 14px;border-radius:999px;
  color:var(--azul);font-weight:850;background:rgba(116,193,235,.14);
}
.secretaria-card{
  min-height:330px;
  padding:26px!important;
  border-radius:28px!important;
}
.secretaria-card .secretaria-number{
  position:absolute;right:18px;top:15px;
  color:rgba(19,120,185,.10);font-size:3.2rem;font-weight:900;line-height:1;
}
.secretaria-card .icon{
  width:62px;height:62px;display:grid;place-items:center;
  border-radius:22px;background:var(--gradiente);color:#fff;font-size:1.35rem;
  box-shadow:0 15px 34px rgba(19,120,185,.23);
}
.secretaria-card .card-link{width:100%;justify-content:space-between}
.secretaria-card.is-filtered{display:none!important}

.direction-list{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
.direction-item{
  min-height:150px;
  padding:20px 20px 20px 76px!important;
  border-radius:24px!important;
  transition:transform .28s var(--future-ease),box-shadow .28s ease,border-color .28s ease!important;
}
.direction-item:hover{transform:translateY(-5px)!important;border-color:rgba(19,120,185,.30)!important}
.direction-future-icon{
  position:absolute;left:18px;top:20px;
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:15px;background:var(--gradiente);color:#fff;
  box-shadow:0 10px 26px rgba(19,120,185,.20);
}
.direction-filter-wrap{margin:0 0 18px}
.direction-filter{
  width:100%;min-height:48px;border:1px solid var(--linea);border-radius:16px;
  padding:0 15px 0 44px;font:inherit;background:var(--panel);color:var(--texto);
}
.direction-filter-wrap{position:relative}
.direction-filter-wrap i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--azul)}
.direction-item.is-filtered{display:none!important}

/* Página individual de dirección */
.direccion-box,.secretarias-box{
  background:
    radial-gradient(circle at 90% 10%,rgba(116,193,235,.20),transparent 250px),
    var(--gradiente-soft)!important;
}
.direccion-box::before,.secretarias-box::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(19,120,185,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(19,120,185,.04) 1px,transparent 1px);
  background-size:28px 28px;
  mask-image:linear-gradient(to right,transparent,black 42%,black);
}
.secretarias-box{position:relative;overflow:hidden}

/* Bot de posición determinista */
#chatAssistant .chat-window.dragging{transition:none!important;user-select:none}
#chatAssistant .chat-head{cursor:grab}
#chatAssistant .chat-window.dragging .chat-head{cursor:grabbing}

/* Subidas administrativas */
.image-upload-control{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;align-items:center;
  padding:14px;border:1px solid #dfeaf1;border-radius:18px;background:#f8fbfd;
}
.image-upload-control.full{grid-column:1/-1}
.image-upload-control .upload-copy{min-width:0}
.image-upload-control .upload-copy strong{display:block;color:#172033}
.image-upload-control .upload-copy span{display:block;color:#697787;font-size:.8rem;font-weight:650;margin-top:3px}
.image-upload-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important}
.btn-upload{cursor:pointer!important;white-space:nowrap}
.image-upload-file{grid-column:1/-1;color:#697787;font-size:.78rem;font-weight:700;min-height:18px}
.image-upload-preview{grid-column:1/-1;display:flex;align-items:center;gap:14px}
.image-upload-preview img{width:150px;height:92px;object-fit:contain;background:#fff;border:1px solid #dfeaf1;border-radius:14px;padding:5px}

/* Animaciones */
@keyframes futureOrbit{to{transform:rotate(360deg)}}
@keyframes futurePulse{50%{opacity:.65;transform:scale(1.04)}}
@keyframes futureTrack{0%{transform:translateX(-130%)}100%{transform:translateX(350%)}}
@keyframes futureScan{0%,15%{transform:translateX(0)}70%,100%{transform:translateX(390%)}}
@keyframes futureBorder{from{transform:translateX(-50%)}to{transform:translateX(50%)}}
@keyframes futureIconSweep{0%,55%{transform:translateX(-80%) rotate(8deg)}75%,100%{transform:translateX(80%) rotate(8deg)}}
@keyframes futureMorph{to{transform:translate(-24px,28px) rotate(22deg);border-radius:58% 42% 38% 62%}}
@keyframes futureFloatIn{
  from{opacity:0;filter:blur(5px);transform:translateY(24px) scale(.985)}
  to{opacity:1;filter:none;transform:none}
}
.ux-reveal{filter:blur(4px);transform:translateY(24px) scale(.992)!important}
.ux-reveal.ux-visible{filter:none;transform:none!important}
.page-box,.home-title,.home-badge{animation:futureFloatIn .75s var(--future-ease) both}
.home-badge{animation-delay:.08s}.home-title{animation-delay:.14s}

@media(max-width:900px){
  .institutional-toolbar{grid-template-columns:1fr}
  .institutional-count{justify-self:start}
  .direction-list{grid-template-columns:1fr!important}
}
@media(max-width:720px){
  .header-access span{display:none}
  .header-access{min-width:46px;padding-inline:14px!important}
  .image-upload-control{grid-template-columns:1fr}
  .btn-upload{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .portal-loader::before,.portal-loader-orbit,.portal-loader-track span,
  .portal-icon::after,.secretaria-card .icon::after,.direction-future-icon::after,
  main section::after,.section-head .kicker::after{animation:none!important}
  .ux-reveal{filter:none!important}
}


/* ==========================================================
   Cambios 6 — elevación, glow y espacios seguros de animación
   ========================================================== */
.grid-5,.grid-4,.grid-3,.grid-2,.secretarias-grid,.sistemas-grid,.direction-list,.home-gallery-strip{
  overflow:visible!important;
  padding-top:14px!important;
  padding-bottom:28px!important;
}
.card,.secretaria-card,.direction-item,.system-card,.sistema-card,.featured-news-card,.home-gallery-item,.info-item,.system-row{
  transform-origin:center bottom;
  will-change:transform,box-shadow,filter;
  transition:transform .38s var(--future-ease),box-shadow .38s ease,border-color .38s ease,filter .38s ease!important;
}
.card:hover,.secretaria-card:hover,.direction-item:hover,.system-card:hover,.sistema-card:hover,.featured-news-card:hover,.home-gallery-item:hover,.info-item:hover,.system-row:hover{
  transform:translateY(-10px) scale(1.012)!important;
  border-color:rgba(91,198,255,.56)!important;
  box-shadow:0 28px 58px rgba(10,49,83,.18),0 0 28px rgba(43,166,230,.20),0 0 0 1px rgba(116,193,235,.18)!important;
  filter:saturate(1.04);
}
.card:hover .icon,.secretaria-card:hover .icon,.direction-item:hover .direction-future-icon,.system-card:hover .portal-icon,.sistema-card:hover .icon{
  box-shadow:0 15px 34px rgba(19,120,185,.30),0 0 26px rgba(90,204,255,.38)!important;
  transform:translateY(-2px) scale(1.04);
}
.portal-icon,.icon,.direction-future-icon{transition:transform .34s var(--future-ease),box-shadow .34s ease!important}

/* Botones: centro real y contraste legible */
.btn,.btn-primary,.btn-light,.btn-soft,.card-link,.bubble-link,.chat-suggestion{
  text-align:center!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1.2!important;
}
a.btn-primary,button.btn-primary,.btn-primary,.header-access,.btn-upload.btn-primary,
.chat-form button,.chat-btn{color:#fff!important}
.btn-primary i,.header-access i,.btn-upload i{color:currentColor!important}

/* Miniatura oficial de Sistemas */
.system-thumbnail{
  width:68px;height:68px;display:grid;place-items:center;overflow:hidden;
  border-radius:22px;background:#fff;border:1px solid rgba(116,193,235,.34);
  box-shadow:0 14px 32px rgba(19,120,185,.18);
}
.system-thumbnail img{width:100%;height:100%;object-fit:contain;padding:5px;display:block}
.system-detail-thumbnail{width:96px;height:96px;border-radius:28px;margin-bottom:18px}

.identifier-badge{
  display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:7px 11px;
  border-radius:999px;background:rgba(116,193,235,.14);border:1px solid rgba(116,193,235,.34);
  color:var(--azul);font-size:.78rem;font-weight:850;letter-spacing:.03em;
}
