/* CSP-safe utility classes (replaces inline style attributes) */

.u-text-dim { color: rgba(255,255,255,0.6); }
.u-icon-section { font-size: 24px; color: #0d6efd; }
.u-badge-inline { margin-left: 8px; font-size: 10px; padding: 2px 6px; }
.u-fs-15 { font-size: 1.5rem; }
.u-text-primary { color: #0d6efd; }
.u-glass-blue { background: rgba(13,110,253,0.1); border-color: rgba(13,110,253,0.3); }
.u-pad-20-mb-0 { padding: 20px; margin-bottom: 0; }
.u-text-sm-muted { font-size: 0.9rem; color: rgba(255,255,255,0.7); margin: 0; }
.u-font-fraunces { font-family: Fraunces, Georgia, serif; font-weight: 600; }
.u-border-gold { border: 2px solid rgba(255,215,0,0.3); }
.u-icon-gold { font-size: 24px; color: #ffd700; }
.u-text-xs-dim { color: rgba(255,255,255,0.5); font-size: 0.85rem; }
.u-badge-lg { font-size: 1rem; padding: 0.5rem 1rem; }
.u-glass-gold { background: rgba(255,215,0,0.1); border-color: rgba(255,215,0,0.3); }
.u-scroll-600 { max-height: 600px; overflow-y: auto; }
.u-text-white { color: #fff; }
.u-border-top-faint { border-top: 1px solid rgba(255,255,255,0.1); }
.u-mt-120-mb-50 { margin-top: 120px; margin-bottom: 50px; }
.u-text-gradient { background: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.u-icon-hero { font-size: 3rem; color: #0d6efd; margin-bottom: 15px; }
.u-text-sm { font-size: 0.9rem; }
.u-otp-input { font-size: 1.5rem; letter-spacing: 0.5rem; font-weight: 600; }
.u-link-primary { color: #0d6efd; cursor: pointer; }
.u-avatar-sm { width: 32px; height: 32px; border-radius: 50%; margin-right: 10px; }
.u-mt-auto { margin-top: auto; }
.u-mt-6 { margin-top: 6px; }
.u-mt-8 { margin-top: 8px; }
.u-sticky-top-20 { top: 20px; }
.u-btn-circle { border-radius: 50%; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.u-icon-warning { font-size: 24px; color: #ffc107; }
.u-modal-glass { background: rgba(30, 30, 46, 0.95); border: 1px solid rgba(255,255,255,0.1); backdrop-filter: blur(20px); }
.u-border-bottom-faint { border-bottom: 1px solid rgba(255,255,255,0.1); }
.u-text-gold { color: #ffd700; }
.u-text-muted-70 { color: rgba(255,255,255,0.7); }
.u-text-80-lg { color: rgba(255,255,255,0.8); font-size: 1rem; }
.u-sticky-top-86 { top: 86px; }
.u-mt-88 { margin-top: 88px; }
.u-fs-115 { font-size: 1.15rem; }
.u-fs-145 { font-size: 1.45rem; }
.u-scroll-vh { max-height: min(58vh, 640px); overflow: auto; }
.u-bg-dark-panel { background: rgba(12,14,20,0.95); }
.u-ls-10 { letter-spacing: 0.1em; }
.u-accent-sm { color: var(--accent); font-size: 0.8rem; }
.u-ls-08 { letter-spacing: 0.08em; }
.u-max-h-180 { max-height: 180px; }
.u-icon-20 { width: 20px; height: 20px; fill: currentColor; }
.u-mt-80 { margin-top: 80px; }
.u-title-xl { font-weight: 800; font-size: 2.5rem; }
.u-border-faint { border-color: rgba(255,255,255,0.1); }
.u-z-top { z-index: 9999; }
.u-mt-100 { margin-top: 100px; }
.u-w-auto { width: auto; }

/* Scroll indicator width steps for api-docs */
.scroll-pct-0 { width: 0%; }
.scroll-pct-1 { width: 1%; }
.scroll-pct-2 { width: 2%; }
.scroll-pct-3 { width: 3%; }
.scroll-pct-4 { width: 4%; }
.scroll-pct-5 { width: 5%; }
.scroll-pct-6 { width: 6%; }
.scroll-pct-7 { width: 7%; }
.scroll-pct-8 { width: 8%; }
.scroll-pct-9 { width: 9%; }
.scroll-pct-10 { width: 10%; }
.scroll-pct-11 { width: 11%; }
.scroll-pct-12 { width: 12%; }
.scroll-pct-13 { width: 13%; }
.scroll-pct-14 { width: 14%; }
.scroll-pct-15 { width: 15%; }
.scroll-pct-16 { width: 16%; }
.scroll-pct-17 { width: 17%; }
.scroll-pct-18 { width: 18%; }
.scroll-pct-19 { width: 19%; }
.scroll-pct-20 { width: 20%; }
.scroll-pct-21 { width: 21%; }
.scroll-pct-22 { width: 22%; }
.scroll-pct-23 { width: 23%; }
.scroll-pct-24 { width: 24%; }
.scroll-pct-25 { width: 25%; }
.scroll-pct-26 { width: 26%; }
.scroll-pct-27 { width: 27%; }
.scroll-pct-28 { width: 28%; }
.scroll-pct-29 { width: 29%; }
.scroll-pct-30 { width: 30%; }
.scroll-pct-31 { width: 31%; }
.scroll-pct-32 { width: 32%; }
.scroll-pct-33 { width: 33%; }
.scroll-pct-34 { width: 34%; }
.scroll-pct-35 { width: 35%; }
.scroll-pct-36 { width: 36%; }
.scroll-pct-37 { width: 37%; }
.scroll-pct-38 { width: 38%; }
.scroll-pct-39 { width: 39%; }
.scroll-pct-40 { width: 40%; }
.scroll-pct-41 { width: 41%; }
.scroll-pct-42 { width: 42%; }
.scroll-pct-43 { width: 43%; }
.scroll-pct-44 { width: 44%; }
.scroll-pct-45 { width: 45%; }
.scroll-pct-46 { width: 46%; }
.scroll-pct-47 { width: 47%; }
.scroll-pct-48 { width: 48%; }
.scroll-pct-49 { width: 49%; }
.scroll-pct-50 { width: 50%; }
.scroll-pct-51 { width: 51%; }
.scroll-pct-52 { width: 52%; }
.scroll-pct-53 { width: 53%; }
.scroll-pct-54 { width: 54%; }
.scroll-pct-55 { width: 55%; }
.scroll-pct-56 { width: 56%; }
.scroll-pct-57 { width: 57%; }
.scroll-pct-58 { width: 58%; }
.scroll-pct-59 { width: 59%; }
.scroll-pct-60 { width: 60%; }
.scroll-pct-61 { width: 61%; }
.scroll-pct-62 { width: 62%; }
.scroll-pct-63 { width: 63%; }
.scroll-pct-64 { width: 64%; }
.scroll-pct-65 { width: 65%; }
.scroll-pct-66 { width: 66%; }
.scroll-pct-67 { width: 67%; }
.scroll-pct-68 { width: 68%; }
.scroll-pct-69 { width: 69%; }
.scroll-pct-70 { width: 70%; }
.scroll-pct-71 { width: 71%; }
.scroll-pct-72 { width: 72%; }
.scroll-pct-73 { width: 73%; }
.scroll-pct-74 { width: 74%; }
.scroll-pct-75 { width: 75%; }
.scroll-pct-76 { width: 76%; }
.scroll-pct-77 { width: 77%; }
.scroll-pct-78 { width: 78%; }
.scroll-pct-79 { width: 79%; }
.scroll-pct-80 { width: 80%; }
.scroll-pct-81 { width: 81%; }
.scroll-pct-82 { width: 82%; }
.scroll-pct-83 { width: 83%; }
.scroll-pct-84 { width: 84%; }
.scroll-pct-85 { width: 85%; }
.scroll-pct-86 { width: 86%; }
.scroll-pct-87 { width: 87%; }
.scroll-pct-88 { width: 88%; }
.scroll-pct-89 { width: 89%; }
.scroll-pct-90 { width: 90%; }
.scroll-pct-91 { width: 91%; }
.scroll-pct-92 { width: 92%; }
.scroll-pct-93 { width: 93%; }
.scroll-pct-94 { width: 94%; }
.scroll-pct-95 { width: 95%; }
.scroll-pct-96 { width: 96%; }
.scroll-pct-97 { width: 97%; }
.scroll-pct-98 { width: 98%; }
.scroll-pct-99 { width: 99%; }
.scroll-pct-100 { width: 100%; }

/* Dynamic width steps (replaces JS inline width %) */
.u-w-pct-0, .u-progress-pct-0 { width: 0%; }
.u-w-pct-1, .u-progress-pct-1 { width: 1%; }
.u-w-pct-2, .u-progress-pct-2 { width: 2%; }
.u-w-pct-3, .u-progress-pct-3 { width: 3%; }
.u-w-pct-4, .u-progress-pct-4 { width: 4%; }
.u-w-pct-5, .u-progress-pct-5 { width: 5%; }
.u-w-pct-6, .u-progress-pct-6 { width: 6%; }
.u-w-pct-7, .u-progress-pct-7 { width: 7%; }
.u-w-pct-8, .u-progress-pct-8 { width: 8%; }
.u-w-pct-9, .u-progress-pct-9 { width: 9%; }
.u-w-pct-10, .u-progress-pct-10 { width: 10%; }
.u-w-pct-11, .u-progress-pct-11 { width: 11%; }
.u-w-pct-12, .u-progress-pct-12 { width: 12%; }
.u-w-pct-13, .u-progress-pct-13 { width: 13%; }
.u-w-pct-14, .u-progress-pct-14 { width: 14%; }
.u-w-pct-15, .u-progress-pct-15 { width: 15%; }
.u-w-pct-16, .u-progress-pct-16 { width: 16%; }
.u-w-pct-17, .u-progress-pct-17 { width: 17%; }
.u-w-pct-18, .u-progress-pct-18 { width: 18%; }
.u-w-pct-19, .u-progress-pct-19 { width: 19%; }
.u-w-pct-20, .u-progress-pct-20 { width: 20%; }
.u-w-pct-21, .u-progress-pct-21 { width: 21%; }
.u-w-pct-22, .u-progress-pct-22 { width: 22%; }
.u-w-pct-23, .u-progress-pct-23 { width: 23%; }
.u-w-pct-24, .u-progress-pct-24 { width: 24%; }
.u-w-pct-25, .u-progress-pct-25 { width: 25%; }
.u-w-pct-26, .u-progress-pct-26 { width: 26%; }
.u-w-pct-27, .u-progress-pct-27 { width: 27%; }
.u-w-pct-28, .u-progress-pct-28 { width: 28%; }
.u-w-pct-29, .u-progress-pct-29 { width: 29%; }
.u-w-pct-30, .u-progress-pct-30 { width: 30%; }
.u-w-pct-31, .u-progress-pct-31 { width: 31%; }
.u-w-pct-32, .u-progress-pct-32 { width: 32%; }
.u-w-pct-33, .u-progress-pct-33 { width: 33%; }
.u-w-pct-34, .u-progress-pct-34 { width: 34%; }
.u-w-pct-35, .u-progress-pct-35 { width: 35%; }
.u-w-pct-36, .u-progress-pct-36 { width: 36%; }
.u-w-pct-37, .u-progress-pct-37 { width: 37%; }
.u-w-pct-38, .u-progress-pct-38 { width: 38%; }
.u-w-pct-39, .u-progress-pct-39 { width: 39%; }
.u-w-pct-40, .u-progress-pct-40 { width: 40%; }
.u-w-pct-41, .u-progress-pct-41 { width: 41%; }
.u-w-pct-42, .u-progress-pct-42 { width: 42%; }
.u-w-pct-43, .u-progress-pct-43 { width: 43%; }
.u-w-pct-44, .u-progress-pct-44 { width: 44%; }
.u-w-pct-45, .u-progress-pct-45 { width: 45%; }
.u-w-pct-46, .u-progress-pct-46 { width: 46%; }
.u-w-pct-47, .u-progress-pct-47 { width: 47%; }
.u-w-pct-48, .u-progress-pct-48 { width: 48%; }
.u-w-pct-49, .u-progress-pct-49 { width: 49%; }
.u-w-pct-50, .u-progress-pct-50 { width: 50%; }
.u-w-pct-51, .u-progress-pct-51 { width: 51%; }
.u-w-pct-52, .u-progress-pct-52 { width: 52%; }
.u-w-pct-53, .u-progress-pct-53 { width: 53%; }
.u-w-pct-54, .u-progress-pct-54 { width: 54%; }
.u-w-pct-55, .u-progress-pct-55 { width: 55%; }
.u-w-pct-56, .u-progress-pct-56 { width: 56%; }
.u-w-pct-57, .u-progress-pct-57 { width: 57%; }
.u-w-pct-58, .u-progress-pct-58 { width: 58%; }
.u-w-pct-59, .u-progress-pct-59 { width: 59%; }
.u-w-pct-60, .u-progress-pct-60 { width: 60%; }
.u-w-pct-61, .u-progress-pct-61 { width: 61%; }
.u-w-pct-62, .u-progress-pct-62 { width: 62%; }
.u-w-pct-63, .u-progress-pct-63 { width: 63%; }
.u-w-pct-64, .u-progress-pct-64 { width: 64%; }
.u-w-pct-65, .u-progress-pct-65 { width: 65%; }
.u-w-pct-66, .u-progress-pct-66 { width: 66%; }
.u-w-pct-67, .u-progress-pct-67 { width: 67%; }
.u-w-pct-68, .u-progress-pct-68 { width: 68%; }
.u-w-pct-69, .u-progress-pct-69 { width: 69%; }
.u-w-pct-70, .u-progress-pct-70 { width: 70%; }
.u-w-pct-71, .u-progress-pct-71 { width: 71%; }
.u-w-pct-72, .u-progress-pct-72 { width: 72%; }
.u-w-pct-73, .u-progress-pct-73 { width: 73%; }
.u-w-pct-74, .u-progress-pct-74 { width: 74%; }
.u-w-pct-75, .u-progress-pct-75 { width: 75%; }
.u-w-pct-76, .u-progress-pct-76 { width: 76%; }
.u-w-pct-77, .u-progress-pct-77 { width: 77%; }
.u-w-pct-78, .u-progress-pct-78 { width: 78%; }
.u-w-pct-79, .u-progress-pct-79 { width: 79%; }
.u-w-pct-80, .u-progress-pct-80 { width: 80%; }
.u-w-pct-81, .u-progress-pct-81 { width: 81%; }
.u-w-pct-82, .u-progress-pct-82 { width: 82%; }
.u-w-pct-83, .u-progress-pct-83 { width: 83%; }
.u-w-pct-84, .u-progress-pct-84 { width: 84%; }
.u-w-pct-85, .u-progress-pct-85 { width: 85%; }
.u-w-pct-86, .u-progress-pct-86 { width: 86%; }
.u-w-pct-87, .u-progress-pct-87 { width: 87%; }
.u-w-pct-88, .u-progress-pct-88 { width: 88%; }
.u-w-pct-89, .u-progress-pct-89 { width: 89%; }
.u-w-pct-90, .u-progress-pct-90 { width: 90%; }
.u-w-pct-91, .u-progress-pct-91 { width: 91%; }
.u-w-pct-92, .u-progress-pct-92 { width: 92%; }
.u-w-pct-93, .u-progress-pct-93 { width: 93%; }
.u-w-pct-94, .u-progress-pct-94 { width: 94%; }
.u-w-pct-95, .u-progress-pct-95 { width: 95%; }
.u-w-pct-96, .u-progress-pct-96 { width: 96%; }
.u-w-pct-97, .u-progress-pct-97 { width: 97%; }
.u-w-pct-98, .u-progress-pct-98 { width: 98%; }
.u-w-pct-99, .u-progress-pct-99 { width: 99%; }
.u-w-pct-100, .u-progress-pct-100 { width: 100%; }

.u-crypto-logo-sm { width: 40px; height: 40px; margin-bottom: 10px; }
.u-crypto-logo-md { width: 60px; height: 60px; margin-bottom: 15px; }
.u-stat-box { background: rgba(255,255,255,0.05); border-radius: 10px; }
.u-stat-box-sm { background: rgba(255,255,255,0.05); border-radius: 6px; }
.u-progress-track { height: 25px; border-radius: 10px; background: rgba(255,255,255,0.1); }
.u-progress-bar-fill { border-radius: 10px; }
.u-link-plain { text-decoration: none; }
.u-code-sm { font-size: 0.85rem; }
.u-qr-lg { width: 200px; height: 200px; border: 2px solid rgba(255,255,255,0.2); border-radius: 10px; padding: 10px; background: white; }
.u-qr-xl { max-width: 250px; border: 2px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 10px; background: white; }
.u-relative { position: relative; }
.u-modal-dark { background: rgba(10, 10, 10, 0.95); border: 1px solid rgba(255,255,255,0.1); }
.u-mini-pill-blue { background: rgba(120,140,180,.2); border-radius: 6px; padding: 0.1rem 0.35rem; }
.u-mini-pill-teal { background: rgba(78,205,196,.12); }
.u-text-purple { color: #a78bfa; }
.u-text-lavender { color: #ddd6ff; font-weight: 600; }
.u-bg-panel { background: rgba(0,0,0,.2); }
.u-heading-glance { letter-spacing: 0.08em; color: #c4b5fd; }
.u-scroll-280 { max-height: 280px; overflow: auto; }
.u-json-pre-200 { max-height: 200px; }
.u-json-pre-220 { max-height: 220px; }
.u-snapshot-cyan { border-left-color: var(--cyan); }
.u-snapshot-teal { border-left-color: #4ecdc4; }
.u-snapshot-purple { border-left-color: #a78bfa; }
.u-text-error { color: #ff6b6b; }
.u-ls-06 { letter-spacing: 0.06em; }
.u-ls-04 { letter-spacing: 0.04em; }
.u-ls-07 { letter-spacing: 0.07em; }
.u-clip-offscreen { position: fixed; left: -9999px; top: 0; opacity: 0; }
.u-anim-delay-0 { animation-delay: 0s; }
.u-anim-delay-1 { animation-delay: 0.1s; }
.u-anim-delay-2 { animation-delay: 0.2s; }
.u-anim-delay-3 { animation-delay: 0.3s; }
.u-anim-delay-4 { animation-delay: 0.4s; }
.u-anim-delay-5 { animation-delay: 0.5s; }
.u-anim-delay-6 { animation-delay: 0.6s; }
.u-anim-delay-7 { animation-delay: 0.7s; }
.u-anim-delay-8 { animation-delay: 0.8s; }
.u-anim-delay-9 { animation-delay: 0.9s; }
.u-min-w-120 { min-width: 120px; }
.u-plan-cta { position: relative; z-index: 10; pointer-events: auto; cursor: pointer; }
.u-uppercase { text-transform: uppercase; }
