/* ═══ tema.css — base moderna (todas as telas) ═══ */
:root{
  --ease:cubic-bezier(.22,.8,.3,1);
  --shadow-sm:0 1px 2px rgba(15,23,42,.04),0 2px 8px rgba(15,23,42,.05);
  --shadow-md:0 4px 12px rgba(15,23,42,.06),0 12px 32px rgba(15,23,42,.08);
  --shadow-lg:0 12px 28px rgba(15,23,42,.12),0 28px 60px rgba(15,23,42,.14);
  --ring:0 0 0 4px rgba(var(--primary-rgb),.18);
}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.fw-800{font-weight:800!important}
::selection{background:rgba(var(--primary-rgb),.22)}

/* cores do Bootstrap seguem a cor escolhida no admin */
.text-primary{color:var(--primary)!important}
.bg-primary{background-color:var(--primary)!important;color:var(--on-primary)}
.border-primary{border-color:var(--primary)!important}
.btn-primary{
  --bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-color:var(--on-primary);
  --bs-btn-hover-bg:var(--primary-dark);--bs-btn-hover-border-color:var(--primary-dark);--bs-btn-hover-color:var(--on-primary);
  --bs-btn-active-bg:var(--primary-dark);--bs-btn-active-border-color:var(--primary-dark);--bs-btn-active-color:var(--on-primary);
  --bs-btn-disabled-bg:var(--primary);--bs-btn-disabled-border-color:var(--primary);
  --bs-btn-focus-shadow-rgb:var(--primary-rgb);
  background-image:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 140%);
  border:0;font-weight:700;letter-spacing:.01em;
  box-shadow:0 6px 16px rgba(var(--primary-rgb),.28);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),filter .18s;
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(var(--primary-rgb),.36);filter:saturate(1.08)}
.btn-primary:active{transform:translateY(0) scale(.98)}
.btn-outline-primary{
  --bs-btn-color:var(--primary);--bs-btn-border-color:var(--primary);
  --bs-btn-hover-bg:var(--primary);--bs-btn-hover-border-color:var(--primary);--bs-btn-hover-color:var(--on-primary);
  --bs-btn-active-bg:var(--primary);--bs-btn-active-border-color:var(--primary);--bs-btn-active-color:var(--on-primary);
  font-weight:600;
}
.btn{transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s,color .18s}
.btn:active{transform:scale(.98)}
.form-control,.form-select{
  border-radius:var(--r-md);border-color:#e2e8f0;transition:border-color .15s,box-shadow .15s,background .15s;
}
.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:var(--ring)}
.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}
.form-check-input:focus{border-color:var(--primary);box-shadow:var(--ring)}
.form-switch .form-check-input{cursor:pointer}
.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background:var(--primary);color:var(--on-primary)}

/* modais */
.modal-content{border:0!important;border-radius:var(--r-xl)!important;box-shadow:var(--shadow-lg)}
.modal-backdrop.show{opacity:.45;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.modal.fade .modal-dialog{transform:translateY(18px) scale(.98);transition:transform .28s var(--ease),opacity .2s}
.modal.show .modal-dialog{transform:none}
.alert{border-radius:var(--r-md)}
.badge{font-weight:700;letter-spacing:.02em}

/* scrollbar discreta */
*{scrollbar-width:thin;scrollbar-color:rgba(100,116,139,.35) transparent}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(100,116,139,.3);border-radius:8px}

/* ── atualização em tempo real ── */
@keyframes live-flash{0%{box-shadow:0 0 0 0 rgba(var(--primary-rgb),.55);background-color:rgba(var(--primary-rgb),.10)}100%{box-shadow:0 0 0 14px rgba(var(--primary-rgb),0);background-color:transparent}}
.live-flash{animation:live-flash 1.1s ease-out}
tr.live-flash>*{animation:live-flash 1.1s ease-out}
#live-dot{
  position:fixed;left:14px;bottom:14px;z-index:1080;display:flex;align-items:center;gap:7px;
  font:700 11px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:#475569;
  background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border:1px solid rgba(15,23,42,.07);
  padding:7px 11px;border-radius:999px;box-shadow:var(--shadow-sm);opacity:.85;pointer-events:none;
}
#live-dot i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:live-pulse 2s infinite}
#live-dot.off i{background:#94a3b8;animation:none}
#live-dot.sync i{background:var(--primary);animation:live-pulse .8s infinite}
@keyframes live-pulse{70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
