/* AlunoPass - estilos do sistema (complementam o Bootstrap 5) */
:root {
    --ap-fundo: #f4f6fb;
    --ap-borda: #e5e9f2;
    --ap-texto: #1e293b;
    --ap-sidebar-w: 264px;
    --ap-raio: 14px;
    --bs-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-body-color: var(--ap-texto);
    --bs-border-color: var(--ap-borda);
}

body.ap-corpo { background: var(--ap-fundo); font-size: .94rem; }
.min-w-0 { min-width: 0; }

/* ---- Cores da organização sobre o Bootstrap ---- */
.btn-primary {
    --bs-btn-bg: var(--ap-primario); --bs-btn-border-color: var(--ap-primario);
    --bs-btn-hover-bg: var(--ap-primario-escuro); --bs-btn-hover-border-color: var(--ap-primario-escuro);
    --bs-btn-active-bg: var(--ap-primario-muito-escuro); --bs-btn-active-border-color: var(--ap-primario-muito-escuro);
    --bs-btn-disabled-bg: var(--ap-primario); --bs-btn-disabled-border-color: var(--ap-primario);
    --bs-btn-focus-shadow-rgb: var(--ap-primario-rgb);
}
.btn-outline-primary {
    --bs-btn-color: var(--ap-primario); --bs-btn-border-color: var(--ap-primario);
    --bs-btn-hover-bg: var(--ap-primario); --bs-btn-hover-border-color: var(--ap-primario);
    --bs-btn-active-bg: var(--ap-primario-escuro); --bs-btn-active-border-color: var(--ap-primario-escuro);
    --bs-btn-focus-shadow-rgb: var(--ap-primario-rgb);
}
.text-primary { color: var(--ap-primario) !important; }
.bg-primary, .text-bg-primary { background-color: var(--ap-primario) !important; }
.form-control:focus, .form-select:focus {
    border-color: rgba(var(--ap-primario-rgb), .6);
    box-shadow: 0 0 0 .22rem rgba(var(--ap-primario-rgb), .15);
}
.form-check-input:checked { background-color: var(--ap-primario); border-color: var(--ap-primario); }
.form-check-input:focus { border-color: rgba(var(--ap-primario-rgb), .6); box-shadow: 0 0 0 .22rem rgba(var(--ap-primario-rgb), .15); }
.page-item.active .page-link { background-color: var(--ap-primario); border-color: var(--ap-primario); color: #fff; }
.page-link { color: var(--ap-primario); }
.form-label { font-size: .8rem; font-weight: 600; color: #475569; margin-bottom: .3rem; }
.form-control, .form-select { border-radius: 10px; border-color: #d5dbe8; }
.btn { border-radius: 10px; font-weight: 500; }
.badge { font-weight: 600; }

/* ---- Estrutura ---- */
.ap-app { display: flex; min-height: 100vh; }
.ap-sidebar {
    background: var(--ap-secundario); color: #cbd5e1; width: var(--ap-sidebar-w);
    display: flex; flex-direction: column; flex: 0 0 var(--ap-sidebar-w);
    --bs-offcanvas-width: var(--ap-sidebar-w); --bs-offcanvas-bg: var(--ap-secundario); --bs-offcanvas-color: #cbd5e1;
}
@media (min-width: 992px) {
    .ap-sidebar { position: sticky !important; top: 0; height: 100vh; overflow-y: auto; }
}
.ap-conteudo { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }

.ap-brand { display: flex; align-items: center; gap: .75rem; padding: 1.1rem 1.1rem 1rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.ap-brand-logo { width: 42px; height: 42px; object-fit: contain; background: #fff; border-radius: 10px; padding: 3px; }
.ap-brand-marca {
    width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; color: #fff;
    background: linear-gradient(135deg, var(--ap-primario), var(--ap-primario-escuro));
}
.ap-brand-nome { color: #fff; font-weight: 700; line-height: 1.15; font-size: .95rem; }
.ap-brand-sub { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #94a3b8; }

.ap-menu { padding: .6rem .75rem; flex: 1 1 auto; }
.ap-menu-grupo { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: #64748b; padding: 1rem .75rem .35rem; font-weight: 700; }
.ap-menu-item {
    display: flex; align-items: center; gap: .75rem; padding: .6rem .75rem; border-radius: 10px;
    color: #cbd5e1; text-decoration: none; margin-bottom: 2px; font-weight: 500; transition: background .15s, color .15s;
}
.ap-menu-item i { font-size: 1.1rem; width: 1.3rem; text-align: center; opacity: .85; }
.ap-menu-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.ap-menu-item.ativo { background: var(--ap-primario); color: #fff; box-shadow: 0 6px 16px -6px rgba(var(--ap-primario-rgb), .8); }
.ap-menu-item.ativo i { opacity: 1; }
.ap-menu-item.desativado { opacity: .38; cursor: default; font-size: .87rem; }
.ap-menu-item.desativado:hover { background: none; color: #cbd5e1; }

.ap-sidebar-rodape { display: flex; align-items: center; gap: .65rem; padding: .9rem 1rem; border-top: 1px solid rgba(255,255,255,.08); }
.ap-usuario-nome { color: #fff; font-weight: 600; font-size: .85rem; max-width: 140px; }
.ap-usuario-perfil { font-size: .72rem; color: #94a3b8; }
.ap-sair { color: #94a3b8; font-size: 1.2rem; text-decoration: none; }
.ap-sair:hover { color: #fff; }

.ap-topbar {
    display: flex; align-items: center; gap: .75rem; padding: .7rem 1.5rem; background: #fff;
    border-bottom: 1px solid var(--ap-borda); position: sticky; top: 0; z-index: 100;
}
.ap-breadcrumb .breadcrumb { font-size: .85rem; }
.ap-main { padding: 1.5rem; flex: 1 1 auto; max-width: 1400px; width: 100%; }
@media (max-width: 575.98px) { .ap-main { padding: 1rem; } .ap-topbar { padding: .6rem 1rem; } }
.ap-rodape { padding: 1rem 1.5rem; font-size: .78rem; color: #94a3b8; text-align: center; }

.ap-cabecalho-pagina { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .75rem; margin-bottom: 1.25rem; }
.ap-titulo { font-size: 1.55rem; font-weight: 700; margin: 0; letter-spacing: -.01em; }
.ap-subtitulo { color: #64748b; font-size: .9rem; margin-top: .15rem; }
.ap-acoes { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---- Cartões ---- */
.ap-cartao { background: #fff; border: 1px solid var(--ap-borda); border-radius: var(--ap-raio); box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.ap-cartao-titulo { font-size: .95rem; font-weight: 700; margin: 0; }
.ap-cartao-topo { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ap-borda); gap: .5rem; }
.ap-cartao-corpo { padding: 1.25rem; }

.ap-indicador { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; }
.ap-indicador-icone {
    width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center; font-size: 1.4rem; flex: 0 0 48px;
    background: rgba(var(--ap-primario-rgb), .12); color: var(--ap-primario);
}
.ap-indicador-icone.verde { background: #dcfce7; color: #16a34a; }
.ap-indicador-icone.ambar { background: #fef3c7; color: #d97706; }
.ap-indicador-icone.rosa { background: #fce7f3; color: #db2777; }
.ap-indicador-valor { font-size: 1.7rem; font-weight: 700; line-height: 1; }
.ap-indicador-rotulo { font-size: .8rem; color: #64748b; margin-top: .25rem; }

/* ---- Tabelas ---- */
.ap-tabela { margin: 0; }
.ap-tabela thead th {
    font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: #64748b; font-weight: 700;
    background: #f8fafc; border-bottom: 1px solid var(--ap-borda); padding: .75rem 1rem; white-space: nowrap;
}
.ap-tabela td { padding: .7rem 1rem; vertical-align: middle; border-color: #eef1f7; }
.ap-tabela tbody tr:hover { background: #fafbff; }
.ap-tabela a.ap-link-nome { color: var(--ap-texto); font-weight: 600; text-decoration: none; }
.ap-tabela a.ap-link-nome:hover { color: var(--ap-primario); }
.ap-filtros { padding: 1rem 1.25rem; border-bottom: 1px solid var(--ap-borda); background: #fcfdff; border-radius: var(--ap-raio) var(--ap-raio) 0 0; }

/* ---- Avatar ---- */
.ap-avatar { border-radius: 50%; object-fit: cover; flex: 0 0 auto; display: inline-block; }
.ap-avatar-iniciais {
    display: inline-grid; place-items: center; font-weight: 700; color: var(--ap-primario);
    background: rgba(var(--ap-primario-rgb), .13);
}
.ap-sidebar .ap-avatar-iniciais { background: rgba(255,255,255,.12); color: #fff; }

/* ---- Formulário em abas ---- */
.ap-abas { border-bottom: 1px solid var(--ap-borda); padding: 0 1rem; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
.ap-abas .nav-link {
    border: 0; border-bottom: 3px solid transparent; border-radius: 0; color: #64748b; font-weight: 600;
    padding: .9rem 1rem; white-space: nowrap; background: none;
}
.ap-abas .nav-link:hover { color: var(--ap-texto); }
.ap-abas .nav-link.active { color: var(--ap-primario); border-bottom-color: var(--ap-primario); background: none; }
.ap-abas .nav-link.com-erro { color: #dc3545; }
.ap-abas .nav-link.com-erro::after { content: "●"; font-size: .6rem; margin-left: .4rem; vertical-align: middle; }
.ap-abas .badge { margin-left: .35rem; }
.secao-titulo {
    font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: #64748b;
    padding-bottom: .4rem; border-bottom: 1px dashed var(--ap-borda); margin-bottom: .1rem;
}
.secao-titulo i { color: var(--ap-primario); margin-right: .2rem; }
.first-section-mt0:first-child { margin-top: 0 !important; }
.ap-rodape-form {
    position: sticky; bottom: 0; background: rgba(255,255,255,.95); backdrop-filter: blur(6px);
    border-top: 1px solid var(--ap-borda); padding: .85rem 1.25rem; display: flex; gap: .5rem; align-items: center;
    border-radius: 0 0 var(--ap-raio) var(--ap-raio); z-index: 5;
}

/* Foto do aluno */
.ap-foto-box { text-align: center; }
.ap-foto-moldura {
    width: 180px; height: 180px; border-radius: 20px; margin: 0 auto .75rem; overflow: hidden; display: grid; place-items: center;
    background: #f1f5f9; border: 2px dashed #cbd5e1; color: #94a3b8; font-size: 3.2rem; position: relative;
}
.ap-foto-moldura img { width: 100%; height: 100%; object-fit: cover; }
.ap-foto-moldura.tem-foto { border-style: solid; border-color: var(--ap-borda); }

/* Cabeçalho do aluno (tela de edição) */
.ap-aluno-topo { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ap-borda); flex-wrap: wrap; }
.ap-aluno-topo h2 { font-size: 1.15rem; font-weight: 700; margin: 0; }

/* Cartão de familiar */
.ap-familiar { border: 1px solid var(--ap-borda); border-radius: 12px; padding: 1rem; display: flex; gap: .9rem; background: #fff; }
.ap-familiar + .ap-familiar { margin-top: .75rem; }
.ap-familiar .papeis .badge { margin: 0 .25rem .25rem 0; }

/* Modal de confirmação */
.ap-modal-icone { width: 54px; height: 54px; border-radius: 50%; background: #fee2e2; color: #dc2626; display: grid; place-items: center; font-size: 1.5rem; margin: 0 auto .8rem; }

/* Resultado da busca de familiar */
.ap-busca-resultado { max-height: 260px; overflow-y: auto; }
.ap-busca-resultado .list-group-item { cursor: pointer; }

/* Barra de ocupação */
.ap-barra { height: 8px; border-radius: 99px; background: #e8edf5; overflow: hidden; }
.ap-barra > span { display: block; height: 100%; background: var(--ap-primario); border-radius: 99px; }
.ap-barra > span.cheia { background: #dc2626; }
.ap-barra > span.quase { background: #f59e0b; }

/* ---- Login ---- */
body.ap-login-corpo {
    min-height: 100vh; display: grid; place-items: center; padding: 1.25rem;
    background: radial-gradient(circle at 15% 10%, rgba(var(--ap-primario-rgb), .35), transparent 45%),
                radial-gradient(circle at 90% 90%, rgba(var(--ap-primario-rgb), .25), transparent 40%),
                var(--ap-secundario);
}
.ap-login-cartao { width: 100%; max-width: 410px; background: #fff; border-radius: 20px; padding: 2.2rem 2rem; box-shadow: 0 25px 60px -20px rgba(0,0,0,.5); }
.ap-login-logo { width: 72px; height: 72px; object-fit: contain; margin: 0 auto 1rem; display: block; }
.ap-login-marca {
    width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; font-size: 2rem; color: #fff; margin: 0 auto 1rem;
    background: linear-gradient(135deg, var(--ap-primario), var(--ap-primario-escuro));
}

/* Impressão */
@media print {
    .ap-sidebar, .ap-topbar, .ap-acoes, .ap-rodape, .ap-rodape-form, .btn { display: none !important; }
    body.ap-corpo { background: #fff; }
    .ap-main { max-width: none; padding: 0; }
}

/* Abas cujos painéis ficam dentro e fora de um <form> */
.ap-tabcontent .tab-pane { display: none; padding: 1.25rem; }
.ap-tabcontent .tab-pane.active { display: block; }
.ap-tabcontent fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }

/* O offcanvas-lg do Bootstrap zera fundo/largura a partir de 992px: reafirma o menu lateral */
.ap-sidebar { background-color: var(--ap-secundario) !important; color: #cbd5e1; }
@media (min-width: 992px) {
    .ap-sidebar { width: var(--ap-sidebar-w) !important; flex: 0 0 var(--ap-sidebar-w) !important; height: 100vh !important; }
}

.nav-pills .nav-link.com-erro { color: #dc3545; background: #fdecee; }
.nav-pills .nav-link.com-erro.active { color: #fff; background: #dc3545; }

/* ---- Grade de permissões (cadastro de usuário) ---- */
.ap-grade-permissoes { min-width: 560px; }
.ap-grade-permissoes thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #334155; font-weight: 700; border-bottom: 2px solid #cbd5e1; }
.ap-grade-permissoes thead th:not(:first-child) { width: 92px; }
.ap-grade-permissoes tr.grupo td { background: #e2e8f0; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #334155; padding: .4rem .75rem; }
.ap-grade-permissoes tbody tr:not(.grupo) td { border-bottom: 1px solid #e2e8f0; padding-top: .55rem; padding-bottom: .55rem; }
.ap-grade-permissoes tbody tr:not(.grupo):hover { background: rgba(var(--ap-primario-rgb, 37, 99, 235), .05); }
/* células de ação: fundo cinza claro e pontilhado para "não se aplica" */
.ap-grade-permissoes td.text-center { background-color: #f8fafc; border-left: 1px solid #e2e8f0; }
.ap-grade-permissoes td.text-center:has(.perm-check:checked) { background-color: rgba(var(--ap-primario-rgb, 37, 99, 235), .12); }
/* caixa de seleção bem visível */
.ap-grade-permissoes .perm-check {
    width: 1.5rem; height: 1.5rem; margin: 0; cursor: pointer;
    border: 2px solid #475569; border-radius: .35rem; background-color: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .18);
}
.ap-grade-permissoes .perm-check:hover:not(:disabled) { border-color: var(--ap-primario, #2563eb); box-shadow: 0 0 0 3px rgba(var(--ap-primario-rgb, 37, 99, 235), .2); }
.ap-grade-permissoes .perm-check:checked {
    background-color: var(--ap-primario, #2563eb); border-color: var(--ap-primario-escuro, #1d4ed8);
    --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3.4' d='m5 10.5 3.5 3.5L15 6.5'/%3e%3c/svg%3e");
}
.ap-grade-permissoes .perm-check:focus { box-shadow: 0 0 0 .2rem rgba(var(--ap-primario-rgb, 37, 99, 235), .3); }
/* bloqueadas: continuam legíveis, mas com aspecto de "travado" */
.ap-grade-permissoes .perm-check:disabled { cursor: not-allowed; opacity: 1; box-shadow: none; border-color: #94a3b8; background-color: #e2e8f0; }
.ap-grade-permissoes .perm-check:disabled:checked { background-color: #64748b; border-color: #475569; }
.ap-grade-permissoes .perm-check:disabled:checked[data-modulo=painel] { background-color: var(--ap-primario, #2563eb); border-color: var(--ap-primario-escuro, #1d4ed8); opacity: .75; }
.ap-grade-permissoes td.text-body-tertiary { color: #cbd5e1 !important; }
.ap-grade-permissoes.somente-padrao { opacity: .95; }

/* ---- Presença ---- */
.ap-linha-presenca:hover { background: rgba(var(--ap-primario-rgb, 37, 99, 235), .04); }
.ap-resultado .alert { border-width: 2px; }
#video { width: 100%; height: 100%; object-fit: cover; }

/* ---- Cartões QR ---- */
.ap-cartoes-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 1rem; }
.ap-cartao-qr { background: #fff; border: 1px solid #cbd5e1; border-radius: 14px; overflow: hidden; break-inside: avoid; page-break-inside: avoid; }
.ap-cartao-qr-topo { background: var(--ap-primario, #2563eb); color: #fff; padding: .6rem .9rem; display: flex; align-items: center; gap: .6rem; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ap-cartao-qr-logo { height: 30px; width: auto; max-width: 60px; object-fit: contain; background: #fff; border-radius: 6px; padding: 2px; }
.ap-cartao-qr-corpo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; }
.ap-cartao-qr-codigo { width: 130px; height: 130px; flex: none; }
.ap-cartao-qr-codigo svg { width: 100%; height: 100%; }
@media print {
    .ap-sidebar, .ap-topbar, .ap-rodape, .ap-cabecalho-pagina .ap-acoes, .d-print-none { display: none !important; }
    .ap-conteudo { margin: 0 !important; padding: 0 !important; }
    .ap-main { padding: 0 !important; }
    body.ap-corpo { background: #fff; }
    .ap-cartoes-grade { grid-template-columns: repeat(2, 1fr); gap: .6cm; }
    .ap-cabecalho-pagina { display: none; }
}

/* ---- Faixa de assinatura (modo SaaS) ---- */
.ap-faixa { display: flex; align-items: center; padding: .6rem 1rem; border-radius: 12px; margin-bottom: 1rem; font-size: .9rem; font-weight: 500; }
.ap-faixa-info { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.ap-faixa-aviso { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.ap-faixa-perigo { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.ap-faixa .btn-light { border: 1px solid rgba(0,0,0,.12); }

/* ---- Telas públicas largas (cadastro) ---- */
.ap-cadastro-cartao { max-width: 560px; }
.ap-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- Aplicativo instalável (PWA) ---- */
.ap-pwa-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:1085;display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  background:#fff;color:#0f172a;border:1px solid rgba(15,23,42,.1);border-radius:16px;padding:12px 14px;box-shadow:0 10px 30px rgba(15,23,42,.25);
  max-width:560px;margin:0 auto;animation:ap-pwa-sobe .3s ease-out}
.ap-pwa-icone{width:44px;height:44px;border-radius:11px;flex:0 0 auto}
.ap-pwa-texto{flex:1 1 180px;min-width:0}
.ap-pwa-titulo{font-weight:700;font-size:.95rem;line-height:1.25}
.ap-pwa-sub{font-size:.8rem;color:#475569;margin-top:2px;line-height:1.35}
.ap-pwa-acoes{display:flex;gap:8px;margin-left:auto}
.ap-pwa-sim,.ap-pwa-nao{border:0;border-radius:10px;padding:9px 14px;font-weight:600;font-size:.85rem;cursor:pointer}
.ap-pwa-sim{background:var(--ap-primario,#2563eb);color:#fff}
.ap-pwa-nao{background:#f1f5f9;color:#334155}
/* no portal da família o menu inferior ocupa a base da tela */
.ap-pwa-banner.ap-pwa-fam{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
@keyframes ap-pwa-sobe{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
@media (display-mode: standalone){.ap-pwa-banner{display:none}}

/* ---- Portal da família ---- */
body.ap-fam-corpo{background:#f1f5f9;min-height:100vh;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.ap-fam-topo{background:var(--ap-primario,#2563eb);color:#fff;padding:calc(10px + env(safe-area-inset-top)) 16px 12px;position:sticky;top:0;z-index:20}
.ap-fam-topo-in{display:flex;align-items:center;gap:12px;max-width:560px;margin:0 auto}
.ap-fam-logo{width:38px;height:38px;border-radius:10px;object-fit:contain;background:#fff;padding:3px}
.ap-fam-marca{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:1.2rem}
.ap-fam-escola{font-weight:700;line-height:1.15}
.ap-fam-sub{font-size:.75rem;opacity:.85}
.ap-fam-main{max-width:560px;margin:0 auto;padding:16px}
.ap-fam-titulo{font-size:1.35rem;font-weight:800;margin:0 0 2px}
.ap-fam-aluno{display:block;background:#fff;border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px rgba(15,23,42,.08);color:inherit}
.ap-fam-estado{display:flex;gap:10px;align-items:center;border-radius:12px;padding:10px 12px;margin-top:12px}
.ap-fam-estado>i{font-size:1.3rem}
.ap-fam-aviso{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid #eef2f7}
.ap-fam-aviso:last-child{border-bottom:0}
.ap-fam-aviso>i{font-size:1.2rem;margin-top:2px}
.ap-fam-dia{display:flex;gap:14px;padding:12px 14px;border-bottom:1px solid #eef2f7}
.ap-fam-dia:last-child{border-bottom:0}
.ap-fam-dia-data{width:38px;text-align:center;flex:0 0 auto;line-height:1.1}
.ap-fam-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:1px solid #e2e8f0;display:flex;justify-content:space-around;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}
.ap-fam-nav a{flex:1;max-width:160px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:12px;color:#64748b;text-decoration:none;font-size:.72rem;font-weight:600}
.ap-fam-nav a i{font-size:1.35rem}
.ap-fam-nav a.ativo{color:var(--ap-primario,#2563eb);background:rgba(var(--ap-primario-rgb,37,99,235),.1)}
