/* =========================================================
   GalerApp 2.0 - Portal institucional tipo Apps
   ========================================================= */
.ga-wrap{ max-width: 1100px; margin: 0 auto; padding: 22px; }
.ga-center{ text-align:center; }
.ga-card{
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 22px;
  backdrop-filter: blur(10px);
}
.ga-login-card{
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;
  padding: 22px;
  backdrop-filter: blur(10px);
  max-width: 560px;
  margin: 0 auto;
}
.ga-h1{ font-size: 26px; margin: 10px 0 6px; line-height: 1.2; }
.ga-sub{ opacity: .85; margin: 0 0 14px; }
.ga-alert{
  border-radius: 14px;
  padding: 12px 14px;
  margin: 12px 0;
  border: 1px solid rgba(255,255,255,0.14);
}
.ga-ok{ background: rgba(0,255,120,0.08); }
.ga-warn{ background: rgba(255,170,0,0.10); }
.ga-bad{ background: rgba(255,0,70,0.10); }
.ga-brandbar{ display:flex; align-items:center; gap:12px; margin-bottom: 12px; }
.ga-brand-logo{ width: 190px; max-width: 56vw; height:auto; }
.ga-brand-text{ line-height: 1.1; }
.ga-org{ font-weight: 700; font-size: 14px; }
.ga-sys{ opacity:.88; font-size: 13px; margin-top: 2px; }
.ga-user{ opacity:.78; font-size: 13px; margin-top: 2px; }
.ga-footnote{ opacity:.7; margin-top: 14px; font-size: 13px; }
.ga-form label{ display:block; margin:10px 0 6px; opacity:.9; }
.ga-form input[type="password"]{
  width:100%;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(0,0,0,0.22);
  color: inherit;
  padding: 12px 12px;
  box-sizing: border-box;
}
#ga_loginform input[type="text"],
#ga_loginform input[type="password"]{
  width:100%;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(0,0,0,0.22);
  color: inherit;
  padding: 12px 12px;
  box-sizing: border-box;
}
#ga_loginform label{ display:block; margin:10px 0 6px; opacity:.9; }
.ga-btn{
  display:inline-block;
  border-radius: 14px;
  padding: 11px 14px;
  text-decoration:none;
  border: 1px solid rgba(255,255,255,0.18);
  margin-top: 12px;
}
.ga-actions{ margin-top: 10px; }
.ga-primary{ background: rgba(0,90,167,0.32); }
.ga-ghost{ background: rgba(255,255,255,0.06); }
/* ===== Portal ===== */
.ga-topbar{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px; border-radius:16px;
  border:1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  margin-bottom:18px;
}
.ga-brand{ display:flex; align-items:center; gap:14px; }
.ga-logo{
  width: 230px; max-width: 58vw; height:auto;
  padding: 0; border-radius: 0; background: transparent;
}
.ga-section{ margin-top:16px; }
.ga-section-title{
  font-weight:700; font-size:14px; letter-spacing:.2px;
  opacity:.9; margin: 10px 0;
}
/* Grid tipo apps */
.ga-appgrid{ display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px; }
@media (max-width: 950px){ .ga-appgrid{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 720px){ .ga-appgrid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 420px){ .ga-appgrid{ grid-template-columns: 1fr; } }
.ga-app{
  position:relative; display:block; border-radius:16px;
  padding:16px 14px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.05);
  text-decoration:none;
  transition: transform .12s ease, box-shadow .12s ease;
}
.ga-app:hover{ transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,0.18); }
.ga-app-icon{ font-size:42px; line-height:1; margin-bottom:10px; }
.ga-app-title{ font-weight:700; font-size:16px; margin-bottom:4px; }
.ga-app-sub{ opacity:.78; font-size:12.8px; }
.ga-badge{
  position:absolute; top:10px; right:10px;
  font-size:11px; padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.16);
  background: rgba(0,0,0,0.18);
  opacity:.9;
}
