/* ============================================
   ICONS — Inline SVG icon system for Esoterra
   Replaces all emoji with elegant stroke-based SVGs
   ============================================ */

/* --- Base icon --- */
.icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.icon--lg { width: 1.5em; height: 1.5em; }
.icon--xl { width: 2em; height: 2em; }
.icon--2xl { width: 2.5em; height: 2.5em; }
.icon--3xl { width: 3em; height: 3em; }


/* --- Decorative icons --- */

.icon--crystal-ball {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='10' r='8'/%3E%3Cpath d='M6 20h12'/%3E%3Cpath d='M8 20c0-2 1.5-3 4-3s4 1 4 3'/%3E%3Cpath d='M10 7l2 3 2-3' opacity='.5'/%3E%3C/svg%3E");
}

.icon--sparkles {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l2 6 6 2-6 2-2 6-2-6-6-2 6-2z'/%3E%3Cpath d='M19 8l1 2 2 1-2 1-1 2-1-2-2-1 2-1z' opacity='.6'/%3E%3C/svg%3E");
}

.icon--star {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87L18.18 21 12 17.27 5.82 21 7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E");
}

.icon--star-filled {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f9ca24' stroke='%23f9ca24' stroke-width='1.5'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87L18.18 21 12 17.27 5.82 21 7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E");
}

.icon--moon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.79A9 9 0 1111.21 3a7 7 0 009.79 9.79z'/%3E%3C/svg%3E");
}

.icon--shooting-star {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2l-3 6-6 1 4.5 4-1 6L15 16l5.5 3-1-6L24 9l-6-1z'/%3E%3Cpath d='M2 22l5-5' opacity='.5'/%3E%3Cpath d='M7 17l3-3' opacity='.3'/%3E%3C/svg%3E");
}

.icon--fire {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e17055' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22c4.97 0 8-3.03 8-8 0-5.5-4-8-4-12 0 4-4 5.5-6 8-1.5-1.5-2-4-2-6-3 3-4 7-4 10 0 4.97 3.03 8 8 8z'/%3E%3C/svg%3E");
}

.icon--sun {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cpath d='M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42'/%3E%3C/svg%3E");
}

.icon--star-glow {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l2 6 6 2-6 2-2 6-2-6-6-2 6-2z'/%3E%3Ccircle cx='12' cy='12' r='3' opacity='.3'/%3E%3C/svg%3E");
}


/* --- Status icons --- */

