/* Paginador PADRÃO do sistema (.pagination-modern) — carregado no base.html para TODAS as telas (29/10/2026).
   Usado pela macro _paginacao.html (listas do servidor) e por montarPaginador() de static/js/paginador_ir.js
   (listas carregadas por JS). Primeira / Anterior / [N de M ▾ — clique escolhe a página] / Próxima / Última. */
.pagination-modern { display:inline-flex; align-items:center; gap:8px; padding:8px 10px;
  background:linear-gradient(135deg,#e6f2f2,#f0f8f8); border:1px solid #b3d9d9; border-radius:999px;
  box-shadow:0 2px 10px rgba(0,128,128,.1); }
.pagination-modern a, .pagination-modern .pag-disabled, .pagination-modern .pag-nav { display:inline-flex; align-items:center; gap:6px;
  padding:7px 16px; border-radius:999px; font-size:.85rem; font-weight:600; text-decoration:none; transition:all .2s; white-space:nowrap; }
.pagination-modern a, .pagination-modern .pag-nav { background:#fff; color:#008080; border:1px solid #b3d9d9;
  box-shadow:0 1px 3px rgba(0,128,128,.1); cursor:pointer; }
.pagination-modern a:hover, .pagination-modern .pag-nav:hover { background:#008080; color:#fff; transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(0,128,128,.3); }
.pagination-modern a:focus-visible, .pagination-modern .pag-nav:focus-visible { outline:2px solid #008080; outline-offset:2px; }
.pagination-modern .pag-disabled, .pagination-modern .pag-nav:disabled { background:#f5f5f5; color:#bbb; border:1px solid #e0e0e0;
  cursor:not-allowed; transform:none; box-shadow:none; }
.pagination-modern .pag-ponta { padding:7px 12px; }
.pagination-modern .pag-current { display:inline-flex; align-items:center; gap:6px; padding:7px 18px;
  background:linear-gradient(135deg,#008080,#00a8a8); color:#fff; border:0; border-radius:999px; font-size:.85rem; font-weight:700;
  box-shadow:0 2px 8px rgba(0,128,128,.35), inset 0 1px 0 rgba(255,255,255,.2); white-space:nowrap; }
.pagination-modern button.pag-current { cursor:pointer; transition:filter .2s, transform .2s; }
.pagination-modern button.pag-current:hover { filter:brightness(1.08); transform:translateY(-1px); }
.pagination-modern button.pag-current:focus-visible { outline:2px solid #005f5f; outline-offset:2px; }
.pag-resumo { color:#6b7280; font-size:.8rem; margin-top:8px; text-align:center; }

/* caixinha "Ir para a página" */
.pag-ir-wrap { position:relative; display:inline-flex; }
.pag-ir-box { position:absolute; bottom:calc(100% + 12px); left:50%; transform:translateX(-50%); z-index:1080;
  background:#fff; border:1px solid #b3d9d9; border-radius:14px; padding:12px; width:240px;
  box-shadow:0 12px 30px rgba(0,80,80,.22); text-align:left; animation:pagIrAbre .15s ease-out; }
@keyframes pagIrAbre { from { opacity:0; transform:translate(-50%, 4px); } to { opacity:1; transform:translate(-50%, 0); } }
.pag-ir-box::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  border:8px solid transparent; border-top-color:#fff; }
.pag-ir-box label { font-size:.75rem; font-weight:700; color:#006666; margin-bottom:6px; display:block; }
.pag-ir-linha { display:flex; gap:6px; align-items:center; }
.pag-ir-linha input { width:90px; border:1px solid #b3d9d9; border-radius:10px; padding:5px 8px; font-weight:700;
  font-variant-numeric:tabular-nums; }
.pag-ir-linha input:focus { outline:none; border-color:#008080; box-shadow:0 0 0 .2rem rgba(0,128,128,.18); }
.pag-ir-linha span { font-size:.8rem; color:#6b7280; white-space:nowrap; }
.pag-ir-linha button { border:0; border-radius:10px; background:#008080; color:#fff; font-weight:700; padding:5px 14px; }
.pag-ir-linha button:hover { background:#006666; }
.pag-ir-atalhos { display:flex; flex-wrap:wrap; gap:4px; margin-top:8px; }
.pag-ir-atalhos button { border:1px solid #b3d9d9; background:#f0f8f8; color:#006666; border-radius:999px;
  padding:2px 10px; font-size:.72rem; font-weight:700; font-variant-numeric:tabular-nums; }
.pag-ir-atalhos button:hover { background:#008080; color:#fff; border-color:#008080; }
.pag-ir-erro { color:#b91c1c; font-size:.72rem; margin-top:4px; min-height:1em; }

@media (max-width: 768px) {
  .pagination-modern { gap:5px; padding:6px 8px; flex-wrap:wrap; justify-content:center; }
  .pagination-modern a, .pagination-modern .pag-disabled, .pagination-modern .pag-nav { padding:6px 12px; font-size:.78rem; }
  .pagination-modern .pag-current { padding:6px 14px; font-size:.78rem; }
}
@media (max-width: 480px) {
  /* celular: só os ícones nas setas (« ‹ › ») para caber numa linha */
  .pagination-modern .pag-label { display:none; }
  .pagination-modern a, .pagination-modern .pag-disabled, .pagination-modern .pag-nav { padding:6px 10px; }
  .pag-ir-box { width:220px; }
}
