/* =============================================
   PROFESSIONAL ICONS SYSTEM - Harmonized Colors
   ============================================= */

/**
 * PALETA DE CORES PROFISSIONAL
 * Baseada no design system corporativo
 */
:root {
    /* Cores Primárias */
    --icon-primary: #3498db;        /* Azul corporativo */
    --icon-primary-dark: #2980b9;   /* Azul escuro */
    --icon-secondary: #667eea;      /* Azul gradiente */
    
    /* Cores de Estado */
    --icon-success: #2ecc71;        /* Verde sucesso */
    --icon-success-dark: #27ae60;   /* Verde escuro */
    --icon-warning: #f39c12;        /* Laranja alerta */
    --icon-warning-dark: #e67e22;   /* Laranja escuro */
    --icon-danger: #e74c3c;         /* Vermelho erro */
    --icon-danger-dark: #c0392b;    /* Vermelho escuro */
    
    /* Cores Neutras */
    --icon-neutral: #7f8c8d;        /* Cinza neutro */
    --icon-neutral-dark: #95a5a6;   /* Cinza médio */
    --icon-neutral-light: #bdc3c7;  /* Cinza claro */
    
    /* Cores Especiais */
    --icon-info: #9b59b6;           /* Roxo informativo */
    --icon-premium: #764ba2;        /* Roxo premium */
    --icon-accent: #e91e63;         /* Rosa destaque */
    
    /* Cores de Contexto */
    --icon-finance: #27ae60;        /* Verde financeiro */
    --icon-time: #3498db;           /* Azul temporal */
    --icon-user: #667eea;           /* Azul usuário */
    --icon-business: #34495e;       /* Azul escuro negócios */
}

/**
 * Base icon styles (all icons inherit these)
 */
[class^="icon-"]::before,
[class*=" icon-"]::before {
    content: '';
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 0.5em;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
    -webkit-font-smoothing: antialiased;
}

/* ==============
   STANDARD ICONS
   ============== */

/* ===============================
   FAVORITOS E INFRAESTRUTURA
   =============================== */

/* Heart (Favorite) */
.icon-heart::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e91e63'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E");
}

/* Server (Infrastructure) */
.icon-server::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2334495e'%3E%3Cpath d='M4 1h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zm0 8h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zm0 8h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zM6 4.5a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm0 8a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm0 8a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0z'/%3E%3C/svg%3E");
}

/* ===============================
   FERRAMENTAS E SISTEMA
   =============================== */

/* Tools (Settings) */
.icon-wrench::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237f8c8d'%3E%3Cpath d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3C/svg%3E");
}

/* Documentation */
.icon-book::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239b59b6'%3E%3Cpath d='M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z'/%3E%3C/svg%3E");
}

/* Security */
.icon-shield::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M12 1L3 5V11C3 16.55 6.84 21.74 12 23C17.16 21.74 21 16.55 21 11V5L12 1M10 17L6 13L7.41 11.59L10 14.17L16.59 7.58L18 9L10 17Z'/%3E%3C/svg%3E");
}

/* ===============================
   PAGAMENTOS E AÇÕES
   =============================== */

/* Payments */
.icon-credit-card::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2334495e'%3E%3Cpath d='M2 4v2h20V4c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2zm0 4v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8H2zm4 6h4v2H6v-2z'/%3E%3C/svg%3E");
}

/* Copy to clipboard */
.icon-copy::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z'/%3E%3C/svg%3E");
}

/* Favorites */
.icon-star::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffc107'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E");
}

.icon-star-empty::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ddd' stroke-width='2'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E");
}

/* ===============================
   USUÁRIO E COMUNICAÇÃO
   =============================== */

/* User */
.icon-user::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23667eea'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E");
}

/* Email */
.icon-mail::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
}

/* Chat/Support */
.icon-chat::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239b59b6'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v6l4-3 4 3v-6h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2-2V4h16v12z'/%3E%3C/svg%3E");
}

/* Search */
.icon-search::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237f8c8d'%3E%3Cpath d='M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z'/%3E%3C/svg%3E");
}

/* ===============================
   PARCERIA E COMUNICAÇÃO
   =============================== */

/* Partnership */
.icon-handshake::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M18 14.5V11a1 1 0 0 0-.4-.8l-2-1.5a1 1 0 0 0-1.2 0L12 10.5 9.6 8.7a1 1 0 0 0-1.2 0l-2 1.5a1 1 0 0 0-.4.8v3.5H2v2h4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3h4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3h4v-2h-4z'/%3E%3C/svg%3E");
}