.icon--check {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300b894' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}

.icon--check-circle {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300b894' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M16 9l-5 6-3-3'/%3E%3C/svg%3E");
}

.icon--cross {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e17055' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");
}

.icon--warning {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
}

.icon--compass {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M16.24 7.76l-2.12 6.36-6.36 2.12 2.12-6.36z'/%3E%3C/svg%3E");
}


/* --- Relationship icons --- */

.icon--heart {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e17055' stroke='%23e17055' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z'/%3E%3C/svg%3E");
}

.icon--heart-outline {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e17055' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z'/%3E%3C/svg%3E");
}

.icon--heart-yellow {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f9ca24' stroke='%23f9ca24' stroke-width='1.5'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z'/%3E%3C/svg%3E");
}

.icon--couple {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='7' r='3'/%3E%3Ccircle cx='16' cy='7' r='3'/%3E%3Cpath d='M2 21v-2a4 4 0 014-4h4a4 4 0 014 4v2'/%3E%3Cpath d='M14 21v-2a4 4 0 014-4h2a4 4 0 014 4v2'/%3E%3C/svg%3E");
}

.icon--strength {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e17055' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3-9 4 18 3-9h4'/%3E%3C/svg%3E");
}


/* --- Gender icons --- */

.icon--female {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M12 15v7M9 19h6'/%3E%3C/svg%3E");
}

.icon--male {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='14' r='6'/%3E%3Cpath d='M22 2l-6 6M22 2h-5M22 2v5'/%3E%3C/svg%3E");
}


/* --- Zodiac sign icons --- */

.icon--zodiac {
    width: 1.2em;
    height: 1.2em;
}

.icon--aries {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 21C4 12 8 4 12 4s8 8 8 17'/%3E%3Cpath d='M12 4v17'/%3E%3C/svg%3E");
}

.icon--taurus {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='15' r='6'/%3E%3Cpath d='M4 4c2 4 6 4 8 4s6 0 8-4'/%3E%3C/svg%3E");
}

.icon--gemini {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5 3h14M5 21h14M8 3v18M16 3v18'/%3E%3C/svg%3E");
}

.icon--cancer {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='8' cy='10' r='3'/%3E%3Ccircle cx='16' cy='14' r='3'/%3E%3Cpath d='M4 6c8 0 16 4 16 6'/%3E%3Cpath d='M20 18c-8 0-16-4-16-6'/%3E%3C/svg%3E");
}

.icon--leo {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='9' cy='9' r='5'/%3E%3Cpath d='M14 9c0 6-2 8-2 12'/%3E%3Ccircle cx='12' cy='21' r='2'/%3E%3C/svg%3E");
}

.icon--virgo {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5 2v16c0 2 2 4 4 4M10 2v16M15 2v10c0 4 4 4 4 0'/%3E%3C/svg%3E");
}

.icon--libra {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M12 4v16'/%3E%3Cpath d='M4 10c0-3 3.5-6 8-6s8 3 8 6'/%3E%3C/svg%3E");
}

.icon--scorpio {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5 2v16M10 2v16M15 2v16c2 0 4-2 4-4'/%3E%3Cpath d='M19 12l3 2-3 2'/%3E%3C/svg%3E");
}

.icon--sagittarius {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 20L20 4'/%3E%3Cpath d='M13 4h7v7'/%3E%3Cpath d='M7 13l4 4'/%3E%3C/svg%3E");
}

.icon--capricorn {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 2v12c0 4 3 6 6 6'/%3E%3Cpath d='M12 20c0-6 4-8 6-8'/%3E%3Ccircle cx='18' cy='16' r='4'/%3E%3C/svg%3E");
}

.icon--aquarius {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M3 8l3 3 3-3 3 3 3-3 3 3 3-3'/%3E%3Cpath d='M3 16l3 3 3-3 3 3 3-3 3 3 3-3'/%3E%3C/svg%3E");
}

.icon--pisces {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 3c0 9 3 9 6 9s6 0 6 9'/%3E%3Cpath d='M6 21c0-9 3-9 6-9s6 0 6-9'/%3E%3Cpath d='M3 12h18'/%3E%3C/svg%3E");
}


/* --- Category / misc icons --- */

.icon--heart-white {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dfe6e9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z'/%3E%3C/svg%3E");
}

.icon--heart-pink {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fd79a8' stroke='%23fd79a8' stroke-width='1.5'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z'/%3E%3C/svg%3E");
}

.icon--heart-couple {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fd79a8' stroke='%23fd79a8' stroke-width='1.5'%3E%3Cpath d='M16.5 3a5 5 0 00-4.5 3A5 5 0 007.5 3C4.42 3 2 5.42 2 8.5c0 4.78 10 13 10 13s10-8.22 10-13C22 5.42 19.58 3 16.5 3z'/%3E%3C/svg%3E");
}

.icon--money {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300b894' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 1v22M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6'/%3E%3C/svg%3E");
}

.icon--gem {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12l4 6-10 13L2 9z'/%3E%3Cpath d='M2 9h20M12 22L8 9l4-6 4 6z' opacity='.5'/%3E%3C/svg%3E");
}

.icon--hand {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 11V6a2 2 0 00-4 0M14 10V4a2 2 0 00-4 0v6M10 10V5a2 2 0 00-4 0v9'/%3E%3Cpath d='M18 11a2 2 0 014 0v3a8 8 0 01-8 8h-2a8 8 0 01-6-3l-3-4a2 2 0 013-2l2 2'/%3E%3C/svg%3E");
}

.icon--gift {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12M2 7h20v5H2zM12 22V7M12 7H7.5a2.5 2.5 0 110-5C11 2 12 7 12 7zM12 7h4.5a2.5 2.5 0 000-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
}

.icon--leaf {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300b894' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 8C8 10 5.9 16.17 3.82 21.34L5.71 22l1-2.3A7.39 7.39 0 0112 17c3 0 5-1 7-5s0-8 0-8a4 4 0 01-2 4'/%3E%3Cpath d='M6 15s2-2 6-2' opacity='.5'/%3E%3C/svg%3E");
}

.icon--new-moon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23636e72' stroke='%23636e72' stroke-width='1'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E");
}

