/* Eazy Data — design tokens. Lime brand per brief. */
:root {
  /* surfaces */
  --bg: #FAFAF6;
  --card: #FFFFFF;
  --ink: #101208;
  --ink-70: #43463A;
  --ink-50: #6E7163;
  --ink-35: #9A9C90;
  --ink-15: #DEDFD6;
  --hairline: #ECEDE4;

  /* brand */
  --lime: #D7F050;          /* single brand color (tweakable) */
  --lime-deep: #C2DD33;     /* pressed/active lime */
  --lime-cream: #EFF7C4;    /* balance card + splash */
  --lime-cream-edge: #E4EFAE;

  /* network brand dots */
  --mtn: #FFC403;
  --airtel: #E50000;
  --glo: #3DAE2B;
  --nine: #00A99D;

  /* status (soft tinted chips) */
  --ok: #1E8E4E;        --ok-bg: #E4F3E8;
  --warn: #B5790A;      --warn-bg: #F7EDD3;
  --fail: #CF2F2F;      --fail-bg: #F8E2E2;

  /* type */
  --display: "Space Grotesk", system-ui, sans-serif;
  --body: "Inter", system-ui, sans-serif;

  /* radius */
  --r-chip: 999px;
  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 24px;
  --r-xl: 30px;

  /* shadow — soft, low */
  --sh-card: 0 1px 2px rgba(16,18,8,.04), 0 6px 18px rgba(16,18,8,.05);
  --sh-pop: 0 8px 24px rgba(16,18,8,.10), 0 2px 6px rgba(16,18,8,.06);
  --sh-sheet: 0 -10px 40px rgba(16,18,8,.16);

  /* motion */
  --ease: cubic-bezier(.2,.8,.2,1);
  --spring: cubic-bezier(.34,1.4,.5,1);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--body);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button { font-family: inherit; cursor: pointer; border: none; background: none; }
.tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }
.no-select { -webkit-user-select: none; user-select: none; }
::-webkit-scrollbar { width: 0; height: 0; }

.ed-press { transition: transform .12s var(--ease); }
.ed-press:active { transform: scale(.96); }

@keyframes ed-spin { to { transform: rotate(360deg); } }
@keyframes ed-rise {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes ed-pop {
  0%   { opacity: 0; transform: scale(.92); }
  60%  { transform: scale(1.02); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes ed-screen-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes ed-screen-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(8px); }
}
@keyframes ed-draw { to { stroke-dashoffset: 0; } }
@keyframes ed-bell {
  0%,100% { transform: rotate(0); }
  20% { transform: rotate(11deg); } 40% { transform: rotate(-9deg); }
  60% { transform: rotate(6deg); } 80% { transform: rotate(-4deg); }
}
.stagger > * { opacity: 0; animation: ed-rise .5s var(--ease) forwards; }
@media (prefers-reduced-motion: reduce) {
  .stagger > * { opacity: 1; animation: none; }
}
