.num { font-variant-numeric: tabular-nums; }
.glass { background: linear-gradient(180deg, rgba(20,31,61,.7), rgba(16,25,51,.7)); backdrop-filter: blur(12px); border: 1px solid rgba(31,44,82,.8); }
.kpi { @apply glass rounded-2xl p-4; }
.kpi-label { @apply text-[11px] uppercase tracking-wider text-treasury-muted; }
.kpi-value { @apply font-display text-2xl mt-1 num; }
.card { @apply glass rounded-2xl p-5; }
.badge { @apply text-[10px] px-2 py-0.5 rounded-full border; }
.badge-ok    { @apply badge text-emerald-300 border-emerald-500/40 bg-emerald-500/10; }
.badge-warn  { @apply badge text-amber-300  border-amber-500/40  bg-amber-500/10; }
.badge-danger{ @apply badge text-red-300    border-red-500/40    bg-red-500/10; }
.progress { @apply h-1.5 rounded-full bg-treasury-border overflow-hidden; }
.progress > i { @apply block h-full bg-gradient-to-r from-treasury-primary to-emerald-400; }
table.gs { @apply w-full text-sm; }
table.gs th { @apply text-left text-[11px] uppercase tracking-wider text-treasury-muted font-medium px-3 py-2 border-b border-treasury-border; }
table.gs td { @apply px-3 py-3 border-b border-treasury-border/60; }
table.gs tbody tr:hover { background: rgba(20,31,61,.5); }
.skeleton { @apply animate-pulse bg-treasury-border/60 rounded; }