.icon--first-quarter {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dfe6e9' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a10 10 0 010 20z' fill='%23dfe6e9'/%3E%3C/svg%3E");
}

.icon--full-moon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f9ca24' stroke='%23f9ca24' stroke-width='1'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E");
}

.icon--last-quarter {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dfe6e9' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a10 10 0 000 20z' fill='%23dfe6e9'/%3E%3C/svg%3E");
}

.icon--candle {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='10' width='8' height='12' rx='1'/%3E%3Cpath d='M12 10V6'/%3E%3Cpath d='M12 6c-1-2 0-4 0-4s1 2 0 4' fill='%23f9ca24'/%3E%3C/svg%3E");
}

.icon--meditation {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='3'/%3E%3Cpath d='M12 8v4M8 18c0-3 2-5 4-6 2 1 4 3 4 6M6 22c0-2 2-4 6-4s6 2 6 4'/%3E%3C/svg%3E");
}

.icon--notebook {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 016.5 17H20'/%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z'/%3E%3Cpath d='M8 7h8M8 11h5' opacity='.5'/%3E%3C/svg%3E");
}

.icon--globe {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300b894' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z'/%3E%3C/svg%3E");
}

.icon--wind {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2374b9ff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.59 4.59A2 2 0 1111 8H2M12.59 19.41A2 2 0 1014 16H2M17.73 7.73A2.5 2.5 0 1119.5 12H2'/%3E%3C/svg%3E");
}

.icon--droplet {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230984e3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.69l5.66 5.66a8 8 0 11-11.31 0z'/%3E%3C/svg%3E");
}

.icon--rocket {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z'/%3E%3Cpath d='M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z'/%3E%3Cpath d='M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5'/%3E%3C/svg%3E");
}

.icon--handshake {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 8l-4-4-9.5 9.5a2.12 2.12 0 000 3l1 1a2.12 2.12 0 003 0L20 8z'/%3E%3Cpath d='M4 16l4 4 9.5-9.5a2.12 2.12 0 000-3l-1-1a2.12 2.12 0 00-3 0L4 16z' opacity='.5'/%3E%3C/svg%3E");
}

.icon--hospital {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e17055' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
}

.icon--plane {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2L11 13M22 2l-7 20-4-9-9-4z'/%3E%3C/svg%3E");
}

.icon--bag {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4zM3 6h18M16 10a4 4 0 01-8 0'/%3E%3C/svg%3E");
}

.icon--briefcase {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c5ce7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2' ry='2'/%3E%3Cpath d='M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16'/%3E%3C/svg%3E");
}

.icon--bracelet {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='3' r='2'/%3E%3Ccircle cx='19.8' cy='8' r='2'/%3E%3Ccircle cx='19.8' cy='16' r='2'/%3E%3Ccircle cx='12' cy='21' r='2'/%3E%3Ccircle cx='4.2' cy='16' r='2'/%3E%3Ccircle cx='4.2' cy='8' r='2'/%3E%3C/svg%3E");
}


/* --- Planet icons (for natal charts) --- */

