/**
 * MoradaVest Redações — Autenticação (login dos portais)
 * Layout em painel dividido, responsivo, com temas por portal.
 */

/* ---------- Menu superior do sistema (página inicial + logins) ---------- */
.mv-site-topnav{
	background:rgba(15,15,16,.94); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
	color:#fff; position:sticky; top:0; z-index:50;
	font-family:Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.mv-site-topnav__inner{
	max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:clamp(16px,4vw,32px);
	padding:12px clamp(16px,4vw,24px); overflow-x:auto;
}
.mv-site-topnav__brand{display:flex; align-items:center; gap:8px; text-decoration:none; color:#fff; font-weight:800; font-size:15px; flex-shrink:0;}
.mv-site-topnav__links{display:flex; gap:4px; flex-wrap:nowrap;}
.mv-site-topnav__link{
	padding:8px 14px; border-radius:9px; text-decoration:none; color:#d7d5cc;
	font-size:13.5px; font-weight:600; white-space:nowrap; transition:background .15s,color .15s;
}
.mv-site-topnav__link:hover{background:rgba(255,255,255,.08); color:#fff;}
.mv-site-topnav__link.is-active{background:#fff; color:#0f0f10;}

/* =====================================================================
 * Navegação mobile (≤768px) — compartilhada pelo menu público (acima)
 * e pelas 4 áreas autenticadas (barra .mv-pf-topbar). No desktop nada
 * disto aparece; a navegação horizontal de cada contexto permanece
 * intocada acima de 768px.
 * ===================================================================== */
.mv-mobile-bar{display:none;}
.mv-drawer{display:none;}
.mv-drawer[hidden]{display:none;}

@media(max-width:768px){

	.mv-site-topnav__inner{display:none;}

	body{overflow-x:hidden;}

	.mv-mobile-bar{
		display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
		padding:10px 14px; background:#0f0f10; color:#fff;
		border-bottom:3px solid var(--pf-gold, transparent);
	}
	.mv-mobile-bar__hamburger{
		justify-self:start; display:grid; place-items:center; width:38px; height:38px;
		border:none; padding:0; border-radius:9px; background:rgba(255,255,255,.08); color:#fff; cursor:pointer;
	}
	.mv-mobile-bar__hamburger svg{width:20px; height:20px;}
	.mv-mobile-bar__hamburger:hover{background:rgba(255,255,255,.16);}
	.mv-mobile-bar__brand{
		justify-self:center; display:flex; align-items:center; gap:7px; min-width:0;
		text-decoration:none; color:#fff; font-weight:800; font-size:14px; white-space:nowrap;
	}
	.mv-mobile-bar__right{justify-self:end; display:flex; align-items:center; min-height:38px;}
	.mv-mobile-bar__help{
		display:grid; place-items:center; width:38px; height:38px;
		border-radius:9px; background:rgba(255,255,255,.08); color:#fff; text-decoration:none;
	}
	.mv-mobile-bar__help svg{width:20px; height:20px;}
	.mv-mobile-bar__help:hover{background:rgba(255,255,255,.16);}

	.mv-drawer{
		display:block; position:fixed; inset:0; z-index:200;
	}
	.mv-drawer__backdrop{
		position:absolute; inset:0; background:rgba(15,15,16,.55); opacity:0; transition:opacity .25s ease;
	}
	.mv-drawer.is-open .mv-drawer__backdrop{opacity:1;}
	.mv-drawer__panel{
		position:absolute; top:0; left:0; height:100%; width:min(82vw,320px);
		background:#0f0f10; color:#fff; display:flex; flex-direction:column;
		transform:translateX(-100%); transition:transform .25s ease;
		box-shadow:8px 0 28px rgba(0,0,0,.3); overflow-y:auto;
		border-right:3px solid var(--pf-gold, transparent);
	}
	.mv-drawer.is-open .mv-drawer__panel{transform:translateX(0);}
	.mv-drawer__head{
		display:flex; align-items:center; justify-content:space-between; gap:10px;
		padding:16px 14px 14px; border-bottom:1px solid rgba(255,255,255,.1); flex-shrink:0;
	}
	.mv-drawer__brand{display:flex; align-items:center; gap:9px; font-weight:800; font-size:15px; min-width:0;}
	.mv-drawer__close{
		display:grid; place-items:center; width:34px; height:34px; flex-shrink:0;
		border:none; padding:0; border-radius:9px; background:rgba(255,255,255,.08); color:#fff; cursor:pointer;
	}
	.mv-drawer__close svg{width:18px; height:18px;}
	.mv-drawer__close:hover{background:rgba(255,255,255,.16);}
	.mv-drawer__list{list-style:none; margin:0; padding:10px; display:flex; flex-direction:column; gap:2px;}
	.mv-drawer__link{
		display:block; padding:13px 14px; border-radius:10px; color:#d7d5cc;
		text-decoration:none; font-size:14.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
	}
	.mv-drawer__link:hover{background:rgba(255,255,255,.08); color:#fff;}
	.mv-drawer__link.is-active{background:rgba(255,255,255,.16); color:#fff;}

}

html.mv-drawer-locked{overflow:hidden;}

.mv-auth{
  --acc:#166534; --acc-2:#15803d; --acc-dark:#0f3d22;
  --aside-from:#0f5132; --aside-to:#0a3d24; --aside-text:#bbe7c8; --brand-strong:#ffffff;
  --shield:#4ade80;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:60vh; padding:72px 20px;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing:border-box;
  background:
    radial-gradient(46% 40% at 12% 8%, color-mix(in srgb, var(--acc-2) 12%, transparent), transparent 70%),
    radial-gradient(40% 36% at 92% 88%, color-mix(in srgb, var(--acc-2) 9%, transparent), transparent 70%);
}
.mv-auth *,.mv-auth *::before,.mv-auth *::after{box-sizing:border-box;}

.mv-auth--professor{
  --acc:#1d4ed8; --acc-2:#2563eb; --acc-dark:#173fae;
  --aside-from:#12294a; --aside-to:#0a1730; --aside-text:#c7d3e6; --brand-strong:#ffffff;
  --shield:#60a5fa;
}

.mv-auth--coordenador{
  --acc:#a17a12; --acc-2:#c9a227; --acc-dark:#7a5c0e;
  --aside-from:#3a2f12; --aside-to:#181206; --aside-text:#ecdcac; --brand-strong:#ffffff;
  --shield:#f0c94a;
}

.mv-auth--administrativo{
  --acc:#b91c1c; --acc-2:#dc2626; --acc-dark:#7f1414;
  --aside-from:#3a1212; --aside-to:#180a0a; --aside-text:#f0c9c9; --brand-strong:#ffffff;
  --shield:#f87171;
}

/* Card dividido */
.mv-auth-split{
  position:relative; width:100%; max-width:800px; display:flex;
  background:#fff; border-radius:24px; overflow:hidden;
  border:2px solid var(--acc-2);
  box-shadow:0 40px 80px -24px rgba(15,23,42,.28), 0 14px 30px -14px color-mix(in srgb, var(--acc-2) 35%, transparent);
  animation:mvAuthIn .5s cubic-bezier(.16,1,.3,1) both;
}
@keyframes mvAuthIn{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }
@media (prefers-reduced-motion:reduce){ .mv-auth-split{animation:none;} }

/* ---------- Lateral (marca) ---------- */
.mv-auth-aside{
  position:relative; flex:1 1 44%; min-width:0;
  padding:34px 28px; color:var(--aside-text);
  background:linear-gradient(155deg,var(--aside-from),var(--aside-to));
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  overflow:hidden;
}
.mv-auth-aside::before,
.mv-auth-aside::after{
  content:''; position:absolute; border-radius:50%; filter:blur(46px); pointer-events:none;
  mix-blend-mode:screen; opacity:.5;
}
.mv-auth-aside::before{width:220px; height:220px; background:var(--shield); top:-70px; right:-60px;}
.mv-auth-aside::after{width:180px; height:180px; background:var(--acc-2); bottom:-60px; left:-50px; opacity:.4;}
.mv-auth-dots{
  position:absolute; top:26px; left:26px; width:96px; height:60px;
  background-image:radial-gradient(currentColor 1.6px, transparent 1.6px);
  background-size:15px 15px; color:var(--shield); opacity:.5;
}
.mv-auth-deco{position:absolute; inset:0; pointer-events:none; color:#fff; opacity:.06;}
.mv-auth-deco svg{position:absolute;}
.mv-auth-deco .d1{top:96px; right:34px; width:64px; height:64px;}
.mv-auth-deco .d2{bottom:96px; left:30px; width:70px; height:70px;}

.mv-auth-brand{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:6px;}
.mv-auth-shield{width:74px; height:auto; color:var(--shield); filter:drop-shadow(0 8px 20px color-mix(in srgb, var(--shield) 45%, transparent));}
.mv-auth-brand-text{line-height:1.05; margin-top:6px;}
.mv-auth-brand-text span{display:block; font-size:12px; letter-spacing:3.5px; color:var(--aside-text); font-weight:600; opacity:.85;}
.mv-auth-brand-text strong{display:block; font-size:27px; letter-spacing:1.5px; color:var(--shield); font-weight:800; text-shadow:0 0 30px color-mix(in srgb, var(--shield) 50%, transparent);}
.mv-auth-tagline{position:relative; z-index:1; margin:16px 0 0; font-size:13.5px; line-height:1.55; max-width:240px; color:var(--aside-text);}
.mv-auth-tagline::before{content:''; display:block; width:32px; height:2px; margin:0 auto 14px; background:var(--shield); opacity:.6; border-radius:2px;}

/* ---------- Formulário ---------- */
.mv-auth-main{flex:1 1 56%; min-width:0; padding:36px 38px;}
.mv-auth-main h1{margin:0 0 5px; font-size:22px; color:#0f172a; font-weight:800; letter-spacing:-.3px;}
.mv-auth-lead{margin:0 0 22px; font-size:14px; color:#64748b;}

.mv-auth-field{display:block; margin-bottom:14px;}
.mv-auth-field>span{display:block; font-size:12.5px; font-weight:700; color:#0f172a; margin-bottom:6px;}
.mv-auth-input{position:relative; display:flex; align-items:center;}
.mv-auth-input input{
  width:100%; padding:11px 14px; border:1.5px solid #e4e8ee; border-radius:12px;
  font-size:14.5px; background:#f8fafc; color:#0f172a; transition:border-color .18s, box-shadow .18s, background .18s;
  box-sizing:border-box;
}
.mv-auth-input input::placeholder{color:#a3adba;}
.mv-auth-input input:focus{outline:none; background:#fff; border-color:var(--acc-2); box-shadow:0 0 0 4px color-mix(in srgb, var(--acc-2) 16%, transparent);}
/* Campo de senha: espaço reservado à direita pro botão de
   visibilidade (`.mv-auth-eye`), único ícone que continua existindo
   nas barras de dados — os ícones de e-mail/senha/código à esquerda
   foram removidos a pedido do usuário. */
.mv-auth-input:has(.mv-auth-eye) input{padding-right:40px;}
.mv-auth-field.mv-auth-code input{letter-spacing:2px; font-weight:700;}
.mv-auth-eye{position:absolute; right:8px; top:50%; transform:translateY(-50%); width:34px; height:34px; border:0; background:none; cursor:pointer; color:#94a3b8; display:flex; align-items:center; justify-content:center; border-radius:8px; transition:color .15s, background .15s;}
.mv-auth-eye:hover{color:#475569; background:#eef2f6;}

.mv-auth-row{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:-4px 0 20px; flex-wrap:wrap;}
.mv-auth-remember{display:flex; align-items:center; gap:8px; font-size:13.5px; color:#334155; cursor:pointer;}
.mv-auth-remember input{width:16px; height:16px; accent-color:var(--acc-2);}
.mv-auth-link{font-size:13.5px; color:var(--acc-2); text-decoration:none; font-weight:600; background:none; border:0; cursor:pointer; padding:0;}
.mv-auth-link:hover{text-decoration:underline;}
.mv-auth-forgot-help{display:none; margin:-8px 0 18px; font-size:13px; color:#64748b; background:#f8fafc; border:1px solid #e2e8f0; border-radius:12px; padding:10px 12px;}
.mv-auth-forgot-help.open{display:block;}
.mv-auth-forgot{margin:-10px 0 20px; text-align:right;}
.mv-auth-back{margin-top:18px; font-size:13.5px;}
.mv-auth-back a{color:#64748b; text-decoration:none; font-weight:600;}
.mv-auth-back a:hover{color:#334155; text-decoration:underline;}

.mv-auth-btn{
  display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  padding:12px 18px; border:1.5px solid var(--acc); border-radius:12px; color:#fff;
  background:var(--acc);
  font-size:15px; font-weight:700; cursor:pointer;
  box-shadow:0 12px 26px -10px color-mix(in srgb, var(--acc-2) 65%, transparent);
  transition:box-shadow .18s, transform .12s, background .18s, color .18s;
}
.mv-auth-btn:hover{background:#fff; color:var(--acc); box-shadow:0 16px 32px -10px color-mix(in srgb, var(--acc-2) 75%, transparent); transform:translateY(-1px);}
.mv-auth-btn:active{transform:translateY(1px); box-shadow:0 8px 16px -8px color-mix(in srgb, var(--acc-2) 60%, transparent);}
.mv-auth-btn:disabled{opacity:.7; cursor:default; transform:none;}

.mv-auth-note{display:flex; gap:10px; margin-top:16px; padding:12px 14px; border-radius:13px; background:color-mix(in srgb, var(--acc-2) 7%, #fff); border:1px solid color-mix(in srgb, var(--acc-2) 20%, #fff);}
.mv-auth-note .mv-auth-ic{flex-shrink:0; width:20px; height:20px; color:var(--acc-2); margin-top:1px;}
.mv-auth-note strong{display:block; font-size:13px; color:#0f172a; margin-bottom:2px;}
.mv-auth-note p{margin:0; font-size:12px; line-height:1.48; color:#475569;}

.mv-auth-foot{
	width:100%; max-width:800px; text-align:center; margin-top:72px; font-size:12px; color:#94a3b8;
	display:flex; flex-direction:column; gap:4px;
}

/* Alertas */
.mv-auth-alert{padding:12px 14px; border-radius:13px; font-size:14px; line-height:1.45; margin-bottom:18px; border:1px solid transparent;}
.mv-auth-alert-error{background:#fef2f2; border-color:#fecaca; color:#991b1b;}
.mv-auth-alert-success{background:#ecfdf5; border-color:#bbf7d0; color:#065f46;}
.mv-auth-alert-warning{background:#fffbeb; border-color:#fde68a; color:#92400e;}

/* ---------- Responsivo ---------- */
@media (max-width:820px){
  .mv-auth{padding:0; min-height:100vh; min-height:100dvh; align-items:stretch; justify-content:flex-start; background:#fff;}
  .mv-auth-split{max-width:520px; margin:0 auto; flex-direction:column; border-radius:0; box-shadow:none; min-height:auto;}
  .mv-auth-aside{flex:0 0 auto; padding:34px 24px 40px;}
  .mv-auth-aside::before{width:160px; height:160px;}
  .mv-auth-aside::after{width:130px; height:130px;}
  .mv-auth-shield{width:60px; max-height:60px;}
  .mv-auth-brand-text strong{font-size:25px;}
  .mv-auth-tagline{display:none;}
  .mv-auth-dots{width:70px; height:44px;}
  .mv-auth-deco{display:none;}
  .mv-auth-main{
    flex:0 0 auto;
    padding:28px 22px 30px;
    background:#fff; border-radius:24px 24px 0 0; margin-top:-22px;
    position:relative; z-index:1;
    box-shadow:0 -18px 34px -22px rgba(15,23,42,.25);
  }
  .mv-auth-main h1{font-size:21px; text-align:center;}
  .mv-auth-lead{text-align:center;}
  .mv-auth-foot{
    background:#fff; color:#6b6a63; border-top:1px solid #e7e4da;
    margin:0; max-width:none; padding:18px 20px calc(24px + env(safe-area-inset-bottom,0px));
  }
}
@media (min-width:521px) and (max-width:820px){
  .mv-auth{
    padding:28px 16px; min-height:60vh; min-height:60dvh; background:
      radial-gradient(46% 40% at 12% 8%, color-mix(in srgb, var(--acc-2) 12%, transparent), transparent 70%),
      radial-gradient(40% 36% at 92% 88%, color-mix(in srgb, var(--acc-2) 9%, transparent), transparent 70%);
  }
  .mv-auth-split{border-radius:26px; box-shadow:0 26px 60px -18px rgba(15,23,42,.24), 0 10px 24px -12px color-mix(in srgb, var(--acc-2) 30%, transparent); min-height:auto; margin:24px auto;}
  .mv-auth-main{border-radius:0; margin-top:0; box-shadow:none;}
}
@media (max-width:380px){
  .mv-auth-main{padding:24px 18px 26px;}
}

/* ==========================================================================
   v3.8 — Novo fluxo de acesso do Aluno (abas, confirmação, cadastro)
   ========================================================================== */

/* Aba de alternância Entrar / Primeiro acesso */
.mv-auth-tabs{display:flex; gap:6px; background:#f1f5f9; padding:5px; border-radius:13px; margin-bottom:18px;}
.mv-auth-tab{flex:1; border:0; background:transparent; padding:9px 12px; border-radius:9px; font-size:13.5px; font-weight:700; color:#64748b; cursor:pointer; transition:all .15s ease;}
.mv-auth-tab:hover{color:#334155;}
.mv-auth-tab.is-active{background:#fff; color:#0f172a; box-shadow:0 2px 6px rgba(15,23,42,.1);}

.mv-auth-panel{display:none;}
.mv-auth-panel.is-active{display:block;}

/* Etapa de confirmação do nome */
.mv-auth-confirm{margin:6px 0 22px; padding:24px 20px; border:1px solid #e2e8f0; border-radius:16px; background:#f8fafc; text-align:center;}
.mv-auth-confirm-label{display:block; font-size:14px; color:#64748b; margin-bottom:6px;}
.mv-auth-confirm-name{display:inline; font-size:24px; font-weight:800; color:#0f172a; line-height:1.25;}
.mv-auth-confirm-q{font-size:24px; font-weight:800; color:#0f172a;}

.mv-auth-actions{display:flex; gap:12px; margin-bottom:8px;}
.mv-auth-actions .mv-auth-btn{flex:1;}

/* Botão secundário (Não sou eu) */
.mv-auth-btn-ghost{background:var(--acc); color:#fff; border:1.5px solid var(--acc); box-shadow:none;}
.mv-auth-btn-ghost:hover{background:#fff; color:var(--acc); border-color:var(--acc); box-shadow:none; transform:translateY(-1px);}

/* Dica de senha no cadastro */
.mv-auth-hint{min-height:18px; margin:-8px 0 14px; font-size:13px; color:#64748b;}
.mv-auth-hint.is-error{color:#b91c1c;}
.mv-auth-hint.is-ok{color:#15803d;}

/* Alerta neutro (avisos do fluxo) */
.mv-auth-alert-notice{background:#eff6ff; color:#1e40af; border:1px solid #bfdbfe;}