/* Announcements */
.icon-megaphone::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f39c12'%3E%3Cpath d='M3 7v10c0 1.1.9 2 2 2h3l3 3 3-3h3c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2zm16 0v10H5V7h14z'/%3E%3C/svg%3E");
}

/* Development */
.icon-code::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23764ba2'%3E%3Cpath d='M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z'/%3E%3C/svg%3E");
}

/* Edit */
/* ===============================
   EDIÇÃO E AÇÕES
   =============================== */

/* Edit/Actions */
.icon-edit::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f39c12'%3E%3Cpath d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E");
}

.icon-delete::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e74c3c'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E");
}

.icon-save::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z'/%3E%3C/svg%3E");
}

.icon-add::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E");
}

/* ===============================
   NEGÓCIOS E FERRAMENTAS
   =============================== */

/* Business */
.icon-briefcase::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2334495e'%3E%3Cpath d='M10 16v-1H3.01L3 19c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2v-4h-7v1h-4zm10-9h-4.01V5l-2-2h-4l-2 2v2H4c-1.1 0-2 .9-2 2v3c0 1.11.89 2 2 2h6v-2h4v2h6c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 7V5h4v2h-4z'/%3E%3C/svg%3E");
}

/* Calculator */
.icon-calculator::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M7 2h10c1.1 0 2 .9 2 2v16c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2zm0 3v2h10V5H7zm0 4v2h2V9H7zm4 0v2h2V9h-2zm4 0v2h2V9h-2zm-8 4v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v2h2v-2h-2zm-8 4v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v2h2v-2h-2z'/%3E%3C/svg%3E");
}

/* ===============================
   NAVEGAÇÃO PRINCIPAL
   =============================== */

/* Home - Principal */
.icon-home::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E");
}

/* Success/Check */
.icon-check::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
}

/* =============
   THEME ICONS
   ============= */

/* ===============================
   DOCUMENTAÇÃO DO SISTEMA DE CORES
   =============================== */

/**
 * GUIA DE CORES SEMÂNTICAS
 * 
 * 🔵 AZUIS (Primários):
 * - #3498db: Ícones principais (home, calculadora, email)
 * - #667eea: Ícones de usuário e upload
 * - #4a90e2: Tema escuro
 * 
 * 🟢 VERDES (Sucesso/Positivo):
 * - #2ecc71: Sucesso, salvar, adicionar, segurança, parceria
 * 
 * 🟠 LARANJAS (Alertas/Edição):
 * - #f39c12: Edição, anúncios, tema claro, pastas
 * 
 * 🔴 VERMELHOS (Ações Críticas):
 * - #e74c3c: Deletar, fechar, perigo
 * 
 * 🟣 ROXOS (Informação/Premium):
 * - #9b59b6: Chat, documentação
 * - #764ba2: Desenvolvimento, premium
 * 
 * 🔘 NEUTROS (Sistema):
 * - #7f8c8d: Ferramentas, busca, setas, tema sistema
 * - #34495e: Business, infraestrutura, menu, cartão
 * - #e91e63: Favoritos/coração
 * 
 * Esta paleta garante:
 * ✅ Consistência visual
 * ✅ Significado semântico claro
 * ✅ Acessibilidade e contraste
 * ✅ Harmonia com o design corporativo
 */

/* ===============================
   TEMAS E PERSONALIZAÇÃO
   =============================== */

/* System Theme */
.icon-theme-system::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237f8c8d'%3E%3Cpath d='M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2zm0 18V4a8 8 0 0 1 0 16z'/%3E%3C/svg%3E");
}

/* Light Theme */
.icon-theme-light::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f39c12'%3E%3Cpath d='M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3zm0-7l2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l3.42 2.39c-.27.74-.42 1.55-.42 2.39s.15 1.65.42 2.39L3.34 17l1.39-1.39C5.15 16.35 5 15.54 5 14.72c0-.84.15-1.65.42-2.39L3.34 7M12 22l-2.39-3.42c.74.27 1.55.42 2.39.42.84 0 1.65-.15 2.39-.42L12 22m7.66-5l-3.42-2.39c.27-.74.42-1.55.42-2.39s-.15-1.65-.42-2.39L20.66 7l-1.39 1.39c.42.74.57 1.55.57 2.37 0 .84-.15 1.65-.42 2.39L20.66 17'/%3E%3C/svg%3E");
}

