/* PROMISE MOTION v1.0 — subtle, institutional. 120–180ms ease-out.
   No bounce, no spin, no glow, no glassmorphism, no page fly-in. */
:root{ --p-t:150ms; --p-ease:cubic-bezier(.2,.6,.2,1); }
@media (prefers-reduced-motion: reduce){ *{transition:none!important;animation:none!important} }

.p-card,.p-kpi,.p-tab,.p-btn,.p-rail a,.p-row,.p-badge{
  transition:border-color var(--p-t) var(--p-ease),
             transform   var(--p-t) var(--p-ease),
             background   var(--p-t) var(--p-ease),
             color        var(--p-t) var(--p-ease);
}
/* hover: border slightly brighter, lift max 2px (never scale > 1.01) */
.p-card:hover,.p-kpi:hover{ border-color:var(--p-border-hover); transform:translateY(-2px); }
.p-row:hover{ background:rgba(255,255,255,.02); }
.p-btn:hover{ border-color:var(--p-border-hover); }
/* active tab: gold underline */
.p-tab.on,.p-tab.active{ color:var(--p-text); border-bottom:2px solid var(--p-gold); }
.p-tab:hover{ color:var(--p-text); }

/* loading: very subtle skeleton shimmer (no spinners) */
@keyframes p-shimmer{ 0%{background-position:-200% 0} 100%{background-position:200% 0} }
.p-skeleton{
  background:linear-gradient(90deg,var(--p-surface) 25%,var(--p-surface-2) 37%,var(--p-surface) 63%);
  background-size:200% 100%; animation:p-shimmer 1.4s linear infinite;
  border-radius:6px; color:transparent; user-select:none;
}
