/* ============================================================================
   iBooster CRM - login, barra lateral, topo e grade da pagina
   ========================================================================== */

/* ---------------- login ---------------- */
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}
@media(max-width:900px){.login{grid-template-columns:1fr}}

.login-arte{
  position:relative;overflow:hidden;padding:56px 52px;display:flex;flex-direction:column;
  justify-content:space-between;color:#fff;
  background:linear-gradient(150deg,#053A25 0%,#0E7A4F 46%,#1FA766 100%);
}
@media(max-width:900px){.login-arte{display:none}}
.login-arte::after{
  content:'';position:absolute;inset:0;opacity:.5;
  background:radial-gradient(900px 480px at 88% 8%,rgba(255,255,255,.24),transparent 62%),
             radial-gradient(700px 520px at 4% 100%,rgba(0,0,0,.34),transparent 60%);
}
.login-arte > *{position:relative;z-index:1}
.login-arte h1{font-size:38px;line-height:1.14;font-weight:800;letter-spacing:-.025em;max-width:13ch}
.login-arte p{margin-top:16px;max-width:38ch;font-size:15px;opacity:.9;line-height:1.6}
.login-arte .selo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.18em;font-size:11px;text-transform:uppercase;opacity:.92}
.login-numeros{display:flex;gap:34px;flex-wrap:wrap}
.login-numeros div span{display:block}
.login-numeros .v{font-size:26px;font-weight:800;letter-spacing:-.02em}
.login-numeros .k{font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.78;margin-top:3px;font-weight:600}