/* Dark Theme */
.icon-theme-dark::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234a90e2'%3E%3Cpath d='M17.75 4.09L15.5 6.34C16.24 7.05 16.8 7.94 17.11 9h2.06c-.3-1.8-1.16-3.42-2.42-4.91zM4.09 17.75l2.25-2.25C7.05 16.24 7.94 16.8 9 17.11v2.06c-1.8-.3-3.42-1.16-4.91-2.42zM20 15.31V20h-4.69L12 16.69 8.69 20H4v-4.69L7.31 12 4 8.69V4h4.69L12 7.31 15.31 4H20v4.69L16.69 12 20 15.31zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z'/%3E%3C/svg%3E");
}

/* =============
   FINANCE ICONS
   ============= */

/* Calendar/Dates */
.icon-calendar::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M19 3h-1V1h-2v2H8V1H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 16H5V8h14v11zM7 10h5v5H7z'/%3E%3C/svg%3E");
}

/* Money/Currency */
.icon-money::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2327ae60'%3E%3Cpath d='M7 15h2c0 1.08 1.37 2 3 2s3-.92 3-2c0-1.1-1.04-1.5-3.24-2.03C9.64 12.44 7 11.78 7 9c0-1.79 1.47-3.31 3.5-3.82V3h3v2.18C15.53 5.69 17 7.21 17 9h-2c0-1.08-1.37-2-3-2s-3 .92-3 2c0 1.1 1.04 1.5 3.24 2.03C14.36 11.56 17 12.22 17 15c0 1.79-1.47 3.31-3.5 3.82V21h-3v-2.18C8.47 18.31 7 16.79 7 15z'/%3E%3C/svg%3E");
}

/* Scale/Balance */
.icon-scale::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e74c3c'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E");
}

/* Warning/Alert */
.icon-warning::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f39c12'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E");
}

/* Charts/Statistics */
.icon-chart::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239b59b6'%3E%3Cpath d='M5 9.2h3V19H5zM10.6 5h2.8v14h-2.8zm5.6 8H19v6h-2.8z'/%3E%3C/svg%3E");
}

/* FGTS Penalty */
.icon-fgts::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e74c3c'%3E%3Cpath d='M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z'/%3E%3Ctext x='18' y='18' font-size='8' fill='%23c0392b' font-weight='bold' text-anchor='end'%3E40%25%3C/text%3E%3C/svg%3E");
}

/* Clock */
.icon-clock::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'/%3E%3C/svg%3E");
}

/* Law */
.icon-law::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e67e22'%3E%3Cpath d='M7 3h2v18H7zm8 0h2v18h-2zM3 21h18v-2H3zm0-16h18V3H3z'/%3E%3Cpath d='M12 6L8 9h8z'/%3E%3C/svg%3E");
}

/* Phone */
.icon-phone::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2327ae60'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}

/* ===============================
   ÍCONES ESPECIAIS E AÇÕES
   =============================== */

/* Example */
.icon-example::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239b59b6'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E");
}

/* Minus */
.icon-minus::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e74c3c'%3E%3Cpath d='M19 13H5v-2h14v2z'/%3E%3C/svg%3E");
}

/* Plus */
.icon-plus::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z'/%3E%3C/svg%3E");
}

/* Print */
.icon-print::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237f8c8d'%3E%3Cpath d='M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z'/%3E%3C/svg%3E");
}

/* ===============================
   FINANCEIRO E GRÁFICOS
   =============================== */

