html{scroll-behavior:smooth}
::selection{background:#D9A441;color: var(--tinta)}
.btn,.btn-link,.modo,.tipo-opcao{transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -14px rgba(18,50,67,.55)}
.btn:active{transform:translateY(0) scale(.98)}
input,select,textarea{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(217,164,65,.28)}
.cartao-entrada{box-shadow:0 1px 2px rgba(18,50,67,.06),0 26px 50px -30px rgba(18,50,67,.4)}
@media (prefers-reduced-motion:no-preference){
.cartao-entrada{animation:ag-sobe .7s cubic-bezier(.2,.8,.2,1) both}
.frase-anisio{animation:ag-sobe .8s .12s cubic-bezier(.2,.8,.2,1) both}
.entrada-prof{animation:ag-sobe .8s .2s cubic-bezier(.2,.8,.2,1) both}
.capa img{animation:ag-surge 1.1s ease both}
}
@keyframes ag-sobe{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes ag-surge{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}
.fab-planejador{position:fixed;right:22px;bottom:22px;z-index:900;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;background:#123243;color:#fff;font-weight:700;text-decoration:none;box-shadow:0 14px 30px -12px rgba(11,35,49,.6);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.fab-planejador:hover{transform:translateY(-2px);box-shadow:0 18px 36px -12px rgba(11,35,49,.7)}
#app[hidden]~.fab-planejador{display:none}
@media (max-width:700px){.fab-planejador span{display:none}.fab-planejador{padding:14px;right:16px;bottom:16px}}
@media print{.fab-planejador{display:none}}
@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}

/* ===== Polimento visível (acrescentado) ===== */
/* cartões e blocos: relevo ao passar o mouse */
.bloco, .turma-cartao, .cartao-item, .proj-cartao, .livro, .plano, .acao, .resumo-num, .q-banco, .item-prof {
  transition: transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .2s ease;
}
.turma-cartao:hover, .cartao-item:hover, .proj-cartao:hover, .plano:hover, .q-banco:hover, .item-prof:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -20px rgba(18,50,67,.55);
}
.acao:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -22px rgba(18,50,67,.6); }

/* menu lateral: marcador do item ativo */
.nav-item { position: relative; border-radius: 8px; }
.nav-item.ativo::before {
  content: ""; position: absolute; left: -10px; top: 20%; bottom: 20%;
  width: 4px; border-radius: 0 4px 4px 0; background: var(--terra);
}
.turma-bt { border-radius: 8px; }

/* títulos de seção com filete de cor */
.cabeca-vista h1, .bloco > h2:first-child, .linha-titulo h2 { position: relative; }
.cabeca-vista h1::after {
  content: ""; display: block; width: 52px; height: 3px; margin-top: .45rem;
  background: var(--terra); border-radius: 3px;
}

/* tabelas: zebra e cabeçalho fixo mais legível */
.tabela tbody tr:nth-child(even) { background: rgba(18,50,67,.028); }
.tabela tbody tr:hover { background: rgba(201,150,60,.10); }

/* etiquetas e avatares mais assentados */
.tag { border: 1px solid rgba(18,50,67,.08); }
.avatar, .perfil-foto, .tc-sigla { box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }

/* faixas e avisos com leve profundidade */
.faixa, .aviso-suave, .proj-aviso, .destaque { box-shadow: 0 8px 20px -18px rgba(18,50,67,.55); }

/* campos: foco mais claro e cantos coerentes */
input, select, textarea { border-radius: 6px; }
.busca { box-shadow: inset 0 1px 2px rgba(18,50,67,.05); }

/* rolagem discreta no painel */
.lateral::-webkit-scrollbar, .tabela-caixa::-webkit-scrollbar, .modal-corpo::-webkit-scrollbar { width: 10px; height: 10px; }
.lateral::-webkit-scrollbar-thumb, .tabela-caixa::-webkit-scrollbar-thumb, .modal-corpo::-webkit-scrollbar-thumb {
  background: rgba(18,50,67,.22); border-radius: 999px; border: 3px solid transparent; background-clip: content-box;
}

/* modais entram com leveza */
@media (prefers-reduced-motion: no-preference) {
  .modal { animation: ag-sobe .22s cubic-bezier(.2,.8,.2,1) both; }
}
