/* Generated 2026-08-16 — every icon inlined as a data URI so masks work
   under file://, http, and https alike (file:// blocks external SVG
   loads in CSS mask with CORS). Source SVGs remain in ./icons/. */
:root {
  --i-barbell: url("data:image/svg+xml,%3C!-- tags: [weight, gym, fitness, powerlift, barbell, athletic, exercise, game, physical] category: Sport version: '1.52' unicode: 'eff0' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M2 12h1' /%3E%3Cpath d='M6 8h-2a1 1 0 0 0 -1 1v6a1 1 0 0 0 1 1h2' /%3E%3Cpath d='M6 7v10a1 1 0 0 0 1 1h1a1 1 0 0 0 1 -1v-10a1 1 0 0 0 -1 -1h-1a1 1 0 0 0 -1 1' /%3E%3Cpath d='M9 12h6' /%3E%3Cpath d='M15 7v10a1 1 0 0 0 1 1h1a1 1 0 0 0 1 -1v-10a1 1 0 0 0 -1 -1h-1a1 1 0 0 0 -1 1' /%3E%3Cpath d='M18 8h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2' /%3E%3Cpath d='M22 12h-1' /%3E%3C/svg%3E");
  --i-body-scan: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11 8a1 1 0 1 0 2 0a1 1 0 0 0 -2 0' /%3E%3Cpath d='M10 17v-1a2 2 0 1 1 4 0v1' /%3E%3Cpath d='M8 10q 1 1 2 1h4q 1 0 2 -1' /%3E%3Cpath d='M12 11v3' /%3E%3Cpath d='M3 7v-2a2 2 0 0 1 2 -2h2' /%3E%3Cpath d='M3 17v2a2 2 0 0 0 2 2h2' /%3E%3Cpath d='M17 3h2a2 2 0 0 1 2 2v2' /%3E%3Cpath d='M17 21h2a2 2 0 0 0 2 -2v-2' /%3E%3C/svg%3E");
  --i-bolt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11' /%3E%3C/svg%3E");
  --i-camera: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M5 7h1a2 2 0 0 0 2 -2a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-9a2 2 0 0 1 2 -2' /%3E%3Cpath d='M9 13a3 3 0 1 0 6 0a3 3 0 0 0 -6 0' /%3E%3C/svg%3E");
  --i-cloud-off: url("data:image/svg+xml,%3C!-- tags: [weather, online, cloud, off, storage, climate, forecast, disabled, inactive, server] category: Weather version: '1.28' unicode: 'ed3e' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M9.58 5.548c.24 -.11 .492 -.207 .752 -.286c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.913 0 3.464 1.56 3.464 3.486c0 .957 -.383 1.824 -1.003 2.454m-2.997 1.033h-11.343c-2.572 -.004 -4.657 -2.011 -4.657 -4.487c0 -2.475 2.085 -4.482 4.657 -4.482c.13 -.582 .37 -1.128 .7 -1.62' /%3E%3Cpath d='M3 3l18 18' /%3E%3C/svg%3E");
  --i-droplet: url("data:image/svg+xml,%3C!-- tags: [water, rain, liquid, droplet, creative, artistic, visual, aesthetic, style] category: Design version: '1.0' unicode: 'ea97' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M7.502 19.423c2.602 2.105 6.395 2.105 8.996 0c2.602 -2.105 3.262 -5.708 1.566 -8.546l-4.89 -7.26c-.42 -.625 -1.287 -.803 -1.936 -.397a1.376 1.376 0 0 0 -.41 .397l-4.893 7.26c-1.695 2.838 -1.035 6.441 1.567 8.546' /%3E%3C/svg%3E");
  --i-flame: url("data:image/svg+xml,%3C!-- category: Nature tags: [fire, fireplace, light, burn, bonfire, smoke, barbecue, flame] version: '1.35' unicode: 'ec2c' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 10.941c2.333 -3.308 .167 -7.823 -1 -8.941c0 3.395 -2.235 5.299 -3.667 6.706c-1.43 1.408 -2.333 3.294 -2.333 5.588c0 3.704 3.134 6.706 7 6.706c3.866 0 7 -3.002 7 -6.706c0 -1.712 -1.232 -4.403 -2.333 -5.588c-2.084 3.353 -3.257 3.353 -4.667 2.235' /%3E%3C/svg%3E");
  --i-flower: url("data:image/svg+xml,%3C!-- tags: [plant, garden, rose, lotus, flower, environment, natural, outdoor, ecosystem, earth] category: Nature version: '1.52' unicode: 'eff6' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0' /%3E%3Cpath d='M12 2a3 3 0 0 1 3 3c0 .562 -.259 1.442 -.776 2.64l-.724 1.36l1.76 -1.893c.499 -.6 .922 -1 1.27 -1.205a2.968 2.968 0 0 1 4.07 1.099a3.011 3.011 0 0 1 -1.09 4.098c-.374 .217 -.99 .396 -1.846 .535l-2.664 .366l2.4 .326c1 .145 1.698 .337 2.11 .576a3.011 3.011 0 0 1 1.09 4.098a2.968 2.968 0 0 1 -4.07 1.098c-.348 -.202 -.771 -.604 -1.27 -1.205l-1.76 -1.893l.724 1.36c.516 1.199 .776 2.079 .776 2.64a3 3 0 0 1 -6 0c0 -.562 .259 -1.442 .776 -2.64l.724 -1.36l-1.76 1.893c-.499 .601 -.922 1 -1.27 1.205a2.968 2.968 0 0 1 -4.07 -1.098a3.011 3.011 0 0 1 1.09 -4.098c.374 -.218 .99 -.396 1.846 -.536l2.664 -.366l-2.4 -.325c-1 -.145 -1.698 -.337 -2.11 -.576a3.011 3.011 0 0 1 -1.09 -4.099a2.968 2.968 0 0 1 4.07 -1.099c.348 .203 .771 .604 1.27 1.205l1.76 1.894c-1 -2.292 -1.5 -3.625 -1.5 -4a3 3 0 0 1 3 -3' /%3E%3C/svg%3E");
  --i-gauge: url("data:image/svg+xml,%3C!-- tags: [gauge, speed, speedometer, pace, rate, dial, dashboard] category: Devices --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0' /%3E%3Cpath d='M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0' /%3E%3Cpath d='M13.41 10.59l2.59 -2.59' /%3E%3Cpath d='M7 12a5 5 0 0 1 5 -5' /%3E%3C/svg%3E");
  --i-heart: url("data:image/svg+xml,%3C!-- tags: [love, emotion, like, favorite, relationship, heart, geometry, form, figure, pattern] category: Shapes version: '1.0' unicode: 'eabe' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572' /%3E%3C/svg%3E");
  --i-hourglass: url("data:image/svg+xml,%3C!-- tags: [time, timer, sand, clock, hourglass, control, operation, function, interface, management] category: System version: '1.47' unicode: 'ef93' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M6.5 7h11' /%3E%3Cpath d='M6.5 17h11' /%3E%3Cpath d='M6 20v-2a6 6 0 1 1 12 0v2a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1' /%3E%3Cpath d='M6 4v2a6 6 0 1 0 12 0v-2a1 1 0 0 0 -1 -1h-10a1 1 0 0 0 -1 1' /%3E%3C/svg%3E");
  --i-messages: url("data:image/svg+xml,%3C!-- tags: [chat, reply, comment, conversation, communication, faq, messages, contact, messaging, interaction] category: Communication version: '1.2' unicode: 'eb6c' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10' /%3E%3Cpath d='M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2' /%3E%3C/svg%3E");
  --i-moon: url("data:image/svg+xml,%3C!-- tags: [night, dark mode, moon, climate, forecast, meteorology, atmospheric, conditions] category: Weather version: '1.0' unicode: 'eaf8' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008' /%3E%3C/svg%3E");
  --i-run: url("data:image/svg+xml,%3C!-- tags: [jog, dislocating, movement, motion, sprint, run, athletic, fitness, exercise, game] category: Sport version: '1.14' unicode: 'ec82' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.007 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' /%3E%3Cpath d='M4 17l5 1l.75 -1.5' /%3E%3Cpath d='M15 21v-4l-4 -3l1 -6' /%3E%3Cpath d='M7 12v-3l5 -1l3 3l3 1' /%3E%3C/svg%3E");
  --i-scale: url("data:image/svg+xml,%3C!-- category: System tags: [weigh, balance, amount, heavy, light, libra, scale] version: '1.1' unicode: 'ebc2' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M7 20l10 0' /%3E%3Cpath d='M6 6l6 -1l6 1' /%3E%3Cpath d='M12 3l0 17' /%3E%3Cpath d='M9 12l-3 -6l-3 6a3 3 0 0 0 6 0' /%3E%3Cpath d='M21 12l-3 -6l-3 6a3 3 0 0 0 6 0' /%3E%3C/svg%3E");
  --i-salad: url("data:image/svg+xml,%3C!-- tags: [food, vegetable, vegan, healthy, salad, meal, cuisine, eating, nutrition, culinary] category: Food version: '1.101' unicode: 'f50a' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M4 11h16a1 1 0 0 1 1 1v.5c0 1.5 -2.517 5.573 -4 6.5v1a1 1 0 0 1 -1 1h-8a1 1 0 0 1 -1 -1v-1c-1.687 -1.054 -4 -5 -4 -6.5v-.5a1 1 0 0 1 1 -1' /%3E%3Cpath d='M18.5 11c.351 -1.017 .426 -2.236 .5 -3.714v-1.286h-2.256c-2.83 0 -4.616 .804 -5.64 2.076' /%3E%3Cpath d='M5.255 11.008a12.204 12.204 0 0 1 -.255 -2.008v-1h1.755c.98 0 1.801 .124 2.479 .35' /%3E%3Cpath d='M8 8l1 -4l4 2.5' /%3E%3Cpath d='M13 11v-.5a2.5 2.5 0 1 0 -5 0v.5' /%3E%3C/svg%3E");
  --i-seedling: url("data:image/svg+xml,%3C!-- tags: [nature, greenery, grow, soil, harvest, plant, flower, tree, leaf, seedling] category: Nature version: '1.29' unicode: 'ed51' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 10a6 6 0 0 0 -6 -6h-3v2a6 6 0 0 0 6 6h3' /%3E%3Cpath d='M12 14a6 6 0 0 1 6 -6h3v1a6 6 0 0 1 -6 6h-3' /%3E%3Cpath d='M12 20l0 -10' /%3E%3C/svg%3E");
  --i-shield: url("data:image/svg+xml,%3C!-- tags: [safety, protect, protection, shield, control, operation, function, interface, management] category: System version: '1.0' unicode: 'eb24' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M12 3a12 12 0 0 0 8.5 3a12 12 0 0 1 -8.5 15a12 12 0 0 1 -8.5 -15a12 12 0 0 0 8.5 -3' /%3E%3C/svg%3E");
  --i-sparkles: url("data:image/svg+xml,%3C!-- category: System tags: [star, light, fire, shine, sparkles] version: '2.1' unicode: 'f6d7' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2m0 -12a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2m-7 12a6 6 0 0 1 6 -6a6 6 0 0 1 -6 -6a6 6 0 0 1 -6 6a6 6 0 0 1 6 6' /%3E%3C/svg%3E");
  --i-square-check: url("data:image/svg+xml,%3C!-- tags: [checkbox, 'yes', square, check, rectangular, confirm, approve, geometry, form, figure] category: Shapes version: '1.0' unicode: 'eb28' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14' /%3E%3Cpath d='M9 12l2 2l4 -4' /%3E%3C/svg%3E");
  --i-target: url("data:image/svg+xml,%3C!-- tags: [focus, bullseye, aim, target, location, navigation, geography, place, position] category: Map version: '1.0' unicode: 'eb35' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0' /%3E%3Cpath d='M7 12a5 5 0 1 0 10 0a5 5 0 1 0 -10 0' /%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0' /%3E%3C/svg%3E");
  --i-yoga: url("data:image/svg+xml,%3C!-- tags: [pose, sport, meditation, fitness, yoga, athletic, exercise, game, physical] category: Sport version: '1.54' unicode: 'f01f' --%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M4 20h4l1.5 -3' /%3E%3Cpath d='M17 20l-1 -5h-5l1 -7' /%3E%3Cpath d='M4 10l4 -1l4 -1l4 1.5l4 1.5' /%3E%3Cpath d='M10.007 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' /%3E%3C/svg%3E");
}