/* Piggy Bank */
.icon-piggy-bank::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ff9999'%3E%3Cellipse cx='12' cy='14' rx='9' ry='6' fill='%23ff9999'/%3E%3Cellipse cx='12' cy='10' rx='6' ry='5' fill='%23ff9999'/%3E%3Cellipse cx='12' cy='12' rx='2.5' ry='1.8' fill='%23ffb6c1'/%3E%3Ccircle cx='11.2' cy='12' r='0.3' fill='%23d87093'/%3E%3Ccircle cx='12.8' cy='12' r='0.3' fill='%23d87093'/%3E%3Ccircle cx='10' cy='9' r='0.8' fill='%23fff'/%3E%3Ccircle cx='14' cy='9' r='0.8' fill='%23fff'/%3E%3Ccircle cx='10' cy='9' r='0.4' fill='%23000'/%3E%3Ccircle cx='14' cy='9' r='0.4' fill='%23000'/%3E%3C!-- Orelhas maiores --%3E%3Cpath d='M7.5 7 L9 4.5 L10.5 7 Z' fill='%23ff9999'/%3E%3Cpath d='M13.5 7 L15 4.5 L16.5 7 Z' fill='%23ff9999'/%3E%3Crect x='10' y='6' width='4' height='0.8' rx='0.4' fill='%23d87093'/%3E%3Ccircle cx='7' cy='19' r='1.2' fill='%23ff9999'/%3E%3Ccircle cx='11' cy='19' r='1.2' fill='%23ff9999'/%3E%3Ccircle cx='13' cy='19' r='1.2' fill='%23ff9999'/%3E%3Ccircle cx='17' cy='19' r='1.2' fill='%23ff9999'/%3E%3Cpath d='M19 12 Q20 11 20.5 12 Q21 13 20 13.5 Q19.5 14 19.8 13.2' stroke='%23ff9999' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}



/* Chart Up */
.icon-chart-up::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M16,6L18.29,8.29L13.41,13.17L9.41,9.17L2,16.59L3.41,18L9.41,12L13.41,16L19.71,9.71L22,12V6H16Z'/%3E%3C/svg%3E");
}

/* ===============================
   FEEDBACKS E ALERTAS
   =============================== */

/* Check Circle */
.icon-check-circle::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232ecc71'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z'/%3E%3C/svg%3E");
}

/* Alert Circle */
.icon-alert-circle::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e74c3c'%3E%3Cpath d='M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z'/%3E%3C/svg%3E");
}

/* Alert Triangle */
.icon-alert-triangle::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f39c12'%3E%3Cpath d='M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z'/%3E%3C/svg%3E");
}

/* ===============================
   COMPARTILHAMENTO E SISTEMA
   =============================== */

/* Share */
.icon-share::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z'/%3E%3C/svg%3E");
}

/* Refresh */
.icon-refresh::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237f8c8d'%3E%3Cpath d='M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z'/%3E%3C/svg%3E");
}

/* Loading Spinner */
.icon-loading::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233498db'%3E%3Cpath d='M12,4V2A10,10 0 0,0 2,12H4A8,8 0 0,1 12,4Z'%3E%3CanimateTransform attributeName='transform' attributeType='XML' type='rotate' from='0 12 12' to='360 12 12' dur='1s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Mobile */
.icon-mobile::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%237f8c8d'%3E%3Cpath d='M17,19H7V5H17M17,1H7C5.89,1 5,1.89 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3C19,1.89 18.1,1 17,1Z'/%3E%3C/svg%3E");
}

/* ===============================
   UTILITÁRIOS E MODIFICADORES
   =============================== */

/**
 * Classes modificadoras para ícones
 * Podem ser usadas em conjunto com qualquer ícone
 */
.icon-lg::before {
    width: 24px;
    height: 24px;
}

.icon-xl::before {
    width: 32px;
    height: 32px;
}

.icon-2xl::before {
    width: 48px;
    height: 48px;
}

/* Rotações */
.icon-rotate-90::before {
    transform: rotate(90deg);
}

.icon-rotate-180::before {
    transform: rotate(180deg);
}

.icon-rotate-270::before {
    transform: rotate(270deg);
}

/* Estados */
.icon-disabled::before {
    opacity: 0.5;
    filter: grayscale(100%);
}

.icon-hover:hover::before {
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

/* ===============================
   CUSTOMIZAÇÃO COM VARIÁVEIS CSS
   =============================== */

/**
 * Para personalizar cores usando variáveis CSS:
 * 
 * .meu-icone::before {
 *     background-image: url("data:image/svg+xml,%3Csvg... fill='%23" + var(--minha-cor-personalizada) + "'%3E...");
 * }
 * 
 * Ou use as variáveis já definidas:
 * - var(--icon-primary)
 * - var(--icon-success)
 * - var(--icon-warning)
 * - var(--icon-danger)
 * - var(--icon-neutral)
 */

/* =============
   RESPONSIVE
   ============= */
@media (max-width: 768px) {
    [class^="icon-"]::before,
    [class*=" icon-"]::before {
        margin-right: 0.3em;
        width: 0.9em;
        height: 0.9em;
    }
}