:root {
  color-scheme: light;
  --navy-950: #021327;
  --navy-900: #031a35;
  --navy-850: #042446;
  --navy-800: #06315a;
  --cyan-500: #2fc9f2;
  --cyan-400: #5edcff;
  --white: #ffffff;
  --ink: #061b39;
  --ease-focus: cubic-bezier(0.22, 1, 0.36, 1);
  --header-height: clamp(3.5rem, 7vh, 4.25rem);
  --footer-height: clamp(7.2rem, 15vh, 9.2rem);
}

* { box-sizing: border-box; }

html {
  min-width: 320px;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  overflow-x: hidden;
  color: var(--white);
  background: var(--navy-950);
  font-family: "Manrope", "Nunito Sans", "Avenir Next", "Segoe UI", sans-serif;
  line-height: 1.5;
}

button,
a { font: inherit; }

a { color: inherit; }

.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;
}

.hub-header {
  position: relative;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: var(--header-height);
  padding: 0 clamp(1rem, 3.2vw, 3rem);
  background: #fbfdff;
  border-bottom: 1px solid #e5ebf2;
}

.profile-button {
  display: grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  color: var(--ink);
  border: 2px solid currentColor;
  border-radius: 50%;
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.profile-button svg {
  width: 1.55rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.profile-button:hover {
  color: #0a3970;
  background: #edf7ff;
  transform: translateY(-1px);
}

.hub-main {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: calc(100svh - var(--header-height) - var(--footer-height));
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: clamp(1.6rem, 3.5vh, 3rem) clamp(1rem, 4vw, 4rem) clamp(1.2rem, 2.5vh, 2rem);
  background:
    radial-gradient(circle at 50% 105%, rgba(16, 93, 145, 0.22), transparent 40%),
    linear-gradient(145deg, var(--navy-900) 0%, var(--navy-850) 48%, var(--navy-950) 100%);
}

.hub-main::before {
  position: absolute;
  z-index: -2;
  top: 0;
  right: 0;
  width: min(72vw, 78rem);
  height: min(70%, 42rem);
  content: "";
  background-image: url("./legal-hub-hero.png");
  background-position: right top;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.7;
  -webkit-mask-image: linear-gradient(to left, #000 12%, rgba(0, 0, 0, 0.94) 37%, rgba(0, 0, 0, 0.34) 72%, transparent 100%);
  mask-image: linear-gradient(to left, #000 12%, rgba(0, 0, 0, 0.94) 37%, rgba(0, 0, 0, 0.34) 72%, transparent 100%);
}

.hub-main::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(3, 26, 53, 0.03) 0%, rgba(3, 26, 53, 0.36) 56%, rgba(2, 19, 39, 0.86) 100%),
    linear-gradient(90deg, rgba(3, 26, 53, 0.76) 0%, rgba(3, 26, 53, 0.12) 58%, rgba(3, 26, 53, 0.08) 100%);
}

.hero-copy {
  position: relative;
  z-index: 2;
  width: min(100%, 72rem);
  margin: 0 auto clamp(0.8rem, 2vh, 1.35rem);
  text-align: center;
}

.hero-title {
  margin: 0;
  color: #fff;
  font-size: clamp(2.35rem, 5.2vw, 5rem);
  font-weight: 770;
  letter-spacing: -0.055em;
  line-height: 1.02;
  text-shadow: 0 4px 22px rgba(0, 0, 0, 0.24);
  text-wrap: balance;
}

.hero-title strong {
  color: var(--cyan-400);
  font-weight: inherit;
}

.hero-copy p {
  margin: clamp(0.55rem, 1.3vh, 0.9rem) 0 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(1rem, 1.8vw, 1.55rem);
  font-weight: 420;
  letter-spacing: -0.018em;
}

.apps-carousel {
  --card-width: clamp(13.4rem, 18.5vw, 17.25rem);
  --card-height: clamp(15.25rem, 29vh, 19rem);
  --card-step: clamp(13.7rem, 20.2vw, 18rem);
  position: relative;
  z-index: 3;
  width: min(100%, 92rem);
  height: clamp(18.5rem, 37vh, 23.5rem);
  margin: 0 auto;
  touch-action: pan-y;
}

.carousel-stage {
  position: absolute;
  inset: 0 clamp(2.5rem, 4vw, 4rem) 1.2rem;
  overflow: visible;
  perspective: 90rem;
}

.app-card {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  width: var(--card-width);
  height: var(--card-height);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(0.8rem, 1.6vh, 1.1rem);
  padding: 1.35rem 1rem 1.15rem;
  color: #f8fdff;
  text-align: center;
  text-decoration: none;
  background: linear-gradient(145deg, rgba(8, 70, 125, 0.94), rgba(3, 35, 68, 0.98)), var(--navy-850);
  border: 1px solid rgba(52, 202, 255, 0.62);
  border-radius: clamp(1.35rem, 2vw, 1.75rem);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24);
  opacity: 0;
  outline: none;
  cursor: pointer;
  transform: translate(-50%, -50%) translateX(calc(var(--relative, 0) * var(--card-step))) scale(0.74);
  transition:
    transform 560ms var(--ease-focus),
    opacity 560ms var(--ease-focus),
    box-shadow 560ms var(--ease-focus),
    border-color 560ms var(--ease-focus),
    filter 560ms var(--ease-focus);
  will-change: transform, opacity;
}

.app-card::after {
  position: absolute;
  right: 16%;
  bottom: -1rem;
  left: 16%;
  height: 1.35rem;
  content: "";
  background: rgba(37, 195, 243, 0.2);
  border-radius: 50%;
  opacity: 0;
  filter: blur(0.75rem);
  transition: opacity 560ms var(--ease-focus);
}

.app-card[data-position="0"] {
  z-index: 5;
  border-color: rgba(79, 218, 255, 0.96);
  opacity: 1;
  filter: saturate(1.08);
  box-shadow: 0 0 20px rgba(0, 199, 255, 0.27), 0 18px 40px rgba(0, 0, 0, 0.3);
  transform: translate(-50%, -50%) translateY(-0.55rem) translateX(0) scale(1.15);
}

.app-card[data-position="0"]::after { opacity: 1; }

.app-card[data-position="-1"],
.app-card[data-position="1"] {
  z-index: 4;
  opacity: 0.9;
  filter: saturate(0.82) brightness(0.9);
  transform: translate(-50%, -50%) translateX(calc(var(--relative) * var(--card-step))) scale(0.91);
}

.app-card[data-position="-2"],
.app-card[data-position="2"] {
  z-index: 3;
  opacity: 0.58;
  filter: saturate(0.68) brightness(0.78);
  transform: translate(-50%, -50%) translateX(calc(var(--relative) * var(--card-step))) scale(0.82);
}

.app-card[data-position="-3"],
.app-card[data-position="3"] {
  z-index: 2;
  opacity: 0.16;
  pointer-events: none;
}

.app-card[data-position="-1"]:hover,
.app-card[data-position="1"]:hover {
  border-color: rgba(91, 220, 255, 0.94);
  filter: saturate(0.96) brightness(1.03);
  transform: translate(-50%, -50%) translateY(-0.25rem) translateX(calc(var(--relative) * var(--card-step))) scale(0.94);
}

.app-card:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

.app-icon {
  display: grid;
  width: clamp(4.4rem, 6vw, 5.6rem);
  height: clamp(4.4rem, 6vw, 5.6rem);
  place-items: center;
  color: #ecfbff;
  filter: drop-shadow(0 0 0.45rem rgba(43, 204, 248, 0.18));
}

.app-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.app-name {
  max-width: 100%;
  font-size: clamp(1.12rem, 1.75vw, 1.48rem);
  font-weight: 710;
  letter-spacing: -0.035em;
  line-height: 1.08;
  white-space: nowrap;
}

.app-name .initial {
  color: #fff;
  font-size: 1.13em;
  font-weight: 820;
  line-height: 0;
}

.app-badge {
  min-width: 5rem;
  padding: 0.24rem 1.15rem 0.28rem;
  color: #e7faff;
  font-size: 0.78rem;
  font-weight: 720;
  letter-spacing: 0.11em;
  line-height: 1.15;
  background: rgba(2, 23, 49, 0.62);
  border: 1px solid rgba(73, 215, 255, 0.86);
  border-radius: 999px;
  box-shadow: 0 0 0.65rem rgba(36, 197, 242, 0.14);
}

.carousel-arrow {
  position: absolute;
  z-index: 12;
  top: 50%;
  display: grid;
  width: clamp(2.65rem, 4vw, 3.35rem);
  height: clamp(2.65rem, 4vw, 3.35rem);
  padding: 0;
  place-items: center;
  color: #fff;
  background: rgba(7, 43, 78, 0.72);
  border: 1px solid rgba(217, 246, 255, 0.76);
  border-radius: 50%;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease, opacity 180ms ease;
  backdrop-filter: blur(0.45rem);
}

.carousel-arrow--previous { left: 0; }
.carousel-arrow--next { right: 0; }

.carousel-arrow svg {
  width: 1.4rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.carousel-arrow:hover:not(:disabled) {
  background: rgba(11, 66, 111, 0.88);
  border-color: #fff;
  transform: translateY(-50%) scale(1.04);
}

.carousel-arrow:focus-visible {
  outline: 3px solid var(--cyan-400);
  outline-offset: 3px;
}

.carousel-arrow:disabled {
  opacity: 0.28;
  cursor: default;
}

.carousel-dots {
  position: absolute;
  z-index: 15;
  bottom: 0.15rem;
  left: 50%;
  display: flex;
  gap: 0.48rem;
  transform: translateX(-50%);
}

.carousel-dot {
  width: 0.42rem;
  height: 0.42rem;
  padding: 0;
  background: rgba(255, 255, 255, 0.38);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  transition: width 220ms ease, background-color 220ms ease;
}

.carousel-dot[aria-current="true"] {
  width: 1.35rem;
  background: var(--cyan-400);
  border-radius: 999px;
}

.portal-access {
  position: relative;
  z-index: 5;
  width: min(100%, 72rem);
  margin: 1.4rem auto 0;
  padding: clamp(1.1rem, 2.5vw, 1.8rem);
  background: rgba(2, 25, 51, 0.86);
  border: 1px solid rgba(78, 202, 240, 0.32);
  border-radius: 1.5rem;
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(0.7rem);
}

.portal-access__heading { text-align: center; }
.portal-access__eyebrow { color: var(--cyan-400); font-size: 0.72rem; font-weight: 750; letter-spacing: 0.12em; text-transform: uppercase; }
.portal-access h2 { margin: 0.2rem 0 0; font-size: 1.35rem; }
.portal-access__intro { margin: 0.6rem 0 1rem; color: rgba(255, 255, 255, 0.74); text-align: center; }
.access-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.8rem; }
.access-card { padding: 1rem; background: rgba(7, 55, 98, 0.72); border: 1px solid rgba(70, 198, 236, 0.27); border-radius: 1rem; }
.access-card h3 { margin: 0; font-size: 1rem; }
.access-card > span { color: rgba(255, 255, 255, 0.66); font-size: 0.76rem; }
.access-card p { margin: 0.7rem 0 0; color: rgba(255, 255, 255, 0.7); font-size: 0.84rem; }
.access-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.access-links a,
.access-request { padding: 0.42rem 0.75rem; color: #eafdff; font-size: 0.78rem; font-weight: 700; text-decoration: none; background: rgba(18, 113, 164, 0.46); border: 1px solid rgba(88, 218, 255, 0.48); border-radius: 999px; }
.access-request { display: block; margin: 1rem auto 0; cursor: pointer; }
.portal-services { color: rgba(255, 255, 255, 0.72); font-size: 0.84rem; }
.portal-message { padding: 0.7rem 0.9rem; text-align: center; background: rgba(48, 158, 205, 0.16); border: 1px solid rgba(80, 213, 255, 0.32); border-radius: 0.8rem; }
.portal-message--error { color: #ffe7e7; background: rgba(150, 37, 37, 0.2); border-color: rgba(255, 151, 151, 0.4); }
.access-empty-title { text-align: center; }

.hub-footer {
  position: relative;
  z-index: 20;
  display: grid;
  width: 100%;
  min-height: var(--footer-height);
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 26rem);
  align-items: stretch;
  padding: 0 clamp(1rem, 3.2vw, 3rem);
  color: var(--ink);
  background: #fbfdff;
  border-top: 1px solid #dfe8f2;
}

.footer-navigation {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(7rem, 1fr));
}

.footer-item {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.32rem;
  padding: 0.7rem 1rem;
  color: var(--ink);
  text-decoration: none;
  transition: color 180ms ease, background-color 180ms ease;
}

.footer-item + .footer-item::before {
  position: absolute;
  top: 19%;
  bottom: 19%;
  left: 0;
  width: 1px;
  content: "";
  background: #d5dee9;
}

.footer-item svg {
  width: clamp(2rem, 3vw, 2.8rem);
  height: clamp(2rem, 3vw, 2.8rem);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-item span {
  font-size: clamp(0.72rem, 1.05vw, 0.94rem);
  font-weight: 580;
}

.footer-item:hover { color: #0b4d84; background: #f2f8fc; }

.footer-session {
  display: grid;
  place-items: center;
  padding-left: clamp(1rem, 3vw, 2.4rem);
  border-left: 1px solid #d5dee9;
}

.footer-session form { width: 100%; }

.footer-login {
  display: flex;
  width: 100%;
  min-height: 3.8rem;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.8rem 1.5rem;
  color: #fff;
  font-size: clamp(1rem, 1.55vw, 1.35rem);
  font-weight: 720;
  text-decoration: none;
  background: #062c57;
  border: 1px solid #0e5790;
  border-radius: 999px;
  box-shadow: 0 0.5rem 1.2rem rgba(5, 40, 78, 0.16);
  cursor: pointer;
  transition: background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.footer-login svg {
  width: 1.7rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-login:hover {
  background: #0a3a6d;
  box-shadow: 0 0.7rem 1.3rem rgba(5, 40, 78, 0.2);
  transform: translateY(-2px);
}

.footer-item:focus-visible,
.footer-login:focus-visible {
  outline: 3px solid var(--cyan-500);
  outline-offset: 3px;
}

/* Compatibilidade visual da tela de login do portal, que compartilha este CSS. */
.site-header {
  display: flex;
  min-height: var(--header-height);
  align-items: center;
  padding: 0 clamp(1rem, 3.2vw, 3rem);
  color: var(--ink);
  background: #fbfdff;
  border-bottom: 1px solid #e5ebf2;
}

.marca {
  display: inline-flex;
  flex-direction: column;
  color: var(--ink);
}

.marca strong { font-size: 1rem; letter-spacing: 0.025em; }
.marca-sub { color: #68798d; font-size: 0.7rem; font-weight: 650; letter-spacing: 0.09em; text-transform: uppercase; }

.site-main.portal-entrar {
  display: grid;
  min-height: calc(100svh - var(--header-height));
  place-content: center;
  padding: 2rem 1rem;
  text-align: center;
  background:
    radial-gradient(circle at 70% 15%, rgba(48, 193, 235, 0.12), transparent 30%),
    linear-gradient(145deg, var(--navy-900), var(--navy-950));
}

.portal-entrar .hero { max-width: 34rem; margin-bottom: 1.5rem; }
.portal-entrar .hero-titulo { margin: 0; color: #fff; font-size: clamp(2rem, 5vw, 3.4rem); letter-spacing: -0.04em; }
.portal-entrar .hero-desc { margin: 0.65rem 0 0; color: rgba(255, 255, 255, 0.74); }
.portal-botao-google { display: flex; justify-content: center; }
.portal-erro { max-width: 34rem; margin: 1rem auto 0; padding: 0.7rem 0.9rem; color: #ffe7e7; background: rgba(150, 37, 37, 0.2); border: 1px solid rgba(255, 151, 151, 0.4); border-radius: 0.8rem; }
.portal-erro[hidden] { display: none; }

@media (max-width: 64rem) {
  .hub-main::before { width: 86vw; opacity: 0.58; }
  .apps-carousel { --card-width: 14.75rem; --card-height: 16.7rem; --card-step: 15.6rem; }
  .app-card[data-position="-2"],
  .app-card[data-position="2"],
  .app-card[data-position="-3"],
  .app-card[data-position="3"] { opacity: 0; pointer-events: none; }
}

@media (max-width: 46rem) {
  :root { --footer-height: 6.6rem; }

  .hub-main {
    min-height: calc(100svh - var(--header-height) - var(--footer-height));
    justify-content: flex-start;
    padding: 1.55rem 0.65rem 1rem;
  }

  .hub-main::before {
    width: 100%;
    height: 48%;
    opacity: 0.36;
    -webkit-mask-image: linear-gradient(to left, #000 0%, rgba(0, 0, 0, 0.45) 55%, transparent 100%);
    mask-image: linear-gradient(to left, #000 0%, rgba(0, 0, 0, 0.45) 55%, transparent 100%);
  }

  .hero-copy { padding: 0 0.65rem; }
  .hero-title { font-size: clamp(2.25rem, 12vw, 3.5rem); }
  .hero-copy p { max-width: 24rem; margin-right: auto; margin-left: auto; font-size: 0.96rem; }

  .apps-carousel {
    --card-width: min(72vw, 17rem);
    --card-height: 16.6rem;
    --card-step: min(77vw, 18rem);
    height: 19.7rem;
  }

  .carousel-stage { right: 1.7rem; left: 1.7rem; }
  .carousel-arrow { width: 2.45rem; height: 2.45rem; }
  .carousel-arrow--previous { left: 0.1rem; }
  .carousel-arrow--next { right: 0.1rem; }

  .app-card[data-position="-1"],
  .app-card[data-position="1"] { opacity: 0.38; filter: brightness(0.73); transform: translate(-50%, -50%) translateX(calc(var(--relative) * var(--card-step))) scale(0.82); }
  .app-card[data-position="0"] { transform: translate(-50%, -50%) translateY(-0.3rem) scale(1.04); }

  .hub-footer {
    grid-template-columns: minmax(0, 1fr) minmax(7.5rem, 10.5rem);
    padding: 0 0.6rem;
  }

  .footer-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-item { gap: 0.15rem; padding: 0.5rem 0.2rem; }
  .footer-item svg { width: 1.65rem; height: 1.65rem; }
  .footer-item span { overflow: hidden; max-width: 100%; font-size: 0.64rem; text-overflow: ellipsis; }
  .footer-session { padding-left: 0.6rem; }
  .footer-login { min-height: 3.1rem; gap: 0.42rem; padding: 0.55rem 0.7rem; font-size: 0.9rem; }
  .footer-login svg { width: 1.35rem; }
}

@media (max-height: 46rem) and (min-width: 47rem) {
  .hub-main { padding-top: 1rem; padding-bottom: 0.7rem; }
  .hero-title { font-size: clamp(2.2rem, 4.6vw, 3.8rem); }
  .apps-carousel { --card-height: 14.5rem; height: 17.2rem; }
  .app-icon { width: 4.1rem; height: 4.1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Ajustes do ingresso; o título aprovado conserva sua tipografia e cores. */
@font-face { font-family: "Aptos Display"; src: local("Aptos Display"); font-display: swap; }
body { font-family: "Aptos Display", "Aptos", "Segoe UI", system-ui, sans-serif; height: 100dvh; overflow: hidden; display: flex; flex-direction: column; }
.hero-title { font-family: "Manrope", "Nunito Sans", "Avenir Next", "Segoe UI", sans-serif; }
html { min-width: 0; }
.hub-header { flex: 0 0 auto; height: auto; min-height: var(--header-height); padding-block: .5rem; }
.hub-main { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; justify-content: flex-start; }
.hero-copy { margin-top: clamp(.5rem, 3vh, 2rem); }
.hub-products { display: flex; width: 100%; align-items: center; justify-content: center; gap: clamp(.5rem, 2vw, 2rem); }
.hub-entry { max-width: 18%; text-align: center; }
.apps-carousel { width: min(60vw, 70rem); margin: 0; --card-width: clamp(11rem, 16vw, 15.25rem); --card-height: clamp(12.5rem, 23vh, 15rem); --card-step: clamp(11rem, 15vw, 15rem); height: clamp(15rem, 28vh, 18.5rem); }
.app-card { padding: .5rem; gap: .6rem; }
.app-name, .footer-item { text-transform: uppercase; }
.hub-footer { display: flex; flex: 0 0 auto; min-height: 0; padding: .4rem; justify-content: center; }
.footer-navigation { width: min(65rem, 100%); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.footer-item { font: inherit; background: transparent; border: 0; cursor: pointer; padding: .4rem; line-height: 1.15; font-size: clamp(.6rem, 1.3vw, .9rem); }
.footer-item > span:first-child { font-size: clamp(1.4rem, 2.5vw, 2rem); }
.footer-item span { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.hub-layer { box-sizing: border-box; width: min(42rem, calc(100% - 2rem)); max-height: 80dvh; overflow: auto; padding: clamp(1rem, 4vw, 2rem); border: 1px solid var(--cyan-400); border-radius: 1rem; background: #031a35; color: #fff; }
.hub-layer::backdrop { background: #010e22cc; }
.layer-close { float: right; background: transparent; color: inherit; border: 1px solid currentColor; font: inherit; cursor: pointer; padding: .2rem .5rem; }
.partner-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.partner-links a { border: 1px solid currentColor; padding: .75rem; border-radius: .5rem; text-decoration: none; }
.site-main { width: min(50rem, calc(100% - 2rem)); margin: 1rem auto; overflow: auto; min-height: 0; flex: 1; }
.portal-cadastro { color: white; }
@media (max-width: 720px) { .hub-products { flex-direction: column; } .hub-entry { max-width: 100%; } .apps-carousel { width: 100%; } .access-grid { grid-template-columns: minmax(0, 1fr); } }
@media (forced-colors: active) {
  .hub-main, .hub-header, .hub-footer, .hub-layer, .app-card, .portal-access, .access-card { background: Canvas; color: CanvasText; border-color: CanvasText; box-shadow: none; }
  .hero-title, .hero-title strong, .hero-copy p, .app-name, .portal-access p, .access-card span, .footer-item { color: CanvasText; }
  .app-card, .footer-item, .carousel-arrow, .layer-close { border: 1px solid ButtonText; color: ButtonText; }
  .hub-main::before, .hub-main::after, .app-card::after { display: none; }
}
