/* Onisne | Extensão de perfil e horário — usa as variáveis do tema existente. */
.onp-modal {
  width: min(920px, 95vw);
  max-width: 920px;
  max-height: 92vh;
  overflow: auto;
  padding: 0;
  border: 1px solid var(--line, rgba(75,52,127,.18));
  border-radius: 24px;
  background: var(--surface, #fff);
  color: var(--ink, #282333);
  box-shadow: var(--sombra-forte, 0 24px 60px rgba(30,20,50,.25));
}
.onp-modal::backdrop { background: rgba(25, 18, 38, .66); backdrop-filter: blur(5px); }
.onp-modal[open] { animation: onp-aparecer .22s ease-out; }
@keyframes onp-aparecer { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
.onp-modal, .onp-modal * { box-sizing: border-box; }
.onp-modal-topo { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.5rem 1.7rem 1rem; }
.onp-eyebrow { display:block; margin-bottom:.35rem; color:var(--marca-forte, #60429a); font:700 .68rem/1.3 var(--fonte, Arial,sans-serif); letter-spacing:.13em; }
.onp-modal-topo h2, .onp-horario-cabecalho h2 { margin:0 0 .35rem; color:var(--ink, #282333); font:600 1.55rem/1.2 var(--fonte-titulo, Arial,sans-serif); }
.onp-modal-topo p, .onp-horario-cabecalho p { margin:0; color:var(--muted, #716a7d); font-size:.9rem; }
.onp-fechar { display:grid; place-items:center; flex:none; width:2.35rem; height:2.35rem; border:0; border-radius:50%; background:var(--surface-2, #f3eef9); color:var(--marca-forte, #60429a); font-size:1.6rem; line-height:1; cursor:pointer; }
.onp-fechar:hover { background:color-mix(in srgb, var(--marca, #8d64cc) 18%, var(--surface, #fff)); }
.onp-abas { display:flex; gap:.45rem; padding:0 1.7rem; border-bottom:1px solid var(--line, #e8e0f1); }
.onp-aba { padding:.7rem 1rem; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted, #716a7d); font:600 .88rem var(--fonte, Arial,sans-serif); cursor:pointer; }
.onp-aba.ativa { border-bottom-color:var(--marca-2, #e64ea8); color:var(--marca-forte, #60429a); }
.onp-painel { padding:1.35rem 1.7rem 1.7rem; }
.onp-identidade { display:flex; align-items:center; gap:1.1rem; margin-bottom:1rem; padding:1.1rem; border:1px solid var(--line, #e8e0f1); border-radius:18px; background:linear-gradient(110deg, color-mix(in srgb, var(--marca, #8d64cc) 12%, var(--surface, #fff)), color-mix(in srgb, var(--marca-2, #e64ea8) 9%, var(--surface, #fff))); }
.onp-avatar { display:grid; place-items:center; width:5.2rem; height:5.2rem; flex:none; overflow:hidden; border:3px solid var(--surface, #fff); border-radius:50%; background:var(--grad, linear-gradient(120deg,#7054a6,#dd55a7)); color:#fff; box-shadow:0 5px 18px color-mix(in srgb, var(--marca, #8d64cc) 28%, transparent); font:700 1.35rem var(--fonte-titulo, Arial,sans-serif); background-size:cover; background-position:center; }
.onp-identidade-texto { min-width:0; }
.onp-identidade-texto h3 { margin:.3rem 0 .15rem; color:var(--ink, #282333); font:600 1.15rem var(--fonte-titulo, Arial,sans-serif); }
.onp-identidade-texto p { margin:0 0 .55rem; color:var(--muted, #716a7d); font-size:.84rem; }
.onp-selo-demo { display:inline-flex; align-items:center; padding:.2rem .55rem; border-radius:99px; background:color-mix(in srgb, var(--marca-2, #e64ea8) 15%, var(--surface, #fff)); color:var(--marca-forte, #60429a); font:700 .62rem var(--fonte, Arial,sans-serif); letter-spacing:.07em; }
.onp-acoes-foto { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; }
.onp-botao-secundario, .onp-botao-principal { display:inline-flex; justify-content:center; align-items:center; gap:.45rem; min-height:2.5rem; padding:.65rem 1rem; border-radius:999px; font:600 .84rem var(--fonte, Arial,sans-serif); text-decoration:none; cursor:pointer; }
.onp-botao-secundario { border:1px solid color-mix(in srgb, var(--marca, #8d64cc) 48%, var(--line, #ddd)); background:var(--surface, #fff); color:var(--marca-forte, #60429a); }
.onp-botao-secundario:hover { background:var(--surface-2, #f3eef9); }
.onp-botao-principal { border:0; background:var(--grad, linear-gradient(100deg,#7054a6,#dd55a7)); color:#fff; box-shadow:0 7px 18px color-mix(in srgb, var(--marca-2, #e64ea8) 22%, transparent); }
.onp-botao-principal:hover { filter:brightness(1.05); transform:translateY(-1px); }
.onp-link { padding:.15rem 0; border:0; background:transparent; color:var(--marca-forte, #60429a); font:600 .8rem var(--fonte, Arial,sans-serif); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.onp-ajuda { display:block; margin-top:.4rem; color:var(--muted, #716a7d); font-size:.75rem; }
.onp-registro { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:0 0 1rem; padding:.8rem 1rem; border:1px solid var(--line, #e8e0f1); border-radius:13px; background:var(--surface-2, #f7f3fb); }
.onp-registro strong { font-size:.84rem; }
.onp-registro p { margin:.25rem 0 0; color:var(--muted, #716a7d); font-size:.85rem; }
.onp-form { display:flex; flex-direction:column; gap:1rem; }
.onp-secao-campos { margin:0 0 .15rem; }
.onp-secao-campos h3 { margin:0 0 .7rem; color:var(--marca-forte, #60429a); font:600 .96rem var(--fonte-titulo, Arial,sans-serif); }
.onp-grade-campos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.onp-campo { display:flex; flex-direction:column; min-width:0; gap:.35rem; padding:.8rem; border:1px solid var(--line, #e8e0f1); border-radius:13px; background:var(--surface-2, #f7f3fb); }
.onp-campo.largo { grid-column:1/-1; }
.onp-campo > span:first-child { color:var(--ink, #282333); font-size:.8rem; font-weight:700; }
.onp-campo input, .onp-campo select, .onp-campo textarea, .onp-seletor-previa select, .onp-filtro-turma select { width:100%; min-width:0; padding:.62rem .72rem; border:1px solid var(--line, #ddd); border-radius:9px; outline:none; background:var(--surface, #fff); color:var(--ink, #282333); font:400 .88rem var(--fonte, Arial,sans-serif); }
.onp-campo textarea { min-height:76px; resize:vertical; }
.onp-campo input:focus, .onp-campo select:focus, .onp-campo textarea:focus, .onp-seletor-previa select:focus { border-color:var(--marca, #8d64cc); box-shadow:0 0 0 3px color-mix(in srgb, var(--marca, #8d64cc) 16%, transparent); }
.onp-visibilidade { display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding-top:.25rem; border-top:1px solid color-mix(in srgb, var(--line, #ddd) 70%, transparent); }
.onp-visibilidade small { color:var(--muted, #716a7d); font-size:.7rem; }
.onp-visibilidade select { width:auto; max-width:68%; padding:.35rem .45rem; border:1px solid var(--line, #ddd); border-radius:7px; background:var(--surface, #fff); color:var(--ink, #282333); font-size:.73rem; }
.onp-privacidade-intro { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.25rem; padding:1rem 1.1rem; border-radius:14px; background:color-mix(in srgb, var(--marca, #8d64cc) 11%, var(--surface, #fff)); }
.onp-privacidade-intro strong { font-size:.9rem; }
.onp-privacidade-intro p { margin:.2rem 0 0; color:var(--muted, #716a7d); font-size:.78rem; }
.onp-privacidade-icone { color:var(--marca-forte, #60429a); font-size:1.8rem; }
.onp-nota-privacidade { display:grid; gap:.3rem; padding:.9rem 1rem; border-left:3px solid var(--marca-2, #e64ea8); background:var(--surface-2, #f7f3fb); color:var(--muted, #716a7d); font-size:.75rem; }
.onp-nota-privacidade strong { color:var(--ink, #282333); }
.onp-nota-privacidade b { color:var(--marca-forte, #60429a); }
.onp-aviso-demo { margin:0; padding:.8rem .9rem; border:1px dashed color-mix(in srgb, var(--marca, #8d64cc) 42%, var(--line, #ddd)); border-radius:11px; color:var(--muted, #716a7d); font-size:.74rem; line-height:1.5; }
.onp-form-acoes { display:flex; gap:.6rem; justify-content:flex-end; flex-wrap:wrap; }
.onp-previa-intro { margin-bottom:1rem; }
.onp-previa-intro h3 { margin:.5rem 0 .3rem; font:600 1.08rem var(--fonte-titulo, Arial,sans-serif); }
.onp-previa-intro p { margin:0; color:var(--muted, #716a7d); font-size:.84rem; }
.onp-seletor-previa { display:flex; align-items:center; gap:.8rem; margin:1rem 0; color:var(--ink, #282333); font-size:.82rem; font-weight:700; }
.onp-seletor-previa select { max-width:410px; }
.onp-cartao-previa { padding:1rem; border:1px solid var(--line, #e8e0f1); border-radius:17px; background:var(--surface-2, #f7f3fb); }
.onp-previa-pessoa { display:flex; align-items:center; gap:.8rem; margin-bottom:.9rem; }
.onp-previa-avatar { display:grid; place-items:center; width:3.4rem; height:3.4rem; flex:none; border-radius:50%; background:var(--grad, linear-gradient(100deg,#7054a6,#dd55a7)); color:#fff; font-weight:700; }
.onp-previa-pessoa h4 { margin:0; font:600 1rem var(--fonte-titulo, Arial,sans-serif); }
.onp-previa-pessoa p { margin:.15rem 0 0; color:var(--muted, #716a7d); font-size:.78rem; }
.onp-previa-dados { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.onp-previa-dado { padding:.65rem .75rem; border-radius:10px; background:var(--surface, #fff); }
.onp-previa-dado small { display:block; margin-bottom:.15rem; color:var(--muted, #716a7d); font-size:.68rem; }
.onp-previa-dado strong { font-size:.82rem; font-weight:600; overflow-wrap:anywhere; }
.onp-previa-vazio { color:var(--muted, #716a7d); font-size:.83rem; font-style:italic; }
.onp-regras-acesso { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; margin:1rem 0; }
.onp-regras-acesso > div { display:flex; gap:.55rem; align-items:flex-start; padding:.75rem; border:1px solid var(--line, #e8e0f1); border-radius:12px; }
.onp-regras-acesso p { margin:0; color:var(--muted, #716a7d); font-size:.7rem; line-height:1.45; }
.onp-regras-acesso strong { color:var(--ink, #282333); font-size:.75rem; }
.onp-regra-ponto { width:.55rem; height:.55rem; flex:none; margin-top:.2rem; border-radius:50%; background:var(--marca-2, #e64ea8); }
.onp-regra-ponto.escola { background:var(--marca, #8d64cc); }
.onp-regra-ponto.gestao { background:var(--ink, #282333); }

/* Tela de horário */
.onp-horario-view { animation:onp-aparecer .22s ease-out; }
.onp-horario-cabecalho { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:0 0 1.2rem; padding:1.35rem 1.5rem; border:1px solid var(--line, #e8e0f1); border-radius:20px; background:linear-gradient(110deg, color-mix(in srgb, var(--marca, #8d64cc) 13%, var(--surface, #fff)), color-mix(in srgb, var(--marca-2, #e64ea8) 10%, var(--surface, #fff))); }
.onp-horario-cabecalho h2 { font-size:1.5rem; }
.onp-horario-marca { display:grid; place-items:center; width:3.6rem; height:3.6rem; flex:none; border-radius:17px; background:var(--grad, linear-gradient(100deg,#7054a6,#dd55a7)); color:#fff; font-size:2rem; box-shadow:0 8px 20px color-mix(in srgb, var(--marca, #8d64cc) 25%, transparent); }
.onp-horario-filtros { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:.9rem; flex-wrap:wrap; }
.onp-horario-filtros label { display:flex; flex-direction:column; gap:.35rem; min-width:220px; color:var(--ink, #282333); font-size:.78rem; font-weight:700; }
.onp-horario-filtros select { padding:.62rem .75rem; border:1px solid var(--line, #ddd); border-radius:9px; background:var(--surface, #fff); color:var(--ink, #282333); font:400 .88rem var(--fonte, Arial,sans-serif); }
.onp-horario-legenda { display:flex; gap:.9rem; color:var(--muted, #716a7d); font-size:.72rem; flex-wrap:wrap; }
.onp-horario-legenda span { display:flex; align-items:center; gap:.35rem; }
.onp-legenda-ponto { width:.55rem; height:.55rem; border-radius:50%; background:var(--marca, #8d64cc); }
.onp-legenda-ponto.onp-legenda-plano { background:var(--marca-2, #e64ea8); }
.onp-tabela-contorno { overflow:auto; border:1px solid var(--line, #e8e0f1); border-radius:15px; background:var(--surface, #fff); box-shadow:var(--sombra, 0 8px 24px rgba(30,20,50,.07)); }
.onp-tabela-horario { width:100%; min-width:760px; border-collapse:separate; border-spacing:0; font-family:var(--fonte, Arial,sans-serif); }
.onp-tabela-horario th { padding:.85rem .65rem; border-right:1px solid rgba(255,255,255,.15); background:var(--marca-forte, #60429a); color:#fff; text-align:center; font-size:.78rem; font-weight:700; }
.onp-tabela-horario th:first-child { min-width:142px; text-align:left; }
.onp-tabela-horario td { min-width:118px; padding:.45rem; border-right:1px solid var(--line, #e8e0f1); border-bottom:1px solid var(--line, #e8e0f1); vertical-align:top; }
.onp-tabela-horario tr:last-child td { border-bottom:0; }
.onp-tabela-horario td:last-child, .onp-tabela-horario th:last-child { border-right:0; }
.onp-tabela-horario tbody tr:nth-child(even) { background:color-mix(in srgb, var(--surface-2, #f7f3fb) 55%, var(--surface, #fff)); }
.onp-hora-celula { min-width:142px; background:color-mix(in srgb, var(--marca, #8d64cc) 9%, var(--surface, #fff)); }
.onp-hora-celula strong { display:block; color:var(--marca-forte, #60429a); font-size:.78rem; }
.onp-hora-celula small { display:block; margin-top:.15rem; color:var(--muted, #716a7d); font-size:.7rem; }
.onp-aula { min-height:69px; padding:.62rem .58rem; border-radius:10px; background:color-mix(in srgb, var(--marca, #8d64cc) 13%, var(--surface, #fff)); border-left:3px solid var(--marca, #8d64cc); }
.onp-aula strong { display:block; color:var(--ink, #282333); font-size:.76rem; line-height:1.3; }
.onp-aula small { display:block; margin-top:.28rem; color:var(--muted, #716a7d); font-size:.68rem; line-height:1.3; }
.onp-aula .onp-turma-tag { display:inline-block; margin-top:.35rem; padding:.12rem .4rem; border-radius:99px; background:color-mix(in srgb, var(--marca-2, #e64ea8) 18%, var(--surface, #fff)); color:var(--marca-forte, #60429a); font-size:.62rem; font-weight:700; }
.onp-aula.onp-planejamento { background:color-mix(in srgb, var(--marca-2, #e64ea8) 11%, var(--surface, #fff)); border-left-color:var(--marca-2, #e64ea8); }
.onp-aula.onp-planejamento strong { color:var(--marca-forte, #60429a); }
.onp-horario-rodape { display:flex; gap:1.1rem; flex-wrap:wrap; margin-top:.9rem; padding:.85rem 1rem; border-radius:12px; background:var(--surface-2, #f7f3fb); color:var(--muted, #716a7d); font-size:.76rem; }
.onp-horario-rodape strong { color:var(--ink, #282333); }
.onp-horario-observacao { margin:.7rem 0 0; color:var(--muted, #716a7d); font-size:.75rem; }

@media (max-width:700px) {
  .onp-modal { width:96vw; max-height:94vh; border-radius:18px; }
  .onp-modal-topo { padding:1.1rem 1rem .8rem; }
  .onp-abas { padding:0 1rem; }
  .onp-painel { padding:1rem; }
  .onp-grade-campos, .onp-previa-dados { grid-template-columns:1fr; }
  .onp-regras-acesso { grid-template-columns:1fr; }
  .onp-identidade { align-items:flex-start; }
  .onp-avatar { width:4.3rem; height:4.3rem; }
  .onp-registro { align-items:flex-start; flex-direction:column; }
  .onp-seletor-previa { align-items:stretch; flex-direction:column; gap:.4rem; }
  .onp-seletor-previa select { max-width:none; }
  .onp-horario-cabecalho { padding:1rem; }
  .onp-horario-marca { width:2.9rem; height:2.9rem; }
}
@media (prefers-reduced-motion:reduce) { .onp-modal[open], .onp-horario-view { animation:none; } }
a.onp-menu-horario { text-decoration:none; }
a.onp-menu-horario .menu-rot { color:inherit; }
.onp-modal.onp-visualizacao-externa .onp-abas { display:none !important; }
#onp-perfil-externo-cabecalho { margin-bottom:1rem; }
#onp-perfil-externo-cabecalho h3 { margin:.5rem 0 .2rem; font:600 1.08rem var(--fonte-titulo, Arial,sans-serif); }
#onp-perfil-externo-cabecalho p { margin:0; color:var(--muted, #716a7d); font-size:.8rem; }
.onp-mini-verperfil { align-self:flex-start; margin-top:.25rem; }
.onp-equipe-docente { margin-top:1rem; }
.onp-equipe-docente .lista > li { flex-direction:row; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.onp-equipe-docente .lista > li > div { min-width:0; }
