/* Produção v22 — acabamento visual e microinterações acessíveis.
   Carregado após as camadas legadas: não altera estruturas nem dados. */

:root {
  --prod-radius: 18px;
  --prod-ring: 0 0 0 4px rgba(44,102,201,.14);
  --prod-shadow: 0 16px 42px rgba(15,35,68,.10), 0 3px 8px rgba(15,35,68,.05);
}

body {
  background:
    radial-gradient(900px 460px at 100% -20%, rgba(61,130,226,.10), transparent 62%),
    radial-gradient(720px 480px at -12% 104%, rgba(14,165,164,.08), transparent 62%),
    var(--bg);
}

.topbar {
  background: linear-gradient(112deg,#0a2655 0%,#123a78 52%,#1a4c91 100%) !important;
}
.topbar::before {
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.30;
  background-image: radial-gradient(rgba(255,255,255,.34) 1px,transparent 1px);
  background-size: 22px 22px; mask-image:linear-gradient(90deg,transparent,black 38%,transparent);
}

.sidebar {
  background: linear-gradient(180deg,#09234d 0%,#0d3267 52%,#071e43 100%);
}
.sidebar-brand-name { letter-spacing:-.025em; }
.sidebar-brand-sub { color:rgba(187,215,255,.65); letter-spacing:.07em; font-size:.62rem; }
.sidebar-user { background:linear-gradient(135deg,rgba(76,132,220,.16),rgba(9,35,77,.04)); }
.sidebar-avatar, .topbar-avatar {
  box-shadow:0 0 0 4px rgba(255,255,255,.06),0 8px 18px rgba(0,0,0,.18);
}

.view-header, .widget, .table-wrap, .info-panel {
  border-radius:var(--prod-radius);
}
.view-header {
  position:relative; overflow:hidden;
  background:linear-gradient(118deg,#fff 0%,#fbfdff 72%,#f3f8ff 100%) !important;
}
.view-header::after {
  display:block !important; content:''; position:absolute; width:160px; height:160px;
  right:-72px; top:-95px; border-radius:999px; pointer-events:none;
  background:radial-gradient(circle,rgba(44,102,201,.15),rgba(44,102,201,0) 70%);
}

.stat-card {
  position:relative; overflow:hidden; isolation:isolate;
  border-radius:var(--prod-radius); transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.stat-card::after {
  content:''; position:absolute; inset:0; z-index:-1; opacity:0;
  background:linear-gradient(125deg,rgba(44,102,201,.06),transparent 48%);
  transition:opacity .22s ease;
}
.stat-card:hover { transform:translateY(-4px); box-shadow:var(--prod-shadow); border-color:rgba(44,102,201,.22); }
.stat-card:hover::after { opacity:1; }
.stat-icon {
  width:50px; height:50px; border-radius:16px; position:relative;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 7px 14px rgba(31,70,130,.10);
}
.stat-icon::after { content:''; position:absolute; inset:5px; border:1px solid rgba(255,255,255,.52); border-radius:12px; pointer-events:none; }
.stat-icon svg { position:relative; z-index:1; stroke-width:1.85; }

.widget { transition:box-shadow .22s ease,transform .22s ease; }
.widget:hover { box-shadow:0 10px 28px rgba(15,35,68,.07); }
.widget-header { background:linear-gradient(90deg,#fff,#fbfdff); }

.btn { transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease !important; }
.btn-primary:not(:disabled) { box-shadow:0 7px 16px rgba(44,102,201,.22) !important; }
.btn-primary:not(:disabled):hover { transform:translateY(-2px); box-shadow:0 11px 22px rgba(44,102,201,.28) !important; }
.btn-secondary:not(:disabled):hover, .btn-ghost:not(:disabled):hover { transform:translateY(-1px); }
.btn:focus-visible, button:focus-visible, a:focus-visible { outline:none; box-shadow:var(--prod-ring) !important; }

.table-wrap { box-shadow:0 8px 24px rgba(15,35,68,.05); }
tbody tr { transition:background .14s ease, transform .14s ease; }
tbody tr:hover { box-shadow:inset 3px 0 0 var(--primary); }

@keyframes prod-rise { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.main-content > * { animation:prod-rise .36s ease both; }
.stats-grid .stat-card:nth-child(2) { animation-delay:.035s; }
.stats-grid .stat-card:nth-child(3) { animation-delay:.07s; }
.stats-grid .stat-card:nth-child(4) { animation-delay:.105s; }
.stats-grid .stat-card:nth-child(5) { animation-delay:.14s; }

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .stat-card:hover,.btn-primary:not(:disabled):hover,.btn-secondary:not(:disabled):hover { transform:none; }
}

@media (max-width:700px) {
  .view-header,.widget,.table-wrap,.info-panel,.stat-card { border-radius:14px; }
  .stat-card:hover { transform:none; }
  .stat-icon { width:46px; height:46px; border-radius:14px; }
}
