/* Gestão Educacional — paginas: estilos específicos deste grupo de telas. Usa só tokens de xp-tokens.css. */

/* ============ Dashboard (modelo B) ============ */
/* Container de 1280px (o layout do tenant limita a 1200px; a view marca o container com .xp-container-dash). */
body.cp-tenant-shell .body .container-lg.xp-container-dash { max-width: var(--xp-container-dash); }
.xp-dash { width: 100%; display: flex; flex-direction: column; gap: 24px; }
.xp-dash__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.xp-dash__kpis--1 { grid-template-columns: minmax(0, 1fr); }
.xp-dash__kpis--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.xp-dash__head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--xp-border); }
.xp-dash__head h2 { margin: 0; font-size: var(--xp-fs-section); font-weight: 600; color: var(--xp-text); }
.xp-dash__head .xp-more { margin-left: auto; }
.xp-dash__pos { color: var(--xp-primary); font-weight: 600; }
[data-coreui-theme="dark"] .xp-dash__pos { color: var(--xp-link); }
.xp-dash__neg { color: var(--xp-danger); }
.xp-dash .xp-muted { color: var(--xp-placeholder); }
.xp-dash__chart { position: relative; height: 220px; }
.xp-leg { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 12px; color: var(--xp-text-3); }
.xp-leg > span { display: inline-flex; align-items: center; gap: 6px; }
.xp-leg__sw { display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: var(--xp-primary); }
.xp-leg__ln { display: inline-block; width: 14px; height: 2px; background: #0F766E; }
[data-coreui-theme="dark"] .xp-leg__ln { background: #2DD4BF; }

/* Ações rápidas: no desktop 1 primário + 2 secundários; no celular 3 botões em grade com o ícone em cima. */
.xp-qa__ic { display: none; }
.xp-qa__short { display: none; }
.xp-qa__drop { display: inline-block; }
.xp-qa__drop .dropdown-menu { min-width: 220px; }

.xp-bar--warning > i { background: var(--xp-warning); }

.xp-auth__garantias li { position: relative; padding-left: 28px; }
.xp-auth__garantias li::before {
  content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; background: var(--xp-success);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.xp-aviso { display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--xp-r-option); background: var(--xp-warning-bg); border: 1px solid color-mix(in srgb, var(--xp-warning) 40%, transparent); color: var(--xp-warning-text); font-size: 13px; }
.xp-aviso > svg { flex: 0 0 auto; margin-top: 1px; }
.xp-aviso ul { margin: 6px 0 0; padding-left: 18px; }

@media (max-width: 899.98px) {
  .xp-dash { gap: 16px; }
  .xp-dash__kpis, .xp-dash__kpis--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .xp-dash__kpis--1 { grid-template-columns: minmax(0, 1fr); }
  .xp-dash__kpis--1 .xp-kpi--wide { grid-column: auto; }
  .xp-dash__head { padding: 16px; }
  .xp-dash__chart { height: 200px; }
  .xp-qa { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; }
  .xp-qa > .xp-btn, .xp-qa__drop > .xp-btn { flex-direction: column; height: 64px; gap: 4px; padding: 0; font-size: 12px; width: 100%; }
  .xp-qa__ic { display: inline-flex; }
  .xp-qa__ic svg { width: 20px; height: 20px; }
  .xp-qa__full { display: none; }
  .xp-qa__short { display: inline; }
  .xp-qa__drop { display: block; }
  .xp-qa__drop .dropdown-menu { min-width: 200px; }
}

/* ============ Telas públicas (modelo A) ============ */
body.xp-auth-body { margin: 0; min-height: 100vh; }
.xp-auth { --xp-auth-bg: #F7F7F9; display: flex; flex-wrap: wrap; min-height: 100vh; font-family: var(--xp-font); color: var(--xp-text); }
[data-coreui-theme="dark"] .xp-auth { --xp-auth-bg: var(--xp-bg); }
.xp-auth .xp-auth__painel { flex: 1 1 440px; min-width: 0; background: var(--xp-side-bg); color: var(--xp-side-text); padding: 48px; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.xp-auth__linhas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.35; pointer-events: none; }
.xp-auth__linhas g { stroke: var(--xp-primary); }
.xp a.xp-auth__logo, .xp a.xp-auth__logo:hover { position: relative; display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; color: #fff; font-weight: 700; font-size: 18px; letter-spacing: -0.01em; text-decoration: none; }
.xp-auth .xp-auth__valor { position: relative; margin-top: auto; max-width: 440px; }
.xp-auth .xp-auth__titulo { margin: 0 0 12px; font-size: 30px; font-weight: 700; letter-spacing: -0.01em; color: #fff; line-height: 1.2; }
.xp-auth .xp-auth__titulo--cadastro { font-size: 32px; }
.xp-auth .xp-auth__sub { margin: 0; font-size: 15px; color: var(--xp-side-text); opacity: 0.85; }
.xp-auth .xp-auth__curta { display: none; margin: 0; font-size: 15px; color: var(--xp-side-text); opacity: 0.85; }
.xp-auth .xp-auth__rodape { position: relative; margin: 40px 0 0; font-size: 12px; color: var(--xp-side-group); }
.xp-auth .xp-auth__beneficios { list-style: none; margin: 32px 0 0; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.xp-auth__beneficios li { display: flex; align-items: flex-start; gap: 14px; }
.xp-auth__ic { width: 36px; height: 36px; border-radius: 8px; background: color-mix(in srgb, var(--xp-primary) 30%, transparent); color: var(--xp-pro-text); display: grid; place-items: center; flex: 0 0 auto; }
.xp-auth__beneficios strong { display: block; font-size: 15px; font-weight: 600; color: #fff; }
.xp-auth__beneficios li > div > span { display: block; font-size: 13px; color: var(--xp-side-text); opacity: 0.85; }

.xp-auth .xp-auth__main { flex: 1 1 480px; min-width: 0; background: var(--xp-auth-bg); display: flex; align-items: center; justify-content: center; padding: 48px 32px; }
.xp-auth .xp-auth__coluna { width: 100%; max-width: 400px; display: flex; flex-direction: column; gap: 24px; }
.xp-auth .xp-auth__coluna--cadastro { max-width: 420px; }
.xp-auth .xp-auth__h1 { margin: 0 0 6px; font-size: var(--xp-fs-title); font-weight: 700; letter-spacing: -0.01em; color: var(--xp-text); }
.xp-auth .xp-auth__h1--estado { margin: 4px 0 0; font-size: 22px; }
.xp-auth .xp-auth__lead { margin: 0; color: var(--xp-text-3); }
.xp-auth .xp-auth__form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.xp-auth .xp-auth__card { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.xp-auth__label-linha { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.xp-auth__label-linha .xp-link { min-height: 0; }
.xp-auth__duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.xp-auth .xp-input { height: 44px; font-size: 15px; }
.xp-auth .xp-btn--block { width: 100%; height: 44px; }
.xp-auth .xp-btn--lg { height: 48px; font-size: 15px; }
.xp-auth .xp-auth__troca { margin: 0; text-align: center; font-size: 13px; color: var(--xp-text-3); }
.xp-auth .xp-auth__troca a { font-weight: 600; }
.xp-auth .xp-auth__termos { margin: 0; text-align: center; font-size: 12px; color: var(--xp-text-3); }
.xp-auth .xp-auth__garantias { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: var(--xp-text-2); }
.xp-auth__garantias li { align-items: center; }
.xp-auth__garantias li::before { margin-top: 0; }
.xp-auth__forca { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.xp-auth__forca i { height: 4px; border-radius: var(--xp-r-pill); background: var(--xp-border); }
.xp-auth__forca[data-nivel="1"] i:nth-child(-n+1) { background: var(--xp-danger); }
.xp-auth__forca[data-nivel="2"] i:nth-child(-n+2) { background: var(--xp-warning); }
.xp-auth__forca[data-nivel="3"] i:nth-child(-n+3), .xp-auth__forca[data-nivel="4"] i { background: var(--xp-success); }
.xp-auth__estado { padding: 32px 24px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
.xp-auth__estado .xp-btn { margin-top: 4px; }
.xp-auth__estado .xp-auth__h1--estado { margin: 4px 0 0; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; color: var(--xp-text); }
.xp-auth__estado .xp-auth__lead { margin: 0; color: var(--xp-text-3); max-width: 46ch; }
.xp-auth__estado-form { width: 100%; margin: 0; }
/* Dentro do painel (layout com menu), sem a coluna do login: cartão estreito e centralizado. */
.xp-auth__estado.xp-auth__estado--painel { max-width: 560px; margin: 2rem auto; }
.xp-auth__estado-form .xp-btn { margin-top: 0; }

/* Validação (jquery-validation + tag helpers) */
.xp-auth .validation-summary-valid { display: none; }
.xp-auth .validation-summary-errors ul { margin: 0; padding: 0; list-style: none; }
.xp-auth .input-validation-error { border-color: var(--xp-danger); box-shadow: 0 0 0 3px var(--xp-danger-bg); }
.xp-auth .xp-error:empty { display: none; }

/* Botão mostrar/ocultar senha (password-toggle.js) */
.xp-auth .cp-password-wrap { display: block; }
.xp-auth .cp-password-toggle-btn { right: 4px; width: 40px; height: 36px; padding: 0; display: flex; align-items: center; justify-content: center; color: var(--xp-text-3); opacity: 1; }
.xp-auth .cp-password-toggle-btn:hover { color: var(--xp-text); }

@media (max-width: 899.98px) {
  .xp-auth { flex-direction: column; flex-wrap: nowrap; }
  .xp-auth .xp-auth__painel { flex: none; padding: 56px 24px 32px; }
  .xp-auth .xp-auth__valor { margin-top: 20px; }
  .xp-auth .xp-auth__titulo, .xp-auth .xp-auth__sub { display: none; }
  .xp-auth .xp-auth__curta { display: block; }
  .xp-auth .xp-auth__painel--cadastro .xp-auth__titulo { display: block; margin: 0 0 8px; font-size: 22px; }
  .xp-auth .xp-auth__painel--cadastro .xp-auth__sub { display: block; font-size: 14px; }
  .xp-auth .xp-auth__beneficios, .xp-auth .xp-auth__rodape { display: none; }
  .xp-auth .xp-auth__main { flex: 1 1 auto; align-items: flex-start; padding: 24px 20px; }
  .xp-auth .xp-auth__coluna, .xp-auth .xp-auth__coluna--cadastro { max-width: 480px; margin: 0 auto; gap: 20px; }
  .xp-auth .xp-auth__h1 { font-size: 24px; }
  .xp-auth .xp-auth__h1--estado { font-size: 22px; }
  .xp-auth .xp-auth__lead { font-size: 13px; }
  .xp-auth .xp-auth__card { padding: 0; background: transparent; border: 0; box-shadow: none; }
  .xp-auth .xp-input { height: 48px; font-size: 16px; }
  .xp-auth .xp-btn--block { height: 48px; font-size: 15px; }
  .xp-auth__duo { grid-template-columns: minmax(0, 1fr); }
  .xp-auth .cp-password-toggle-btn { width: 44px; height: 44px; right: 2px; }
}

/* Validação: KPI com selo longo não pode alargar a página no celular */
.xp-kpis > *, .xp-kpi { min-width: 0; }
.xp-kpi__body .xp-badge { white-space: normal; }

/* Vincular: botão ocupa a coluna inteira e alinha com os campos no celular */
@media (max-width: 899.98px) { .xp-grid > .xp-col-2 .xp-btn { width: 100%; } }

/* Unidade longa dentro do campo ("meses", "% a.a."): reserva espaço para o número não colar no texto */
.xp-input-wrap--long > .xp-input { padding-right: 68px; }
