/* ============================================================
 * off_app.css - selo de status, avisos e trava offline
 * ============================================================ */

.off-selo{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 3000;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .85rem;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
  color: #fff;
  background: #6c757d;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
  transition: background .2s, transform .15s;
}
.off-selo:hover{ transform: translateY(-1px); color:#fff; }
.off-selo::before{
  content:"";
  width:.55rem; height:.55rem; border-radius:50%;
  background:#fff; opacity:.9;
}
.off-selo-online  { background:#198754; }
.off-selo-offline { background:#b02a37; }
.off-selo-alerta  { background:#fd7e14; }

/* avisos */
.off-toast{
  position: fixed;
  left: 50%;
  bottom: 76px;
  transform: translateX(-50%);
  z-index: 3100;
  max-width: min(560px, 92vw);
  padding: .7rem 1rem;
  border-radius: .75rem;
  color:#fff;
  font-size:.9rem;
  line-height:1.35;
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
  opacity: 1;
  transition: opacity .5s, transform .5s;
}
.off-toast-out{ opacity:0; transform: translateX(-50%) translateY(8px); }
.off-toast-ok     { background:#198754; }
.off-toast-info   { background:#0d6efd; }
.off-toast-alerta { background:#fd7e14; }
.off-toast-erro   { background:#b02a37; }

/* trava de sessao offline */
.off-trava{
  position: fixed; inset: 0;
  z-index: 4000;
  background: rgba(15,23,42,.75);
  display:flex; align-items:center; justify-content:center;
  padding: 1rem;
}
.off-trava-card{
  background:#fff;
  border-radius: 1rem;
  padding: 1.5rem;
  width: min(380px, 100%);
  box-shadow: 0 20px 50px rgba(0,0,0,.35);
}

/* linhas que ainda nao foram para o banco */
tr.table-warning td { --bs-table-bg: #fff3cd; }