.icon--planet-sun { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cpath d='M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83'/%3E%3C/svg%3E"); }
.icon--planet-moon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dfe6e9' stroke-width='1.5'%3E%3Cpath d='M21 12.79A9 9 0 1111.21 3a7 7 0 009.79 9.79z'/%3E%3C/svg%3E"); }
.icon--planet-mercury { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5'%3E%3Ccircle cx='12' cy='10' r='5'/%3E%3Cpath d='M12 15v7M9 19h6'/%3E%3Cpath d='M8 3c2 2 6 2 8 0'/%3E%3C/svg%3E"); }
.icon--planet-venus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fab1a0' stroke-width='1.5'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M12 15v7M9 19h6'/%3E%3C/svg%3E"); }
.icon--planet-mars { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e17055' stroke-width='1.5'%3E%3Ccircle cx='10' cy='14' r='6'/%3E%3Cpath d='M22 2l-6 6M22 2h-5M22 2v5'/%3E%3C/svg%3E"); }
.icon--planet-jupiter { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M8 3v18M4 12h12'/%3E%3Cpath d='M16 3c0 5-4 9-8 9'/%3E%3C/svg%3E"); }
.icon--planet-saturn { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M8 2v18M4 6h6'/%3E%3Cpath d='M14 8c0 4-2 8-6 10'/%3E%3Ccircle cx='18' cy='17' r='4' opacity='.5'/%3E%3C/svg%3E"); }
.icon--planet-uranus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300cec9' stroke-width='1.5'%3E%3Ccircle cx='12' cy='16' r='5'/%3E%3Cpath d='M12 3v8M8 5h8'/%3E%3Ccircle cx='12' cy='3' r='1.5'/%3E%3C/svg%3E"); }
.icon--planet-neptune { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230984e3' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M12 2v20M8 6h8'/%3E%3Cpath d='M6 2l6 6 6-6'/%3E%3C/svg%3E"); }
.icon--planet-pluto { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='1.5'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M12 12v10M8 16h8'/%3E%3Cpath d='M6 4c0 6 12 6 12 0'/%3E%3C/svg%3E"); }


/* --- Admin & misc icons --- */

.icon--chart { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 20V10M12 20V4M6 20v-6'/%3E%3C/svg%3E"); }
.icon--link { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71'/%3E%3C/svg%3E"); }
.icon--news { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22h16a2 2 0 002-2V4a2 2 0 00-2-2H8a2 2 0 00-2 2v16a2 2 0 01-2 2zm0 0a2 2 0 01-2-2v-9c0-1.1.9-2 2-2h2'/%3E%3Cpath d='M18 14h-8M15 18h-5M10 6h8v4h-8z'/%3E%3C/svg%3E"); }
.icon--galaxy { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cellipse cx='12' cy='12' rx='10' ry='4' transform='rotate(30 12 12)'/%3E%3Cellipse cx='12' cy='12' rx='10' ry='4' transform='rotate(-30 12 12)'/%3E%3C/svg%3E"); }
.icon--map { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6v16l7-4 8 4 7-4V2l-7 4-8-4-7 4zM8 2v16M16 6v16'/%3E%3C/svg%3E"); }
.icon--envelope { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpath d='M22 6l-10 7L2 6'/%3E%3C/svg%3E"); }
.icon--ring { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f9ca24' stroke-width='1.5'%3E%3Ccircle cx='12' cy='14' r='7'/%3E%3Cpath d='M12 7V3M9 4l3 3 3-3' stroke-linecap='round'/%3E%3C/svg%3E"); }
.icon--question { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3M12 17h.01'/%3E%3C/svg%3E"); }
.icon--nonbinary { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cpath d='M12 7V2M12 17v5M9 3.5l3 2 3-2M9 20.5l3-2 3 2'/%3E%3C/svg%3E"); }
.icon--family { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a29bfe' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='7' cy='6' r='2.5'/%3E%3Ccircle cx='17' cy='6' r='2.5'/%3E%3Ccircle cx='12' cy='8' r='2'/%3E%3Cpath d='M3 21v-2a4 4 0 014-4M21 21v-2a4 4 0 00-4-4M12 14a3 3 0 013 3v4H9v-4a3 3 0 013-3z'/%3E%3C/svg%3E"); }
