/* Lull design system — generated from ui-ux-pro-max (Marketplace pattern · Modern Dark style).
   Tokens: slate base (no pure black), green "run/earn" accent, Inter, glassmorphism.
   Easing cubic-bezier(0.16,1,0.3,1); press-scale 0.97; focus-visible rings; reduced-motion. */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
@import url('https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,700,800,900&f[]=general-sans@400,500,600&display=swap');

:root{
  /* surfaces — warm neutral near-black (avoid pure #000 OLED smear) */
  --bg:#08090b; --bg-2:#0c0e11; --surface:#101317; --surface-2:#15191e;
  --line:#1d2127; --border:#2b3138;
  /* text — AA contrast on dark */
  --text:#f1f5f9; --text-2:#aeb9c9; --muted:#7e8aa0;
  /* brand: green earn-accent + indigo depth */
  --accent:#22c55e; --accent-2:#34d399; --accent-ink:#04130a;
  --indigo:#6366f1; --info:#60a5fa; --gold:#fbbf24;
  --danger:#ef4444; --danger-bg:#2a1417;
  /* system */
  --r-sm:8px; --r:12px; --r-lg:16px; --r-xl:22px;
  --ease:cubic-bezier(.16,1,.3,1); --t:200ms var(--ease);
  --shadow:0 1px 0 rgba(255,255,255,.03), 0 18px 40px -18px rgba(0,0,0,.7);
  --glass:rgba(8,9,11,.72);
  --sans:'General Sans','IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --display:'Cabinet Grotesk','General Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background-color:var(--bg);
  /* layered top glow + side bloom + fixed engineering dot-grid — depth without slop */
  background-image:
    radial-gradient(52rem 26rem at 50% -8%, color-mix(in srgb, var(--accent) 11%, transparent), transparent 70%),
    radial-gradient(36rem 36rem at 100% 12%, color-mix(in srgb, var(--info) 6%, transparent), transparent 68%),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.030) 1px, transparent 0);
  background-size:100% 100%, 100% 100%, 24px 24px;
  background-attachment:fixed;
  color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
svg{display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .dim{color:var(--text-2)}

/* focus visibility (a11y) */
:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent);border-radius:6px}

/* icons */
.ic{width:1.25em;height:1.25em;stroke:currentColor;stroke-width:1.75;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.ic-lg{width:22px;height:22px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font:600 14.5px/1 var(--sans);color:var(--accent-ink);
  background:var(--accent);border:0;border-radius:var(--r);
  padding:11px 18px;cursor:pointer;transition:transform var(--t),box-shadow var(--t),filter var(--t)}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 30px -8px color-mix(in srgb,var(--accent) 60%,transparent)}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.btn.ghost:hover{background:var(--surface);box-shadow:none}
.btn.sm{padding:8px 13px;font-size:13px}
.btn.block{width:100%;justify-content:center;padding:13px}
button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* cards & panels */
.card,.panel{background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.card{padding:22px}.panel{padding:24px}
.panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}

/* inputs */
label{display:block;font-size:12.5px;color:var(--text-2);margin:14px 0 6px;font-weight:500}
input,select{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);
  padding:11px 13px;font:400 14.5px var(--sans);transition:border-color var(--t),box-shadow var(--t)}
input::placeholder{color:var(--muted)}
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
input.mono{font-family:var(--mono);font-size:13px}

/* nav (glass) */
.nav{position:sticky;top:0;z-index:40;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:19px;letter-spacing:-.4px}
.brand .mark{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 18px color-mix(in srgb,var(--accent) 50%,transparent)}
.brand .mark svg{width:15px;height:15px;stroke:var(--accent-ink);stroke-width:2.4}
.navlinks{display:flex;gap:24px;align-items:center;font-size:14px;color:var(--text-2)}
.navlinks a{transition:color var(--t)}.navlinks a:hover{color:var(--text)}

/* badges / chips */
.pill{display:inline-flex;gap:8px;align-items:center;font-size:12.5px;color:var(--accent-2);
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 10%,transparent);
  border-radius:999px;padding:6px 14px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 2s infinite}
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:5px 9px;color:var(--accent-2);margin:4px 6px 0 0}

/* messages */
.msg{font-size:13px;margin-top:12px;min-height:16px}
.msg.err{color:#fca5a5} .msg.ok{color:var(--accent-2)}

/* tables */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:9px 8px;border-bottom:1px solid var(--line)}
td{padding:12px 8px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}

/* progress bar */
.bar{height:10px;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0;transition:width .6s var(--ease)}

/* ambient blobs (decor; disabled under reduced-motion) */
.aurora{display:none}   /* replaced by the global dot-grid + glow background */
.aurora i{position:absolute;border-radius:50%;mix-blend-mode:screen;animation:float 20s var(--ease) infinite}
.aurora i:nth-child(1){width:520px;height:520px;background:#1e9e63;top:-140px;left:-90px}
.aurora i:nth-child(2){width:460px;height:460px;background:#4f46e5;top:120px;right:-130px;animation-delay:-7s}
.aurora i:nth-child(3){width:420px;height:420px;background:#0ea5a5;bottom:-180px;left:32%;animation-delay:-13s}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(36px,-26px) scale(1.08)}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .aurora{display:none}
}
