/* Tela de login — mantida como aprovada (não depende do tema claro/escuro) */
:root{--marca:#00a651;--marca-forte:#00873f;--marca-escura:#0a3a24;--ceu:#00aeef}
/* O login fica sempre claro, mesmo com o app em modo noite */
body.modo-login { --texto:#111827; --texto-2:#4b5563; --linha:#d4d9e1; --superficie:#fff; --fundo:#fff;
  --erro:#b42318; --erro-fundo:#fde7e5; --erro-texto:#7a1a12; --aviso-fundo:#fff2d9; background:#fff; color:#111827; padding:0; }
/* ---------------- login (tela sem acesso reaproveita .login) */
.login { max-width: 420px; margin: 8vh auto; background: #fff; padding: 1.6rem; border-radius: 16px; border: 1px solid var(--linha); display: flex; flex-direction: column; }
.login .btn { margin-top: 1.2rem; }

body.modo-login main { max-width: none; padding: 0; }
.login-tela { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: 1.15fr 1fr; background: #fff; }
@media (max-width: 860px) { .login-tela { grid-template-columns: 1fr; } }

/* lado verde: terreno com curvas de nível, como um mapa topográfico */
.login-hero {
  position: relative; overflow: hidden; color: #fff; display: flex; align-items: center;
  padding: clamp(2rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4rem) clamp(5rem, 9vw, 7rem);
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(0,166,81,.55) 0%, rgba(0,166,81,0) 55%),
    radial-gradient(90% 70% at 100% 100%, rgba(0,174,239,.25) 0%, rgba(0,174,239,0) 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600' fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1.5'%3E%3Cpath d='M-20 120c90-60 180 40 280-10s170-90 360-20'/%3E%3Cpath d='M-20 170c100-50 190 45 290-5s180-85 350-15'/%3E%3Cpath d='M-20 220c110-40 200 50 300 0s190-80 340-10'/%3E%3Cpath d='M-20 300c120-30 210 55 310 5s200-75 330-5'/%3E%3Cpath d='M-20 350c130-20 220 60 320 10s210-70 320 0'/%3E%3Cpath d='M-20 430c140-10 230 65 330 15s220-65 310 5'/%3E%3Cpath d='M-20 480c150 0 240 70 340 20s230-60 300 10'/%3E%3Cpath d='M-20 560c160 10 250 75 350 25s240-55 290 15'/%3E%3C/svg%3E"),
    linear-gradient(160deg, #0d4a2d 0%, #0a3a24 55%, #072a1a 100%);
  background-size: auto, auto, 600px 600px, auto;
}
.hero-conteudo { position: relative; z-index: 1; max-width: 34rem; }
.hero-selo {
  display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .9rem; border-radius: 999px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); font-size: .78rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
}
.hero-ponto { width: 8px; height: 8px; border-radius: 50%; background: #5fe39a; box-shadow: 0 0 0 4px rgba(95,227,154,.25); }
.login-hero h1 { font-size: clamp(2rem, 4.4vw, 3.3rem); line-height: 1.06; letter-spacing: -.02em; margin: 1.1rem 0 1rem; font-weight: 900; }
.login-hero h1 em { font-style: normal; color: #5fe39a; }
.hero-texto { font-size: 1.08rem; color: #d6eadf; max-width: 30rem; margin: 0 0 1.6rem; }
.hero-recursos { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.hero-recursos li { display: flex; align-items: center; gap: .8rem; }
.hero-recursos strong { display: block; font-size: 1rem; }
.hero-recursos small { display: block; color: #b9d8c7; font-size: .88rem; }
.hero-ic { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(95,227,154,.14); border: 1px solid rgba(95,227,154,.3); }
.hero-ic svg, .login-ic svg, .ver-senha svg, .btn-login-ic svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-ic { color: #5fe39a; }
/* curva azul do logo, atravessando o pé do painel */
.hero-onda { position: absolute; left: -10%; right: -10%; bottom: -55px; height: 130px; border-radius: 50%;
  border-top: 14px solid var(--ceu); transform: rotate(-3deg); opacity: .9; }
.hero-onda::after { content: ""; position: absolute; inset: 18px 4% auto; height: 60px; border-radius: 50%; border-top: 3px solid rgba(255,255,255,.25); }

.login-painel { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: clamp(1.5rem, 5vw, 3rem) 1.25rem; background: #fff; }
.login-form { width: min(420px, 100%); display: flex; flex-direction: column; }
.login-logo { width: min(300px, 80%); height: auto; align-self: center; margin-bottom: 1.6rem; }
.login-titulo h2 { margin: 0; font-size: 1.6rem; color: var(--marca-escura); letter-spacing: -.01em; }
.login-titulo p { margin: .3rem 0 1rem; color: var(--texto-2); }
.login-rotulo { display: block; font-weight: 700; font-size: .9rem; color: var(--marca-escura); margin: .9rem 0 0; }
.login-campo {
  display: flex; align-items: center; gap: .6rem; margin-top: .4rem; min-height: 56px; padding: 0 .4rem 0 .9rem;
  border: 2px solid #d9e4dd; border-radius: 14px; background: #f7faf8; transition: border-color .15s, box-shadow .15s;
}
.login-campo:focus-within { border-color: var(--marca); background: #fff; box-shadow: 0 0 0 4px rgba(0,166,81,.15); }
.login-ic { color: var(--marca-forte); display: grid; place-items: center; }
.campo-login { flex: 1; min-width: 0; border: 0; background: transparent; font-size: 1.05rem; padding: .8rem 0; color: var(--texto); outline: none; }
.ver-senha { border: 0; background: transparent; color: var(--texto-2); width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; }
.btn-login {
  margin-top: 1.5rem; min-height: 58px; border: 0; border-radius: 14px; font-size: 1.1rem; font-weight: 800; color: #fff;
  background: linear-gradient(135deg, var(--marca) 0%, var(--marca-forte) 100%);
  box-shadow: 0 10px 24px rgba(0,135,63,.28); display: flex; align-items: center; justify-content: center; gap: .6rem;
}
.btn-login:disabled { opacity: .7; }
.btn-login-ic { display: grid; place-items: center; }
.login-ajuda { margin: 1.1rem 0 0; text-align: center; color: var(--texto-2); font-size: .9rem; }
.login-rodape { margin-top: 2rem; color: #8a978f; font-size: .8rem; text-align: center; }
@media (max-width: 860px) {
  .login-hero { padding-bottom: 5.5rem; }
  .hero-recursos { grid-template-columns: 1fr; }
  .login-painel { margin-top: -1.5rem; border-radius: 24px 24px 0 0; position: relative; z-index: 2; }
}
@media (max-width: 520px) {
  .login-hero h1 { font-size: 1.9rem; }
  .hero-texto { font-size: 1rem; margin-bottom: 1.1rem; }
  .hero-recursos li:nth-child(n+2) { display: none; }
}

