/* ── Tokens ── */
:root {
  --bg:        #f4f5f9;
  --surface:   #ffffff;
  --surface-2: #f3f4f6;
  --border:    rgba(0,0,0,.07);
  --border-input: #e5e7eb;
  --primary:   #4f46e5;
  --primary-d: #3730a3;
  --primary-l: #eef2ff;
  --primary-m: #c7d2fe;
  --purple:    #7c3aed;
  --pink:      #ec4899;
  --text:      #111827;
  --text-2:    #374151;
  --text-3:    #4b5563;
  --muted:     #6b7280;
  --muted-2:   #9ca3af;
  --danger:    #dc2626;
  --danger-l:  #fee2e2;
  --success:   #10b981;
  --header-h:  60px;
  --subnav-h:  48px;
  --bottom-nav-h: 56px;
  --radius-s:  8px;
  --radius:    14px;
  --radius-l:  20px;
  --shadow-s:  0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow:    0 4px 16px rgba(0,0,0,.08);
  --shadow-l:  0 20px 60px rgba(0,0,0,.18);
  --glass:     rgba(255,255,255,.82);
  --blur:      blur(20px);
  --ease:      cubic-bezier(.4,0,.2,1);
  --dur:       180ms;
  --safe-b:    env(safe-area-inset-bottom, 0px);
  --safe-t:    env(safe-area-inset-top, 0px);
  --stack-top: calc(var(--header-h) + var(--safe-t));
  --stack-top-event: calc(var(--header-h) + var(--safe-t) + var(--subnav-h));
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{cursor:pointer;font-family:inherit;border:none;background:none}
input,textarea,select{font-family:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:999px}
