/* ERP Satker: gerakan singkat, tidak mengubah tata letak. */
@keyframes erp-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
html[data-motion="on"] .erp-enter { animation: erp-enter 420ms ease-out both; animation-delay: var(--erp-delay, 0ms); }
html[data-motion="on"] :is(.button, .icon-rail button, .panel, .kpi) { transition: background-color 180ms, box-shadow 180ms, transform 180ms; }
html[data-motion="on"] .button:hover { transform: translateY(-2px); }
html[data-motion="on"] .button:active { transform: scale(.98); }
html[data-motion="on"] dialog[open] { animation: erp-enter 180ms ease-out both; }
@media (prefers-reduced-motion: reduce) { html[data-motion] .erp-enter, html[data-motion] dialog[open] { animation: none; } html[data-motion] :is(.button,.panel,.kpi) { transition: none; } }

/* Kapsul aktif tunggal; warna ditentukan oleh posisi pilihan visual. */
html .top-nav.erp-animated-nav {
  position: relative; isolation: isolate;
  --erp-nav-ink: #171a17; --erp-nav-fill: #171a17; --erp-nav-selected-ink: #fff;
}
html[data-theme="dark"] .top-nav.erp-animated-nav {
  --erp-nav-ink: #e6eee7; --erp-nav-fill: #e0eee1; --erp-nav-selected-ink: #17251b;
}
.erp-nav-indicator {
  position: absolute; left: 0; top: 0; border-radius: 999px;
  background: var(--erp-nav-fill); pointer-events: none; z-index: 0;
}
html .top-nav.erp-animated-nav > a,
html .top-nav.erp-animated-nav > a:is(.active,:hover,:focus) {
  position: relative; z-index: 1; background: transparent;
  color: var(--erp-nav-ink); box-shadow: none;
  transition: color 120ms ease;
}
html .top-nav.erp-animated-nav > a.erp-nav-selected,
html .top-nav.erp-animated-nav > a.erp-nav-selected:is(.active,:hover,:focus) {
  color: var(--erp-nav-selected-ink);
}
html .top-nav.erp-animated-nav > a:focus-visible {
  outline: 2px solid #4e95cc; outline-offset: 2px;
}
html[data-motion="on"] .erp-nav-ready .erp-nav-indicator {
  transition: transform 380ms cubic-bezier(.22,.8,.25,1), width 300ms cubic-bezier(.22,.8,.25,1), height 250ms ease;
}
@media (prefers-reduced-motion: reduce) {
  html .erp-nav-ready .erp-nav-indicator, html .top-nav.erp-animated-nav > a { transition: none; }
}

/* Baris data masuk bertahap tanpa mengubah urutan atau isi tabel. */
@keyframes erp-data-reveal { from { opacity: .25; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
html[data-motion="on"] .erp-data-reveal { animation: erp-data-reveal 360ms ease-out both; animation-delay: var(--erp-data-delay, 0ms); }
.kpi > strong { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { html[data-motion] .erp-data-reveal { animation: none; } }
@media print { html[data-motion] :is(.erp-data-reveal,.erp-enter) { animation: none !important; opacity: 1 !important; transform: none !important; } }