.login-lado{display:grid;place-items:center;padding:32px 26px;background:var(--surface)}
.login-caixa{width:min(400px,100%);display:grid;gap:18px}
.login-caixa .marca{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.login-caixa h2{font-size:25px;font-weight:800;letter-spacing:-.02em}
.login-caixa .sub{color:var(--ink-3);font-size:14px;margin-top:5px}
.login-passo{display:grid;gap:14px;animation:sobe .28s cubic-bezier(.2,.7,.3,1)}
@keyframes sobe{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.login-quem{display:flex;align-items:center;gap:12px;padding:11px 13px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r)}
/* nome e e-mail sao dois spans: sem display:block saiam colados na mesma linha
   ("Pedropedro.almeida@..."), que e a primeira coisa que a pessoa ve ao entrar */
.login-quem .quem{min-width:0;display:block}
.login-quem .n{font-weight:700;display:block;line-height:1.3}
.login-quem .e{font-size:12px;color:var(--ink-3);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login-quem button{margin-left:auto;font-size:12px;font-weight:700;color:var(--brand)}
.login-dica{font-size:12.5px;color:var(--ink-3);line-height:1.55}
.login-rodape{font-size:11.5px;color:var(--ink-4);text-align:center;margin-top:2px}

/* medidor de forca da senha */
.forca{display:grid;gap:6px}
.forca-trilhos{display:flex;gap:4px}
.forca-trilhos i{flex:1;height:4px;border-radius:20px;background:var(--line);transition:background var(--transicao)}
.forca[data-n="1"] i:nth-child(-n+1){background:#DC2626}
.forca[data-n="2"] i:nth-child(-n+2){background:#E08A1E}
.forca[data-n="3"] i:nth-child(-n+3){background:#C9A227}
.forca[data-n="4"] i{background:var(--ok)}
.forca-txt{font-size:11.5px;color:var(--ink-3);font-weight:600}

/* lista de exigencias da senha: cinza com circulo, verde com check quando passa */
.exigencias{list-style:none;display:grid;gap:5px;margin:2px 0 0}
.exigencias li{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:7px;transition:color var(--transicao)}
.exigencias li::before{content:'';width:14px;height:14px;border-radius:50%;flex:none;
  border:1.5px solid var(--ink-4);transition:all var(--transicao)}
.exigencias li.ok{color:var(--ok);font-weight:650}
.exigencias li.ok::before{background:var(--ok);border-color:var(--ok);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12 5 5L20 6'/%3E%3C/svg%3E");
  background-size:10px;background-position:center;background-repeat:no-repeat}

/* ---------------- casco ---------------- */
.casco{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}
@media(max-width:1000px){.casco{grid-template-columns:1fr}}

.lateral{
  background:var(--surface);border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;padding:14px 12px;
  position:sticky;top:0;height:100vh;z-index:30;
}
@media(max-width:1000px){
  .lateral{position:fixed;inset:0 auto 0 0;width:var(--sidebar);transform:translateX(-100%);transition:transform var(--transicao);box-shadow:var(--sombra-3)}
  .lateral.aberta{transform:none}
}
.lateral-marca{display:flex;align-items:center;gap:9px;padding:8px 10px 14px}
.nav{display:grid;gap:2px}
.nav-grupo{padding:14px 10px 6px}
.nav a,.nav button{
  display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:var(--r-sm);
  font-size:13.5px;font-weight:600;color:var(--ink-2);transition:background var(--transicao),color var(--transicao);
  text-align:left;position:relative;
}
.nav svg{width:17px;height:17px;flex:none;stroke-width:1.9}
.nav a:hover,.nav button:hover{background:var(--surface-3);color:var(--ink)}
.nav .ativo{background:var(--brand-soft);color:var(--brand);font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 14%,transparent)}
.nav .ativo::before{content:'';position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--brand)}
.nav .conta-badge{margin-left:auto;font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:20px;background:var(--brand);color:#fff;min-width:19px;text-align:center}
.nav .conta-badge.neutro{background:var(--surface-3);color:var(--ink-3)}

.lateral-fim{margin-top:auto;display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--line-soft)}
.chip-usuario{display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:var(--r-sm);width:100%;transition:background var(--transicao)}
.chip-usuario:hover{background:var(--surface-3)}
.chip-usuario .txt{min-width:0;text-align:left}
.chip-usuario .n{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip-usuario .c{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip-usuario .seta{margin-left:auto;color:var(--ink-4)}

/* ---------------- topo ---------------- */
/* tinta radial sutil da marca no topo do conteudo: profundidade sem sujar a leitura */
.painel{min-width:0;display:flex;flex-direction:column;
  background:radial-gradient(880px 360px at 62% -12%,color-mix(in srgb,var(--brand) 4.5%,transparent),transparent 62%)}
.topo{
  height:var(--topo);display:flex;align-items:center;gap:14px;padding:0 22px;
  background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:25;
}
.topo h1{font-size:16.5px;font-weight:750;letter-spacing:-.015em}
.topo .subt{font-size:12px;color:var(--ink-3);margin-top:1px}
.topo-dir{margin-left:auto;display:flex;align-items:center;gap:8px}
.btn-menu{display:none;padding:7px;border-radius:var(--r-sm)}
@media(max-width:1000px){.btn-menu{display:block}}
.busca{position:relative;width:min(300px,34vw)}
@media(max-width:760px){.busca{display:none}}
.busca svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--ink-4)}
.busca input{padding-left:33px;background:var(--surface);height:36px}
.busca kbd{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:10px;font-family:inherit;font-weight:700;color:var(--ink-4);border:1px solid var(--line);border-radius:5px;padding:1px 5px;background:var(--surface-2)}

.conteudo{padding:22px;max-width:1560px;width:100%;margin:0 auto;flex:1}
@media(max-width:600px){.conteudo{padding:14px}}
.vista{animation:entra .22s ease}
@keyframes entra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.cabecalho-vista{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.cabecalho-vista h2{font-size:21px;font-weight:780;letter-spacing:-.02em}
.cabecalho-vista .sub{color:var(--ink-3);font-size:13px;margin-top:3px}
.cabecalho-vista .dir{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}

.fundo-mobile{position:fixed;inset:0;background:rgba(10,11,14,.45);z-index:29;backdrop-filter:blur(2px)}
@media(min-width:1001px){.fundo-mobile{display:none !important}}
