
/* Tela inicial — identidade visual de referência */
body.welcome-mode{
  min-height:100vh;
  overflow-x:hidden;
  background:#edf7f3;
}
.welcome{
  position:relative;
  isolation:isolate;
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:38px 24px;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 47% 46%,rgba(255,255,255,.96) 0%,rgba(249,253,251,.9) 33%,rgba(226,242,235,.58) 67%,transparent 100%),
    linear-gradient(112deg,#d8e9e3 0%,#f9fcfa 28%,#f7fbf9 57%,#c5e1d7 100%);
}
.welcome::before{
  content:"";
  position:absolute;z-index:-1;inset:0;
  background:
    /* fachada institucional à direita */
    linear-gradient(150deg,transparent 0 58%,rgba(255,255,255,.42) 58.2% 59.4%,transparent 59.6%),
    linear-gradient(150deg,transparent 0 62%,rgba(35,123,91,.13) 62.2% 63.5%,transparent 63.7%),
    linear-gradient(90deg,transparent 0 68%,rgba(255,255,255,.42) 68.2% 69%,transparent 69.2% 74%,rgba(255,255,255,.36) 74.2% 75%,transparent 75.2% 80%,rgba(255,255,255,.38) 80.2% 81%,transparent 81.2% 86%,rgba(255,255,255,.35) 86.2% 87%,transparent 87.2%),
    linear-gradient(180deg,transparent 0 29%,rgba(255,255,255,.52) 29.5% 31%,transparent 31.5% 38%,rgba(255,255,255,.38) 38.5% 40%,transparent 40.5%),
    radial-gradient(ellipse at 84% 44%,rgba(41,133,99,.3),transparent 36%);
  filter:blur(5px);
  opacity:.9;
}
.welcome::after{
  content:"";
  position:absolute;z-index:-1;inset:0;
  background:
    linear-gradient(135deg,transparent 0 8.5%,rgba(0,94,62,.92) 8.6% 12%,transparent 12.1%) top left/390px 225px no-repeat,
    linear-gradient(135deg,transparent 0 12%,rgba(17,126,83,.84) 12.1% 16%,transparent 16.1%) top left/390px 225px no-repeat,
    linear-gradient(135deg,transparent 0 15.5%,rgba(255,255,255,.96) 15.6% 16.5%,transparent 16.6%) top left/390px 225px no-repeat,
    linear-gradient(135deg,transparent 0 18%,rgba(7,106,69,.9) 18.1% 18.5%,transparent 18.6%) top left/390px 225px no-repeat,
    linear-gradient(315deg,transparent 0 13%,rgba(0,111,72,.92) 13.1% 19%,transparent 19.1%) bottom right/440px 335px no-repeat,
    linear-gradient(315deg,transparent 0 18%,rgba(255,255,255,.96) 18.1% 18.8%,transparent 18.9%) bottom right/440px 335px no-repeat,
    linear-gradient(315deg,transparent 0 22%,rgba(0,105,68,.88) 22.1% 22.7%,transparent 22.8%) bottom right/440px 335px no-repeat;
  pointer-events:none;
}
.welcome-card{
  width:min(840px,100%);
  min-height:0;
  padding:38px 68px 30px;
  border:1px solid rgba(208,229,222,.95);
  border-radius:40px;
  background:rgba(255,255,255,.88);
  box-shadow:0 28px 80px rgba(13,91,67,.13);
  backdrop-filter:blur(12px);
  text-align:center;
}
.welcome-logo{
  display:block;
  width:154px;height:144px;
  object-fit:contain;
  margin:0 auto 25px;
  border-radius:32px;
  filter:drop-shadow(0 8px 15px rgba(0,71,45,.08));
}
.welcome-kicker{
  margin:0 0 24px;
  color:#087a50;
  font-size:18px;
  font-weight:750;
  letter-spacing:3px;
}
.welcome h1{
  max-width:660px;
  margin:0 auto;
  color:#102f38;
  font-size:clamp(28px,2.65vw,44px);
  line-height:1.32;
  font-weight:750;
  letter-spacing:-1.2px;
}
.welcome p{
  margin:29px 0 27px;
  color:#637a8c;
  font-size:25px;
  line-height:1.4;
  font-weight:450;
}
.welcome .primary{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  width:100%;
  min-height:80px;
  padding:20px 28px;
  border:1px solid #087950;
  border-radius:17px;
  background:linear-gradient(105deg,#00563e,#13865f);
  box-shadow:0 13px 25px rgba(0,113,75,.14);
  color:#fff;
  font-size:25px;
  font-weight:700;
  letter-spacing:.2px;
  transition:filter .18s ease,transform .18s ease;
}
.welcome .primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.welcome .primary span{
  float:none;
  display:inline-grid;
  place-items:center;
  width:38px;height:38px;
  font-size:0;
}
.welcome .primary span::before{
  content:"";
  width:27px;height:27px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 17l5-5-5-5'/%3E%3Cpath d='M15 12H3'/%3E%3Cpath d='M12 3h6a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3h-6'/%3E%3C/svg%3E");
}
.install-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:16px;
  padding:14px 18px;
  border:0;
  background:transparent;
  color:#087a50;
  font-size:21px;
  font-weight:500;
}
.install-link::before{
  content:"";
  width:25px;height:25px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23087a50' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m7 10 5 5 5-5M12 15V3'/%3E%3C/svg%3E");
}
.welcome small{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:10px;
  padding-top:22px;
  border-top:1px solid #dce7e8;
  color:#71869a;
  font-size:16px;
  line-height:1.5;
}
.welcome small::before{
  content:"";
  width:34px;height:34px;flex:none;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%23087850' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-11V5l-8-3-8 3v6c0 7 8 11 8 11z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
@media(max-width:700px){
 .welcome{padding:22px 16px}
 .welcome-card{padding:30px 24px 24px;border-radius:26px}
 .welcome-logo{width:104px;height:104px;margin-bottom:20px;border-radius:25px}
 .welcome-kicker{font-size:12px;letter-spacing:2px;margin-bottom:18px}
 .welcome h1{font-size:clamp(25px,6vw,34px);letter-spacing:-.7px}
 .welcome p{font-size:17px;margin:20px 0 22px}
 .welcome .primary{min-height:60px;border-radius:12px;font-size:18px}
 .install-link{font-size:16px;margin-top:10px}
 .welcome small{font-size:12px;padding-top:17px;gap:8px}
 .welcome small::before{width:26px;height:26px}
 .welcome::after{opacity:.5}
}
@media(prefers-reduced-motion:reduce){.welcome .primary{transition:none}}
