diff --git a/SUIVI.md b/SUIVI.md new file mode 100644 index 0000000..a7d43cb --- /dev/null +++ b/SUIVI.md @@ -0,0 +1,149 @@ +# Suivi d'implémentation — ProxmoxPanel CORE + +Référence : `instruction.md` | Mis à jour : 2026-03-21 + +--- + +## Stack technique actuelle + +| Composant | Choix | Statut | +|-----------|-------|--------| +| Backend | Go 1.23 + chi v5 + gorilla/websocket | ✅ Implémenté | +| Base de données | SQLite via modernc.org/sqlite (sans CGO) | ✅ Implémenté | +| Auth | PAM via SSH + JWT RS256 | ✅ Implémenté | +| Chiffrement | AES-256-GCM (master.key) | ✅ Implémenté | +| Frontend | Alpine.js v3 + HTMX v2 + Swup v4 | ✅ Branche `frontend/alpine` | +| Icônes | **LineIcons Duotone** | ⚠️ Non intégré (symboles Unicode utilisés) | +| Terminal | xterm.js v5 + addon-fit + WS PTY | ✅ Implémenté | +| Build frontend | esbuild (bundler Swup ESM → IIFE) | ✅ Implémenté | +| Serveur statique | Nginx 1.27 | ✅ Dockerfile simplifié | + +--- + +## Fonctionnalités CORE — État d'avancement + +### 1. Page d'installation ✅ +- Wizard 4 étapes (Alpine.js) +- Pré-remplissage URL automatique depuis `window.location.origin` +- Test SSH (fetch POST /api/install/test-ssh) +- Configuration Proxmox API (token unique format `user@realm!tokenid=secret`) +- **Manque** : pré-remplissage du port depuis la requête entrante + +### 2. Gestion des comptes utilisateurs ✅ +- Création automatique au premier login (PAM SSH → upsert SQLite) +- JWT access (15min) + refresh cookie httpOnly (7j) +- Deux niveaux : Admin (groupe sudo/wheel) et Utilisateur +- **Manque** : page profil utilisateur, préférences per-user en DB + +### 3. Détection LXC/VM ✅ +- API Proxmox REST (client Go, InsecureSkipVerify) +- WS `/ws/proxmox` — polling 10s, type `resources_update`, payload `[...]` +- Affichage en temps réel dans les pages Dashboard et Proxmox +- **Fix appliqué** : données immédiates via HTTP + WS pour live updates + +### 4. Dashboard ⚠️ Partiel +- Compteurs LXC running/stopped ✅ +- Liste LXC avec CPU/RAM ✅ +- WebSocket live ✅ +- **Manque** : widgets configurables (add/remove/drag-drop) ← requis par instruction.md +- **Manque** : raccourcis vers services (Grafana, Proxmox, Traefik…) +- **Manque** : personnalisation per-user sauvegardée en DB + +### 5. Thème Neumorphism ✅ +- neu.css (dark/light mode via CSS custom properties) ✅ +- Toggle dark/light dans la navbar ✅ +- Sidebar repliable ✅ +- Responsive (media queries) ✅ +- **Manque** : sidebar gauche/droite per-user ← requis par instruction.md +- **Manque** : LineIcons Duotone (actuellement Unicode symbols) ← requis par instruction.md + +### 6. Gestion des langues ✅ +- fr.json / en.json via Alpine store i18n ✅ +- Sélecteur dans la navbar ✅ +- Sauvegarde dans localStorage ✅ +- **Manque** : sauvegarde per-user en DB + +### 7. Mises à jour paquets ✅ +- Liste par cible (host + LXC) ✅ +- `apt update + apt full-upgrade -y` via SSH ✅ +- Streaming WS live (type `update_output` / `update_done` / `update_error`) ✅ +- **Fix appliqué** : `msg.payload` (pas `msg.data`) +- **Manque** : historique des mises à jour + +### 8. Système de paramètres ✅ +- Onglets Général / SSH / Proxmox API ✅ +- `PUT /api/settings/{key}` per-key ✅ +- Secrets chiffrés AES-256-GCM en DB ✅ +- **Manque** : onglet Apparence (sidebar position, thème par défaut) +- **Manque** : onglet Langues disponibles + +### 9. Mises à jour CORE/modules ❌ Non implémenté +- Vérification nouvelles versions Forgejo +- Affichage changelog +- Détection migrations post-update + +### 10. Store de modules ⚠️ Partiel +- Liste des modules (CORE + optionnels stubs) ✅ +- Toggle enable/disable ✅ +- **Manque** : installation/désinstallation de modules externes +- **Manque** : registre officiel + registres supplémentaires + +### 11. Page post-installation/migration ❌ Non implémenté +- Blocage total de l'accès si migration en attente + +--- + +## Bugs résolus dans cette session + +| Bug | Fix | +|-----|-----| +| CSS cassé au changement de page via Swup | Extraction de tous les styles inline en `css/pages.css` global | +| Dashboard/Proxmox WS bloqué à "⌛ Connexion…" | Type WS était `proxmox_resources` → corrigé en `resources_update` | +| WS lit `msg.data` au lieu de `msg.payload` | Corrigé pour dashboard, proxmox, updates | +| Délai 10s avant 1er affichage données | Ajout fetch HTTP immédiat + WS pour updates live | +| `access_token` null au login | Corrigé en session précédente | +| CSS variables incorrectes (`--bg-primary`) | Corrigé en session précédente | + +--- + +## Non-conformités instruction.md à corriger + +| Règle | État | Priorité | +|-------|------|----------| +| Icônes LineIcons Duotone uniquement | ✅ Intégrés (css/ + toutes les pages) | Haute | +| Dashboard widgets add/remove/drag-drop | ✅ Widget system + DnD natif HTML5 | Haute | +| Sidebar gauche/droite per-user | ✅ `data-sidebar` CSS + profilePage | Moyenne | +| Page profil préférences (thème/sidebar/langue) | ✅ profile.html créée | Moyenne | +| Préférences utilisateur en DB | ❌ localStorage uniquement | Basse | +| Historique mises à jour | ❌ Non affiché | Basse | +| Mises à jour CORE/modules depuis interface | ❌ Non implémenté | Basse | +| Page blocage migration | ❌ Non implémenté | Basse | + +--- + +## Architecture Docker + +``` +core/ +├── backend/ (Go — port 3001 interne) +├── frontend/ (Alpine.js — build → Nginx) +│ ├── js/app.js (stores + composants Alpine) +│ ├── css/neu.css (neumorphism + layout) +│ ├── css/pages.css (styles spécifiques pages) +│ └── *.html (pages statiques) +└── docker-compose.yml +``` + +## Commandes utiles + +```bash +# Build frontend (sur LXC ou machine dev) +cd core/frontend && npm run build + +# Déploiement sur LXC 112 +docker compose pull && docker compose up -d --build + +# Logs +docker compose logs -f backend +docker compose logs -f frontend +``` diff --git a/backend/Dockerfile b/backend/Dockerfile index a6f5e2b..06ca443 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,18 +1,36 @@ # ── Étape 1 : Build du binaire Go ────────────────────────────────────────── +# Build context = core/backend/ (context: ./backend dans docker-compose.yml) +# ARG MODULES : IDs des modules à compiler, séparés par des virgules (ex: "viewLogs,viewServices") FROM golang:1.26-alpine AS builder -# Dépendances de compilation (git pour les modules Go) -RUN apk add --no-cache git +RUN apk add --no-cache git ca-certificates -WORKDIR /build +ARG MODULES="" +ENV MODULES=${MODULES} -# Copier les fichiers de dépendances en premier (optimise le cache Docker) +WORKDIR /workspace/core/backend + +# Copier les sources du CORE (build context = backend/) COPY go.mod go.sum ./ -RUN go mod download - -# Copier tout le code source COPY . . +# Cloner les modules demandés et les ajouter au go.mod. +# Les replace directives utilisent ../../{module} ce qui correspond à /workspace/{module} ✓ +RUN if [ -n "$MODULES" ]; then \ + for mod in $(echo "$MODULES" | tr ',' ' '); do \ + echo "→ Clonage du module $mod..." && \ + git clone "https://git.geronzi.fr/proxmoxPanel/$mod" "/workspace/$mod" && \ + printf "\nrequire git.geronzi.fr/proxmoxPanel/$mod v0.0.0\n" >> go.mod && \ + printf "\nreplace git.geronzi.fr/proxmoxPanel/$mod => ../../$mod\n" >> go.mod; \ + done; \ + fi + +# Générer registered_modules.go avec les imports et appels RegisterModule corrects +RUN go run ./cmd/gen-modules + +# Résoudre et télécharger toutes les dépendances (modules inclus) +RUN go mod tidy && go mod download + # Compiler le binaire de façon statique # -ldflags="-s -w" : supprime les infos de debug pour réduire la taille RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ @@ -21,26 +39,21 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ # ── Étape 2 : Image finale minimale ──────────────────────────────────────── FROM alpine:3.20 -# Certificats CA pour les requêtes HTTPS vers l'API Proxmox RUN apk add --no-cache ca-certificates tzdata -# Créer un utilisateur non-root pour la sécurité +# Utilisateur non-root pour la sécurité RUN addgroup -g 1001 pxp && adduser -u 1001 -G pxp -s /bin/sh -D pxp WORKDIR /app -# Copier le binaire compilé COPY --from=builder /bin/proxmoxpanel /app/proxmoxpanel -# Créer les répertoires de données avec les bonnes permissions RUN mkdir -p /app/data && chown -R pxp:pxp /app USER pxp -# Port d'écoute du backend EXPOSE 3001 -# Variables d'environnement par défaut ENV DATA_DIR=/app/data \ LISTEN_ADDR=:3001 \ APP_ENV=production diff --git a/backend/cmd/gen-modules/main.go b/backend/cmd/gen-modules/main.go new file mode 100644 index 0000000..c6ca334 --- /dev/null +++ b/backend/cmd/gen-modules/main.go @@ -0,0 +1,104 @@ +// cmd/gen-modules génère registered_modules.go à partir de la variable d'env MODULES. +// Appelé pendant le build Docker : go run ./cmd/gen-modules +// MODULES = liste d'IDs séparés par des virgules (ex: "viewLogs,viewServices") +// Le fichier généré déclare RegisterModules(*modules.Loader) qui enregistre chaque module. +package main + +import ( + "fmt" + "os" + "strings" + "text/template" +) + +const outputFile = "registered_modules.go" + +// moduleDef décrit un module à importer. +type moduleDef struct { + ID string // ex: "viewLogs" + Alias string // ex: "viewlogs" (alias Go valide) + Pkg string // ex: "git.geronzi.fr/proxmoxPanel/viewLogs" +} + +// tplNoModules : fichier généré quand aucun module n'est installé. +const tplNoModules = `// Code généré automatiquement par cmd/gen-modules — ne pas modifier manuellement. +// Régénéré lors du build Docker avec la liste des modules compilés. +package main + +import "git.geronzi.fr/proxmoxPanel/core/backend/modules" + +// RegisterModules enregistre les modules compilés dans le binaire. +func RegisterModules(l *modules.Loader) {} +` + +// tplWithModules : fichier généré avec des modules. +const tplWithModules = `// Code généré automatiquement par cmd/gen-modules — ne pas modifier manuellement. +// Régénéré lors du build Docker avec la liste des modules compilés. +package main + +import ( + "git.geronzi.fr/proxmoxPanel/core/backend/modules" +{{- range .}} + {{.Alias}} "{{.Pkg}}" +{{- end}} +) + +// RegisterModules enregistre les modules compilés dans le binaire. +func RegisterModules(l *modules.Loader) { +{{- range .}} + l.RegisterModule({{.Alias}}.New()) +{{- end}} +} +` + +func main() { + modulesEnv := strings.TrimSpace(os.Getenv("MODULES")) + + // Pas de modules : générer la version vide + if modulesEnv == "" { + if err := os.WriteFile(outputFile, []byte(tplNoModules), 0644); err != nil { + fmt.Fprintf(os.Stderr, "Erreur écriture %s : %v\n", outputFile, err) + os.Exit(1) + } + fmt.Printf("Généré %s (aucun module)\n", outputFile) + return + } + + // Parser la liste des modules + ids := strings.Split(modulesEnv, ",") + defs := make([]moduleDef, 0, len(ids)) + for _, id := range ids { + id = strings.TrimSpace(id) + if id == "" { + continue + } + // Alias Go = ID en minuscules sans tirets ni underscores + alias := strings.ToLower(strings.NewReplacer("-", "", "_", "").Replace(id)) + defs = append(defs, moduleDef{ + ID: id, + Alias: alias, + Pkg: "git.geronzi.fr/proxmoxPanel/" + id, + }) + } + + // Générer le fichier avec les imports et les appels RegisterModule + tmpl, err := template.New("modules").Parse(tplWithModules) + if err != nil { + fmt.Fprintf(os.Stderr, "Erreur template : %v\n", err) + os.Exit(1) + } + + f, err := os.Create(outputFile) + if err != nil { + fmt.Fprintf(os.Stderr, "Erreur création %s : %v\n", outputFile, err) + os.Exit(1) + } + defer f.Close() + + if err := tmpl.Execute(f, defs); err != nil { + fmt.Fprintf(os.Stderr, "Erreur génération : %v\n", err) + os.Exit(1) + } + + fmt.Printf("Généré %s avec %d module(s) : %s\n", outputFile, len(defs), modulesEnv) +} diff --git a/backend/internal/api/auth.go b/backend/internal/api/auth.go index 92359e1..7fdfa46 100644 --- a/backend/internal/api/auth.go +++ b/backend/internal/api/auth.go @@ -5,6 +5,7 @@ import ( "crypto/sha256" "database/sql" "encoding/hex" + "fmt" "log" "net/http" "time" @@ -12,6 +13,7 @@ import ( "git.geronzi.fr/proxmoxPanel/core/backend/internal/audit" "git.geronzi.fr/proxmoxPanel/core/backend/internal/auth" "git.geronzi.fr/proxmoxPanel/core/backend/internal/db" + "github.com/go-chi/chi/v5" ) // AuthHandler contient les handlers d'authentification. @@ -106,20 +108,28 @@ func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) { // Stocker le hash du refresh token en base pour permettre la révocation tokenHash := hashToken(refreshToken) expiry := time.Now().Add(auth.RefreshTokenDuration()) - h.db.Exec(` - INSERT INTO refresh_tokens (user_id, token_hash, expires_at) VALUES (?, ?, ?) - `, userID, tokenHash, expiry) + if _, err := h.db.Exec(` + INSERT INTO refresh_tokens (user_id, token_hash, expires_at, user_agent, ip, last_used_at) + VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + `, userID, tokenHash, expiry, r.UserAgent(), clientIP(r)); err != nil { + log.Printf("[auth/login] ERREUR stockage refresh token — user=%s userID=%d err=%v", body.Username, userID, err) + JSONError(w, "Erreur création session", http.StatusInternalServerError) + return + } // Mettre à jour la date de dernier login h.db.Exec(`UPDATE users SET last_login_at = CURRENT_TIMESTAMP WHERE id = ?`, userID) // Cookie httpOnly pour le refresh token + // Secure=true si TLS direct ou si derrière un proxy (Traefik) qui a terminé TLS + isHTTPS := r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" + // Path élargi à /api/auth/ pour que le cookie soit envoyé au logout aussi http.SetCookie(w, &http.Cookie{ Name: "pxp_refresh", Value: refreshToken, - Path: "/api/auth/refresh", + Path: "/api/auth/", HttpOnly: true, - Secure: r.TLS != nil, + Secure: isHTTPS, SameSite: http.SameSiteStrictMode, Expires: expiry, }) @@ -137,14 +147,22 @@ func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) { }) } -// Logout invalide la session de l'utilisateur. +// Logout invalide la session courante de l'utilisateur. // POST /api/auth/logout func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) { claims := GetClaims(r) - // Supprimer tous les refresh tokens de cet utilisateur if claims != nil { - h.db.Exec(`DELETE FROM refresh_tokens WHERE user_id = ?`, claims.UserID) + // Supprimer uniquement le token de CETTE session (via cookie pxp_refresh) + // Le cookie a Path=/api/auth/ donc il est bien envoyé sur ce endpoint. + if cookie, err := r.Cookie("pxp_refresh"); err == nil { + tokenHash := hashToken(cookie.Value) + h.db.Exec(`DELETE FROM refresh_tokens WHERE token_hash = ? AND user_id = ?`, + tokenHash, claims.UserID) + } else { + // Pas de cookie (session dégradée ou ancien cookie path) → supprimer toutes les sessions + h.db.Exec(`DELETE FROM refresh_tokens WHERE user_id = ?`, claims.UserID) + } h.auditLogger.Log(&claims.UserID, claims.Username, "logout", "", nil, clientIP(r)) } @@ -152,7 +170,7 @@ func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "pxp_refresh", Value: "", - Path: "/api/auth/refresh", + Path: "/api/auth/", HttpOnly: true, Expires: time.Unix(0, 0), MaxAge: -1, @@ -164,14 +182,18 @@ func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) { // Refresh renouvelle l'access token via le refresh token (cookie httpOnly). // POST /api/auth/refresh func (h *AuthHandler) Refresh(w http.ResponseWriter, r *http.Request) { + ip := clientIP(r) + cookie, err := r.Cookie("pxp_refresh") if err != nil { + log.Printf("[auth/refresh] cookie absent — ip=%s err=%v", ip, err) JSONError(w, "Refresh token manquant", http.StatusUnauthorized) return } userID, err := h.jwtManager.ValidateRefreshToken(cookie.Value) if err != nil { + log.Printf("[auth/refresh] JWT invalide — ip=%s err=%v", ip, err) JSONError(w, "Refresh token invalide ou expiré", http.StatusUnauthorized) return } @@ -181,15 +203,26 @@ func (h *AuthHandler) Refresh(w http.ResponseWriter, r *http.Request) { var count int h.db.QueryRow(`SELECT COUNT(*) FROM refresh_tokens WHERE user_id = ? AND token_hash = ? AND expires_at > CURRENT_TIMESTAMP`, userID, tokenHash).Scan(&count) if count == 0 { + // Diagnostic : vérifier si le token existe mais avec un mauvais user_id + var anyCount int + h.db.QueryRow(`SELECT COUNT(*) FROM refresh_tokens WHERE token_hash = ?`, tokenHash).Scan(&anyCount) + log.Printf("[auth/refresh] token non trouvé en base — userID=%d tokenHash=%s anyMatch=%d ip=%s", + userID, tokenHash[:8], anyCount, ip) JSONError(w, "Session expirée ou révoquée", http.StatusUnauthorized) return } + log.Printf("[auth/refresh] token valide — userID=%d ip=%s", userID, ip) + + // Mettre à jour la date de dernière utilisation + h.db.Exec(`UPDATE refresh_tokens SET last_used_at = CURRENT_TIMESTAMP WHERE token_hash = ?`, tokenHash) + // Récupérer les infos utilisateur var username string var isAdmin int err = h.db.QueryRow(`SELECT username, is_admin FROM users WHERE id = ?`, userID).Scan(&username, &isAdmin) if err != nil { + log.Printf("[auth/refresh] utilisateur introuvable — userID=%d ip=%s err=%v", userID, ip, err) JSONError(w, "Utilisateur introuvable", http.StatusUnauthorized) return } @@ -288,21 +321,104 @@ func (h *AuthHandler) upsertUser(info *auth.UserInfo) (int64, error) { } // Mise à jour du statut admin à chaque connexion (peut changer côté Linux) - result, err := h.db.Exec(` + if _, err := h.db.Exec(` INSERT INTO users (username, is_admin) VALUES (?, ?) ON CONFLICT(username) DO UPDATE SET is_admin = excluded.is_admin - `, info.Username, isAdmin) - if err != nil { + `, info.Username, isAdmin); err != nil { return 0, err } - // Tenter de récupérer l'ID (insertions ou update) - id, err := result.LastInsertId() - if err != nil || id == 0 { - // En cas de ON CONFLICT DO UPDATE, LastInsertId peut retourner 0 - err = h.db.QueryRow(`SELECT id FROM users WHERE username = ?`, info.Username).Scan(&id) + // Toujours faire un SELECT explicite : avec ON CONFLICT DO UPDATE sur une ligne + // existante, LastInsertId() peut retourner un rowid obsolète (comportement SQLite). + var id int64 + if err := h.db.QueryRow(`SELECT id FROM users WHERE username = ?`, info.Username).Scan(&id); err != nil { + return 0, fmt.Errorf("utilisateur introuvable après upsert: %w", err) } - return id, err + return id, nil +} + +// GetSessions retourne les sessions actives de l'utilisateur connecté. +// GET /api/auth/sessions +func (h *AuthHandler) GetSessions(w http.ResponseWriter, r *http.Request) { + claims := GetClaims(r) + if claims == nil { + JSONError(w, "Non authentifié", http.StatusUnauthorized) + return + } + + rows, err := h.db.Query(` + SELECT id, user_agent, ip, created_at, last_used_at, expires_at, token_hash + FROM refresh_tokens + WHERE user_id = ? AND expires_at > CURRENT_TIMESTAMP + ORDER BY COALESCE(last_used_at, created_at) DESC + `, claims.UserID) + if err != nil { + JSONError(w, "Erreur récupération sessions", http.StatusInternalServerError) + return + } + defer rows.Close() + + // Hash du cookie courant pour marquer "session actuelle" + currentHash := "" + if cookie, err := r.Cookie("pxp_refresh"); err == nil { + currentHash = hashToken(cookie.Value) + } + + type Session struct { + ID int64 `json:"id"` + UserAgent string `json:"user_agent"` + IP string `json:"ip"` + CreatedAt string `json:"created_at"` + LastUsedAt *string `json:"last_used_at"` + ExpiresAt string `json:"expires_at"` + IsCurrent bool `json:"is_current"` + } + + sessions := []Session{} + for rows.Next() { + var s Session + var tokenHash string + var createdAt, expiresAt sql.NullString + var lastUsedAt sql.NullString + if err := rows.Scan(&s.ID, &s.UserAgent, &s.IP, &createdAt, &lastUsedAt, &expiresAt, &tokenHash); err != nil { + log.Printf("[GetSessions] scan error userID=%d: %v", claims.UserID, err) + continue + } + s.CreatedAt = createdAt.String + s.ExpiresAt = expiresAt.String + if lastUsedAt.Valid && lastUsedAt.String != "" { + s.LastUsedAt = &lastUsedAt.String + } + s.IsCurrent = currentHash != "" && tokenHash == currentHash + sessions = append(sessions, s) + } + + JSONResponse(w, http.StatusOK, sessions) +} + +// RevokeSession révoque une session (refresh token) de l'utilisateur connecté. +// DELETE /api/auth/sessions/{id} +func (h *AuthHandler) RevokeSession(w http.ResponseWriter, r *http.Request) { + claims := GetClaims(r) + if claims == nil { + JSONError(w, "Non authentifié", http.StatusUnauthorized) + return + } + + sessionID := chi.URLParam(r, "id") + res, err := h.db.Exec(`DELETE FROM refresh_tokens WHERE id = ? AND user_id = ?`, sessionID, claims.UserID) + if err != nil { + JSONError(w, "Erreur révocation session", http.StatusInternalServerError) + return + } + n, _ := res.RowsAffected() + if n == 0 { + JSONError(w, "Session introuvable", http.StatusNotFound) + return + } + + h.auditLogger.Log(&claims.UserID, claims.Username, "session_revoked", sessionID, nil, clientIP(r)) + JSONResponse(w, http.StatusOK, map[string]string{"message": "Session révoquée"}) } // hashToken crée un hash SHA-256 d'un token pour le stockage en base. diff --git a/backend/internal/api/settings.go b/backend/internal/api/settings.go index c78244d..e7588df 100644 --- a/backend/internal/api/settings.go +++ b/backend/internal/api/settings.go @@ -2,12 +2,19 @@ package api import ( + "context" + "encoding/json" + "fmt" + "io" "net/http" + "os" "strconv" + "time" "git.geronzi.fr/proxmoxPanel/core/backend/internal/audit" "git.geronzi.fr/proxmoxPanel/core/backend/internal/crypto" "git.geronzi.fr/proxmoxPanel/core/backend/internal/db" + dockerclient "git.geronzi.fr/proxmoxPanel/core/backend/internal/docker" "git.geronzi.fr/proxmoxPanel/core/backend/internal/logbuffer" "github.com/go-chi/chi/v5" ) @@ -17,11 +24,12 @@ type SettingsHandler struct { db *db.DB auditLogger *audit.Logger encryptor *crypto.Encryptor + docker *dockerclient.Client } // NewSettingsHandler crée un SettingsHandler. -func NewSettingsHandler(database *db.DB, auditLog *audit.Logger, enc *crypto.Encryptor) *SettingsHandler { - return &SettingsHandler{db: database, auditLogger: auditLog, encryptor: enc} +func NewSettingsHandler(database *db.DB, auditLog *audit.Logger, enc *crypto.Encryptor, docker *dockerclient.Client) *SettingsHandler { + return &SettingsHandler{db: database, auditLogger: auditLog, encryptor: enc, docker: docker} } // paramètres publics (non-sensibles) accessibles par les admins. @@ -32,6 +40,7 @@ var publicSettings = []string{ "proxmox_url", "ssh_host", "ssh_username", + "dashboard_shortcuts", } // paramètres sensibles : modifiables en écriture seule, stockés chiffrés. @@ -122,11 +131,27 @@ func (h *SettingsHandler) UpdateSetting(w http.ResponseWriter, r *http.Request) JSONResponse(w, http.StatusOK, map[string]string{"message": "Paramètre mis à jour"}) } +// moduleResp représente un module dans les réponses API, incluant les champs de navigation. +type moduleResp struct { + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Version string `json:"version"` + IsCore bool `json:"is_core"` + IsEnabled bool `json:"is_enabled"` + HasBackend bool `json:"has_backend"` + NavHref string `json:"nav_href"` + NavIcon string `json:"nav_icon"` + NavColor string `json:"nav_color"` + NavLabelKey string `json:"nav_label_key"` +} + // GetModules retourne la liste de tous les modules et leur état. // GET /api/modules func (h *SettingsHandler) GetModules(w http.ResponseWriter, r *http.Request) { rows, err := h.db.Query(` - SELECT id, name, description, version, is_core, is_enabled, installed_at + SELECT id, name, description, version, is_core, is_enabled, has_backend, + COALESCE(nav_href,''), COALESCE(nav_icon,''), COALESCE(nav_color,''), COALESCE(nav_label_key,'') FROM modules ORDER BY is_core DESC, name ASC `) if err != nil { @@ -135,25 +160,15 @@ func (h *SettingsHandler) GetModules(w http.ResponseWriter, r *http.Request) { } defer rows.Close() - type module struct { - ID string `json:"id"` - Name string `json:"name"` - Description string `json:"description"` - Version string `json:"version"` - IsCore bool `json:"is_core"` - IsEnabled bool `json:"is_enabled"` - InstalledAt *string `json:"installed_at,omitempty"` - } - - var modules []module + var modules []moduleResp for rows.Next() { - var m module - var isCore, isEnabled int - var installedAt *string - rows.Scan(&m.ID, &m.Name, &m.Description, &m.Version, &isCore, &isEnabled, &installedAt) + var m moduleResp + var isCore, isEnabled, hasBackend int + rows.Scan(&m.ID, &m.Name, &m.Description, &m.Version, &isCore, &isEnabled, &hasBackend, + &m.NavHref, &m.NavIcon, &m.NavColor, &m.NavLabelKey) m.IsCore = isCore == 1 m.IsEnabled = isEnabled == 1 - m.InstalledAt = installedAt + m.HasBackend = hasBackend == 1 modules = append(modules, m) } @@ -178,7 +193,10 @@ func (h *SettingsHandler) EnableModule(w http.ResponseWriter, r *http.Request) { } h.auditLogger.Log(&claims.UserID, claims.Username, "module_enable", id, nil, clientIP(r)) - JSONResponse(w, http.StatusOK, map[string]string{"message": "Module activé (redémarrage requis pour prendre effet)"}) + + // Si le module a du code backend, redémarrer le container pour que LoadActive() le prenne en compte. + restart := h.triggerRestartIfBackend(id) + JSONResponse(w, http.StatusOK, map[string]interface{}{"message": "Module activé", "restarting": restart}) } // DisableModule désactive un module (ne peut pas désactiver les modules CORE). @@ -200,7 +218,43 @@ func (h *SettingsHandler) DisableModule(w http.ResponseWriter, r *http.Request) h.db.Exec(`UPDATE modules SET is_enabled = 0 WHERE id = ?`, id) h.auditLogger.Log(&claims.UserID, claims.Username, "module_disable", id, nil, clientIP(r)) - JSONResponse(w, http.StatusOK, map[string]string{"message": "Module désactivé"}) + + restart := h.triggerRestartIfBackend(id) + JSONResponse(w, http.StatusOK, map[string]interface{}{"message": "Module désactivé", "restarting": restart}) +} + +// triggerRestartIfBackend déclenche un redémarrage Docker si le module a du code backend. +// Retourne true si un redémarrage a été déclenché. +func (h *SettingsHandler) triggerRestartIfBackend(moduleID string) bool { + if h.docker == nil || !h.docker.Available() { + return false + } + var hasBackend int + if err := h.db.QueryRow(`SELECT has_backend FROM modules WHERE id = ?`, moduleID).Scan(&hasBackend); err != nil { + return false + } + if hasBackend == 1 { + h.docker.Restart() + return true + } + return false +} + +// enabledBackendModuleIDs retourne les IDs de tous les modules installés avec has_backend=1. +// Ces modules doivent être compilés dans le binaire lors d'un rebuild. +func (h *SettingsHandler) enabledBackendModuleIDs() ([]string, error) { + rows, err := h.db.Query(`SELECT id FROM modules WHERE has_backend = 1`) + if err != nil { + return nil, err + } + defer rows.Close() + var ids []string + for rows.Next() { + var id string + rows.Scan(&id) + ids = append(ids, id) + } + return ids, nil } // GetLogs retourne les dernières lignes du log applicatif (tampon mémoire). @@ -255,3 +309,277 @@ func (h *SettingsHandler) GetAuditLog(w http.ResponseWriter, r *http.Request) { JSONResponse(w, http.StatusOK, entries) } + +// RegistryModule représente un module disponible dans le store Forgejo. +type RegistryModule struct { + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + RepoURL string `json:"repo_url"` + Installed bool `json:"installed"` +} + +// registryResp est la réponse unifiée de /api/registry/modules. +type registryResp struct { + Modules []RegistryModule `json:"modules"` + Error string `json:"error,omitempty"` +} + +// forgejoClient est un client HTTP avec timeout pour l'API Forgejo. +var forgejoClient = &http.Client{Timeout: 10 * time.Second} + +// GetRegistryModules liste les repos de l'organisation sur Forgejo. +// Utilise GET /api/v1/orgs/{org}/repos (retourne un tableau JSON direct). +// Répond toujours 200 — l'erreur éventuelle est dans le champ "error". +// GET /api/registry/modules +func (h *SettingsHandler) GetRegistryModules(w http.ResponseWriter, r *http.Request) { + // Récupérer les modules déjà installés en DB + rows, err := h.db.Query(`SELECT id FROM modules`) + if err != nil { + JSONResponse(w, http.StatusOK, registryResp{Modules: []RegistryModule{}, Error: "Erreur lecture DB : " + err.Error()}) + return + } + installed := make(map[string]bool) + for rows.Next() { + var id string + rows.Scan(&id) + installed[id] = true + } + rows.Close() + + // Base URL et organisation configurables via variables d'environnement + forgejoURL := envOr("FORGEJO_URL", "https://git.geronzi.fr") + forgejoOrg := envOr("FORGEJO_ORG", "proxmoxPanel") + + // Appel à l'API Forgejo : /api/v1/orgs/{org}/repos retourne un tableau JSON direct + apiURL := fmt.Sprintf("%s/api/v1/orgs/%s/repos?limit=50", forgejoURL, forgejoOrg) + ctx, cancel := context.WithTimeout(r.Context(), 10*time.Second) + defer cancel() + + req, _ := http.NewRequestWithContext(ctx, "GET", apiURL, nil) + resp, err := forgejoClient.Do(req) + if err != nil { + JSONResponse(w, http.StatusOK, registryResp{ + Modules: []RegistryModule{}, + Error: fmt.Sprintf("Impossible de joindre le store (%s) : %v", forgejoURL, err), + }) + return + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + body, _ := io.ReadAll(resp.Body) + JSONResponse(w, http.StatusOK, registryResp{ + Modules: []RegistryModule{}, + Error: fmt.Sprintf("Store a répondu HTTP %d : %s", resp.StatusCode, string(body)), + }) + return + } + + body, _ := io.ReadAll(resp.Body) + + // /api/v1/orgs/{org}/repos retourne directement un tableau []repo + var repos []struct { + Name string `json:"name"` + Description string `json:"description"` + HTMLURL string `json:"html_url"` + } + if err := json.Unmarshal(body, &repos); err != nil { + JSONResponse(w, http.StatusOK, registryResp{ + Modules: []RegistryModule{}, + Error: fmt.Sprintf("Réponse store invalide : %v", err), + }) + return + } + + modules := make([]RegistryModule, 0, len(repos)) + for _, repo := range repos { + if repo.Name == "core" { + continue + } + modules = append(modules, RegistryModule{ + ID: repo.Name, + Name: repo.Name, + Description: repo.Description, + RepoURL: repo.HTMLURL, + Installed: installed[repo.Name], + }) + } + + JSONResponse(w, http.StatusOK, registryResp{Modules: modules}) +} + +// envOr retourne la valeur de la variable d'environnement ou la valeur par défaut. +func envOr(key, def string) string { + if v := os.Getenv(key); v != "" { + return v + } + return def +} + +// moduleJSON représente le fichier module.json d'un module. +type moduleJSON struct { + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Version string `json:"version"` + NavHref string `json:"nav_href"` + NavIcon string `json:"nav_icon"` + NavColor string `json:"nav_color"` + NavLabelKey string `json:"nav_label_key"` + CoreMinVersion string `json:"core_min_version"` + HasBackend bool `json:"has_backend"` // true = nécessite un rebuild Docker pour compilation +} + +// InstallRegistryModule installe un module depuis le store Forgejo. +// POST /api/registry/modules/{id}/install +func (h *SettingsHandler) InstallRegistryModule(w http.ResponseWriter, r *http.Request) { + claims := GetClaims(r) + id := chi.URLParam(r, "id") + + // Récupérer module.json depuis Forgejo + forgejoURL := envOr("FORGEJO_URL", "https://git.geronzi.fr") + forgejoOrg := envOr("FORGEJO_ORG", "proxmoxPanel") + // Essayer d'abord la branche master puis main + moduleJSONURL := fmt.Sprintf("%s/api/v1/repos/%s/%s/raw/module.json?ref=master", forgejoURL, forgejoOrg, id) + reqCtx, cancel := context.WithTimeout(r.Context(), 10*time.Second) + defer cancel() + req, _ := http.NewRequestWithContext(reqCtx, "GET", moduleJSONURL, nil) + resp, err := forgejoClient.Do(req) + if err == nil && resp.StatusCode == http.StatusNotFound { + // Retenter sur la branche main + resp.Body.Close() + moduleJSONURL = fmt.Sprintf("%s/api/v1/repos/%s/%s/raw/module.json?ref=main", forgejoURL, forgejoOrg, id) + req2, _ := http.NewRequestWithContext(reqCtx, "GET", moduleJSONURL, nil) + resp, err = forgejoClient.Do(req2) + } + if err != nil { + JSONError(w, fmt.Sprintf("Impossible d'accéder au module %s : %v", id, err), http.StatusBadGateway) + return + } + defer resp.Body.Close() + + if resp.StatusCode == http.StatusNotFound { + JSONError(w, fmt.Sprintf("module.json introuvable pour %s", id), http.StatusNotFound) + return + } + if resp.StatusCode != http.StatusOK { + JSONError(w, fmt.Sprintf("Erreur récupération module.json : HTTP %d", resp.StatusCode), http.StatusBadGateway) + return + } + + body, err := io.ReadAll(resp.Body) + if err != nil { + JSONError(w, "Erreur lecture module.json", http.StatusBadGateway) + return + } + + var mod moduleJSON + if err := json.Unmarshal(body, &mod); err != nil { + JSONError(w, "Erreur parsing module.json", http.StatusBadGateway) + return + } + + // Valider l'ID + if mod.ID == "" { + mod.ID = id + } + if mod.Version == "" { + mod.Version = "1.0.0" + } + + // URL du repo + repoURL := fmt.Sprintf("%s/%s/%s", envOr("FORGEJO_URL", "https://git.geronzi.fr"), envOr("FORGEJO_ORG", "proxmoxPanel"), id) + + hasBackend := 0 + if mod.HasBackend { + hasBackend = 1 + } + + // Insérer ou remplacer en DB + _, err = h.db.Exec(` + INSERT INTO modules (id, name, description, version, is_core, is_enabled, has_backend, + nav_href, nav_icon, nav_color, nav_label_key, repo_url, installed_at) + VALUES (?, ?, ?, ?, 0, 0, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP) + ON CONFLICT(id) DO UPDATE SET + name=excluded.name, description=excluded.description, version=excluded.version, + has_backend=excluded.has_backend, + nav_href=excluded.nav_href, nav_icon=excluded.nav_icon, nav_color=excluded.nav_color, + nav_label_key=excluded.nav_label_key, repo_url=excluded.repo_url, + installed_at=CURRENT_TIMESTAMP + `, mod.ID, mod.Name, mod.Description, mod.Version, hasBackend, + mod.NavHref, mod.NavIcon, mod.NavColor, mod.NavLabelKey, repoURL) + if err != nil { + JSONError(w, fmt.Sprintf("Erreur installation module : %v", err), http.StatusInternalServerError) + return + } + + h.auditLogger.Log(&claims.UserID, claims.Username, "module_install", mod.ID, + map[string]string{"version": mod.Version, "has_backend": fmt.Sprintf("%v", mod.HasBackend)}, clientIP(r)) + + // Si le module a du code backend : déclencher un rebuild Docker. + // Le rebuild compile le nouveau module dans le binaire et recrée le container. + rebuilding := false + if mod.HasBackend && h.docker != nil && h.docker.Available() { + moduleIDs, err := h.enabledBackendModuleIDs() + if err == nil { + h.docker.RebuildAndRestart(moduleIDs) + rebuilding = true + } + } + + JSONResponse(w, http.StatusAccepted, map[string]interface{}{ + "message": fmt.Sprintf("Module %s installé", mod.ID), + "rebuilding": rebuilding, + }) +} + +// ── Réparation ──────────────────────────────────────────────────────────── + +// repairModule est une entrée retournée par GetRepairStatus. +type repairModule struct { + ID string `json:"id"` + Name string `json:"name"` + IsEnabled bool `json:"is_enabled"` + HasBackend bool `json:"has_backend"` + InstalledAt string `json:"installed_at"` +} + +// GetRepairStatus retourne les modules non-core présents en DB (potentiellement fantômes). +// GET /api/repair/modules +func (h *SettingsHandler) GetRepairStatus(w http.ResponseWriter, r *http.Request) { + rows, err := h.db.Query( + `SELECT id, name, is_enabled, has_backend, COALESCE(installed_at,'') FROM modules WHERE is_core = 0`) + if err != nil { + JSONResponse(w, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + defer rows.Close() + + modules := []repairModule{} + for rows.Next() { + var m repairModule + rows.Scan(&m.ID, &m.Name, &m.IsEnabled, &m.HasBackend, &m.InstalledAt) + modules = append(modules, m) + } + JSONResponse(w, http.StatusOK, map[string]interface{}{"modules": modules}) +} + +// ResetModule supprime un module non-core de la DB (permet de le réinstaller proprement). +// DELETE /api/repair/modules/{id} +func (h *SettingsHandler) ResetModule(w http.ResponseWriter, r *http.Request) { + id := chi.URLParam(r, "id") + res, err := h.db.Exec(`DELETE FROM modules WHERE id = ? AND is_core = 0`, id) + if err != nil { + JSONResponse(w, http.StatusInternalServerError, map[string]string{"error": err.Error()}) + return + } + n, _ := res.RowsAffected() + if n == 0 { + JSONResponse(w, http.StatusNotFound, map[string]string{"error": "module introuvable ou module core"}) + return + } + claims := GetClaims(r) + h.auditLogger.Log(&claims.UserID, claims.Username, "repair.reset_module", id, nil, clientIP(r)) + JSONResponse(w, http.StatusOK, map[string]string{"message": "Module supprimé de la DB"}) +} diff --git a/backend/internal/db/db.go b/backend/internal/db/db.go index 76f67ed..4cf5d58 100644 --- a/backend/internal/db/db.go +++ b/backend/internal/db/db.go @@ -53,6 +53,11 @@ func Open(dataDir string) (*DB, error) { return nil, fmt.Errorf("migrations : %w", err) } + // Réparer les colonnes manquantes (bases créées avant le fix multi-statements) + if err := db.repairSchema(); err != nil { + return nil, fmt.Errorf("réparation schéma : %w", err) + } + return db, nil } @@ -126,9 +131,17 @@ func (db *DB) migrate() error { return fmt.Errorf("transaction migration %s : %w", m.name, err) } - if _, err := tx.Exec(string(content)); err != nil { - tx.Rollback() - return fmt.Errorf("exécution migration %s : %w", m.name, err) + // Splitter par ";" pour exécuter chaque statement séparément + // (SQLite / database/sql n'exécute qu'un seul statement par Exec) + for _, stmt := range strings.Split(string(content), ";") { + stmt = strings.TrimSpace(stmt) + if stmt == "" { + continue + } + if _, err := tx.Exec(stmt); err != nil { + tx.Rollback() + return fmt.Errorf("exécution migration %s : %w", m.name, err) + } } // Mettre à jour la version (la migration 001 l'insère elle-même, pas besoin de le refaire) @@ -183,3 +196,57 @@ func (db *DB) IsInstalled() (bool, error) { } return v == "true", nil } + +// repairSchema ajoute les colonnes manquantes dans les bases créées avant le fix +// multi-statements des migrations. Migration 002 était partiellement appliquée +// (seul user_agent ajouté) sur les bases existantes. +func (db *DB) repairSchema() error { + type col struct { + table, name, def string + } + needed := []col{ + {"refresh_tokens", "user_agent", "TEXT NOT NULL DEFAULT ''"}, + {"refresh_tokens", "ip", "TEXT NOT NULL DEFAULT ''"}, + {"refresh_tokens", "last_used_at", "DATETIME"}, + // Migration 005 : colonnes de navigation des modules (ajout idempotent) + {"modules", "nav_href", "TEXT NOT NULL DEFAULT ''"}, + {"modules", "nav_icon", "TEXT NOT NULL DEFAULT ''"}, + {"modules", "nav_color", "TEXT NOT NULL DEFAULT ''"}, + {"modules", "nav_label_key", "TEXT NOT NULL DEFAULT ''"}, + {"modules", "repo_url", "TEXT NOT NULL DEFAULT ''"}, + } + for _, c := range needed { + if err := db.ensureColumn(c.table, c.name, c.def); err != nil { + return err + } + } + return nil +} + +// ensureColumn ajoute une colonne à une table si elle n'existe pas déjà. +func (db *DB) ensureColumn(table, column, definition string) error { + rows, err := db.Query(fmt.Sprintf("PRAGMA table_info(%s)", table)) + if err != nil { + return fmt.Errorf("PRAGMA table_info(%s) : %w", table, err) + } + defer rows.Close() + + for rows.Next() { + var cid int + var name, colType string + var notNull, pk int + var dflt sql.NullString + if err := rows.Scan(&cid, &name, &colType, ¬Null, &dflt, &pk); err != nil { + return err + } + if name == column { + return nil // déjà présente + } + } + if err := rows.Err(); err != nil { + return err + } + + _, err = db.Exec(fmt.Sprintf("ALTER TABLE %s ADD COLUMN %s %s", table, column, definition)) + return err +} diff --git a/backend/internal/db/migrations/002_sessions.sql b/backend/internal/db/migrations/002_sessions.sql new file mode 100644 index 0000000..e56b4e0 --- /dev/null +++ b/backend/internal/db/migrations/002_sessions.sql @@ -0,0 +1,6 @@ +-- Migration 002 : Infos de session dans refresh_tokens +-- Ajout user_agent, ip, last_used_at pour la gestion des sessions + +ALTER TABLE refresh_tokens ADD COLUMN user_agent TEXT NOT NULL DEFAULT ''; +ALTER TABLE refresh_tokens ADD COLUMN ip TEXT NOT NULL DEFAULT ''; +ALTER TABLE refresh_tokens ADD COLUMN last_used_at DATETIME; diff --git a/backend/internal/db/migrations/003_modules_extra.sql b/backend/internal/db/migrations/003_modules_extra.sql new file mode 100644 index 0000000..4c0397d --- /dev/null +++ b/backend/internal/db/migrations/003_modules_extra.sql @@ -0,0 +1,4 @@ +-- Migration 003 : Ajout des modules logs et services +INSERT OR IGNORE INTO modules (id, name, description, version, is_core, is_enabled) VALUES + ('logs', 'Journaux', 'Consultation des journaux système via journalctl', '1.0.0', 0, 1), + ('services', 'Services', 'Gestion des services systemd (start/stop/restart)', '1.0.0', 0, 1); diff --git a/backend/internal/db/migrations/004_enable_modules.sql b/backend/internal/db/migrations/004_enable_modules.sql new file mode 100644 index 0000000..67f9f4a --- /dev/null +++ b/backend/internal/db/migrations/004_enable_modules.sql @@ -0,0 +1,6 @@ +-- Migration 004 : Activation des modules logs et services +-- Les entrées peuvent exister avec is_enabled=0 (INSERT OR IGNORE de la 003 ignoré) +INSERT INTO modules (id, name, description, version, is_core, is_enabled) VALUES + ('logs', 'Journaux', 'Consultation des journaux système via journalctl', '1.0.0', 0, 1), + ('services', 'Services', 'Gestion des services systemd (start/stop/restart)', '1.0.0', 0, 1) +ON CONFLICT(id) DO UPDATE SET is_enabled = 1; diff --git a/backend/internal/db/migrations/005_module_nav_store.sql b/backend/internal/db/migrations/005_module_nav_store.sql new file mode 100644 index 0000000..6457cb3 --- /dev/null +++ b/backend/internal/db/migrations/005_module_nav_store.sql @@ -0,0 +1,10 @@ +-- Migration 005 : colonnes de navigation pour les modules + nettoyage services/logs +-- Supprimer les modules services et logs (maintenant dans des repos séparés) +DELETE FROM modules WHERE id IN ('services', 'logs'); + +-- Ajouter les colonnes de navigation +ALTER TABLE modules ADD COLUMN nav_href TEXT NOT NULL DEFAULT ''; +ALTER TABLE modules ADD COLUMN nav_icon TEXT NOT NULL DEFAULT ''; +ALTER TABLE modules ADD COLUMN nav_color TEXT NOT NULL DEFAULT ''; +ALTER TABLE modules ADD COLUMN nav_label_key TEXT NOT NULL DEFAULT ''; +ALTER TABLE modules ADD COLUMN repo_url TEXT NOT NULL DEFAULT '' diff --git a/backend/internal/db/migrations/006_has_backend.sql b/backend/internal/db/migrations/006_has_backend.sql new file mode 100644 index 0000000..8ba294f --- /dev/null +++ b/backend/internal/db/migrations/006_has_backend.sql @@ -0,0 +1,3 @@ +-- Migration 006 : ajout colonne has_backend aux modules +-- Indique si le module contient du code Go backend (nécessite un rebuild Docker pour installation). +ALTER TABLE modules ADD COLUMN has_backend INTEGER NOT NULL DEFAULT 0; diff --git a/backend/internal/docker/client.go b/backend/internal/docker/client.go new file mode 100644 index 0000000..28db2fd --- /dev/null +++ b/backend/internal/docker/client.go @@ -0,0 +1,416 @@ +// Package docker fournit un client HTTP léger pour l'API Docker via socket Unix. +// Utilisé pour reconstruire et redémarrer le container backend lors de l'installation d'un module. +package docker + +import ( + "bufio" + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "log" + "net" + "net/http" + "net/url" + "os" + "strings" + "sync/atomic" + "time" +) + +// IsRebuilding est vrai lorsqu'un rebuild est en cours. +var IsRebuilding atomic.Bool + +// Client communique avec le daemon Docker via le socket Unix monté en volume. +type Client struct { + http *http.Client + socketPath string +} + +// New crée un Client Docker. Utilise /var/run/docker.sock par défaut. +func New() *Client { + socketPath := envOr("DOCKER_SOCKET", "/var/run/docker.sock") + transport := &http.Transport{ + DialContext: func(ctx context.Context, _, _ string) (net.Conn, error) { + return (&net.Dialer{}).DialContext(ctx, "unix", socketPath) + }, + } + return &Client{ + http: &http.Client{Transport: transport, Timeout: 15 * time.Minute}, + socketPath: socketPath, + } +} + +// Available indique si le socket Docker est accessible. +func (c *Client) Available() bool { + _, err := os.Stat(c.socketPath) + return err == nil +} + +// ---- Structures Docker API ---- + +// buildEvent est une ligne du stream JSON retourné par l'API build. +type buildEvent struct { + Stream string `json:"stream"` + Error string `json:"error"` +} + +// inspectResult contient les champs utiles retournés par /containers/{id}/json. +type inspectResult struct { + Name string `json:"Name"` + Config struct { + Image string `json:"Image"` + Env []string `json:"Env"` + Cmd []string `json:"Cmd"` + Entrypoint []string `json:"Entrypoint"` + WorkingDir string `json:"WorkingDir"` + ExposedPorts map[string]struct{} `json:"ExposedPorts"` + } `json:"Config"` + HostConfig struct { + Binds []string `json:"Binds"` + RestartPolicy struct { + Name string `json:"Name"` + } `json:"RestartPolicy"` + GroupAdd []string `json:"GroupAdd"` + NetworkMode string `json:"NetworkMode"` + } `json:"HostConfig"` + NetworkSettings struct { + Networks map[string]struct { + NetworkID string `json:"NetworkID"` + } `json:"Networks"` + } `json:"NetworkSettings"` +} + +// containerCreateBody correspond au corps de POST /containers/create. +type containerCreateBody struct { + Image string `json:"Image"` + Env []string `json:"Env"` + Cmd []string `json:"Cmd,omitempty"` + Entrypoint []string `json:"Entrypoint,omitempty"` + WorkingDir string `json:"WorkingDir,omitempty"` + ExposedPorts map[string]struct{} `json:"ExposedPorts,omitempty"` + HostConfig struct { + Binds []string `json:"Binds"` + RestartPolicy struct { + Name string `json:"Name"` + } `json:"RestartPolicy"` + GroupAdd []string `json:"GroupAdd,omitempty"` + NetworkMode string `json:"NetworkMode,omitempty"` + } `json:"HostConfig"` + NetworkingConfig struct { + EndpointsConfig map[string]map[string]string `json:"EndpointsConfig"` + } `json:"NetworkingConfig"` +} + +// ---- Opérations Docker ---- + +// BuildImage construit une nouvelle image depuis le sous-répertoire d'un repo git. +// Le build arg MODULES contient les IDs de modules séparés par des virgules. +func (c *Client) BuildImage(ctx context.Context, imageTag, gitRepo, gitBranch, subdir string, moduleIDs []string) error { + modulesStr := strings.Join(moduleIDs, ",") + + // Format Docker : repo.git#branch:sous-répertoire + remoteCtx := fmt.Sprintf("%s#%s:%s", gitRepo, gitBranch, subdir) + + buildArgsJSON, _ := json.Marshal(map[string]string{"MODULES": modulesStr}) + + q := url.Values{} + q.Set("remote", remoteCtx) + q.Set("dockerfile", "Dockerfile") + q.Set("t", imageTag) + q.Set("buildargs", string(buildArgsJSON)) + q.Set("rm", "1") + + resp, err := c.do(ctx, "POST", "/v1.47/build?"+q.Encode(), nil) + if err != nil { + return fmt.Errorf("appel API build : %w", err) + } + defer resp.Body.Close() + + // Lire le stream de build ligne par ligne — retourner dès qu'une erreur est détectée. + scanner := bufio.NewScanner(resp.Body) + for scanner.Scan() { + var ev buildEvent + if err := json.Unmarshal(scanner.Bytes(), &ev); err != nil { + continue + } + if ev.Error != "" { + return fmt.Errorf("erreur build Docker : %s", ev.Error) + } + if ev.Stream != "" { + log.Printf("[docker-build] %s", strings.TrimRight(ev.Stream, "\n")) + } + } + return scanner.Err() +} + +// InspectContainer retourne la configuration du container (pour le recréer). +func (c *Client) InspectContainer(ctx context.Context, name string) (*inspectResult, error) { + resp, err := c.do(ctx, "GET", "/v1.47/containers/"+name+"/json", nil) + if err != nil { + return nil, err + } + defer resp.Body.Close() + body, _ := io.ReadAll(resp.Body) + + var info inspectResult + if err := json.Unmarshal(body, &info); err != nil { + return nil, fmt.Errorf("parse inspect : %w", err) + } + return &info, nil +} + +// CreateContainer crée un nouveau container et retourne son ID. +func (c *Client) CreateContainer(ctx context.Context, name string, body *containerCreateBody) (string, error) { + bodyJSON, _ := json.Marshal(body) + resp, err := c.do(ctx, "POST", "/v1.47/containers/create?name="+url.QueryEscape(name), bytes.NewReader(bodyJSON)) + if err != nil { + return "", err + } + defer resp.Body.Close() + raw, _ := io.ReadAll(resp.Body) + + var result struct { + ID string `json:"Id"` + } + json.Unmarshal(raw, &result) + if result.ID == "" { + return "", fmt.Errorf("création container échouée : %s", string(raw)) + } + return result.ID, nil +} + +// StartContainer démarre un container par son ID. +func (c *Client) StartContainer(ctx context.Context, id string) error { + _, err := c.do(ctx, "POST", "/v1.47/containers/"+id+"/start", nil) + return err +} + +// StopContainer arrête un container (timeout 15s). +func (c *Client) StopContainer(ctx context.Context, name string) error { + _, err := c.do(ctx, "POST", "/v1.47/containers/"+name+"/stop?t=15", nil) + return err +} + +// RemoveContainer supprime un container arrêté. +func (c *Client) RemoveContainer(ctx context.Context, name string) error { + _, err := c.do(ctx, "DELETE", "/v1.47/containers/"+name, nil) + return err +} + +// RenameContainer renomme un container. +func (c *Client) RenameContainer(ctx context.Context, current, newName string) error { + _, err := c.do(ctx, "POST", + fmt.Sprintf("/v1.47/containers/%s/rename?name=%s", current, url.QueryEscape(newName)), nil) + return err +} + +// ---- Orchestration rebuild ---- + +// RebuildAndRestart lance un rebuild en arrière-plan : +// 1. Construit la nouvelle image avec les modules demandés. +// 2. Crée un container de remplacement qui, à son démarrage, arrêtera l'ancien. +// +// Cette méthode est non-bloquante : elle retourne immédiatement. +// La réponse HTTP doit être envoyée AVANT d'appeler cette méthode. +func (c *Client) RebuildAndRestart(moduleIDs []string) { + if !IsRebuilding.CompareAndSwap(false, true) { + log.Println("[docker] Rebuild déjà en cours, ignoré") + return + } + + containerName := envOr("CONTAINER_NAME", "proxmoxpanel-backend") + gitRepo := envOr("GIT_REPO", "https://git.geronzi.fr/proxmoxPanel/core.git") + gitBranch := envOr("GIT_BRANCH", "frontend/alpine") + imageTag := envOr("IMAGE_TAG", "proxmoxpanel-backend:latest") + nextName := containerName + "-next" + + go func() { + defer IsRebuilding.Store(false) + + log.Printf("[docker] Rebuild démarré — modules : %v", moduleIDs) + + ctx, cancel := context.WithTimeout(context.Background(), 15*time.Minute) + defer cancel() + + // Étape 1 — Build de la nouvelle image + if err := c.BuildImage(ctx, imageTag, gitRepo, gitBranch, "backend", moduleIDs); err != nil { + log.Printf("[docker] Erreur build image : %v", err) + return + } + log.Println("[docker] Nouvelle image construite") + + // Étape 2 — Inspecter le container courant pour récupérer sa config + info, err := c.InspectContainer(ctx, containerName) + if err != nil { + log.Printf("[docker] Erreur inspection container : %v", err) + return + } + + // Étape 3 — Préparer la config du container de remplacement + body := buildReplaceBody(info, imageTag, nextName, containerName) + bodyJSON, _ := json.Marshal(body) + log.Printf("[docker] Config container next : %s", string(bodyJSON)) + + // Supprimer le container "next" s'il existe déjà (rebuild précédent raté) + c.StopContainer(ctx, nextName) + c.RemoveContainer(ctx, nextName) + + // Étape 4 — Créer le container de remplacement + nextID, err := c.CreateContainer(ctx, nextName, body) + if err != nil { + log.Printf("[docker] Erreur création container next : %v", err) + return + } + + // Étape 5 — Démarrer le container de remplacement + // Il stoppera et remplacera l'actuel au démarrage (voir main.go : handleReplacement). + if err := c.StartContainer(ctx, nextID); err != nil { + log.Printf("[docker] Erreur démarrage container next : %v", err) + return + } + + log.Printf("[docker] Container %s démarré — remplacement de %s en cours", nextName, containerName) + }() +} + +// Restart redémarre le container courant en arrière-plan (même image). +// Utilisé lors de l'activation/désactivation d'un module has_backend. +func (c *Client) Restart() { + containerName := envOr("CONTAINER_NAME", "proxmoxpanel-backend") + go func() { + time.Sleep(500 * time.Millisecond) + log.Printf("[docker] Redémarrage du container %s...", containerName) + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + if err := c.StopContainer(ctx, containerName); err != nil { + log.Printf("[docker] Erreur stop container : %v", err) + } + // La restart policy unless-stopped ne redémarre pas après un stop explicite. + // On recrée le container à partir de son inspect. + info, err := c.InspectContainer(ctx, containerName) + if err != nil { + log.Printf("[docker] Erreur inspect pour restart : %v", err) + return + } + c.RemoveContainer(ctx, containerName) + body := buildSameBody(info) + id, err := c.CreateContainer(ctx, containerName, body) + if err != nil { + log.Printf("[docker] Erreur recréation container : %v", err) + return + } + if err := c.StartContainer(ctx, id); err != nil { + log.Printf("[docker] Erreur démarrage après restart : %v", err) + } + }() +} + +// HandleReplacement gère le cas où ce container est un remplacement. +// À appeler au tout début de main() si REPLACING_CONTAINER est défini. +// Arrête l'ancien container, le supprime, se renomme. +func (c *Client) HandleReplacement() { + old := os.Getenv("REPLACING_CONTAINER") + myName := envOr("CONTAINER_NAME", "proxmoxpanel-backend-next") + if old == "" || !c.Available() { + return + } + + log.Printf("[docker] Mode remplacement : arrêt du container %s...", old) + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + // Petit délai pour que l'ancien container finisse d'envoyer ses réponses HTTP en cours + time.Sleep(2 * time.Second) + + if err := c.StopContainer(ctx, old); err != nil { + log.Printf("[docker] Avertissement : impossible d'arrêter %s : %v", old, err) + } + if err := c.RemoveContainer(ctx, old); err != nil { + log.Printf("[docker] Avertissement : impossible de supprimer %s : %v", old, err) + } + + // Se renommer pour prendre l'identité du container remplacé + if err := c.RenameContainer(ctx, myName, old); err != nil { + log.Printf("[docker] Avertissement : impossible de renommer %s → %s : %v", myName, old, err) + } else { + log.Printf("[docker] Container renommé %s → %s", myName, old) + } +} + +// ---- Helpers internes ---- + +// buildReplaceBody construit la config du container de remplacement. +// Ajoute REPLACING_CONTAINER et met à jour CONTAINER_NAME dans les env vars. +func buildReplaceBody(info *inspectResult, newImage, newContainerName, replacingName string) *containerCreateBody { + body := buildSameBody(info) + body.Image = newImage + + // Mettre à jour les env vars de remplacement + newEnv := make([]string, 0, len(info.Config.Env)+2) + for _, e := range info.Config.Env { + if strings.HasPrefix(e, "CONTAINER_NAME=") || strings.HasPrefix(e, "REPLACING_CONTAINER=") { + continue + } + newEnv = append(newEnv, e) + } + newEnv = append(newEnv, + "CONTAINER_NAME="+newContainerName, + "REPLACING_CONTAINER="+replacingName, + ) + body.Env = newEnv + return body +} + +// buildSameBody construit la config d'un container identique (même image). +func buildSameBody(info *inspectResult) *containerCreateBody { + body := &containerCreateBody{} + body.Image = info.Config.Image + body.Env = info.Config.Env + body.Cmd = info.Config.Cmd + body.Entrypoint = info.Config.Entrypoint + body.WorkingDir = info.Config.WorkingDir + body.ExposedPorts = info.Config.ExposedPorts + body.HostConfig.Binds = info.HostConfig.Binds + body.HostConfig.RestartPolicy.Name = info.HostConfig.RestartPolicy.Name + body.HostConfig.GroupAdd = info.HostConfig.GroupAdd + body.HostConfig.NetworkMode = info.HostConfig.NetworkMode + + // Réseaux + endpoints := make(map[string]map[string]string) + for netName, netInfo := range info.NetworkSettings.Networks { + endpoints[netName] = map[string]string{"NetworkID": netInfo.NetworkID} + } + body.NetworkingConfig.EndpointsConfig = endpoints + return body +} + +// do effectue une requête HTTP vers l'API Docker (http://docker = socket Unix). +func (c *Client) do(ctx context.Context, method, path string, body io.Reader) (*http.Response, error) { + req, err := http.NewRequestWithContext(ctx, method, "http://docker"+path, body) + if err != nil { + return nil, err + } + if body != nil { + req.Header.Set("Content-Type", "application/json") + } + resp, err := c.http.Do(req) + if err != nil { + return nil, err + } + // Les codes 2xx et 304 sont considérés comme succès + if resp.StatusCode >= 300 && resp.StatusCode != 304 { + raw, _ := io.ReadAll(resp.Body) + resp.Body.Close() + return nil, fmt.Errorf("Docker API %s %s → HTTP %d : %s", method, path, resp.StatusCode, string(raw)) + } + return resp, nil +} + +func envOr(key, def string) string { + if v := os.Getenv(key); v != "" { + return v + } + return def +} diff --git a/backend/main.go b/backend/main.go index d4242da..4824c0d 100644 --- a/backend/main.go +++ b/backend/main.go @@ -13,6 +13,7 @@ import ( "git.geronzi.fr/proxmoxPanel/core/backend/internal/auth" "git.geronzi.fr/proxmoxPanel/core/backend/internal/crypto" "git.geronzi.fr/proxmoxPanel/core/backend/internal/db" + dockerclient "git.geronzi.fr/proxmoxPanel/core/backend/internal/docker" "git.geronzi.fr/proxmoxPanel/core/backend/internal/logbuffer" sshpool "git.geronzi.fr/proxmoxPanel/core/backend/internal/ssh" "git.geronzi.fr/proxmoxPanel/core/backend/internal/websocket" @@ -26,6 +27,14 @@ func main() { // Brancher le buffer de logs (stderr + mémoire) avant tout autre log log.SetOutput(io.MultiWriter(os.Stderr, logbuffer.Global)) + // ── Gestion du remplacement de container (rebuild module) ────────────── + // Si REPLACING_CONTAINER est défini, ce container est un successeur issu d'un rebuild. + // Il arrête l'ancien container et se renomme avant de continuer le démarrage normal. + docker := dockerclient.New() + if docker.Available() { + docker.HandleReplacement() + } + // Répertoire de données persistantes (volume Docker) dataDir := getEnv("DATA_DIR", "/app/data") @@ -67,9 +76,8 @@ func main() { auditLogger := audit.New(database.DB) // ── Chargement des modules actifs ────────────────────────────────────── - loader := modules.NewLoader(database.DB) - // Les modules sont enregistrés ici (compilés dans le binaire) - // loader.RegisterModule(dashboard.New(...)) ← à décommenter quand implémentés + loader := modules.NewLoader(database, sshPool, encryptor) + RegisterModules(loader) // généré par cmd/gen-modules selon les modules compilés if err := loader.LoadActive(); err != nil { log.Fatalf("Erreur chargement modules : %v", err) } @@ -79,7 +87,7 @@ func main() { authHandler := api.NewAuthHandler(database, jwtManager, sshAuthenticator, auditLogger) proxmoxHandler := api.NewProxmoxHandler(database, hub, auditLogger, encryptor) updatesHandler := api.NewUpdatesHandler(database, sshPool, hub, auditLogger, encryptor) - settingsHandler := api.NewSettingsHandler(database, auditLogger, encryptor) + settingsHandler := api.NewSettingsHandler(database, auditLogger, encryptor, docker) terminalHandler := api.NewTerminalHandler(database, auditLogger, encryptor) // Démarrer le polling Proxmox en arrière-plan @@ -130,6 +138,8 @@ func main() { r.Post("/api/auth/logout", authHandler.Logout) r.Get("/api/auth/me", authHandler.Me) r.Patch("/api/auth/preferences", authHandler.UpdatePreferences) + r.Get("/api/auth/sessions", authHandler.GetSessions) + r.Delete("/api/auth/sessions/{id}", authHandler.RevokeSession) // Proxmox r.Get("/api/proxmox/resources", proxmoxHandler.GetResources) @@ -168,6 +178,20 @@ func main() { r.Post("/api/modules/{id}/disable", settingsHandler.DisableModule) }) + // Registry store — admin uniquement + r.Group(func(r chi.Router) { + r.Use(api.RequireAdmin) + r.Get("/api/registry/modules", settingsHandler.GetRegistryModules) + r.Post("/api/registry/modules/{id}/install", settingsHandler.InstallRegistryModule) + }) + + // Réparation DB — admin uniquement + r.Group(func(r chi.Router) { + r.Use(api.RequireAdmin) + r.Get("/api/repair/modules", settingsHandler.GetRepairStatus) + r.Delete("/api/repair/modules/{id}", settingsHandler.ResetModule) + }) + // WebSocket — les routes WS extraient le token via query param r.Get("/ws/proxmox", proxmoxHandler.WebSocket) r.Get("/ws/updates/{jobId}", updatesHandler.WebSocketUpdate) @@ -177,9 +201,12 @@ func main() { // Routes enregistrées par les modules actifs for _, route := range loader.Registry().GetRoutes() { routeCopy := route // Capturer la variable pour la closure - if routeCopy.RequireAdmin { + switch { + case routeCopy.Public: + r.MethodFunc(routeCopy.Method, routeCopy.Path, routeCopy.Handler) + case routeCopy.RequireAdmin: r.With(api.RequireAuth(jwtManager), api.RequireAdmin).MethodFunc(routeCopy.Method, routeCopy.Path, routeCopy.Handler) - } else { + default: r.With(api.RequireAuth(jwtManager)).MethodFunc(routeCopy.Method, routeCopy.Path, routeCopy.Handler) } } diff --git a/backend/modules/loader.go b/backend/modules/loader.go index 76e7cd0..4150254 100644 --- a/backend/modules/loader.go +++ b/backend/modules/loader.go @@ -1,6 +1,3 @@ -// Package modules — Loader de modules. -// Découvre les modules disponibles, vérifie leur état en DB, et les initialise si activés. -// Un module désactivé ne fait appel à aucune de ses méthodes Register(). package modules import ( @@ -8,25 +5,34 @@ import ( "fmt" "log" "net/http" + "strconv" + "strings" + + "git.geronzi.fr/proxmoxPanel/core/backend/internal/crypto" + "git.geronzi.fr/proxmoxPanel/core/backend/internal/db" + sshpool "git.geronzi.fr/proxmoxPanel/core/backend/internal/ssh" ) // Loader charge et gère les modules actifs. type Loader struct { - db *sql.DB + db *db.DB + pool *sshpool.Pool + enc *crypto.Encryptor registry *coreRegistry modules []Module } -// NewLoader crée un Loader avec le router et la DB fournis. -func NewLoader(db *sql.DB) *Loader { +// NewLoader crée un Loader avec les services du CORE nécessaires aux modules. +func NewLoader(database *db.DB, pool *sshpool.Pool, enc *crypto.Encryptor) *Loader { return &Loader{ - db: db, - registry: newCoreRegistry(db), + db: database, + pool: pool, + enc: enc, + registry: newCoreRegistry(database.DB, pool, enc), } } // RegisterModule enregistre un module disponible (appelé à l'init, depuis main.go). -// Le module sera initialisé seulement s'il est activé en base. func (l *Loader) RegisterModule(m Module) { l.modules = append(l.modules, m) } @@ -57,24 +63,24 @@ func (l *Loader) isEnabled(id string) (bool, error) { var enabled int err := l.db.QueryRow(`SELECT is_enabled FROM modules WHERE id = ?`, id).Scan(&enabled) if err == sql.ErrNoRows { - return false, nil // Module inconnu = désactivé + return false, nil } return enabled == 1, err } -// Registry retourne le registry partagé (pour accès par le serveur HTTP). +// Registry retourne le registry partagé. func (l *Loader) Registry() *coreRegistry { return l.registry } // ---- Implémentation interne du Registry ---- -// RouteEntry décrit une route HTTP enregistrée par un module. type RouteEntry struct { Method string Path string Handler http.HandlerFunc RequireAdmin bool + Public bool // true = pas d'authentification requise (ex: pages HTML) } type migrationEntry struct { @@ -90,24 +96,35 @@ type translationEntry struct { // coreRegistry implémente l'interface Registry. type coreRegistry struct { - db *sql.DB + sqlDB *sql.DB + pool *sshpool.Pool + enc *crypto.Encryptor routes []RouteEntry wsChannels map[string]WSHandler widgets []WidgetDef settingsTabs []SettingsTabDef migrations []migrationEntry translations []translationEntry + navItems map[string]NavItemDef // nav items en mémoire (clé = module ID) } -func newCoreRegistry(db *sql.DB) *coreRegistry { +func newCoreRegistry(sqlDB *sql.DB, pool *sshpool.Pool, enc *crypto.Encryptor) *coreRegistry { return &coreRegistry{ - db: db, + sqlDB: sqlDB, + pool: pool, + enc: enc, wsChannels: make(map[string]WSHandler), + navItems: make(map[string]NavItemDef), } } func (r *coreRegistry) RegisterRoute(method, path string, handler http.HandlerFunc, requireAdmin bool) { - r.routes = append(r.routes, RouteEntry{method, path, handler, requireAdmin}) + r.routes = append(r.routes, RouteEntry{Method: method, Path: path, Handler: handler, RequireAdmin: requireAdmin}) +} + +// RegisterPublicRoute enregistre une route sans authentification (ex: page HTML d'un module). +func (r *coreRegistry) RegisterPublicRoute(method, path string, handler http.HandlerFunc) { + r.routes = append(r.routes, RouteEntry{Method: method, Path: path, Handler: handler, Public: true}) } func (r *coreRegistry) RegisterWSChannel(channel string, handler WSHandler) { @@ -130,8 +147,69 @@ func (r *coreRegistry) RegisterMigration(version int, sqlStr string, fn Migratio r.migrations = append(r.migrations, migrationEntry{version, sqlStr, fn}) } +// RegisterNavItem enregistre l'entrée de navigation d'un module en mémoire et en DB. +func (r *coreRegistry) RegisterNavItem(item NavItemDef) { + r.navItems[item.ID] = item + // Persister en DB pour que le frontend puisse le récupérer via /api/modules + r.sqlDB.Exec( + `UPDATE modules SET nav_href=?, nav_icon=?, nav_color=?, nav_label_key=? WHERE id=?`, + item.Href, item.Icon, item.Color, item.LabelKey, item.ID, + ) +} + +// DB retourne la connexion SQLite brute. func (r *coreRegistry) DB() *sql.DB { - return r.db + return r.sqlDB +} + +// RunOnTarget exécute une commande SSH sur la cible (host ou lxc:VMID). +// La commande est wrappée via pct exec pour les cibles LXC. +func (r *coreRegistry) RunOnTarget(target, command string) (string, error) { + host, user, pass, err := r.sshCreds() + if err != nil { + return "", err + } + cmd := buildTargetCmd(target, command) + return r.pool.RunCommand(host, user, pass, cmd) +} + +// StreamOnTarget exécute une commande SSH en streaming sur la cible. +func (r *coreRegistry) StreamOnTarget(target, command string, output chan<- string) error { + host, user, pass, err := r.sshCreds() + if err != nil { + return err + } + cmd := buildTargetCmd(target, command) + return r.pool.StreamCommand(host, user, pass, cmd, output) +} + +// sshCreds récupère et déchiffre les credentials SSH depuis la configuration. +func (r *coreRegistry) sshCreds() (host, user, pass string, err error) { + var h, u, ep string + r.sqlDB.QueryRow(`SELECT value FROM settings WHERE key='ssh_host'`).Scan(&h) + r.sqlDB.QueryRow(`SELECT value FROM settings WHERE key='ssh_username'`).Scan(&u) + r.sqlDB.QueryRow(`SELECT value FROM settings WHERE key='ssh_password'`).Scan(&ep) + if ep != "" { + pass, err = r.enc.Decrypt(ep) + if err != nil { + return "", "", "", fmt.Errorf("impossible de déchiffrer le mot de passe SSH") + } + } + if h == "" || u == "" || pass == "" { + return "", "", "", fmt.Errorf("SSH non configuré") + } + return h, u, pass, nil +} + +// buildTargetCmd construit la commande pour la cible (host ou lxc:VMID). +func buildTargetCmd(target, command string) string { + if strings.HasPrefix(target, "lxc:") { + vmid := strings.TrimPrefix(target, "lxc:") + if _, err := strconv.Atoi(vmid); err == nil { + return fmt.Sprintf("pct exec %s -- sh -c %q", vmid, command) + } + } + return command } // GetRoutes retourne les routes enregistrées par les modules. @@ -139,6 +217,11 @@ func (r *coreRegistry) GetRoutes() []RouteEntry { return r.routes } +// GetNavItems retourne les nav items enregistrés en mémoire. +func (r *coreRegistry) GetNavItems() map[string]NavItemDef { + return r.navItems +} + // GetWidgets retourne les types de widgets disponibles. func (r *coreRegistry) GetWidgets() []WidgetDef { return r.widgets diff --git a/backend/modules/logs/README.md b/backend/modules/logs/README.md deleted file mode 100644 index fd9196a..0000000 --- a/backend/modules/logs/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Module — Logs - -**Type**: Optional (disabled by default) - -Stream and browse system logs from the Proxmox host or LXC containers in real time via WebSocket (`tail -f` equivalent). - -## Planned Features - -- Real-time log streaming via WebSocket -- Common log sources: `syslog`, `auth.log`, `kern.log`, journald -- Filter by log level (error, warning, info) -- Stop/start streaming on demand -- LXC log access via `pct exec` - -## Planned API Endpoints - -| Method | Path | Auth | Description | -|--------|------|------|-------------| -| GET | `/api/logs/sources` | JWT | List available log sources | - -## Planned WebSocket Endpoint - -`GET /ws/logs/{source}?token=&host=` - -Where `source` is a log name such as `syslog`, `auth`, or `journal`. - -Message types: - -| Type | Payload | Description | -|------|---------|-------------| -| `log_line` | `{ "line": "...", "level": "info" }` | New log line | -| `log_end` | — | Stream closed (e.g. SSH disconnected) | - -## Status - -> This module is currently a stub. The UI view is implemented (shows a "module not enabled" placeholder). Full implementation is planned for a future release. - -## Requirements - -- SSH access to the target host -- Read permissions on the log files (root or appropriate group) - -## License - -MIT — see [LICENSE](../../LICENSE) diff --git a/backend/modules/module.go b/backend/modules/module.go index a624774..4bb5e82 100644 --- a/backend/modules/module.go +++ b/backend/modules/module.go @@ -1,5 +1,4 @@ // Package modules définit le contrat d'interface pour les modules ProxmoxPanel. -// Chaque module implémente l'interface Module et s'enregistre auprès du ModuleRegistry. package modules import ( @@ -9,36 +8,51 @@ import ( // Module est l'interface que chaque module doit implémenter. type Module interface { - // ID retourne l'identifiant unique du module (doit correspondre à la table modules en DB). ID() string - - // Register est appelé au chargement du module actif. - // Il reçoit le registry pour enregistrer ses routes, widgets, etc. Register(registry Registry) error } -// Registry est l'interface exposée aux modules pour s'enregistrer dans le CORE. -type Registry interface { - // RegisterRoute enregistre une route HTTP dans le router principal. - RegisterRoute(method, path string, handler http.HandlerFunc, requireAdmin bool) +// NavItemDef décrit l'entrée de navigation d'un module dans la sidebar. +type NavItemDef struct { + ID string `json:"id"` + Href string `json:"href"` + Icon string `json:"icon"` + Color string `json:"color"` + LabelKey string `json:"label_key"` +} - // RegisterWSChannel enregistre un handler WebSocket pour un channel nommé. +// Registry est l'interface exposée aux modules pour s'enregistrer dans le CORE. +// Seuls des types de la bibliothèque standard sont exposés — aucun type internal. +type Registry interface { + // Enregistrement de routes HTTP (avec authentification) + RegisterRoute(method, path string, handler http.HandlerFunc, requireAdmin bool) + // Enregistrement d'une route publique (sans auth — pour les pages HTML) + RegisterPublicRoute(method, path string, handler http.HandlerFunc) + + // Enregistrement du canal WebSocket RegisterWSChannel(channel string, handler WSHandler) - // RegisterWidget déclare un type de widget disponible pour le dashboard. + // Widgets et onglets RegisterWidget(widget WidgetDef) - - // RegisterSettingsTab ajoute un onglet dans la page paramètres. RegisterSettingsTab(tab SettingsTabDef) - // RegisterTranslations fusionne des clés de traduction pour une langue donnée. + // Traductions et migrations RegisterTranslations(lang string, keys map[string]string) - - // RegisterMigration déclare une migration de base de données propre au module. RegisterMigration(version int, sql string, fn MigrationFn) - // DB retourne un accès à SQLite avec isolation par module (préfixe de tables). + // Entrée de navigation dans la sidebar + RegisterNavItem(item NavItemDef) + + // Accès à la base SQLite (isolation par module possible via préfixe) DB() *sql.DB + + // Service SSH — exécute une commande sur la cible (host ou lxc:VMID) + // La cible "host" exécute directement, "lxc:101" wrappe via pct exec + RunOnTarget(target, command string) (string, error) + + // Service SSH — streaming de la sortie ligne par ligne + // Le channel est fermé à la fin de la commande + StreamOnTarget(target, command string, output chan<- string) error } // WSHandler est un handler WebSocket pour un channel nommé. @@ -55,12 +69,11 @@ type WidgetDef struct { // SettingsTabDef décrit un onglet de paramètres fourni par un module. type SettingsTabDef struct { - ID string `json:"id"` - Label string `json:"label"` - Icon string `json:"icon"` - // Path est le chemin frontend du composant Vue à charger (lazy import). + ID string `json:"id"` + Label string `json:"label"` + Icon string `json:"icon"` ComponentPath string `json:"component_path"` } -// MigrationFn est une fonction de migration optionnelle (pour les migrations non-SQL). +// MigrationFn est une fonction de migration optionnelle. type MigrationFn func(db *sql.DB) error diff --git a/backend/modules/services/README.md b/backend/modules/services/README.md deleted file mode 100644 index cc5d4a4..0000000 --- a/backend/modules/services/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# Module — Services - -**Type**: Optional (disabled by default) - -Manage systemd services on the Proxmox host and LXC containers. Check status, start, stop, and restart services directly from the web interface. - -## Planned Features - -- List systemd services with current status (active/inactive/failed) -- Start, stop, restart, reload actions -- View service logs (last N lines via `journalctl -u `) -- Filter by status or name -- LXC service management via `pct exec` - -## Planned API Endpoints - -| Method | Path | Auth | Description | -|--------|------|------|-------------| -| GET | `/api/services` | JWT | List services and their status | -| POST | `/api/services/{name}/start` | JWT+Admin | Start a service | -| POST | `/api/services/{name}/stop` | JWT+Admin | Stop a service | -| POST | `/api/services/{name}/restart` | JWT+Admin | Restart a service | -| POST | `/api/services/{name}/reload` | JWT+Admin | Reload a service | -| GET | `/api/services/{name}/logs` | JWT | Last 100 log lines | - -Query parameter: `host=` to target a specific LXC. - -## How It Works - -Commands are executed over SSH using `systemctl`: - -```bash -systemctl status nginx -systemctl restart nginx -journalctl -u nginx -n 100 --no-pager -``` - -For LXC containers: - -```bash -pct exec -- systemctl restart nginx -``` - -## Status - -> This module is currently a stub. The UI view is implemented (shows a "module not enabled" placeholder). Full implementation is planned for a future release. - -## Requirements - -- SSH access with sufficient privileges to run `systemctl` commands -- `systemd` on the target host/containers - -## License - -MIT — see [LICENSE](../../LICENSE) diff --git a/backend/registered_modules.go b/backend/registered_modules.go new file mode 100644 index 0000000..159afc8 --- /dev/null +++ b/backend/registered_modules.go @@ -0,0 +1,8 @@ +// Code généré automatiquement par cmd/gen-modules — ne pas modifier manuellement. +// Régénéré lors du build Docker avec la liste des modules compilés. +package main + +import "git.geronzi.fr/proxmoxPanel/core/backend/modules" + +// RegisterModules enregistre les modules compilés dans le binaire. +func RegisterModules(l *modules.Loader) {} diff --git a/docker-compose.yml b/docker-compose.yml index 25e0a0b..cec5a0c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: build: context: ./backend dockerfile: Dockerfile + container_name: proxmoxpanel-backend restart: unless-stopped expose: @@ -16,10 +17,28 @@ services: volumes: # Volume persistant pour SQLite, clés JWT, clé maître AES - panel-data:/app/data + # Socket Docker — permet au backend de reconstruire son propre container lors d'un install de module + - /var/run/docker.sock:/var/run/docker.sock + group_add: + # GID du groupe docker sur l'hôte (docker group = accès au socket). + # Trouver avec : getent group docker | cut -d: -f3 + # Surcharger avec : DOCKER_GID=xxx docker compose up -d + - "${DOCKER_GID:-999}" environment: - DATA_DIR=/app/data - LISTEN_ADDR=:3001 - APP_ENV=production + # Identité de ce container (utilisé pour l'auto-rebuild des modules) + - CONTAINER_NAME=proxmoxpanel-backend + # Repo git du CORE (pour docker build --remote lors d'un install module) + - GIT_REPO=https://git.geronzi.fr/proxmoxPanel/core.git + # Branche git à utiliser pour le rebuild + - GIT_BRANCH=frontend/alpine + # Tag de l'image Docker construite + - IMAGE_TAG=proxmoxpanel-backend:latest + # Registry Forgejo — surcharger si auto-hébergé ailleurs + - FORGEJO_URL=https://git.geronzi.fr + - FORGEJO_ORG=proxmoxPanel # Pas de réseau host — le container reste isolé # Les connexions SSH sortantes vers le host Proxmox sont autorisées via le réseau Docker networks: diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..b947077 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 2e7e479..7d28b2b 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,26 +1,21 @@ -# ── Étape 1 : Build du frontend Vue 3 + Vite ─────────────────────────────── +# ── Étape 1 : Build (bundle Swup + xterm via esbuild) ───────────────────── FROM node:22-alpine AS builder WORKDIR /build -# Copier les fichiers de dépendances en premier -COPY package.json package-lock.json* ./ -RUN npm install --frozen-lockfile +COPY package.json package-lock.json ./ +RUN npm ci -# Copier le code source et compiler COPY . . RUN npm run build -# ── Étape 2 : Image Nginx pour servir le frontend ────────────────────────── +# ── Étape 2 : Nginx pour servir les fichiers statiques ───────────────────── FROM nginx:1.27-alpine -# Supprimer la config Nginx par défaut RUN rm /etc/nginx/conf.d/default.conf -# Copier notre config Nginx personnalisée COPY nginx.conf /etc/nginx/nginx.conf -# Copier les fichiers compilés par Vite COPY --from=builder /build/dist /usr/share/nginx/html EXPOSE 80 diff --git a/frontend/build.mjs b/frontend/build.mjs new file mode 100644 index 0000000..329d057 --- /dev/null +++ b/frontend/build.mjs @@ -0,0 +1,111 @@ +/** + * Build script for ProxmoxPanel Alpine frontend. + * - Bundles Swup into an IIFE (browser-loadable) + * - Bundles xterm.js + addon-fit into IIFEs + * - Copies all static assets to dist/ + */ + +import * as esbuild from 'esbuild' +import * as fs from 'fs' +import * as path from 'path' + +const dist = 'dist' + +// Clean dist +fs.rmSync(dist, { recursive: true, force: true }) +fs.mkdirSync(`${dist}/js/vendors`, { recursive: true }) +fs.mkdirSync(`${dist}/js`, { recursive: true }) +fs.mkdirSync(`${dist}/css`, { recursive: true }) +fs.mkdirSync(`${dist}/locales`, { recursive: true }) + +// 1. Bundle Swup into IIFE +console.log('Bundling Swup...') +await esbuild.build({ + entryPoints: ['swup-bundle.entry.mjs'], + bundle: true, + format: 'iife', + globalName: '_swupExports', + outfile: `${dist}/js/vendors/swup.iife.js`, + minify: true, +}) +// Expose Swup on window +const swupOut = fs.readFileSync(`${dist}/js/vendors/swup.iife.js`, 'utf8') +fs.writeFileSync(`${dist}/js/vendors/swup.iife.js`, + swupOut + '\nwindow.Swup=_swupExports.Swup;') + +// 2. Bundle xterm.js +console.log('Bundling xterm...') +await esbuild.build({ + entryPoints: ['xterm-bundle.entry.mjs'], + bundle: true, + format: 'iife', + globalName: '_xtermExports', + outfile: `${dist}/js/vendors/xterm.iife.js`, + minify: true, +}) +const xtermOut = fs.readFileSync(`${dist}/js/vendors/xterm.iife.js`, 'utf8') +fs.writeFileSync(`${dist}/js/vendors/xterm.iife.js`, + xtermOut + '\nwindow.Terminal=_xtermExports.Terminal;window.FitAddon=_xtermExports.FitAddon;') + +// xterm CSS +const xtermCss = 'node_modules/@xterm/xterm/css/xterm.css' +if (fs.existsSync(xtermCss)) { + fs.copyFileSync(xtermCss, `${dist}/css/xterm.css`) +} + +// 3. Copy pre-downloaded vendors (Alpine, HTMX) +for (const f of ['alpine.min.js', 'htmx.min.js']) { + const src = `vendors/${f}` + if (fs.existsSync(src)) { + fs.copyFileSync(src, `${dist}/js/vendors/${f}`) + console.log(`Copied ${f}`) + } else { + console.warn(`WARN: ${src} not found`) + } +} + +// 4. Copy app JS files +for (const f of fs.readdirSync('js')) { + if (f.endsWith('.js')) { + fs.mkdirSync(`${dist}/js`, { recursive: true }) + fs.copyFileSync(`js/${f}`, `${dist}/js/${f}`) + } +} +// Service Worker doit être servi depuis la racine pour avoir le bon scope +if (fs.existsSync('js/ws.sw.js')) { + fs.copyFileSync('js/ws.sw.js', `${dist}/ws.sw.js`) +} + +// 5. Copy CSS +for (const f of fs.readdirSync('css')) { + fs.copyFileSync(`css/${f}`, `${dist}/css/${f}`) +} + +// 6. Copy locales +for (const f of fs.readdirSync('locales')) { + fs.copyFileSync(`locales/${f}`, `${dist}/locales/${f}`) +} + +// 7. Copy HTML pages +for (const f of fs.readdirSync('.')) { + if (f.endsWith('.html')) { + fs.copyFileSync(f, `${dist}/${f}`) + } +} + +// 8. Copy manifest.json +if (fs.existsSync('manifest.json')) { + fs.copyFileSync('manifest.json', `${dist}/manifest.json`) + console.log('Copied manifest.json') +} + +// 9. Copy icons/ +if (fs.existsSync('icons')) { + fs.mkdirSync(`${dist}/icons`, { recursive: true }) + for (const f of fs.readdirSync('icons')) { + fs.copyFileSync(`icons/${f}`, `${dist}/icons/${f}`) + } + console.log('Copied icons/') +} + +console.log('✓ Build complete → dist/') diff --git a/frontend/src/styles/dark.css b/frontend/css/dark.css similarity index 100% rename from frontend/src/styles/dark.css rename to frontend/css/dark.css diff --git a/frontend/src/styles/light.css b/frontend/css/light.css similarity index 100% rename from frontend/src/styles/light.css rename to frontend/css/light.css diff --git a/frontend/css/lineicons-duotone.css b/frontend/css/lineicons-duotone.css new file mode 100644 index 0000000..b611810 --- /dev/null +++ b/frontend/css/lineicons-duotone.css @@ -0,0 +1,11023 @@ +@font-face { + font-family: "lineicons-duotone"; + src: url('lineicons-duotone.eot?t=1770012318596'); /* IE9*/ + src: url('lineicons-duotone.eot?t=1770012318596#iefix') format('embedded-opentype') /* IE6-IE8 */, + url('lineicons-duotone.woff2?t=1770012318596') format('woff2'), + url('lineicons-duotone.woff?t=1770012318596') format('woff'), + url('lineicons-duotone.ttf?t=1770012318596') format('truetype'), + url('lineicons-duotone.svg?t=1770012318596') format('svg'); +} + +.lni, [class^="lnid-"], [class*=" lnid-"] { + display: inline-block; + position: relative; + font-style: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 1em; + height: 1em; + vertical-align: -0.125em; +} + +[class^="lnid-"], [class*=" lnid-"] { + font-family: "lineicons-duotone" !important; + font-weight: normal !important; +} + +.lni::before, +.lni::after, +[class^="lnid-"]::before, [class*=" lnid-"]::before, +[class^="lnid-"]::after, [class*=" lnid-"]::after { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: inline-block; + font-family: inherit; + font-size: inherit; + text-align: center; + line-height: inherit; +} + +[class^="lnid-"], [class*=" lnid-"]::before { + opacity: var(--lnid-secondary-opacity, 0.4); +} + +.lnid-360-1::before { content: "\f0005"; } +.lnid-360-1::after { content: "\f0004"; } +.lnid-360-10::before { content: "\f0001"; } +.lnid-360-10::after { content: "\f0000"; } +.lnid-360-11::before { content: "\f0003"; } +.lnid-360-11::after { content: "\f0002"; } +.lnid-360-2::before { content: "\f0007"; } +.lnid-360-2::after { content: "\f0006"; } +.lnid-360-3::before { content: "\f0009"; } +.lnid-360-3::after { content: "\f0008"; } +.lnid-360-4::before { content: "\f000b"; } +.lnid-360-4::after { content: "\f000a"; } +.lnid-360-5::before { content: "\f000d"; } +.lnid-360-5::after { content: "\f000c"; } +.lnid-360-6::before { content: "\f000f"; } +.lnid-360-6::after { content: "\f000e"; } +.lnid-360-7::before { content: "\f0011"; } +.lnid-360-7::after { content: "\f0010"; } +.lnid-360-8::before { content: "\f0013"; } +.lnid-360-8::after { content: "\f0012"; } +.lnid-360-9::before { content: "\f0015"; } +.lnid-360-9::after { content: "\f0014"; } +.lnid-3d-cube::before { content: "\f0025"; } +.lnid-3d-cube::after { content: "\f0024"; } +.lnid-3d-cube-1::before { content: "\f0017"; } +.lnid-3d-cube-1::after { content: "\f0016"; } +.lnid-3d-cube-2::before { content: "\f0019"; } +.lnid-3d-cube-2::after { content: "\f0018"; } +.lnid-3d-cube-3::before { content: "\f001b"; } +.lnid-3d-cube-3::after { content: "\f001a"; } +.lnid-3d-cube-ai-1::before { content: "\f001d"; } +.lnid-3d-cube-ai-1::after { content: "\f001c"; } +.lnid-3d-cube-ai-2::before { content: "\f001f"; } +.lnid-3d-cube-ai-2::after { content: "\f001e"; } +.lnid-3d-cube-arrows::before { content: "\f0021"; } +.lnid-3d-cube-arrows::after { content: "\f0020"; } +.lnid-3d-cube-user::before { content: "\f0023"; } +.lnid-3d-cube-user::after { content: "\f0022"; } +.lnid-3d-meta::before { content: "\f0027"; } +.lnid-3d-meta::after { content: "\f0026"; } +.lnid-3d-play::before { content: "\f0029"; } +.lnid-3d-play::after { content: "\f0028"; } +.lnid-3d-rotate-1::before { content: "\f002b"; } +.lnid-3d-rotate-1::after { content: "\f002a"; } +.lnid-3d-rotate-2::before { content: "\f002d"; } +.lnid-3d-rotate-2::after { content: "\f002c"; } +.lnid-3d-scan::before { content: "\f002f"; } +.lnid-3d-scan::after { content: "\f002e"; } +.lnid-4k::before { content: "\f0033"; } +.lnid-4k::after { content: "\f0032"; } +.lnid-4k-ai::before { content: "\f0031"; } +.lnid-4k-ai::after { content: "\f0030"; } +.lnid-5g-circle::before { content: "\f0037"; } +.lnid-5g-circle::after { content: "\f0036"; } +.lnid-5g-circle-disabled::before { content: "\f0035"; } +.lnid-5g-circle-disabled::after { content: "\f0034"; } +.lnid-5g-network-1::before { content: "\f003b"; } +.lnid-5g-network-1::after { content: "\f003a"; } +.lnid-5g-network-1-disabled::before { content: "\f0039"; } +.lnid-5g-network-1-disabled::after { content: "\f0038"; } +.lnid-5g-network-2::before { content: "\f003f"; } +.lnid-5g-network-2::after { content: "\f003e"; } +.lnid-5g-network-2-disabled::before { content: "\f003d"; } +.lnid-5g-network-2-disabled::after { content: "\f003c"; } +.lnid-5g-network-tower::before { content: "\f0043"; } +.lnid-5g-network-tower::after { content: "\f0042"; } +.lnid-5g-network-tower-disabled::before { content: "\f0041"; } +.lnid-5g-network-tower-disabled::after { content: "\f0040"; } +.lnid-5g-square::before { content: "\f0047"; } +.lnid-5g-square::after { content: "\f0046"; } +.lnid-5g-square-disabled::before { content: "\f0045"; } +.lnid-5g-square-disabled::after { content: "\f0044"; } +.lnid-8k::before { content: "\f004b"; } +.lnid-8k::after { content: "\f004a"; } +.lnid-8k-ai::before { content: "\f0049"; } +.lnid-8k-ai::after { content: "\f0048"; } +.lnid-Cart-flatbed-empty::before { content: "\f004d"; } +.lnid-Cart-flatbed-empty::after { content: "\f004c"; } +.lnid-Laptop-share::before { content: "\f004f"; } +.lnid-Laptop-share::after { content: "\f004e"; } +.lnid-achievement::before { content: "\f0051"; } +.lnid-achievement::after { content: "\f0050"; } +.lnid-ad-ai::before { content: "\f0053"; } +.lnid-ad-ai::after { content: "\f0052"; } +.lnid-aeroplane-1::before { content: "\f0055"; } +.lnid-aeroplane-1::after { content: "\f0054"; } +.lnid-aeroplane-2::before { content: "\f0057"; } +.lnid-aeroplane-2::after { content: "\f0056"; } +.lnid-aeroplane-box::before { content: "\f0059"; } +.lnid-aeroplane-box::after { content: "\f0058"; } +.lnid-agenda::before { content: "\f005b"; } +.lnid-agenda::after { content: "\f005a"; } +.lnid-aids-circle::before { content: "\f005d"; } +.lnid-aids-circle::after { content: "\f005c"; } +.lnid-aids-rechtangle::before { content: "\f005f"; } +.lnid-aids-rechtangle::after { content: "\f005e"; } +.lnid-aids-square::before { content: "\f0061"; } +.lnid-aids-square::after { content: "\f0060"; } +.lnid-air-conditioner-1::before { content: "\f0063"; } +.lnid-air-conditioner-1::after { content: "\f0062"; } +.lnid-air-conditioner-2::before { content: "\f0065"; } +.lnid-air-conditioner-2::after { content: "\f0064"; } +.lnid-airbuds::before { content: "\f0067"; } +.lnid-airbuds::after { content: "\f0066"; } +.lnid-alarm-1::before { content: "\f0069"; } +.lnid-alarm-1::after { content: "\f0068"; } +.lnid-alarm-2::before { content: "\f006b"; } +.lnid-alarm-2::after { content: "\f006a"; } +.lnid-alarm-auto::before { content: "\f006d"; } +.lnid-alarm-auto::after { content: "\f006c"; } +.lnid-alarm-check::before { content: "\f006f"; } +.lnid-alarm-check::after { content: "\f006e"; } +.lnid-alarm-error::before { content: "\f0071"; } +.lnid-alarm-error::after { content: "\f0070"; } +.lnid-alarm-minus::before { content: "\f0073"; } +.lnid-alarm-minus::after { content: "\f0072"; } +.lnid-alarm-play::before { content: "\f0075"; } +.lnid-alarm-play::after { content: "\f0074"; } +.lnid-alarm-plus::before { content: "\f0077"; } +.lnid-alarm-plus::after { content: "\f0076"; } +.lnid-alarm-question::before { content: "\f0079"; } +.lnid-alarm-question::after { content: "\f0078"; } +.lnid-alarm-sleep::before { content: "\f007b"; } +.lnid-alarm-sleep::after { content: "\f007a"; } +.lnid-alarm-trash::before { content: "\f007d"; } +.lnid-alarm-trash::after { content: "\f007c"; } +.lnid-alarm-user::before { content: "\f007f"; } +.lnid-alarm-user::after { content: "\f007e"; } +.lnid-alarm-xmark::before { content: "\f0081"; } +.lnid-alarm-xmark::after { content: "\f0080"; } +.lnid-align-objects-bottom::before { content: "\f0087"; } +.lnid-align-objects-bottom::after { content: "\f0086"; } +.lnid-align-objects-bottom-2::before { content: "\f0083"; } +.lnid-align-objects-bottom-2::after { content: "\f0082"; } +.lnid-align-objects-bottom-3::before { content: "\f0085"; } +.lnid-align-objects-bottom-3::after { content: "\f0084"; } +.lnid-align-objects-center-horizontal::before { content: "\f008b"; } +.lnid-align-objects-center-horizontal::after { content: "\f008a"; } +.lnid-align-objects-center-horizontal-2::before { content: "\f0089"; } +.lnid-align-objects-center-horizontal-2::after { content: "\f0088"; } +.lnid-align-objects-center-vertical::before { content: "\f008f"; } +.lnid-align-objects-center-vertical::after { content: "\f008e"; } +.lnid-align-objects-center-vertical-2::before { content: "\f008d"; } +.lnid-align-objects-center-vertical-2::after { content: "\f008c"; } +.lnid-align-objects-left::before { content: "\f0095"; } +.lnid-align-objects-left::after { content: "\f0094"; } +.lnid-align-objects-left-2::before { content: "\f0091"; } +.lnid-align-objects-left-2::after { content: "\f0090"; } +.lnid-align-objects-left-3::before { content: "\f0093"; } +.lnid-align-objects-left-3::after { content: "\f0092"; } +.lnid-align-objects-right::before { content: "\f009b"; } +.lnid-align-objects-right::after { content: "\f009a"; } +.lnid-align-objects-right-2::before { content: "\f0097"; } +.lnid-align-objects-right-2::after { content: "\f0096"; } +.lnid-align-objects-right-3::before { content: "\f0099"; } +.lnid-align-objects-right-3::after { content: "\f0098"; } +.lnid-align-objects-top::before { content: "\f00a1"; } +.lnid-align-objects-top::after { content: "\f00a0"; } +.lnid-align-objects-top-2::before { content: "\f009d"; } +.lnid-align-objects-top-2::after { content: "\f009c"; } +.lnid-align-objects-top-3::before { content: "\f009f"; } +.lnid-align-objects-top-3::after { content: "\f009e"; } +.lnid-align-text-center::before { content: "\f00a3"; } +.lnid-align-text-center::after { content: "\f00a2"; } +.lnid-align-text-justify::before { content: "\f00a7"; } +.lnid-align-text-justify::after { content: "\f00a6"; } +.lnid-align-text-justify-disabled::before { content: "\f00a5"; } +.lnid-align-text-justify-disabled::after { content: "\f00a4"; } +.lnid-align-text-left::before { content: "\f00a9"; } +.lnid-align-text-left::after { content: "\f00a8"; } +.lnid-align-text-right::before { content: "\f00ab"; } +.lnid-align-text-right::after { content: "\f00aa"; } +.lnid-all-bookmark-1::before { content: "\f00ad"; } +.lnid-all-bookmark-1::after { content: "\f00ac"; } +.lnid-all-bookmark-2::before { content: "\f00af"; } +.lnid-all-bookmark-2::after { content: "\f00ae"; } +.lnid-all-bookmark-3::before { content: "\f00b1"; } +.lnid-all-bookmark-3::after { content: "\f00b0"; } +.lnid-ambulance-1::before { content: "\f00b3"; } +.lnid-ambulance-1::after { content: "\f00b2"; } +.lnid-ambulance-2::before { content: "\f00b5"; } +.lnid-ambulance-2::after { content: "\f00b4"; } +.lnid-ambulance-3::before { content: "\f00b7"; } +.lnid-ambulance-3::after { content: "\f00b6"; } +.lnid-ambulance-4::before { content: "\f00b9"; } +.lnid-ambulance-4::after { content: "\f00b8"; } +.lnid-ambulance-siren-1::before { content: "\f00bb"; } +.lnid-ambulance-siren-1::after { content: "\f00ba"; } +.lnid-ambulance-siren-2::before { content: "\f00bd"; } +.lnid-ambulance-siren-2::after { content: "\f00bc"; } +.lnid-anchor::before { content: "\f00bf"; } +.lnid-anchor::after { content: "\f00be"; } +.lnid-android-1::before { content: "\f00c1"; } +.lnid-android-1::after { content: "\f00c0"; } +.lnid-android-2::before { content: "\f00c3"; } +.lnid-android-2::after { content: "\f00c2"; } +.lnid-angle-double-down::before { content: "\f00c5"; } +.lnid-angle-double-down::after { content: "\f00c4"; } +.lnid-angle-double-left::before { content: "\f00c7"; } +.lnid-angle-double-left::after { content: "\f00c6"; } +.lnid-angle-double-right::before { content: "\f00c9"; } +.lnid-angle-double-right::after { content: "\f00c8"; } +.lnid-angle-double-up::before { content: "\f00cb"; } +.lnid-angle-double-up::after { content: "\f00ca"; } +.lnid-apartment-1::before { content: "\f00d1"; } +.lnid-apartment-1::after { content: "\f00d0"; } +.lnid-apartment-10::before { content: "\f00cd"; } +.lnid-apartment-10::after { content: "\f00cc"; } +.lnid-apartment-11::before { content: "\f00cf"; } +.lnid-apartment-11::after { content: "\f00ce"; } +.lnid-apartment-2::before { content: "\f00d3"; } +.lnid-apartment-2::after { content: "\f00d2"; } +.lnid-apartment-3::before { content: "\f00d5"; } +.lnid-apartment-3::after { content: "\f00d4"; } +.lnid-apartment-4::before { content: "\f00d7"; } +.lnid-apartment-4::after { content: "\f00d6"; } +.lnid-apartment-5::before { content: "\f00d9"; } +.lnid-apartment-5::after { content: "\f00d8"; } +.lnid-apartment-6::before { content: "\f00db"; } +.lnid-apartment-6::after { content: "\f00da"; } +.lnid-apartment-7::before { content: "\f00dd"; } +.lnid-apartment-7::after { content: "\f00dc"; } +.lnid-apartment-8::before { content: "\f00df"; } +.lnid-apartment-8::after { content: "\f00de"; } +.lnid-apartment-9::before { content: "\f00e1"; } +.lnid-apartment-9::after { content: "\f00e0"; } +.lnid-apple::before { content: "\f00e5"; } +.lnid-apple::after { content: "\f00e4"; } +.lnid-apple-leaf::before { content: "\f00e3"; } +.lnid-apple-leaf::after { content: "\f00e2"; } +.lnid-arch::before { content: "\f00e7"; } +.lnid-arch::after { content: "\f00e6"; } +.lnid-archway::before { content: "\f00f5"; } +.lnid-archway::after { content: "\f00f4"; } +.lnid-archway-check-circle::before { content: "\f00e9"; } +.lnid-archway-check-circle::after { content: "\f00e8"; } +.lnid-archway-disabled-1::before { content: "\f00eb"; } +.lnid-archway-disabled-1::after { content: "\f00ea"; } +.lnid-archway-disabled-2::before { content: "\f00ed"; } +.lnid-archway-disabled-2::after { content: "\f00ec"; } +.lnid-archway-error-circle::before { content: "\f00ef"; } +.lnid-archway-error-circle::after { content: "\f00ee"; } +.lnid-archway-fire::before { content: "\f00f1"; } +.lnid-archway-fire::after { content: "\f00f0"; } +.lnid-archway-xmark-circle::before { content: "\f00f3"; } +.lnid-archway-xmark-circle::after { content: "\f00f2"; } +.lnid-arrow-2-angular-bottom-left::before { content: "\f00f7"; } +.lnid-arrow-2-angular-bottom-left::after { content: "\f00f6"; } +.lnid-arrow-2-angular-bottom-right::before { content: "\f00f9"; } +.lnid-arrow-2-angular-bottom-right::after { content: "\f00f8"; } +.lnid-arrow-2-angular-top-left::before { content: "\f00fb"; } +.lnid-arrow-2-angular-top-left::after { content: "\f00fa"; } +.lnid-arrow-2-angular-top-right::before { content: "\f00fd"; } +.lnid-arrow-2-angular-top-right::after { content: "\f00fc"; } +.lnid-arrow-2-both-direction-horizontal::before { content: "\f00ff"; } +.lnid-arrow-2-both-direction-horizontal::after { content: "\f00fe"; } +.lnid-arrow-2-both-direction-vertical::before { content: "\f0101"; } +.lnid-arrow-2-both-direction-vertical::after { content: "\f0100"; } +.lnid-arrow-2-downward::before { content: "\f0103"; } +.lnid-arrow-2-downward::after { content: "\f0102"; } +.lnid-arrow-2-left::before { content: "\f0105"; } +.lnid-arrow-2-left::after { content: "\f0104"; } +.lnid-arrow-2-right::before { content: "\f0107"; } +.lnid-arrow-2-right::after { content: "\f0106"; } +.lnid-arrow-2-turn-left::before { content: "\f010d"; } +.lnid-arrow-2-turn-left::after { content: "\f010c"; } +.lnid-arrow-2-turn-left-down::before { content: "\f0109"; } +.lnid-arrow-2-turn-left-down::after { content: "\f0108"; } +.lnid-arrow-2-turn-left-up::before { content: "\f010b"; } +.lnid-arrow-2-turn-left-up::after { content: "\f010a"; } +.lnid-arrow-2-turn-right::before { content: "\f0113"; } +.lnid-arrow-2-turn-right::after { content: "\f0112"; } +.lnid-arrow-2-turn-right-down::before { content: "\f010f"; } +.lnid-arrow-2-turn-right-down::after { content: "\f010e"; } +.lnid-arrow-2-turn-right-up::before { content: "\f0111"; } +.lnid-arrow-2-turn-right-up::after { content: "\f0110"; } +.lnid-arrow-2-upward::before { content: "\f0115"; } +.lnid-arrow-2-upward::after { content: "\f0114"; } +.lnid-arrow-all-direction::before { content: "\f0117"; } +.lnid-arrow-all-direction::after { content: "\f0116"; } +.lnid-arrow-angular-bottom-left-square::before { content: "\f0119"; } +.lnid-arrow-angular-bottom-left-square::after { content: "\f0118"; } +.lnid-arrow-angular-bottom-right-square::before { content: "\f011b"; } +.lnid-arrow-angular-bottom-right-square::after { content: "\f011a"; } +.lnid-arrow-angular-top-left::before { content: "\f011f"; } +.lnid-arrow-angular-top-left::after { content: "\f011e"; } +.lnid-arrow-angular-top-left-square::before { content: "\f011d"; } +.lnid-arrow-angular-top-left-square::after { content: "\f011c"; } +.lnid-arrow-angular-top-right::before { content: "\f0123"; } +.lnid-arrow-angular-top-right::after { content: "\f0122"; } +.lnid-arrow-angular-top-right-square::before { content: "\f0121"; } +.lnid-arrow-angular-top-right-square::after { content: "\f0120"; } +.lnid-arrow-both-direction-1::before { content: "\f0125"; } +.lnid-arrow-both-direction-1::after { content: "\f0124"; } +.lnid-arrow-both-direction-2::before { content: "\f0127"; } +.lnid-arrow-both-direction-2::after { content: "\f0126"; } +.lnid-arrow-both-direction-3::before { content: "\f0129"; } +.lnid-arrow-both-direction-3::after { content: "\f0128"; } +.lnid-arrow-both-direction-4::before { content: "\f012b"; } +.lnid-arrow-both-direction-4::after { content: "\f012a"; } +.lnid-arrow-both-direction-5::before { content: "\f012d"; } +.lnid-arrow-both-direction-5::after { content: "\f012c"; } +.lnid-arrow-both-direction-6::before { content: "\f012f"; } +.lnid-arrow-both-direction-6::after { content: "\f012e"; } +.lnid-arrow-both-direction-7::before { content: "\f0131"; } +.lnid-arrow-both-direction-7::after { content: "\f0130"; } +.lnid-arrow-both-direction-8::before { content: "\f0133"; } +.lnid-arrow-both-direction-8::after { content: "\f0132"; } +.lnid-arrow-both-direction-horizontal::before { content: "\f0137"; } +.lnid-arrow-both-direction-horizontal::after { content: "\f0136"; } +.lnid-arrow-both-direction-horizontal-1::before { content: "\f0135"; } +.lnid-arrow-both-direction-horizontal-1::after { content: "\f0134"; } +.lnid-arrow-both-direction-vertical::before { content: "\f013b"; } +.lnid-arrow-both-direction-vertical::after { content: "\f013a"; } +.lnid-arrow-both-direction-vertical-1::before { content: "\f0139"; } +.lnid-arrow-both-direction-vertical-1::after { content: "\f0138"; } +.lnid-arrow-circle-down::before { content: "\f013d"; } +.lnid-arrow-circle-down::after { content: "\f013c"; } +.lnid-arrow-circle-left::before { content: "\f013f"; } +.lnid-arrow-circle-left::after { content: "\f013e"; } +.lnid-arrow-circle-right::before { content: "\f0141"; } +.lnid-arrow-circle-right::after { content: "\f0140"; } +.lnid-arrow-curved-multiple-both-horizontal::before { content: "\f0143"; } +.lnid-arrow-curved-multiple-both-horizontal::after { content: "\f0142"; } +.lnid-arrow-curved-multiple-both-vertical::before { content: "\f0145"; } +.lnid-arrow-curved-multiple-both-vertical::after { content: "\f0144"; } +.lnid-arrow-curved-multiple-down::before { content: "\f0147"; } +.lnid-arrow-curved-multiple-down::after { content: "\f0146"; } +.lnid-arrow-curved-multiple-left::before { content: "\f0149"; } +.lnid-arrow-curved-multiple-left::after { content: "\f0148"; } +.lnid-arrow-curved-multiple-right::before { content: "\f014b"; } +.lnid-arrow-curved-multiple-right::after { content: "\f014a"; } +.lnid-arrow-curved-multiple-up::before { content: "\f014d"; } +.lnid-arrow-curved-multiple-up::after { content: "\f014c"; } +.lnid-arrow-diamond-down::before { content: "\f014f"; } +.lnid-arrow-diamond-down::after { content: "\f014e"; } +.lnid-arrow-diamond-left::before { content: "\f0151"; } +.lnid-arrow-diamond-left::after { content: "\f0150"; } +.lnid-arrow-double-both-direction-1::before { content: "\f0153"; } +.lnid-arrow-double-both-direction-1::after { content: "\f0152"; } +.lnid-arrow-double-center-horizontal::before { content: "\f0155"; } +.lnid-arrow-double-center-horizontal::after { content: "\f0154"; } +.lnid-arrow-double-center-vertical::before { content: "\f0157"; } +.lnid-arrow-double-center-vertical::after { content: "\f0156"; } +.lnid-arrow-double-downward::before { content: "\f0159"; } +.lnid-arrow-double-downward::after { content: "\f0158"; } +.lnid-arrow-double-left::before { content: "\f015b"; } +.lnid-arrow-double-left::after { content: "\f015a"; } +.lnid-arrow-double-right::before { content: "\f015d"; } +.lnid-arrow-double-right::after { content: "\f015c"; } +.lnid-arrow-double-upward::before { content: "\f015f"; } +.lnid-arrow-double-upward::after { content: "\f015e"; } +.lnid-arrow-downward::before { content: "\f0161"; } +.lnid-arrow-downward::after { content: "\f0160"; } +.lnid-arrow-left::before { content: "\f0169"; } +.lnid-arrow-left::after { content: "\f0168"; } +.lnid-arrow-left-circle::before { content: "\f0163"; } +.lnid-arrow-left-circle::after { content: "\f0162"; } +.lnid-arrow-left-right::before { content: "\f0165"; } +.lnid-arrow-left-right::after { content: "\f0164"; } +.lnid-arrow-left-square::before { content: "\f0167"; } +.lnid-arrow-left-square::after { content: "\f0166"; } +.lnid-arrow-line-down::before { content: "\f016b"; } +.lnid-arrow-line-down::after { content: "\f016a"; } +.lnid-arrow-line-left::before { content: "\f016d"; } +.lnid-arrow-line-left::after { content: "\f016c"; } +.lnid-arrow-right::before { content: "\f0175"; } +.lnid-arrow-right::after { content: "\f0174"; } +.lnid-arrow-right-circle::before { content: "\f016f"; } +.lnid-arrow-right-circle::after { content: "\f016e"; } +.lnid-arrow-right-left::before { content: "\f0171"; } +.lnid-arrow-right-left::after { content: "\f0170"; } +.lnid-arrow-right-square::before { content: "\f0173"; } +.lnid-arrow-right-square::after { content: "\f0172"; } +.lnid-arrow-square-down::before { content: "\f0177"; } +.lnid-arrow-square-down::after { content: "\f0176"; } +.lnid-arrow-square-left::before { content: "\f0179"; } +.lnid-arrow-square-left::after { content: "\f0178"; } +.lnid-arrow-tripple-direction::before { content: "\f017b"; } +.lnid-arrow-tripple-direction::after { content: "\f017a"; } +.lnid-arrow-up-down-1::before { content: "\f017d"; } +.lnid-arrow-up-down-1::after { content: "\f017c"; } +.lnid-arrow-up-down-2::before { content: "\f017f"; } +.lnid-arrow-up-down-2::after { content: "\f017e"; } +.lnid-arrow-upward::before { content: "\f0181"; } +.lnid-arrow-upward::after { content: "\f0180"; } +.lnid-atm-rechtangle::before { content: "\f0183"; } +.lnid-atm-rechtangle::after { content: "\f0182"; } +.lnid-atom::before { content: "\f0187"; } +.lnid-atom::after { content: "\f0186"; } +.lnid-atom-ai::before { content: "\f0185"; } +.lnid-atom-ai::after { content: "\f0184"; } +.lnid-avocado::before { content: "\f0189"; } +.lnid-avocado::after { content: "\f0188"; } +.lnid-award-1::before { content: "\f018b"; } +.lnid-award-1::after { content: "\f018a"; } +.lnid-award-2::before { content: "\f018d"; } +.lnid-award-2::after { content: "\f018c"; } +.lnid-award-3::before { content: "\f018f"; } +.lnid-award-3::after { content: "\f018e"; } +.lnid-award-4::before { content: "\f0191"; } +.lnid-award-4::after { content: "\f0190"; } +.lnid-award-5::before { content: "\f0193"; } +.lnid-award-5::after { content: "\f0192"; } +.lnid-award-6::before { content: "\f0195"; } +.lnid-award-6::after { content: "\f0194"; } +.lnid-award-7::before { content: "\f0197"; } +.lnid-award-7::after { content: "\f0196"; } +.lnid-axe::before { content: "\f0199"; } +.lnid-axe::after { content: "\f0198"; } +.lnid-baby::before { content: "\f019b"; } +.lnid-baby::after { content: "\f019a"; } +.lnid-backpack-1::before { content: "\f019d"; } +.lnid-backpack-1::after { content: "\f019c"; } +.lnid-backpack-2::before { content: "\f019f"; } +.lnid-backpack-2::after { content: "\f019e"; } +.lnid-backspace-left::before { content: "\f01a1"; } +.lnid-backspace-left::after { content: "\f01a0"; } +.lnid-backspace-right::before { content: "\f01a3"; } +.lnid-backspace-right::after { content: "\f01a2"; } +.lnid-backward::before { content: "\f01a5"; } +.lnid-backward::after { content: "\f01a4"; } +.lnid-bacon::before { content: "\f01a7"; } +.lnid-bacon::after { content: "\f01a6"; } +.lnid-bacteria::before { content: "\f01ad"; } +.lnid-bacteria::after { content: "\f01ac"; } +.lnid-bacteria-ai::before { content: "\f01ab"; } +.lnid-bacteria-ai::after { content: "\f01aa"; } +.lnid-bacteria-ai-2::before { content: "\f01a9"; } +.lnid-bacteria-ai-2::after { content: "\f01a8"; } +.lnid-badge::before { content: "\f01d1"; } +.lnid-badge::after { content: "\f01d0"; } +.lnid-badge-bolt-1::before { content: "\f01af"; } +.lnid-badge-bolt-1::after { content: "\f01ae"; } +.lnid-badge-bolt-2::before { content: "\f01b1"; } +.lnid-badge-bolt-2::after { content: "\f01b0"; } +.lnid-badge-check::before { content: "\f01b3"; } +.lnid-badge-check::after { content: "\f01b2"; } +.lnid-badge-circle::before { content: "\f01b5"; } +.lnid-badge-circle::after { content: "\f01b4"; } +.lnid-badge-decagram-dollar::before { content: "\f01b7"; } +.lnid-badge-decagram-dollar::after { content: "\f01b6"; } +.lnid-badge-decagram-percent::before { content: "\f01b9"; } +.lnid-badge-decagram-percent::after { content: "\f01b8"; } +.lnid-badge-dollar-1::before { content: "\f01bb"; } +.lnid-badge-dollar-1::after { content: "\f01ba"; } +.lnid-badge-heart::before { content: "\f01bd"; } +.lnid-badge-heart::after { content: "\f01bc"; } +.lnid-badge-number::before { content: "\f01bf"; } +.lnid-badge-number::after { content: "\f01be"; } +.lnid-badge-shield::before { content: "\f01c3"; } +.lnid-badge-shield::after { content: "\f01c2"; } +.lnid-badge-shield-dollar::before { content: "\f01c1"; } +.lnid-badge-shield-dollar::after { content: "\f01c0"; } +.lnid-badge-star::before { content: "\f01cf"; } +.lnid-badge-star::after { content: "\f01ce"; } +.lnid-badge-star-1::before { content: "\f01c5"; } +.lnid-badge-star-1::after { content: "\f01c4"; } +.lnid-badge-star-2::before { content: "\f01c7"; } +.lnid-badge-star-2::after { content: "\f01c6"; } +.lnid-badge-star-3::before { content: "\f01c9"; } +.lnid-badge-star-3::after { content: "\f01c8"; } +.lnid-badge-star-dollar::before { content: "\f01cb"; } +.lnid-badge-star-dollar::after { content: "\f01ca"; } +.lnid-badge-star-percent::before { content: "\f01cd"; } +.lnid-badge-star-percent::after { content: "\f01cc"; } +.lnid-bag-1::before { content: "\f01d5"; } +.lnid-bag-1::after { content: "\f01d4"; } +.lnid-bag-10::before { content: "\f01d3"; } +.lnid-bag-10::after { content: "\f01d2"; } +.lnid-bag-2::before { content: "\f01d7"; } +.lnid-bag-2::after { content: "\f01d6"; } +.lnid-bag-3::before { content: "\f01d9"; } +.lnid-bag-3::after { content: "\f01d8"; } +.lnid-bag-4::before { content: "\f01db"; } +.lnid-bag-4::after { content: "\f01da"; } +.lnid-bag-5::before { content: "\f01dd"; } +.lnid-bag-5::after { content: "\f01dc"; } +.lnid-bag-6::before { content: "\f01df"; } +.lnid-bag-6::after { content: "\f01de"; } +.lnid-bag-7::before { content: "\f01e1"; } +.lnid-bag-7::after { content: "\f01e0"; } +.lnid-bag-8::before { content: "\f01e3"; } +.lnid-bag-8::after { content: "\f01e2"; } +.lnid-bag-9::before { content: "\f01e5"; } +.lnid-bag-9::after { content: "\f01e4"; } +.lnid-bag-bitcoin::before { content: "\f01e7"; } +.lnid-bag-bitcoin::after { content: "\f01e6"; } +.lnid-bag-gym::before { content: "\f01e9"; } +.lnid-bag-gym::after { content: "\f01e8"; } +.lnid-bag-shopping-1::before { content: "\f01ed"; } +.lnid-bag-shopping-1::after { content: "\f01ec"; } +.lnid-bag-shopping-10::before { content: "\f01eb"; } +.lnid-bag-shopping-10::after { content: "\f01ea"; } +.lnid-bag-shopping-2::before { content: "\f01ef"; } +.lnid-bag-shopping-2::after { content: "\f01ee"; } +.lnid-bag-shopping-3::before { content: "\f01f1"; } +.lnid-bag-shopping-3::after { content: "\f01f0"; } +.lnid-bag-shopping-4::before { content: "\f01f3"; } +.lnid-bag-shopping-4::after { content: "\f01f2"; } +.lnid-bag-shopping-5::before { content: "\f01f5"; } +.lnid-bag-shopping-5::after { content: "\f01f4"; } +.lnid-bag-shopping-6::before { content: "\f01f7"; } +.lnid-bag-shopping-6::after { content: "\f01f6"; } +.lnid-bag-shopping-7::before { content: "\f01f9"; } +.lnid-bag-shopping-7::after { content: "\f01f8"; } +.lnid-bag-shopping-8::before { content: "\f01fb"; } +.lnid-bag-shopping-8::after { content: "\f01fa"; } +.lnid-bag-shopping-9::before { content: "\f01fd"; } +.lnid-bag-shopping-9::after { content: "\f01fc"; } +.lnid-bag-shopping-arrow-downward::before { content: "\f01ff"; } +.lnid-bag-shopping-arrow-downward::after { content: "\f01fe"; } +.lnid-bag-shopping-arrow-left::before { content: "\f0201"; } +.lnid-bag-shopping-arrow-left::after { content: "\f0200"; } +.lnid-bag-shopping-arrow-right::before { content: "\f0203"; } +.lnid-bag-shopping-arrow-right::after { content: "\f0202"; } +.lnid-bag-shopping-arrow-upward::before { content: "\f0205"; } +.lnid-bag-shopping-arrow-upward::after { content: "\f0204"; } +.lnid-bag-shopping-chart::before { content: "\f0207"; } +.lnid-bag-shopping-chart::after { content: "\f0206"; } +.lnid-bag-shopping-check-circle::before { content: "\f0209"; } +.lnid-bag-shopping-check-circle::after { content: "\f0208"; } +.lnid-bag-shopping-disabled-1::before { content: "\f020b"; } +.lnid-bag-shopping-disabled-1::after { content: "\f020a"; } +.lnid-bag-shopping-disabled-2::before { content: "\f020d"; } +.lnid-bag-shopping-disabled-2::after { content: "\f020c"; } +.lnid-bag-shopping-dollar::before { content: "\f020f"; } +.lnid-bag-shopping-dollar::after { content: "\f020e"; } +.lnid-bag-shopping-fire::before { content: "\f0211"; } +.lnid-bag-shopping-fire::after { content: "\f0210"; } +.lnid-bag-shopping-food::before { content: "\f0213"; } +.lnid-bag-shopping-food::after { content: "\f0212"; } +.lnid-bag-shopping-heart::before { content: "\f0217"; } +.lnid-bag-shopping-heart::after { content: "\f0216"; } +.lnid-bag-shopping-heart-circle::before { content: "\f0215"; } +.lnid-bag-shopping-heart-circle::after { content: "\f0214"; } +.lnid-bag-shopping-leaf::before { content: "\f0219"; } +.lnid-bag-shopping-leaf::after { content: "\f0218"; } +.lnid-bag-shopping-list::before { content: "\f021b"; } +.lnid-bag-shopping-list::after { content: "\f021a"; } +.lnid-bag-shopping-locked::before { content: "\f021d"; } +.lnid-bag-shopping-locked::after { content: "\f021c"; } +.lnid-bag-shopping-map-marker::before { content: "\f021f"; } +.lnid-bag-shopping-map-marker::after { content: "\f021e"; } +.lnid-bag-shopping-minus-circle::before { content: "\f0221"; } +.lnid-bag-shopping-minus-circle::after { content: "\f0220"; } +.lnid-bag-shopping-money::before { content: "\f0223"; } +.lnid-bag-shopping-money::after { content: "\f0222"; } +.lnid-bag-shopping-moon::before { content: "\f0225"; } +.lnid-bag-shopping-moon::after { content: "\f0224"; } +.lnid-bag-shopping-moving::before { content: "\f0229"; } +.lnid-bag-shopping-moving::after { content: "\f0228"; } +.lnid-bag-shopping-moving-ai::before { content: "\f0227"; } +.lnid-bag-shopping-moving-ai::after { content: "\f0226"; } +.lnid-bag-shopping-multiple::before { content: "\f022b"; } +.lnid-bag-shopping-multiple::after { content: "\f022a"; } +.lnid-bag-shopping-nfc::before { content: "\f022d"; } +.lnid-bag-shopping-nfc::after { content: "\f022c"; } +.lnid-bag-shopping-paperclip::before { content: "\f022f"; } +.lnid-bag-shopping-paperclip::after { content: "\f022e"; } +.lnid-bag-shopping-percent::before { content: "\f0231"; } +.lnid-bag-shopping-percent::after { content: "\f0230"; } +.lnid-bag-shopping-phone::before { content: "\f0233"; } +.lnid-bag-shopping-phone::after { content: "\f0232"; } +.lnid-bag-shopping-plus-circle::before { content: "\f0235"; } +.lnid-bag-shopping-plus-circle::after { content: "\f0234"; } +.lnid-bag-shopping-question-mark::before { content: "\f0237"; } +.lnid-bag-shopping-question-mark::after { content: "\f0236"; } +.lnid-bag-shopping-recycle::before { content: "\f0239"; } +.lnid-bag-shopping-recycle::after { content: "\f0238"; } +.lnid-bag-shopping-refresh::before { content: "\f023b"; } +.lnid-bag-shopping-refresh::after { content: "\f023a"; } +.lnid-bag-shopping-search::before { content: "\f023d"; } +.lnid-bag-shopping-search::after { content: "\f023c"; } +.lnid-bag-shopping-shield::before { content: "\f023f"; } +.lnid-bag-shopping-shield::after { content: "\f023e"; } +.lnid-bag-shopping-smile::before { content: "\f0241"; } +.lnid-bag-shopping-smile::after { content: "\f0240"; } +.lnid-bag-shopping-star::before { content: "\f0243"; } +.lnid-bag-shopping-star::after { content: "\f0242"; } +.lnid-bag-shopping-sun::before { content: "\f0245"; } +.lnid-bag-shopping-sun::after { content: "\f0244"; } +.lnid-bag-shopping-time::before { content: "\f0247"; } +.lnid-bag-shopping-time::after { content: "\f0246"; } +.lnid-bag-shopping-timer::before { content: "\f0249"; } +.lnid-bag-shopping-timer::after { content: "\f0248"; } +.lnid-bag-shopping-unlocked::before { content: "\f024b"; } +.lnid-bag-shopping-unlocked::after { content: "\f024a"; } +.lnid-bag-shopping-user::before { content: "\f024d"; } +.lnid-bag-shopping-user::after { content: "\f024c"; } +.lnid-bag-shopping-vr::before { content: "\f024f"; } +.lnid-bag-shopping-vr::after { content: "\f024e"; } +.lnid-bag-shopping-xmark-circle::before { content: "\f0251"; } +.lnid-bag-shopping-xmark-circle::after { content: "\f0250"; } +.lnid-baguette-1::before { content: "\f0253"; } +.lnid-baguette-1::after { content: "\f0252"; } +.lnid-baguette-2::before { content: "\f0255"; } +.lnid-baguette-2::after { content: "\f0254"; } +.lnid-balance-finance::before { content: "\f0257"; } +.lnid-balance-finance::after { content: "\f0256"; } +.lnid-balloon-1::before { content: "\f0259"; } +.lnid-balloon-1::after { content: "\f0258"; } +.lnid-balloon-2::before { content: "\f025b"; } +.lnid-balloon-2::after { content: "\f025a"; } +.lnid-balloon-heart::before { content: "\f025d"; } +.lnid-balloon-heart::after { content: "\f025c"; } +.lnid-balloon-rope-1::before { content: "\f025f"; } +.lnid-balloon-rope-1::after { content: "\f025e"; } +.lnid-balloon-rope-2::before { content: "\f0261"; } +.lnid-balloon-rope-2::after { content: "\f0260"; } +.lnid-balloon-rope-3::before { content: "\f0263"; } +.lnid-balloon-rope-3::after { content: "\f0262"; } +.lnid-balloons::before { content: "\f0269"; } +.lnid-balloons::after { content: "\f0268"; } +.lnid-balloons-heart-1::before { content: "\f0265"; } +.lnid-balloons-heart-1::after { content: "\f0264"; } +.lnid-balloons-heart-2::before { content: "\f0267"; } +.lnid-balloons-heart-2::after { content: "\f0266"; } +.lnid-ban-1::before { content: "\f026b"; } +.lnid-ban-1::after { content: "\f026a"; } +.lnid-ban-2::before { content: "\f026d"; } +.lnid-ban-2::after { content: "\f026c"; } +.lnid-ban-battery::before { content: "\f026f"; } +.lnid-ban-battery::after { content: "\f026e"; } +.lnid-ban-brickfield::before { content: "\f0271"; } +.lnid-ban-brickfield::after { content: "\f0270"; } +.lnid-ban-bug::before { content: "\f0273"; } +.lnid-ban-bug::after { content: "\f0272"; } +.lnid-ban-burger::before { content: "\f0275"; } +.lnid-ban-burger::after { content: "\f0274"; } +.lnid-ban-cigarette::before { content: "\f0277"; } +.lnid-ban-cigarette::after { content: "\f0276"; } +.lnid-ban-drinks::before { content: "\f0279"; } +.lnid-ban-drinks::after { content: "\f0278"; } +.lnid-ban-id::before { content: "\f027b"; } +.lnid-ban-id::after { content: "\f027a"; } +.lnid-ban-leaf::before { content: "\f027d"; } +.lnid-ban-leaf::after { content: "\f027c"; } +.lnid-ban-money::before { content: "\f027f"; } +.lnid-ban-money::after { content: "\f027e"; } +.lnid-ban-music::before { content: "\f0281"; } +.lnid-ban-music::after { content: "\f0280"; } +.lnid-ban-parking::before { content: "\f0283"; } +.lnid-ban-parking::after { content: "\f0282"; } +.lnid-ban-phone::before { content: "\f0285"; } +.lnid-ban-phone::after { content: "\f0284"; } +.lnid-ban-plastic::before { content: "\f0287"; } +.lnid-ban-plastic::after { content: "\f0286"; } +.lnid-ban-user::before { content: "\f0289"; } +.lnid-ban-user::after { content: "\f0288"; } +.lnid-banana::before { content: "\f028b"; } +.lnid-banana::after { content: "\f028a"; } +.lnid-bananas::before { content: "\f028d"; } +.lnid-bananas::after { content: "\f028c"; } +.lnid-bandage-1::before { content: "\f028f"; } +.lnid-bandage-1::after { content: "\f028e"; } +.lnid-bandage-2::before { content: "\f0291"; } +.lnid-bandage-2::after { content: "\f0290"; } +.lnid-bandage-leg::before { content: "\f0293"; } +.lnid-bandage-leg::after { content: "\f0292"; } +.lnid-bank-1::before { content: "\f0295"; } +.lnid-bank-1::after { content: "\f0294"; } +.lnid-bank-2::before { content: "\f0297"; } +.lnid-bank-2::after { content: "\f0296"; } +.lnid-bank-3::before { content: "\f0299"; } +.lnid-bank-3::after { content: "\f0298"; } +.lnid-banner-go::before { content: "\f029b"; } +.lnid-banner-go::after { content: "\f029a"; } +.lnid-bar-chart-1::before { content: "\f029d"; } +.lnid-bar-chart-1::after { content: "\f029c"; } +.lnid-bar-chart-2::before { content: "\f029f"; } +.lnid-bar-chart-2::after { content: "\f029e"; } +.lnid-bar-chart-3::before { content: "\f02a1"; } +.lnid-bar-chart-3::after { content: "\f02a0"; } +.lnid-bar-chart-4::before { content: "\f02a3"; } +.lnid-bar-chart-4::after { content: "\f02a2"; } +.lnid-bar-chart-5::before { content: "\f02a5"; } +.lnid-bar-chart-5::after { content: "\f02a4"; } +.lnid-bar-chart-6::before { content: "\f02a7"; } +.lnid-bar-chart-6::after { content: "\f02a6"; } +.lnid-bar-chart-7::before { content: "\f02a9"; } +.lnid-bar-chart-7::after { content: "\f02a8"; } +.lnid-bar-chart-ai-1::before { content: "\f02ab"; } +.lnid-bar-chart-ai-1::after { content: "\f02aa"; } +.lnid-bar-chart-ai-2::before { content: "\f02ad"; } +.lnid-bar-chart-ai-2::after { content: "\f02ac"; } +.lnid-bar-chart-ai-3::before { content: "\f02af"; } +.lnid-bar-chart-ai-3::after { content: "\f02ae"; } +.lnid-bar-chart-ai-4::before { content: "\f02b1"; } +.lnid-bar-chart-ai-4::after { content: "\f02b0"; } +.lnid-bar-chart-ai-5::before { content: "\f02b3"; } +.lnid-bar-chart-ai-5::after { content: "\f02b2"; } +.lnid-bar-chart-arrow-down::before { content: "\f02b5"; } +.lnid-bar-chart-arrow-down::after { content: "\f02b4"; } +.lnid-bar-chart-arrow-up::before { content: "\f02b7"; } +.lnid-bar-chart-arrow-up::after { content: "\f02b6"; } +.lnid-bar-chart-dollar::before { content: "\f02b9"; } +.lnid-bar-chart-dollar::after { content: "\f02b8"; } +.lnid-bar-chart-rocket-1::before { content: "\f02bb"; } +.lnid-bar-chart-rocket-1::after { content: "\f02ba"; } +.lnid-bar-chart-rocket-2::before { content: "\f02bd"; } +.lnid-bar-chart-rocket-2::after { content: "\f02bc"; } +.lnid-bar-chart-search::before { content: "\f02bf"; } +.lnid-bar-chart-search::after { content: "\f02be"; } +.lnid-bar-chart-square::before { content: "\f02c1"; } +.lnid-bar-chart-square::after { content: "\f02c0"; } +.lnid-bar-code::before { content: "\f02c7"; } +.lnid-bar-code::after { content: "\f02c6"; } +.lnid-bar-code-scan::before { content: "\f02c3"; } +.lnid-bar-code-scan::after { content: "\f02c2"; } +.lnid-bar-code-search::before { content: "\f02c5"; } +.lnid-bar-code-search::after { content: "\f02c4"; } +.lnid-barn::before { content: "\f02c9"; } +.lnid-barn::after { content: "\f02c8"; } +.lnid-basket-ai::before { content: "\f02cb"; } +.lnid-basket-ai::after { content: "\f02ca"; } +.lnid-basket-shopping-1::before { content: "\f02cd"; } +.lnid-basket-shopping-1::after { content: "\f02cc"; } +.lnid-basket-shopping-2::before { content: "\f02cf"; } +.lnid-basket-shopping-2::after { content: "\f02ce"; } +.lnid-basket-shopping-3::before { content: "\f02d1"; } +.lnid-basket-shopping-3::after { content: "\f02d0"; } +.lnid-basket-shopping-arrow-downward::before { content: "\f02d3"; } +.lnid-basket-shopping-arrow-downward::after { content: "\f02d2"; } +.lnid-basket-shopping-arrow-left::before { content: "\f02d5"; } +.lnid-basket-shopping-arrow-left::after { content: "\f02d4"; } +.lnid-basket-shopping-arrow-right::before { content: "\f02d7"; } +.lnid-basket-shopping-arrow-right::after { content: "\f02d6"; } +.lnid-basket-shopping-arrow-upward::before { content: "\f02d9"; } +.lnid-basket-shopping-arrow-upward::after { content: "\f02d8"; } +.lnid-basket-shopping-chart::before { content: "\f02db"; } +.lnid-basket-shopping-chart::after { content: "\f02da"; } +.lnid-basket-shopping-check-circle::before { content: "\f02dd"; } +.lnid-basket-shopping-check-circle::after { content: "\f02dc"; } +.lnid-basket-shopping-disabled-1::before { content: "\f02df"; } +.lnid-basket-shopping-disabled-1::after { content: "\f02de"; } +.lnid-basket-shopping-disabled-2::before { content: "\f02e1"; } +.lnid-basket-shopping-disabled-2::after { content: "\f02e0"; } +.lnid-basket-shopping-dollar::before { content: "\f02e3"; } +.lnid-basket-shopping-dollar::after { content: "\f02e2"; } +.lnid-basket-shopping-fire::before { content: "\f02e5"; } +.lnid-basket-shopping-fire::after { content: "\f02e4"; } +.lnid-basket-shopping-food::before { content: "\f02e7"; } +.lnid-basket-shopping-food::after { content: "\f02e6"; } +.lnid-basket-shopping-heart::before { content: "\f02eb"; } +.lnid-basket-shopping-heart::after { content: "\f02ea"; } +.lnid-basket-shopping-heart-circle::before { content: "\f02e9"; } +.lnid-basket-shopping-heart-circle::after { content: "\f02e8"; } +.lnid-basket-shopping-leaf::before { content: "\f02ed"; } +.lnid-basket-shopping-leaf::after { content: "\f02ec"; } +.lnid-basket-shopping-list::before { content: "\f02ef"; } +.lnid-basket-shopping-list::after { content: "\f02ee"; } +.lnid-basket-shopping-locked::before { content: "\f02f1"; } +.lnid-basket-shopping-locked::after { content: "\f02f0"; } +.lnid-basket-shopping-map-marker::before { content: "\f02f3"; } +.lnid-basket-shopping-map-marker::after { content: "\f02f2"; } +.lnid-basket-shopping-minus-circle::before { content: "\f02f5"; } +.lnid-basket-shopping-minus-circle::after { content: "\f02f4"; } +.lnid-basket-shopping-money::before { content: "\f02f7"; } +.lnid-basket-shopping-money::after { content: "\f02f6"; } +.lnid-basket-shopping-moon::before { content: "\f02f9"; } +.lnid-basket-shopping-moon::after { content: "\f02f8"; } +.lnid-basket-shopping-nfc::before { content: "\f02fb"; } +.lnid-basket-shopping-nfc::after { content: "\f02fa"; } +.lnid-basket-shopping-paperclip::before { content: "\f02fd"; } +.lnid-basket-shopping-paperclip::after { content: "\f02fc"; } +.lnid-basket-shopping-percent::before { content: "\f02ff"; } +.lnid-basket-shopping-percent::after { content: "\f02fe"; } +.lnid-basket-shopping-phone::before { content: "\f0301"; } +.lnid-basket-shopping-phone::after { content: "\f0300"; } +.lnid-basket-shopping-plus-circle::before { content: "\f0303"; } +.lnid-basket-shopping-plus-circle::after { content: "\f0302"; } +.lnid-basket-shopping-question-mark::before { content: "\f0305"; } +.lnid-basket-shopping-question-mark::after { content: "\f0304"; } +.lnid-basket-shopping-recycle::before { content: "\f0307"; } +.lnid-basket-shopping-recycle::after { content: "\f0306"; } +.lnid-basket-shopping-refresh::before { content: "\f0309"; } +.lnid-basket-shopping-refresh::after { content: "\f0308"; } +.lnid-basket-shopping-search::before { content: "\f030b"; } +.lnid-basket-shopping-search::after { content: "\f030a"; } +.lnid-basket-shopping-shield::before { content: "\f030d"; } +.lnid-basket-shopping-shield::after { content: "\f030c"; } +.lnid-basket-shopping-smile::before { content: "\f030f"; } +.lnid-basket-shopping-smile::after { content: "\f030e"; } +.lnid-basket-shopping-star::before { content: "\f0311"; } +.lnid-basket-shopping-star::after { content: "\f0310"; } +.lnid-basket-shopping-sun::before { content: "\f0313"; } +.lnid-basket-shopping-sun::after { content: "\f0312"; } +.lnid-basket-shopping-time::before { content: "\f0315"; } +.lnid-basket-shopping-time::after { content: "\f0314"; } +.lnid-basket-shopping-timer::before { content: "\f0317"; } +.lnid-basket-shopping-timer::after { content: "\f0316"; } +.lnid-basket-shopping-unlocked::before { content: "\f0319"; } +.lnid-basket-shopping-unlocked::after { content: "\f0318"; } +.lnid-basket-shopping-user::before { content: "\f031b"; } +.lnid-basket-shopping-user::after { content: "\f031a"; } +.lnid-basket-shopping-vr::before { content: "\f031d"; } +.lnid-basket-shopping-vr::after { content: "\f031c"; } +.lnid-basket-shopping-xmark-circle::before { content: "\f031f"; } +.lnid-basket-shopping-xmark-circle::after { content: "\f031e"; } +.lnid-bat::before { content: "\f0321"; } +.lnid-bat::after { content: "\f0320"; } +.lnid-battery-100-percent-full-horizontal::before { content: "\f0323"; } +.lnid-battery-100-percent-full-horizontal::after { content: "\f0322"; } +.lnid-battery-100-percent-full-vertical::before { content: "\f0325"; } +.lnid-battery-100-percent-full-vertical::after { content: "\f0324"; } +.lnid-battery-25-percent-horizontal::before { content: "\f0327"; } +.lnid-battery-25-percent-horizontal::after { content: "\f0326"; } +.lnid-battery-25-percent-vertical::before { content: "\f0329"; } +.lnid-battery-25-percent-vertical::after { content: "\f0328"; } +.lnid-battery-50-percent-horizontal::before { content: "\f032b"; } +.lnid-battery-50-percent-horizontal::after { content: "\f032a"; } +.lnid-battery-50-percent-vertical::before { content: "\f032d"; } +.lnid-battery-50-percent-vertical::after { content: "\f032c"; } +.lnid-battery-75-percent-horizontal::before { content: "\f032f"; } +.lnid-battery-75-percent-horizontal::after { content: "\f032e"; } +.lnid-battery-75-percent-vertical::before { content: "\f0331"; } +.lnid-battery-75-percent-vertical::after { content: "\f0330"; } +.lnid-battery-ai-1::before { content: "\f0333"; } +.lnid-battery-ai-1::after { content: "\f0332"; } +.lnid-battery-ai-2::before { content: "\f0335"; } +.lnid-battery-ai-2::after { content: "\f0334"; } +.lnid-battery-ai-3::before { content: "\f0337"; } +.lnid-battery-ai-3::after { content: "\f0336"; } +.lnid-battery-ai-4::before { content: "\f0339"; } +.lnid-battery-ai-4::after { content: "\f0338"; } +.lnid-battery-ai-5::before { content: "\f033b"; } +.lnid-battery-ai-5::after { content: "\f033a"; } +.lnid-battery-bar-chart::before { content: "\f033d"; } +.lnid-battery-bar-chart::after { content: "\f033c"; } +.lnid-battery-beat::before { content: "\f033f"; } +.lnid-battery-beat::after { content: "\f033e"; } +.lnid-battery-bolt::before { content: "\f0341"; } +.lnid-battery-bolt::after { content: "\f0340"; } +.lnid-battery-car::before { content: "\f0377"; } +.lnid-battery-car::after { content: "\f0376"; } +.lnid-battery-car-bar-chart::before { content: "\f0343"; } +.lnid-battery-car-bar-chart::after { content: "\f0342"; } +.lnid-battery-car-beat::before { content: "\f0345"; } +.lnid-battery-car-beat::after { content: "\f0344"; } +.lnid-battery-car-bolt::before { content: "\f0347"; } +.lnid-battery-car-bolt::after { content: "\f0346"; } +.lnid-battery-car-charging::before { content: "\f0349"; } +.lnid-battery-car-charging::after { content: "\f0348"; } +.lnid-battery-car-check-circle::before { content: "\f034b"; } +.lnid-battery-car-check-circle::after { content: "\f034a"; } +.lnid-battery-car-disabled-1::before { content: "\f034d"; } +.lnid-battery-car-disabled-1::after { content: "\f034c"; } +.lnid-battery-car-disabled-2::before { content: "\f034f"; } +.lnid-battery-car-disabled-2::after { content: "\f034e"; } +.lnid-battery-car-error-circle::before { content: "\f0351"; } +.lnid-battery-car-error-circle::after { content: "\f0350"; } +.lnid-battery-car-fire::before { content: "\f0353"; } +.lnid-battery-car-fire::after { content: "\f0352"; } +.lnid-battery-car-gear::before { content: "\f0355"; } +.lnid-battery-car-gear::after { content: "\f0354"; } +.lnid-battery-car-info-circle::before { content: "\f0357"; } +.lnid-battery-car-info-circle::after { content: "\f0356"; } +.lnid-battery-car-leaf::before { content: "\f0359"; } +.lnid-battery-car-leaf::after { content: "\f0358"; } +.lnid-battery-car-minus-circle::before { content: "\f035b"; } +.lnid-battery-car-minus-circle::after { content: "\f035a"; } +.lnid-battery-car-percent::before { content: "\f035f"; } +.lnid-battery-car-percent::after { content: "\f035e"; } +.lnid-battery-car-percent-circle::before { content: "\f035d"; } +.lnid-battery-car-percent-circle::after { content: "\f035c"; } +.lnid-battery-car-pie-chart::before { content: "\f0361"; } +.lnid-battery-car-pie-chart::after { content: "\f0360"; } +.lnid-battery-car-plus-circle::before { content: "\f0363"; } +.lnid-battery-car-plus-circle::after { content: "\f0362"; } +.lnid-battery-car-plus-minus-1::before { content: "\f0365"; } +.lnid-battery-car-plus-minus-1::after { content: "\f0364"; } +.lnid-battery-car-plus-minus-2::before { content: "\f0367"; } +.lnid-battery-car-plus-minus-2::after { content: "\f0366"; } +.lnid-battery-car-refresh::before { content: "\f0369"; } +.lnid-battery-car-refresh::after { content: "\f0368"; } +.lnid-battery-car-reload::before { content: "\f036b"; } +.lnid-battery-car-reload::after { content: "\f036a"; } +.lnid-battery-car-shield::before { content: "\f036d"; } +.lnid-battery-car-shield::after { content: "\f036c"; } +.lnid-battery-car-time::before { content: "\f036f"; } +.lnid-battery-car-time::after { content: "\f036e"; } +.lnid-battery-car-timer::before { content: "\f0371"; } +.lnid-battery-car-timer::after { content: "\f0370"; } +.lnid-battery-car-user::before { content: "\f0373"; } +.lnid-battery-car-user::after { content: "\f0372"; } +.lnid-battery-car-xmark-circle::before { content: "\f0375"; } +.lnid-battery-car-xmark-circle::after { content: "\f0374"; } +.lnid-battery-charging-horizontal::before { content: "\f0379"; } +.lnid-battery-charging-horizontal::after { content: "\f0378"; } +.lnid-battery-charging-vertical::before { content: "\f037b"; } +.lnid-battery-charging-vertical::after { content: "\f037a"; } +.lnid-battery-check-circle::before { content: "\f037d"; } +.lnid-battery-check-circle::after { content: "\f037c"; } +.lnid-battery-disabled::before { content: "\f037f"; } +.lnid-battery-disabled::after { content: "\f037e"; } +.lnid-battery-empty-horizontal::before { content: "\f0383"; } +.lnid-battery-empty-horizontal::after { content: "\f0382"; } +.lnid-battery-empty-horizontal-disabled::before { content: "\f0381"; } +.lnid-battery-empty-horizontal-disabled::after { content: "\f0380"; } +.lnid-battery-empty-vertical::before { content: "\f0387"; } +.lnid-battery-empty-vertical::after { content: "\f0386"; } +.lnid-battery-empty-vertical-disabled::before { content: "\f0385"; } +.lnid-battery-empty-vertical-disabled::after { content: "\f0384"; } +.lnid-battery-error-circle::before { content: "\f0389"; } +.lnid-battery-error-circle::after { content: "\f0388"; } +.lnid-battery-fire::before { content: "\f038b"; } +.lnid-battery-fire::after { content: "\f038a"; } +.lnid-battery-gear::before { content: "\f038d"; } +.lnid-battery-gear::after { content: "\f038c"; } +.lnid-battery-info-circle::before { content: "\f038f"; } +.lnid-battery-info-circle::after { content: "\f038e"; } +.lnid-battery-leaf::before { content: "\f0391"; } +.lnid-battery-leaf::after { content: "\f0390"; } +.lnid-battery-minus-circle::before { content: "\f0393"; } +.lnid-battery-minus-circle::after { content: "\f0392"; } +.lnid-battery-percent::before { content: "\f0397"; } +.lnid-battery-percent::after { content: "\f0396"; } +.lnid-battery-percent-circle::before { content: "\f0395"; } +.lnid-battery-percent-circle::after { content: "\f0394"; } +.lnid-battery-phone::before { content: "\f0399"; } +.lnid-battery-phone::after { content: "\f0398"; } +.lnid-battery-pie-chart::before { content: "\f039b"; } +.lnid-battery-pie-chart::after { content: "\f039a"; } +.lnid-battery-plus-circle::before { content: "\f039d"; } +.lnid-battery-plus-circle::after { content: "\f039c"; } +.lnid-battery-plus-minus::before { content: "\f039f"; } +.lnid-battery-plus-minus::after { content: "\f039e"; } +.lnid-battery-refresh::before { content: "\f03a1"; } +.lnid-battery-refresh::after { content: "\f03a0"; } +.lnid-battery-reload::before { content: "\f03a3"; } +.lnid-battery-reload::after { content: "\f03a2"; } +.lnid-battery-shield::before { content: "\f03a5"; } +.lnid-battery-shield::after { content: "\f03a4"; } +.lnid-battery-time::before { content: "\f03a7"; } +.lnid-battery-time::after { content: "\f03a6"; } +.lnid-battery-timer::before { content: "\f03a9"; } +.lnid-battery-timer::after { content: "\f03a8"; } +.lnid-battery-user::before { content: "\f03ab"; } +.lnid-battery-user::after { content: "\f03aa"; } +.lnid-battery-xmark-circle::before { content: "\f03ad"; } +.lnid-battery-xmark-circle::after { content: "\f03ac"; } +.lnid-beach-1::before { content: "\f03af"; } +.lnid-beach-1::after { content: "\f03ae"; } +.lnid-beach-2::before { content: "\f03b1"; } +.lnid-beach-2::after { content: "\f03b0"; } +.lnid-beach-3::before { content: "\f03b3"; } +.lnid-beach-3::after { content: "\f03b2"; } +.lnid-beach-4::before { content: "\f03b5"; } +.lnid-beach-4::after { content: "\f03b4"; } +.lnid-beach-5::before { content: "\f03b7"; } +.lnid-beach-5::after { content: "\f03b6"; } +.lnid-beach-ball::before { content: "\f03b9"; } +.lnid-beach-ball::after { content: "\f03b8"; } +.lnid-beach-chair::before { content: "\f03bb"; } +.lnid-beach-chair::after { content: "\f03ba"; } +.lnid-beach-umbrella-1::before { content: "\f03bd"; } +.lnid-beach-umbrella-1::after { content: "\f03bc"; } +.lnid-beach-umbrella-2::before { content: "\f03bf"; } +.lnid-beach-umbrella-2::after { content: "\f03be"; } +.lnid-beat::before { content: "\f03c1"; } +.lnid-beat::after { content: "\f03c0"; } +.lnid-bed-heart::before { content: "\f03c3"; } +.lnid-bed-heart::after { content: "\f03c2"; } +.lnid-bell-1::before { content: "\f03c5"; } +.lnid-bell-1::after { content: "\f03c4"; } +.lnid-bell-2::before { content: "\f03c7"; } +.lnid-bell-2::after { content: "\f03c6"; } +.lnid-bell-ai-1::before { content: "\f03c9"; } +.lnid-bell-ai-1::after { content: "\f03c8"; } +.lnid-bell-ai-2::before { content: "\f03cb"; } +.lnid-bell-ai-2::after { content: "\f03ca"; } +.lnid-bell-check-circle::before { content: "\f03cd"; } +.lnid-bell-check-circle::after { content: "\f03cc"; } +.lnid-bell-disabled-1::before { content: "\f03cf"; } +.lnid-bell-disabled-1::after { content: "\f03ce"; } +.lnid-bell-disabled-2::before { content: "\f03d1"; } +.lnid-bell-disabled-2::after { content: "\f03d0"; } +.lnid-bell-error-circle::before { content: "\f03d3"; } +.lnid-bell-error-circle::after { content: "\f03d2"; } +.lnid-bell-fire::before { content: "\f03d5"; } +.lnid-bell-fire::after { content: "\f03d4"; } +.lnid-bell-gear::before { content: "\f03d7"; } +.lnid-bell-gear::after { content: "\f03d6"; } +.lnid-bell-heart::before { content: "\f03d9"; } +.lnid-bell-heart::after { content: "\f03d8"; } +.lnid-bell-locked::before { content: "\f03db"; } +.lnid-bell-locked::after { content: "\f03da"; } +.lnid-bell-minus-circle::before { content: "\f03dd"; } +.lnid-bell-minus-circle::after { content: "\f03dc"; } +.lnid-bell-moon::before { content: "\f03df"; } +.lnid-bell-moon::after { content: "\f03de"; } +.lnid-bell-number-1::before { content: "\f03e3"; } +.lnid-bell-number-1::after { content: "\f03e2"; } +.lnid-bell-number-10::before { content: "\f03e1"; } +.lnid-bell-number-10::after { content: "\f03e0"; } +.lnid-bell-number-20::before { content: "\f03e5"; } +.lnid-bell-number-20::after { content: "\f03e4"; } +.lnid-bell-number-50::before { content: "\f03e7"; } +.lnid-bell-number-50::after { content: "\f03e6"; } +.lnid-bell-pencil::before { content: "\f03e9"; } +.lnid-bell-pencil::after { content: "\f03e8"; } +.lnid-bell-plus-circle::before { content: "\f03eb"; } +.lnid-bell-plus-circle::after { content: "\f03ea"; } +.lnid-bell-reload::before { content: "\f03ed"; } +.lnid-bell-reload::after { content: "\f03ec"; } +.lnid-bell-ringing::before { content: "\f03ef"; } +.lnid-bell-ringing::after { content: "\f03ee"; } +.lnid-bell-sleep::before { content: "\f03f1"; } +.lnid-bell-sleep::after { content: "\f03f0"; } +.lnid-bell-star::before { content: "\f03f3"; } +.lnid-bell-star::after { content: "\f03f2"; } +.lnid-bell-sun::before { content: "\f03f5"; } +.lnid-bell-sun::after { content: "\f03f4"; } +.lnid-bell-time::before { content: "\f03f7"; } +.lnid-bell-time::after { content: "\f03f6"; } +.lnid-bell-trash::before { content: "\f03f9"; } +.lnid-bell-trash::after { content: "\f03f8"; } +.lnid-bell-user::before { content: "\f03fb"; } +.lnid-bell-user::after { content: "\f03fa"; } +.lnid-bell-wedding::before { content: "\f03fd"; } +.lnid-bell-wedding::after { content: "\f03fc"; } +.lnid-bell-wifi::before { content: "\f03ff"; } +.lnid-bell-wifi::after { content: "\f03fe"; } +.lnid-bell-xmark-circle::before { content: "\f0401"; } +.lnid-bell-xmark-circle::after { content: "\f0400"; } +.lnid-bench-press::before { content: "\f0403"; } +.lnid-bench-press::after { content: "\f0402"; } +.lnid-beta::before { content: "\f0405"; } +.lnid-beta::after { content: "\f0404"; } +.lnid-beverage::before { content: "\f0407"; } +.lnid-beverage::after { content: "\f0406"; } +.lnid-bike::before { content: "\f040b"; } +.lnid-bike::after { content: "\f040a"; } +.lnid-bike-ai::before { content: "\f0409"; } +.lnid-bike-ai::after { content: "\f0408"; } +.lnid-billboard-ad::before { content: "\f040f"; } +.lnid-billboard-ad::after { content: "\f040e"; } +.lnid-billboard-ad-ai::before { content: "\f040d"; } +.lnid-billboard-ad-ai::after { content: "\f040c"; } +.lnid-billboard-ai::before { content: "\f0411"; } +.lnid-billboard-ai::after { content: "\f0410"; } +.lnid-billboard-bulb-1::before { content: "\f0413"; } +.lnid-billboard-bulb-1::after { content: "\f0412"; } +.lnid-billboard-bulb-2::before { content: "\f0415"; } +.lnid-billboard-bulb-2::after { content: "\f0414"; } +.lnid-billboard-disabled-1::before { content: "\f0417"; } +.lnid-billboard-disabled-1::after { content: "\f0416"; } +.lnid-billboard-disabled-2::before { content: "\f0419"; } +.lnid-billboard-disabled-2::after { content: "\f0418"; } +.lnid-billboard-empty::before { content: "\f041b"; } +.lnid-billboard-empty::after { content: "\f041a"; } +.lnid-billboard-fire::before { content: "\f041d"; } +.lnid-billboard-fire::after { content: "\f041c"; } +.lnid-billboard-number-50::before { content: "\f041f"; } +.lnid-billboard-number-50::after { content: "\f041e"; } +.lnid-billboard-one-stand::before { content: "\f0423"; } +.lnid-billboard-one-stand::after { content: "\f0422"; } +.lnid-billboard-one-stand-lights::before { content: "\f0421"; } +.lnid-billboard-one-stand-lights::after { content: "\f0420"; } +.lnid-billboard-star::before { content: "\f0425"; } +.lnid-billboard-star::after { content: "\f0424"; } +.lnid-billboard-text::before { content: "\f0427"; } +.lnid-billboard-text::after { content: "\f0426"; } +.lnid-billboard-two-stand-lights::before { content: "\f042b"; } +.lnid-billboard-two-stand-lights::after { content: "\f042a"; } +.lnid-billboard-two-stand-lights-texts::before { content: "\f0429"; } +.lnid-billboard-two-stand-lights-texts::after { content: "\f0428"; } +.lnid-billboard-video::before { content: "\f042d"; } +.lnid-billboard-video::after { content: "\f042c"; } +.lnid-bin-recycle-circle::before { content: "\f042f"; } +.lnid-bin-recycle-circle::after { content: "\f042e"; } +.lnid-bin-recycle-triangle::before { content: "\f0431"; } +.lnid-bin-recycle-triangle::after { content: "\f0430"; } +.lnid-binoculars::before { content: "\f0433"; } +.lnid-binoculars::after { content: "\f0432"; } +.lnid-bird::before { content: "\f0435"; } +.lnid-bird::after { content: "\f0434"; } +.lnid-bitcoin-circle::before { content: "\f0437"; } +.lnid-bitcoin-circle::after { content: "\f0436"; } +.lnid-bitcoin-trend-down::before { content: "\f0439"; } +.lnid-bitcoin-trend-down::after { content: "\f0438"; } +.lnid-bitcoin-trend-up::before { content: "\f043b"; } +.lnid-bitcoin-trend-up::after { content: "\f043a"; } +.lnid-blade::before { content: "\f044b"; } +.lnid-blade::after { content: "\f044a"; } +.lnid-blade-sign-ad::before { content: "\f043d"; } +.lnid-blade-sign-ad::after { content: "\f043c"; } +.lnid-blade-sign-rechtangle::before { content: "\f0443"; } +.lnid-blade-sign-rechtangle::after { content: "\f0442"; } +.lnid-blade-sign-rechtangle-h::before { content: "\f043f"; } +.lnid-blade-sign-rechtangle-h::after { content: "\f043e"; } +.lnid-blade-sign-rechtangle-plus::before { content: "\f0441"; } +.lnid-blade-sign-rechtangle-plus::after { content: "\f0440"; } +.lnid-blade-sign-square::before { content: "\f0449"; } +.lnid-blade-sign-square::after { content: "\f0448"; } +.lnid-blade-sign-square-h::before { content: "\f0445"; } +.lnid-blade-sign-square-h::after { content: "\f0444"; } +.lnid-blade-sign-square-plus::before { content: "\f0447"; } +.lnid-blade-sign-square-plus::after { content: "\f0446"; } +.lnid-blender::before { content: "\f044d"; } +.lnid-blender::after { content: "\f044c"; } +.lnid-bluetooth::before { content: "\f0457"; } +.lnid-bluetooth::after { content: "\f0456"; } +.lnid-bluetooth-circle::before { content: "\f044f"; } +.lnid-bluetooth-circle::after { content: "\f044e"; } +.lnid-bluetooth-connected::before { content: "\f0451"; } +.lnid-bluetooth-connected::after { content: "\f0450"; } +.lnid-bluetooth-earphone::before { content: "\f0453"; } +.lnid-bluetooth-earphone::after { content: "\f0452"; } +.lnid-bluetooth-square::before { content: "\f0455"; } +.lnid-bluetooth-square::after { content: "\f0454"; } +.lnid-board-writing-1::before { content: "\f0459"; } +.lnid-board-writing-1::after { content: "\f0458"; } +.lnid-board-writing-2::before { content: "\f045b"; } +.lnid-board-writing-2::after { content: "\f045a"; } +.lnid-board-writing-3::before { content: "\f045d"; } +.lnid-board-writing-3::after { content: "\f045c"; } +.lnid-board-writing-4::before { content: "\f045f"; } +.lnid-board-writing-4::after { content: "\f045e"; } +.lnid-boat-1::before { content: "\f0461"; } +.lnid-boat-1::after { content: "\f0460"; } +.lnid-boat-2::before { content: "\f0463"; } +.lnid-boat-2::after { content: "\f0462"; } +.lnid-boat-3::before { content: "\f0465"; } +.lnid-boat-3::after { content: "\f0464"; } +.lnid-bold::before { content: "\f0467"; } +.lnid-bold::after { content: "\f0466"; } +.lnid-bolt-1::before { content: "\f0469"; } +.lnid-bolt-1::after { content: "\f0468"; } +.lnid-bolt-2::before { content: "\f046b"; } +.lnid-bolt-2::after { content: "\f046a"; } +.lnid-bolt-3::before { content: "\f046d"; } +.lnid-bolt-3::after { content: "\f046c"; } +.lnid-bone::before { content: "\f0471"; } +.lnid-bone::after { content: "\f0470"; } +.lnid-bone-cracked::before { content: "\f046f"; } +.lnid-bone-cracked::after { content: "\f046e"; } +.lnid-book-1::before { content: "\f0473"; } +.lnid-book-1::after { content: "\f0472"; } +.lnid-book-2::before { content: "\f0475"; } +.lnid-book-2::after { content: "\f0474"; } +.lnid-book-3::before { content: "\f0477"; } +.lnid-book-3::after { content: "\f0476"; } +.lnid-book-4::before { content: "\f0479"; } +.lnid-book-4::after { content: "\f0478"; } +.lnid-book-ai-1::before { content: "\f047b"; } +.lnid-book-ai-1::after { content: "\f047a"; } +.lnid-book-ai-2::before { content: "\f047d"; } +.lnid-book-ai-2::after { content: "\f047c"; } +.lnid-book-legal::before { content: "\f047f"; } +.lnid-book-legal::after { content: "\f047e"; } +.lnid-book-open::before { content: "\f0483"; } +.lnid-book-open::after { content: "\f0482"; } +.lnid-book-open-bulb::before { content: "\f0481"; } +.lnid-book-open-bulb::after { content: "\f0480"; } +.lnid-bookmark-1::before { content: "\f0487"; } +.lnid-bookmark-1::after { content: "\f0486"; } +.lnid-bookmark-1-disabled::before { content: "\f0485"; } +.lnid-bookmark-1-disabled::after { content: "\f0484"; } +.lnid-bookmark-2::before { content: "\f048b"; } +.lnid-bookmark-2::after { content: "\f048a"; } +.lnid-bookmark-2-disabled::before { content: "\f0489"; } +.lnid-bookmark-2-disabled::after { content: "\f0488"; } +.lnid-bookmark-3::before { content: "\f048f"; } +.lnid-bookmark-3::after { content: "\f048e"; } +.lnid-bookmark-3-disabled::before { content: "\f048d"; } +.lnid-bookmark-3-disabled::after { content: "\f048c"; } +.lnid-bookmark-4::before { content: "\f0491"; } +.lnid-bookmark-4::after { content: "\f0490"; } +.lnid-bookmark-badge::before { content: "\f0493"; } +.lnid-bookmark-badge::after { content: "\f0492"; } +.lnid-bookmark-book::before { content: "\f0495"; } +.lnid-bookmark-book::after { content: "\f0494"; } +.lnid-bookmark-check::before { content: "\f0499"; } +.lnid-bookmark-check::after { content: "\f0498"; } +.lnid-bookmark-check-circle::before { content: "\f0497"; } +.lnid-bookmark-check-circle::after { content: "\f0496"; } +.lnid-bookmark-circle::before { content: "\f049b"; } +.lnid-bookmark-circle::after { content: "\f049a"; } +.lnid-bookmark-cloud::before { content: "\f049d"; } +.lnid-bookmark-cloud::after { content: "\f049c"; } +.lnid-bookmark-disabled-2::before { content: "\f049f"; } +.lnid-bookmark-disabled-2::after { content: "\f049e"; } +.lnid-bookmark-document::before { content: "\f04a1"; } +.lnid-bookmark-document::after { content: "\f04a0"; } +.lnid-bookmark-download::before { content: "\f04a3"; } +.lnid-bookmark-download::after { content: "\f04a2"; } +.lnid-bookmark-error-circle::before { content: "\f04a5"; } +.lnid-bookmark-error-circle::after { content: "\f04a4"; } +.lnid-bookmark-gear::before { content: "\f04a7"; } +.lnid-bookmark-gear::after { content: "\f04a6"; } +.lnid-bookmark-heart::before { content: "\f04ab"; } +.lnid-bookmark-heart::after { content: "\f04aa"; } +.lnid-bookmark-heart-circle::before { content: "\f04a9"; } +.lnid-bookmark-heart-circle::after { content: "\f04a8"; } +.lnid-bookmark-link::before { content: "\f04ad"; } +.lnid-bookmark-link::after { content: "\f04ac"; } +.lnid-bookmark-locked::before { content: "\f04af"; } +.lnid-bookmark-locked::after { content: "\f04ae"; } +.lnid-bookmark-minus::before { content: "\f04b3"; } +.lnid-bookmark-minus::after { content: "\f04b2"; } +.lnid-bookmark-minus-circle::before { content: "\f04b1"; } +.lnid-bookmark-minus-circle::after { content: "\f04b0"; } +.lnid-bookmark-paperclip::before { content: "\f04b5"; } +.lnid-bookmark-paperclip::after { content: "\f04b4"; } +.lnid-bookmark-pencil::before { content: "\f04b7"; } +.lnid-bookmark-pencil::after { content: "\f04b6"; } +.lnid-bookmark-phone::before { content: "\f04b9"; } +.lnid-bookmark-phone::after { content: "\f04b8"; } +.lnid-bookmark-plus::before { content: "\f04bd"; } +.lnid-bookmark-plus::after { content: "\f04bc"; } +.lnid-bookmark-plus-circle::before { content: "\f04bb"; } +.lnid-bookmark-plus-circle::after { content: "\f04ba"; } +.lnid-bookmark-search::before { content: "\f04c3"; } +.lnid-bookmark-search::after { content: "\f04c2"; } +.lnid-bookmark-search-1::before { content: "\f04bf"; } +.lnid-bookmark-search-1::after { content: "\f04be"; } +.lnid-bookmark-search-2::before { content: "\f04c1"; } +.lnid-bookmark-search-2::after { content: "\f04c0"; } +.lnid-bookmark-shield::before { content: "\f04c5"; } +.lnid-bookmark-shield::after { content: "\f04c4"; } +.lnid-bookmark-square-1::before { content: "\f04c7"; } +.lnid-bookmark-square-1::after { content: "\f04c6"; } +.lnid-bookmark-square-2::before { content: "\f04c9"; } +.lnid-bookmark-square-2::after { content: "\f04c8"; } +.lnid-bookmark-star::before { content: "\f04cf"; } +.lnid-bookmark-star::after { content: "\f04ce"; } +.lnid-bookmark-star-1::before { content: "\f04cb"; } +.lnid-bookmark-star-1::after { content: "\f04ca"; } +.lnid-bookmark-star-2::before { content: "\f04cd"; } +.lnid-bookmark-star-2::after { content: "\f04cc"; } +.lnid-bookmark-trash::before { content: "\f04d1"; } +.lnid-bookmark-trash::after { content: "\f04d0"; } +.lnid-bookmark-unlocked::before { content: "\f04d3"; } +.lnid-bookmark-unlocked::after { content: "\f04d2"; } +.lnid-bookmark-upload::before { content: "\f04d5"; } +.lnid-bookmark-upload::after { content: "\f04d4"; } +.lnid-bookmark-xmark::before { content: "\f04d9"; } +.lnid-bookmark-xmark::after { content: "\f04d8"; } +.lnid-bookmark-xmark-circle::before { content: "\f04d7"; } +.lnid-bookmark-xmark-circle::after { content: "\f04d6"; } +.lnid-bookmarks-disabled::before { content: "\f04db"; } +.lnid-bookmarks-disabled::after { content: "\f04da"; } +.lnid-books-1::before { content: "\f04dd"; } +.lnid-books-1::after { content: "\f04dc"; } +.lnid-books-2::before { content: "\f04df"; } +.lnid-books-2::after { content: "\f04de"; } +.lnid-boom-box::before { content: "\f04e1"; } +.lnid-boom-box::after { content: "\f04e0"; } +.lnid-bot::before { content: "\f0513"; } +.lnid-bot::after { content: "\f0512"; } +.lnid-bot-1-angry::before { content: "\f04e3"; } +.lnid-bot-1-angry::after { content: "\f04e2"; } +.lnid-bot-1-cute::before { content: "\f04e5"; } +.lnid-bot-1-cute::after { content: "\f04e4"; } +.lnid-bot-1-error::before { content: "\f04e7"; } +.lnid-bot-1-error::after { content: "\f04e6"; } +.lnid-bot-1-happy::before { content: "\f04e9"; } +.lnid-bot-1-happy::after { content: "\f04e8"; } +.lnid-bot-1-nutral-1::before { content: "\f04eb"; } +.lnid-bot-1-nutral-1::after { content: "\f04ea"; } +.lnid-bot-1-nutral-2::before { content: "\f04ed"; } +.lnid-bot-1-nutral-2::after { content: "\f04ec"; } +.lnid-bot-1-sad::before { content: "\f04ef"; } +.lnid-bot-1-sad::after { content: "\f04ee"; } +.lnid-bot-2-angry::before { content: "\f04f1"; } +.lnid-bot-2-angry::after { content: "\f04f0"; } +.lnid-bot-2-cute::before { content: "\f04f3"; } +.lnid-bot-2-cute::after { content: "\f04f2"; } +.lnid-bot-2-error::before { content: "\f04f5"; } +.lnid-bot-2-error::after { content: "\f04f4"; } +.lnid-bot-2-happy::before { content: "\f04f7"; } +.lnid-bot-2-happy::after { content: "\f04f6"; } +.lnid-bot-2-nutral-1::before { content: "\f04f9"; } +.lnid-bot-2-nutral-1::after { content: "\f04f8"; } +.lnid-bot-2-nutral-2::before { content: "\f04fb"; } +.lnid-bot-2-nutral-2::after { content: "\f04fa"; } +.lnid-bot-2-sad::before { content: "\f04fd"; } +.lnid-bot-2-sad::after { content: "\f04fc"; } +.lnid-bot-3-angry::before { content: "\f04ff"; } +.lnid-bot-3-angry::after { content: "\f04fe"; } +.lnid-bot-3-cute::before { content: "\f0501"; } +.lnid-bot-3-cute::after { content: "\f0500"; } +.lnid-bot-3-error::before { content: "\f0503"; } +.lnid-bot-3-error::after { content: "\f0502"; } +.lnid-bot-3-happy::before { content: "\f0505"; } +.lnid-bot-3-happy::after { content: "\f0504"; } +.lnid-bot-3-nutral-1::before { content: "\f0507"; } +.lnid-bot-3-nutral-1::after { content: "\f0506"; } +.lnid-bot-3-nutral-2::before { content: "\f0509"; } +.lnid-bot-3-nutral-2::after { content: "\f0508"; } +.lnid-bot-3-sad::before { content: "\f050b"; } +.lnid-bot-3-sad::after { content: "\f050a"; } +.lnid-bot-user-1::before { content: "\f050d"; } +.lnid-bot-user-1::after { content: "\f050c"; } +.lnid-bot-user-2::before { content: "\f050f"; } +.lnid-bot-user-2::after { content: "\f050e"; } +.lnid-bot-user-3::before { content: "\f0511"; } +.lnid-bot-user-3::after { content: "\f0510"; } +.lnid-bouquet::before { content: "\f0515"; } +.lnid-bouquet::after { content: "\f0514"; } +.lnid-bow-arrow::before { content: "\f0517"; } +.lnid-bow-arrow::after { content: "\f0516"; } +.lnid-bow-tie-1::before { content: "\f0519"; } +.lnid-bow-tie-1::after { content: "\f0518"; } +.lnid-bow-tie-2::before { content: "\f051b"; } +.lnid-bow-tie-2::after { content: "\f051a"; } +.lnid-bowl::before { content: "\f052b"; } +.lnid-bowl::after { content: "\f052a"; } +.lnid-bowl-noodles-1::before { content: "\f051d"; } +.lnid-bowl-noodles-1::after { content: "\f051c"; } +.lnid-bowl-noodles-2::before { content: "\f051f"; } +.lnid-bowl-noodles-2::after { content: "\f051e"; } +.lnid-bowl-noodles-3::before { content: "\f0521"; } +.lnid-bowl-noodles-3::after { content: "\f0520"; } +.lnid-bowl-soup::before { content: "\f0529"; } +.lnid-bowl-soup::after { content: "\f0528"; } +.lnid-bowl-soup-1::before { content: "\f0523"; } +.lnid-bowl-soup-1::after { content: "\f0522"; } +.lnid-bowl-soup-2::before { content: "\f0525"; } +.lnid-bowl-soup-2::after { content: "\f0524"; } +.lnid-bowl-soup-3::before { content: "\f0527"; } +.lnid-bowl-soup-3::after { content: "\f0526"; } +.lnid-box-ai::before { content: "\f052d"; } +.lnid-box-ai::after { content: "\f052c"; } +.lnid-box-archive-1::before { content: "\f052f"; } +.lnid-box-archive-1::after { content: "\f052e"; } +.lnid-box-archive-2::before { content: "\f0531"; } +.lnid-box-archive-2::after { content: "\f0530"; } +.lnid-box-arrow-downward::before { content: "\f0533"; } +.lnid-box-arrow-downward::after { content: "\f0532"; } +.lnid-box-arrow-left::before { content: "\f0535"; } +.lnid-box-arrow-left::after { content: "\f0534"; } +.lnid-box-arrow-right::before { content: "\f0537"; } +.lnid-box-arrow-right::after { content: "\f0536"; } +.lnid-box-arrow-upward::before { content: "\f0539"; } +.lnid-box-arrow-upward::after { content: "\f0538"; } +.lnid-box-badge::before { content: "\f053b"; } +.lnid-box-badge::after { content: "\f053a"; } +.lnid-box-bar-chart::before { content: "\f053d"; } +.lnid-box-bar-chart::after { content: "\f053c"; } +.lnid-box-bolt::before { content: "\f053f"; } +.lnid-box-bolt::after { content: "\f053e"; } +.lnid-box-book::before { content: "\f0541"; } +.lnid-box-book::after { content: "\f0540"; } +.lnid-box-check::before { content: "\f0545"; } +.lnid-box-check::after { content: "\f0544"; } +.lnid-box-check-circle::before { content: "\f0543"; } +.lnid-box-check-circle::after { content: "\f0542"; } +.lnid-box-chip::before { content: "\f0547"; } +.lnid-box-chip::after { content: "\f0546"; } +.lnid-box-closed::before { content: "\f0549"; } +.lnid-box-closed::after { content: "\f0548"; } +.lnid-box-cloud::before { content: "\f054b"; } +.lnid-box-cloud::after { content: "\f054a"; } +.lnid-box-code::before { content: "\f054d"; } +.lnid-box-code::after { content: "\f054c"; } +.lnid-box-cube-3D::before { content: "\f054f"; } +.lnid-box-cube-3D::after { content: "\f054e"; } +.lnid-box-dollar::before { content: "\f0551"; } +.lnid-box-dollar::after { content: "\f0550"; } +.lnid-box-download::before { content: "\f0553"; } +.lnid-box-download::after { content: "\f0552"; } +.lnid-box-error-circle::before { content: "\f0555"; } +.lnid-box-error-circle::after { content: "\f0554"; } +.lnid-box-eye::before { content: "\f0557"; } +.lnid-box-eye::after { content: "\f0556"; } +.lnid-box-fire::before { content: "\f0559"; } +.lnid-box-fire::after { content: "\f0558"; } +.lnid-box-gift-1::before { content: "\f055b"; } +.lnid-box-gift-1::after { content: "\f055a"; } +.lnid-box-gift-2::before { content: "\f055d"; } +.lnid-box-gift-2::after { content: "\f055c"; } +.lnid-box-gift-love::before { content: "\f055f"; } +.lnid-box-gift-love::after { content: "\f055e"; } +.lnid-box-heart::before { content: "\f0563"; } +.lnid-box-heart::after { content: "\f0562"; } +.lnid-box-heart-circle::before { content: "\f0561"; } +.lnid-box-heart-circle::after { content: "\f0560"; } +.lnid-box-info-circle::before { content: "\f0565"; } +.lnid-box-info-circle::after { content: "\f0564"; } +.lnid-box-iot::before { content: "\f0569"; } +.lnid-box-iot::after { content: "\f0568"; } +.lnid-box-iot-ai::before { content: "\f0567"; } +.lnid-box-iot-ai::after { content: "\f0566"; } +.lnid-box-leaf::before { content: "\f056b"; } +.lnid-box-leaf::after { content: "\f056a"; } +.lnid-box-link::before { content: "\f056d"; } +.lnid-box-link::after { content: "\f056c"; } +.lnid-box-lokced::before { content: "\f056f"; } +.lnid-box-lokced::after { content: "\f056e"; } +.lnid-box-map-marker::before { content: "\f0571"; } +.lnid-box-map-marker::after { content: "\f0570"; } +.lnid-box-minus-circle::before { content: "\f0573"; } +.lnid-box-minus-circle::after { content: "\f0572"; } +.lnid-box-number-1::before { content: "\f0577"; } +.lnid-box-number-1::after { content: "\f0576"; } +.lnid-box-number-10::before { content: "\f0575"; } +.lnid-box-number-10::after { content: "\f0574"; } +.lnid-box-number-20::before { content: "\f0579"; } +.lnid-box-number-20::after { content: "\f0578"; } +.lnid-box-number-50::before { content: "\f057b"; } +.lnid-box-number-50::after { content: "\f057a"; } +.lnid-box-open-1::before { content: "\f057d"; } +.lnid-box-open-1::after { content: "\f057c"; } +.lnid-box-open-2::before { content: "\f057f"; } +.lnid-box-open-2::after { content: "\f057e"; } +.lnid-box-open-3::before { content: "\f0581"; } +.lnid-box-open-3::after { content: "\f0580"; } +.lnid-box-open-5::before { content: "\f0583"; } +.lnid-box-open-5::after { content: "\f0582"; } +.lnid-box-paperclip::before { content: "\f0585"; } +.lnid-box-paperclip::after { content: "\f0584"; } +.lnid-box-parachute-1::before { content: "\f0587"; } +.lnid-box-parachute-1::after { content: "\f0586"; } +.lnid-box-parachute-2::before { content: "\f0589"; } +.lnid-box-parachute-2::after { content: "\f0588"; } +.lnid-box-pencil::before { content: "\f058b"; } +.lnid-box-pencil::after { content: "\f058a"; } +.lnid-box-percent::before { content: "\f058f"; } +.lnid-box-percent::after { content: "\f058e"; } +.lnid-box-percent-circle::before { content: "\f058d"; } +.lnid-box-percent-circle::after { content: "\f058c"; } +.lnid-box-phone::before { content: "\f0591"; } +.lnid-box-phone::after { content: "\f0590"; } +.lnid-box-pie-chart::before { content: "\f0593"; } +.lnid-box-pie-chart::after { content: "\f0592"; } +.lnid-box-pin-1::before { content: "\f0595"; } +.lnid-box-pin-1::after { content: "\f0594"; } +.lnid-box-pin-2::before { content: "\f0597"; } +.lnid-box-pin-2::after { content: "\f0596"; } +.lnid-box-play::before { content: "\f0599"; } +.lnid-box-play::after { content: "\f0598"; } +.lnid-box-plus::before { content: "\f059f"; } +.lnid-box-plus::after { content: "\f059e"; } +.lnid-box-plus-circle::before { content: "\f059b"; } +.lnid-box-plus-circle::after { content: "\f059a"; } +.lnid-box-plus-minus::before { content: "\f059d"; } +.lnid-box-plus-minus::after { content: "\f059c"; } +.lnid-box-question-mark::before { content: "\f05a1"; } +.lnid-box-question-mark::after { content: "\f05a0"; } +.lnid-box-redo::before { content: "\f05a3"; } +.lnid-box-redo::after { content: "\f05a2"; } +.lnid-box-refresh::before { content: "\f05a5"; } +.lnid-box-refresh::after { content: "\f05a4"; } +.lnid-box-reload::before { content: "\f05a7"; } +.lnid-box-reload::after { content: "\f05a6"; } +.lnid-box-search::before { content: "\f05a9"; } +.lnid-box-search::after { content: "\f05a8"; } +.lnid-box-settings::before { content: "\f05ab"; } +.lnid-box-settings::after { content: "\f05aa"; } +.lnid-box-share-1::before { content: "\f05ad"; } +.lnid-box-share-1::after { content: "\f05ac"; } +.lnid-box-share-2::before { content: "\f05af"; } +.lnid-box-share-2::after { content: "\f05ae"; } +.lnid-box-shield::before { content: "\f05b1"; } +.lnid-box-shield::after { content: "\f05b0"; } +.lnid-box-star::before { content: "\f05b3"; } +.lnid-box-star::after { content: "\f05b2"; } +.lnid-box-swap::before { content: "\f05b5"; } +.lnid-box-swap::after { content: "\f05b4"; } +.lnid-box-tapped-1::before { content: "\f05b7"; } +.lnid-box-tapped-1::after { content: "\f05b6"; } +.lnid-box-tapped-2::before { content: "\f05b9"; } +.lnid-box-tapped-2::after { content: "\f05b8"; } +.lnid-box-tapped-3::before { content: "\f05bb"; } +.lnid-box-tapped-3::after { content: "\f05ba"; } +.lnid-box-tapped-4::before { content: "\f05bd"; } +.lnid-box-tapped-4::after { content: "\f05bc"; } +.lnid-box-tapped-moving-1::before { content: "\f05bf"; } +.lnid-box-tapped-moving-1::after { content: "\f05be"; } +.lnid-box-tapped-moving-2::before { content: "\f05c1"; } +.lnid-box-tapped-moving-2::after { content: "\f05c0"; } +.lnid-box-thumbs-down::before { content: "\f05c3"; } +.lnid-box-thumbs-down::after { content: "\f05c2"; } +.lnid-box-thumbs-up::before { content: "\f05c5"; } +.lnid-box-thumbs-up::after { content: "\f05c4"; } +.lnid-box-time::before { content: "\f05c7"; } +.lnid-box-time::after { content: "\f05c6"; } +.lnid-box-timer::before { content: "\f05c9"; } +.lnid-box-timer::after { content: "\f05c8"; } +.lnid-box-trash::before { content: "\f05cb"; } +.lnid-box-trash::after { content: "\f05ca"; } +.lnid-box-trend-down::before { content: "\f05cd"; } +.lnid-box-trend-down::after { content: "\f05cc"; } +.lnid-box-trend-up::before { content: "\f05cf"; } +.lnid-box-trend-up::after { content: "\f05ce"; } +.lnid-box-undo::before { content: "\f05d1"; } +.lnid-box-undo::after { content: "\f05d0"; } +.lnid-box-unlocked::before { content: "\f05d3"; } +.lnid-box-unlocked::after { content: "\f05d2"; } +.lnid-box-upload::before { content: "\f05d5"; } +.lnid-box-upload::after { content: "\f05d4"; } +.lnid-box-user::before { content: "\f05d7"; } +.lnid-box-user::after { content: "\f05d6"; } +.lnid-box-xmark::before { content: "\f05db"; } +.lnid-box-xmark::after { content: "\f05da"; } +.lnid-box-xmark-circle::before { content: "\f05d9"; } +.lnid-box-xmark-circle::after { content: "\f05d8"; } +.lnid-boxes-stacked-1::before { content: "\f05dd"; } +.lnid-boxes-stacked-1::after { content: "\f05dc"; } +.lnid-boxes-stacked-2::before { content: "\f05df"; } +.lnid-boxes-stacked-2::after { content: "\f05de"; } +.lnid-bracelet::before { content: "\f05e1"; } +.lnid-bracelet::after { content: "\f05e0"; } +.lnid-bracket-code::before { content: "\f05e3"; } +.lnid-bracket-code::after { content: "\f05e2"; } +.lnid-bracket-curly::before { content: "\f05e9"; } +.lnid-bracket-curly::after { content: "\f05e8"; } +.lnid-bracket-curly-left::before { content: "\f05e5"; } +.lnid-bracket-curly-left::after { content: "\f05e4"; } +.lnid-bracket-curly-right::before { content: "\f05e7"; } +.lnid-bracket-curly-right::after { content: "\f05e6"; } +.lnid-bracket-square::before { content: "\f05ef"; } +.lnid-bracket-square::after { content: "\f05ee"; } +.lnid-bracket-square-left::before { content: "\f05eb"; } +.lnid-bracket-square-left::after { content: "\f05ea"; } +.lnid-bracket-square-right::before { content: "\f05ed"; } +.lnid-bracket-square-right::after { content: "\f05ec"; } +.lnid-brain-1::before { content: "\f05f3"; } +.lnid-brain-1::after { content: "\f05f2"; } +.lnid-brain-1-check-circle::before { content: "\f05f1"; } +.lnid-brain-1-check-circle::after { content: "\f05f0"; } +.lnid-brain-2::before { content: "\f05f7"; } +.lnid-brain-2::after { content: "\f05f6"; } +.lnid-brain-2-check-circle::before { content: "\f05f5"; } +.lnid-brain-2-check-circle::after { content: "\f05f4"; } +.lnid-brain-ai-1::before { content: "\f05f9"; } +.lnid-brain-ai-1::after { content: "\f05f8"; } +.lnid-brain-ai-2::before { content: "\f05fb"; } +.lnid-brain-ai-2::after { content: "\f05fa"; } +.lnid-bread::before { content: "\f05fd"; } +.lnid-bread::after { content: "\f05fc"; } +.lnid-brick-wall-1::before { content: "\f05ff"; } +.lnid-brick-wall-1::after { content: "\f05fe"; } +.lnid-brick-wall-2::before { content: "\f0601"; } +.lnid-brick-wall-2::after { content: "\f0600"; } +.lnid-brick-wall-3::before { content: "\f0603"; } +.lnid-brick-wall-3::after { content: "\f0602"; } +.lnid-bricks::before { content: "\f0605"; } +.lnid-bricks::after { content: "\f0604"; } +.lnid-bridge-1::before { content: "\f0607"; } +.lnid-bridge-1::after { content: "\f0606"; } +.lnid-bridge-2::before { content: "\f0609"; } +.lnid-bridge-2::after { content: "\f0608"; } +.lnid-bridge-3::before { content: "\f060b"; } +.lnid-bridge-3::after { content: "\f060a"; } +.lnid-bridge-4::before { content: "\f060d"; } +.lnid-bridge-4::after { content: "\f060c"; } +.lnid-bridge-5::before { content: "\f060f"; } +.lnid-bridge-5::after { content: "\f060e"; } +.lnid-bridge-6::before { content: "\f0611"; } +.lnid-bridge-6::after { content: "\f0610"; } +.lnid-bridge-7::before { content: "\f0613"; } +.lnid-bridge-7::after { content: "\f0612"; } +.lnid-briefcase-1::before { content: "\f0615"; } +.lnid-briefcase-1::after { content: "\f0614"; } +.lnid-briefcase-2::before { content: "\f0617"; } +.lnid-briefcase-2::after { content: "\f0616"; } +.lnid-briefcase-3::before { content: "\f0619"; } +.lnid-briefcase-3::after { content: "\f0618"; } +.lnid-briefcase-4::before { content: "\f061b"; } +.lnid-briefcase-4::after { content: "\f061a"; } +.lnid-briefcase-5::before { content: "\f061d"; } +.lnid-briefcase-5::after { content: "\f061c"; } +.lnid-briefcase-6::before { content: "\f061f"; } +.lnid-briefcase-6::after { content: "\f061e"; } +.lnid-briefcase-7::before { content: "\f0621"; } +.lnid-briefcase-7::after { content: "\f0620"; } +.lnid-briefcase-8::before { content: "\f0623"; } +.lnid-briefcase-8::after { content: "\f0622"; } +.lnid-briefcase-ai::before { content: "\f0625"; } +.lnid-briefcase-ai::after { content: "\f0624"; } +.lnid-briefcase-beat::before { content: "\f0627"; } +.lnid-briefcase-beat::after { content: "\f0626"; } +.lnid-briefcase-bulb::before { content: "\f0629"; } +.lnid-briefcase-bulb::after { content: "\f0628"; } +.lnid-briefcase-heart::before { content: "\f062b"; } +.lnid-briefcase-heart::after { content: "\f062a"; } +.lnid-briefcase-plus-1::before { content: "\f062d"; } +.lnid-briefcase-plus-1::after { content: "\f062c"; } +.lnid-briefcase-plus-2::before { content: "\f062f"; } +.lnid-briefcase-plus-2::after { content: "\f062e"; } +.lnid-briefcase-plus-3::before { content: "\f0631"; } +.lnid-briefcase-plus-3::after { content: "\f0630"; } +.lnid-broccoli::before { content: "\f0633"; } +.lnid-broccoli::after { content: "\f0632"; } +.lnid-broom::before { content: "\f0635"; } +.lnid-broom::after { content: "\f0634"; } +.lnid-browser-1::before { content: "\f0637"; } +.lnid-browser-1::after { content: "\f0636"; } +.lnid-browser-2nd-bracket::before { content: "\f0639"; } +.lnid-browser-2nd-bracket::after { content: "\f0638"; } +.lnid-browser-3-dot::before { content: "\f063d"; } +.lnid-browser-3-dot::after { content: "\f063c"; } +.lnid-browser-3-dot-circle::before { content: "\f063b"; } +.lnid-browser-3-dot-circle::after { content: "\f063a"; } +.lnid-browser-ai::before { content: "\f0643"; } +.lnid-browser-ai::after { content: "\f0642"; } +.lnid-browser-ai-1::before { content: "\f063f"; } +.lnid-browser-ai-1::after { content: "\f063e"; } +.lnid-browser-ai-2::before { content: "\f0641"; } +.lnid-browser-ai-2::after { content: "\f0640"; } +.lnid-browser-audio::before { content: "\f0645"; } +.lnid-browser-audio::after { content: "\f0644"; } +.lnid-browser-badge::before { content: "\f0647"; } +.lnid-browser-badge::after { content: "\f0646"; } +.lnid-browser-binary::before { content: "\f0649"; } +.lnid-browser-binary::after { content: "\f0648"; } +.lnid-browser-bitcoin::before { content: "\f064b"; } +.lnid-browser-bitcoin::after { content: "\f064a"; } +.lnid-browser-bolt::before { content: "\f064d"; } +.lnid-browser-bolt::after { content: "\f064c"; } +.lnid-browser-bookmark::before { content: "\f064f"; } +.lnid-browser-bookmark::after { content: "\f064e"; } +.lnid-browser-bulb::before { content: "\f0651"; } +.lnid-browser-bulb::after { content: "\f0650"; } +.lnid-browser-check::before { content: "\f0655"; } +.lnid-browser-check::after { content: "\f0654"; } +.lnid-browser-check-circle::before { content: "\f0653"; } +.lnid-browser-check-circle::after { content: "\f0652"; } +.lnid-browser-chip::before { content: "\f0657"; } +.lnid-browser-chip::after { content: "\f0656"; } +.lnid-browser-cloud::before { content: "\f0659"; } +.lnid-browser-cloud::after { content: "\f0658"; } +.lnid-browser-code::before { content: "\f065b"; } +.lnid-browser-code::after { content: "\f065a"; } +.lnid-browser-crypto::before { content: "\f065d"; } +.lnid-browser-crypto::after { content: "\f065c"; } +.lnid-browser-cursor::before { content: "\f065f"; } +.lnid-browser-cursor::after { content: "\f065e"; } +.lnid-browser-database::before { content: "\f0661"; } +.lnid-browser-database::after { content: "\f0660"; } +.lnid-browser-disabled::before { content: "\f0665"; } +.lnid-browser-disabled::after { content: "\f0664"; } +.lnid-browser-disabled-2::before { content: "\f0663"; } +.lnid-browser-disabled-2::after { content: "\f0662"; } +.lnid-browser-document::before { content: "\f0667"; } +.lnid-browser-document::after { content: "\f0666"; } +.lnid-browser-dollar::before { content: "\f0669"; } +.lnid-browser-dollar::after { content: "\f0668"; } +.lnid-browser-download::before { content: "\f066b"; } +.lnid-browser-download::after { content: "\f066a"; } +.lnid-browser-error-circle::before { content: "\f066d"; } +.lnid-browser-error-circle::after { content: "\f066c"; } +.lnid-browser-eye::before { content: "\f066f"; } +.lnid-browser-eye::after { content: "\f066e"; } +.lnid-browser-gear::before { content: "\f0671"; } +.lnid-browser-gear::after { content: "\f0670"; } +.lnid-browser-heart::before { content: "\f0673"; } +.lnid-browser-heart::after { content: "\f0672"; } +.lnid-browser-image::before { content: "\f0675"; } +.lnid-browser-image::after { content: "\f0674"; } +.lnid-browser-incognito::before { content: "\f0677"; } +.lnid-browser-incognito::after { content: "\f0676"; } +.lnid-browser-info-circle::before { content: "\f0679"; } +.lnid-browser-info-circle::after { content: "\f0678"; } +.lnid-browser-leaf::before { content: "\f067b"; } +.lnid-browser-leaf::after { content: "\f067a"; } +.lnid-browser-link::before { content: "\f067d"; } +.lnid-browser-link::after { content: "\f067c"; } +.lnid-browser-live::before { content: "\f067f"; } +.lnid-browser-live::after { content: "\f067e"; } +.lnid-browser-locked::before { content: "\f0681"; } +.lnid-browser-locked::after { content: "\f0680"; } +.lnid-browser-minus::before { content: "\f0683"; } +.lnid-browser-minus::after { content: "\f0682"; } +.lnid-browser-moon::before { content: "\f0685"; } +.lnid-browser-moon::after { content: "\f0684"; } +.lnid-browser-mouse::before { content: "\f0687"; } +.lnid-browser-mouse::after { content: "\f0686"; } +.lnid-browser-navigation-left::before { content: "\f0689"; } +.lnid-browser-navigation-left::after { content: "\f0688"; } +.lnid-browser-navigation-right::before { content: "\f068b"; } +.lnid-browser-navigation-right::after { content: "\f068a"; } +.lnid-browser-paperclip::before { content: "\f068d"; } +.lnid-browser-paperclip::after { content: "\f068c"; } +.lnid-browser-pencil::before { content: "\f068f"; } +.lnid-browser-pencil::after { content: "\f068e"; } +.lnid-browser-percent::before { content: "\f0693"; } +.lnid-browser-percent::after { content: "\f0692"; } +.lnid-browser-percent-circle::before { content: "\f0691"; } +.lnid-browser-percent-circle::after { content: "\f0690"; } +.lnid-browser-phone::before { content: "\f0695"; } +.lnid-browser-phone::after { content: "\f0694"; } +.lnid-browser-pie-chart::before { content: "\f0697"; } +.lnid-browser-pie-chart::after { content: "\f0696"; } +.lnid-browser-pin-1::before { content: "\f0699"; } +.lnid-browser-pin-1::after { content: "\f0698"; } +.lnid-browser-pin-2::before { content: "\f069b"; } +.lnid-browser-pin-2::after { content: "\f069a"; } +.lnid-browser-play::before { content: "\f069d"; } +.lnid-browser-play::after { content: "\f069c"; } +.lnid-browser-plus::before { content: "\f06a1"; } +.lnid-browser-plus::after { content: "\f06a0"; } +.lnid-browser-plus-circle::before { content: "\f069f"; } +.lnid-browser-plus-circle::after { content: "\f069e"; } +.lnid-browser-question::before { content: "\f06a3"; } +.lnid-browser-question::after { content: "\f06a2"; } +.lnid-browser-refresh-anticlockwise::before { content: "\f06a5"; } +.lnid-browser-refresh-anticlockwise::after { content: "\f06a4"; } +.lnid-browser-refresh-clockwise::before { content: "\f06a7"; } +.lnid-browser-refresh-clockwise::after { content: "\f06a6"; } +.lnid-browser-reload-anticlockwise::before { content: "\f06a9"; } +.lnid-browser-reload-anticlockwise::after { content: "\f06a8"; } +.lnid-browser-reload-clockwise::before { content: "\f06ab"; } +.lnid-browser-reload-clockwise::after { content: "\f06aa"; } +.lnid-browser-search::before { content: "\f06b1"; } +.lnid-browser-search::after { content: "\f06b0"; } +.lnid-browser-search-1::before { content: "\f06ad"; } +.lnid-browser-search-1::after { content: "\f06ac"; } +.lnid-browser-search-2::before { content: "\f06af"; } +.lnid-browser-search-2::after { content: "\f06ae"; } +.lnid-browser-seo::before { content: "\f06b5"; } +.lnid-browser-seo::after { content: "\f06b4"; } +.lnid-browser-seo-ai::before { content: "\f06b3"; } +.lnid-browser-seo-ai::after { content: "\f06b2"; } +.lnid-browser-server::before { content: "\f06b7"; } +.lnid-browser-server::after { content: "\f06b6"; } +.lnid-browser-shield::before { content: "\f06b9"; } +.lnid-browser-shield::after { content: "\f06b8"; } +.lnid-browser-sound::before { content: "\f06bb"; } +.lnid-browser-sound::after { content: "\f06ba"; } +.lnid-browser-star::before { content: "\f06bd"; } +.lnid-browser-star::after { content: "\f06bc"; } +.lnid-browser-sun::before { content: "\f06bf"; } +.lnid-browser-sun::after { content: "\f06be"; } +.lnid-browser-swap::before { content: "\f06c1"; } +.lnid-browser-swap::after { content: "\f06c0"; } +.lnid-browser-tabs::before { content: "\f06c3"; } +.lnid-browser-tabs::after { content: "\f06c2"; } +.lnid-browser-thumbs-down::before { content: "\f06c5"; } +.lnid-browser-thumbs-down::after { content: "\f06c4"; } +.lnid-browser-thumbs-up::before { content: "\f06c7"; } +.lnid-browser-thumbs-up::after { content: "\f06c6"; } +.lnid-browser-time::before { content: "\f06c9"; } +.lnid-browser-time::after { content: "\f06c8"; } +.lnid-browser-timer::before { content: "\f06cb"; } +.lnid-browser-timer::after { content: "\f06ca"; } +.lnid-browser-trend-down::before { content: "\f06cd"; } +.lnid-browser-trend-down::after { content: "\f06cc"; } +.lnid-browser-trend-up::before { content: "\f06cf"; } +.lnid-browser-trend-up::after { content: "\f06ce"; } +.lnid-browser-unlocked::before { content: "\f06d1"; } +.lnid-browser-unlocked::after { content: "\f06d0"; } +.lnid-browser-upload::before { content: "\f06d3"; } +.lnid-browser-upload::after { content: "\f06d2"; } +.lnid-browser-user::before { content: "\f06d5"; } +.lnid-browser-user::after { content: "\f06d4"; } +.lnid-browser-video::before { content: "\f06d7"; } +.lnid-browser-video::after { content: "\f06d6"; } +.lnid-browser-vr::before { content: "\f06d9"; } +.lnid-browser-vr::after { content: "\f06d8"; } +.lnid-browser-wifi-1::before { content: "\f06db"; } +.lnid-browser-wifi-1::after { content: "\f06da"; } +.lnid-browser-wifi-2::before { content: "\f06dd"; } +.lnid-browser-wifi-2::after { content: "\f06dc"; } +.lnid-browser-xmark::before { content: "\f06e1"; } +.lnid-browser-xmark::after { content: "\f06e0"; } +.lnid-browser-xmark-circle::before { content: "\f06df"; } +.lnid-browser-xmark-circle::after { content: "\f06de"; } +.lnid-brush-1::before { content: "\f06e5"; } +.lnid-brush-1::after { content: "\f06e4"; } +.lnid-brush-1-rotated::before { content: "\f06e3"; } +.lnid-brush-1-rotated::after { content: "\f06e2"; } +.lnid-brush-2::before { content: "\f06e7"; } +.lnid-brush-2::after { content: "\f06e6"; } +.lnid-brush-ai::before { content: "\f06eb"; } +.lnid-brush-ai::after { content: "\f06ea"; } +.lnid-brush-ai-1::before { content: "\f06e9"; } +.lnid-brush-ai-1::after { content: "\f06e8"; } +.lnid-bug-1::before { content: "\f06ed"; } +.lnid-bug-1::after { content: "\f06ec"; } +.lnid-bug-2::before { content: "\f06ef"; } +.lnid-bug-2::after { content: "\f06ee"; } +.lnid-bug-3::before { content: "\f06f1"; } +.lnid-bug-3::after { content: "\f06f0"; } +.lnid-bug-4::before { content: "\f06f3"; } +.lnid-bug-4::after { content: "\f06f2"; } +.lnid-bug-ai-1::before { content: "\f06f5"; } +.lnid-bug-ai-1::after { content: "\f06f4"; } +.lnid-bug-ai-2::before { content: "\f06f7"; } +.lnid-bug-ai-2::after { content: "\f06f6"; } +.lnid-building::before { content: "\f0723"; } +.lnid-building::after { content: "\f0722"; } +.lnid-building-arrow-downward::before { content: "\f06f9"; } +.lnid-building-arrow-downward::after { content: "\f06f8"; } +.lnid-building-arrow-left::before { content: "\f06fb"; } +.lnid-building-arrow-left::after { content: "\f06fa"; } +.lnid-building-arrow-right::before { content: "\f06fd"; } +.lnid-building-arrow-right::after { content: "\f06fc"; } +.lnid-building-arrow-upward::before { content: "\f06ff"; } +.lnid-building-arrow-upward::after { content: "\f06fe"; } +.lnid-building-check-circle::before { content: "\f0701"; } +.lnid-building-check-circle::after { content: "\f0700"; } +.lnid-building-disabled::before { content: "\f0703"; } +.lnid-building-disabled::after { content: "\f0702"; } +.lnid-building-error-circle::before { content: "\f0705"; } +.lnid-building-error-circle::after { content: "\f0704"; } +.lnid-building-fire::before { content: "\f0707"; } +.lnid-building-fire::after { content: "\f0706"; } +.lnid-building-gear::before { content: "\f0709"; } +.lnid-building-gear::after { content: "\f0708"; } +.lnid-building-leaf::before { content: "\f070b"; } +.lnid-building-leaf::after { content: "\f070a"; } +.lnid-building-lokced::before { content: "\f070d"; } +.lnid-building-lokced::after { content: "\f070c"; } +.lnid-building-moon::before { content: "\f070f"; } +.lnid-building-moon::after { content: "\f070e"; } +.lnid-building-percent::before { content: "\f0711"; } +.lnid-building-percent::after { content: "\f0710"; } +.lnid-building-plus::before { content: "\f0713"; } +.lnid-building-plus::after { content: "\f0712"; } +.lnid-building-star::before { content: "\f0715"; } +.lnid-building-star::after { content: "\f0714"; } +.lnid-building-sun::before { content: "\f0717"; } +.lnid-building-sun::after { content: "\f0716"; } +.lnid-building-time::before { content: "\f0719"; } +.lnid-building-time::after { content: "\f0718"; } +.lnid-building-trash::before { content: "\f071b"; } +.lnid-building-trash::after { content: "\f071a"; } +.lnid-building-user::before { content: "\f071d"; } +.lnid-building-user::after { content: "\f071c"; } +.lnid-building-wifi::before { content: "\f071f"; } +.lnid-building-wifi::after { content: "\f071e"; } +.lnid-building-xmark-circle::before { content: "\f0721"; } +.lnid-building-xmark-circle::after { content: "\f0720"; } +.lnid-buildings-1::before { content: "\f0729"; } +.lnid-buildings-1::after { content: "\f0728"; } +.lnid-buildings-10::before { content: "\f0725"; } +.lnid-buildings-10::after { content: "\f0724"; } +.lnid-buildings-11::before { content: "\f0727"; } +.lnid-buildings-11::after { content: "\f0726"; } +.lnid-buildings-2::before { content: "\f072b"; } +.lnid-buildings-2::after { content: "\f072a"; } +.lnid-buildings-3::before { content: "\f072d"; } +.lnid-buildings-3::after { content: "\f072c"; } +.lnid-buildings-4::before { content: "\f072f"; } +.lnid-buildings-4::after { content: "\f072e"; } +.lnid-buildings-5::before { content: "\f0731"; } +.lnid-buildings-5::after { content: "\f0730"; } +.lnid-buildings-6::before { content: "\f0733"; } +.lnid-buildings-6::after { content: "\f0732"; } +.lnid-buildings-7::before { content: "\f0735"; } +.lnid-buildings-7::after { content: "\f0734"; } +.lnid-buildings-8::before { content: "\f0737"; } +.lnid-buildings-8::after { content: "\f0736"; } +.lnid-buildings-9::before { content: "\f0739"; } +.lnid-buildings-9::after { content: "\f0738"; } +.lnid-bulb-1::before { content: "\f073b"; } +.lnid-bulb-1::after { content: "\f073a"; } +.lnid-bulb-2::before { content: "\f073d"; } +.lnid-bulb-2::after { content: "\f073c"; } +.lnid-bulb-3::before { content: "\f073f"; } +.lnid-bulb-3::after { content: "\f073e"; } +.lnid-bulb-4::before { content: "\f0741"; } +.lnid-bulb-4::after { content: "\f0740"; } +.lnid-bulb-5::before { content: "\f0743"; } +.lnid-bulb-5::after { content: "\f0742"; } +.lnid-bulb-beat::before { content: "\f0745"; } +.lnid-bulb-beat::after { content: "\f0744"; } +.lnid-bulb-bluetooth::before { content: "\f0747"; } +.lnid-bulb-bluetooth::after { content: "\f0746"; } +.lnid-bulb-bolt::before { content: "\f0749"; } +.lnid-bulb-bolt::after { content: "\f0748"; } +.lnid-bulb-cfl-tornado::before { content: "\f074f"; } +.lnid-bulb-cfl-tornado::after { content: "\f074e"; } +.lnid-bulb-cfl-tornado-disabled::before { content: "\f074b"; } +.lnid-bulb-cfl-tornado-disabled::after { content: "\f074a"; } +.lnid-bulb-cfl-tornado-light::before { content: "\f074d"; } +.lnid-bulb-cfl-tornado-light::after { content: "\f074c"; } +.lnid-bulb-cfl-tubular::before { content: "\f0755"; } +.lnid-bulb-cfl-tubular::after { content: "\f0754"; } +.lnid-bulb-cfl-tubular-disabled::before { content: "\f0751"; } +.lnid-bulb-cfl-tubular-disabled::after { content: "\f0750"; } +.lnid-bulb-cfl-tubular-light::before { content: "\f0753"; } +.lnid-bulb-cfl-tubular-light::after { content: "\f0752"; } +.lnid-bulb-check::before { content: "\f0757"; } +.lnid-bulb-check::after { content: "\f0756"; } +.lnid-bulb-code-1::before { content: "\f0759"; } +.lnid-bulb-code-1::after { content: "\f0758"; } +.lnid-bulb-code-2::before { content: "\f075b"; } +.lnid-bulb-code-2::after { content: "\f075a"; } +.lnid-bulb-code-3::before { content: "\f075d"; } +.lnid-bulb-code-3::after { content: "\f075c"; } +.lnid-bulb-disabled::before { content: "\f075f"; } +.lnid-bulb-disabled::after { content: "\f075e"; } +.lnid-bulb-dollar::before { content: "\f0761"; } +.lnid-bulb-dollar::after { content: "\f0760"; } +.lnid-bulb-info::before { content: "\f0763"; } +.lnid-bulb-info::after { content: "\f0762"; } +.lnid-bulb-leaf::before { content: "\f0765"; } +.lnid-bulb-leaf::after { content: "\f0764"; } +.lnid-bulb-moon::before { content: "\f0767"; } +.lnid-bulb-moon::after { content: "\f0766"; } +.lnid-bulb-question-mark::before { content: "\f0769"; } +.lnid-bulb-question-mark::after { content: "\f0768"; } +.lnid-bulb-refresh::before { content: "\f076b"; } +.lnid-bulb-refresh::after { content: "\f076a"; } +.lnid-bulb-sun::before { content: "\f076d"; } +.lnid-bulb-sun::after { content: "\f076c"; } +.lnid-bulb-trend-down::before { content: "\f076f"; } +.lnid-bulb-trend-down::after { content: "\f076e"; } +.lnid-bulb-trend-up::before { content: "\f0771"; } +.lnid-bulb-trend-up::after { content: "\f0770"; } +.lnid-bulb-tube::before { content: "\f0775"; } +.lnid-bulb-tube::after { content: "\f0774"; } +.lnid-bulb-tube-spark::before { content: "\f0773"; } +.lnid-bulb-tube-spark::after { content: "\f0772"; } +.lnid-bulb-xmark::before { content: "\f0777"; } +.lnid-bulb-xmark::after { content: "\f0776"; } +.lnid-bulldozer-1::before { content: "\f0779"; } +.lnid-bulldozer-1::after { content: "\f0778"; } +.lnid-bulldozer-2::before { content: "\f077b"; } +.lnid-bulldozer-2::after { content: "\f077a"; } +.lnid-bulldozer-3::before { content: "\f077d"; } +.lnid-bulldozer-3::after { content: "\f077c"; } +.lnid-burger-1::before { content: "\f077f"; } +.lnid-burger-1::after { content: "\f077e"; } +.lnid-burger-2::before { content: "\f0781"; } +.lnid-burger-2::after { content: "\f0780"; } +.lnid-burger-3::before { content: "\f0783"; } +.lnid-burger-3::after { content: "\f0782"; } +.lnid-burger-4::before { content: "\f0785"; } +.lnid-burger-4::after { content: "\f0784"; } +.lnid-burger-drink::before { content: "\f0787"; } +.lnid-burger-drink::after { content: "\f0786"; } +.lnid-burj-al-arab::before { content: "\f0789"; } +.lnid-burj-al-arab::after { content: "\f0788"; } +.lnid-bus-1::before { content: "\f078b"; } +.lnid-bus-1::after { content: "\f078a"; } +.lnid-bus-2::before { content: "\f078d"; } +.lnid-bus-2::after { content: "\f078c"; } +.lnid-bus-3::before { content: "\f078f"; } +.lnid-bus-3::after { content: "\f078e"; } +.lnid-bus-school::before { content: "\f0791"; } +.lnid-bus-school::after { content: "\f0790"; } +.lnid-busket-ball::before { content: "\f0793"; } +.lnid-busket-ball::after { content: "\f0792"; } +.lnid-butterfly::before { content: "\f0795"; } +.lnid-butterfly::after { content: "\f0794"; } +.lnid-cable::before { content: "\f07a9"; } +.lnid-cable::after { content: "\f07a8"; } +.lnid-cable-bundle-1::before { content: "\f0797"; } +.lnid-cable-bundle-1::after { content: "\f0796"; } +.lnid-cable-bundle-2::before { content: "\f0799"; } +.lnid-cable-bundle-2::after { content: "\f0798"; } +.lnid-cable-bundle-3::before { content: "\f079b"; } +.lnid-cable-bundle-3::after { content: "\f079a"; } +.lnid-cable-bundle-4::before { content: "\f079d"; } +.lnid-cable-bundle-4::after { content: "\f079c"; } +.lnid-cable-bundle-5::before { content: "\f079f"; } +.lnid-cable-bundle-5::after { content: "\f079e"; } +.lnid-cable-car::before { content: "\f07a1"; } +.lnid-cable-car::after { content: "\f07a0"; } +.lnid-cable-copper::before { content: "\f07a3"; } +.lnid-cable-copper::after { content: "\f07a2"; } +.lnid-cable-power-1::before { content: "\f07a5"; } +.lnid-cable-power-1::after { content: "\f07a4"; } +.lnid-cable-power-2::before { content: "\f07a7"; } +.lnid-cable-power-2::after { content: "\f07a6"; } +.lnid-cactus-1::before { content: "\f07ab"; } +.lnid-cactus-1::after { content: "\f07aa"; } +.lnid-cactus-2::before { content: "\f07ad"; } +.lnid-cactus-2::after { content: "\f07ac"; } +.lnid-cactus-3::before { content: "\f07af"; } +.lnid-cactus-3::after { content: "\f07ae"; } +.lnid-cactus-4::before { content: "\f07b1"; } +.lnid-cactus-4::after { content: "\f07b0"; } +.lnid-cactus-5::before { content: "\f07b3"; } +.lnid-cactus-5::after { content: "\f07b2"; } +.lnid-cactus-6::before { content: "\f07b5"; } +.lnid-cactus-6::after { content: "\f07b4"; } +.lnid-cactus-7::before { content: "\f07b7"; } +.lnid-cactus-7::after { content: "\f07b6"; } +.lnid-cactus-8::before { content: "\f07b9"; } +.lnid-cactus-8::after { content: "\f07b8"; } +.lnid-cactus-9::before { content: "\f07bb"; } +.lnid-cactus-9::after { content: "\f07ba"; } +.lnid-cake-1::before { content: "\f07bd"; } +.lnid-cake-1::after { content: "\f07bc"; } +.lnid-cake-2::before { content: "\f07bf"; } +.lnid-cake-2::after { content: "\f07be"; } +.lnid-cake-heart::before { content: "\f07c1"; } +.lnid-cake-heart::after { content: "\f07c0"; } +.lnid-cake-slice::before { content: "\f07c3"; } +.lnid-cake-slice::after { content: "\f07c2"; } +.lnid-calculator-1::before { content: "\f07c5"; } +.lnid-calculator-1::after { content: "\f07c4"; } +.lnid-calculator-2::before { content: "\f07c7"; } +.lnid-calculator-2::after { content: "\f07c6"; } +.lnid-calculator-3::before { content: "\f07c9"; } +.lnid-calculator-3::after { content: "\f07c8"; } +.lnid-calculator-4::before { content: "\f07cb"; } +.lnid-calculator-4::after { content: "\f07ca"; } +.lnid-calculator-5::before { content: "\f07cd"; } +.lnid-calculator-5::after { content: "\f07cc"; } +.lnid-calculator-paper::before { content: "\f07cf"; } +.lnid-calculator-paper::after { content: "\f07ce"; } +.lnid-calendar::before { content: "\f082f"; } +.lnid-calendar::after { content: "\f082e"; } +.lnid-calendar-arrow-downward::before { content: "\f07d3"; } +.lnid-calendar-arrow-downward::after { content: "\f07d2"; } +.lnid-calendar-arrow-downward-2::before { content: "\f07d1"; } +.lnid-calendar-arrow-downward-2::after { content: "\f07d0"; } +.lnid-calendar-arrow-left::before { content: "\f07d7"; } +.lnid-calendar-arrow-left::after { content: "\f07d6"; } +.lnid-calendar-arrow-left-2::before { content: "\f07d5"; } +.lnid-calendar-arrow-left-2::after { content: "\f07d4"; } +.lnid-calendar-arrow-right::before { content: "\f07db"; } +.lnid-calendar-arrow-right::after { content: "\f07da"; } +.lnid-calendar-arrow-right-2::before { content: "\f07d9"; } +.lnid-calendar-arrow-right-2::after { content: "\f07d8"; } +.lnid-calendar-arrow-upward::before { content: "\f07df"; } +.lnid-calendar-arrow-upward::after { content: "\f07de"; } +.lnid-calendar-arrow-upward-2::before { content: "\f07dd"; } +.lnid-calendar-arrow-upward-2::after { content: "\f07dc"; } +.lnid-calendar-check::before { content: "\f07e3"; } +.lnid-calendar-check::after { content: "\f07e2"; } +.lnid-calendar-check-circle::before { content: "\f07e1"; } +.lnid-calendar-check-circle::after { content: "\f07e0"; } +.lnid-calendar-date-range::before { content: "\f07e5"; } +.lnid-calendar-date-range::after { content: "\f07e4"; } +.lnid-calendar-days::before { content: "\f07e7"; } +.lnid-calendar-days::after { content: "\f07e6"; } +.lnid-calendar-disabled-1::before { content: "\f07e9"; } +.lnid-calendar-disabled-1::after { content: "\f07e8"; } +.lnid-calendar-disabled-2::before { content: "\f07eb"; } +.lnid-calendar-disabled-2::after { content: "\f07ea"; } +.lnid-calendar-error::before { content: "\f07ed"; } +.lnid-calendar-error::after { content: "\f07ec"; } +.lnid-calendar-gear::before { content: "\f07ef"; } +.lnid-calendar-gear::after { content: "\f07ee"; } +.lnid-calendar-heart::before { content: "\f07f3"; } +.lnid-calendar-heart::after { content: "\f07f2"; } +.lnid-calendar-heart-1::before { content: "\f07f1"; } +.lnid-calendar-heart-1::after { content: "\f07f0"; } +.lnid-calendar-locked-1::before { content: "\f07f5"; } +.lnid-calendar-locked-1::after { content: "\f07f4"; } +.lnid-calendar-locked-2::before { content: "\f07f7"; } +.lnid-calendar-locked-2::after { content: "\f07f6"; } +.lnid-calendar-minus::before { content: "\f07fb"; } +.lnid-calendar-minus::after { content: "\f07fa"; } +.lnid-calendar-minus-circle::before { content: "\f07f9"; } +.lnid-calendar-minus-circle::after { content: "\f07f8"; } +.lnid-calendar-moon::before { content: "\f07fd"; } +.lnid-calendar-moon::after { content: "\f07fc"; } +.lnid-calendar-note::before { content: "\f07ff"; } +.lnid-calendar-note::after { content: "\f07fe"; } +.lnid-calendar-number-1::before { content: "\f0805"; } +.lnid-calendar-number-1::after { content: "\f0804"; } +.lnid-calendar-number-10::before { content: "\f0803"; } +.lnid-calendar-number-10::after { content: "\f0802"; } +.lnid-calendar-number-10-2::before { content: "\f0801"; } +.lnid-calendar-number-10-2::after { content: "\f0800"; } +.lnid-calendar-number-20::before { content: "\f0809"; } +.lnid-calendar-number-20::after { content: "\f0808"; } +.lnid-calendar-number-20-2::before { content: "\f0807"; } +.lnid-calendar-number-20-2::after { content: "\f0806"; } +.lnid-calendar-pencil-1::before { content: "\f080b"; } +.lnid-calendar-pencil-1::after { content: "\f080a"; } +.lnid-calendar-pencil-2::before { content: "\f080d"; } +.lnid-calendar-pencil-2::after { content: "\f080c"; } +.lnid-calendar-percent::before { content: "\f080f"; } +.lnid-calendar-percent::after { content: "\f080e"; } +.lnid-calendar-plus::before { content: "\f0813"; } +.lnid-calendar-plus::after { content: "\f0812"; } +.lnid-calendar-plus-circle::before { content: "\f0811"; } +.lnid-calendar-plus-circle::after { content: "\f0810"; } +.lnid-calendar-question::before { content: "\f0815"; } +.lnid-calendar-question::after { content: "\f0814"; } +.lnid-calendar-reload::before { content: "\f0817"; } +.lnid-calendar-reload::after { content: "\f0816"; } +.lnid-calendar-star-1::before { content: "\f0819"; } +.lnid-calendar-star-1::after { content: "\f0818"; } +.lnid-calendar-star-2::before { content: "\f081b"; } +.lnid-calendar-star-2::after { content: "\f081a"; } +.lnid-calendar-sun::before { content: "\f081d"; } +.lnid-calendar-sun::after { content: "\f081c"; } +.lnid-calendar-time::before { content: "\f0821"; } +.lnid-calendar-time::after { content: "\f0820"; } +.lnid-calendar-time-ai::before { content: "\f081f"; } +.lnid-calendar-time-ai::after { content: "\f081e"; } +.lnid-calendar-today-marked::before { content: "\f0823"; } +.lnid-calendar-today-marked::after { content: "\f0822"; } +.lnid-calendar-trash::before { content: "\f0825"; } +.lnid-calendar-trash::after { content: "\f0824"; } +.lnid-calendar-user-1::before { content: "\f0827"; } +.lnid-calendar-user-1::after { content: "\f0826"; } +.lnid-calendar-user-2::before { content: "\f0829"; } +.lnid-calendar-user-2::after { content: "\f0828"; } +.lnid-calendar-xmark::before { content: "\f082d"; } +.lnid-calendar-xmark::after { content: "\f082c"; } +.lnid-calendar-xmark-circle::before { content: "\f082b"; } +.lnid-calendar-xmark-circle::after { content: "\f082a"; } +.lnid-calendars::before { content: "\f0831"; } +.lnid-calendars::after { content: "\f0830"; } +.lnid-camel::before { content: "\f0833"; } +.lnid-camel::after { content: "\f0832"; } +.lnid-camera-1::before { content: "\f0835"; } +.lnid-camera-1::after { content: "\f0834"; } +.lnid-camera-2::before { content: "\f0837"; } +.lnid-camera-2::after { content: "\f0836"; } +.lnid-camera-3::before { content: "\f0839"; } +.lnid-camera-3::after { content: "\f0838"; } +.lnid-camera-4::before { content: "\f083b"; } +.lnid-camera-4::after { content: "\f083a"; } +.lnid-camera-4k-1::before { content: "\f083d"; } +.lnid-camera-4k-1::after { content: "\f083c"; } +.lnid-camera-4k-2::before { content: "\f083f"; } +.lnid-camera-4k-2::after { content: "\f083e"; } +.lnid-camera-5::before { content: "\f0841"; } +.lnid-camera-5::after { content: "\f0840"; } +.lnid-camera-6::before { content: "\f0843"; } +.lnid-camera-6::after { content: "\f0842"; } +.lnid-camera-ai::before { content: "\f0845"; } +.lnid-camera-ai::after { content: "\f0844"; } +.lnid-camera-bluetooth-1::before { content: "\f0847"; } +.lnid-camera-bluetooth-1::after { content: "\f0846"; } +.lnid-camera-bluetooth-2::before { content: "\f0849"; } +.lnid-camera-bluetooth-2::after { content: "\f0848"; } +.lnid-camera-bolt::before { content: "\f084b"; } +.lnid-camera-bolt::after { content: "\f084a"; } +.lnid-camera-cctv::before { content: "\f084f"; } +.lnid-camera-cctv::after { content: "\f084e"; } +.lnid-camera-cctv-disabled::before { content: "\f084d"; } +.lnid-camera-cctv-disabled::after { content: "\f084c"; } +.lnid-camera-check::before { content: "\f0853"; } +.lnid-camera-check::after { content: "\f0852"; } +.lnid-camera-check-circle::before { content: "\f0851"; } +.lnid-camera-check-circle::after { content: "\f0850"; } +.lnid-camera-disabled::before { content: "\f0855"; } +.lnid-camera-disabled::after { content: "\f0854"; } +.lnid-camera-error::before { content: "\f0859"; } +.lnid-camera-error::after { content: "\f0858"; } +.lnid-camera-error-circle::before { content: "\f0857"; } +.lnid-camera-error-circle::after { content: "\f0856"; } +.lnid-camera-gear::before { content: "\f085b"; } +.lnid-camera-gear::after { content: "\f085a"; } +.lnid-camera-heart::before { content: "\f085d"; } +.lnid-camera-heart::after { content: "\f085c"; } +.lnid-camera-live::before { content: "\f085f"; } +.lnid-camera-live::after { content: "\f085e"; } +.lnid-camera-locked::before { content: "\f0861"; } +.lnid-camera-locked::after { content: "\f0860"; } +.lnid-camera-movie-1::before { content: "\f0863"; } +.lnid-camera-movie-1::after { content: "\f0862"; } +.lnid-camera-movie-2::before { content: "\f0865"; } +.lnid-camera-movie-2::after { content: "\f0864"; } +.lnid-camera-movie-3::before { content: "\f0867"; } +.lnid-camera-movie-3::after { content: "\f0866"; } +.lnid-camera-movie-4::before { content: "\f0869"; } +.lnid-camera-movie-4::after { content: "\f0868"; } +.lnid-camera-movie-hd::before { content: "\f086b"; } +.lnid-camera-movie-hd::after { content: "\f086a"; } +.lnid-camera-movie-stand::before { content: "\f086d"; } +.lnid-camera-movie-stand::after { content: "\f086c"; } +.lnid-camera-refresh::before { content: "\f086f"; } +.lnid-camera-refresh::after { content: "\f086e"; } +.lnid-camera-reload::before { content: "\f0871"; } +.lnid-camera-reload::after { content: "\f0870"; } +.lnid-camera-rotate::before { content: "\f0873"; } +.lnid-camera-rotate::after { content: "\f0872"; } +.lnid-camera-scan::before { content: "\f0875"; } +.lnid-camera-scan::after { content: "\f0874"; } +.lnid-camera-shutter::before { content: "\f0877"; } +.lnid-camera-shutter::after { content: "\f0876"; } +.lnid-camera-time::before { content: "\f0879"; } +.lnid-camera-time::after { content: "\f0878"; } +.lnid-camera-tripod::before { content: "\f087b"; } +.lnid-camera-tripod::after { content: "\f087a"; } +.lnid-camera-wifi::before { content: "\f087d"; } +.lnid-camera-wifi::after { content: "\f087c"; } +.lnid-camera-xmark::before { content: "\f0881"; } +.lnid-camera-xmark::after { content: "\f0880"; } +.lnid-camera-xmark-circle::before { content: "\f087f"; } +.lnid-camera-xmark-circle::after { content: "\f087e"; } +.lnid-candle-1::before { content: "\f0883"; } +.lnid-candle-1::after { content: "\f0882"; } +.lnid-candle-2::before { content: "\f0885"; } +.lnid-candle-2::after { content: "\f0884"; } +.lnid-candles-1::before { content: "\f0887"; } +.lnid-candles-1::after { content: "\f0886"; } +.lnid-candles-2::before { content: "\f0889"; } +.lnid-candles-2::after { content: "\f0888"; } +.lnid-candles-wedding::before { content: "\f088b"; } +.lnid-candles-wedding::after { content: "\f088a"; } +.lnid-candy-cane-1::before { content: "\f088d"; } +.lnid-candy-cane-1::after { content: "\f088c"; } +.lnid-candy-cane-2::before { content: "\f088f"; } +.lnid-candy-cane-2::after { content: "\f088e"; } +.lnid-candy-round-1::before { content: "\f0891"; } +.lnid-candy-round-1::after { content: "\f0890"; } +.lnid-candy-round-2::before { content: "\f0893"; } +.lnid-candy-round-2::after { content: "\f0892"; } +.lnid-candy-round-3::before { content: "\f0895"; } +.lnid-candy-round-3::after { content: "\f0894"; } +.lnid-candy-square-1::before { content: "\f0897"; } +.lnid-candy-square-1::after { content: "\f0896"; } +.lnid-candy-square-2::before { content: "\f0899"; } +.lnid-candy-square-2::after { content: "\f0898"; } +.lnid-candy-square-3::before { content: "\f089b"; } +.lnid-candy-square-3::after { content: "\f089a"; } +.lnid-cannula::before { content: "\f089d"; } +.lnid-cannula::after { content: "\f089c"; } +.lnid-capital-letter::before { content: "\f089f"; } +.lnid-capital-letter::after { content: "\f089e"; } +.lnid-capsule-1::before { content: "\f08a1"; } +.lnid-capsule-1::after { content: "\f08a0"; } +.lnid-capsule-2::before { content: "\f08a3"; } +.lnid-capsule-2::after { content: "\f08a2"; } +.lnid-capsule-3::before { content: "\f08a5"; } +.lnid-capsule-3::after { content: "\f08a4"; } +.lnid-capsule-tablet::before { content: "\f08a7"; } +.lnid-capsule-tablet::after { content: "\f08a6"; } +.lnid-capsules::before { content: "\f08a9"; } +.lnid-capsules::after { content: "\f08a8"; } +.lnid-car-1::before { content: "\f08ad"; } +.lnid-car-1::after { content: "\f08ac"; } +.lnid-car-10::before { content: "\f08ab"; } +.lnid-car-10::after { content: "\f08aa"; } +.lnid-car-2::before { content: "\f08af"; } +.lnid-car-2::after { content: "\f08ae"; } +.lnid-car-3::before { content: "\f08b1"; } +.lnid-car-3::after { content: "\f08b0"; } +.lnid-car-4::before { content: "\f08b3"; } +.lnid-car-4::after { content: "\f08b2"; } +.lnid-car-5::before { content: "\f08b5"; } +.lnid-car-5::after { content: "\f08b4"; } +.lnid-car-6::before { content: "\f08b7"; } +.lnid-car-6::after { content: "\f08b6"; } +.lnid-car-7::before { content: "\f08b9"; } +.lnid-car-7::after { content: "\f08b8"; } +.lnid-car-8::before { content: "\f08bb"; } +.lnid-car-8::after { content: "\f08ba"; } +.lnid-car-9::before { content: "\f08bd"; } +.lnid-car-9::after { content: "\f08bc"; } +.lnid-car-ai-1::before { content: "\f08bf"; } +.lnid-car-ai-1::after { content: "\f08be"; } +.lnid-car-heart::before { content: "\f08c1"; } +.lnid-car-heart::after { content: "\f08c0"; } +.lnid-car-side-view-1::before { content: "\f08c3"; } +.lnid-car-side-view-1::after { content: "\f08c2"; } +.lnid-car-side-view-2::before { content: "\f08c5"; } +.lnid-car-side-view-2::after { content: "\f08c4"; } +.lnid-car-side-view-3::before { content: "\f08c7"; } +.lnid-car-side-view-3::after { content: "\f08c6"; } +.lnid-car-side-view-4::before { content: "\f08c9"; } +.lnid-car-side-view-4::after { content: "\f08c8"; } +.lnid-car-side-view-5::before { content: "\f08cb"; } +.lnid-car-side-view-5::after { content: "\f08ca"; } +.lnid-car-side-view-6::before { content: "\f08cd"; } +.lnid-car-side-view-6::after { content: "\f08cc"; } +.lnid-car-side-view-7::before { content: "\f08cf"; } +.lnid-car-side-view-7::after { content: "\f08ce"; } +.lnid-car-side-view-8::before { content: "\f08d1"; } +.lnid-car-side-view-8::after { content: "\f08d0"; } +.lnid-car-side-view-9::before { content: "\f08d3"; } +.lnid-car-side-view-9::after { content: "\f08d2"; } +.lnid-caravan-1::before { content: "\f08d5"; } +.lnid-caravan-1::after { content: "\f08d4"; } +.lnid-caravan-2::before { content: "\f08d7"; } +.lnid-caravan-2::after { content: "\f08d6"; } +.lnid-caravan-3::before { content: "\f08d9"; } +.lnid-caravan-3::after { content: "\f08d8"; } +.lnid-carrot::before { content: "\f08db"; } +.lnid-carrot::after { content: "\f08da"; } +.lnid-cart-1::before { content: "\f08dd"; } +.lnid-cart-1::after { content: "\f08dc"; } +.lnid-cart-2::before { content: "\f08df"; } +.lnid-cart-2::after { content: "\f08de"; } +.lnid-cart-3::before { content: "\f08e1"; } +.lnid-cart-3::after { content: "\f08e0"; } +.lnid-cart-ai::before { content: "\f08e3"; } +.lnid-cart-ai::after { content: "\f08e2"; } +.lnid-cart-arrow-downward::before { content: "\f08e5"; } +.lnid-cart-arrow-downward::after { content: "\f08e4"; } +.lnid-cart-arrow-left::before { content: "\f08e7"; } +.lnid-cart-arrow-left::after { content: "\f08e6"; } +.lnid-cart-arrow-right::before { content: "\f08e9"; } +.lnid-cart-arrow-right::after { content: "\f08e8"; } +.lnid-cart-arrow-upward::before { content: "\f08eb"; } +.lnid-cart-arrow-upward::after { content: "\f08ea"; } +.lnid-cart-book::before { content: "\f08ed"; } +.lnid-cart-book::after { content: "\f08ec"; } +.lnid-cart-box::before { content: "\f08ef"; } +.lnid-cart-box::after { content: "\f08ee"; } +.lnid-cart-check-circle::before { content: "\f08f1"; } +.lnid-cart-check-circle::after { content: "\f08f0"; } +.lnid-cart-cloud::before { content: "\f08f3"; } +.lnid-cart-cloud::after { content: "\f08f2"; } +.lnid-cart-disabled::before { content: "\f08f5"; } +.lnid-cart-disabled::after { content: "\f08f4"; } +.lnid-cart-dollar::before { content: "\f08f7"; } +.lnid-cart-dollar::after { content: "\f08f6"; } +.lnid-cart-flatbed-arrow-downward::before { content: "\f08f9"; } +.lnid-cart-flatbed-arrow-downward::after { content: "\f08f8"; } +.lnid-cart-flatbed-arrow-left::before { content: "\f08fb"; } +.lnid-cart-flatbed-arrow-left::after { content: "\f08fa"; } +.lnid-cart-flatbed-arrow-right::before { content: "\f08fd"; } +.lnid-cart-flatbed-arrow-right::after { content: "\f08fc"; } +.lnid-cart-flatbed-arrow-upward::before { content: "\f08ff"; } +.lnid-cart-flatbed-arrow-upward::after { content: "\f08fe"; } +.lnid-cart-flatbed-box::before { content: "\f0905"; } +.lnid-cart-flatbed-box::after { content: "\f0904"; } +.lnid-cart-flatbed-box-stacked::before { content: "\f0901"; } +.lnid-cart-flatbed-box-stacked::after { content: "\f0900"; } +.lnid-cart-flatbed-box-taped::before { content: "\f0903"; } +.lnid-cart-flatbed-box-taped::after { content: "\f0902"; } +.lnid-cart-flatbed-check-circle::before { content: "\f0907"; } +.lnid-cart-flatbed-check-circle::after { content: "\f0906"; } +.lnid-cart-flatbed-food::before { content: "\f0909"; } +.lnid-cart-flatbed-food::after { content: "\f0908"; } +.lnid-cart-flatbed-xmark-circle::before { content: "\f090b"; } +.lnid-cart-flatbed-xmark-circle::after { content: "\f090a"; } +.lnid-cart-food::before { content: "\f090d"; } +.lnid-cart-food::after { content: "\f090c"; } +.lnid-cart-globe::before { content: "\f090f"; } +.lnid-cart-globe::after { content: "\f090e"; } +.lnid-cart-heart::before { content: "\f0913"; } +.lnid-cart-heart::after { content: "\f0912"; } +.lnid-cart-heart-circle::before { content: "\f0911"; } +.lnid-cart-heart-circle::after { content: "\f0910"; } +.lnid-cart-info-circle::before { content: "\f0915"; } +.lnid-cart-info-circle::after { content: "\f0914"; } +.lnid-cart-leaf::before { content: "\f0917"; } +.lnid-cart-leaf::after { content: "\f0916"; } +.lnid-cart-list::before { content: "\f0919"; } +.lnid-cart-list::after { content: "\f0918"; } +.lnid-cart-locked::before { content: "\f091b"; } +.lnid-cart-locked::after { content: "\f091a"; } +.lnid-cart-minus::before { content: "\f091f"; } +.lnid-cart-minus::after { content: "\f091e"; } +.lnid-cart-minus-circle::before { content: "\f091d"; } +.lnid-cart-minus-circle::after { content: "\f091c"; } +.lnid-cart-moving::before { content: "\f0921"; } +.lnid-cart-moving::after { content: "\f0920"; } +.lnid-cart-number-20::before { content: "\f0923"; } +.lnid-cart-number-20::after { content: "\f0922"; } +.lnid-cart-percent-circle::before { content: "\f0925"; } +.lnid-cart-percent-circle::after { content: "\f0924"; } +.lnid-cart-plus::before { content: "\f0929"; } +.lnid-cart-plus::after { content: "\f0928"; } +.lnid-cart-plus-circle::before { content: "\f0927"; } +.lnid-cart-plus-circle::after { content: "\f0926"; } +.lnid-cart-question-mark::before { content: "\f092b"; } +.lnid-cart-question-mark::after { content: "\f092a"; } +.lnid-cart-refresh::before { content: "\f092d"; } +.lnid-cart-refresh::after { content: "\f092c"; } +.lnid-cart-search::before { content: "\f092f"; } +.lnid-cart-search::after { content: "\f092e"; } +.lnid-cart-smile::before { content: "\f0931"; } +.lnid-cart-smile::after { content: "\f0930"; } +.lnid-cart-star::before { content: "\f0933"; } +.lnid-cart-star::after { content: "\f0932"; } +.lnid-cart-sun::before { content: "\f0935"; } +.lnid-cart-sun::after { content: "\f0934"; } +.lnid-cart-thumbs-down::before { content: "\f0937"; } +.lnid-cart-thumbs-down::after { content: "\f0936"; } +.lnid-cart-thumbs-up::before { content: "\f0939"; } +.lnid-cart-thumbs-up::after { content: "\f0938"; } +.lnid-cart-time::before { content: "\f093b"; } +.lnid-cart-time::after { content: "\f093a"; } +.lnid-cart-timer::before { content: "\f093d"; } +.lnid-cart-timer::after { content: "\f093c"; } +.lnid-cart-undo::before { content: "\f093f"; } +.lnid-cart-undo::after { content: "\f093e"; } +.lnid-cart-unlocked::before { content: "\f0941"; } +.lnid-cart-unlocked::after { content: "\f0940"; } +.lnid-cart-user::before { content: "\f0943"; } +.lnid-cart-user::after { content: "\f0942"; } +.lnid-cart-wifi::before { content: "\f0945"; } +.lnid-cart-wifi::after { content: "\f0944"; } +.lnid-cart-xmark-circle::before { content: "\f0947"; } +.lnid-cart-xmark-circle::after { content: "\f0946"; } +.lnid-castle-1::before { content: "\f0949"; } +.lnid-castle-1::after { content: "\f0948"; } +.lnid-castle-2::before { content: "\f094b"; } +.lnid-castle-2::after { content: "\f094a"; } +.lnid-castle-3::before { content: "\f094d"; } +.lnid-castle-3::after { content: "\f094c"; } +.lnid-castle-4::before { content: "\f094f"; } +.lnid-castle-4::after { content: "\f094e"; } +.lnid-cat::before { content: "\f0951"; } +.lnid-cat::after { content: "\f0950"; } +.lnid-celsius::before { content: "\f0955"; } +.lnid-celsius::after { content: "\f0954"; } +.lnid-celsius-circle::before { content: "\f0953"; } +.lnid-celsius-circle::after { content: "\f0952"; } +.lnid-certificate-ai::before { content: "\f0957"; } +.lnid-certificate-ai::after { content: "\f0956"; } +.lnid-certificate-badge-1::before { content: "\f0959"; } +.lnid-certificate-badge-1::after { content: "\f0958"; } +.lnid-certificate-badge-2::before { content: "\f095b"; } +.lnid-certificate-badge-2::after { content: "\f095a"; } +.lnid-certificate-star::before { content: "\f095d"; } +.lnid-certificate-star::after { content: "\f095c"; } +.lnid-champagne::before { content: "\f0961"; } +.lnid-champagne::after { content: "\f0960"; } +.lnid-champagne-heart::before { content: "\f095f"; } +.lnid-champagne-heart::after { content: "\f095e"; } +.lnid-chat-1::before { content: "\f0973"; } +.lnid-chat-1::after { content: "\f0972"; } +.lnid-chat-1-dots::before { content: "\f0963"; } +.lnid-chat-1-dots::after { content: "\f0962"; } +.lnid-chat-1-error::before { content: "\f0965"; } +.lnid-chat-1-error::after { content: "\f0964"; } +.lnid-chat-1-heart::before { content: "\f0967"; } +.lnid-chat-1-heart::after { content: "\f0966"; } +.lnid-chat-1-minus::before { content: "\f0969"; } +.lnid-chat-1-minus::after { content: "\f0968"; } +.lnid-chat-1-plus::before { content: "\f096b"; } +.lnid-chat-1-plus::after { content: "\f096a"; } +.lnid-chat-1-question::before { content: "\f096d"; } +.lnid-chat-1-question::after { content: "\f096c"; } +.lnid-chat-1-share::before { content: "\f096f"; } +.lnid-chat-1-share::after { content: "\f096e"; } +.lnid-chat-1-text::before { content: "\f0971"; } +.lnid-chat-1-text::after { content: "\f0970"; } +.lnid-chat-2::before { content: "\f0985"; } +.lnid-chat-2::after { content: "\f0984"; } +.lnid-chat-2-dots::before { content: "\f0975"; } +.lnid-chat-2-dots::after { content: "\f0974"; } +.lnid-chat-2-error::before { content: "\f0977"; } +.lnid-chat-2-error::after { content: "\f0976"; } +.lnid-chat-2-heart::before { content: "\f0979"; } +.lnid-chat-2-heart::after { content: "\f0978"; } +.lnid-chat-2-minus::before { content: "\f097b"; } +.lnid-chat-2-minus::after { content: "\f097a"; } +.lnid-chat-2-plus::before { content: "\f097d"; } +.lnid-chat-2-plus::after { content: "\f097c"; } +.lnid-chat-2-question::before { content: "\f097f"; } +.lnid-chat-2-question::after { content: "\f097e"; } +.lnid-chat-2-share::before { content: "\f0981"; } +.lnid-chat-2-share::after { content: "\f0980"; } +.lnid-chat-2-text::before { content: "\f0983"; } +.lnid-chat-2-text::after { content: "\f0982"; } +.lnid-chat-3::before { content: "\f0997"; } +.lnid-chat-3::after { content: "\f0996"; } +.lnid-chat-3-dots::before { content: "\f0987"; } +.lnid-chat-3-dots::after { content: "\f0986"; } +.lnid-chat-3-error::before { content: "\f0989"; } +.lnid-chat-3-error::after { content: "\f0988"; } +.lnid-chat-3-heart::before { content: "\f098b"; } +.lnid-chat-3-heart::after { content: "\f098a"; } +.lnid-chat-3-minus::before { content: "\f098d"; } +.lnid-chat-3-minus::after { content: "\f098c"; } +.lnid-chat-3-plus::before { content: "\f098f"; } +.lnid-chat-3-plus::after { content: "\f098e"; } +.lnid-chat-3-question::before { content: "\f0991"; } +.lnid-chat-3-question::after { content: "\f0990"; } +.lnid-chat-3-share::before { content: "\f0993"; } +.lnid-chat-3-share::after { content: "\f0992"; } +.lnid-chat-3-text::before { content: "\f0995"; } +.lnid-chat-3-text::after { content: "\f0994"; } +.lnid-chat-4::before { content: "\f09a9"; } +.lnid-chat-4::after { content: "\f09a8"; } +.lnid-chat-4-dots::before { content: "\f0999"; } +.lnid-chat-4-dots::after { content: "\f0998"; } +.lnid-chat-4-error::before { content: "\f099b"; } +.lnid-chat-4-error::after { content: "\f099a"; } +.lnid-chat-4-heart::before { content: "\f099d"; } +.lnid-chat-4-heart::after { content: "\f099c"; } +.lnid-chat-4-minus::before { content: "\f099f"; } +.lnid-chat-4-minus::after { content: "\f099e"; } +.lnid-chat-4-plus::before { content: "\f09a1"; } +.lnid-chat-4-plus::after { content: "\f09a0"; } +.lnid-chat-4-question::before { content: "\f09a3"; } +.lnid-chat-4-question::after { content: "\f09a2"; } +.lnid-chat-4-share::before { content: "\f09a5"; } +.lnid-chat-4-share::after { content: "\f09a4"; } +.lnid-chat-4-text::before { content: "\f09a7"; } +.lnid-chat-4-text::after { content: "\f09a6"; } +.lnid-chat-ai-1::before { content: "\f09ab"; } +.lnid-chat-ai-1::after { content: "\f09aa"; } +.lnid-chat-ai-2::before { content: "\f09ad"; } +.lnid-chat-ai-2::after { content: "\f09ac"; } +.lnid-chat-ai-3::before { content: "\f09af"; } +.lnid-chat-ai-3::after { content: "\f09ae"; } +.lnid-chat-ai-4::before { content: "\f09b1"; } +.lnid-chat-ai-4::after { content: "\f09b0"; } +.lnid-chat-bot::before { content: "\f09c1"; } +.lnid-chat-bot::after { content: "\f09c0"; } +.lnid-chat-bot-angry::before { content: "\f09b3"; } +.lnid-chat-bot-angry::after { content: "\f09b2"; } +.lnid-chat-bot-cute::before { content: "\f09b5"; } +.lnid-chat-bot-cute::after { content: "\f09b4"; } +.lnid-chat-bot-error::before { content: "\f09b7"; } +.lnid-chat-bot-error::after { content: "\f09b6"; } +.lnid-chat-bot-happy::before { content: "\f09b9"; } +.lnid-chat-bot-happy::after { content: "\f09b8"; } +.lnid-chat-bot-neutral-1::before { content: "\f09bb"; } +.lnid-chat-bot-neutral-1::after { content: "\f09ba"; } +.lnid-chat-bot-neutral-2::before { content: "\f09bd"; } +.lnid-chat-bot-neutral-2::after { content: "\f09bc"; } +.lnid-chat-bot-sad::before { content: "\f09bf"; } +.lnid-chat-bot-sad::after { content: "\f09be"; } +.lnid-chat-bubble-1::before { content: "\f09c7"; } +.lnid-chat-bubble-1::after { content: "\f09c6"; } +.lnid-chat-bubble-1-dots::before { content: "\f09c3"; } +.lnid-chat-bubble-1-dots::after { content: "\f09c2"; } +.lnid-chat-bubble-1-text::before { content: "\f09c5"; } +.lnid-chat-bubble-1-text::after { content: "\f09c4"; } +.lnid-chat-bubble-2::before { content: "\f09cd"; } +.lnid-chat-bubble-2::after { content: "\f09cc"; } +.lnid-chat-bubble-2-dots::before { content: "\f09c9"; } +.lnid-chat-bubble-2-dots::after { content: "\f09c8"; } +.lnid-chat-bubble-2-text::before { content: "\f09cb"; } +.lnid-chat-bubble-2-text::after { content: "\f09ca"; } +.lnid-chat-bubble-3::before { content: "\f09d3"; } +.lnid-chat-bubble-3::after { content: "\f09d2"; } +.lnid-chat-bubble-3-dots::before { content: "\f09cf"; } +.lnid-chat-bubble-3-dots::after { content: "\f09ce"; } +.lnid-chat-bubble-3-text::before { content: "\f09d1"; } +.lnid-chat-bubble-3-text::after { content: "\f09d0"; } +.lnid-chat-line-chart::before { content: "\f09d5"; } +.lnid-chat-line-chart::after { content: "\f09d4"; } +.lnid-check::before { content: "\f09e5"; } +.lnid-check::after { content: "\f09e4"; } +.lnid-check-circle-1::before { content: "\f09d7"; } +.lnid-check-circle-1::after { content: "\f09d6"; } +.lnid-check-circle-2::before { content: "\f09d9"; } +.lnid-check-circle-2::after { content: "\f09d8"; } +.lnid-check-diamond::before { content: "\f09db"; } +.lnid-check-diamond::after { content: "\f09da"; } +.lnid-check-hexagon::before { content: "\f09dd"; } +.lnid-check-hexagon::after { content: "\f09dc"; } +.lnid-check-octagon::before { content: "\f09df"; } +.lnid-check-octagon::after { content: "\f09de"; } +.lnid-check-square-1::before { content: "\f09e1"; } +.lnid-check-square-1::after { content: "\f09e0"; } +.lnid-check-square-2::before { content: "\f09e3"; } +.lnid-check-square-2::after { content: "\f09e2"; } +.lnid-cheese::before { content: "\f09e7"; } +.lnid-cheese::after { content: "\f09e6"; } +.lnid-chef-ai-1::before { content: "\f09e9"; } +.lnid-chef-ai-1::after { content: "\f09e8"; } +.lnid-chef-ai-2::before { content: "\f09eb"; } +.lnid-chef-ai-2::after { content: "\f09ea"; } +.lnid-chef-ai-3::before { content: "\f09ed"; } +.lnid-chef-ai-3::after { content: "\f09ec"; } +.lnid-cheque::before { content: "\f09f1"; } +.lnid-cheque::after { content: "\f09f0"; } +.lnid-cheque-1::before { content: "\f09ef"; } +.lnid-cheque-1::after { content: "\f09ee"; } +.lnid-cherries::before { content: "\f09f3"; } +.lnid-cherries::after { content: "\f09f2"; } +.lnid-chest::before { content: "\f09f7"; } +.lnid-chest::after { content: "\f09f6"; } +.lnid-chest-press::before { content: "\f09f5"; } +.lnid-chest-press::after { content: "\f09f4"; } +.lnid-chevron-both-center-direction-horizontal::before { content: "\f09f9"; } +.lnid-chevron-both-center-direction-horizontal::after { content: "\f09f8"; } +.lnid-chevron-both-center-direction-vertical::before { content: "\f09fb"; } +.lnid-chevron-both-center-direction-vertical::after { content: "\f09fa"; } +.lnid-chevron-both-direction::before { content: "\f0a01"; } +.lnid-chevron-both-direction::after { content: "\f0a00"; } +.lnid-chevron-both-direction-circle::before { content: "\f09fd"; } +.lnid-chevron-both-direction-circle::after { content: "\f09fc"; } +.lnid-chevron-both-direction-square::before { content: "\f09ff"; } +.lnid-chevron-both-direction-square::after { content: "\f09fe"; } +.lnid-chevron-down::before { content: "\f0a05"; } +.lnid-chevron-down::after { content: "\f0a04"; } +.lnid-chevron-down-circle::before { content: "\f0a03"; } +.lnid-chevron-down-circle::after { content: "\f0a02"; } +.lnid-chevron-left::before { content: "\f0a09"; } +.lnid-chevron-left::after { content: "\f0a08"; } +.lnid-chevron-left-circle::before { content: "\f0a07"; } +.lnid-chevron-left-circle::after { content: "\f0a06"; } +.lnid-chevron-right::before { content: "\f0a0d"; } +.lnid-chevron-right::after { content: "\f0a0c"; } +.lnid-chevron-right-circle::before { content: "\f0a0b"; } +.lnid-chevron-right-circle::after { content: "\f0a0a"; } +.lnid-chevron-up::before { content: "\f0a11"; } +.lnid-chevron-up::after { content: "\f0a10"; } +.lnid-chevron-up-circle::before { content: "\f0a0f"; } +.lnid-chevron-up-circle::after { content: "\f0a0e"; } +.lnid-chick::before { content: "\f0a13"; } +.lnid-chick::after { content: "\f0a12"; } +.lnid-chicken::before { content: "\f0a1b"; } +.lnid-chicken::after { content: "\f0a1a"; } +.lnid-chicken-drumstick-1::before { content: "\f0a15"; } +.lnid-chicken-drumstick-1::after { content: "\f0a14"; } +.lnid-chicken-drumstick-2::before { content: "\f0a17"; } +.lnid-chicken-drumstick-2::after { content: "\f0a16"; } +.lnid-chicken-wings::before { content: "\f0a19"; } +.lnid-chicken-wings::after { content: "\f0a18"; } +.lnid-chilli-sauce::before { content: "\f0a1d"; } +.lnid-chilli-sauce::after { content: "\f0a1c"; } +.lnid-chip-1::before { content: "\f0a1f"; } +.lnid-chip-1::after { content: "\f0a1e"; } +.lnid-chip-2::before { content: "\f0a21"; } +.lnid-chip-2::after { content: "\f0a20"; } +.lnid-chip-ai::before { content: "\f0a27"; } +.lnid-chip-ai::after { content: "\f0a26"; } +.lnid-chip-ai-1::before { content: "\f0a23"; } +.lnid-chip-ai-1::after { content: "\f0a22"; } +.lnid-chip-ai-2::before { content: "\f0a25"; } +.lnid-chip-ai-2::after { content: "\f0a24"; } +.lnid-chip-beat::before { content: "\f0a29"; } +.lnid-chip-beat::after { content: "\f0a28"; } +.lnid-chip-bitcoin::before { content: "\f0a2b"; } +.lnid-chip-bitcoin::after { content: "\f0a2a"; } +.lnid-chip-bolt::before { content: "\f0a2d"; } +.lnid-chip-bolt::after { content: "\f0a2c"; } +.lnid-chip-check::before { content: "\f0a2f"; } +.lnid-chip-check::after { content: "\f0a2e"; } +.lnid-chip-code::before { content: "\f0a31"; } +.lnid-chip-code::after { content: "\f0a30"; } +.lnid-chip-disabled::before { content: "\f0a33"; } +.lnid-chip-disabled::after { content: "\f0a32"; } +.lnid-chip-error::before { content: "\f0a35"; } +.lnid-chip-error::after { content: "\f0a34"; } +.lnid-chip-gear::before { content: "\f0a37"; } +.lnid-chip-gear::after { content: "\f0a36"; } +.lnid-chocolate-bar::before { content: "\f0a39"; } +.lnid-chocolate-bar::after { content: "\f0a38"; } +.lnid-church::before { content: "\f0a3b"; } +.lnid-church::after { content: "\f0a3a"; } +.lnid-ci-cd-dev-ops::before { content: "\f0a3d"; } +.lnid-ci-cd-dev-ops::after { content: "\f0a3c"; } +.lnid-cipher::before { content: "\f0a41"; } +.lnid-cipher::after { content: "\f0a40"; } +.lnid-cipher-ai::before { content: "\f0a3f"; } +.lnid-cipher-ai::after { content: "\f0a3e"; } +.lnid-circle::before { content: "\f0a59"; } +.lnid-circle::after { content: "\f0a58"; } +.lnid-circle-code-ai::before { content: "\f0a43"; } +.lnid-circle-code-ai::after { content: "\f0a42"; } +.lnid-circle-code-simple-ai::before { content: "\f0a45"; } +.lnid-circle-code-simple-ai::after { content: "\f0a44"; } +.lnid-circle-curve-right::before { content: "\f0a47"; } +.lnid-circle-curve-right::after { content: "\f0a46"; } +.lnid-circle-dashed::before { content: "\f0a49"; } +.lnid-circle-dashed::after { content: "\f0a48"; } +.lnid-circle-diamond::before { content: "\f0a4b"; } +.lnid-circle-diamond::after { content: "\f0a4a"; } +.lnid-circle-hexagon::before { content: "\f0a4d"; } +.lnid-circle-hexagon::after { content: "\f0a4c"; } +.lnid-circle-intersection-curve-right::before { content: "\f0a4f"; } +.lnid-circle-intersection-curve-right::after { content: "\f0a4e"; } +.lnid-circle-squares::before { content: "\f0a51"; } +.lnid-circle-squares::after { content: "\f0a50"; } +.lnid-circle-triangle-1::before { content: "\f0a53"; } +.lnid-circle-triangle-1::after { content: "\f0a52"; } +.lnid-circle-triangle-2::before { content: "\f0a55"; } +.lnid-circle-triangle-2::after { content: "\f0a54"; } +.lnid-circle-turn-right::before { content: "\f0a57"; } +.lnid-circle-turn-right::after { content: "\f0a56"; } +.lnid-circles::before { content: "\f0a5d"; } +.lnid-circles::after { content: "\f0a5c"; } +.lnid-circles-2::before { content: "\f0a5b"; } +.lnid-circles-2::after { content: "\f0a5a"; } +.lnid-clink-glasses::before { content: "\f0a5f"; } +.lnid-clink-glasses::after { content: "\f0a5e"; } +.lnid-clipboard::before { content: "\f0a7d"; } +.lnid-clipboard::after { content: "\f0a7c"; } +.lnid-clipboard-1::before { content: "\f0a61"; } +.lnid-clipboard-1::after { content: "\f0a60"; } +.lnid-clipboard-2::before { content: "\f0a63"; } +.lnid-clipboard-2::after { content: "\f0a62"; } +.lnid-clipboard-3::before { content: "\f0a65"; } +.lnid-clipboard-3::after { content: "\f0a64"; } +.lnid-clipboard-ai-check::before { content: "\f0a67"; } +.lnid-clipboard-ai-check::after { content: "\f0a66"; } +.lnid-clipboard-ai-plus::before { content: "\f0a69"; } +.lnid-clipboard-ai-plus::after { content: "\f0a68"; } +.lnid-clipboard-ai-prescription::before { content: "\f0a6b"; } +.lnid-clipboard-ai-prescription::after { content: "\f0a6a"; } +.lnid-clipboard-ai-text::before { content: "\f0a6d"; } +.lnid-clipboard-ai-text::after { content: "\f0a6c"; } +.lnid-clipboard-aids::before { content: "\f0a6f"; } +.lnid-clipboard-aids::after { content: "\f0a6e"; } +.lnid-clipboard-beat::before { content: "\f0a71"; } +.lnid-clipboard-beat::after { content: "\f0a70"; } +.lnid-clipboard-check::before { content: "\f0a73"; } +.lnid-clipboard-check::after { content: "\f0a72"; } +.lnid-clipboard-heart::before { content: "\f0a75"; } +.lnid-clipboard-heart::after { content: "\f0a74"; } +.lnid-clipboard-plus::before { content: "\f0a77"; } +.lnid-clipboard-plus::after { content: "\f0a76"; } +.lnid-clipboard-prescription::before { content: "\f0a79"; } +.lnid-clipboard-prescription::after { content: "\f0a78"; } +.lnid-clipboard-text::before { content: "\f0a7b"; } +.lnid-clipboard-text::after { content: "\f0a7a"; } +.lnid-clock-ai::before { content: "\f0a7f"; } +.lnid-clock-ai::after { content: "\f0a7e"; } +.lnid-clock-desk::before { content: "\f0a81"; } +.lnid-clock-desk::after { content: "\f0a80"; } +.lnid-clock-digital::before { content: "\f0a83"; } +.lnid-clock-digital::after { content: "\f0a82"; } +.lnid-clock-eight::before { content: "\f0a87"; } +.lnid-clock-eight::after { content: "\f0a86"; } +.lnid-clock-eight-thirty::before { content: "\f0a85"; } +.lnid-clock-eight-thirty::after { content: "\f0a84"; } +.lnid-clock-eleven::before { content: "\f0a8b"; } +.lnid-clock-eleven::after { content: "\f0a8a"; } +.lnid-clock-eleven-thirty::before { content: "\f0a89"; } +.lnid-clock-eleven-thirty::after { content: "\f0a88"; } +.lnid-clock-five::before { content: "\f0a8f"; } +.lnid-clock-five::after { content: "\f0a8e"; } +.lnid-clock-five-thirty::before { content: "\f0a8d"; } +.lnid-clock-five-thirty::after { content: "\f0a8c"; } +.lnid-clock-four::before { content: "\f0a95"; } +.lnid-clock-four::after { content: "\f0a94"; } +.lnid-clock-four-square::before { content: "\f0a91"; } +.lnid-clock-four-square::after { content: "\f0a90"; } +.lnid-clock-four-thirty::before { content: "\f0a93"; } +.lnid-clock-four-thirty::after { content: "\f0a92"; } +.lnid-clock-nine::before { content: "\f0a99"; } +.lnid-clock-nine::after { content: "\f0a98"; } +.lnid-clock-nine-thirty::before { content: "\f0a97"; } +.lnid-clock-nine-thirty::after { content: "\f0a96"; } +.lnid-clock-one::before { content: "\f0a9d"; } +.lnid-clock-one::after { content: "\f0a9c"; } +.lnid-clock-one-thirty::before { content: "\f0a9b"; } +.lnid-clock-one-thirty::after { content: "\f0a9a"; } +.lnid-clock-seven::before { content: "\f0aa1"; } +.lnid-clock-seven::after { content: "\f0aa0"; } +.lnid-clock-seven-thirty::before { content: "\f0a9f"; } +.lnid-clock-seven-thirty::after { content: "\f0a9e"; } +.lnid-clock-six::before { content: "\f0aa5"; } +.lnid-clock-six::after { content: "\f0aa4"; } +.lnid-clock-six-thirty::before { content: "\f0aa3"; } +.lnid-clock-six-thirty::after { content: "\f0aa2"; } +.lnid-clock-ten::before { content: "\f0aa9"; } +.lnid-clock-ten::after { content: "\f0aa8"; } +.lnid-clock-ten-thirty::before { content: "\f0aa7"; } +.lnid-clock-ten-thirty::after { content: "\f0aa6"; } +.lnid-clock-three::before { content: "\f0aad"; } +.lnid-clock-three::after { content: "\f0aac"; } +.lnid-clock-three-thirty::before { content: "\f0aab"; } +.lnid-clock-three-thirty::after { content: "\f0aaa"; } +.lnid-clock-twelve::before { content: "\f0ab1"; } +.lnid-clock-twelve::after { content: "\f0ab0"; } +.lnid-clock-twelve-thirty::before { content: "\f0aaf"; } +.lnid-clock-twelve-thirty::after { content: "\f0aae"; } +.lnid-clock-two::before { content: "\f0ab5"; } +.lnid-clock-two::after { content: "\f0ab4"; } +.lnid-clock-two-thirty::before { content: "\f0ab3"; } +.lnid-clock-two-thirty::after { content: "\f0ab2"; } +.lnid-cloud-1::before { content: "\f0ab7"; } +.lnid-cloud-1::after { content: "\f0ab6"; } +.lnid-cloud-2::before { content: "\f0ab9"; } +.lnid-cloud-2::after { content: "\f0ab8"; } +.lnid-cloud-3::before { content: "\f0abf"; } +.lnid-cloud-3::after { content: "\f0abe"; } +.lnid-cloud-3-dot::before { content: "\f0abd"; } +.lnid-cloud-3-dot::after { content: "\f0abc"; } +.lnid-cloud-3-dot-circle::before { content: "\f0abb"; } +.lnid-cloud-3-dot-circle::after { content: "\f0aba"; } +.lnid-cloud-4::before { content: "\f0ac1"; } +.lnid-cloud-4::after { content: "\f0ac0"; } +.lnid-cloud-ai-1::before { content: "\f0ac3"; } +.lnid-cloud-ai-1::after { content: "\f0ac2"; } +.lnid-cloud-ai-2::before { content: "\f0ac5"; } +.lnid-cloud-ai-2::after { content: "\f0ac4"; } +.lnid-cloud-ai-3::before { content: "\f0ac7"; } +.lnid-cloud-ai-3::after { content: "\f0ac6"; } +.lnid-cloud-ai-4::before { content: "\f0ac9"; } +.lnid-cloud-ai-4::after { content: "\f0ac8"; } +.lnid-cloud-ai-5::before { content: "\f0acb"; } +.lnid-cloud-ai-5::after { content: "\f0aca"; } +.lnid-cloud-ai-6::before { content: "\f0acd"; } +.lnid-cloud-ai-6::after { content: "\f0acc"; } +.lnid-cloud-arrow-downward::before { content: "\f0acf"; } +.lnid-cloud-arrow-downward::after { content: "\f0ace"; } +.lnid-cloud-arrow-left::before { content: "\f0ad1"; } +.lnid-cloud-arrow-left::after { content: "\f0ad0"; } +.lnid-cloud-arrow-right::before { content: "\f0ad3"; } +.lnid-cloud-arrow-right::after { content: "\f0ad2"; } +.lnid-cloud-arrow-upward::before { content: "\f0ad5"; } +.lnid-cloud-arrow-upward::after { content: "\f0ad4"; } +.lnid-cloud-audio::before { content: "\f0ad7"; } +.lnid-cloud-audio::after { content: "\f0ad6"; } +.lnid-cloud-bitcoin::before { content: "\f0ad9"; } +.lnid-cloud-bitcoin::after { content: "\f0ad8"; } +.lnid-cloud-bolt-1::before { content: "\f0adb"; } +.lnid-cloud-bolt-1::after { content: "\f0ada"; } +.lnid-cloud-bolt-2::before { content: "\f0add"; } +.lnid-cloud-bolt-2::after { content: "\f0adc"; } +.lnid-cloud-bolt-ai-1::before { content: "\f0adf"; } +.lnid-cloud-bolt-ai-1::after { content: "\f0ade"; } +.lnid-cloud-bolt-ai-2::before { content: "\f0ae1"; } +.lnid-cloud-bolt-ai-2::after { content: "\f0ae0"; } +.lnid-cloud-bulb::before { content: "\f0ae3"; } +.lnid-cloud-bulb::after { content: "\f0ae2"; } +.lnid-cloud-chat::before { content: "\f0af7"; } +.lnid-cloud-chat::after { content: "\f0af6"; } +.lnid-cloud-chat-ai::before { content: "\f0ae5"; } +.lnid-cloud-chat-ai::after { content: "\f0ae4"; } +.lnid-cloud-chat-dots::before { content: "\f0ae7"; } +.lnid-cloud-chat-dots::after { content: "\f0ae6"; } +.lnid-cloud-chat-error::before { content: "\f0ae9"; } +.lnid-cloud-chat-error::after { content: "\f0ae8"; } +.lnid-cloud-chat-heart::before { content: "\f0aeb"; } +.lnid-cloud-chat-heart::after { content: "\f0aea"; } +.lnid-cloud-chat-minus::before { content: "\f0aed"; } +.lnid-cloud-chat-minus::after { content: "\f0aec"; } +.lnid-cloud-chat-plus::before { content: "\f0aef"; } +.lnid-cloud-chat-plus::after { content: "\f0aee"; } +.lnid-cloud-chat-question::before { content: "\f0af1"; } +.lnid-cloud-chat-question::after { content: "\f0af0"; } +.lnid-cloud-chat-share::before { content: "\f0af3"; } +.lnid-cloud-chat-share::after { content: "\f0af2"; } +.lnid-cloud-chat-text::before { content: "\f0af5"; } +.lnid-cloud-chat-text::after { content: "\f0af4"; } +.lnid-cloud-check-circle::before { content: "\f0af9"; } +.lnid-cloud-check-circle::after { content: "\f0af8"; } +.lnid-cloud-chip::before { content: "\f0afb"; } +.lnid-cloud-chip::after { content: "\f0afa"; } +.lnid-cloud-code::before { content: "\f0afd"; } +.lnid-cloud-code::after { content: "\f0afc"; } +.lnid-cloud-crypto::before { content: "\f0aff"; } +.lnid-cloud-crypto::after { content: "\f0afe"; } +.lnid-cloud-database::before { content: "\f0b01"; } +.lnid-cloud-database::after { content: "\f0b00"; } +.lnid-cloud-disabled-1::before { content: "\f0b03"; } +.lnid-cloud-disabled-1::after { content: "\f0b02"; } +.lnid-cloud-disabled-2::before { content: "\f0b05"; } +.lnid-cloud-disabled-2::after { content: "\f0b04"; } +.lnid-cloud-document::before { content: "\f0b07"; } +.lnid-cloud-document::after { content: "\f0b06"; } +.lnid-cloud-dollar::before { content: "\f0b09"; } +.lnid-cloud-dollar::after { content: "\f0b08"; } +.lnid-cloud-download::before { content: "\f0b0b"; } +.lnid-cloud-download::after { content: "\f0b0a"; } +.lnid-cloud-error-circle::before { content: "\f0b0d"; } +.lnid-cloud-error-circle::after { content: "\f0b0c"; } +.lnid-cloud-fire::before { content: "\f0b0f"; } +.lnid-cloud-fire::after { content: "\f0b0e"; } +.lnid-cloud-fog::before { content: "\f0b11"; } +.lnid-cloud-fog::after { content: "\f0b10"; } +.lnid-cloud-gear::before { content: "\f0b13"; } +.lnid-cloud-gear::after { content: "\f0b12"; } +.lnid-cloud-info-circle::before { content: "\f0b15"; } +.lnid-cloud-info-circle::after { content: "\f0b14"; } +.lnid-cloud-iot-1::before { content: "\f0b17"; } +.lnid-cloud-iot-1::after { content: "\f0b16"; } +.lnid-cloud-iot-2::before { content: "\f0b19"; } +.lnid-cloud-iot-2::after { content: "\f0b18"; } +.lnid-cloud-iot-3::before { content: "\f0b1b"; } +.lnid-cloud-iot-3::after { content: "\f0b1a"; } +.lnid-cloud-iot-4::before { content: "\f0b1d"; } +.lnid-cloud-iot-4::after { content: "\f0b1c"; } +.lnid-cloud-iot-5::before { content: "\f0b1f"; } +.lnid-cloud-iot-5::after { content: "\f0b1e"; } +.lnid-cloud-iot-6::before { content: "\f0b21"; } +.lnid-cloud-iot-6::after { content: "\f0b20"; } +.lnid-cloud-iot-network::before { content: "\f0b23"; } +.lnid-cloud-iot-network::after { content: "\f0b22"; } +.lnid-cloud-leaf::before { content: "\f0b25"; } +.lnid-cloud-leaf::after { content: "\f0b24"; } +.lnid-cloud-link::before { content: "\f0b27"; } +.lnid-cloud-link::after { content: "\f0b26"; } +.lnid-cloud-locked::before { content: "\f0b29"; } +.lnid-cloud-locked::after { content: "\f0b28"; } +.lnid-cloud-minus-circle::before { content: "\f0b2b"; } +.lnid-cloud-minus-circle::after { content: "\f0b2a"; } +.lnid-cloud-moon::before { content: "\f0b2d"; } +.lnid-cloud-moon::after { content: "\f0b2c"; } +.lnid-cloud-paperclip::before { content: "\f0b2f"; } +.lnid-cloud-paperclip::after { content: "\f0b2e"; } +.lnid-cloud-pencil::before { content: "\f0b31"; } +.lnid-cloud-pencil::after { content: "\f0b30"; } +.lnid-cloud-phone::before { content: "\f0b33"; } +.lnid-cloud-phone::after { content: "\f0b32"; } +.lnid-cloud-play::before { content: "\f0b35"; } +.lnid-cloud-play::after { content: "\f0b34"; } +.lnid-cloud-plus::before { content: "\f0b39"; } +.lnid-cloud-plus::after { content: "\f0b38"; } +.lnid-cloud-plus-circle::before { content: "\f0b37"; } +.lnid-cloud-plus-circle::after { content: "\f0b36"; } +.lnid-cloud-question::before { content: "\f0b3b"; } +.lnid-cloud-question::after { content: "\f0b3a"; } +.lnid-cloud-rain::before { content: "\f0b3f"; } +.lnid-cloud-rain::after { content: "\f0b3e"; } +.lnid-cloud-rain-ai::before { content: "\f0b3d"; } +.lnid-cloud-rain-ai::after { content: "\f0b3c"; } +.lnid-cloud-refresh-anticlockwise::before { content: "\f0b41"; } +.lnid-cloud-refresh-anticlockwise::after { content: "\f0b40"; } +.lnid-cloud-refresh-clockwise::before { content: "\f0b43"; } +.lnid-cloud-refresh-clockwise::after { content: "\f0b42"; } +.lnid-cloud-search::before { content: "\f0b45"; } +.lnid-cloud-search::after { content: "\f0b44"; } +.lnid-cloud-server::before { content: "\f0b47"; } +.lnid-cloud-server::after { content: "\f0b46"; } +.lnid-cloud-share-1::before { content: "\f0b49"; } +.lnid-cloud-share-1::after { content: "\f0b48"; } +.lnid-cloud-share-2::before { content: "\f0b4b"; } +.lnid-cloud-share-2::after { content: "\f0b4a"; } +.lnid-cloud-shield::before { content: "\f0b4d"; } +.lnid-cloud-shield::after { content: "\f0b4c"; } +.lnid-cloud-star::before { content: "\f0b4f"; } +.lnid-cloud-star::after { content: "\f0b4e"; } +.lnid-cloud-sun::before { content: "\f0b55"; } +.lnid-cloud-sun::after { content: "\f0b54"; } +.lnid-cloud-sun-bolt::before { content: "\f0b51"; } +.lnid-cloud-sun-bolt::after { content: "\f0b50"; } +.lnid-cloud-sun-rain::before { content: "\f0b53"; } +.lnid-cloud-sun-rain::after { content: "\f0b52"; } +.lnid-cloud-swap::before { content: "\f0b57"; } +.lnid-cloud-swap::after { content: "\f0b56"; } +.lnid-cloud-time::before { content: "\f0b59"; } +.lnid-cloud-time::after { content: "\f0b58"; } +.lnid-cloud-timer::before { content: "\f0b5b"; } +.lnid-cloud-timer::after { content: "\f0b5a"; } +.lnid-cloud-trash::before { content: "\f0b5d"; } +.lnid-cloud-trash::after { content: "\f0b5c"; } +.lnid-cloud-unlocked::before { content: "\f0b5f"; } +.lnid-cloud-unlocked::after { content: "\f0b5e"; } +.lnid-cloud-upload::before { content: "\f0b61"; } +.lnid-cloud-upload::after { content: "\f0b60"; } +.lnid-cloud-user::before { content: "\f0b63"; } +.lnid-cloud-user::after { content: "\f0b62"; } +.lnid-cloud-video::before { content: "\f0b65"; } +.lnid-cloud-video::after { content: "\f0b64"; } +.lnid-cloud-water::before { content: "\f0b67"; } +.lnid-cloud-water::after { content: "\f0b66"; } +.lnid-cloud-wifi::before { content: "\f0b69"; } +.lnid-cloud-wifi::after { content: "\f0b68"; } +.lnid-cloud-wind::before { content: "\f0b6d"; } +.lnid-cloud-wind::after { content: "\f0b6c"; } +.lnid-cloud-wind-ai::before { content: "\f0b6b"; } +.lnid-cloud-wind-ai::after { content: "\f0b6a"; } +.lnid-cloud-xmark::before { content: "\f0b71"; } +.lnid-cloud-xmark::after { content: "\f0b70"; } +.lnid-cloud-xmark-circle::before { content: "\f0b6f"; } +.lnid-cloud-xmark-circle::after { content: "\f0b6e"; } +.lnid-clouds::before { content: "\f0b75"; } +.lnid-clouds::after { content: "\f0b74"; } +.lnid-clouds-sun::before { content: "\f0b73"; } +.lnid-clouds-sun::after { content: "\f0b72"; } +.lnid-cms-browser::before { content: "\f0b77"; } +.lnid-cms-browser::after { content: "\f0b76"; } +.lnid-cms-monitor-1::before { content: "\f0b79"; } +.lnid-cms-monitor-1::after { content: "\f0b78"; } +.lnid-cms-monitor-2::before { content: "\f0b7b"; } +.lnid-cms-monitor-2::after { content: "\f0b7a"; } +.lnid-cocktail-1::before { content: "\f0b7d"; } +.lnid-cocktail-1::after { content: "\f0b7c"; } +.lnid-cocktail-2::before { content: "\f0b7f"; } +.lnid-cocktail-2::after { content: "\f0b7e"; } +.lnid-cocktail-3::before { content: "\f0b81"; } +.lnid-cocktail-3::after { content: "\f0b80"; } +.lnid-code-1::before { content: "\f0b8d"; } +.lnid-code-1::after { content: "\f0b8c"; } +.lnid-code-1-circle::before { content: "\f0b83"; } +.lnid-code-1-circle::after { content: "\f0b82"; } +.lnid-code-1-hexagon::before { content: "\f0b85"; } +.lnid-code-1-hexagon::after { content: "\f0b84"; } +.lnid-code-1-octagon::before { content: "\f0b87"; } +.lnid-code-1-octagon::after { content: "\f0b86"; } +.lnid-code-1-rechtangle::before { content: "\f0b89"; } +.lnid-code-1-rechtangle::after { content: "\f0b88"; } +.lnid-code-1-square::before { content: "\f0b8b"; } +.lnid-code-1-square::after { content: "\f0b8a"; } +.lnid-code-2::before { content: "\f0b99"; } +.lnid-code-2::after { content: "\f0b98"; } +.lnid-code-2-circle::before { content: "\f0b8f"; } +.lnid-code-2-circle::after { content: "\f0b8e"; } +.lnid-code-2-hexagon::before { content: "\f0b91"; } +.lnid-code-2-hexagon::after { content: "\f0b90"; } +.lnid-code-2-octagon::before { content: "\f0b93"; } +.lnid-code-2-octagon::after { content: "\f0b92"; } +.lnid-code-2-rechtangle::before { content: "\f0b95"; } +.lnid-code-2-rechtangle::after { content: "\f0b94"; } +.lnid-code-2-square::before { content: "\f0b97"; } +.lnid-code-2-square::after { content: "\f0b96"; } +.lnid-code-ai::before { content: "\f0b9b"; } +.lnid-code-ai::after { content: "\f0b9a"; } +.lnid-code-branch::before { content: "\f0b9d"; } +.lnid-code-branch::after { content: "\f0b9c"; } +.lnid-code-compare::before { content: "\f0b9f"; } +.lnid-code-compare::after { content: "\f0b9e"; } +.lnid-code-fork::before { content: "\f0ba1"; } +.lnid-code-fork::after { content: "\f0ba0"; } +.lnid-code-pull-request::before { content: "\f0ba7"; } +.lnid-code-pull-request::after { content: "\f0ba6"; } +.lnid-code-pull-request-closed::before { content: "\f0ba3"; } +.lnid-code-pull-request-closed::after { content: "\f0ba2"; } +.lnid-code-pull-request-draft::before { content: "\f0ba5"; } +.lnid-code-pull-request-draft::after { content: "\f0ba4"; } +.lnid-code-s::before { content: "\f0ba9"; } +.lnid-code-s::after { content: "\f0ba8"; } +.lnid-code-simple-ai::before { content: "\f0bab"; } +.lnid-code-simple-ai::after { content: "\f0baa"; } +.lnid-coffee-beans::before { content: "\f0bad"; } +.lnid-coffee-beans::after { content: "\f0bac"; } +.lnid-coffee-cup-1::before { content: "\f0baf"; } +.lnid-coffee-cup-1::after { content: "\f0bae"; } +.lnid-coffee-cup-2::before { content: "\f0bb1"; } +.lnid-coffee-cup-2::after { content: "\f0bb0"; } +.lnid-coffee-machine::before { content: "\f0bb5"; } +.lnid-coffee-machine::after { content: "\f0bb4"; } +.lnid-coffee-machine-ai::before { content: "\f0bb3"; } +.lnid-coffee-machine-ai::after { content: "\f0bb2"; } +.lnid-coffee-pot::before { content: "\f0bb7"; } +.lnid-coffee-pot::after { content: "\f0bb6"; } +.lnid-coinbase-ai::before { content: "\f0bb9"; } +.lnid-coinbase-ai::after { content: "\f0bb8"; } +.lnid-coinbase-symbol::before { content: "\f0bbb"; } +.lnid-coinbase-symbol::after { content: "\f0bba"; } +.lnid-coins::before { content: "\f0beb"; } +.lnid-coins::after { content: "\f0bea"; } +.lnid-coins-bitcoin::before { content: "\f0bbd"; } +.lnid-coins-bitcoin::after { content: "\f0bbc"; } +.lnid-coins-cash::before { content: "\f0bbf"; } +.lnid-coins-cash::after { content: "\f0bbe"; } +.lnid-coins-check-circle::before { content: "\f0bc1"; } +.lnid-coins-check-circle::after { content: "\f0bc0"; } +.lnid-coins-crypto::before { content: "\f0bc3"; } +.lnid-coins-crypto::after { content: "\f0bc2"; } +.lnid-coins-disabled::before { content: "\f0bc5"; } +.lnid-coins-disabled::after { content: "\f0bc4"; } +.lnid-coins-dollar::before { content: "\f0bc7"; } +.lnid-coins-dollar::after { content: "\f0bc6"; } +.lnid-coins-euro::before { content: "\f0bc9"; } +.lnid-coins-euro::after { content: "\f0bc8"; } +.lnid-coins-globe::before { content: "\f0bcb"; } +.lnid-coins-globe::after { content: "\f0bca"; } +.lnid-coins-minus::before { content: "\f0bcd"; } +.lnid-coins-minus::after { content: "\f0bcc"; } +.lnid-coins-number-10::before { content: "\f0bcf"; } +.lnid-coins-number-10::after { content: "\f0bce"; } +.lnid-coins-percent::before { content: "\f0bd1"; } +.lnid-coins-percent::after { content: "\f0bd0"; } +.lnid-coins-plus::before { content: "\f0bd3"; } +.lnid-coins-plus::after { content: "\f0bd2"; } +.lnid-coins-recycle::before { content: "\f0bd5"; } +.lnid-coins-recycle::after { content: "\f0bd4"; } +.lnid-coins-refresh::before { content: "\f0bd9"; } +.lnid-coins-refresh::after { content: "\f0bd8"; } +.lnid-coins-refresh-1::before { content: "\f0bd7"; } +.lnid-coins-refresh-1::after { content: "\f0bd6"; } +.lnid-coins-search::before { content: "\f0bdb"; } +.lnid-coins-search::after { content: "\f0bda"; } +.lnid-coins-shield::before { content: "\f0bdd"; } +.lnid-coins-shield::after { content: "\f0bdc"; } +.lnid-coins-smile::before { content: "\f0bdf"; } +.lnid-coins-smile::after { content: "\f0bde"; } +.lnid-coins-star::before { content: "\f0be1"; } +.lnid-coins-star::after { content: "\f0be0"; } +.lnid-coins-swap::before { content: "\f0be3"; } +.lnid-coins-swap::after { content: "\f0be2"; } +.lnid-coins-trend-down::before { content: "\f0be5"; } +.lnid-coins-trend-down::after { content: "\f0be4"; } +.lnid-coins-trend-up::before { content: "\f0be7"; } +.lnid-coins-trend-up::after { content: "\f0be6"; } +.lnid-coins-xmark-circle::before { content: "\f0be9"; } +.lnid-coins-xmark-circle::after { content: "\f0be8"; } +.lnid-colour-palette-1::before { content: "\f0bed"; } +.lnid-colour-palette-1::after { content: "\f0bec"; } +.lnid-colour-palette-2::before { content: "\f0bef"; } +.lnid-colour-palette-2::after { content: "\f0bee"; } +.lnid-colour-palette-3::before { content: "\f0bf1"; } +.lnid-colour-palette-3::after { content: "\f0bf0"; } +.lnid-column::before { content: "\f0bf3"; } +.lnid-column::after { content: "\f0bf2"; } +.lnid-comb-1::before { content: "\f0bf5"; } +.lnid-comb-1::after { content: "\f0bf4"; } +.lnid-comb-2::before { content: "\f0bf7"; } +.lnid-comb-2::after { content: "\f0bf6"; } +.lnid-comb-3::before { content: "\f0bf9"; } +.lnid-comb-3::after { content: "\f0bf8"; } +.lnid-comic-chat-1::before { content: "\f0bff"; } +.lnid-comic-chat-1::after { content: "\f0bfe"; } +.lnid-comic-chat-1-dots::before { content: "\f0bfb"; } +.lnid-comic-chat-1-dots::after { content: "\f0bfa"; } +.lnid-comic-chat-1-text::before { content: "\f0bfd"; } +.lnid-comic-chat-1-text::after { content: "\f0bfc"; } +.lnid-comic-chat-2::before { content: "\f0c05"; } +.lnid-comic-chat-2::after { content: "\f0c04"; } +.lnid-comic-chat-2-dots::before { content: "\f0c01"; } +.lnid-comic-chat-2-dots::after { content: "\f0c00"; } +.lnid-comic-chat-2-text::before { content: "\f0c03"; } +.lnid-comic-chat-2-text::after { content: "\f0c02"; } +.lnid-comic-chat-3::before { content: "\f0c0b"; } +.lnid-comic-chat-3::after { content: "\f0c0a"; } +.lnid-comic-chat-3-dots::before { content: "\f0c07"; } +.lnid-comic-chat-3-dots::after { content: "\f0c06"; } +.lnid-comic-chat-3-text::before { content: "\f0c09"; } +.lnid-comic-chat-3-text::after { content: "\f0c08"; } +.lnid-comic-dialogue::before { content: "\f0c1d"; } +.lnid-comic-dialogue::after { content: "\f0c1c"; } +.lnid-comic-dialogue-dots::before { content: "\f0c0d"; } +.lnid-comic-dialogue-dots::after { content: "\f0c0c"; } +.lnid-comic-dialogue-error::before { content: "\f0c0f"; } +.lnid-comic-dialogue-error::after { content: "\f0c0e"; } +.lnid-comic-dialogue-heart::before { content: "\f0c11"; } +.lnid-comic-dialogue-heart::after { content: "\f0c10"; } +.lnid-comic-dialogue-minus::before { content: "\f0c13"; } +.lnid-comic-dialogue-minus::after { content: "\f0c12"; } +.lnid-comic-dialogue-plus::before { content: "\f0c15"; } +.lnid-comic-dialogue-plus::after { content: "\f0c14"; } +.lnid-comic-dialogue-question::before { content: "\f0c17"; } +.lnid-comic-dialogue-question::after { content: "\f0c16"; } +.lnid-comic-dialogue-share::before { content: "\f0c19"; } +.lnid-comic-dialogue-share::after { content: "\f0c18"; } +.lnid-comic-dialogue-text::before { content: "\f0c1b"; } +.lnid-comic-dialogue-text::after { content: "\f0c1a"; } +.lnid-command::before { content: "\f0c1f"; } +.lnid-command::after { content: "\f0c1e"; } +.lnid-comment-1::before { content: "\f0c37"; } +.lnid-comment-1::after { content: "\f0c36"; } +.lnid-comment-1-check::before { content: "\f0c21"; } +.lnid-comment-1-check::after { content: "\f0c20"; } +.lnid-comment-1-dollar::before { content: "\f0c23"; } +.lnid-comment-1-dollar::after { content: "\f0c22"; } +.lnid-comment-1-dots::before { content: "\f0c25"; } +.lnid-comment-1-dots::after { content: "\f0c24"; } +.lnid-comment-1-error::before { content: "\f0c27"; } +.lnid-comment-1-error::after { content: "\f0c26"; } +.lnid-comment-1-heart::before { content: "\f0c29"; } +.lnid-comment-1-heart::after { content: "\f0c28"; } +.lnid-comment-1-minus::before { content: "\f0c2b"; } +.lnid-comment-1-minus::after { content: "\f0c2a"; } +.lnid-comment-1-plus::before { content: "\f0c2d"; } +.lnid-comment-1-plus::after { content: "\f0c2c"; } +.lnid-comment-1-question::before { content: "\f0c2f"; } +.lnid-comment-1-question::after { content: "\f0c2e"; } +.lnid-comment-1-share::before { content: "\f0c31"; } +.lnid-comment-1-share::after { content: "\f0c30"; } +.lnid-comment-1-text::before { content: "\f0c33"; } +.lnid-comment-1-text::after { content: "\f0c32"; } +.lnid-comment-1-xmark::before { content: "\f0c35"; } +.lnid-comment-1-xmark::after { content: "\f0c34"; } +.lnid-comment-2::before { content: "\f0c49"; } +.lnid-comment-2::after { content: "\f0c48"; } +.lnid-comment-2-dots::before { content: "\f0c39"; } +.lnid-comment-2-dots::after { content: "\f0c38"; } +.lnid-comment-2-error::before { content: "\f0c3b"; } +.lnid-comment-2-error::after { content: "\f0c3a"; } +.lnid-comment-2-heart::before { content: "\f0c3d"; } +.lnid-comment-2-heart::after { content: "\f0c3c"; } +.lnid-comment-2-minus::before { content: "\f0c3f"; } +.lnid-comment-2-minus::after { content: "\f0c3e"; } +.lnid-comment-2-plus::before { content: "\f0c41"; } +.lnid-comment-2-plus::after { content: "\f0c40"; } +.lnid-comment-2-question::before { content: "\f0c43"; } +.lnid-comment-2-question::after { content: "\f0c42"; } +.lnid-comment-2-share::before { content: "\f0c45"; } +.lnid-comment-2-share::after { content: "\f0c44"; } +.lnid-comment-2-text::before { content: "\f0c47"; } +.lnid-comment-2-text::after { content: "\f0c46"; } +.lnid-comment-3::before { content: "\f0c5b"; } +.lnid-comment-3::after { content: "\f0c5a"; } +.lnid-comment-3-dots::before { content: "\f0c4b"; } +.lnid-comment-3-dots::after { content: "\f0c4a"; } +.lnid-comment-3-error::before { content: "\f0c4d"; } +.lnid-comment-3-error::after { content: "\f0c4c"; } +.lnid-comment-3-heart::before { content: "\f0c4f"; } +.lnid-comment-3-heart::after { content: "\f0c4e"; } +.lnid-comment-3-minus::before { content: "\f0c51"; } +.lnid-comment-3-minus::after { content: "\f0c50"; } +.lnid-comment-3-plus::before { content: "\f0c53"; } +.lnid-comment-3-plus::after { content: "\f0c52"; } +.lnid-comment-3-question::before { content: "\f0c55"; } +.lnid-comment-3-question::after { content: "\f0c54"; } +.lnid-comment-3-share::before { content: "\f0c57"; } +.lnid-comment-3-share::after { content: "\f0c56"; } +.lnid-comment-3-text::before { content: "\f0c59"; } +.lnid-comment-3-text::after { content: "\f0c58"; } +.lnid-comment-4::before { content: "\f0c6d"; } +.lnid-comment-4::after { content: "\f0c6c"; } +.lnid-comment-4-dots::before { content: "\f0c5d"; } +.lnid-comment-4-dots::after { content: "\f0c5c"; } +.lnid-comment-4-error::before { content: "\f0c5f"; } +.lnid-comment-4-error::after { content: "\f0c5e"; } +.lnid-comment-4-heart::before { content: "\f0c61"; } +.lnid-comment-4-heart::after { content: "\f0c60"; } +.lnid-comment-4-minus::before { content: "\f0c63"; } +.lnid-comment-4-minus::after { content: "\f0c62"; } +.lnid-comment-4-plus::before { content: "\f0c65"; } +.lnid-comment-4-plus::after { content: "\f0c64"; } +.lnid-comment-4-question::before { content: "\f0c67"; } +.lnid-comment-4-question::after { content: "\f0c66"; } +.lnid-comment-4-share::before { content: "\f0c69"; } +.lnid-comment-4-share::after { content: "\f0c68"; } +.lnid-comment-4-text::before { content: "\f0c6b"; } +.lnid-comment-4-text::after { content: "\f0c6a"; } +.lnid-comment-5::before { content: "\f0c7f"; } +.lnid-comment-5::after { content: "\f0c7e"; } +.lnid-comment-5-dots::before { content: "\f0c6f"; } +.lnid-comment-5-dots::after { content: "\f0c6e"; } +.lnid-comment-5-error::before { content: "\f0c71"; } +.lnid-comment-5-error::after { content: "\f0c70"; } +.lnid-comment-5-heart::before { content: "\f0c73"; } +.lnid-comment-5-heart::after { content: "\f0c72"; } +.lnid-comment-5-minus::before { content: "\f0c75"; } +.lnid-comment-5-minus::after { content: "\f0c74"; } +.lnid-comment-5-plus::before { content: "\f0c77"; } +.lnid-comment-5-plus::after { content: "\f0c76"; } +.lnid-comment-5-question::before { content: "\f0c79"; } +.lnid-comment-5-question::after { content: "\f0c78"; } +.lnid-comment-5-share::before { content: "\f0c7b"; } +.lnid-comment-5-share::after { content: "\f0c7a"; } +.lnid-comment-5-text::before { content: "\f0c7d"; } +.lnid-comment-5-text::after { content: "\f0c7c"; } +.lnid-comment-6::before { content: "\f0c91"; } +.lnid-comment-6::after { content: "\f0c90"; } +.lnid-comment-6-dots::before { content: "\f0c81"; } +.lnid-comment-6-dots::after { content: "\f0c80"; } +.lnid-comment-6-error::before { content: "\f0c83"; } +.lnid-comment-6-error::after { content: "\f0c82"; } +.lnid-comment-6-heart::before { content: "\f0c85"; } +.lnid-comment-6-heart::after { content: "\f0c84"; } +.lnid-comment-6-minus::before { content: "\f0c87"; } +.lnid-comment-6-minus::after { content: "\f0c86"; } +.lnid-comment-6-plus::before { content: "\f0c89"; } +.lnid-comment-6-plus::after { content: "\f0c88"; } +.lnid-comment-6-question::before { content: "\f0c8b"; } +.lnid-comment-6-question::after { content: "\f0c8a"; } +.lnid-comment-6-share::before { content: "\f0c8d"; } +.lnid-comment-6-share::after { content: "\f0c8c"; } +.lnid-comment-6-text::before { content: "\f0c8f"; } +.lnid-comment-6-text::after { content: "\f0c8e"; } +.lnid-comment-ai-1::before { content: "\f0c93"; } +.lnid-comment-ai-1::after { content: "\f0c92"; } +.lnid-comment-ai-3::before { content: "\f0c95"; } +.lnid-comment-ai-3::after { content: "\f0c94"; } +.lnid-comment-ai-5::before { content: "\f0c97"; } +.lnid-comment-ai-5::after { content: "\f0c96"; } +.lnid-comment-ai-6::before { content: "\f0c99"; } +.lnid-comment-ai-6::after { content: "\f0c98"; } +.lnid-comment-bot-angry::before { content: "\f0c9b"; } +.lnid-comment-bot-angry::after { content: "\f0c9a"; } +.lnid-comment-bot-cute::before { content: "\f0c9d"; } +.lnid-comment-bot-cute::after { content: "\f0c9c"; } +.lnid-comment-bot-error::before { content: "\f0c9f"; } +.lnid-comment-bot-error::after { content: "\f0c9e"; } +.lnid-comment-bot-happy::before { content: "\f0ca1"; } +.lnid-comment-bot-happy::after { content: "\f0ca0"; } +.lnid-comment-bot-neutral-1::before { content: "\f0ca3"; } +.lnid-comment-bot-neutral-1::after { content: "\f0ca2"; } +.lnid-comment-bot-neutral-2::before { content: "\f0ca5"; } +.lnid-comment-bot-neutral-2::after { content: "\f0ca4"; } +.lnid-comment-bot-sad::before { content: "\f0ca7"; } +.lnid-comment-bot-sad::after { content: "\f0ca6"; } +.lnid-commit-git-1::before { content: "\f0ca9"; } +.lnid-commit-git-1::after { content: "\f0ca8"; } +.lnid-commit-git-2::before { content: "\f0cab"; } +.lnid-commit-git-2::after { content: "\f0caa"; } +.lnid-compass-1::before { content: "\f0caf"; } +.lnid-compass-1::after { content: "\f0cae"; } +.lnid-compass-1-disabled::before { content: "\f0cad"; } +.lnid-compass-1-disabled::after { content: "\f0cac"; } +.lnid-compass-2::before { content: "\f0cb1"; } +.lnid-compass-2::after { content: "\f0cb0"; } +.lnid-compass-3::before { content: "\f0cb5"; } +.lnid-compass-3::after { content: "\f0cb4"; } +.lnid-compass-3-disabled::before { content: "\f0cb3"; } +.lnid-compass-3-disabled::after { content: "\f0cb2"; } +.lnid-compass-ai-1::before { content: "\f0cb7"; } +.lnid-compass-ai-1::after { content: "\f0cb6"; } +.lnid-compass-ai-2::before { content: "\f0cb9"; } +.lnid-compass-ai-2::after { content: "\f0cb8"; } +.lnid-compass-drafting-1::before { content: "\f0cbb"; } +.lnid-compass-drafting-1::after { content: "\f0cba"; } +.lnid-compass-drafting-2::before { content: "\f0cbd"; } +.lnid-compass-drafting-2::after { content: "\f0cbc"; } +.lnid-compress-arrow-1::before { content: "\f0cbf"; } +.lnid-compress-arrow-1::after { content: "\f0cbe"; } +.lnid-compress-arrow-2::before { content: "\f0cc1"; } +.lnid-compress-arrow-2::after { content: "\f0cc0"; } +.lnid-compress-arrow-3::before { content: "\f0cc3"; } +.lnid-compress-arrow-3::after { content: "\f0cc2"; } +.lnid-compress-arrow-4::before { content: "\f0cc5"; } +.lnid-compress-arrow-4::after { content: "\f0cc4"; } +.lnid-compress-arrow-5::before { content: "\f0cc7"; } +.lnid-compress-arrow-5::after { content: "\f0cc6"; } +.lnid-compress-arrow-6::before { content: "\f0cc9"; } +.lnid-compress-arrow-6::after { content: "\f0cc8"; } +.lnid-compress-arrow-7::before { content: "\f0ccb"; } +.lnid-compress-arrow-7::after { content: "\f0cca"; } +.lnid-compress-arrow-8::before { content: "\f0ccd"; } +.lnid-compress-arrow-8::after { content: "\f0ccc"; } +.lnid-compress-arrow-9::before { content: "\f0ccf"; } +.lnid-compress-arrow-9::after { content: "\f0cce"; } +.lnid-compress-arrow-top-right-square-1::before { content: "\f0cd1"; } +.lnid-compress-arrow-top-right-square-1::after { content: "\f0cd0"; } +.lnid-compress-arrow-top-right-square-2::before { content: "\f0cd3"; } +.lnid-compress-arrow-top-right-square-2::after { content: "\f0cd2"; } +.lnid-compress-circle::before { content: "\f0cd5"; } +.lnid-compress-circle::after { content: "\f0cd4"; } +.lnid-compress-square-1::before { content: "\f0cd7"; } +.lnid-compress-square-1::after { content: "\f0cd6"; } +.lnid-compress-square-2::before { content: "\f0cd9"; } +.lnid-compress-square-2::after { content: "\f0cd8"; } +.lnid-compress-square-3::before { content: "\f0cdb"; } +.lnid-compress-square-3::after { content: "\f0cda"; } +.lnid-compress-square-4::before { content: "\f0cdd"; } +.lnid-compress-square-4::after { content: "\f0cdc"; } +.lnid-computer-1::before { content: "\f0cdf"; } +.lnid-computer-1::after { content: "\f0cde"; } +.lnid-computer-2::before { content: "\f0ce1"; } +.lnid-computer-2::after { content: "\f0ce0"; } +.lnid-computer-3::before { content: "\f0ce3"; } +.lnid-computer-3::after { content: "\f0ce2"; } +.lnid-computer-ai::before { content: "\f0ce5"; } +.lnid-computer-ai::after { content: "\f0ce4"; } +.lnid-computer-beat::before { content: "\f0ce7"; } +.lnid-computer-beat::after { content: "\f0ce6"; } +.lnid-computer-binary::before { content: "\f0ce9"; } +.lnid-computer-binary::after { content: "\f0ce8"; } +.lnid-computer-bolt::before { content: "\f0ceb"; } +.lnid-computer-bolt::after { content: "\f0cea"; } +.lnid-computer-check-circle::before { content: "\f0ced"; } +.lnid-computer-check-circle::after { content: "\f0cec"; } +.lnid-computer-cloud::before { content: "\f0cef"; } +.lnid-computer-cloud::after { content: "\f0cee"; } +.lnid-computer-code::before { content: "\f0cf1"; } +.lnid-computer-code::after { content: "\f0cf0"; } +.lnid-computer-error-circle::before { content: "\f0cf3"; } +.lnid-computer-error-circle::after { content: "\f0cf2"; } +.lnid-computer-gear::before { content: "\f0cf5"; } +.lnid-computer-gear::after { content: "\f0cf4"; } +.lnid-computer-leaf::before { content: "\f0cf7"; } +.lnid-computer-leaf::after { content: "\f0cf6"; } +.lnid-computer-link::before { content: "\f0cf9"; } +.lnid-computer-link::after { content: "\f0cf8"; } +.lnid-computer-locked::before { content: "\f0cfb"; } +.lnid-computer-locked::after { content: "\f0cfa"; } +.lnid-computer-phone::before { content: "\f0cfd"; } +.lnid-computer-phone::after { content: "\f0cfc"; } +.lnid-computer-refresh::before { content: "\f0cff"; } +.lnid-computer-refresh::after { content: "\f0cfe"; } +.lnid-computer-shield::before { content: "\f0d01"; } +.lnid-computer-shield::after { content: "\f0d00"; } +.lnid-computer-time::before { content: "\f0d03"; } +.lnid-computer-time::after { content: "\f0d02"; } +.lnid-computer-user::before { content: "\f0d05"; } +.lnid-computer-user::after { content: "\f0d04"; } +.lnid-computer-wifi::before { content: "\f0d07"; } +.lnid-computer-wifi::after { content: "\f0d06"; } +.lnid-confetti::before { content: "\f0d09"; } +.lnid-confetti::after { content: "\f0d08"; } +.lnid-connected-nodes::before { content: "\f0d0b"; } +.lnid-connected-nodes::after { content: "\f0d0a"; } +.lnid-constraints::before { content: "\f0d1f"; } +.lnid-constraints::after { content: "\f0d1e"; } +.lnid-constraints-bottom-center::before { content: "\f0d0d"; } +.lnid-constraints-bottom-center::after { content: "\f0d0c"; } +.lnid-constraints-bottom-left::before { content: "\f0d0f"; } +.lnid-constraints-bottom-left::after { content: "\f0d0e"; } +.lnid-constraints-bottom-right::before { content: "\f0d11"; } +.lnid-constraints-bottom-right::after { content: "\f0d10"; } +.lnid-constraints-center-all-direction::before { content: "\f0d13"; } +.lnid-constraints-center-all-direction::after { content: "\f0d12"; } +.lnid-constraints-center-left::before { content: "\f0d15"; } +.lnid-constraints-center-left::after { content: "\f0d14"; } +.lnid-constraints-center-right::before { content: "\f0d17"; } +.lnid-constraints-center-right::after { content: "\f0d16"; } +.lnid-constraints-top-center::before { content: "\f0d19"; } +.lnid-constraints-top-center::after { content: "\f0d18"; } +.lnid-constraints-top-left::before { content: "\f0d1b"; } +.lnid-constraints-top-left::after { content: "\f0d1a"; } +.lnid-constraints-top-right::before { content: "\f0d1d"; } +.lnid-constraints-top-right::after { content: "\f0d1c"; } +.lnid-conversations-1::before { content: "\f0d27"; } +.lnid-conversations-1::after { content: "\f0d26"; } +.lnid-conversations-10::before { content: "\f0d21"; } +.lnid-conversations-10::after { content: "\f0d20"; } +.lnid-conversations-11::before { content: "\f0d23"; } +.lnid-conversations-11::after { content: "\f0d22"; } +.lnid-conversations-12::before { content: "\f0d25"; } +.lnid-conversations-12::after { content: "\f0d24"; } +.lnid-conversations-2::before { content: "\f0d29"; } +.lnid-conversations-2::after { content: "\f0d28"; } +.lnid-conversations-3::before { content: "\f0d2b"; } +.lnid-conversations-3::after { content: "\f0d2a"; } +.lnid-conversations-4::before { content: "\f0d2d"; } +.lnid-conversations-4::after { content: "\f0d2c"; } +.lnid-conversations-5::before { content: "\f0d2f"; } +.lnid-conversations-5::after { content: "\f0d2e"; } +.lnid-conversations-6::before { content: "\f0d31"; } +.lnid-conversations-6::after { content: "\f0d30"; } +.lnid-conversations-7::before { content: "\f0d33"; } +.lnid-conversations-7::after { content: "\f0d32"; } +.lnid-conversations-8::before { content: "\f0d35"; } +.lnid-conversations-8::after { content: "\f0d34"; } +.lnid-conversations-9::before { content: "\f0d37"; } +.lnid-conversations-9::after { content: "\f0d36"; } +.lnid-convert::before { content: "\f0d47"; } +.lnid-convert::after { content: "\f0d46"; } +.lnid-convert-ai::before { content: "\f0d39"; } +.lnid-convert-ai::after { content: "\f0d38"; } +.lnid-convert-audio-video-ai::before { content: "\f0d3b"; } +.lnid-convert-audio-video-ai::after { content: "\f0d3a"; } +.lnid-convert-image::before { content: "\f0d41"; } +.lnid-convert-image::after { content: "\f0d40"; } +.lnid-convert-image-ai::before { content: "\f0d3d"; } +.lnid-convert-image-ai::after { content: "\f0d3c"; } +.lnid-convert-image-video-ai::before { content: "\f0d3f"; } +.lnid-convert-image-video-ai::after { content: "\f0d3e"; } +.lnid-convert-video-image::before { content: "\f0d43"; } +.lnid-convert-video-image::after { content: "\f0d42"; } +.lnid-convert-video-music::before { content: "\f0d45"; } +.lnid-convert-video-music::after { content: "\f0d44"; } +.lnid-cookies::before { content: "\f0d49"; } +.lnid-cookies::after { content: "\f0d48"; } +.lnid-copy-1::before { content: "\f0d4b"; } +.lnid-copy-1::after { content: "\f0d4a"; } +.lnid-copy-2::before { content: "\f0d4d"; } +.lnid-copy-2::after { content: "\f0d4c"; } +.lnid-copy-3::before { content: "\f0d4f"; } +.lnid-copy-3::after { content: "\f0d4e"; } +.lnid-copy-4::before { content: "\f0d51"; } +.lnid-copy-4::after { content: "\f0d50"; } +.lnid-copy-5::before { content: "\f0d53"; } +.lnid-copy-5::after { content: "\f0d52"; } +.lnid-copy-6::before { content: "\f0d55"; } +.lnid-copy-6::after { content: "\f0d54"; } +.lnid-copy-7::before { content: "\f0d57"; } +.lnid-copy-7::after { content: "\f0d56"; } +.lnid-copy-8::before { content: "\f0d59"; } +.lnid-copy-8::after { content: "\f0d58"; } +.lnid-corn::before { content: "\f0d5b"; } +.lnid-corn::after { content: "\f0d5a"; } +.lnid-corner-double-down-left::before { content: "\f0d5d"; } +.lnid-corner-double-down-left::after { content: "\f0d5c"; } +.lnid-corner-double-down-right::before { content: "\f0d5f"; } +.lnid-corner-double-down-right::after { content: "\f0d5e"; } +.lnid-corner-double-left-down::before { content: "\f0d61"; } +.lnid-corner-double-left-down::after { content: "\f0d60"; } +.lnid-corner-double-left-up::before { content: "\f0d63"; } +.lnid-corner-double-left-up::after { content: "\f0d62"; } +.lnid-corner-double-right-down::before { content: "\f0d65"; } +.lnid-corner-double-right-down::after { content: "\f0d64"; } +.lnid-corner-double-right-up::before { content: "\f0d67"; } +.lnid-corner-double-right-up::after { content: "\f0d66"; } +.lnid-corner-double-up-left::before { content: "\f0d69"; } +.lnid-corner-double-up-left::after { content: "\f0d68"; } +.lnid-corner-double-up-right::before { content: "\f0d6b"; } +.lnid-corner-double-up-right::after { content: "\f0d6a"; } +.lnid-cottage-1::before { content: "\f0d6d"; } +.lnid-cottage-1::after { content: "\f0d6c"; } +.lnid-cottage-2::before { content: "\f0d6f"; } +.lnid-cottage-2::after { content: "\f0d6e"; } +.lnid-cottage-3::before { content: "\f0d71"; } +.lnid-cottage-3::after { content: "\f0d70"; } +.lnid-cottage-4::before { content: "\f0d73"; } +.lnid-cottage-4::after { content: "\f0d72"; } +.lnid-cotton-bud::before { content: "\f0d75"; } +.lnid-cotton-bud::after { content: "\f0d74"; } +.lnid-cotton-buds::before { content: "\f0d77"; } +.lnid-cotton-buds::after { content: "\f0d76"; } +.lnid-court-1::before { content: "\f0d79"; } +.lnid-court-1::after { content: "\f0d78"; } +.lnid-court-2::before { content: "\f0d7b"; } +.lnid-court-2::after { content: "\f0d7a"; } +.lnid-court-3::before { content: "\f0d7d"; } +.lnid-court-3::after { content: "\f0d7c"; } +.lnid-court-check-circle::before { content: "\f0d7f"; } +.lnid-court-check-circle::after { content: "\f0d7e"; } +.lnid-court-disabled::before { content: "\f0d81"; } +.lnid-court-disabled::after { content: "\f0d80"; } +.lnid-court-error-circle::before { content: "\f0d83"; } +.lnid-court-error-circle::after { content: "\f0d82"; } +.lnid-court-fire::before { content: "\f0d85"; } +.lnid-court-fire::after { content: "\f0d84"; } +.lnid-court-question-mark::before { content: "\f0d87"; } +.lnid-court-question-mark::after { content: "\f0d86"; } +.lnid-court-time::before { content: "\f0d89"; } +.lnid-court-time::after { content: "\f0d88"; } +.lnid-court-user::before { content: "\f0d8b"; } +.lnid-court-user::after { content: "\f0d8a"; } +.lnid-court-xmark-circle::before { content: "\f0d8d"; } +.lnid-court-xmark-circle::after { content: "\f0d8c"; } +.lnid-cow::before { content: "\f0d8f"; } +.lnid-cow::after { content: "\f0d8e"; } +.lnid-crab::before { content: "\f0d91"; } +.lnid-crab::after { content: "\f0d90"; } +.lnid-crane-1::before { content: "\f0d95"; } +.lnid-crane-1::after { content: "\f0d94"; } +.lnid-crane-10::before { content: "\f0d93"; } +.lnid-crane-10::after { content: "\f0d92"; } +.lnid-crane-2::before { content: "\f0d97"; } +.lnid-crane-2::after { content: "\f0d96"; } +.lnid-crane-3::before { content: "\f0d99"; } +.lnid-crane-3::after { content: "\f0d98"; } +.lnid-crane-4::before { content: "\f0d9b"; } +.lnid-crane-4::after { content: "\f0d9a"; } +.lnid-crane-5::before { content: "\f0d9d"; } +.lnid-crane-5::after { content: "\f0d9c"; } +.lnid-crane-6::before { content: "\f0d9f"; } +.lnid-crane-6::after { content: "\f0d9e"; } +.lnid-crane-7::before { content: "\f0da1"; } +.lnid-crane-7::after { content: "\f0da0"; } +.lnid-crane-8::before { content: "\f0da3"; } +.lnid-crane-8::after { content: "\f0da2"; } +.lnid-crane-9::before { content: "\f0da5"; } +.lnid-crane-9::after { content: "\f0da4"; } +.lnid-cream-1::before { content: "\f0da7"; } +.lnid-cream-1::after { content: "\f0da6"; } +.lnid-cream-2::before { content: "\f0da9"; } +.lnid-cream-2::after { content: "\f0da8"; } +.lnid-cream-3::before { content: "\f0dab"; } +.lnid-cream-3::after { content: "\f0daa"; } +.lnid-cream-4::before { content: "\f0dad"; } +.lnid-cream-4::after { content: "\f0dac"; } +.lnid-credit-card::before { content: "\f0dfb"; } +.lnid-credit-card::after { content: "\f0dfa"; } +.lnid-credit-card-ai::before { content: "\f0daf"; } +.lnid-credit-card-ai::after { content: "\f0dae"; } +.lnid-credit-card-arrow-downward::before { content: "\f0db1"; } +.lnid-credit-card-arrow-downward::after { content: "\f0db0"; } +.lnid-credit-card-arrow-left::before { content: "\f0db3"; } +.lnid-credit-card-arrow-left::after { content: "\f0db2"; } +.lnid-credit-card-arrow-right::before { content: "\f0db5"; } +.lnid-credit-card-arrow-right::after { content: "\f0db4"; } +.lnid-credit-card-arrow-upward::before { content: "\f0db7"; } +.lnid-credit-card-arrow-upward::after { content: "\f0db6"; } +.lnid-credit-card-bug::before { content: "\f0db9"; } +.lnid-credit-card-bug::after { content: "\f0db8"; } +.lnid-credit-card-cart::before { content: "\f0dbb"; } +.lnid-credit-card-cart::after { content: "\f0dba"; } +.lnid-credit-card-check-circle::before { content: "\f0dbd"; } +.lnid-credit-card-check-circle::after { content: "\f0dbc"; } +.lnid-credit-card-disabled::before { content: "\f0dbf"; } +.lnid-credit-card-disabled::after { content: "\f0dbe"; } +.lnid-credit-card-dollar::before { content: "\f0dc1"; } +.lnid-credit-card-dollar::after { content: "\f0dc0"; } +.lnid-credit-card-error-circle::before { content: "\f0dc3"; } +.lnid-credit-card-error-circle::after { content: "\f0dc2"; } +.lnid-credit-card-euro::before { content: "\f0dc5"; } +.lnid-credit-card-euro::after { content: "\f0dc4"; } +.lnid-credit-card-gear::before { content: "\f0dc7"; } +.lnid-credit-card-gear::after { content: "\f0dc6"; } +.lnid-credit-card-globe::before { content: "\f0dc9"; } +.lnid-credit-card-globe::after { content: "\f0dc8"; } +.lnid-credit-card-info::before { content: "\f0dcb"; } +.lnid-credit-card-info::after { content: "\f0dca"; } +.lnid-credit-card-locked::before { content: "\f0dcd"; } +.lnid-credit-card-locked::after { content: "\f0dcc"; } +.lnid-credit-card-minus-circle::before { content: "\f0dcf"; } +.lnid-credit-card-minus-circle::after { content: "\f0dce"; } +.lnid-credit-card-money::before { content: "\f0dd1"; } +.lnid-credit-card-money::after { content: "\f0dd0"; } +.lnid-credit-card-multiple::before { content: "\f0dd3"; } +.lnid-credit-card-multiple::after { content: "\f0dd2"; } +.lnid-credit-card-nfc::before { content: "\f0dd5"; } +.lnid-credit-card-nfc::after { content: "\f0dd4"; } +.lnid-credit-card-pencil::before { content: "\f0dd7"; } +.lnid-credit-card-pencil::after { content: "\f0dd6"; } +.lnid-credit-card-percent-circle::before { content: "\f0dd9"; } +.lnid-credit-card-percent-circle::after { content: "\f0dd8"; } +.lnid-credit-card-plus-circle::before { content: "\f0ddd"; } +.lnid-credit-card-plus-circle::after { content: "\f0ddc"; } +.lnid-credit-card-plus-circle-1::before { content: "\f0ddb"; } +.lnid-credit-card-plus-circle-1::after { content: "\f0dda"; } +.lnid-credit-card-pound::before { content: "\f0ddf"; } +.lnid-credit-card-pound::after { content: "\f0dde"; } +.lnid-credit-card-refresh::before { content: "\f0de1"; } +.lnid-credit-card-refresh::after { content: "\f0de0"; } +.lnid-credit-card-ruble::before { content: "\f0de3"; } +.lnid-credit-card-ruble::after { content: "\f0de2"; } +.lnid-credit-card-rupee::before { content: "\f0de5"; } +.lnid-credit-card-rupee::after { content: "\f0de4"; } +.lnid-credit-card-search::before { content: "\f0de7"; } +.lnid-credit-card-search::after { content: "\f0de6"; } +.lnid-credit-card-shield::before { content: "\f0de9"; } +.lnid-credit-card-shield::after { content: "\f0de8"; } +.lnid-credit-card-star::before { content: "\f0deb"; } +.lnid-credit-card-star::after { content: "\f0dea"; } +.lnid-credit-card-swap::before { content: "\f0ded"; } +.lnid-credit-card-swap::after { content: "\f0dec"; } +.lnid-credit-card-taka::before { content: "\f0def"; } +.lnid-credit-card-taka::after { content: "\f0dee"; } +.lnid-credit-card-trash::before { content: "\f0df1"; } +.lnid-credit-card-trash::after { content: "\f0df0"; } +.lnid-credit-card-unlocked::before { content: "\f0df3"; } +.lnid-credit-card-unlocked::after { content: "\f0df2"; } +.lnid-credit-card-user::before { content: "\f0df5"; } +.lnid-credit-card-user::after { content: "\f0df4"; } +.lnid-credit-card-xmark-circle::before { content: "\f0df7"; } +.lnid-credit-card-xmark-circle::after { content: "\f0df6"; } +.lnid-credit-card-yen::before { content: "\f0df9"; } +.lnid-credit-card-yen::after { content: "\f0df8"; } +.lnid-cricket-bat::before { content: "\f0dfd"; } +.lnid-cricket-bat::after { content: "\f0dfc"; } +.lnid-crocodile::before { content: "\f0dff"; } +.lnid-crocodile::after { content: "\f0dfe"; } +.lnid-crop::before { content: "\f0e07"; } +.lnid-crop::after { content: "\f0e06"; } +.lnid-crop-2::before { content: "\f0e01"; } +.lnid-crop-2::after { content: "\f0e00"; } +.lnid-crop-3::before { content: "\f0e03"; } +.lnid-crop-3::after { content: "\f0e02"; } +.lnid-crop-image::before { content: "\f0e05"; } +.lnid-crop-image::after { content: "\f0e04"; } +.lnid-cross::before { content: "\f0e09"; } +.lnid-cross::after { content: "\f0e08"; } +.lnid-crown-1::before { content: "\f0e0b"; } +.lnid-crown-1::after { content: "\f0e0a"; } +.lnid-crown-2::before { content: "\f0e0d"; } +.lnid-crown-2::after { content: "\f0e0c"; } +.lnid-crown-3::before { content: "\f0e0f"; } +.lnid-crown-3::after { content: "\f0e0e"; } +.lnid-crown-4::before { content: "\f0e11"; } +.lnid-crown-4::after { content: "\f0e10"; } +.lnid-crown-queen::before { content: "\f0e13"; } +.lnid-crown-queen::after { content: "\f0e12"; } +.lnid-cruise-1::before { content: "\f0e15"; } +.lnid-cruise-1::after { content: "\f0e14"; } +.lnid-cruise-2::before { content: "\f0e17"; } +.lnid-cruise-2::after { content: "\f0e16"; } +.lnid-crypto-circle::before { content: "\f0e19"; } +.lnid-crypto-circle::after { content: "\f0e18"; } +.lnid-cubes::before { content: "\f0e1b"; } +.lnid-cubes::after { content: "\f0e1a"; } +.lnid-cupcake-1::before { content: "\f0e1d"; } +.lnid-cupcake-1::after { content: "\f0e1c"; } +.lnid-cupcake-2::before { content: "\f0e1f"; } +.lnid-cupcake-2::after { content: "\f0e1e"; } +.lnid-cupcake-heart-1::before { content: "\f0e21"; } +.lnid-cupcake-heart-1::after { content: "\f0e20"; } +.lnid-cupcake-heart-2::before { content: "\f0e23"; } +.lnid-cupcake-heart-2::after { content: "\f0e22"; } +.lnid-cupid::before { content: "\f0e27"; } +.lnid-cupid::after { content: "\f0e26"; } +.lnid-cupid-heart::before { content: "\f0e25"; } +.lnid-cupid-heart::after { content: "\f0e24"; } +.lnid-curvy-road-1::before { content: "\f0e29"; } +.lnid-curvy-road-1::after { content: "\f0e28"; } +.lnid-curvy-road-2::before { content: "\f0e2b"; } +.lnid-curvy-road-2::after { content: "\f0e2a"; } +.lnid-cutter-1::before { content: "\f0e2d"; } +.lnid-cutter-1::after { content: "\f0e2c"; } +.lnid-cutter-2::before { content: "\f0e2f"; } +.lnid-cutter-2::after { content: "\f0e2e"; } +.lnid-dashboard-ai-circle::before { content: "\f0e31"; } +.lnid-dashboard-ai-circle::after { content: "\f0e30"; } +.lnid-dashboard-ai-square::before { content: "\f0e33"; } +.lnid-dashboard-ai-square::after { content: "\f0e32"; } +.lnid-dashboard-circle::before { content: "\f0e55"; } +.lnid-dashboard-circle::after { content: "\f0e54"; } +.lnid-dashboard-circle-beat::before { content: "\f0e35"; } +.lnid-dashboard-circle-beat::after { content: "\f0e34"; } +.lnid-dashboard-circle-bolt::before { content: "\f0e37"; } +.lnid-dashboard-circle-bolt::after { content: "\f0e36"; } +.lnid-dashboard-circle-bug::before { content: "\f0e39"; } +.lnid-dashboard-circle-bug::after { content: "\f0e38"; } +.lnid-dashboard-circle-check::before { content: "\f0e3b"; } +.lnid-dashboard-circle-check::after { content: "\f0e3a"; } +.lnid-dashboard-circle-gear::before { content: "\f0e3d"; } +.lnid-dashboard-circle-gear::after { content: "\f0e3c"; } +.lnid-dashboard-circle-minus::before { content: "\f0e3f"; } +.lnid-dashboard-circle-minus::after { content: "\f0e3e"; } +.lnid-dashboard-circle-mixed::before { content: "\f0e41"; } +.lnid-dashboard-circle-mixed::after { content: "\f0e40"; } +.lnid-dashboard-circle-pencil::before { content: "\f0e43"; } +.lnid-dashboard-circle-pencil::after { content: "\f0e42"; } +.lnid-dashboard-circle-pie-chart::before { content: "\f0e45"; } +.lnid-dashboard-circle-pie-chart::after { content: "\f0e44"; } +.lnid-dashboard-circle-plus::before { content: "\f0e47"; } +.lnid-dashboard-circle-plus::after { content: "\f0e46"; } +.lnid-dashboard-circle-search::before { content: "\f0e49"; } +.lnid-dashboard-circle-search::after { content: "\f0e48"; } +.lnid-dashboard-circle-star::before { content: "\f0e4b"; } +.lnid-dashboard-circle-star::after { content: "\f0e4a"; } +.lnid-dashboard-circle-trend-down::before { content: "\f0e4d"; } +.lnid-dashboard-circle-trend-down::after { content: "\f0e4c"; } +.lnid-dashboard-circle-trend-up::before { content: "\f0e4f"; } +.lnid-dashboard-circle-trend-up::after { content: "\f0e4e"; } +.lnid-dashboard-circle-user::before { content: "\f0e51"; } +.lnid-dashboard-circle-user::after { content: "\f0e50"; } +.lnid-dashboard-circle-xmark::before { content: "\f0e53"; } +.lnid-dashboard-circle-xmark::after { content: "\f0e52"; } +.lnid-dashboard-sidebar::before { content: "\f0e57"; } +.lnid-dashboard-sidebar::after { content: "\f0e56"; } +.lnid-dashboard-square-1::before { content: "\f0e5b"; } +.lnid-dashboard-square-1::after { content: "\f0e5a"; } +.lnid-dashboard-square-10::before { content: "\f0e59"; } +.lnid-dashboard-square-10::after { content: "\f0e58"; } +.lnid-dashboard-square-2::before { content: "\f0e5d"; } +.lnid-dashboard-square-2::after { content: "\f0e5c"; } +.lnid-dashboard-square-3::before { content: "\f0e5f"; } +.lnid-dashboard-square-3::after { content: "\f0e5e"; } +.lnid-dashboard-square-4::before { content: "\f0e61"; } +.lnid-dashboard-square-4::after { content: "\f0e60"; } +.lnid-dashboard-square-5::before { content: "\f0e63"; } +.lnid-dashboard-square-5::after { content: "\f0e62"; } +.lnid-dashboard-square-6::before { content: "\f0e65"; } +.lnid-dashboard-square-6::after { content: "\f0e64"; } +.lnid-dashboard-square-7::before { content: "\f0e67"; } +.lnid-dashboard-square-7::after { content: "\f0e66"; } +.lnid-dashboard-square-8::before { content: "\f0e69"; } +.lnid-dashboard-square-8::after { content: "\f0e68"; } +.lnid-dashboard-square-9::before { content: "\f0e6b"; } +.lnid-dashboard-square-9::after { content: "\f0e6a"; } +.lnid-dashboard-square-beat::before { content: "\f0e6d"; } +.lnid-dashboard-square-beat::after { content: "\f0e6c"; } +.lnid-dashboard-square-bolt::before { content: "\f0e6f"; } +.lnid-dashboard-square-bolt::after { content: "\f0e6e"; } +.lnid-dashboard-square-bug::before { content: "\f0e71"; } +.lnid-dashboard-square-bug::after { content: "\f0e70"; } +.lnid-dashboard-square-check::before { content: "\f0e73"; } +.lnid-dashboard-square-check::after { content: "\f0e72"; } +.lnid-dashboard-square-gear::before { content: "\f0e75"; } +.lnid-dashboard-square-gear::after { content: "\f0e74"; } +.lnid-dashboard-square-minus::before { content: "\f0e77"; } +.lnid-dashboard-square-minus::after { content: "\f0e76"; } +.lnid-dashboard-square-pencil::before { content: "\f0e79"; } +.lnid-dashboard-square-pencil::after { content: "\f0e78"; } +.lnid-dashboard-square-pie-chart::before { content: "\f0e7b"; } +.lnid-dashboard-square-pie-chart::after { content: "\f0e7a"; } +.lnid-dashboard-square-plus::before { content: "\f0e7d"; } +.lnid-dashboard-square-plus::after { content: "\f0e7c"; } +.lnid-dashboard-square-search::before { content: "\f0e7f"; } +.lnid-dashboard-square-search::after { content: "\f0e7e"; } +.lnid-dashboard-square-star::before { content: "\f0e81"; } +.lnid-dashboard-square-star::after { content: "\f0e80"; } +.lnid-dashboard-square-trend-down::before { content: "\f0e83"; } +.lnid-dashboard-square-trend-down::after { content: "\f0e82"; } +.lnid-dashboard-square-trend-up::before { content: "\f0e85"; } +.lnid-dashboard-square-trend-up::after { content: "\f0e84"; } +.lnid-dashboard-square-user::before { content: "\f0e87"; } +.lnid-dashboard-square-user::after { content: "\f0e86"; } +.lnid-dashboard-square-xmark::before { content: "\f0e89"; } +.lnid-dashboard-square-xmark::after { content: "\f0e88"; } +.lnid-dashboard-topbar::before { content: "\f0e8b"; } +.lnid-dashboard-topbar::after { content: "\f0e8a"; } +.lnid-database-1::before { content: "\f0e8d"; } +.lnid-database-1::after { content: "\f0e8c"; } +.lnid-database-2::before { content: "\f0e8f"; } +.lnid-database-2::after { content: "\f0e8e"; } +.lnid-database-3::before { content: "\f0e91"; } +.lnid-database-3::after { content: "\f0e90"; } +.lnid-database-4::before { content: "\f0e93"; } +.lnid-database-4::after { content: "\f0e92"; } +.lnid-database-5::before { content: "\f0e95"; } +.lnid-database-5::after { content: "\f0e94"; } +.lnid-database-ai-1::before { content: "\f0e97"; } +.lnid-database-ai-1::after { content: "\f0e96"; } +.lnid-database-ai-2::before { content: "\f0e99"; } +.lnid-database-ai-2::after { content: "\f0e98"; } +.lnid-database-ai-3::before { content: "\f0e9b"; } +.lnid-database-ai-3::after { content: "\f0e9a"; } +.lnid-database-ai-4::before { content: "\f0e9d"; } +.lnid-database-ai-4::after { content: "\f0e9c"; } +.lnid-database-ai-5::before { content: "\f0e9f"; } +.lnid-database-ai-5::after { content: "\f0e9e"; } +.lnid-database-ai-6::before { content: "\f0ea1"; } +.lnid-database-ai-6::after { content: "\f0ea0"; } +.lnid-database-arrow-downward::before { content: "\f0ea3"; } +.lnid-database-arrow-downward::after { content: "\f0ea2"; } +.lnid-database-arrow-left::before { content: "\f0ea5"; } +.lnid-database-arrow-left::after { content: "\f0ea4"; } +.lnid-database-arrow-right::before { content: "\f0ea7"; } +.lnid-database-arrow-right::after { content: "\f0ea6"; } +.lnid-database-arrow-upward::before { content: "\f0ea9"; } +.lnid-database-arrow-upward::after { content: "\f0ea8"; } +.lnid-database-bar-chart::before { content: "\f0eab"; } +.lnid-database-bar-chart::after { content: "\f0eaa"; } +.lnid-database-bolt::before { content: "\f0ead"; } +.lnid-database-bolt::after { content: "\f0eac"; } +.lnid-database-check-circle::before { content: "\f0eaf"; } +.lnid-database-check-circle::after { content: "\f0eae"; } +.lnid-database-cloud::before { content: "\f0eb1"; } +.lnid-database-cloud::after { content: "\f0eb0"; } +.lnid-database-code::before { content: "\f0eb3"; } +.lnid-database-code::after { content: "\f0eb2"; } +.lnid-database-disabled-1::before { content: "\f0eb5"; } +.lnid-database-disabled-1::after { content: "\f0eb4"; } +.lnid-database-disabled-2::before { content: "\f0eb7"; } +.lnid-database-disabled-2::after { content: "\f0eb6"; } +.lnid-database-error-circle::before { content: "\f0eb9"; } +.lnid-database-error-circle::after { content: "\f0eb8"; } +.lnid-database-gear::before { content: "\f0ebb"; } +.lnid-database-gear::after { content: "\f0eba"; } +.lnid-database-indicator::before { content: "\f0ebd"; } +.lnid-database-indicator::after { content: "\f0ebc"; } +.lnid-database-leaf::before { content: "\f0ebf"; } +.lnid-database-leaf::after { content: "\f0ebe"; } +.lnid-database-link::before { content: "\f0ec1"; } +.lnid-database-link::after { content: "\f0ec0"; } +.lnid-database-live::before { content: "\f0ec3"; } +.lnid-database-live::after { content: "\f0ec2"; } +.lnid-database-locked::before { content: "\f0ec5"; } +.lnid-database-locked::after { content: "\f0ec4"; } +.lnid-database-minus-circle::before { content: "\f0ec7"; } +.lnid-database-minus-circle::after { content: "\f0ec6"; } +.lnid-database-pencil::before { content: "\f0ec9"; } +.lnid-database-pencil::after { content: "\f0ec8"; } +.lnid-database-percent::before { content: "\f0ecb"; } +.lnid-database-percent::after { content: "\f0eca"; } +.lnid-database-phone::before { content: "\f0ecd"; } +.lnid-database-phone::after { content: "\f0ecc"; } +.lnid-database-play::before { content: "\f0ecf"; } +.lnid-database-play::after { content: "\f0ece"; } +.lnid-database-question::before { content: "\f0ed1"; } +.lnid-database-question::after { content: "\f0ed0"; } +.lnid-database-refresh::before { content: "\f0ed3"; } +.lnid-database-refresh::after { content: "\f0ed2"; } +.lnid-database-shield::before { content: "\f0ed5"; } +.lnid-database-shield::after { content: "\f0ed4"; } +.lnid-database-time::before { content: "\f0ed7"; } +.lnid-database-time::after { content: "\f0ed6"; } +.lnid-database-trash::before { content: "\f0ed9"; } +.lnid-database-trash::after { content: "\f0ed8"; } +.lnid-database-user::before { content: "\f0edb"; } +.lnid-database-user::after { content: "\f0eda"; } +.lnid-database-video::before { content: "\f0edd"; } +.lnid-database-video::after { content: "\f0edc"; } +.lnid-database-wifi::before { content: "\f0edf"; } +.lnid-database-wifi::after { content: "\f0ede"; } +.lnid-database-xmark-circle::before { content: "\f0ee1"; } +.lnid-database-xmark-circle::after { content: "\f0ee0"; } +.lnid-decagram-bulb::before { content: "\f0ee3"; } +.lnid-decagram-bulb::after { content: "\f0ee2"; } +.lnid-deployment-laptop::before { content: "\f0ee5"; } +.lnid-deployment-laptop::after { content: "\f0ee4"; } +.lnid-deployment-pc::before { content: "\f0ee7"; } +.lnid-deployment-pc::after { content: "\f0ee6"; } +.lnid-desert-1::before { content: "\f0ee9"; } +.lnid-desert-1::after { content: "\f0ee8"; } +.lnid-desert-2::before { content: "\f0eeb"; } +.lnid-desert-2::after { content: "\f0eea"; } +.lnid-desert-3::before { content: "\f0eed"; } +.lnid-desert-3::after { content: "\f0eec"; } +.lnid-desert-4::before { content: "\f0eef"; } +.lnid-desert-4::after { content: "\f0eee"; } +.lnid-desert-5::before { content: "\f0ef1"; } +.lnid-desert-5::after { content: "\f0ef0"; } +.lnid-desert-6::before { content: "\f0ef3"; } +.lnid-desert-6::after { content: "\f0ef2"; } +.lnid-device-beat::before { content: "\f0ef5"; } +.lnid-device-beat::after { content: "\f0ef4"; } +.lnid-device-plus::before { content: "\f0ef7"; } +.lnid-device-plus::after { content: "\f0ef6"; } +.lnid-dial::before { content: "\f0efd"; } +.lnid-dial::after { content: "\f0efc"; } +.lnid-dial-max::before { content: "\f0ef9"; } +.lnid-dial-max::after { content: "\f0ef8"; } +.lnid-dial-med::before { content: "\f0efb"; } +.lnid-dial-med::after { content: "\f0efa"; } +.lnid-diamond-aeroplane-1::before { content: "\f0eff"; } +.lnid-diamond-aeroplane-1::after { content: "\f0efe"; } +.lnid-diamond-aeroplane-2::before { content: "\f0f01"; } +.lnid-diamond-aeroplane-2::after { content: "\f0f00"; } +.lnid-diamond-arrow-both-direction-horizontal::before { content: "\f0f03"; } +.lnid-diamond-arrow-both-direction-horizontal::after { content: "\f0f02"; } +.lnid-diamond-arrow-both-direction-vertical::before { content: "\f0f05"; } +.lnid-diamond-arrow-both-direction-vertical::after { content: "\f0f04"; } +.lnid-diamond-arrow-left::before { content: "\f0f07"; } +.lnid-diamond-arrow-left::after { content: "\f0f06"; } +.lnid-diamond-arrow-right::before { content: "\f0f09"; } +.lnid-diamond-arrow-right::after { content: "\f0f08"; } +.lnid-diamond-arrow-upward::before { content: "\f0f0b"; } +.lnid-diamond-arrow-upward::after { content: "\f0f0a"; } +.lnid-diamond-bolt::before { content: "\f0f0d"; } +.lnid-diamond-bolt::after { content: "\f0f0c"; } +.lnid-diamond-check::before { content: "\f0f0f"; } +.lnid-diamond-check::after { content: "\f0f0e"; } +.lnid-diamond-curve-left::before { content: "\f0f11"; } +.lnid-diamond-curve-left::after { content: "\f0f10"; } +.lnid-diamond-curve-right::before { content: "\f0f13"; } +.lnid-diamond-curve-right::after { content: "\f0f12"; } +.lnid-diamond-entering-left::before { content: "\f0f15"; } +.lnid-diamond-entering-left::after { content: "\f0f14"; } +.lnid-diamond-entering-right::before { content: "\f0f17"; } +.lnid-diamond-entering-right::after { content: "\f0f16"; } +.lnid-diamond-error::before { content: "\f0f19"; } +.lnid-diamond-error::after { content: "\f0f18"; } +.lnid-diamond-fire::before { content: "\f0f1b"; } +.lnid-diamond-fire::after { content: "\f0f1a"; } +.lnid-diamond-heart::before { content: "\f0f1d"; } +.lnid-diamond-heart::after { content: "\f0f1c"; } +.lnid-diamond-info::before { content: "\f0f1f"; } +.lnid-diamond-info::after { content: "\f0f1e"; } +.lnid-diamond-intersection-curve-left::before { content: "\f0f21"; } +.lnid-diamond-intersection-curve-left::after { content: "\f0f20"; } +.lnid-diamond-intersection-curve-right::before { content: "\f0f23"; } +.lnid-diamond-intersection-curve-right::after { content: "\f0f22"; } +.lnid-diamond-left-downward::before { content: "\f0f25"; } +.lnid-diamond-left-downward::after { content: "\f0f24"; } +.lnid-diamond-list::before { content: "\f0f27"; } +.lnid-diamond-list::after { content: "\f0f26"; } +.lnid-diamond-locked::before { content: "\f0f29"; } +.lnid-diamond-locked::after { content: "\f0f28"; } +.lnid-diamond-moon::before { content: "\f0f2b"; } +.lnid-diamond-moon::after { content: "\f0f2a"; } +.lnid-diamond-no-entry::before { content: "\f0f2d"; } +.lnid-diamond-no-entry::after { content: "\f0f2c"; } +.lnid-diamond-question::before { content: "\f0f2f"; } +.lnid-diamond-question::after { content: "\f0f2e"; } +.lnid-diamond-redo::before { content: "\f0f31"; } +.lnid-diamond-redo::after { content: "\f0f30"; } +.lnid-diamond-refresh::before { content: "\f0f33"; } +.lnid-diamond-refresh::after { content: "\f0f32"; } +.lnid-diamond-right-downward::before { content: "\f0f35"; } +.lnid-diamond-right-downward::after { content: "\f0f34"; } +.lnid-diamond-sharp-left-curve::before { content: "\f0f37"; } +.lnid-diamond-sharp-left-curve::after { content: "\f0f36"; } +.lnid-diamond-sharp-right-curve::before { content: "\f0f39"; } +.lnid-diamond-sharp-right-curve::after { content: "\f0f38"; } +.lnid-diamond-sun::before { content: "\f0f3b"; } +.lnid-diamond-sun::after { content: "\f0f3a"; } +.lnid-diamond-turn-left::before { content: "\f0f3d"; } +.lnid-diamond-turn-left::after { content: "\f0f3c"; } +.lnid-diamond-turn-right::before { content: "\f0f3f"; } +.lnid-diamond-turn-right::after { content: "\f0f3e"; } +.lnid-diamond-two-way::before { content: "\f0f41"; } +.lnid-diamond-two-way::after { content: "\f0f40"; } +.lnid-diamond-u-tern-left::before { content: "\f0f43"; } +.lnid-diamond-u-tern-left::after { content: "\f0f42"; } +.lnid-diamond-u-tern-right::before { content: "\f0f45"; } +.lnid-diamond-u-tern-right::after { content: "\f0f44"; } +.lnid-diamond-undo::before { content: "\f0f47"; } +.lnid-diamond-undo::after { content: "\f0f46"; } +.lnid-diamond-xmark::before { content: "\f0f49"; } +.lnid-diamond-xmark::after { content: "\f0f48"; } +.lnid-diamonds-1::before { content: "\f0f4b"; } +.lnid-diamonds-1::after { content: "\f0f4a"; } +.lnid-diamonds-2::before { content: "\f0f4d"; } +.lnid-diamonds-2::after { content: "\f0f4c"; } +.lnid-direction-ltr::before { content: "\f0f4f"; } +.lnid-direction-ltr::after { content: "\f0f4e"; } +.lnid-direction-north::before { content: "\f0f51"; } +.lnid-direction-north::after { content: "\f0f50"; } +.lnid-direction-rtl::before { content: "\f0f53"; } +.lnid-direction-rtl::after { content: "\f0f52"; } +.lnid-dish-ai-1::before { content: "\f0f55"; } +.lnid-dish-ai-1::after { content: "\f0f54"; } +.lnid-dish-ai-2::before { content: "\f0f57"; } +.lnid-dish-ai-2::after { content: "\f0f56"; } +.lnid-disk-heart::before { content: "\f0f59"; } +.lnid-disk-heart::after { content: "\f0f58"; } +.lnid-dna-1::before { content: "\f0f5b"; } +.lnid-dna-1::after { content: "\f0f5a"; } +.lnid-dna-2::before { content: "\f0f5d"; } +.lnid-dna-2::after { content: "\f0f5c"; } +.lnid-dna-3::before { content: "\f0f5f"; } +.lnid-dna-3::after { content: "\f0f5e"; } +.lnid-dna-ai::before { content: "\f0f61"; } +.lnid-dna-ai::after { content: "\f0f60"; } +.lnid-document-bulb::before { content: "\f0f63"; } +.lnid-document-bulb::after { content: "\f0f62"; } +.lnid-dog::before { content: "\f0f65"; } +.lnid-dog::after { content: "\f0f64"; } +.lnid-dogecoin::before { content: "\f0f69"; } +.lnid-dogecoin::after { content: "\f0f68"; } +.lnid-dogecoin-ai::before { content: "\f0f67"; } +.lnid-dogecoin-ai::after { content: "\f0f66"; } +.lnid-dollar::before { content: "\f0f87"; } +.lnid-dollar::after { content: "\f0f86"; } +.lnid-dollar-ai::before { content: "\f0f6b"; } +.lnid-dollar-ai::after { content: "\f0f6a"; } +.lnid-dollar-arrow-downward::before { content: "\f0f6d"; } +.lnid-dollar-arrow-downward::after { content: "\f0f6c"; } +.lnid-dollar-arrow-up::before { content: "\f0f6f"; } +.lnid-dollar-arrow-up::after { content: "\f0f6e"; } +.lnid-dollar-arrow-upward::before { content: "\f0f71"; } +.lnid-dollar-arrow-upward::after { content: "\f0f70"; } +.lnid-dollar-circle::before { content: "\f0f73"; } +.lnid-dollar-circle::after { content: "\f0f72"; } +.lnid-dollar-clock::before { content: "\f0f75"; } +.lnid-dollar-clock::after { content: "\f0f74"; } +.lnid-dollar-coins::before { content: "\f0f77"; } +.lnid-dollar-coins::after { content: "\f0f76"; } +.lnid-dollar-connect::before { content: "\f0f79"; } +.lnid-dollar-connect::after { content: "\f0f78"; } +.lnid-dollar-gift::before { content: "\f0f7b"; } +.lnid-dollar-gift::after { content: "\f0f7a"; } +.lnid-dollar-hexagon::before { content: "\f0f7d"; } +.lnid-dollar-hexagon::after { content: "\f0f7c"; } +.lnid-dollar-octagon::before { content: "\f0f7f"; } +.lnid-dollar-octagon::after { content: "\f0f7e"; } +.lnid-dollar-square::before { content: "\f0f81"; } +.lnid-dollar-square::after { content: "\f0f80"; } +.lnid-dollar-trend-down::before { content: "\f0f83"; } +.lnid-dollar-trend-down::after { content: "\f0f82"; } +.lnid-dollar-trend-up::before { content: "\f0f85"; } +.lnid-dollar-trend-up::after { content: "\f0f84"; } +.lnid-dolphin::before { content: "\f0f89"; } +.lnid-dolphin::after { content: "\f0f88"; } +.lnid-donut::before { content: "\f0f8b"; } +.lnid-donut::after { content: "\f0f8a"; } +.lnid-door-1::before { content: "\f0f8d"; } +.lnid-door-1::after { content: "\f0f8c"; } +.lnid-door-2::before { content: "\f0f8f"; } +.lnid-door-2::after { content: "\f0f8e"; } +.lnid-door-3::before { content: "\f0f91"; } +.lnid-door-3::after { content: "\f0f90"; } +.lnid-door-ai-1::before { content: "\f0f93"; } +.lnid-door-ai-1::after { content: "\f0f92"; } +.lnid-door-ai-2::before { content: "\f0f95"; } +.lnid-door-ai-2::after { content: "\f0f94"; } +.lnid-door-ai-3::before { content: "\f0f97"; } +.lnid-door-ai-3::after { content: "\f0f96"; } +.lnid-door-hanger::before { content: "\f0f9b"; } +.lnid-door-hanger::after { content: "\f0f9a"; } +.lnid-door-hanger-heart::before { content: "\f0f99"; } +.lnid-door-hanger-heart::after { content: "\f0f98"; } +.lnid-double-quotes-end-1::before { content: "\f0f9d"; } +.lnid-double-quotes-end-1::after { content: "\f0f9c"; } +.lnid-double-quotes-end-2::before { content: "\f0f9f"; } +.lnid-double-quotes-end-2::after { content: "\f0f9e"; } +.lnid-double-quotes-end-circle-1::before { content: "\f0fa1"; } +.lnid-double-quotes-end-circle-1::after { content: "\f0fa0"; } +.lnid-double-quotes-end-circle-2::before { content: "\f0fa3"; } +.lnid-double-quotes-end-circle-2::after { content: "\f0fa2"; } +.lnid-double-quotes-start-1::before { content: "\f0fa5"; } +.lnid-double-quotes-start-1::after { content: "\f0fa4"; } +.lnid-double-quotes-start-2::before { content: "\f0fa7"; } +.lnid-double-quotes-start-2::after { content: "\f0fa6"; } +.lnid-double-quotes-start-circle-1::before { content: "\f0fa9"; } +.lnid-double-quotes-start-circle-1::after { content: "\f0fa8"; } +.lnid-double-quotes-start-circle-2::before { content: "\f0fab"; } +.lnid-double-quotes-start-circle-2::after { content: "\f0faa"; } +.lnid-dove::before { content: "\f0fad"; } +.lnid-dove::after { content: "\f0fac"; } +.lnid-download-1::before { content: "\f0fb1"; } +.lnid-download-1::after { content: "\f0fb0"; } +.lnid-download-1-disabled::before { content: "\f0faf"; } +.lnid-download-1-disabled::after { content: "\f0fae"; } +.lnid-download-2::before { content: "\f0fb5"; } +.lnid-download-2::after { content: "\f0fb4"; } +.lnid-download-2-disabled::before { content: "\f0fb3"; } +.lnid-download-2-disabled::after { content: "\f0fb2"; } +.lnid-download-3::before { content: "\f0fb9"; } +.lnid-download-3::after { content: "\f0fb8"; } +.lnid-download-3-disabled::before { content: "\f0fb7"; } +.lnid-download-3-disabled::after { content: "\f0fb6"; } +.lnid-download-4::before { content: "\f0fbd"; } +.lnid-download-4::after { content: "\f0fbc"; } +.lnid-download-4-disabled::before { content: "\f0fbb"; } +.lnid-download-4-disabled::after { content: "\f0fba"; } +.lnid-download-5::before { content: "\f0fc1"; } +.lnid-download-5::after { content: "\f0fc0"; } +.lnid-download-5-disabled::before { content: "\f0fbf"; } +.lnid-download-5-disabled::after { content: "\f0fbe"; } +.lnid-download-6::before { content: "\f0fc5"; } +.lnid-download-6::after { content: "\f0fc4"; } +.lnid-download-6-disabled::before { content: "\f0fc3"; } +.lnid-download-6-disabled::after { content: "\f0fc2"; } +.lnid-download-7::before { content: "\f0fc9"; } +.lnid-download-7::after { content: "\f0fc8"; } +.lnid-download-7-disabled::before { content: "\f0fc7"; } +.lnid-download-7-disabled::after { content: "\f0fc6"; } +.lnid-download-8::before { content: "\f0fcd"; } +.lnid-download-8::after { content: "\f0fcc"; } +.lnid-download-8-disabled::before { content: "\f0fcb"; } +.lnid-download-8-disabled::after { content: "\f0fca"; } +.lnid-download-circle-1::before { content: "\f0fcf"; } +.lnid-download-circle-1::after { content: "\f0fce"; } +.lnid-download-circle-2::before { content: "\f0fd1"; } +.lnid-download-circle-2::after { content: "\f0fd0"; } +.lnid-download-cloud::before { content: "\f0fd3"; } +.lnid-download-cloud::after { content: "\f0fd2"; } +.lnid-download-half-circle-1::before { content: "\f0fd5"; } +.lnid-download-half-circle-1::after { content: "\f0fd4"; } +.lnid-download-half-circle-2::before { content: "\f0fd7"; } +.lnid-download-half-circle-2::after { content: "\f0fd6"; } +.lnid-download-rechtangle::before { content: "\f0fd9"; } +.lnid-download-rechtangle::after { content: "\f0fd8"; } +.lnid-download-square-1::before { content: "\f0fdb"; } +.lnid-download-square-1::after { content: "\f0fda"; } +.lnid-download-square-2::before { content: "\f0fdd"; } +.lnid-download-square-2::after { content: "\f0fdc"; } +.lnid-downloading::before { content: "\f0fdf"; } +.lnid-downloading::after { content: "\f0fde"; } +.lnid-dress-1::before { content: "\f0fe1"; } +.lnid-dress-1::after { content: "\f0fe0"; } +.lnid-dress-2::before { content: "\f0fe3"; } +.lnid-dress-2::after { content: "\f0fe2"; } +.lnid-dress-3::before { content: "\f0fe5"; } +.lnid-dress-3::after { content: "\f0fe4"; } +.lnid-dress-4::before { content: "\f0fe7"; } +.lnid-dress-4::after { content: "\f0fe6"; } +.lnid-dress-5::before { content: "\f0fe9"; } +.lnid-dress-5::after { content: "\f0fe8"; } +.lnid-drill::before { content: "\f0feb"; } +.lnid-drill::after { content: "\f0fea"; } +.lnid-drilling::before { content: "\f0fed"; } +.lnid-drilling::after { content: "\f0fec"; } +.lnid-drone::before { content: "\f0fef"; } +.lnid-drone::after { content: "\f0fee"; } +.lnid-dropper-1::before { content: "\f0ff1"; } +.lnid-dropper-1::after { content: "\f0ff0"; } +.lnid-dropper-2::before { content: "\f0ff3"; } +.lnid-dropper-2::after { content: "\f0ff2"; } +.lnid-dropper-3::before { content: "\f0ff5"; } +.lnid-dropper-3::after { content: "\f0ff4"; } +.lnid-dropper-4::before { content: "\f0ff7"; } +.lnid-dropper-4::after { content: "\f0ff6"; } +.lnid-dual-sim::before { content: "\f0ffb"; } +.lnid-dual-sim::after { content: "\f0ffa"; } +.lnid-dual-sim-disabled::before { content: "\f0ff9"; } +.lnid-dual-sim-disabled::after { content: "\f0ff8"; } +.lnid-duck::before { content: "\f0ffd"; } +.lnid-duck::after { content: "\f0ffc"; } +.lnid-dumbbell-1::before { content: "\f0fff"; } +.lnid-dumbbell-1::after { content: "\f0ffe"; } +.lnid-dumbbell-2::before { content: "\f1001"; } +.lnid-dumbbell-2::after { content: "\f1000"; } +.lnid-dumbbells::before { content: "\f1003"; } +.lnid-dumbbells::after { content: "\f1002"; } +.lnid-earthquake::before { content: "\f1005"; } +.lnid-earthquake::after { content: "\f1004"; } +.lnid-ebook::before { content: "\f1007"; } +.lnid-ebook::after { content: "\f1006"; } +.lnid-egg::before { content: "\f1009"; } +.lnid-egg::after { content: "\f1008"; } +.lnid-eiffel-tower::before { content: "\f100b"; } +.lnid-eiffel-tower::after { content: "\f100a"; } +.lnid-elephant-1::before { content: "\f100d"; } +.lnid-elephant-1::after { content: "\f100c"; } +.lnid-elephant-2::before { content: "\f100f"; } +.lnid-elephant-2::after { content: "\f100e"; } +.lnid-elephant-3::before { content: "\f1011"; } +.lnid-elephant-3::after { content: "\f1010"; } +.lnid-emoj-diagonal-mouth::before { content: "\f1015"; } +.lnid-emoj-diagonal-mouth::after { content: "\f1014"; } +.lnid-emoj-diagonal-mouth-curved::before { content: "\f1013"; } +.lnid-emoj-diagonal-mouth-curved::after { content: "\f1012"; } +.lnid-emoji-angry::before { content: "\f1025"; } +.lnid-emoji-angry::after { content: "\f1024"; } +.lnid-emoji-angry-anguished::before { content: "\f1019"; } +.lnid-emoji-angry-anguished::after { content: "\f1018"; } +.lnid-emoji-angry-anguished-horns::before { content: "\f1017"; } +.lnid-emoji-angry-anguished-horns::after { content: "\f1016"; } +.lnid-emoji-angry-confounded::before { content: "\f101b"; } +.lnid-emoji-angry-confounded::after { content: "\f101a"; } +.lnid-emoji-angry-horns::before { content: "\f101d"; } +.lnid-emoji-angry-horns::after { content: "\f101c"; } +.lnid-emoji-angry-nose-steam::before { content: "\f101f"; } +.lnid-emoji-angry-nose-steam::after { content: "\f101e"; } +.lnid-emoji-angry-smile::before { content: "\f1021"; } +.lnid-emoji-angry-smile::after { content: "\f1020"; } +.lnid-emoji-angry-swear::before { content: "\f1023"; } +.lnid-emoji-angry-swear::after { content: "\f1022"; } +.lnid-emoji-beam-hand-over-mouth::before { content: "\f1027"; } +.lnid-emoji-beam-hand-over-mouth::after { content: "\f1026"; } +.lnid-emoji-clouds::before { content: "\f1029"; } +.lnid-emoji-clouds::after { content: "\f1028"; } +.lnid-emoji-confounded-eyes-closed::before { content: "\f102b"; } +.lnid-emoji-confounded-eyes-closed::after { content: "\f102a"; } +.lnid-emoji-confounded-squint::before { content: "\f102d"; } +.lnid-emoji-confounded-squint::after { content: "\f102c"; } +.lnid-emoji-crying-1::before { content: "\f102f"; } +.lnid-emoji-crying-1::after { content: "\f102e"; } +.lnid-emoji-crying-2::before { content: "\f1031"; } +.lnid-emoji-crying-2::after { content: "\f1030"; } +.lnid-emoji-disguise::before { content: "\f1033"; } +.lnid-emoji-disguise::after { content: "\f1032"; } +.lnid-emoji-dizzy::before { content: "\f1035"; } +.lnid-emoji-dizzy::after { content: "\f1034"; } +.lnid-emoji-drooling::before { content: "\f1037"; } +.lnid-emoji-drooling::after { content: "\f1036"; } +.lnid-emoji-exhaling::before { content: "\f1039"; } +.lnid-emoji-exhaling::after { content: "\f1038"; } +.lnid-emoji-explode::before { content: "\f103b"; } +.lnid-emoji-explode::after { content: "\f103a"; } +.lnid-emoji-expressionless::before { content: "\f1041"; } +.lnid-emoji-expressionless::after { content: "\f1040"; } +.lnid-emoji-expressionless-dashed-line::before { content: "\f103d"; } +.lnid-emoji-expressionless-dashed-line::after { content: "\f103c"; } +.lnid-emoji-expressionless-flat-eyes::before { content: "\f103f"; } +.lnid-emoji-expressionless-flat-eyes::after { content: "\f103e"; } +.lnid-emoji-face-mask::before { content: "\f1043"; } +.lnid-emoji-face-mask::after { content: "\f1042"; } +.lnid-emoji-grin::before { content: "\f106b"; } +.lnid-emoji-grin::after { content: "\f106a"; } +.lnid-emoji-grin-2::before { content: "\f104d"; } +.lnid-emoji-grin-2::after { content: "\f104c"; } +.lnid-emoji-grin-2-large-eyes::before { content: "\f1045"; } +.lnid-emoji-grin-2-large-eyes::after { content: "\f1044"; } +.lnid-emoji-grin-2-relaxed::before { content: "\f1047"; } +.lnid-emoji-grin-2-relaxed::after { content: "\f1046"; } +.lnid-emoji-grin-2-star::before { content: "\f1049"; } +.lnid-emoji-grin-2-star::after { content: "\f1048"; } +.lnid-emoji-grin-2-wink::before { content: "\f104b"; } +.lnid-emoji-grin-2-wink::after { content: "\f104a"; } +.lnid-emoji-grin-angry-1::before { content: "\f104f"; } +.lnid-emoji-grin-angry-1::after { content: "\f104e"; } +.lnid-emoji-grin-angry-2::before { content: "\f1051"; } +.lnid-emoji-grin-angry-2::after { content: "\f1050"; } +.lnid-emoji-grin-angry-horns::before { content: "\f1053"; } +.lnid-emoji-grin-angry-horns::after { content: "\f1052"; } +.lnid-emoji-grin-beam::before { content: "\f1057"; } +.lnid-emoji-grin-beam::after { content: "\f1056"; } +.lnid-emoji-grin-beam-sweat::before { content: "\f1055"; } +.lnid-emoji-grin-beam-sweat::after { content: "\f1054"; } +.lnid-emoji-grin-eyes-heart::before { content: "\f1059"; } +.lnid-emoji-grin-eyes-heart::after { content: "\f1058"; } +.lnid-emoji-grin-eyes-xmark::before { content: "\f105b"; } +.lnid-emoji-grin-eyes-xmark::after { content: "\f105a"; } +.lnid-emoji-grin-large-eyes-1::before { content: "\f105d"; } +.lnid-emoji-grin-large-eyes-1::after { content: "\f105c"; } +.lnid-emoji-grin-large-eyes-2::before { content: "\f105f"; } +.lnid-emoji-grin-large-eyes-2::after { content: "\f105e"; } +.lnid-emoji-grin-squint::before { content: "\f1061"; } +.lnid-emoji-grin-squint::after { content: "\f1060"; } +.lnid-emoji-grin-tears-squint::before { content: "\f1065"; } +.lnid-emoji-grin-tears-squint::after { content: "\f1064"; } +.lnid-emoji-grin-tears-squint-rotated::before { content: "\f1063"; } +.lnid-emoji-grin-tears-squint-rotated::after { content: "\f1062"; } +.lnid-emoji-grin-wink-1::before { content: "\f1067"; } +.lnid-emoji-grin-wink-1::after { content: "\f1066"; } +.lnid-emoji-grin-wink-2::before { content: "\f1069"; } +.lnid-emoji-grin-wink-2::after { content: "\f1068"; } +.lnid-emoji-hand-over-mouth::before { content: "\f106d"; } +.lnid-emoji-hand-over-mouth::after { content: "\f106c"; } +.lnid-emoji-hat::before { content: "\f106f"; } +.lnid-emoji-hat::after { content: "\f106e"; } +.lnid-emoji-head-bandage::before { content: "\f1071"; } +.lnid-emoji-head-bandage::after { content: "\f1070"; } +.lnid-emoji-judging::before { content: "\f1073"; } +.lnid-emoji-judging::after { content: "\f1072"; } +.lnid-emoji-kiss::before { content: "\f1079"; } +.lnid-emoji-kiss::after { content: "\f1078"; } +.lnid-emoji-kiss-eyes-closed::before { content: "\f1077"; } +.lnid-emoji-kiss-eyes-closed::after { content: "\f1076"; } +.lnid-emoji-kiss-eyes-closed-heart::before { content: "\f1075"; } +.lnid-emoji-kiss-eyes-closed-heart::after { content: "\f1074"; } +.lnid-emoji-long-nose::before { content: "\f107b"; } +.lnid-emoji-long-nose::after { content: "\f107a"; } +.lnid-emoji-meh-blank::before { content: "\f107f"; } +.lnid-emoji-meh-blank::after { content: "\f107e"; } +.lnid-emoji-meh-blank-large-eyes::before { content: "\f107d"; } +.lnid-emoji-meh-blank-large-eyes::after { content: "\f107c"; } +.lnid-emoji-meh-large-eyes::before { content: "\f1081"; } +.lnid-emoji-meh-large-eyes::after { content: "\f1080"; } +.lnid-emoji-meh-rolling-eyes::before { content: "\f1083"; } +.lnid-emoji-meh-rolling-eyes::after { content: "\f1082"; } +.lnid-emoji-melting::before { content: "\f1085"; } +.lnid-emoji-melting::after { content: "\f1084"; } +.lnid-emoji-monocle::before { content: "\f1087"; } +.lnid-emoji-monocle::after { content: "\f1086"; } +.lnid-emoji-mouth-sewed::before { content: "\f1089"; } +.lnid-emoji-mouth-sewed::after { content: "\f1088"; } +.lnid-emoji-mouth-xmark::before { content: "\f108d"; } +.lnid-emoji-mouth-xmark::after { content: "\f108c"; } +.lnid-emoji-mouth-xmark-eyes-closed::before { content: "\f108b"; } +.lnid-emoji-mouth-xmark-eyes-closed::after { content: "\f108a"; } +.lnid-emoji-mouth-zip::before { content: "\f108f"; } +.lnid-emoji-mouth-zip::after { content: "\f108e"; } +.lnid-emoji-nauseated::before { content: "\f1093"; } +.lnid-emoji-nauseated::after { content: "\f1092"; } +.lnid-emoji-nauseated-eye-brows::before { content: "\f1091"; } +.lnid-emoji-nauseated-eye-brows::after { content: "\f1090"; } +.lnid-emoji-party::before { content: "\f1095"; } +.lnid-emoji-party::after { content: "\f1094"; } +.lnid-emoji-pensive::before { content: "\f1097"; } +.lnid-emoji-pensive::after { content: "\f1096"; } +.lnid-emoji-pouting::before { content: "\f109f"; } +.lnid-emoji-pouting::after { content: "\f109e"; } +.lnid-emoji-pouting-large-eyes::before { content: "\f1099"; } +.lnid-emoji-pouting-large-eyes::after { content: "\f1098"; } +.lnid-emoji-pouting-open-eye-brows::before { content: "\f109b"; } +.lnid-emoji-pouting-open-eye-brows::after { content: "\f109a"; } +.lnid-emoji-pouting-open-sweat::before { content: "\f109d"; } +.lnid-emoji-pouting-open-sweat::after { content: "\f109c"; } +.lnid-emoji-sad::before { content: "\f10ad"; } +.lnid-emoji-sad::after { content: "\f10ac"; } +.lnid-emoji-sad-large-eyes-eye-brows::before { content: "\f10a1"; } +.lnid-emoji-sad-large-eyes-eye-brows::after { content: "\f10a0"; } +.lnid-emoji-sad-squint-1::before { content: "\f10a3"; } +.lnid-emoji-sad-squint-1::after { content: "\f10a2"; } +.lnid-emoji-sad-squint-2::before { content: "\f10a5"; } +.lnid-emoji-sad-squint-2::after { content: "\f10a4"; } +.lnid-emoji-sad-sweat-eye-brows::before { content: "\f10a7"; } +.lnid-emoji-sad-sweat-eye-brows::after { content: "\f10a6"; } +.lnid-emoji-sad-sweat-eyes-flat::before { content: "\f10a9"; } +.lnid-emoji-sad-sweat-eyes-flat::after { content: "\f10a8"; } +.lnid-emoji-sad-xmark-eyes::before { content: "\f10ab"; } +.lnid-emoji-sad-xmark-eyes::after { content: "\f10aa"; } +.lnid-emoji-saluting::before { content: "\f10af"; } +.lnid-emoji-saluting::after { content: "\f10ae"; } +.lnid-emoji-scream::before { content: "\f10b1"; } +.lnid-emoji-scream::after { content: "\f10b0"; } +.lnid-emoji-shush::before { content: "\f10b3"; } +.lnid-emoji-shush::after { content: "\f10b2"; } +.lnid-emoji-sick-thermometer::before { content: "\f10b5"; } +.lnid-emoji-sick-thermometer::after { content: "\f10b4"; } +.lnid-emoji-sleepy::before { content: "\f10b7"; } +.lnid-emoji-sleepy::after { content: "\f10b6"; } +.lnid-emoji-smile::before { content: "\f10e1"; } +.lnid-emoji-smile::after { content: "\f10e0"; } +.lnid-emoji-smile-ai::before { content: "\f10b9"; } +.lnid-emoji-smile-ai::after { content: "\f10b8"; } +.lnid-emoji-smile-glasses::before { content: "\f10bf"; } +.lnid-emoji-smile-glasses::after { content: "\f10be"; } +.lnid-emoji-smile-glasses-eyes::before { content: "\f10bd"; } +.lnid-emoji-smile-glasses-eyes::after { content: "\f10bc"; } +.lnid-emoji-smile-glasses-eyes-teeth::before { content: "\f10bb"; } +.lnid-emoji-smile-glasses-eyes-teeth::after { content: "\f10ba"; } +.lnid-emoji-smile-halo::before { content: "\f10c1"; } +.lnid-emoji-smile-halo::after { content: "\f10c0"; } +.lnid-emoji-smile-hands::before { content: "\f10c3"; } +.lnid-emoji-smile-hands::after { content: "\f10c2"; } +.lnid-emoji-smile-heart-eyes::before { content: "\f10c5"; } +.lnid-emoji-smile-heart-eyes::after { content: "\f10c4"; } +.lnid-emoji-smile-hearts::before { content: "\f10c7"; } +.lnid-emoji-smile-hearts::after { content: "\f10c6"; } +.lnid-emoji-smile-large-eyes-tears::before { content: "\f10c9"; } +.lnid-emoji-smile-large-eyes-tears::after { content: "\f10c8"; } +.lnid-emoji-smile-relaxed::before { content: "\f10d1"; } +.lnid-emoji-smile-relaxed::after { content: "\f10d0"; } +.lnid-emoji-smile-relaxed-eyebrows::before { content: "\f10cb"; } +.lnid-emoji-smile-relaxed-eyebrows::after { content: "\f10ca"; } +.lnid-emoji-smile-relaxed-happy::before { content: "\f10cd"; } +.lnid-emoji-smile-relaxed-happy::after { content: "\f10cc"; } +.lnid-emoji-smile-relaxed-mouth-open::before { content: "\f10cf"; } +.lnid-emoji-smile-relaxed-mouth-open::after { content: "\f10ce"; } +.lnid-emoji-smile-side::before { content: "\f10d5"; } +.lnid-emoji-smile-side::after { content: "\f10d4"; } +.lnid-emoji-smile-side-eyes-closed::before { content: "\f10d3"; } +.lnid-emoji-smile-side-eyes-closed::after { content: "\f10d2"; } +.lnid-emoji-smile-sunglass::before { content: "\f10d7"; } +.lnid-emoji-smile-sunglass::after { content: "\f10d6"; } +.lnid-emoji-smile-tear::before { content: "\f10d9"; } +.lnid-emoji-smile-tear::after { content: "\f10d8"; } +.lnid-emoji-smile-tongue::before { content: "\f10db"; } +.lnid-emoji-smile-tongue::after { content: "\f10da"; } +.lnid-emoji-smile-upside-down::before { content: "\f10dd"; } +.lnid-emoji-smile-upside-down::after { content: "\f10dc"; } +.lnid-emoji-smile-wink::before { content: "\f10df"; } +.lnid-emoji-smile-wink::after { content: "\f10de"; } +.lnid-emoji-smirking::before { content: "\f10e5"; } +.lnid-emoji-smirking::after { content: "\f10e4"; } +.lnid-emoji-smirking-sad::before { content: "\f10e3"; } +.lnid-emoji-smirking-sad::after { content: "\f10e2"; } +.lnid-emoji-spiral-eyes::before { content: "\f10e7"; } +.lnid-emoji-spiral-eyes::after { content: "\f10e6"; } +.lnid-emoji-surprised::before { content: "\f10eb"; } +.lnid-emoji-surprised::after { content: "\f10ea"; } +.lnid-emoji-surprised-eye-brows::before { content: "\f10e9"; } +.lnid-emoji-surprised-eye-brows::after { content: "\f10e8"; } +.lnid-emoji-thinking::before { content: "\f10ed"; } +.lnid-emoji-thinking::after { content: "\f10ec"; } +.lnid-emoji-tired::before { content: "\f10ef"; } +.lnid-emoji-tired::after { content: "\f10ee"; } +.lnid-emoji-tissue::before { content: "\f10f1"; } +.lnid-emoji-tissue::after { content: "\f10f0"; } +.lnid-emoji-tongue::before { content: "\f10fd"; } +.lnid-emoji-tongue::after { content: "\f10fc"; } +.lnid-emoji-tongue-dollar::before { content: "\f10f3"; } +.lnid-emoji-tongue-dollar::after { content: "\f10f2"; } +.lnid-emoji-tongue-large-eyes::before { content: "\f10f5"; } +.lnid-emoji-tongue-large-eyes::after { content: "\f10f4"; } +.lnid-emoji-tongue-sweat::before { content: "\f10f7"; } +.lnid-emoji-tongue-sweat::after { content: "\f10f6"; } +.lnid-emoji-tongue-wink::before { content: "\f10fb"; } +.lnid-emoji-tongue-wink::after { content: "\f10fa"; } +.lnid-emoji-tongue-wink-large-eyes::before { content: "\f10f9"; } +.lnid-emoji-tongue-wink-large-eyes::after { content: "\f10f8"; } +.lnid-emoji-vomit::before { content: "\f10ff"; } +.lnid-emoji-vomit::after { content: "\f10fe"; } +.lnid-emoji-weary::before { content: "\f110b"; } +.lnid-emoji-weary::after { content: "\f110a"; } +.lnid-emoji-weary-eyes-closed::before { content: "\f1103"; } +.lnid-emoji-weary-eyes-closed::after { content: "\f1102"; } +.lnid-emoji-weary-eyes-closed-tears::before { content: "\f1101"; } +.lnid-emoji-weary-eyes-closed-tears::after { content: "\f1100"; } +.lnid-emoji-weary-sweat::before { content: "\f1107"; } +.lnid-emoji-weary-sweat::after { content: "\f1106"; } +.lnid-emoji-weary-sweat-eye-brows::before { content: "\f1105"; } +.lnid-emoji-weary-sweat-eye-brows::after { content: "\f1104"; } +.lnid-emoji-weary-wink-eye-brows::before { content: "\f1109"; } +.lnid-emoji-weary-wink-eye-brows::after { content: "\f1108"; } +.lnid-emoji-woozy::before { content: "\f110d"; } +.lnid-emoji-woozy::after { content: "\f110c"; } +.lnid-emoji-zany::before { content: "\f110f"; } +.lnid-emoji-zany::after { content: "\f110e"; } +.lnid-empire-state-building::before { content: "\f1111"; } +.lnid-empire-state-building::after { content: "\f1110"; } +.lnid-enter::before { content: "\f1113"; } +.lnid-enter::after { content: "\f1112"; } +.lnid-envelope-1::before { content: "\f1115"; } +.lnid-envelope-1::after { content: "\f1114"; } +.lnid-envelope-2::before { content: "\f1117"; } +.lnid-envelope-2::after { content: "\f1116"; } +.lnid-envelope-3::before { content: "\f1119"; } +.lnid-envelope-3::after { content: "\f1118"; } +.lnid-envelope-ai::before { content: "\f111b"; } +.lnid-envelope-ai::after { content: "\f111a"; } +.lnid-envelope-arrow-bottom-left::before { content: "\f111d"; } +.lnid-envelope-arrow-bottom-left::after { content: "\f111c"; } +.lnid-envelope-arrow-right::before { content: "\f111f"; } +.lnid-envelope-arrow-right::after { content: "\f111e"; } +.lnid-envelope-arrow-top-right::before { content: "\f1121"; } +.lnid-envelope-arrow-top-right::after { content: "\f1120"; } +.lnid-envelope-check-circle::before { content: "\f1123"; } +.lnid-envelope-check-circle::after { content: "\f1122"; } +.lnid-envelope-disabled::before { content: "\f1125"; } +.lnid-envelope-disabled::after { content: "\f1124"; } +.lnid-envelope-document::before { content: "\f1127"; } +.lnid-envelope-document::after { content: "\f1126"; } +.lnid-envelope-error-circle::before { content: "\f1129"; } +.lnid-envelope-error-circle::after { content: "\f1128"; } +.lnid-envelope-heart-1::before { content: "\f112b"; } +.lnid-envelope-heart-1::after { content: "\f112a"; } +.lnid-envelope-heart-2::before { content: "\f112d"; } +.lnid-envelope-heart-2::after { content: "\f112c"; } +.lnid-envelope-info-circle::before { content: "\f112f"; } +.lnid-envelope-info-circle::after { content: "\f112e"; } +.lnid-envelope-locked::before { content: "\f1131"; } +.lnid-envelope-locked::after { content: "\f1130"; } +.lnid-envelope-minus-circle::before { content: "\f1133"; } +.lnid-envelope-minus-circle::after { content: "\f1132"; } +.lnid-envelope-money::before { content: "\f1135"; } +.lnid-envelope-money::after { content: "\f1134"; } +.lnid-envelope-paperclip::before { content: "\f1137"; } +.lnid-envelope-paperclip::after { content: "\f1136"; } +.lnid-envelope-pencil::before { content: "\f1139"; } +.lnid-envelope-pencil::after { content: "\f1138"; } +.lnid-envelope-plus-circle::before { content: "\f113b"; } +.lnid-envelope-plus-circle::after { content: "\f113a"; } +.lnid-envelope-search::before { content: "\f113d"; } +.lnid-envelope-search::after { content: "\f113c"; } +.lnid-envelope-share::before { content: "\f113f"; } +.lnid-envelope-share::after { content: "\f113e"; } +.lnid-envelope-shield::before { content: "\f1141"; } +.lnid-envelope-shield::after { content: "\f1140"; } +.lnid-envelope-xmark-circle::before { content: "\f1143"; } +.lnid-envelope-xmark-circle::after { content: "\f1142"; } +.lnid-envlope-bulb::before { content: "\f1145"; } +.lnid-envlope-bulb::after { content: "\f1144"; } +.lnid-eraser-1::before { content: "\f1147"; } +.lnid-eraser-1::after { content: "\f1146"; } +.lnid-eraser-2::before { content: "\f1149"; } +.lnid-eraser-2::after { content: "\f1148"; } +.lnid-eraser-ai-1::before { content: "\f114b"; } +.lnid-eraser-ai-1::after { content: "\f114a"; } +.lnid-eraser-ai-2::before { content: "\f114d"; } +.lnid-eraser-ai-2::after { content: "\f114c"; } +.lnid-error::before { content: "\f1157"; } +.lnid-error::after { content: "\f1156"; } +.lnid-error-circle::before { content: "\f114f"; } +.lnid-error-circle::after { content: "\f114e"; } +.lnid-error-hexagon::before { content: "\f1151"; } +.lnid-error-hexagon::after { content: "\f1150"; } +.lnid-error-octagon::before { content: "\f1153"; } +.lnid-error-octagon::after { content: "\f1152"; } +.lnid-error-square::before { content: "\f1155"; } +.lnid-error-square::after { content: "\f1154"; } +.lnid-ethereum::before { content: "\f1159"; } +.lnid-ethereum::after { content: "\f1158"; } +.lnid-ethernet-1::before { content: "\f115b"; } +.lnid-ethernet-1::after { content: "\f115a"; } +.lnid-ethernet-2::before { content: "\f115d"; } +.lnid-ethernet-2::after { content: "\f115c"; } +.lnid-euro::before { content: "\f1165"; } +.lnid-euro::after { content: "\f1164"; } +.lnid-euro-circle::before { content: "\f115f"; } +.lnid-euro-circle::after { content: "\f115e"; } +.lnid-euro-trend-down::before { content: "\f1161"; } +.lnid-euro-trend-down::after { content: "\f1160"; } +.lnid-euro-trend-up::before { content: "\f1163"; } +.lnid-euro-trend-up::after { content: "\f1162"; } +.lnid-event-gate::before { content: "\f1167"; } +.lnid-event-gate::after { content: "\f1166"; } +.lnid-exclude-selection::before { content: "\f1169"; } +.lnid-exclude-selection::after { content: "\f1168"; } +.lnid-exit::before { content: "\f116f"; } +.lnid-exit::after { content: "\f116e"; } +.lnid-exit-down::before { content: "\f116b"; } +.lnid-exit-down::after { content: "\f116a"; } +.lnid-exit-up::before { content: "\f116d"; } +.lnid-exit-up::after { content: "\f116c"; } +.lnid-expand-arrow-1::before { content: "\f1173"; } +.lnid-expand-arrow-1::after { content: "\f1172"; } +.lnid-expand-arrow-10::before { content: "\f1171"; } +.lnid-expand-arrow-10::after { content: "\f1170"; } +.lnid-expand-arrow-2::before { content: "\f1175"; } +.lnid-expand-arrow-2::after { content: "\f1174"; } +.lnid-expand-arrow-3::before { content: "\f1177"; } +.lnid-expand-arrow-3::after { content: "\f1176"; } +.lnid-expand-arrow-4::before { content: "\f1179"; } +.lnid-expand-arrow-4::after { content: "\f1178"; } +.lnid-expand-arrow-5::before { content: "\f117b"; } +.lnid-expand-arrow-5::after { content: "\f117a"; } +.lnid-expand-arrow-6::before { content: "\f117d"; } +.lnid-expand-arrow-6::after { content: "\f117c"; } +.lnid-expand-arrow-7::before { content: "\f117f"; } +.lnid-expand-arrow-7::after { content: "\f117e"; } +.lnid-expand-arrow-8::before { content: "\f1181"; } +.lnid-expand-arrow-8::after { content: "\f1180"; } +.lnid-expand-arrow-9::before { content: "\f1183"; } +.lnid-expand-arrow-9::after { content: "\f1182"; } +.lnid-expand-arrow-top-right-square-1::before { content: "\f1185"; } +.lnid-expand-arrow-top-right-square-1::after { content: "\f1184"; } +.lnid-expand-arrow-top-right-square-2::before { content: "\f1187"; } +.lnid-expand-arrow-top-right-square-2::after { content: "\f1186"; } +.lnid-expand-circle::before { content: "\f1189"; } +.lnid-expand-circle::after { content: "\f1188"; } +.lnid-expand-square-1::before { content: "\f118b"; } +.lnid-expand-square-1::after { content: "\f118a"; } +.lnid-expand-square-2::before { content: "\f118d"; } +.lnid-expand-square-2::after { content: "\f118c"; } +.lnid-expand-square-3::before { content: "\f118f"; } +.lnid-expand-square-3::after { content: "\f118e"; } +.lnid-expand-square-4::before { content: "\f1191"; } +.lnid-expand-square-4::after { content: "\f1190"; } +.lnid-eye::before { content: "\f119b"; } +.lnid-eye::after { content: "\f119a"; } +.lnid-eye-check-circle::before { content: "\f1193"; } +.lnid-eye-check-circle::after { content: "\f1192"; } +.lnid-eye-closed::before { content: "\f1195"; } +.lnid-eye-closed::after { content: "\f1194"; } +.lnid-eye-disabled::before { content: "\f1197"; } +.lnid-eye-disabled::after { content: "\f1196"; } +.lnid-eye-dollar::before { content: "\f1199"; } +.lnid-eye-dollar::after { content: "\f1198"; } +.lnid-face-yawn-hand-over-mouth::before { content: "\f119d"; } +.lnid-face-yawn-hand-over-mouth::after { content: "\f119c"; } +.lnid-facewash::before { content: "\f119f"; } +.lnid-facewash::after { content: "\f119e"; } +.lnid-factory-1::before { content: "\f11a1"; } +.lnid-factory-1::after { content: "\f11a0"; } +.lnid-factory-2::before { content: "\f11a3"; } +.lnid-factory-2::after { content: "\f11a2"; } +.lnid-factory-3::before { content: "\f11a5"; } +.lnid-factory-3::after { content: "\f11a4"; } +.lnid-factory-4::before { content: "\f11a7"; } +.lnid-factory-4::after { content: "\f11a6"; } +.lnid-factory-5::before { content: "\f11a9"; } +.lnid-factory-5::after { content: "\f11a8"; } +.lnid-factory-6::before { content: "\f11ab"; } +.lnid-factory-6::after { content: "\f11aa"; } +.lnid-factory-7::before { content: "\f11ad"; } +.lnid-factory-7::after { content: "\f11ac"; } +.lnid-factory-check-circle::before { content: "\f11af"; } +.lnid-factory-check-circle::after { content: "\f11ae"; } +.lnid-factory-disabled::before { content: "\f11b1"; } +.lnid-factory-disabled::after { content: "\f11b0"; } +.lnid-factory-error-circle::before { content: "\f11b3"; } +.lnid-factory-error-circle::after { content: "\f11b2"; } +.lnid-factory-fire::before { content: "\f11b5"; } +.lnid-factory-fire::after { content: "\f11b4"; } +.lnid-factory-gear::before { content: "\f11b7"; } +.lnid-factory-gear::after { content: "\f11b6"; } +.lnid-factory-leaf::before { content: "\f11b9"; } +.lnid-factory-leaf::after { content: "\f11b8"; } +.lnid-factory-lokced::before { content: "\f11bb"; } +.lnid-factory-lokced::after { content: "\f11ba"; } +.lnid-factory-percent::before { content: "\f11bd"; } +.lnid-factory-percent::after { content: "\f11bc"; } +.lnid-factory-plus-circle::before { content: "\f11bf"; } +.lnid-factory-plus-circle::after { content: "\f11be"; } +.lnid-factory-time::before { content: "\f11c1"; } +.lnid-factory-time::after { content: "\f11c0"; } +.lnid-factory-user::before { content: "\f11c3"; } +.lnid-factory-user::after { content: "\f11c2"; } +.lnid-factory-wifi::before { content: "\f11c5"; } +.lnid-factory-wifi::after { content: "\f11c4"; } +.lnid-factory-xmark-circle::before { content: "\f11c7"; } +.lnid-factory-xmark-circle::after { content: "\f11c6"; } +.lnid-fahrenheit::before { content: "\f11cb"; } +.lnid-fahrenheit::after { content: "\f11ca"; } +.lnid-fahrenheit-circle::before { content: "\f11c9"; } +.lnid-fahrenheit-circle::after { content: "\f11c8"; } +.lnid-family::before { content: "\f11cf"; } +.lnid-family::after { content: "\f11ce"; } +.lnid-family-heart::before { content: "\f11cd"; } +.lnid-family-heart::after { content: "\f11cc"; } +.lnid-fan::before { content: "\f11d1"; } +.lnid-fan::after { content: "\f11d0"; } +.lnid-feather::before { content: "\f11d5"; } +.lnid-feather::after { content: "\f11d4"; } +.lnid-feather-ai::before { content: "\f11d3"; } +.lnid-feather-ai::after { content: "\f11d2"; } +.lnid-feature-phone::before { content: "\f11d9"; } +.lnid-feature-phone::after { content: "\f11d8"; } +.lnid-feature-phone-flip::before { content: "\f11d7"; } +.lnid-feature-phone-flip::after { content: "\f11d6"; } +.lnid-feeder::before { content: "\f11db"; } +.lnid-feeder::after { content: "\f11da"; } +.lnid-female::before { content: "\f11df"; } +.lnid-female::after { content: "\f11de"; } +.lnid-female-square::before { content: "\f11dd"; } +.lnid-female-square::after { content: "\f11dc"; } +.lnid-fence-1::before { content: "\f11e1"; } +.lnid-fence-1::after { content: "\f11e0"; } +.lnid-fence-2::before { content: "\f11e3"; } +.lnid-fence-2::after { content: "\f11e2"; } +.lnid-file-ai::before { content: "\f11e5"; } +.lnid-file-ai::after { content: "\f11e4"; } +.lnid-file-arrow-downward::before { content: "\f11e7"; } +.lnid-file-arrow-downward::after { content: "\f11e6"; } +.lnid-file-arrow-left::before { content: "\f11e9"; } +.lnid-file-arrow-left::after { content: "\f11e8"; } +.lnid-file-arrow-right::before { content: "\f11eb"; } +.lnid-file-arrow-right::after { content: "\f11ea"; } +.lnid-file-arrow-upward::before { content: "\f11ed"; } +.lnid-file-arrow-upward::after { content: "\f11ec"; } +.lnid-file-audio::before { content: "\f11ef"; } +.lnid-file-audio::after { content: "\f11ee"; } +.lnid-file-badge::before { content: "\f11f1"; } +.lnid-file-badge::after { content: "\f11f0"; } +.lnid-file-bar-chart::before { content: "\f11f3"; } +.lnid-file-bar-chart::after { content: "\f11f2"; } +.lnid-file-beat::before { content: "\f11f5"; } +.lnid-file-beat::after { content: "\f11f4"; } +.lnid-file-binary::before { content: "\f11f7"; } +.lnid-file-binary::after { content: "\f11f6"; } +.lnid-file-bookmark::before { content: "\f11f9"; } +.lnid-file-bookmark::after { content: "\f11f8"; } +.lnid-file-bulb::before { content: "\f11fb"; } +.lnid-file-bulb::after { content: "\f11fa"; } +.lnid-file-check::before { content: "\f11ff"; } +.lnid-file-check::after { content: "\f11fe"; } +.lnid-file-check-circle::before { content: "\f11fd"; } +.lnid-file-check-circle::after { content: "\f11fc"; } +.lnid-file-code::before { content: "\f1201"; } +.lnid-file-code::after { content: "\f1200"; } +.lnid-file-contract::before { content: "\f1203"; } +.lnid-file-contract::after { content: "\f1202"; } +.lnid-file-disabled::before { content: "\f1205"; } +.lnid-file-disabled::after { content: "\f1204"; } +.lnid-file-dollar::before { content: "\f1207"; } +.lnid-file-dollar::after { content: "\f1206"; } +.lnid-file-download::before { content: "\f1209"; } +.lnid-file-download::after { content: "\f1208"; } +.lnid-file-error::before { content: "\f120b"; } +.lnid-file-error::after { content: "\f120a"; } +.lnid-file-exel-ai::before { content: "\f120d"; } +.lnid-file-exel-ai::after { content: "\f120c"; } +.lnid-file-format-csv::before { content: "\f120f"; } +.lnid-file-format-csv::after { content: "\f120e"; } +.lnid-file-format-doc::before { content: "\f1211"; } +.lnid-file-format-doc::after { content: "\f1210"; } +.lnid-file-format-eps::before { content: "\f1213"; } +.lnid-file-format-eps::after { content: "\f1212"; } +.lnid-file-format-fig::before { content: "\f1215"; } +.lnid-file-format-fig::after { content: "\f1214"; } +.lnid-file-format-gif::before { content: "\f1217"; } +.lnid-file-format-gif::after { content: "\f1216"; } +.lnid-file-format-jpg::before { content: "\f1219"; } +.lnid-file-format-jpg::after { content: "\f1218"; } +.lnid-file-format-mov::before { content: "\f121b"; } +.lnid-file-format-mov::after { content: "\f121a"; } +.lnid-file-format-mp3::before { content: "\f121d"; } +.lnid-file-format-mp3::after { content: "\f121c"; } +.lnid-file-format-mp4::before { content: "\f121f"; } +.lnid-file-format-mp4::after { content: "\f121e"; } +.lnid-file-format-pdf::before { content: "\f1221"; } +.lnid-file-format-pdf::after { content: "\f1220"; } +.lnid-file-format-png::before { content: "\f1223"; } +.lnid-file-format-png::after { content: "\f1222"; } +.lnid-file-format-ppt::before { content: "\f1225"; } +.lnid-file-format-ppt::after { content: "\f1224"; } +.lnid-file-format-psd::before { content: "\f1227"; } +.lnid-file-format-psd::after { content: "\f1226"; } +.lnid-file-format-svg::before { content: "\f1229"; } +.lnid-file-format-svg::after { content: "\f1228"; } +.lnid-file-format-xls::before { content: "\f122b"; } +.lnid-file-format-xls::after { content: "\f122a"; } +.lnid-file-format-xml::before { content: "\f122d"; } +.lnid-file-format-xml::after { content: "\f122c"; } +.lnid-file-format-zip::before { content: "\f122f"; } +.lnid-file-format-zip::after { content: "\f122e"; } +.lnid-file-gear::before { content: "\f1231"; } +.lnid-file-gear::after { content: "\f1230"; } +.lnid-file-hash::before { content: "\f1233"; } +.lnid-file-hash::after { content: "\f1232"; } +.lnid-file-heart::before { content: "\f1235"; } +.lnid-file-heart::after { content: "\f1234"; } +.lnid-file-image::before { content: "\f1237"; } +.lnid-file-image::after { content: "\f1236"; } +.lnid-file-info-circle::before { content: "\f1239"; } +.lnid-file-info-circle::after { content: "\f1238"; } +.lnid-file-invoice::before { content: "\f123b"; } +.lnid-file-invoice::after { content: "\f123a"; } +.lnid-file-leaf::before { content: "\f123d"; } +.lnid-file-leaf::after { content: "\f123c"; } +.lnid-file-link::before { content: "\f123f"; } +.lnid-file-link::after { content: "\f123e"; } +.lnid-file-locked::before { content: "\f1241"; } +.lnid-file-locked::after { content: "\f1240"; } +.lnid-file-minus::before { content: "\f1245"; } +.lnid-file-minus::after { content: "\f1244"; } +.lnid-file-minus-circle::before { content: "\f1243"; } +.lnid-file-minus-circle::after { content: "\f1242"; } +.lnid-file-multiple::before { content: "\f1247"; } +.lnid-file-multiple::after { content: "\f1246"; } +.lnid-file-paperclip::before { content: "\f1249"; } +.lnid-file-paperclip::after { content: "\f1248"; } +.lnid-file-pencil::before { content: "\f124b"; } +.lnid-file-pencil::after { content: "\f124a"; } +.lnid-file-percent::before { content: "\f124f"; } +.lnid-file-percent::after { content: "\f124e"; } +.lnid-file-percent-circle::before { content: "\f124d"; } +.lnid-file-percent-circle::after { content: "\f124c"; } +.lnid-file-pie-chart::before { content: "\f1251"; } +.lnid-file-pie-chart::after { content: "\f1250"; } +.lnid-file-pin-1::before { content: "\f1253"; } +.lnid-file-pin-1::after { content: "\f1252"; } +.lnid-file-pin-2::before { content: "\f1255"; } +.lnid-file-pin-2::after { content: "\f1254"; } +.lnid-file-plus::before { content: "\f1259"; } +.lnid-file-plus::after { content: "\f1258"; } +.lnid-file-plus-circle::before { content: "\f1257"; } +.lnid-file-plus-circle::after { content: "\f1256"; } +.lnid-file-prescription::before { content: "\f125b"; } +.lnid-file-prescription::after { content: "\f125a"; } +.lnid-file-question::before { content: "\f125d"; } +.lnid-file-question::after { content: "\f125c"; } +.lnid-file-refresh-anticlockwise::before { content: "\f125f"; } +.lnid-file-refresh-anticlockwise::after { content: "\f125e"; } +.lnid-file-reload::before { content: "\f1261"; } +.lnid-file-reload::after { content: "\f1260"; } +.lnid-file-search::before { content: "\f1263"; } +.lnid-file-search::after { content: "\f1262"; } +.lnid-file-share-1::before { content: "\f1265"; } +.lnid-file-share-1::after { content: "\f1264"; } +.lnid-file-share-2::before { content: "\f1267"; } +.lnid-file-share-2::after { content: "\f1266"; } +.lnid-file-shield::before { content: "\f1269"; } +.lnid-file-shield::after { content: "\f1268"; } +.lnid-file-sound::before { content: "\f126b"; } +.lnid-file-sound::after { content: "\f126a"; } +.lnid-file-spreadsheet::before { content: "\f126d"; } +.lnid-file-spreadsheet::after { content: "\f126c"; } +.lnid-file-star::before { content: "\f126f"; } +.lnid-file-star::after { content: "\f126e"; } +.lnid-file-swap::before { content: "\f1271"; } +.lnid-file-swap::after { content: "\f1270"; } +.lnid-file-text::before { content: "\f1275"; } +.lnid-file-text::after { content: "\f1274"; } +.lnid-file-text-multiple::before { content: "\f1273"; } +.lnid-file-text-multiple::after { content: "\f1272"; } +.lnid-file-trash::before { content: "\f1277"; } +.lnid-file-trash::after { content: "\f1276"; } +.lnid-file-trend-down::before { content: "\f1279"; } +.lnid-file-trend-down::after { content: "\f1278"; } +.lnid-file-trend-up::before { content: "\f127b"; } +.lnid-file-trend-up::after { content: "\f127a"; } +.lnid-file-unlocked::before { content: "\f127d"; } +.lnid-file-unlocked::after { content: "\f127c"; } +.lnid-file-upload::before { content: "\f127f"; } +.lnid-file-upload::after { content: "\f127e"; } +.lnid-file-user::before { content: "\f1281"; } +.lnid-file-user::after { content: "\f1280"; } +.lnid-file-vector-points::before { content: "\f1283"; } +.lnid-file-vector-points::after { content: "\f1282"; } +.lnid-file-video::before { content: "\f1285"; } +.lnid-file-video::after { content: "\f1284"; } +.lnid-file-xmark::before { content: "\f1289"; } +.lnid-file-xmark::after { content: "\f1288"; } +.lnid-file-xmark-circle::before { content: "\f1287"; } +.lnid-file-xmark-circle::after { content: "\f1286"; } +.lnid-file-zip-1::before { content: "\f128b"; } +.lnid-file-zip-1::after { content: "\f128a"; } +.lnid-file-zip-2::before { content: "\f128d"; } +.lnid-file-zip-2::after { content: "\f128c"; } +.lnid-fill-drip::before { content: "\f128f"; } +.lnid-fill-drip::after { content: "\f128e"; } +.lnid-film-1::before { content: "\f1291"; } +.lnid-film-1::after { content: "\f1290"; } +.lnid-film-2::before { content: "\f1293"; } +.lnid-film-2::after { content: "\f1292"; } +.lnid-film-3::before { content: "\f1295"; } +.lnid-film-3::after { content: "\f1294"; } +.lnid-film-ai::before { content: "\f1297"; } +.lnid-film-ai::after { content: "\f1296"; } +.lnid-film-play::before { content: "\f1299"; } +.lnid-film-play::after { content: "\f1298"; } +.lnid-film-role::before { content: "\f129b"; } +.lnid-film-role::after { content: "\f129a"; } +.lnid-filter-ai-1::before { content: "\f129d"; } +.lnid-filter-ai-1::after { content: "\f129c"; } +.lnid-filter-ai-2::before { content: "\f129f"; } +.lnid-filter-ai-2::after { content: "\f129e"; } +.lnid-filter-ai-3::before { content: "\f12a1"; } +.lnid-filter-ai-3::after { content: "\f12a0"; } +.lnid-filter-ai-4::before { content: "\f12a3"; } +.lnid-filter-ai-4::after { content: "\f12a2"; } +.lnid-fingerprint-1::before { content: "\f12a5"; } +.lnid-fingerprint-1::after { content: "\f12a4"; } +.lnid-fingerprint-2::before { content: "\f12a7"; } +.lnid-fingerprint-2::after { content: "\f12a6"; } +.lnid-fingerprint-3::before { content: "\f12a9"; } +.lnid-fingerprint-3::after { content: "\f12a8"; } +.lnid-fingerprint-ai-1::before { content: "\f12ab"; } +.lnid-fingerprint-ai-1::after { content: "\f12aa"; } +.lnid-fingerprint-ai-2::before { content: "\f12ad"; } +.lnid-fingerprint-ai-2::after { content: "\f12ac"; } +.lnid-fingerprint-ai-3::after { content: "\f12ae"; } +.lnid-fire::before { content: "\f12b0"; } +.lnid-fire::after { content: "\f12af"; } +.lnid-firework-1::before { content: "\f12b2"; } +.lnid-firework-1::after { content: "\f12b1"; } +.lnid-firework-2::before { content: "\f12b4"; } +.lnid-firework-2::after { content: "\f12b3"; } +.lnid-firework-3::before { content: "\f12b6"; } +.lnid-firework-3::after { content: "\f12b5"; } +.lnid-firework-4::before { content: "\f12b8"; } +.lnid-firework-4::after { content: "\f12b7"; } +.lnid-firework-5::before { content: "\f12ba"; } +.lnid-firework-5::after { content: "\f12b9"; } +.lnid-firework-rocket-1::before { content: "\f12bc"; } +.lnid-firework-rocket-1::after { content: "\f12bb"; } +.lnid-firework-rocket-2::before { content: "\f12be"; } +.lnid-firework-rocket-2::after { content: "\f12bd"; } +.lnid-firework-rocket-3::before { content: "\f12c0"; } +.lnid-firework-rocket-3::after { content: "\f12bf"; } +.lnid-firework-rocket-4::before { content: "\f12c2"; } +.lnid-firework-rocket-4::after { content: "\f12c1"; } +.lnid-firework-rocket-5::before { content: "\f12c4"; } +.lnid-firework-rocket-5::after { content: "\f12c3"; } +.lnid-firework-rocket-6::before { content: "\f12c6"; } +.lnid-firework-rocket-6::after { content: "\f12c5"; } +.lnid-fish-1::before { content: "\f12c8"; } +.lnid-fish-1::after { content: "\f12c7"; } +.lnid-fish-2::before { content: "\f12ca"; } +.lnid-fish-2::after { content: "\f12c9"; } +.lnid-flag-1::before { content: "\f12cc"; } +.lnid-flag-1::after { content: "\f12cb"; } +.lnid-flag-2::before { content: "\f12ce"; } +.lnid-flag-2::after { content: "\f12cd"; } +.lnid-flag-3::before { content: "\f12d0"; } +.lnid-flag-3::after { content: "\f12cf"; } +.lnid-flag-4::before { content: "\f12d2"; } +.lnid-flag-4::after { content: "\f12d1"; } +.lnid-flag-ai::before { content: "\f12d4"; } +.lnid-flag-ai::after { content: "\f12d3"; } +.lnid-flag-checkered::before { content: "\f12d6"; } +.lnid-flag-checkered::after { content: "\f12d5"; } +.lnid-flag-cross::before { content: "\f12d8"; } +.lnid-flag-cross::after { content: "\f12d7"; } +.lnid-flag-dollar::before { content: "\f12da"; } +.lnid-flag-dollar::after { content: "\f12d9"; } +.lnid-flag-go-1::before { content: "\f12dc"; } +.lnid-flag-go-1::after { content: "\f12db"; } +.lnid-flag-golf-hole::before { content: "\f12de"; } +.lnid-flag-golf-hole::after { content: "\f12dd"; } +.lnid-flag-ipo::before { content: "\f12e0"; } +.lnid-flag-ipo::after { content: "\f12df"; } +.lnid-flag-pennant::before { content: "\f12e2"; } +.lnid-flag-pennant::after { content: "\f12e1"; } +.lnid-flag-racing::before { content: "\f12e4"; } +.lnid-flag-racing::after { content: "\f12e3"; } +.lnid-flag-star-crescent::before { content: "\f12e6"; } +.lnid-flag-star-crescent::after { content: "\f12e5"; } +.lnid-flag-star-david::before { content: "\f12e8"; } +.lnid-flag-star-david::after { content: "\f12e7"; } +.lnid-flag-usa::before { content: "\f12ea"; } +.lnid-flag-usa::after { content: "\f12e9"; } +.lnid-flags::before { content: "\f12ec"; } +.lnid-flags::after { content: "\f12eb"; } +.lnid-flask-1::before { content: "\f12ee"; } +.lnid-flask-1::after { content: "\f12ed"; } +.lnid-flask-2::before { content: "\f12f0"; } +.lnid-flask-2::after { content: "\f12ef"; } +.lnid-flask-round-1::before { content: "\f12f2"; } +.lnid-flask-round-1::after { content: "\f12f1"; } +.lnid-flask-round-2::before { content: "\f12f4"; } +.lnid-flask-round-2::after { content: "\f12f3"; } +.lnid-flat-1::before { content: "\f12f6"; } +.lnid-flat-1::after { content: "\f12f5"; } +.lnid-flat-2::before { content: "\f12f8"; } +.lnid-flat-2::after { content: "\f12f7"; } +.lnid-flat-3::before { content: "\f12fa"; } +.lnid-flat-3::after { content: "\f12f9"; } +.lnid-flats-1::before { content: "\f12fc"; } +.lnid-flats-1::after { content: "\f12fb"; } +.lnid-flats-2::before { content: "\f12fe"; } +.lnid-flats-2::after { content: "\f12fd"; } +.lnid-flats-3::before { content: "\f1300"; } +.lnid-flats-3::after { content: "\f12ff"; } +.lnid-flood::before { content: "\f1302"; } +.lnid-flood::after { content: "\f1301"; } +.lnid-floppy-disk-1::before { content: "\f1304"; } +.lnid-floppy-disk-1::after { content: "\f1303"; } +.lnid-floppy-disk-2::before { content: "\f1306"; } +.lnid-floppy-disk-2::after { content: "\f1305"; } +.lnid-floppy-disk-3::before { content: "\f1308"; } +.lnid-floppy-disk-3::after { content: "\f1307"; } +.lnid-floppy-disk-4::before { content: "\f130a"; } +.lnid-floppy-disk-4::after { content: "\f1309"; } +.lnid-floppy-disk-check-circle::before { content: "\f130c"; } +.lnid-floppy-disk-check-circle::after { content: "\f130b"; } +.lnid-floppy-disk-disabled-1::before { content: "\f130e"; } +.lnid-floppy-disk-disabled-1::after { content: "\f130d"; } +.lnid-floppy-disk-disabled-3::before { content: "\f1310"; } +.lnid-floppy-disk-disabled-3::after { content: "\f130f"; } +.lnid-floppy-disk-disabled-4::before { content: "\f1312"; } +.lnid-floppy-disk-disabled-4::after { content: "\f1311"; } +.lnid-floppy-disk-error-circle::before { content: "\f1314"; } +.lnid-floppy-disk-error-circle::after { content: "\f1313"; } +.lnid-floppy-disk-time::before { content: "\f1316"; } +.lnid-floppy-disk-time::after { content: "\f1315"; } +.lnid-floppy-disk-xmark-circle::before { content: "\f1318"; } +.lnid-floppy-disk-xmark-circle::after { content: "\f1317"; } +.lnid-flow-chart-ai::before { content: "\f131a"; } +.lnid-flow-chart-ai::after { content: "\f1319"; } +.lnid-flower-1::before { content: "\f131c"; } +.lnid-flower-1::after { content: "\f131b"; } +.lnid-flower-2::before { content: "\f131e"; } +.lnid-flower-2::after { content: "\f131d"; } +.lnid-flower-3::before { content: "\f1320"; } +.lnid-flower-3::after { content: "\f131f"; } +.lnid-flower-heart::before { content: "\f1322"; } +.lnid-flower-heart::after { content: "\f1321"; } +.lnid-folder-1::before { content: "\f1324"; } +.lnid-folder-1::after { content: "\f1323"; } +.lnid-folder-2::before { content: "\f1326"; } +.lnid-folder-2::after { content: "\f1325"; } +.lnid-folder-3::before { content: "\f1328"; } +.lnid-folder-3::after { content: "\f1327"; } +.lnid-folder-4::before { content: "\f132a"; } +.lnid-folder-4::after { content: "\f1329"; } +.lnid-folder-5::before { content: "\f132c"; } +.lnid-folder-5::after { content: "\f132b"; } +.lnid-folder-6::before { content: "\f132e"; } +.lnid-folder-6::after { content: "\f132d"; } +.lnid-folder-7::before { content: "\f1330"; } +.lnid-folder-7::after { content: "\f132f"; } +.lnid-folder-ai-1::before { content: "\f1332"; } +.lnid-folder-ai-1::after { content: "\f1331"; } +.lnid-folder-ai-2::before { content: "\f1334"; } +.lnid-folder-ai-2::after { content: "\f1333"; } +.lnid-folder-arrow-downward::before { content: "\f1336"; } +.lnid-folder-arrow-downward::after { content: "\f1335"; } +.lnid-folder-arrow-left::before { content: "\f1338"; } +.lnid-folder-arrow-left::after { content: "\f1337"; } +.lnid-folder-arrow-right::before { content: "\f133a"; } +.lnid-folder-arrow-right::after { content: "\f1339"; } +.lnid-folder-arrow-upward::before { content: "\f133c"; } +.lnid-folder-arrow-upward::after { content: "\f133b"; } +.lnid-folder-audio::before { content: "\f133e"; } +.lnid-folder-audio::after { content: "\f133d"; } +.lnid-folder-binary::before { content: "\f1340"; } +.lnid-folder-binary::after { content: "\f133f"; } +.lnid-folder-book::before { content: "\f1342"; } +.lnid-folder-book::after { content: "\f1341"; } +.lnid-folder-bookmark::before { content: "\f1344"; } +.lnid-folder-bookmark::after { content: "\f1343"; } +.lnid-folder-check-circle::before { content: "\f1346"; } +.lnid-folder-check-circle::after { content: "\f1345"; } +.lnid-folder-chip::before { content: "\f1348"; } +.lnid-folder-chip::after { content: "\f1347"; } +.lnid-folder-cloud::before { content: "\f134a"; } +.lnid-folder-cloud::after { content: "\f1349"; } +.lnid-folder-code::before { content: "\f134c"; } +.lnid-folder-code::after { content: "\f134b"; } +.lnid-folder-disabled::before { content: "\f1350"; } +.lnid-folder-disabled::after { content: "\f134f"; } +.lnid-folder-disabled-2::before { content: "\f134e"; } +.lnid-folder-disabled-2::after { content: "\f134d"; } +.lnid-folder-document::before { content: "\f1352"; } +.lnid-folder-document::after { content: "\f1351"; } +.lnid-folder-download::before { content: "\f1354"; } +.lnid-folder-download::after { content: "\f1353"; } +.lnid-folder-error-circle::before { content: "\f1356"; } +.lnid-folder-error-circle::after { content: "\f1355"; } +.lnid-folder-gear::before { content: "\f1358"; } +.lnid-folder-gear::after { content: "\f1357"; } +.lnid-folder-heart::before { content: "\f135a"; } +.lnid-folder-heart::after { content: "\f1359"; } +.lnid-folder-image::before { content: "\f135c"; } +.lnid-folder-image::after { content: "\f135b"; } +.lnid-folder-info-circle::before { content: "\f135e"; } +.lnid-folder-info-circle::after { content: "\f135d"; } +.lnid-folder-iot-1::before { content: "\f1360"; } +.lnid-folder-iot-1::after { content: "\f135f"; } +.lnid-folder-iot-2::before { content: "\f1362"; } +.lnid-folder-iot-2::after { content: "\f1361"; } +.lnid-folder-iot-3::before { content: "\f1364"; } +.lnid-folder-iot-3::after { content: "\f1363"; } +.lnid-folder-iot-ai-1::before { content: "\f1366"; } +.lnid-folder-iot-ai-1::after { content: "\f1365"; } +.lnid-folder-iot-ai-2::before { content: "\f1368"; } +.lnid-folder-iot-ai-2::after { content: "\f1367"; } +.lnid-folder-iot-ai-3::before { content: "\f136a"; } +.lnid-folder-iot-ai-3::after { content: "\f1369"; } +.lnid-folder-leaf::before { content: "\f136c"; } +.lnid-folder-leaf::after { content: "\f136b"; } +.lnid-folder-link::before { content: "\f136e"; } +.lnid-folder-link::after { content: "\f136d"; } +.lnid-folder-locked::before { content: "\f1370"; } +.lnid-folder-locked::after { content: "\f136f"; } +.lnid-folder-minus-circle::before { content: "\f1372"; } +.lnid-folder-minus-circle::after { content: "\f1371"; } +.lnid-folder-paperclip::before { content: "\f1374"; } +.lnid-folder-paperclip::after { content: "\f1373"; } +.lnid-folder-pencil::before { content: "\f1376"; } +.lnid-folder-pencil::after { content: "\f1375"; } +.lnid-folder-percent-circle::before { content: "\f1378"; } +.lnid-folder-percent-circle::after { content: "\f1377"; } +.lnid-folder-phone::before { content: "\f137a"; } +.lnid-folder-phone::after { content: "\f1379"; } +.lnid-folder-pin-1::before { content: "\f137c"; } +.lnid-folder-pin-1::after { content: "\f137b"; } +.lnid-folder-pin-2::before { content: "\f137e"; } +.lnid-folder-pin-2::after { content: "\f137d"; } +.lnid-folder-play::before { content: "\f1380"; } +.lnid-folder-play::after { content: "\f137f"; } +.lnid-folder-plus-circle::before { content: "\f1382"; } +.lnid-folder-plus-circle::after { content: "\f1381"; } +.lnid-folder-refresh::before { content: "\f1384"; } +.lnid-folder-refresh::after { content: "\f1383"; } +.lnid-folder-search::before { content: "\f1386"; } +.lnid-folder-search::after { content: "\f1385"; } +.lnid-folder-share::before { content: "\f1388"; } +.lnid-folder-share::after { content: "\f1387"; } +.lnid-folder-shield::before { content: "\f138a"; } +.lnid-folder-shield::after { content: "\f1389"; } +.lnid-folder-sound::before { content: "\f138c"; } +.lnid-folder-sound::after { content: "\f138b"; } +.lnid-folder-star::before { content: "\f138e"; } +.lnid-folder-star::after { content: "\f138d"; } +.lnid-folder-swap::before { content: "\f1390"; } +.lnid-folder-swap::after { content: "\f138f"; } +.lnid-folder-trash::before { content: "\f1392"; } +.lnid-folder-trash::after { content: "\f1391"; } +.lnid-folder-tree::before { content: "\f1394"; } +.lnid-folder-tree::after { content: "\f1393"; } +.lnid-folder-unlocked::before { content: "\f1396"; } +.lnid-folder-unlocked::after { content: "\f1395"; } +.lnid-folder-upload::before { content: "\f1398"; } +.lnid-folder-upload::after { content: "\f1397"; } +.lnid-folder-user::before { content: "\f139a"; } +.lnid-folder-user::after { content: "\f1399"; } +.lnid-folder-video::before { content: "\f139c"; } +.lnid-folder-video::after { content: "\f139b"; } +.lnid-folder-xmark-circle::before { content: "\f139e"; } +.lnid-folder-xmark-circle::after { content: "\f139d"; } +.lnid-folder-zip-1::before { content: "\f13a0"; } +.lnid-folder-zip-1::after { content: "\f139f"; } +.lnid-folder-zip-2::before { content: "\f13a2"; } +.lnid-folder-zip-2::after { content: "\f13a1"; } +.lnid-folders::before { content: "\f13a4"; } +.lnid-folders::after { content: "\f13a3"; } +.lnid-font-height::before { content: "\f13a6"; } +.lnid-font-height::after { content: "\f13a5"; } +.lnid-font-square::before { content: "\f13a8"; } +.lnid-font-square::after { content: "\f13a7"; } +.lnid-football::before { content: "\f13aa"; } +.lnid-football::after { content: "\f13a9"; } +.lnid-fork::before { content: "\f13b2"; } +.lnid-fork::after { content: "\f13b1"; } +.lnid-fork-rotated::before { content: "\f13ac"; } +.lnid-fork-rotated::after { content: "\f13ab"; } +.lnid-fork-spoon-1::before { content: "\f13ae"; } +.lnid-fork-spoon-1::after { content: "\f13ad"; } +.lnid-fork-spoon-2::before { content: "\f13b0"; } +.lnid-fork-spoon-2::after { content: "\f13af"; } +.lnid-fortress::before { content: "\f13b4"; } +.lnid-fortress::after { content: "\f13b3"; } +.lnid-forward::before { content: "\f13b6"; } +.lnid-forward::after { content: "\f13b5"; } +.lnid-fountain::before { content: "\f13b8"; } +.lnid-fountain::after { content: "\f13b7"; } +.lnid-frame::before { content: "\f13bc"; } +.lnid-frame::after { content: "\f13bb"; } +.lnid-frame-image::before { content: "\f13ba"; } +.lnid-frame-image::after { content: "\f13b9"; } +.lnid-french-fries::before { content: "\f13be"; } +.lnid-french-fries::after { content: "\f13bd"; } +.lnid-frog-1::before { content: "\f13c0"; } +.lnid-frog-1::after { content: "\f13bf"; } +.lnid-frog-2::before { content: "\f13c2"; } +.lnid-frog-2::after { content: "\f13c1"; } +.lnid-frog-3::before { content: "\f13c4"; } +.lnid-frog-3::after { content: "\f13c3"; } +.lnid-fuel-pump::before { content: "\f13c6"; } +.lnid-fuel-pump::after { content: "\f13c5"; } +.lnid-funnel-1::before { content: "\f13c8"; } +.lnid-funnel-1::after { content: "\f13c7"; } +.lnid-funnel-2::before { content: "\f13ca"; } +.lnid-funnel-2::after { content: "\f13c9"; } +.lnid-funnel-3::before { content: "\f13cc"; } +.lnid-funnel-3::after { content: "\f13cb"; } +.lnid-funnel-4::before { content: "\f13ce"; } +.lnid-funnel-4::after { content: "\f13cd"; } +.lnid-gallery::before { content: "\f13d0"; } +.lnid-gallery::after { content: "\f13cf"; } +.lnid-game-console-ai::before { content: "\f13d2"; } +.lnid-game-console-ai::after { content: "\f13d1"; } +.lnid-game-console-handheld::before { content: "\f13d6"; } +.lnid-game-console-handheld::after { content: "\f13d5"; } +.lnid-game-console-handheld-crank::before { content: "\f13d4"; } +.lnid-game-console-handheld-crank::after { content: "\f13d3"; } +.lnid-game-pad::before { content: "\f13f4"; } +.lnid-game-pad::after { content: "\f13f3"; } +.lnid-game-pad-ai-1::before { content: "\f13d8"; } +.lnid-game-pad-ai-1::after { content: "\f13d7"; } +.lnid-game-pad-ai-2::before { content: "\f13da"; } +.lnid-game-pad-ai-2::after { content: "\f13d9"; } +.lnid-game-pad-modern-1::before { content: "\f13dc"; } +.lnid-game-pad-modern-1::after { content: "\f13db"; } +.lnid-game-pad-modern-2::before { content: "\f13de"; } +.lnid-game-pad-modern-2::after { content: "\f13dd"; } +.lnid-game-pad-modern-bluetooth::before { content: "\f13e0"; } +.lnid-game-pad-modern-bluetooth::after { content: "\f13df"; } +.lnid-game-pad-modern-bolt::before { content: "\f13e2"; } +.lnid-game-pad-modern-bolt::after { content: "\f13e1"; } +.lnid-game-pad-modern-check-circle::before { content: "\f13e4"; } +.lnid-game-pad-modern-check-circle::after { content: "\f13e3"; } +.lnid-game-pad-modern-disabled::before { content: "\f13e6"; } +.lnid-game-pad-modern-disabled::after { content: "\f13e5"; } +.lnid-game-pad-modern-error-circle::before { content: "\f13e8"; } +.lnid-game-pad-modern-error-circle::after { content: "\f13e7"; } +.lnid-game-pad-modern-gear::before { content: "\f13ea"; } +.lnid-game-pad-modern-gear::after { content: "\f13e9"; } +.lnid-game-pad-modern-plus-circle::before { content: "\f13ec"; } +.lnid-game-pad-modern-plus-circle::after { content: "\f13eb"; } +.lnid-game-pad-modern-vr::before { content: "\f13ee"; } +.lnid-game-pad-modern-vr::after { content: "\f13ed"; } +.lnid-game-pad-modern-wifi::before { content: "\f13f0"; } +.lnid-game-pad-modern-wifi::after { content: "\f13ef"; } +.lnid-game-pad-modern-xmark-circle::before { content: "\f13f2"; } +.lnid-game-pad-modern-xmark-circle::after { content: "\f13f1"; } +.lnid-gamepad-ai::before { content: "\f13f6"; } +.lnid-gamepad-ai::after { content: "\f13f5"; } +.lnid-gauge-1::before { content: "\f1402"; } +.lnid-gauge-1::after { content: "\f1401"; } +.lnid-gauge-1-disabled::before { content: "\f13f8"; } +.lnid-gauge-1-disabled::after { content: "\f13f7"; } +.lnid-gauge-1-high::before { content: "\f13fa"; } +.lnid-gauge-1-high::after { content: "\f13f9"; } +.lnid-gauge-1-low::before { content: "\f13fc"; } +.lnid-gauge-1-low::after { content: "\f13fb"; } +.lnid-gauge-1-max::before { content: "\f13fe"; } +.lnid-gauge-1-max::after { content: "\f13fd"; } +.lnid-gauge-1-min::before { content: "\f1400"; } +.lnid-gauge-1-min::after { content: "\f13ff"; } +.lnid-gauge-2::before { content: "\f140e"; } +.lnid-gauge-2::after { content: "\f140d"; } +.lnid-gauge-2-disabled::before { content: "\f1404"; } +.lnid-gauge-2-disabled::after { content: "\f1403"; } +.lnid-gauge-2-high::before { content: "\f1406"; } +.lnid-gauge-2-high::after { content: "\f1405"; } +.lnid-gauge-2-low::before { content: "\f1408"; } +.lnid-gauge-2-low::after { content: "\f1407"; } +.lnid-gauge-2-max::before { content: "\f140a"; } +.lnid-gauge-2-max::after { content: "\f1409"; } +.lnid-gauge-2-min::before { content: "\f140c"; } +.lnid-gauge-2-min::after { content: "\f140b"; } +.lnid-gauge-ai-1::before { content: "\f1410"; } +.lnid-gauge-ai-1::after { content: "\f140f"; } +.lnid-gauge-ai-2::before { content: "\f1412"; } +.lnid-gauge-ai-2::after { content: "\f1411"; } +.lnid-gauge-ai-3::before { content: "\f1414"; } +.lnid-gauge-ai-3::after { content: "\f1413"; } +.lnid-gauge-check-circle::before { content: "\f1416"; } +.lnid-gauge-check-circle::after { content: "\f1415"; } +.lnid-gauge-disabled-2::before { content: "\f1418"; } +.lnid-gauge-disabled-2::after { content: "\f1417"; } +.lnid-gauge-error-circle::before { content: "\f141a"; } +.lnid-gauge-error-circle::after { content: "\f1419"; } +.lnid-gauge-fire::before { content: "\f141c"; } +.lnid-gauge-fire::after { content: "\f141b"; } +.lnid-gauge-minus-circle::before { content: "\f141e"; } +.lnid-gauge-minus-circle::after { content: "\f141d"; } +.lnid-gauge-plus-circle::before { content: "\f1420"; } +.lnid-gauge-plus-circle::after { content: "\f141f"; } +.lnid-gauge-xmark-circle::before { content: "\f1422"; } +.lnid-gauge-xmark-circle::after { content: "\f1421"; } +.lnid-gear-1::before { content: "\f1426"; } +.lnid-gear-1::after { content: "\f1425"; } +.lnid-gear-1-disabled::before { content: "\f1424"; } +.lnid-gear-1-disabled::after { content: "\f1423"; } +.lnid-gear-2::before { content: "\f142a"; } +.lnid-gear-2::after { content: "\f1429"; } +.lnid-gear-2-disabled::before { content: "\f1428"; } +.lnid-gear-2-disabled::after { content: "\f1427"; } +.lnid-gear-ai::before { content: "\f142c"; } +.lnid-gear-ai::after { content: "\f142b"; } +.lnid-gear-arrow-down-left::before { content: "\f142e"; } +.lnid-gear-arrow-down-left::after { content: "\f142d"; } +.lnid-gear-arrow-down-right::before { content: "\f1430"; } +.lnid-gear-arrow-down-right::after { content: "\f142f"; } +.lnid-gear-arrow-downward::before { content: "\f1432"; } +.lnid-gear-arrow-downward::after { content: "\f1431"; } +.lnid-gear-arrow-left::before { content: "\f1434"; } +.lnid-gear-arrow-left::after { content: "\f1433"; } +.lnid-gear-arrow-right::before { content: "\f1436"; } +.lnid-gear-arrow-right::after { content: "\f1435"; } +.lnid-gear-arrow-top-left::before { content: "\f1438"; } +.lnid-gear-arrow-top-left::after { content: "\f1437"; } +.lnid-gear-arrow-top-right::before { content: "\f143a"; } +.lnid-gear-arrow-top-right::after { content: "\f1439"; } +.lnid-gear-arrow-upward::before { content: "\f143c"; } +.lnid-gear-arrow-upward::after { content: "\f143b"; } +.lnid-gear-auto::before { content: "\f143e"; } +.lnid-gear-auto::after { content: "\f143d"; } +.lnid-gear-beat::before { content: "\f1442"; } +.lnid-gear-beat::after { content: "\f1441"; } +.lnid-gear-beat-2::before { content: "\f1440"; } +.lnid-gear-beat-2::after { content: "\f143f"; } +.lnid-gear-bitcoin::before { content: "\f1444"; } +.lnid-gear-bitcoin::after { content: "\f1443"; } +.lnid-gear-bolt::before { content: "\f1446"; } +.lnid-gear-bolt::after { content: "\f1445"; } +.lnid-gear-bulb::before { content: "\f1448"; } +.lnid-gear-bulb::after { content: "\f1447"; } +.lnid-gear-check::before { content: "\f144a"; } +.lnid-gear-check::after { content: "\f1449"; } +.lnid-gear-chip::before { content: "\f144c"; } +.lnid-gear-chip::after { content: "\f144b"; } +.lnid-gear-cloud::before { content: "\f144e"; } +.lnid-gear-cloud::after { content: "\f144d"; } +.lnid-gear-code::before { content: "\f1450"; } +.lnid-gear-code::after { content: "\f144f"; } +.lnid-gear-crypto::before { content: "\f1452"; } +.lnid-gear-crypto::after { content: "\f1451"; } +.lnid-gear-dollar::before { content: "\f1454"; } +.lnid-gear-dollar::after { content: "\f1453"; } +.lnid-gear-eye::before { content: "\f1456"; } +.lnid-gear-eye::after { content: "\f1455"; } +.lnid-gear-info::before { content: "\f1458"; } +.lnid-gear-info::after { content: "\f1457"; } +.lnid-gear-leaf::before { content: "\f145a"; } +.lnid-gear-leaf::after { content: "\f1459"; } +.lnid-gear-locked::before { content: "\f145c"; } +.lnid-gear-locked::after { content: "\f145b"; } +.lnid-gear-map-marker::before { content: "\f145e"; } +.lnid-gear-map-marker::after { content: "\f145d"; } +.lnid-gear-music::before { content: "\f1460"; } +.lnid-gear-music::after { content: "\f145f"; } +.lnid-gear-pencil::before { content: "\f1462"; } +.lnid-gear-pencil::after { content: "\f1461"; } +.lnid-gear-percent::before { content: "\f1464"; } +.lnid-gear-percent::after { content: "\f1463"; } +.lnid-gear-plane::before { content: "\f1466"; } +.lnid-gear-plane::after { content: "\f1465"; } +.lnid-gear-play::before { content: "\f1468"; } +.lnid-gear-play::after { content: "\f1467"; } +.lnid-gear-plus::before { content: "\f146a"; } +.lnid-gear-plus::after { content: "\f1469"; } +.lnid-gear-question-mark::before { content: "\f146c"; } +.lnid-gear-question-mark::after { content: "\f146b"; } +.lnid-gear-refresh-anticlockwise::before { content: "\f146e"; } +.lnid-gear-refresh-anticlockwise::after { content: "\f146d"; } +.lnid-gear-refresh-clockwise::before { content: "\f1470"; } +.lnid-gear-refresh-clockwise::after { content: "\f146f"; } +.lnid-gear-reload-anticlockwise::before { content: "\f1472"; } +.lnid-gear-reload-anticlockwise::after { content: "\f1471"; } +.lnid-gear-reload-clockwise::before { content: "\f1474"; } +.lnid-gear-reload-clockwise::after { content: "\f1473"; } +.lnid-gear-search::before { content: "\f1476"; } +.lnid-gear-search::after { content: "\f1475"; } +.lnid-gear-share::before { content: "\f1478"; } +.lnid-gear-share::after { content: "\f1477"; } +.lnid-gear-shield::before { content: "\f147a"; } +.lnid-gear-shield::after { content: "\f1479"; } +.lnid-gear-sound::before { content: "\f147c"; } +.lnid-gear-sound::after { content: "\f147b"; } +.lnid-gear-star::before { content: "\f147e"; } +.lnid-gear-star::after { content: "\f147d"; } +.lnid-gear-swap::before { content: "\f1480"; } +.lnid-gear-swap::after { content: "\f147f"; } +.lnid-gear-unlocked::before { content: "\f1482"; } +.lnid-gear-unlocked::after { content: "\f1481"; } +.lnid-gear-user::before { content: "\f1484"; } +.lnid-gear-user::after { content: "\f1483"; } +.lnid-gear-video::before { content: "\f1486"; } +.lnid-gear-video::after { content: "\f1485"; } +.lnid-gear-wifi-1::before { content: "\f1488"; } +.lnid-gear-wifi-1::after { content: "\f1487"; } +.lnid-gear-wifi-2::before { content: "\f148a"; } +.lnid-gear-wifi-2::after { content: "\f1489"; } +.lnid-gear-xmark::before { content: "\f148c"; } +.lnid-gear-xmark::after { content: "\f148b"; } +.lnid-gears-1::before { content: "\f148e"; } +.lnid-gears-1::after { content: "\f148d"; } +.lnid-gears-2::before { content: "\f1490"; } +.lnid-gears-2::after { content: "\f148f"; } +.lnid-gears-3::before { content: "\f1492"; } +.lnid-gears-3::after { content: "\f1491"; } +.lnid-gears-5::before { content: "\f1494"; } +.lnid-gears-5::after { content: "\f1493"; } +.lnid-gears-6::before { content: "\f1496"; } +.lnid-gears-6::after { content: "\f1495"; } +.lnid-gears-7::before { content: "\f1498"; } +.lnid-gears-7::after { content: "\f1497"; } +.lnid-gears-8::before { content: "\f149a"; } +.lnid-gears-8::after { content: "\f1499"; } +.lnid-ghost::before { content: "\f149c"; } +.lnid-ghost::after { content: "\f149b"; } +.lnid-glass-juice-1::before { content: "\f149e"; } +.lnid-glass-juice-1::after { content: "\f149d"; } +.lnid-glass-juice-2::before { content: "\f14a0"; } +.lnid-glass-juice-2::after { content: "\f149f"; } +.lnid-glasses-1::before { content: "\f14a2"; } +.lnid-glasses-1::after { content: "\f14a1"; } +.lnid-glasses-2::before { content: "\f14a4"; } +.lnid-glasses-2::after { content: "\f14a3"; } +.lnid-glasses-3::before { content: "\f14a6"; } +.lnid-glasses-3::after { content: "\f14a5"; } +.lnid-glasses-4::before { content: "\f14a8"; } +.lnid-glasses-4::after { content: "\f14a7"; } +.lnid-glasses-5::before { content: "\f14aa"; } +.lnid-glasses-5::after { content: "\f14a9"; } +.lnid-glasses-ai-1::before { content: "\f14ac"; } +.lnid-glasses-ai-1::after { content: "\f14ab"; } +.lnid-glasses-ai-2::before { content: "\f14ae"; } +.lnid-glasses-ai-2::after { content: "\f14ad"; } +.lnid-glasses-ai-3::before { content: "\f14b0"; } +.lnid-glasses-ai-3::after { content: "\f14af"; } +.lnid-globe-1::before { content: "\f14b2"; } +.lnid-globe-1::after { content: "\f14b1"; } +.lnid-globe-2::before { content: "\f14b4"; } +.lnid-globe-2::after { content: "\f14b3"; } +.lnid-globe-3::before { content: "\f14b6"; } +.lnid-globe-3::after { content: "\f14b5"; } +.lnid-globe-4::before { content: "\f14b8"; } +.lnid-globe-4::after { content: "\f14b7"; } +.lnid-globe-5::before { content: "\f14ba"; } +.lnid-globe-5::after { content: "\f14b9"; } +.lnid-globe-6::before { content: "\f14bc"; } +.lnid-globe-6::after { content: "\f14bb"; } +.lnid-globe-ai-1::before { content: "\f14be"; } +.lnid-globe-ai-1::after { content: "\f14bd"; } +.lnid-globe-ai-2::before { content: "\f14c0"; } +.lnid-globe-ai-2::after { content: "\f14bf"; } +.lnid-globe-ai-3::before { content: "\f14c2"; } +.lnid-globe-ai-3::after { content: "\f14c1"; } +.lnid-globe-ai-5::before { content: "\f14c4"; } +.lnid-globe-ai-5::after { content: "\f14c3"; } +.lnid-globe-ai-6::before { content: "\f14c6"; } +.lnid-globe-ai-6::after { content: "\f14c5"; } +.lnid-globe-disabled::before { content: "\f14c8"; } +.lnid-globe-disabled::after { content: "\f14c7"; } +.lnid-globe-envelope::before { content: "\f14ca"; } +.lnid-globe-envelope::after { content: "\f14c9"; } +.lnid-globe-stand::before { content: "\f14cc"; } +.lnid-globe-stand::after { content: "\f14cb"; } +.lnid-glove-boxing::before { content: "\f14ce"; } +.lnid-glove-boxing::after { content: "\f14cd"; } +.lnid-goblet::before { content: "\f14d0"; } +.lnid-goblet::after { content: "\f14cf"; } +.lnid-gold-bars::before { content: "\f14d2"; } +.lnid-gold-bars::after { content: "\f14d1"; } +.lnid-gorilla::before { content: "\f14d4"; } +.lnid-gorilla::after { content: "\f14d3"; } +.lnid-graduation-cap-1::before { content: "\f14d6"; } +.lnid-graduation-cap-1::after { content: "\f14d5"; } +.lnid-graduation-cap-2::before { content: "\f14d8"; } +.lnid-graduation-cap-2::after { content: "\f14d7"; } +.lnid-graduation-cap-3::before { content: "\f14da"; } +.lnid-graduation-cap-3::after { content: "\f14d9"; } +.lnid-grammer-check::before { content: "\f14dc"; } +.lnid-grammer-check::after { content: "\f14db"; } +.lnid-grapes-1::before { content: "\f14de"; } +.lnid-grapes-1::after { content: "\f14dd"; } +.lnid-grapes-2::before { content: "\f14e0"; } +.lnid-grapes-2::after { content: "\f14df"; } +.lnid-grass::before { content: "\f14e2"; } +.lnid-grass::after { content: "\f14e1"; } +.lnid-guava::before { content: "\f14e8"; } +.lnid-guava::after { content: "\f14e7"; } +.lnid-guava-leaf::before { content: "\f14e4"; } +.lnid-guava-leaf::after { content: "\f14e3"; } +.lnid-guava-slice::before { content: "\f14e6"; } +.lnid-guava-slice::after { content: "\f14e5"; } +.lnid-guiter::before { content: "\f14ea"; } +.lnid-guiter::after { content: "\f14e9"; } +.lnid-gym::before { content: "\f14ec"; } +.lnid-gym::after { content: "\f14eb"; } +.lnid-h2o::before { content: "\f14ee"; } +.lnid-h2o::after { content: "\f14ed"; } +.lnid-hair::before { content: "\f14f4"; } +.lnid-hair::after { content: "\f14f3"; } +.lnid-hair-ai::before { content: "\f14f0"; } +.lnid-hair-ai::after { content: "\f14ef"; } +.lnid-hair-curler::before { content: "\f14f2"; } +.lnid-hair-curler::after { content: "\f14f1"; } +.lnid-hairdryer::before { content: "\f14f6"; } +.lnid-hairdryer::after { content: "\f14f5"; } +.lnid-hammer-1::before { content: "\f14f8"; } +.lnid-hammer-1::after { content: "\f14f7"; } +.lnid-hammer-2::before { content: "\f14fa"; } +.lnid-hammer-2::after { content: "\f14f9"; } +.lnid-hammer-3::before { content: "\f14fc"; } +.lnid-hammer-3::after { content: "\f14fb"; } +.lnid-hand-give-take::before { content: "\f14fe"; } +.lnid-hand-give-take::after { content: "\f14fd"; } +.lnid-hand-grip::before { content: "\f1500"; } +.lnid-hand-grip::after { content: "\f14ff"; } +.lnid-hand-heart::before { content: "\f1502"; } +.lnid-hand-heart::after { content: "\f1501"; } +.lnid-hand-mic::before { content: "\f1506"; } +.lnid-hand-mic::after { content: "\f1505"; } +.lnid-hand-mic-stand::before { content: "\f1504"; } +.lnid-hand-mic-stand::after { content: "\f1503"; } +.lnid-hand-pointed-down::before { content: "\f1508"; } +.lnid-hand-pointed-down::after { content: "\f1507"; } +.lnid-hand-pointed-left::before { content: "\f150a"; } +.lnid-hand-pointed-left::after { content: "\f1509"; } +.lnid-hand-pointed-right::before { content: "\f150c"; } +.lnid-hand-pointed-right::after { content: "\f150b"; } +.lnid-hand-pointed-up::before { content: "\f150e"; } +.lnid-hand-pointed-up::after { content: "\f150d"; } +.lnid-hand-shake::before { content: "\f1514"; } +.lnid-hand-shake::after { content: "\f1513"; } +.lnid-hand-shake-circle::before { content: "\f1510"; } +.lnid-hand-shake-circle::after { content: "\f150f"; } +.lnid-hand-shake-square::before { content: "\f1512"; } +.lnid-hand-shake-square::after { content: "\f1511"; } +.lnid-hand-stop::before { content: "\f1516"; } +.lnid-hand-stop::after { content: "\f1515"; } +.lnid-hand-taking::before { content: "\f152e"; } +.lnid-hand-taking::after { content: "\f152d"; } +.lnid-hand-taking-bar-chart::before { content: "\f1518"; } +.lnid-hand-taking-bar-chart::after { content: "\f1517"; } +.lnid-hand-taking-beat::before { content: "\f151a"; } +.lnid-hand-taking-beat::after { content: "\f1519"; } +.lnid-hand-taking-bulb::before { content: "\f151c"; } +.lnid-hand-taking-bulb::after { content: "\f151b"; } +.lnid-hand-taking-coins::before { content: "\f151e"; } +.lnid-hand-taking-coins::after { content: "\f151d"; } +.lnid-hand-taking-dollar::before { content: "\f1520"; } +.lnid-hand-taking-dollar::after { content: "\f151f"; } +.lnid-hand-taking-heart::before { content: "\f1522"; } +.lnid-hand-taking-heart::after { content: "\f1521"; } +.lnid-hand-taking-leaf-1::before { content: "\f1524"; } +.lnid-hand-taking-leaf-1::after { content: "\f1523"; } +.lnid-hand-taking-leaf-2::before { content: "\f1526"; } +.lnid-hand-taking-leaf-2::after { content: "\f1525"; } +.lnid-hand-taking-plus::before { content: "\f1528"; } +.lnid-hand-taking-plus::after { content: "\f1527"; } +.lnid-hand-taking-trend-up::before { content: "\f152a"; } +.lnid-hand-taking-trend-up::after { content: "\f1529"; } +.lnid-hand-taking-user::before { content: "\f152c"; } +.lnid-hand-taking-user::after { content: "\f152b"; } +.lnid-hands-holding::before { content: "\f1532"; } +.lnid-hands-holding::after { content: "\f1531"; } +.lnid-hands-holding-ai::before { content: "\f1530"; } +.lnid-hands-holding-ai::after { content: "\f152f"; } +.lnid-hanger::before { content: "\f1534"; } +.lnid-hanger::after { content: "\f1533"; } +.lnid-hanging-rings::before { content: "\f1536"; } +.lnid-hanging-rings::after { content: "\f1535"; } +.lnid-hash::before { content: "\f1538"; } +.lnid-hash::after { content: "\f1537"; } +.lnid-hat-1::before { content: "\f153a"; } +.lnid-hat-1::after { content: "\f1539"; } +.lnid-hat-2::before { content: "\f153c"; } +.lnid-hat-2::after { content: "\f153b"; } +.lnid-hat-chef-1::before { content: "\f153e"; } +.lnid-hat-chef-1::after { content: "\f153d"; } +.lnid-hat-chef-2::before { content: "\f1540"; } +.lnid-hat-chef-2::after { content: "\f153f"; } +.lnid-hat-chef-3::before { content: "\f1542"; } +.lnid-hat-chef-3::after { content: "\f1541"; } +.lnid-hat-chef-4::before { content: "\f1544"; } +.lnid-hat-chef-4::after { content: "\f1543"; } +.lnid-hat-chef-5::before { content: "\f1546"; } +.lnid-hat-chef-5::after { content: "\f1545"; } +.lnid-hat-chef-6::before { content: "\f1548"; } +.lnid-hat-chef-6::after { content: "\f1547"; } +.lnid-hat-winter-1::before { content: "\f154a"; } +.lnid-hat-winter-1::after { content: "\f1549"; } +.lnid-hat-winter-2::before { content: "\f154c"; } +.lnid-hat-winter-2::after { content: "\f154b"; } +.lnid-hat-wizard-1::before { content: "\f154e"; } +.lnid-hat-wizard-1::after { content: "\f154d"; } +.lnid-hat-wizard-2::before { content: "\f1550"; } +.lnid-hat-wizard-2::after { content: "\f154f"; } +.lnid-hat-wizard-3::before { content: "\f1552"; } +.lnid-hat-wizard-3::after { content: "\f1551"; } +.lnid-hat-wizard-4::before { content: "\f1554"; } +.lnid-hat-wizard-4::after { content: "\f1553"; } +.lnid-hat-wizard-5::before { content: "\f1556"; } +.lnid-hat-wizard-5::after { content: "\f1555"; } +.lnid-hd::before { content: "\f155a"; } +.lnid-hd::after { content: "\f1559"; } +.lnid-hd-ai::before { content: "\f1558"; } +.lnid-hd-ai::after { content: "\f1557"; } +.lnid-hdd-ai::before { content: "\f155c"; } +.lnid-hdd-ai::after { content: "\f155b"; } +.lnid-hdd-bar-chart::before { content: "\f155e"; } +.lnid-hdd-bar-chart::after { content: "\f155d"; } +.lnid-hdd-beat::before { content: "\f1560"; } +.lnid-hdd-beat::after { content: "\f155f"; } +.lnid-hdd-binary::before { content: "\f1562"; } +.lnid-hdd-binary::after { content: "\f1561"; } +.lnid-hdd-bolt::before { content: "\f1564"; } +.lnid-hdd-bolt::after { content: "\f1563"; } +.lnid-hdd-bug::before { content: "\f1566"; } +.lnid-hdd-bug::after { content: "\f1565"; } +.lnid-hdd-check-circle::before { content: "\f1568"; } +.lnid-hdd-check-circle::after { content: "\f1567"; } +.lnid-hdd-cloud::before { content: "\f156a"; } +.lnid-hdd-cloud::after { content: "\f1569"; } +.lnid-hdd-code-1::before { content: "\f156c"; } +.lnid-hdd-code-1::after { content: "\f156b"; } +.lnid-hdd-code-2::before { content: "\f156e"; } +.lnid-hdd-code-2::after { content: "\f156d"; } +.lnid-hdd-database::before { content: "\f1570"; } +.lnid-hdd-database::after { content: "\f156f"; } +.lnid-hdd-disabled-1::before { content: "\f1572"; } +.lnid-hdd-disabled-1::after { content: "\f1571"; } +.lnid-hdd-disabled-2::before { content: "\f1574"; } +.lnid-hdd-disabled-2::after { content: "\f1573"; } +.lnid-hdd-disabled-3::before { content: "\f1576"; } +.lnid-hdd-disabled-3::after { content: "\f1575"; } +.lnid-hdd-error-circle::before { content: "\f1578"; } +.lnid-hdd-error-circle::after { content: "\f1577"; } +.lnid-hdd-fire::before { content: "\f157a"; } +.lnid-hdd-fire::after { content: "\f1579"; } +.lnid-hdd-gear::before { content: "\f157c"; } +.lnid-hdd-gear::after { content: "\f157b"; } +.lnid-hdd-info-circle::before { content: "\f157e"; } +.lnid-hdd-info-circle::after { content: "\f157d"; } +.lnid-hdd-leaf::before { content: "\f1580"; } +.lnid-hdd-leaf::after { content: "\f157f"; } +.lnid-hdd-locked::before { content: "\f1582"; } +.lnid-hdd-locked::after { content: "\f1581"; } +.lnid-hdd-pencil::before { content: "\f1584"; } +.lnid-hdd-pencil::after { content: "\f1583"; } +.lnid-hdd-pie-chart::before { content: "\f1586"; } +.lnid-hdd-pie-chart::after { content: "\f1585"; } +.lnid-hdd-recycle::before { content: "\f1588"; } +.lnid-hdd-recycle::after { content: "\f1587"; } +.lnid-hdd-refresh::before { content: "\f158a"; } +.lnid-hdd-refresh::after { content: "\f1589"; } +.lnid-hdd-search::before { content: "\f158c"; } +.lnid-hdd-search::after { content: "\f158b"; } +.lnid-hdd-shield::before { content: "\f158e"; } +.lnid-hdd-shield::after { content: "\f158d"; } +.lnid-hdd-trash::before { content: "\f1590"; } +.lnid-hdd-trash::after { content: "\f158f"; } +.lnid-hdd-trend-down::before { content: "\f1592"; } +.lnid-hdd-trend-down::after { content: "\f1591"; } +.lnid-hdd-trend-up::before { content: "\f1594"; } +.lnid-hdd-trend-up::after { content: "\f1593"; } +.lnid-hdd-xmark-circle::before { content: "\f1596"; } +.lnid-hdd-xmark-circle::after { content: "\f1595"; } +.lnid-head-bulb-1::before { content: "\f1598"; } +.lnid-head-bulb-1::after { content: "\f1597"; } +.lnid-head-bulb-2::before { content: "\f159a"; } +.lnid-head-bulb-2::after { content: "\f1599"; } +.lnid-head-side-ai-1::before { content: "\f159c"; } +.lnid-head-side-ai-1::after { content: "\f159b"; } +.lnid-head-side-ai-2::before { content: "\f159e"; } +.lnid-head-side-ai-2::after { content: "\f159d"; } +.lnid-head-side-chip-1::before { content: "\f15a0"; } +.lnid-head-side-chip-1::after { content: "\f159f"; } +.lnid-head-side-chip-2::before { content: "\f15a2"; } +.lnid-head-side-chip-2::after { content: "\f15a1"; } +.lnid-head-side-code-1::before { content: "\f15a4"; } +.lnid-head-side-code-1::after { content: "\f15a3"; } +.lnid-head-side-code-2::before { content: "\f15a6"; } +.lnid-head-side-code-2::after { content: "\f15a5"; } +.lnid-head-side-dollar::before { content: "\f15a8"; } +.lnid-head-side-dollar::after { content: "\f15a7"; } +.lnid-head-side-simple-code-1::before { content: "\f15aa"; } +.lnid-head-side-simple-code-1::after { content: "\f15a9"; } +.lnid-head-side-simple-code-2::before { content: "\f15ac"; } +.lnid-head-side-simple-code-2::after { content: "\f15ab"; } +.lnid-headband-heart::before { content: "\f15ae"; } +.lnid-headband-heart::after { content: "\f15ad"; } +.lnid-headphone-1::before { content: "\f15b6"; } +.lnid-headphone-1::after { content: "\f15b5"; } +.lnid-headphone-1-disabled::before { content: "\f15b0"; } +.lnid-headphone-1-disabled::after { content: "\f15af"; } +.lnid-headphone-1-mic::before { content: "\f15b4"; } +.lnid-headphone-1-mic::after { content: "\f15b3"; } +.lnid-headphone-1-mic-disabled::before { content: "\f15b2"; } +.lnid-headphone-1-mic-disabled::after { content: "\f15b1"; } +.lnid-headphone-2::before { content: "\f15ba"; } +.lnid-headphone-2::after { content: "\f15b9"; } +.lnid-headphone-2-disabled::before { content: "\f15b8"; } +.lnid-headphone-2-disabled::after { content: "\f15b7"; } +.lnid-headphone-3::before { content: "\f15be"; } +.lnid-headphone-3::after { content: "\f15bd"; } +.lnid-headphone-3-disabled::before { content: "\f15bc"; } +.lnid-headphone-3-disabled::after { content: "\f15bb"; } +.lnid-headphone-ai::before { content: "\f15c0"; } +.lnid-headphone-ai::after { content: "\f15bf"; } +.lnid-headphone-bluetooth::before { content: "\f15c2"; } +.lnid-headphone-bluetooth::after { content: "\f15c1"; } +.lnid-headphone-book::before { content: "\f15c4"; } +.lnid-headphone-book::after { content: "\f15c3"; } +.lnid-headphone-check-circle::before { content: "\f15c6"; } +.lnid-headphone-check-circle::after { content: "\f15c5"; } +.lnid-headphone-gear::before { content: "\f15c8"; } +.lnid-headphone-gear::after { content: "\f15c7"; } +.lnid-headphone-play::before { content: "\f15ca"; } +.lnid-headphone-play::after { content: "\f15c9"; } +.lnid-headphone-plus-circle::before { content: "\f15cc"; } +.lnid-headphone-plus-circle::after { content: "\f15cb"; } +.lnid-headphone-wifi::before { content: "\f15ce"; } +.lnid-headphone-wifi::after { content: "\f15cd"; } +.lnid-headphone-xmark-circle::before { content: "\f15d0"; } +.lnid-headphone-xmark-circle::after { content: "\f15cf"; } +.lnid-heart::before { content: "\f15dc"; } +.lnid-heart::after { content: "\f15db"; } +.lnid-heart-beat::before { content: "\f15d2"; } +.lnid-heart-beat::after { content: "\f15d1"; } +.lnid-heart-check::before { content: "\f15d4"; } +.lnid-heart-check::after { content: "\f15d3"; } +.lnid-heart-leaf::before { content: "\f15d6"; } +.lnid-heart-leaf::after { content: "\f15d5"; } +.lnid-heart-plus::before { content: "\f15d8"; } +.lnid-heart-plus::after { content: "\f15d7"; } +.lnid-heart-potion::before { content: "\f15da"; } +.lnid-heart-potion::after { content: "\f15d9"; } +.lnid-hearts::before { content: "\f15de"; } +.lnid-hearts::after { content: "\f15dd"; } +.lnid-helicopter-1::before { content: "\f15e0"; } +.lnid-helicopter-1::after { content: "\f15df"; } +.lnid-helicopter-2::before { content: "\f15e2"; } +.lnid-helicopter-2::after { content: "\f15e1"; } +.lnid-helmet-safety-1::before { content: "\f15e4"; } +.lnid-helmet-safety-1::after { content: "\f15e3"; } +.lnid-helmet-safety-2::before { content: "\f15e6"; } +.lnid-helmet-safety-2::after { content: "\f15e5"; } +.lnid-hen-1::before { content: "\f15e8"; } +.lnid-hen-1::after { content: "\f15e7"; } +.lnid-hexagon::before { content: "\f15ee"; } +.lnid-hexagon::after { content: "\f15ed"; } +.lnid-hexagon-code-ai::before { content: "\f15ea"; } +.lnid-hexagon-code-ai::after { content: "\f15e9"; } +.lnid-hexagon-code-simple-ai::before { content: "\f15ec"; } +.lnid-hexagon-code-simple-ai::after { content: "\f15eb"; } +.lnid-hexagons::before { content: "\f15f0"; } +.lnid-hexagons::after { content: "\f15ef"; } +.lnid-hierarchy-1::before { content: "\f15f2"; } +.lnid-hierarchy-1::after { content: "\f15f1"; } +.lnid-hierarchy-2::before { content: "\f15f4"; } +.lnid-hierarchy-2::after { content: "\f15f3"; } +.lnid-hierarchy-3::before { content: "\f15f6"; } +.lnid-hierarchy-3::after { content: "\f15f5"; } +.lnid-hierarchy-4::before { content: "\f15f8"; } +.lnid-hierarchy-4::after { content: "\f15f7"; } +.lnid-hierarchy-5::before { content: "\f15fa"; } +.lnid-hierarchy-5::after { content: "\f15f9"; } +.lnid-hierarchy-6::before { content: "\f15fc"; } +.lnid-hierarchy-6::after { content: "\f15fb"; } +.lnid-hierarchy-7::before { content: "\f15fe"; } +.lnid-hierarchy-7::after { content: "\f15fd"; } +.lnid-hierarchy-8::before { content: "\f1600"; } +.lnid-hierarchy-8::after { content: "\f15ff"; } +.lnid-high-heel-1::before { content: "\f1602"; } +.lnid-high-heel-1::after { content: "\f1601"; } +.lnid-high-heel-2::before { content: "\f1604"; } +.lnid-high-heel-2::after { content: "\f1603"; } +.lnid-high-heel-3::before { content: "\f1606"; } +.lnid-high-heel-3::after { content: "\f1605"; } +.lnid-highlighter-1::before { content: "\f1608"; } +.lnid-highlighter-1::after { content: "\f1607"; } +.lnid-highlighter-2::before { content: "\f160a"; } +.lnid-highlighter-2::after { content: "\f1609"; } +.lnid-highlighter-3::before { content: "\f160c"; } +.lnid-highlighter-3::after { content: "\f160b"; } +.lnid-highlighter-ai::before { content: "\f160e"; } +.lnid-highlighter-ai::after { content: "\f160d"; } +.lnid-hiking::before { content: "\f1610"; } +.lnid-hiking::after { content: "\f160f"; } +.lnid-hill-flag::before { content: "\f1612"; } +.lnid-hill-flag::after { content: "\f1611"; } +.lnid-history-horizontal::before { content: "\f1614"; } +.lnid-history-horizontal::after { content: "\f1613"; } +.lnid-history-page::before { content: "\f1616"; } +.lnid-history-page::after { content: "\f1615"; } +.lnid-history-time::before { content: "\f1618"; } +.lnid-history-time::after { content: "\f1617"; } +.lnid-history-trash::before { content: "\f161a"; } +.lnid-history-trash::after { content: "\f1619"; } +.lnid-history-user::before { content: "\f161c"; } +.lnid-history-user::after { content: "\f161b"; } +.lnid-history-vertical::before { content: "\f161e"; } +.lnid-history-vertical::after { content: "\f161d"; } +.lnid-holy-book-1::before { content: "\f1620"; } +.lnid-holy-book-1::after { content: "\f161f"; } +.lnid-holy-book-2::before { content: "\f1622"; } +.lnid-holy-book-2::after { content: "\f1621"; } +.lnid-holy-book-3::before { content: "\f1624"; } +.lnid-holy-book-3::after { content: "\f1623"; } +.lnid-home-1::before { content: "\f1626"; } +.lnid-home-1::after { content: "\f1625"; } +.lnid-home-2::before { content: "\f1628"; } +.lnid-home-2::after { content: "\f1627"; } +.lnid-home-3::before { content: "\f162a"; } +.lnid-home-3::after { content: "\f1629"; } +.lnid-home-4::before { content: "\f162c"; } +.lnid-home-4::after { content: "\f162b"; } +.lnid-home-ai-1::before { content: "\f162e"; } +.lnid-home-ai-1::after { content: "\f162d"; } +.lnid-home-ai-2::before { content: "\f1630"; } +.lnid-home-ai-2::after { content: "\f162f"; } +.lnid-home-arrow-downward-1::before { content: "\f1632"; } +.lnid-home-arrow-downward-1::after { content: "\f1631"; } +.lnid-home-arrow-downward-2::before { content: "\f1634"; } +.lnid-home-arrow-downward-2::after { content: "\f1633"; } +.lnid-home-arrow-left-1::before { content: "\f1636"; } +.lnid-home-arrow-left-1::after { content: "\f1635"; } +.lnid-home-arrow-left-2::before { content: "\f1638"; } +.lnid-home-arrow-left-2::after { content: "\f1637"; } +.lnid-home-arrow-right-1::before { content: "\f163a"; } +.lnid-home-arrow-right-1::after { content: "\f1639"; } +.lnid-home-arrow-right-2::before { content: "\f163c"; } +.lnid-home-arrow-right-2::after { content: "\f163b"; } +.lnid-home-arrow-upward-1::before { content: "\f163e"; } +.lnid-home-arrow-upward-1::after { content: "\f163d"; } +.lnid-home-arrow-upward-2::before { content: "\f1640"; } +.lnid-home-arrow-upward-2::after { content: "\f163f"; } +.lnid-home-check-circle::before { content: "\f1642"; } +.lnid-home-check-circle::after { content: "\f1641"; } +.lnid-home-disabled-1::before { content: "\f1644"; } +.lnid-home-disabled-1::after { content: "\f1643"; } +.lnid-home-disabled-2::before { content: "\f1646"; } +.lnid-home-disabled-2::after { content: "\f1645"; } +.lnid-home-fire-1::before { content: "\f1648"; } +.lnid-home-fire-1::after { content: "\f1647"; } +.lnid-home-fire-2::before { content: "\f164a"; } +.lnid-home-fire-2::after { content: "\f1649"; } +.lnid-home-gear-1::before { content: "\f164c"; } +.lnid-home-gear-1::after { content: "\f164b"; } +.lnid-home-gear-2::before { content: "\f164e"; } +.lnid-home-gear-2::after { content: "\f164d"; } +.lnid-home-heart::before { content: "\f1652"; } +.lnid-home-heart::after { content: "\f1651"; } +.lnid-home-heart-circle::before { content: "\f1650"; } +.lnid-home-heart-circle::after { content: "\f164f"; } +.lnid-home-info::before { content: "\f1654"; } +.lnid-home-info::after { content: "\f1653"; } +.lnid-home-leaf-1::before { content: "\f1656"; } +.lnid-home-leaf-1::after { content: "\f1655"; } +.lnid-home-leaf-2::before { content: "\f1658"; } +.lnid-home-leaf-2::after { content: "\f1657"; } +.lnid-home-lokced-1::before { content: "\f165a"; } +.lnid-home-lokced-1::after { content: "\f1659"; } +.lnid-home-lokced-2::before { content: "\f165c"; } +.lnid-home-lokced-2::after { content: "\f165b"; } +.lnid-home-minus-circle::before { content: "\f165e"; } +.lnid-home-minus-circle::after { content: "\f165d"; } +.lnid-home-moon-1::before { content: "\f1660"; } +.lnid-home-moon-1::after { content: "\f165f"; } +.lnid-home-moon-2::before { content: "\f1662"; } +.lnid-home-moon-2::after { content: "\f1661"; } +.lnid-home-pencil-1::before { content: "\f1664"; } +.lnid-home-pencil-1::after { content: "\f1663"; } +.lnid-home-pencil-2::before { content: "\f1666"; } +.lnid-home-pencil-2::after { content: "\f1665"; } +.lnid-home-percent-1::before { content: "\f1668"; } +.lnid-home-percent-1::after { content: "\f1667"; } +.lnid-home-percent-2::before { content: "\f166a"; } +.lnid-home-percent-2::after { content: "\f1669"; } +.lnid-home-play-2::before { content: "\f166c"; } +.lnid-home-play-2::after { content: "\f166b"; } +.lnid-home-plus::before { content: "\f1670"; } +.lnid-home-plus::after { content: "\f166f"; } +.lnid-home-plus-circle::before { content: "\f166e"; } +.lnid-home-plus-circle::after { content: "\f166d"; } +.lnid-home-question-mark-1::before { content: "\f1672"; } +.lnid-home-question-mark-1::after { content: "\f1671"; } +.lnid-home-question-mark-2::before { content: "\f1674"; } +.lnid-home-question-mark-2::after { content: "\f1673"; } +.lnid-home-sleep::before { content: "\f1676"; } +.lnid-home-sleep::after { content: "\f1675"; } +.lnid-home-smile::before { content: "\f1678"; } +.lnid-home-smile::after { content: "\f1677"; } +.lnid-home-star::before { content: "\f167a"; } +.lnid-home-star::after { content: "\f1679"; } +.lnid-home-sun-1::before { content: "\f167c"; } +.lnid-home-sun-1::after { content: "\f167b"; } +.lnid-home-sun-2::before { content: "\f167e"; } +.lnid-home-sun-2::after { content: "\f167d"; } +.lnid-home-time::before { content: "\f1680"; } +.lnid-home-time::after { content: "\f167f"; } +.lnid-home-trash-1::before { content: "\f1682"; } +.lnid-home-trash-1::after { content: "\f1681"; } +.lnid-home-trash-2::before { content: "\f1684"; } +.lnid-home-trash-2::after { content: "\f1683"; } +.lnid-home-user-1::before { content: "\f1686"; } +.lnid-home-user-1::after { content: "\f1685"; } +.lnid-home-user-2::before { content: "\f1688"; } +.lnid-home-user-2::after { content: "\f1687"; } +.lnid-home-wifi-1::before { content: "\f168a"; } +.lnid-home-wifi-1::after { content: "\f1689"; } +.lnid-home-wifi-2::before { content: "\f168c"; } +.lnid-home-wifi-2::after { content: "\f168b"; } +.lnid-home-xmark::before { content: "\f1690"; } +.lnid-home-xmark::after { content: "\f168f"; } +.lnid-home-xmark-circle::before { content: "\f168e"; } +.lnid-home-xmark-circle::after { content: "\f168d"; } +.lnid-hop::before { content: "\f1692"; } +.lnid-hop::after { content: "\f1691"; } +.lnid-horse::before { content: "\f1694"; } +.lnid-horse::after { content: "\f1693"; } +.lnid-hospital-1::before { content: "\f1698"; } +.lnid-hospital-1::after { content: "\f1697"; } +.lnid-hospital-10::before { content: "\f1696"; } +.lnid-hospital-10::after { content: "\f1695"; } +.lnid-hospital-2::before { content: "\f169a"; } +.lnid-hospital-2::after { content: "\f1699"; } +.lnid-hospital-3::before { content: "\f169c"; } +.lnid-hospital-3::after { content: "\f169b"; } +.lnid-hospital-4::before { content: "\f169e"; } +.lnid-hospital-4::after { content: "\f169d"; } +.lnid-hospital-5::before { content: "\f16a0"; } +.lnid-hospital-5::after { content: "\f169f"; } +.lnid-hospital-6::before { content: "\f16a2"; } +.lnid-hospital-6::after { content: "\f16a1"; } +.lnid-hospital-7::before { content: "\f16a4"; } +.lnid-hospital-7::after { content: "\f16a3"; } +.lnid-hospital-8::before { content: "\f16a6"; } +.lnid-hospital-8::after { content: "\f16a5"; } +.lnid-hospital-9::before { content: "\f16a8"; } +.lnid-hospital-9::after { content: "\f16a7"; } +.lnid-hospital-ai-1::before { content: "\f16aa"; } +.lnid-hospital-ai-1::after { content: "\f16a9"; } +.lnid-hospital-ai-2::before { content: "\f16ac"; } +.lnid-hospital-ai-2::after { content: "\f16ab"; } +.lnid-hospital-ai-3::before { content: "\f16ae"; } +.lnid-hospital-ai-3::after { content: "\f16ad"; } +.lnid-hospital-ai-4::before { content: "\f16b0"; } +.lnid-hospital-ai-4::after { content: "\f16af"; } +.lnid-hospital-ai-5::before { content: "\f16b4"; } +.lnid-hospital-ai-5::after { content: "\f16b3"; } +.lnid-hospital-ai-5-1::before { content: "\f16b2"; } +.lnid-hospital-ai-5-1::after { content: "\f16b1"; } +.lnid-hospital-bed-1::before { content: "\f16b8"; } +.lnid-hospital-bed-1::after { content: "\f16b7"; } +.lnid-hospital-bed-10::before { content: "\f16b6"; } +.lnid-hospital-bed-10::after { content: "\f16b5"; } +.lnid-hospital-bed-2::before { content: "\f16ba"; } +.lnid-hospital-bed-2::after { content: "\f16b9"; } +.lnid-hospital-bed-3::before { content: "\f16bc"; } +.lnid-hospital-bed-3::after { content: "\f16bb"; } +.lnid-hospital-bed-4::before { content: "\f16be"; } +.lnid-hospital-bed-4::after { content: "\f16bd"; } +.lnid-hospital-bed-5::before { content: "\f16c0"; } +.lnid-hospital-bed-5::after { content: "\f16bf"; } +.lnid-hospital-bed-6::before { content: "\f16c2"; } +.lnid-hospital-bed-6::after { content: "\f16c1"; } +.lnid-hospital-bed-7::before { content: "\f16c4"; } +.lnid-hospital-bed-7::after { content: "\f16c3"; } +.lnid-hospital-bed-8::before { content: "\f16c6"; } +.lnid-hospital-bed-8::after { content: "\f16c5"; } +.lnid-hospital-bed-9::before { content: "\f16c8"; } +.lnid-hospital-bed-9::after { content: "\f16c7"; } +.lnid-hospital-h::before { content: "\f16ca"; } +.lnid-hospital-h::after { content: "\f16c9"; } +.lnid-hospital-plus::before { content: "\f16cc"; } +.lnid-hospital-plus::after { content: "\f16cb"; } +.lnid-hot-air-balloon-1::before { content: "\f16ce"; } +.lnid-hot-air-balloon-1::after { content: "\f16cd"; } +.lnid-hot-air-balloon-2::before { content: "\f16d0"; } +.lnid-hot-air-balloon-2::after { content: "\f16cf"; } +.lnid-hot-pepper::before { content: "\f16d2"; } +.lnid-hot-pepper::after { content: "\f16d1"; } +.lnid-hotdog::before { content: "\f16d4"; } +.lnid-hotdog::after { content: "\f16d3"; } +.lnid-hourglass::before { content: "\f16fc"; } +.lnid-hourglass::after { content: "\f16fb"; } +.lnid-hourglass-add::before { content: "\f16d6"; } +.lnid-hourglass-add::after { content: "\f16d5"; } +.lnid-hourglass-beat::before { content: "\f16d8"; } +.lnid-hourglass-beat::after { content: "\f16d7"; } +.lnid-hourglass-bottom-filled::before { content: "\f16da"; } +.lnid-hourglass-bottom-filled::after { content: "\f16d9"; } +.lnid-hourglass-check::before { content: "\f16dc"; } +.lnid-hourglass-check::after { content: "\f16db"; } +.lnid-hourglass-close::before { content: "\f16de"; } +.lnid-hourglass-close::after { content: "\f16dd"; } +.lnid-hourglass-disabled::before { content: "\f16e0"; } +.lnid-hourglass-disabled::after { content: "\f16df"; } +.lnid-hourglass-dollar::before { content: "\f16e2"; } +.lnid-hourglass-dollar::after { content: "\f16e1"; } +.lnid-hourglass-error::before { content: "\f16e4"; } +.lnid-hourglass-error::after { content: "\f16e3"; } +.lnid-hourglass-fifty::before { content: "\f16e6"; } +.lnid-hourglass-fifty::after { content: "\f16e5"; } +.lnid-hourglass-half::before { content: "\f16e8"; } +.lnid-hourglass-half::after { content: "\f16e7"; } +.lnid-hourglass-locked::before { content: "\f16ea"; } +.lnid-hourglass-locked::after { content: "\f16e9"; } +.lnid-hourglass-moon::before { content: "\f16ec"; } +.lnid-hourglass-moon::after { content: "\f16eb"; } +.lnid-hourglass-percent::before { content: "\f16ee"; } +.lnid-hourglass-percent::after { content: "\f16ed"; } +.lnid-hourglass-play::before { content: "\f16f0"; } +.lnid-hourglass-play::after { content: "\f16ef"; } +.lnid-hourglass-sun::before { content: "\f16f2"; } +.lnid-hourglass-sun::after { content: "\f16f1"; } +.lnid-hourglass-ten::before { content: "\f16f4"; } +.lnid-hourglass-ten::after { content: "\f16f3"; } +.lnid-hourglass-time::before { content: "\f16f6"; } +.lnid-hourglass-time::after { content: "\f16f5"; } +.lnid-hourglass-top-filled::before { content: "\f16f8"; } +.lnid-hourglass-top-filled::after { content: "\f16f7"; } +.lnid-hourglass-trash::before { content: "\f16fa"; } +.lnid-hourglass-trash::after { content: "\f16f9"; } +.lnid-house-document::before { content: "\f1700"; } +.lnid-house-document::after { content: "\f16ff"; } +.lnid-house-document-ai::before { content: "\f16fe"; } +.lnid-house-document-ai::after { content: "\f16fd"; } +.lnid-house-dollar::before { content: "\f1702"; } +.lnid-house-dollar::after { content: "\f1701"; } +.lnid-house-map-marker::before { content: "\f1704"; } +.lnid-house-map-marker::after { content: "\f1703"; } +.lnid-house-plan-1::before { content: "\f1706"; } +.lnid-house-plan-1::after { content: "\f1705"; } +.lnid-house-plan-2::before { content: "\f1708"; } +.lnid-house-plan-2::after { content: "\f1707"; } +.lnid-house-plan-3::before { content: "\f170a"; } +.lnid-house-plan-3::after { content: "\f1709"; } +.lnid-house-plan-4::before { content: "\f170c"; } +.lnid-house-plan-4::after { content: "\f170b"; } +.lnid-house-plan-5::before { content: "\f170e"; } +.lnid-house-plan-5::after { content: "\f170d"; } +.lnid-house-shield::before { content: "\f1710"; } +.lnid-house-shield::after { content: "\f170f"; } +.lnid-house-smart-control::before { content: "\f1712"; } +.lnid-house-smart-control::after { content: "\f1711"; } +.lnid-house-star::before { content: "\f1714"; } +.lnid-house-star::after { content: "\f1713"; } +.lnid-house-website::before { content: "\f1718"; } +.lnid-house-website::after { content: "\f1717"; } +.lnid-house-website-ai::before { content: "\f1716"; } +.lnid-house-website-ai::after { content: "\f1715"; } +.lnid-house-wifi::before { content: "\f171a"; } +.lnid-house-wifi::after { content: "\f1719"; } +.lnid-houses-ai::before { content: "\f171c"; } +.lnid-houses-ai::after { content: "\f171b"; } +.lnid-hut-1::before { content: "\f171e"; } +.lnid-hut-1::after { content: "\f171d"; } +.lnid-hut-2::before { content: "\f1720"; } +.lnid-hut-2::after { content: "\f171f"; } +.lnid-hut-3::before { content: "\f1722"; } +.lnid-hut-3::after { content: "\f1721"; } +.lnid-hydra-1::before { content: "\f1724"; } +.lnid-hydra-1::after { content: "\f1723"; } +.lnid-hydra-2::before { content: "\f1726"; } +.lnid-hydra-2::after { content: "\f1725"; } +.lnid-ice-cream-bar::before { content: "\f1728"; } +.lnid-ice-cream-bar::after { content: "\f1727"; } +.lnid-ice-cream-cone-1::before { content: "\f172a"; } +.lnid-ice-cream-cone-1::after { content: "\f1729"; } +.lnid-ice-cream-cone-2::before { content: "\f172c"; } +.lnid-ice-cream-cone-2::after { content: "\f172b"; } +.lnid-ice-cream-cup::before { content: "\f172e"; } +.lnid-ice-cream-cup::after { content: "\f172d"; } +.lnid-icicles::before { content: "\f1730"; } +.lnid-icicles::after { content: "\f172f"; } +.lnid-id-airplane-1::before { content: "\f1732"; } +.lnid-id-airplane-1::after { content: "\f1731"; } +.lnid-id-airplane-2::before { content: "\f1734"; } +.lnid-id-airplane-2::after { content: "\f1733"; } +.lnid-id-airplane-3::before { content: "\f1736"; } +.lnid-id-airplane-3::after { content: "\f1735"; } +.lnid-id-airplane-4::before { content: "\f1738"; } +.lnid-id-airplane-4::after { content: "\f1737"; } +.lnid-id-badge::before { content: "\f173a"; } +.lnid-id-badge::after { content: "\f1739"; } +.lnid-id-card::before { content: "\f1740"; } +.lnid-id-card::after { content: "\f173f"; } +.lnid-id-card-ai::before { content: "\f173c"; } +.lnid-id-card-ai::after { content: "\f173b"; } +.lnid-id-card-clip::before { content: "\f173e"; } +.lnid-id-card-clip::after { content: "\f173d"; } +.lnid-image-ai::before { content: "\f1742"; } +.lnid-image-ai::after { content: "\f1741"; } +.lnid-indent::before { content: "\f1744"; } +.lnid-indent::after { content: "\f1743"; } +.lnid-info::before { content: "\f1752"; } +.lnid-info::after { content: "\f1751"; } +.lnid-info-circle::before { content: "\f1746"; } +.lnid-info-circle::after { content: "\f1745"; } +.lnid-info-decagram::before { content: "\f1748"; } +.lnid-info-decagram::after { content: "\f1747"; } +.lnid-info-hexagon::before { content: "\f174a"; } +.lnid-info-hexagon::after { content: "\f1749"; } +.lnid-info-octagon::before { content: "\f174c"; } +.lnid-info-octagon::after { content: "\f174b"; } +.lnid-info-square::before { content: "\f174e"; } +.lnid-info-square::after { content: "\f174d"; } +.lnid-info-triangle::before { content: "\f1750"; } +.lnid-info-triangle::after { content: "\f174f"; } +.lnid-infrared-horizontal::before { content: "\f1754"; } +.lnid-infrared-horizontal::after { content: "\f1753"; } +.lnid-infrared-vertical::before { content: "\f1756"; } +.lnid-infrared-vertical::after { content: "\f1755"; } +.lnid-inhaler::before { content: "\f1758"; } +.lnid-inhaler::after { content: "\f1757"; } +.lnid-injection-1::before { content: "\f175a"; } +.lnid-injection-1::after { content: "\f1759"; } +.lnid-injection-2::before { content: "\f175c"; } +.lnid-injection-2::after { content: "\f175b"; } +.lnid-interpreter-hands::before { content: "\f175e"; } +.lnid-interpreter-hands::after { content: "\f175d"; } +.lnid-intersect-selection::before { content: "\f1760"; } +.lnid-intersect-selection::after { content: "\f175f"; } +.lnid-invitation::before { content: "\f1762"; } +.lnid-invitation::after { content: "\f1761"; } +.lnid-island-1::before { content: "\f1764"; } +.lnid-island-1::after { content: "\f1763"; } +.lnid-island-2::before { content: "\f1766"; } +.lnid-island-2::after { content: "\f1765"; } +.lnid-island-3::before { content: "\f1768"; } +.lnid-island-3::after { content: "\f1767"; } +.lnid-italic::before { content: "\f176a"; } +.lnid-italic::after { content: "\f1769"; } +.lnid-jelly-fish::before { content: "\f176c"; } +.lnid-jelly-fish::after { content: "\f176b"; } +.lnid-joystick::before { content: "\f176e"; } +.lnid-joystick::after { content: "\f176d"; } +.lnid-judge::before { content: "\f1770"; } +.lnid-judge::after { content: "\f176f"; } +.lnid-jurisdiction-1::before { content: "\f1772"; } +.lnid-jurisdiction-1::after { content: "\f1771"; } +.lnid-jurisdiction-2::before { content: "\f1774"; } +.lnid-jurisdiction-2::after { content: "\f1773"; } +.lnid-jurisdiction-ai-1::before { content: "\f1776"; } +.lnid-jurisdiction-ai-1::after { content: "\f1775"; } +.lnid-jurisdiction-ai-2::before { content: "\f1778"; } +.lnid-jurisdiction-ai-2::after { content: "\f1777"; } +.lnid-kayak::before { content: "\f177a"; } +.lnid-kayak::after { content: "\f1779"; } +.lnid-kelvin::before { content: "\f177e"; } +.lnid-kelvin::after { content: "\f177d"; } +.lnid-kelvin-circle::before { content: "\f177c"; } +.lnid-kelvin-circle::after { content: "\f177b"; } +.lnid-kettlebell::before { content: "\f1780"; } +.lnid-kettlebell::after { content: "\f177f"; } +.lnid-kettlebells::before { content: "\f1782"; } +.lnid-kettlebells::after { content: "\f1781"; } +.lnid-key-1::before { content: "\f1784"; } +.lnid-key-1::after { content: "\f1783"; } +.lnid-key-2::before { content: "\f1786"; } +.lnid-key-2::after { content: "\f1785"; } +.lnid-key-ai-1::before { content: "\f1788"; } +.lnid-key-ai-1::after { content: "\f1787"; } +.lnid-key-ai-2::before { content: "\f178a"; } +.lnid-key-ai-2::after { content: "\f1789"; } +.lnid-key-heart::before { content: "\f178c"; } +.lnid-key-heart::after { content: "\f178b"; } +.lnid-keyboard::before { content: "\f17a6"; } +.lnid-keyboard::after { content: "\f17a5"; } +.lnid-keyboard-ai::before { content: "\f178e"; } +.lnid-keyboard-ai::after { content: "\f178d"; } +.lnid-keyboard-bluetooth::before { content: "\f1790"; } +.lnid-keyboard-bluetooth::after { content: "\f178f"; } +.lnid-keyboard-check-circle::before { content: "\f1792"; } +.lnid-keyboard-check-circle::after { content: "\f1791"; } +.lnid-keyboard-code::before { content: "\f1794"; } +.lnid-keyboard-code::after { content: "\f1793"; } +.lnid-keyboard-error-circle::before { content: "\f1796"; } +.lnid-keyboard-error-circle::after { content: "\f1795"; } +.lnid-keyboard-gear::before { content: "\f1798"; } +.lnid-keyboard-gear::after { content: "\f1797"; } +.lnid-keyboard-mouse::before { content: "\f179a"; } +.lnid-keyboard-mouse::after { content: "\f1799"; } +.lnid-keyboard-plus-circle::before { content: "\f179c"; } +.lnid-keyboard-plus-circle::after { content: "\f179b"; } +.lnid-keyboard-user::before { content: "\f179e"; } +.lnid-keyboard-user::after { content: "\f179d"; } +.lnid-keyboard-wifi::before { content: "\f17a0"; } +.lnid-keyboard-wifi::after { content: "\f179f"; } +.lnid-keyboard-wire::before { content: "\f17a2"; } +.lnid-keyboard-wire::after { content: "\f17a1"; } +.lnid-keyboard-xmark-circle::before { content: "\f17a4"; } +.lnid-keyboard-xmark-circle::after { content: "\f17a3"; } +.lnid-kidneys::before { content: "\f17a8"; } +.lnid-kidneys::after { content: "\f17a7"; } +.lnid-knife::before { content: "\f17ae"; } +.lnid-knife::after { content: "\f17ad"; } +.lnid-knife-fork-1::before { content: "\f17aa"; } +.lnid-knife-fork-1::after { content: "\f17a9"; } +.lnid-knife-fork-2::before { content: "\f17ac"; } +.lnid-knife-fork-2::after { content: "\f17ab"; } +.lnid-label-dollar-1::before { content: "\f17b0"; } +.lnid-label-dollar-1::after { content: "\f17af"; } +.lnid-label-dollar-2::before { content: "\f17b2"; } +.lnid-label-dollar-2::after { content: "\f17b1"; } +.lnid-label-list::before { content: "\f17b4"; } +.lnid-label-list::after { content: "\f17b3"; } +.lnid-label-percent::before { content: "\f17ba"; } +.lnid-label-percent::after { content: "\f17b9"; } +.lnid-label-percent-1::before { content: "\f17b6"; } +.lnid-label-percent-1::after { content: "\f17b5"; } +.lnid-label-percent-2::before { content: "\f17b8"; } +.lnid-label-percent-2::after { content: "\f17b7"; } +.lnid-laptop-1::before { content: "\f17bc"; } +.lnid-laptop-1::after { content: "\f17bb"; } +.lnid-laptop-2::before { content: "\f17be"; } +.lnid-laptop-2::after { content: "\f17bd"; } +.lnid-laptop-3::before { content: "\f17c0"; } +.lnid-laptop-3::after { content: "\f17bf"; } +.lnid-laptop-4::before { content: "\f17c2"; } +.lnid-laptop-4::after { content: "\f17c1"; } +.lnid-laptop-4k::before { content: "\f17c4"; } +.lnid-laptop-4k::after { content: "\f17c3"; } +.lnid-laptop-ai-1::before { content: "\f17c6"; } +.lnid-laptop-ai-1::after { content: "\f17c5"; } +.lnid-laptop-ai-2::before { content: "\f17c8"; } +.lnid-laptop-ai-2::after { content: "\f17c7"; } +.lnid-laptop-aids::before { content: "\f17ca"; } +.lnid-laptop-aids::after { content: "\f17c9"; } +.lnid-laptop-beat-performance::before { content: "\f17cc"; } +.lnid-laptop-beat-performance::after { content: "\f17cb"; } +.lnid-laptop-binary::before { content: "\f17ce"; } +.lnid-laptop-binary::after { content: "\f17cd"; } +.lnid-laptop-bitcoin::before { content: "\f17d0"; } +.lnid-laptop-bitcoin::after { content: "\f17cf"; } +.lnid-laptop-bluetooth::before { content: "\f17d2"; } +.lnid-laptop-bluetooth::after { content: "\f17d1"; } +.lnid-laptop-bolt::before { content: "\f17d4"; } +.lnid-laptop-bolt::after { content: "\f17d3"; } +.lnid-laptop-bug::before { content: "\f17d6"; } +.lnid-laptop-bug::after { content: "\f17d5"; } +.lnid-laptop-camera-touchpad::before { content: "\f17d8"; } +.lnid-laptop-camera-touchpad::after { content: "\f17d7"; } +.lnid-laptop-check-circle::before { content: "\f17da"; } +.lnid-laptop-check-circle::after { content: "\f17d9"; } +.lnid-laptop-cloud::before { content: "\f17dc"; } +.lnid-laptop-cloud::after { content: "\f17db"; } +.lnid-laptop-code::before { content: "\f17de"; } +.lnid-laptop-code::after { content: "\f17dd"; } +.lnid-laptop-disabled-1::before { content: "\f17e0"; } +.lnid-laptop-disabled-1::after { content: "\f17df"; } +.lnid-laptop-disabled-2::before { content: "\f17e2"; } +.lnid-laptop-disabled-2::after { content: "\f17e1"; } +.lnid-laptop-doc::before { content: "\f17e4"; } +.lnid-laptop-doc::after { content: "\f17e3"; } +.lnid-laptop-error::before { content: "\f17e6"; } +.lnid-laptop-error::after { content: "\f17e5"; } +.lnid-laptop-gear::before { content: "\f17e8"; } +.lnid-laptop-gear::after { content: "\f17e7"; } +.lnid-laptop-heart::before { content: "\f17ea"; } +.lnid-laptop-heart::after { content: "\f17e9"; } +.lnid-laptop-link::before { content: "\f17ec"; } +.lnid-laptop-link::after { content: "\f17eb"; } +.lnid-laptop-live::before { content: "\f17ee"; } +.lnid-laptop-live::after { content: "\f17ed"; } +.lnid-laptop-locked::before { content: "\f17f0"; } +.lnid-laptop-locked::after { content: "\f17ef"; } +.lnid-laptop-percent::before { content: "\f17f2"; } +.lnid-laptop-percent::after { content: "\f17f1"; } +.lnid-laptop-phone::before { content: "\f17f4"; } +.lnid-laptop-phone::after { content: "\f17f3"; } +.lnid-laptop-play::before { content: "\f17f6"; } +.lnid-laptop-play::after { content: "\f17f5"; } +.lnid-laptop-recycle::before { content: "\f17f8"; } +.lnid-laptop-recycle::after { content: "\f17f7"; } +.lnid-laptop-refresh-anticlockwise::before { content: "\f17fa"; } +.lnid-laptop-refresh-anticlockwise::after { content: "\f17f9"; } +.lnid-laptop-refresh-clockwise::before { content: "\f17fc"; } +.lnid-laptop-refresh-clockwise::after { content: "\f17fb"; } +.lnid-laptop-reload::before { content: "\f17fe"; } +.lnid-laptop-reload::after { content: "\f17fd"; } +.lnid-laptop-rocket-1::before { content: "\f1800"; } +.lnid-laptop-rocket-1::after { content: "\f17ff"; } +.lnid-laptop-rocket-2::before { content: "\f1802"; } +.lnid-laptop-rocket-2::after { content: "\f1801"; } +.lnid-laptop-schedule::before { content: "\f1804"; } +.lnid-laptop-schedule::after { content: "\f1803"; } +.lnid-laptop-shield::before { content: "\f1806"; } +.lnid-laptop-shield::after { content: "\f1805"; } +.lnid-laptop-star::before { content: "\f1808"; } +.lnid-laptop-star::after { content: "\f1807"; } +.lnid-laptop-target::before { content: "\f180a"; } +.lnid-laptop-target::after { content: "\f1809"; } +.lnid-laptop-thumbs-down::before { content: "\f180c"; } +.lnid-laptop-thumbs-down::after { content: "\f180b"; } +.lnid-laptop-thumbs-up::before { content: "\f180e"; } +.lnid-laptop-thumbs-up::after { content: "\f180d"; } +.lnid-laptop-trash::before { content: "\f1810"; } +.lnid-laptop-trash::after { content: "\f180f"; } +.lnid-laptop-trend-down::before { content: "\f1812"; } +.lnid-laptop-trend-down::after { content: "\f1811"; } +.lnid-laptop-trend-up::before { content: "\f1814"; } +.lnid-laptop-trend-up::after { content: "\f1813"; } +.lnid-laptop-user::before { content: "\f1816"; } +.lnid-laptop-user::after { content: "\f1815"; } +.lnid-laptop-video::before { content: "\f1818"; } +.lnid-laptop-video::after { content: "\f1817"; } +.lnid-laptop-vr::before { content: "\f181a"; } +.lnid-laptop-vr::after { content: "\f1819"; } +.lnid-laptop-wifi::before { content: "\f181c"; } +.lnid-laptop-wifi::after { content: "\f181b"; } +.lnid-laptop-xmark-circle::before { content: "\f181e"; } +.lnid-laptop-xmark-circle::after { content: "\f181d"; } +.lnid-layers-1::before { content: "\f1820"; } +.lnid-layers-1::after { content: "\f181f"; } +.lnid-layers-2::before { content: "\f1822"; } +.lnid-layers-2::after { content: "\f1821"; } +.lnid-layers-3::before { content: "\f1824"; } +.lnid-layers-3::after { content: "\f1823"; } +.lnid-layers-hexagon::before { content: "\f1826"; } +.lnid-layers-hexagon::after { content: "\f1825"; } +.lnid-layout-1::before { content: "\f183c"; } +.lnid-layout-1::after { content: "\f183b"; } +.lnid-layout-10::before { content: "\f1828"; } +.lnid-layout-10::after { content: "\f1827"; } +.lnid-layout-11::before { content: "\f182a"; } +.lnid-layout-11::after { content: "\f1829"; } +.lnid-layout-12::before { content: "\f182c"; } +.lnid-layout-12::after { content: "\f182b"; } +.lnid-layout-13::before { content: "\f182e"; } +.lnid-layout-13::after { content: "\f182d"; } +.lnid-layout-14::before { content: "\f1830"; } +.lnid-layout-14::after { content: "\f182f"; } +.lnid-layout-15::before { content: "\f1832"; } +.lnid-layout-15::after { content: "\f1831"; } +.lnid-layout-16::before { content: "\f1834"; } +.lnid-layout-16::after { content: "\f1833"; } +.lnid-layout-17::before { content: "\f1836"; } +.lnid-layout-17::after { content: "\f1835"; } +.lnid-layout-18::before { content: "\f1838"; } +.lnid-layout-18::after { content: "\f1837"; } +.lnid-layout-19::before { content: "\f183a"; } +.lnid-layout-19::after { content: "\f1839"; } +.lnid-layout-2::before { content: "\f184c"; } +.lnid-layout-2::after { content: "\f184b"; } +.lnid-layout-20::before { content: "\f183e"; } +.lnid-layout-20::after { content: "\f183d"; } +.lnid-layout-21::before { content: "\f1840"; } +.lnid-layout-21::after { content: "\f183f"; } +.lnid-layout-22::before { content: "\f1842"; } +.lnid-layout-22::after { content: "\f1841"; } +.lnid-layout-23::before { content: "\f1844"; } +.lnid-layout-23::after { content: "\f1843"; } +.lnid-layout-24::before { content: "\f1846"; } +.lnid-layout-24::after { content: "\f1845"; } +.lnid-layout-25::before { content: "\f1848"; } +.lnid-layout-25::after { content: "\f1847"; } +.lnid-layout-26::before { content: "\f184a"; } +.lnid-layout-26::after { content: "\f1849"; } +.lnid-layout-3::before { content: "\f184e"; } +.lnid-layout-3::after { content: "\f184d"; } +.lnid-layout-4::before { content: "\f1850"; } +.lnid-layout-4::after { content: "\f184f"; } +.lnid-layout-5::before { content: "\f1852"; } +.lnid-layout-5::after { content: "\f1851"; } +.lnid-layout-6::before { content: "\f1854"; } +.lnid-layout-6::after { content: "\f1853"; } +.lnid-layout-7::before { content: "\f1856"; } +.lnid-layout-7::after { content: "\f1855"; } +.lnid-layout-8::before { content: "\f1858"; } +.lnid-layout-8::after { content: "\f1857"; } +.lnid-layout-9::before { content: "\f185a"; } +.lnid-layout-9::after { content: "\f1859"; } +.lnid-layout-ai::before { content: "\f185c"; } +.lnid-layout-ai::after { content: "\f185b"; } +.lnid-leaf-1::before { content: "\f1860"; } +.lnid-leaf-1::after { content: "\f185f"; } +.lnid-leaf-10::before { content: "\f185e"; } +.lnid-leaf-10::after { content: "\f185d"; } +.lnid-leaf-2::before { content: "\f1862"; } +.lnid-leaf-2::after { content: "\f1861"; } +.lnid-leaf-3::before { content: "\f1864"; } +.lnid-leaf-3::after { content: "\f1863"; } +.lnid-leaf-4::before { content: "\f1866"; } +.lnid-leaf-4::after { content: "\f1865"; } +.lnid-leaf-5::before { content: "\f1868"; } +.lnid-leaf-5::after { content: "\f1867"; } +.lnid-leaf-6::before { content: "\f186a"; } +.lnid-leaf-6::after { content: "\f1869"; } +.lnid-leaf-7::before { content: "\f186c"; } +.lnid-leaf-7::after { content: "\f186b"; } +.lnid-leaf-8::before { content: "\f186e"; } +.lnid-leaf-8::after { content: "\f186d"; } +.lnid-leaf-9::before { content: "\f1870"; } +.lnid-leaf-9::after { content: "\f186f"; } +.lnid-leaf-ai::before { content: "\f1872"; } +.lnid-leaf-ai::after { content: "\f1871"; } +.lnid-lemon::before { content: "\f1874"; } +.lnid-lemon::after { content: "\f1873"; } +.lnid-letter-blocks::before { content: "\f1876"; } +.lnid-letter-blocks::after { content: "\f1875"; } +.lnid-letter-box::before { content: "\f1878"; } +.lnid-letter-box::after { content: "\f1877"; } +.lnid-library::before { content: "\f187a"; } +.lnid-library::after { content: "\f1879"; } +.lnid-life-guard-tube-1::before { content: "\f187c"; } +.lnid-life-guard-tube-1::after { content: "\f187b"; } +.lnid-life-guard-tube-2::before { content: "\f187e"; } +.lnid-life-guard-tube-2::after { content: "\f187d"; } +.lnid-lift::before { content: "\f1880"; } +.lnid-lift::after { content: "\f187f"; } +.lnid-lighthouse::before { content: "\f1882"; } +.lnid-lighthouse::after { content: "\f1881"; } +.lnid-line-dashed::before { content: "\f1884"; } +.lnid-line-dashed::after { content: "\f1883"; } +.lnid-line-dotted::before { content: "\f1886"; } +.lnid-line-dotted::after { content: "\f1885"; } +.lnid-line-height::before { content: "\f1888"; } +.lnid-line-height::after { content: "\f1887"; } +.lnid-link-1-angular-left::before { content: "\f188a"; } +.lnid-link-1-angular-left::after { content: "\f1889"; } +.lnid-link-1-angular-right::before { content: "\f188c"; } +.lnid-link-1-angular-right::after { content: "\f188b"; } +.lnid-link-1-horizontal::before { content: "\f1890"; } +.lnid-link-1-horizontal::after { content: "\f188f"; } +.lnid-link-1-horizontal-disabled::before { content: "\f188e"; } +.lnid-link-1-horizontal-disabled::after { content: "\f188d"; } +.lnid-link-1-vertical::before { content: "\f1894"; } +.lnid-link-1-vertical::after { content: "\f1893"; } +.lnid-link-1-vertical-disabled::before { content: "\f1892"; } +.lnid-link-1-vertical-disabled::after { content: "\f1891"; } +.lnid-link-2-angular-eft::before { content: "\f1896"; } +.lnid-link-2-angular-eft::after { content: "\f1895"; } +.lnid-link-2-angular-right::before { content: "\f1898"; } +.lnid-link-2-angular-right::after { content: "\f1897"; } +.lnid-link-3-angular-left::before { content: "\f189c"; } +.lnid-link-3-angular-left::after { content: "\f189b"; } +.lnid-link-3-angular-left-disabled::before { content: "\f189a"; } +.lnid-link-3-angular-left-disabled::after { content: "\f1899"; } +.lnid-link-3-angular-right::before { content: "\f18a0"; } +.lnid-link-3-angular-right::after { content: "\f189f"; } +.lnid-link-3-angular-right-disabled::before { content: "\f189e"; } +.lnid-link-3-angular-right-disabled::after { content: "\f189d"; } +.lnid-link-3-horizontal::before { content: "\f18a4"; } +.lnid-link-3-horizontal::after { content: "\f18a3"; } +.lnid-link-3-horizontal-disabled::before { content: "\f18a2"; } +.lnid-link-3-horizontal-disabled::after { content: "\f18a1"; } +.lnid-link-3-vertical::before { content: "\f18a8"; } +.lnid-link-3-vertical::after { content: "\f18a7"; } +.lnid-link-3-vertical-disabled::before { content: "\f18a6"; } +.lnid-link-3-vertical-disabled::after { content: "\f18a5"; } +.lnid-lips-1::before { content: "\f18aa"; } +.lnid-lips-1::after { content: "\f18a9"; } +.lnid-lips-2::before { content: "\f18ac"; } +.lnid-lips-2::after { content: "\f18ab"; } +.lnid-list-music-4::before { content: "\f18ae"; } +.lnid-list-music-4::after { content: "\f18ad"; } +.lnid-litecoin::before { content: "\f18b2"; } +.lnid-litecoin::after { content: "\f18b1"; } +.lnid-litecoin-ai::before { content: "\f18b0"; } +.lnid-litecoin-ai::after { content: "\f18af"; } +.lnid-live-badge::before { content: "\f18b4"; } +.lnid-live-badge::after { content: "\f18b3"; } +.lnid-live-stream::before { content: "\f18b6"; } +.lnid-live-stream::after { content: "\f18b5"; } +.lnid-liver::before { content: "\f18b8"; } +.lnid-liver::after { content: "\f18b7"; } +.lnid-location-6::before { content: "\f18ba"; } +.lnid-location-6::after { content: "\f18b9"; } +.lnid-location-arrow-circle::before { content: "\f18bc"; } +.lnid-location-arrow-circle::after { content: "\f18bb"; } +.lnid-location-arrow-left::before { content: "\f18be"; } +.lnid-location-arrow-left::after { content: "\f18bd"; } +.lnid-location-arrow-right::before { content: "\f18c0"; } +.lnid-location-arrow-right::after { content: "\f18bf"; } +.lnid-location-arrow-square::before { content: "\f18c2"; } +.lnid-location-arrow-square::after { content: "\f18c1"; } +.lnid-location-arrow-timer::before { content: "\f18c6"; } +.lnid-location-arrow-timer::after { content: "\f18c5"; } +.lnid-location-arrow-timer-ai::before { content: "\f18c4"; } +.lnid-location-arrow-timer-ai::after { content: "\f18c3"; } +.lnid-location-arrow-upward::before { content: "\f18c8"; } +.lnid-location-arrow-upward::after { content: "\f18c7"; } +.lnid-location-crosshairs-1::before { content: "\f18cc"; } +.lnid-location-crosshairs-1::after { content: "\f18cb"; } +.lnid-location-crosshairs-1-disabled::before { content: "\f18ca"; } +.lnid-location-crosshairs-1-disabled::after { content: "\f18c9"; } +.lnid-location-crosshairs-2::before { content: "\f18d0"; } +.lnid-location-crosshairs-2::after { content: "\f18cf"; } +.lnid-location-crosshairs-2-disabled::before { content: "\f18ce"; } +.lnid-location-crosshairs-2-disabled::after { content: "\f18cd"; } +.lnid-location-crosshairs-ai::before { content: "\f18d2"; } +.lnid-location-crosshairs-ai::after { content: "\f18d1"; } +.lnid-lock-ai-1::before { content: "\f18d4"; } +.lnid-lock-ai-1::after { content: "\f18d3"; } +.lnid-lock-ai-2::before { content: "\f18d6"; } +.lnid-lock-ai-2::after { content: "\f18d5"; } +.lnid-lock-ai-3::before { content: "\f18d8"; } +.lnid-lock-ai-3::after { content: "\f18d7"; } +.lnid-lock-ai-4::before { content: "\f18da"; } +.lnid-lock-ai-4::after { content: "\f18d9"; } +.lnid-lock-ai-5::before { content: "\f18dc"; } +.lnid-lock-ai-5::after { content: "\f18db"; } +.lnid-lock-ai-6::before { content: "\f18de"; } +.lnid-lock-ai-6::after { content: "\f18dd"; } +.lnid-lock-heart::before { content: "\f18e0"; } +.lnid-lock-heart::after { content: "\f18df"; } +.lnid-locked-1::before { content: "\f18e2"; } +.lnid-locked-1::after { content: "\f18e1"; } +.lnid-locked-2::before { content: "\f18e4"; } +.lnid-locked-2::after { content: "\f18e3"; } +.lnid-locked-3::before { content: "\f18e6"; } +.lnid-locked-3::after { content: "\f18e5"; } +.lnid-lockers::before { content: "\f18e8"; } +.lnid-lockers::after { content: "\f18e7"; } +.lnid-lollipop-1::before { content: "\f18ea"; } +.lnid-lollipop-1::after { content: "\f18e9"; } +.lnid-lollipop-2::before { content: "\f18ec"; } +.lnid-lollipop-2::after { content: "\f18eb"; } +.lnid-lollipop-3::before { content: "\f18ee"; } +.lnid-lollipop-3::after { content: "\f18ed"; } +.lnid-lollipops::before { content: "\f18f0"; } +.lnid-lollipops::after { content: "\f18ef"; } +.lnid-lolypop::before { content: "\f18f2"; } +.lnid-lolypop::after { content: "\f18f1"; } +.lnid-lungs::before { content: "\f18f4"; } +.lnid-lungs::after { content: "\f18f3"; } +.lnid-lychee::before { content: "\f18f6"; } +.lnid-lychee::after { content: "\f18f5"; } +.lnid-magic-wand::before { content: "\f18fe"; } +.lnid-magic-wand::after { content: "\f18fd"; } +.lnid-magic-wand-1::before { content: "\f18f8"; } +.lnid-magic-wand-1::after { content: "\f18f7"; } +.lnid-magic-wand-2::before { content: "\f18fa"; } +.lnid-magic-wand-2::after { content: "\f18f9"; } +.lnid-magic-wand-ai::before { content: "\f18fc"; } +.lnid-magic-wand-ai::after { content: "\f18fb"; } +.lnid-magnet::before { content: "\f1904"; } +.lnid-magnet::after { content: "\f1903"; } +.lnid-magnet-bolt::before { content: "\f1900"; } +.lnid-magnet-bolt::after { content: "\f18ff"; } +.lnid-magnet-plus-minus::before { content: "\f1902"; } +.lnid-magnet-plus-minus::after { content: "\f1901"; } +.lnid-magnetism::before { content: "\f1906"; } +.lnid-magnetism::after { content: "\f1905"; } +.lnid-makeup::before { content: "\f190c"; } +.lnid-makeup::after { content: "\f190b"; } +.lnid-makeup-box-1::before { content: "\f1908"; } +.lnid-makeup-box-1::after { content: "\f1907"; } +.lnid-makeup-box-2::before { content: "\f190a"; } +.lnid-makeup-box-2::after { content: "\f1909"; } +.lnid-male::before { content: "\f1910"; } +.lnid-male::after { content: "\f190f"; } +.lnid-male-square::before { content: "\f190e"; } +.lnid-male-square::after { content: "\f190d"; } +.lnid-man-walking::before { content: "\f1912"; } +.lnid-man-walking::after { content: "\f1911"; } +.lnid-map::before { content: "\f1a12"; } +.lnid-map::after { content: "\f1a11"; } +.lnid-map-3-dot-1::before { content: "\f1914"; } +.lnid-map-3-dot-1::after { content: "\f1913"; } +.lnid-map-3-dot-2::before { content: "\f1916"; } +.lnid-map-3-dot-2::after { content: "\f1915"; } +.lnid-map-ai::before { content: "\f1918"; } +.lnid-map-ai::after { content: "\f1917"; } +.lnid-map-arrow-downward::before { content: "\f191a"; } +.lnid-map-arrow-downward::after { content: "\f1919"; } +.lnid-map-arrow-left::before { content: "\f191c"; } +.lnid-map-arrow-left::after { content: "\f191b"; } +.lnid-map-arrow-right::before { content: "\f191e"; } +.lnid-map-arrow-right::after { content: "\f191d"; } +.lnid-map-arrow-upward::before { content: "\f1920"; } +.lnid-map-arrow-upward::after { content: "\f191f"; } +.lnid-map-book::before { content: "\f1922"; } +.lnid-map-book::after { content: "\f1921"; } +.lnid-map-bookmark::before { content: "\f1924"; } +.lnid-map-bookmark::after { content: "\f1923"; } +.lnid-map-check::before { content: "\f1928"; } +.lnid-map-check::after { content: "\f1927"; } +.lnid-map-check-circle::before { content: "\f1926"; } +.lnid-map-check-circle::after { content: "\f1925"; } +.lnid-map-cloud::before { content: "\f192a"; } +.lnid-map-cloud::after { content: "\f1929"; } +.lnid-map-code::before { content: "\f192c"; } +.lnid-map-code::after { content: "\f192b"; } +.lnid-map-cursor::before { content: "\f192e"; } +.lnid-map-cursor::after { content: "\f192d"; } +.lnid-map-database::before { content: "\f1930"; } +.lnid-map-database::after { content: "\f192f"; } +.lnid-map-delete::before { content: "\f1932"; } +.lnid-map-delete::after { content: "\f1931"; } +.lnid-map-disabled-1::before { content: "\f1934"; } +.lnid-map-disabled-1::after { content: "\f1933"; } +.lnid-map-disabled-2::before { content: "\f1936"; } +.lnid-map-disabled-2::after { content: "\f1935"; } +.lnid-map-download::before { content: "\f1938"; } +.lnid-map-download::after { content: "\f1937"; } +.lnid-map-error-circle::before { content: "\f193a"; } +.lnid-map-error-circle::after { content: "\f1939"; } +.lnid-map-eye::before { content: "\f193c"; } +.lnid-map-eye::after { content: "\f193b"; } +.lnid-map-gear::before { content: "\f193e"; } +.lnid-map-gear::after { content: "\f193d"; } +.lnid-map-heart::before { content: "\f1940"; } +.lnid-map-heart::after { content: "\f193f"; } +.lnid-map-info-circle::before { content: "\f1942"; } +.lnid-map-info-circle::after { content: "\f1941"; } +.lnid-map-link::before { content: "\f1944"; } +.lnid-map-link::after { content: "\f1943"; } +.lnid-map-list::before { content: "\f1946"; } +.lnid-map-list::after { content: "\f1945"; } +.lnid-map-lokced::before { content: "\f1948"; } +.lnid-map-lokced::after { content: "\f1947"; } +.lnid-map-marker-1::before { content: "\f1952"; } +.lnid-map-marker-1::after { content: "\f1951"; } +.lnid-map-marker-10::before { content: "\f194a"; } +.lnid-map-marker-10::after { content: "\f1949"; } +.lnid-map-marker-11::before { content: "\f194c"; } +.lnid-map-marker-11::after { content: "\f194b"; } +.lnid-map-marker-12::before { content: "\f194e"; } +.lnid-map-marker-12::after { content: "\f194d"; } +.lnid-map-marker-13::before { content: "\f1950"; } +.lnid-map-marker-13::after { content: "\f194f"; } +.lnid-map-marker-2::before { content: "\f1954"; } +.lnid-map-marker-2::after { content: "\f1953"; } +.lnid-map-marker-3::before { content: "\f1956"; } +.lnid-map-marker-3::after { content: "\f1955"; } +.lnid-map-marker-4::before { content: "\f1958"; } +.lnid-map-marker-4::after { content: "\f1957"; } +.lnid-map-marker-5::before { content: "\f195a"; } +.lnid-map-marker-5::after { content: "\f1959"; } +.lnid-map-marker-7::before { content: "\f195c"; } +.lnid-map-marker-7::after { content: "\f195b"; } +.lnid-map-marker-8::before { content: "\f195e"; } +.lnid-map-marker-8::after { content: "\f195d"; } +.lnid-map-marker-9::before { content: "\f1960"; } +.lnid-map-marker-9::after { content: "\f195f"; } +.lnid-map-marker-ai-1::before { content: "\f1962"; } +.lnid-map-marker-ai-1::after { content: "\f1961"; } +.lnid-map-marker-ai-2::before { content: "\f1964"; } +.lnid-map-marker-ai-2::after { content: "\f1963"; } +.lnid-map-marker-arrow-down-left::before { content: "\f1966"; } +.lnid-map-marker-arrow-down-left::after { content: "\f1965"; } +.lnid-map-marker-arrow-down-right::before { content: "\f1968"; } +.lnid-map-marker-arrow-down-right::after { content: "\f1967"; } +.lnid-map-marker-arrow-downward::before { content: "\f196a"; } +.lnid-map-marker-arrow-downward::after { content: "\f1969"; } +.lnid-map-marker-arrow-left::before { content: "\f196c"; } +.lnid-map-marker-arrow-left::after { content: "\f196b"; } +.lnid-map-marker-arrow-right::before { content: "\f196e"; } +.lnid-map-marker-arrow-right::after { content: "\f196d"; } +.lnid-map-marker-arrow-top-left::before { content: "\f1970"; } +.lnid-map-marker-arrow-top-left::after { content: "\f196f"; } +.lnid-map-marker-arrow-top-right::before { content: "\f1972"; } +.lnid-map-marker-arrow-top-right::after { content: "\f1971"; } +.lnid-map-marker-arrow-upward::before { content: "\f1974"; } +.lnid-map-marker-arrow-upward::after { content: "\f1973"; } +.lnid-map-marker-atm::before { content: "\f1976"; } +.lnid-map-marker-atm::after { content: "\f1975"; } +.lnid-map-marker-bolt::before { content: "\f1978"; } +.lnid-map-marker-bolt::after { content: "\f1977"; } +.lnid-map-marker-bulb::before { content: "\f197a"; } +.lnid-map-marker-bulb::after { content: "\f1979"; } +.lnid-map-marker-check::before { content: "\f197c"; } +.lnid-map-marker-check::after { content: "\f197b"; } +.lnid-map-marker-circle::before { content: "\f197e"; } +.lnid-map-marker-circle::after { content: "\f197d"; } +.lnid-map-marker-code::before { content: "\f1980"; } +.lnid-map-marker-code::after { content: "\f197f"; } +.lnid-map-marker-cross::before { content: "\f1982"; } +.lnid-map-marker-cross::after { content: "\f1981"; } +.lnid-map-marker-disabled-1::before { content: "\f1984"; } +.lnid-map-marker-disabled-1::after { content: "\f1983"; } +.lnid-map-marker-disabled-2::before { content: "\f1986"; } +.lnid-map-marker-disabled-2::after { content: "\f1985"; } +.lnid-map-marker-eye::before { content: "\f1988"; } +.lnid-map-marker-eye::after { content: "\f1987"; } +.lnid-map-marker-gear::before { content: "\f198a"; } +.lnid-map-marker-gear::after { content: "\f1989"; } +.lnid-map-marker-heart::before { content: "\f198c"; } +.lnid-map-marker-heart::after { content: "\f198b"; } +.lnid-map-marker-hospital::before { content: "\f198e"; } +.lnid-map-marker-hospital::after { content: "\f198d"; } +.lnid-map-marker-info-1::before { content: "\f1990"; } +.lnid-map-marker-info-1::after { content: "\f198f"; } +.lnid-map-marker-info-2::before { content: "\f1992"; } +.lnid-map-marker-info-2::after { content: "\f1991"; } +.lnid-map-marker-left-downward::before { content: "\f1994"; } +.lnid-map-marker-left-downward::after { content: "\f1993"; } +.lnid-map-marker-lokced::before { content: "\f1996"; } +.lnid-map-marker-lokced::after { content: "\f1995"; } +.lnid-map-marker-minus::before { content: "\f1998"; } +.lnid-map-marker-minus::after { content: "\f1997"; } +.lnid-map-marker-moon::before { content: "\f199a"; } +.lnid-map-marker-moon::after { content: "\f1999"; } +.lnid-map-marker-paperclip::before { content: "\f199c"; } +.lnid-map-marker-paperclip::after { content: "\f199b"; } +.lnid-map-marker-pencil::before { content: "\f199e"; } +.lnid-map-marker-pencil::after { content: "\f199d"; } +.lnid-map-marker-percent::before { content: "\f19a0"; } +.lnid-map-marker-percent::after { content: "\f199f"; } +.lnid-map-marker-plane-1::before { content: "\f19a2"; } +.lnid-map-marker-plane-1::after { content: "\f19a1"; } +.lnid-map-marker-plane-2::before { content: "\f19a4"; } +.lnid-map-marker-plane-2::after { content: "\f19a3"; } +.lnid-map-marker-plus::before { content: "\f19a8"; } +.lnid-map-marker-plus::after { content: "\f19a7"; } +.lnid-map-marker-plus-area::before { content: "\f19a6"; } +.lnid-map-marker-plus-area::after { content: "\f19a5"; } +.lnid-map-marker-question-mark::before { content: "\f19aa"; } +.lnid-map-marker-question-mark::after { content: "\f19a9"; } +.lnid-map-marker-refresh::before { content: "\f19ac"; } +.lnid-map-marker-refresh::after { content: "\f19ab"; } +.lnid-map-marker-search::before { content: "\f19ae"; } +.lnid-map-marker-search::after { content: "\f19ad"; } +.lnid-map-marker-share::before { content: "\f19b0"; } +.lnid-map-marker-share::after { content: "\f19af"; } +.lnid-map-marker-smile::before { content: "\f19b2"; } +.lnid-map-marker-smile::after { content: "\f19b1"; } +.lnid-map-marker-square::before { content: "\f19b4"; } +.lnid-map-marker-square::after { content: "\f19b3"; } +.lnid-map-marker-star::before { content: "\f19ba"; } +.lnid-map-marker-star::after { content: "\f19b9"; } +.lnid-map-marker-star-crescent::before { content: "\f19b6"; } +.lnid-map-marker-star-crescent::after { content: "\f19b5"; } +.lnid-map-marker-star-david::before { content: "\f19b8"; } +.lnid-map-marker-star-david::after { content: "\f19b7"; } +.lnid-map-marker-swap::before { content: "\f19bc"; } +.lnid-map-marker-swap::after { content: "\f19bb"; } +.lnid-map-marker-turn-right::before { content: "\f19be"; } +.lnid-map-marker-turn-right::after { content: "\f19bd"; } +.lnid-map-marker-unlocked::before { content: "\f19c0"; } +.lnid-map-marker-unlocked::after { content: "\f19bf"; } +.lnid-map-marker-user::before { content: "\f19c2"; } +.lnid-map-marker-user::after { content: "\f19c1"; } +.lnid-map-marker-xmark::before { content: "\f19c4"; } +.lnid-map-marker-xmark::after { content: "\f19c3"; } +.lnid-map-minus-circle::before { content: "\f19c6"; } +.lnid-map-minus-circle::after { content: "\f19c5"; } +.lnid-map-moon::before { content: "\f19c8"; } +.lnid-map-moon::after { content: "\f19c7"; } +.lnid-map-paperclip::before { content: "\f19ca"; } +.lnid-map-paperclip::after { content: "\f19c9"; } +.lnid-map-pencil::before { content: "\f19cc"; } +.lnid-map-pencil::after { content: "\f19cb"; } +.lnid-map-percent-circle::before { content: "\f19ce"; } +.lnid-map-percent-circle::after { content: "\f19cd"; } +.lnid-map-phone::before { content: "\f19d0"; } +.lnid-map-phone::after { content: "\f19cf"; } +.lnid-map-pin-1::before { content: "\f19d2"; } +.lnid-map-pin-1::after { content: "\f19d1"; } +.lnid-map-pin-2::before { content: "\f19d4"; } +.lnid-map-pin-2::after { content: "\f19d3"; } +.lnid-map-pin-3::before { content: "\f19d6"; } +.lnid-map-pin-3::after { content: "\f19d5"; } +.lnid-map-pin-4::before { content: "\f19d8"; } +.lnid-map-pin-4::after { content: "\f19d7"; } +.lnid-map-pin-5::before { content: "\f19dc"; } +.lnid-map-pin-5::after { content: "\f19db"; } +.lnid-map-pin-5-disabled::before { content: "\f19da"; } +.lnid-map-pin-5-disabled::after { content: "\f19d9"; } +.lnid-map-plane-1::before { content: "\f19de"; } +.lnid-map-plane-1::after { content: "\f19dd"; } +.lnid-map-plane-2::before { content: "\f19e0"; } +.lnid-map-plane-2::after { content: "\f19df"; } +.lnid-map-plus::before { content: "\f19e6"; } +.lnid-map-plus::after { content: "\f19e5"; } +.lnid-map-plus-circle::before { content: "\f19e2"; } +.lnid-map-plus-circle::after { content: "\f19e1"; } +.lnid-map-plus-minus::before { content: "\f19e4"; } +.lnid-map-plus-minus::after { content: "\f19e3"; } +.lnid-map-question-mark::before { content: "\f19e8"; } +.lnid-map-question-mark::after { content: "\f19e7"; } +.lnid-map-redo::before { content: "\f19ea"; } +.lnid-map-redo::after { content: "\f19e9"; } +.lnid-map-refresh::before { content: "\f19ec"; } +.lnid-map-refresh::after { content: "\f19eb"; } +.lnid-map-reload::before { content: "\f19ee"; } +.lnid-map-reload::after { content: "\f19ed"; } +.lnid-map-search::before { content: "\f19f0"; } +.lnid-map-search::after { content: "\f19ef"; } +.lnid-map-server::before { content: "\f19f2"; } +.lnid-map-server::after { content: "\f19f1"; } +.lnid-map-share-1::before { content: "\f19f4"; } +.lnid-map-share-1::after { content: "\f19f3"; } +.lnid-map-share-2::before { content: "\f19f6"; } +.lnid-map-share-2::after { content: "\f19f5"; } +.lnid-map-share-3::before { content: "\f19f8"; } +.lnid-map-share-3::after { content: "\f19f7"; } +.lnid-map-shield::before { content: "\f19fa"; } +.lnid-map-shield::after { content: "\f19f9"; } +.lnid-map-star::before { content: "\f19fc"; } +.lnid-map-star::after { content: "\f19fb"; } +.lnid-map-sun::before { content: "\f19fe"; } +.lnid-map-sun::after { content: "\f19fd"; } +.lnid-map-thumbs-down::before { content: "\f1a00"; } +.lnid-map-thumbs-down::after { content: "\f19ff"; } +.lnid-map-thumbs-up::before { content: "\f1a02"; } +.lnid-map-thumbs-up::after { content: "\f1a01"; } +.lnid-map-undo::before { content: "\f1a04"; } +.lnid-map-undo::after { content: "\f1a03"; } +.lnid-map-unlocked::before { content: "\f1a06"; } +.lnid-map-unlocked::after { content: "\f1a05"; } +.lnid-map-upload::before { content: "\f1a08"; } +.lnid-map-upload::after { content: "\f1a07"; } +.lnid-map-user::before { content: "\f1a0a"; } +.lnid-map-user::after { content: "\f1a09"; } +.lnid-map-vr::before { content: "\f1a0c"; } +.lnid-map-vr::after { content: "\f1a0b"; } +.lnid-map-xmark::before { content: "\f1a10"; } +.lnid-map-xmark::after { content: "\f1a0f"; } +.lnid-map-xmark-circle::before { content: "\f1a0e"; } +.lnid-map-xmark-circle::after { content: "\f1a0d"; } +.lnid-mapping::before { content: "\f1a16"; } +.lnid-mapping::after { content: "\f1a15"; } +.lnid-mapping-disabled::before { content: "\f1a14"; } +.lnid-mapping-disabled::after { content: "\f1a13"; } +.lnid-mask::before { content: "\f1a1e"; } +.lnid-mask::after { content: "\f1a1d"; } +.lnid-mask-1::before { content: "\f1a18"; } +.lnid-mask-1::after { content: "\f1a17"; } +.lnid-mask-2::before { content: "\f1a1a"; } +.lnid-mask-2::after { content: "\f1a19"; } +.lnid-mask-skull::before { content: "\f1a1c"; } +.lnid-mask-skull::after { content: "\f1a1b"; } +.lnid-maze::before { content: "\f1a20"; } +.lnid-maze::after { content: "\f1a1f"; } +.lnid-measure-tape::before { content: "\f1a22"; } +.lnid-measure-tape::after { content: "\f1a21"; } +.lnid-measuring-tape-1::before { content: "\f1a24"; } +.lnid-measuring-tape-1::after { content: "\f1a23"; } +.lnid-measuring-tape-2::before { content: "\f1a26"; } +.lnid-measuring-tape-2::after { content: "\f1a25"; } +.lnid-medal-1::before { content: "\f1a28"; } +.lnid-medal-1::after { content: "\f1a27"; } +.lnid-medal-2::before { content: "\f1a2a"; } +.lnid-medal-2::after { content: "\f1a29"; } +.lnid-medal-3::before { content: "\f1a2c"; } +.lnid-medal-3::after { content: "\f1a2b"; } +.lnid-medal-4::before { content: "\f1a2e"; } +.lnid-medal-4::after { content: "\f1a2d"; } +.lnid-medal-5::before { content: "\f1a30"; } +.lnid-medal-5::after { content: "\f1a2f"; } +.lnid-medal-6::before { content: "\f1a32"; } +.lnid-medal-6::after { content: "\f1a31"; } +.lnid-medal-7::before { content: "\f1a34"; } +.lnid-medal-7::after { content: "\f1a33"; } +.lnid-medal-8::before { content: "\f1a36"; } +.lnid-medal-8::after { content: "\f1a35"; } +.lnid-medal-9::before { content: "\f1a38"; } +.lnid-medal-9::after { content: "\f1a37"; } +.lnid-medical-device-ai-beat::before { content: "\f1a3a"; } +.lnid-medical-device-ai-beat::after { content: "\f1a39"; } +.lnid-medical-device-ai-plus::before { content: "\f1a3c"; } +.lnid-medical-device-ai-plus::after { content: "\f1a3b"; } +.lnid-medical-sign-beat-1::before { content: "\f1a3e"; } +.lnid-medical-sign-beat-1::after { content: "\f1a3d"; } +.lnid-medical-sign-beat-2::before { content: "\f1a40"; } +.lnid-medical-sign-beat-2::after { content: "\f1a3f"; } +.lnid-medical-sign-plus-1::before { content: "\f1a42"; } +.lnid-medical-sign-plus-1::after { content: "\f1a41"; } +.lnid-medical-sign-plus-2::before { content: "\f1a44"; } +.lnid-medical-sign-plus-2::after { content: "\f1a43"; } +.lnid-medicine-ai-1::before { content: "\f1a46"; } +.lnid-medicine-ai-1::after { content: "\f1a45"; } +.lnid-medicine-ai-2::before { content: "\f1a48"; } +.lnid-medicine-ai-2::after { content: "\f1a47"; } +.lnid-medicine-ai-3::before { content: "\f1a4a"; } +.lnid-medicine-ai-3::after { content: "\f1a49"; } +.lnid-medicine-ai-4::before { content: "\f1a4c"; } +.lnid-medicine-ai-4::after { content: "\f1a4b"; } +.lnid-medicine-bottle-1::before { content: "\f1a4e"; } +.lnid-medicine-bottle-1::after { content: "\f1a4d"; } +.lnid-medicine-bottle-2::before { content: "\f1a50"; } +.lnid-medicine-bottle-2::after { content: "\f1a4f"; } +.lnid-medicine-bottle-3::before { content: "\f1a52"; } +.lnid-medicine-bottle-3::after { content: "\f1a51"; } +.lnid-megaphone-1::before { content: "\f1a54"; } +.lnid-megaphone-1::after { content: "\f1a53"; } +.lnid-megaphone-2::before { content: "\f1a56"; } +.lnid-megaphone-2::after { content: "\f1a55"; } +.lnid-megaphone-3::before { content: "\f1a58"; } +.lnid-megaphone-3::after { content: "\f1a57"; } +.lnid-menu-1::before { content: "\f1a5a"; } +.lnid-menu-1::after { content: "\f1a59"; } +.lnid-menu-2::before { content: "\f1a5c"; } +.lnid-menu-2::after { content: "\f1a5b"; } +.lnid-menu-3::before { content: "\f1a5e"; } +.lnid-menu-3::after { content: "\f1a5d"; } +.lnid-menu-4::before { content: "\f1a60"; } +.lnid-menu-4::after { content: "\f1a5f"; } +.lnid-menu-5::before { content: "\f1a62"; } +.lnid-menu-5::after { content: "\f1a61"; } +.lnid-menu-6::before { content: "\f1a6c"; } +.lnid-menu-6::after { content: "\f1a6b"; } +.lnid-menu-6-circle::before { content: "\f1a64"; } +.lnid-menu-6-circle::after { content: "\f1a63"; } +.lnid-menu-6-reverse-circle::before { content: "\f1a66"; } +.lnid-menu-6-reverse-circle::after { content: "\f1a65"; } +.lnid-menu-6-reverse-square::before { content: "\f1a68"; } +.lnid-menu-6-reverse-square::after { content: "\f1a67"; } +.lnid-menu-6-square::before { content: "\f1a6a"; } +.lnid-menu-6-square::after { content: "\f1a69"; } +.lnid-menu-7::before { content: "\f1a6e"; } +.lnid-menu-7::after { content: "\f1a6d"; } +.lnid-menu-bento-1::before { content: "\f1a70"; } +.lnid-menu-bento-1::after { content: "\f1a6f"; } +.lnid-menu-bento-2::before { content: "\f1a72"; } +.lnid-menu-bento-2::after { content: "\f1a71"; } +.lnid-menu-cheesburger::before { content: "\f1a74"; } +.lnid-menu-cheesburger::after { content: "\f1a73"; } +.lnid-menu-fries-left-1::before { content: "\f1a76"; } +.lnid-menu-fries-left-1::after { content: "\f1a75"; } +.lnid-menu-fries-left-2::before { content: "\f1a78"; } +.lnid-menu-fries-left-2::after { content: "\f1a77"; } +.lnid-menu-fries-right-1::before { content: "\f1a7a"; } +.lnid-menu-fries-right-1::after { content: "\f1a79"; } +.lnid-menu-fries-right-2::before { content: "\f1a7c"; } +.lnid-menu-fries-right-2::after { content: "\f1a7b"; } +.lnid-menu-hamburger-1::before { content: "\f1a7e"; } +.lnid-menu-hamburger-1::after { content: "\f1a7d"; } +.lnid-menu-hamburger-2::before { content: "\f1a80"; } +.lnid-menu-hamburger-2::after { content: "\f1a7f"; } +.lnid-menu-hamburger-circle::before { content: "\f1a82"; } +.lnid-menu-hamburger-circle::after { content: "\f1a81"; } +.lnid-menu-hamburger-square::before { content: "\f1a84"; } +.lnid-menu-hamburger-square::after { content: "\f1a83"; } +.lnid-menu-hotdog::before { content: "\f1a8a"; } +.lnid-menu-hotdog::after { content: "\f1a89"; } +.lnid-menu-hotdog-circle::before { content: "\f1a86"; } +.lnid-menu-hotdog-circle::after { content: "\f1a85"; } +.lnid-menu-hotdog-square::before { content: "\f1a88"; } +.lnid-menu-hotdog-square::after { content: "\f1a87"; } +.lnid-menu-kebab-1::before { content: "\f1a90"; } +.lnid-menu-kebab-1::after { content: "\f1a8f"; } +.lnid-menu-kebab-1-circle::before { content: "\f1a8c"; } +.lnid-menu-kebab-1-circle::after { content: "\f1a8b"; } +.lnid-menu-kebab-1-square::before { content: "\f1a8e"; } +.lnid-menu-kebab-1-square::after { content: "\f1a8d"; } +.lnid-menu-kebab-2::before { content: "\f1a92"; } +.lnid-menu-kebab-2::after { content: "\f1a91"; } +.lnid-menu-meatballs-1::before { content: "\f1a98"; } +.lnid-menu-meatballs-1::after { content: "\f1a97"; } +.lnid-menu-meatballs-1-circle::before { content: "\f1a94"; } +.lnid-menu-meatballs-1-circle::after { content: "\f1a93"; } +.lnid-menu-meatballs-1-square::before { content: "\f1a96"; } +.lnid-menu-meatballs-1-square::after { content: "\f1a95"; } +.lnid-menu-meatballs-2::before { content: "\f1a9a"; } +.lnid-menu-meatballs-2::after { content: "\f1a99"; } +.lnid-menu-stairs-1::before { content: "\f1a9c"; } +.lnid-menu-stairs-1::after { content: "\f1a9b"; } +.lnid-menu-stairs-2::before { content: "\f1a9e"; } +.lnid-menu-stairs-2::after { content: "\f1a9d"; } +.lnid-menu-strawberry::before { content: "\f1aa0"; } +.lnid-menu-strawberry::after { content: "\f1a9f"; } +.lnid-menu-veggieburger::before { content: "\f1aa6"; } +.lnid-menu-veggieburger::after { content: "\f1aa5"; } +.lnid-menu-veggieburger-circle::before { content: "\f1aa2"; } +.lnid-menu-veggieburger-circle::after { content: "\f1aa1"; } +.lnid-menu-veggieburger-square::before { content: "\f1aa4"; } +.lnid-menu-veggieburger-square::after { content: "\f1aa3"; } +.lnid-merge::before { content: "\f1aac"; } +.lnid-merge::after { content: "\f1aab"; } +.lnid-merge-horizontal::before { content: "\f1aa8"; } +.lnid-merge-horizontal::after { content: "\f1aa7"; } +.lnid-merge-vertical::before { content: "\f1aaa"; } +.lnid-merge-vertical::after { content: "\f1aa9"; } +.lnid-message-1::before { content: "\f1ac2"; } +.lnid-message-1::after { content: "\f1ac1"; } +.lnid-message-1-bar-chart::before { content: "\f1aae"; } +.lnid-message-1-bar-chart::after { content: "\f1aad"; } +.lnid-message-1-bulb::before { content: "\f1ab0"; } +.lnid-message-1-bulb::after { content: "\f1aaf"; } +.lnid-message-1-dots::before { content: "\f1ab2"; } +.lnid-message-1-dots::after { content: "\f1ab1"; } +.lnid-message-1-error::before { content: "\f1ab4"; } +.lnid-message-1-error::after { content: "\f1ab3"; } +.lnid-message-1-heart::before { content: "\f1ab6"; } +.lnid-message-1-heart::after { content: "\f1ab5"; } +.lnid-message-1-minus::before { content: "\f1ab8"; } +.lnid-message-1-minus::after { content: "\f1ab7"; } +.lnid-message-1-plus::before { content: "\f1aba"; } +.lnid-message-1-plus::after { content: "\f1ab9"; } +.lnid-message-1-question::before { content: "\f1abc"; } +.lnid-message-1-question::after { content: "\f1abb"; } +.lnid-message-1-share::before { content: "\f1abe"; } +.lnid-message-1-share::after { content: "\f1abd"; } +.lnid-message-1-text::before { content: "\f1ac0"; } +.lnid-message-1-text::after { content: "\f1abf"; } +.lnid-message-2::before { content: "\f1ad8"; } +.lnid-message-2::after { content: "\f1ad7"; } +.lnid-message-2-dots::before { content: "\f1ac4"; } +.lnid-message-2-dots::after { content: "\f1ac3"; } +.lnid-message-2-error::before { content: "\f1ac6"; } +.lnid-message-2-error::after { content: "\f1ac5"; } +.lnid-message-2-heart::before { content: "\f1ac8"; } +.lnid-message-2-heart::after { content: "\f1ac7"; } +.lnid-message-2-minus::before { content: "\f1aca"; } +.lnid-message-2-minus::after { content: "\f1ac9"; } +.lnid-message-2-plus::before { content: "\f1acc"; } +.lnid-message-2-plus::after { content: "\f1acb"; } +.lnid-message-2-question::before { content: "\f1ace"; } +.lnid-message-2-question::after { content: "\f1acd"; } +.lnid-message-2-reversed::before { content: "\f1ad0"; } +.lnid-message-2-reversed::after { content: "\f1acf"; } +.lnid-message-2-share::before { content: "\f1ad2"; } +.lnid-message-2-share::after { content: "\f1ad1"; } +.lnid-message-2-text::before { content: "\f1ad4"; } +.lnid-message-2-text::after { content: "\f1ad3"; } +.lnid-message-2-user::before { content: "\f1ad6"; } +.lnid-message-2-user::after { content: "\f1ad5"; } +.lnid-message-3::before { content: "\f1aec"; } +.lnid-message-3::after { content: "\f1aeb"; } +.lnid-message-3-check::before { content: "\f1ada"; } +.lnid-message-3-check::after { content: "\f1ad9"; } +.lnid-message-3-dots::before { content: "\f1adc"; } +.lnid-message-3-dots::after { content: "\f1adb"; } +.lnid-message-3-error::before { content: "\f1ade"; } +.lnid-message-3-error::after { content: "\f1add"; } +.lnid-message-3-heart::before { content: "\f1ae0"; } +.lnid-message-3-heart::after { content: "\f1adf"; } +.lnid-message-3-minus::before { content: "\f1ae2"; } +.lnid-message-3-minus::after { content: "\f1ae1"; } +.lnid-message-3-plus::before { content: "\f1ae4"; } +.lnid-message-3-plus::after { content: "\f1ae3"; } +.lnid-message-3-question::before { content: "\f1ae6"; } +.lnid-message-3-question::after { content: "\f1ae5"; } +.lnid-message-3-share::before { content: "\f1ae8"; } +.lnid-message-3-share::after { content: "\f1ae7"; } +.lnid-message-3-text::before { content: "\f1aea"; } +.lnid-message-3-text::after { content: "\f1ae9"; } +.lnid-message-4::before { content: "\f1afe"; } +.lnid-message-4::after { content: "\f1afd"; } +.lnid-message-4-dots::before { content: "\f1aee"; } +.lnid-message-4-dots::after { content: "\f1aed"; } +.lnid-message-4-error::before { content: "\f1af0"; } +.lnid-message-4-error::after { content: "\f1aef"; } +.lnid-message-4-heart::before { content: "\f1af2"; } +.lnid-message-4-heart::after { content: "\f1af1"; } +.lnid-message-4-minus::before { content: "\f1af4"; } +.lnid-message-4-minus::after { content: "\f1af3"; } +.lnid-message-4-plus::before { content: "\f1af6"; } +.lnid-message-4-plus::after { content: "\f1af5"; } +.lnid-message-4-question::before { content: "\f1af8"; } +.lnid-message-4-question::after { content: "\f1af7"; } +.lnid-message-4-share::before { content: "\f1afa"; } +.lnid-message-4-share::after { content: "\f1af9"; } +.lnid-message-4-text::before { content: "\f1afc"; } +.lnid-message-4-text::after { content: "\f1afb"; } +.lnid-message-ai-1::before { content: "\f1b00"; } +.lnid-message-ai-1::after { content: "\f1aff"; } +.lnid-message-ai-2::before { content: "\f1b02"; } +.lnid-message-ai-2::after { content: "\f1b01"; } +.lnid-message-ai-3::before { content: "\f1b04"; } +.lnid-message-ai-3::after { content: "\f1b03"; } +.lnid-meta-rechtangle::before { content: "\f1b06"; } +.lnid-meta-rechtangle::after { content: "\f1b05"; } +.lnid-metaverse-1::before { content: "\f1b08"; } +.lnid-metaverse-1::after { content: "\f1b07"; } +.lnid-metaverse-2::before { content: "\f1b0a"; } +.lnid-metaverse-2::after { content: "\f1b09"; } +.lnid-mic-ai-1::before { content: "\f1b0c"; } +.lnid-mic-ai-1::after { content: "\f1b0b"; } +.lnid-mic-ai-2::before { content: "\f1b0e"; } +.lnid-mic-ai-2::after { content: "\f1b0d"; } +.lnid-microphone-1::before { content: "\f1b12"; } +.lnid-microphone-1::after { content: "\f1b11"; } +.lnid-microphone-1-circle::before { content: "\f1b10"; } +.lnid-microphone-1-circle::after { content: "\f1b0f"; } +.lnid-microphone-2::before { content: "\f1b14"; } +.lnid-microphone-2::after { content: "\f1b13"; } +.lnid-microphone-3::before { content: "\f1b16"; } +.lnid-microphone-3::after { content: "\f1b15"; } +.lnid-microphone-4::before { content: "\f1b18"; } +.lnid-microphone-4::after { content: "\f1b17"; } +.lnid-microphone-check-circle::before { content: "\f1b1a"; } +.lnid-microphone-check-circle::after { content: "\f1b19"; } +.lnid-microphone-disabled-1::before { content: "\f1b1c"; } +.lnid-microphone-disabled-1::after { content: "\f1b1b"; } +.lnid-microphone-disabled-2::before { content: "\f1b1e"; } +.lnid-microphone-disabled-2::after { content: "\f1b1d"; } +.lnid-microphone-error-circle::before { content: "\f1b20"; } +.lnid-microphone-error-circle::after { content: "\f1b1f"; } +.lnid-microphone-gear::before { content: "\f1b22"; } +.lnid-microphone-gear::after { content: "\f1b21"; } +.lnid-microphone-plus-circle::before { content: "\f1b24"; } +.lnid-microphone-plus-circle::after { content: "\f1b23"; } +.lnid-microphone-refresh::before { content: "\f1b26"; } +.lnid-microphone-refresh::after { content: "\f1b25"; } +.lnid-microphone-xmark-circle::before { content: "\f1b28"; } +.lnid-microphone-xmark-circle::after { content: "\f1b27"; } +.lnid-microscope::before { content: "\f1b2a"; } +.lnid-microscope::after { content: "\f1b29"; } +.lnid-milk-bottle-1::before { content: "\f1b2c"; } +.lnid-milk-bottle-1::after { content: "\f1b2b"; } +.lnid-milk-bottle-2::before { content: "\f1b2e"; } +.lnid-milk-bottle-2::after { content: "\f1b2d"; } +.lnid-minus::before { content: "\f1b38"; } +.lnid-minus::after { content: "\f1b37"; } +.lnid-minus-circle::before { content: "\f1b30"; } +.lnid-minus-circle::after { content: "\f1b2f"; } +.lnid-minus-hexagon::before { content: "\f1b32"; } +.lnid-minus-hexagon::after { content: "\f1b31"; } +.lnid-minus-octagon::before { content: "\f1b34"; } +.lnid-minus-octagon::after { content: "\f1b33"; } +.lnid-minus-square::before { content: "\f1b36"; } +.lnid-minus-square::after { content: "\f1b35"; } +.lnid-mirror::before { content: "\f1b3a"; } +.lnid-mirror::after { content: "\f1b39"; } +.lnid-mitten::before { content: "\f1b3c"; } +.lnid-mitten::after { content: "\f1b3b"; } +.lnid-molecule-1::before { content: "\f1b3e"; } +.lnid-molecule-1::after { content: "\f1b3d"; } +.lnid-molecule-2::before { content: "\f1b40"; } +.lnid-molecule-2::after { content: "\f1b3f"; } +.lnid-money-1::before { content: "\f1bb0"; } +.lnid-money-1::after { content: "\f1baf"; } +.lnid-money-1-arrow-down::before { content: "\f1b42"; } +.lnid-money-1-arrow-down::after { content: "\f1b41"; } +.lnid-money-1-arrow-left::before { content: "\f1b44"; } +.lnid-money-1-arrow-left::after { content: "\f1b43"; } +.lnid-money-1-arrow-right::before { content: "\f1b46"; } +.lnid-money-1-arrow-right::after { content: "\f1b45"; } +.lnid-money-1-arrow-up::before { content: "\f1b48"; } +.lnid-money-1-arrow-up::after { content: "\f1b47"; } +.lnid-money-1-bills::before { content: "\f1b4a"; } +.lnid-money-1-bills::after { content: "\f1b49"; } +.lnid-money-1-bitcoin::before { content: "\f1b4c"; } +.lnid-money-1-bitcoin::after { content: "\f1b4b"; } +.lnid-money-1-bracket::before { content: "\f1b4e"; } +.lnid-money-1-bracket::after { content: "\f1b4d"; } +.lnid-money-1-bundle::before { content: "\f1b50"; } +.lnid-money-1-bundle::after { content: "\f1b4f"; } +.lnid-money-1-check::before { content: "\f1b54"; } +.lnid-money-1-check::after { content: "\f1b53"; } +.lnid-money-1-check-circle::before { content: "\f1b52"; } +.lnid-money-1-check-circle::after { content: "\f1b51"; } +.lnid-money-1-cloud::before { content: "\f1b56"; } +.lnid-money-1-cloud::after { content: "\f1b55"; } +.lnid-money-1-crypto::before { content: "\f1b58"; } +.lnid-money-1-crypto::after { content: "\f1b57"; } +.lnid-money-1-disabled::before { content: "\f1b5a"; } +.lnid-money-1-disabled::after { content: "\f1b59"; } +.lnid-money-1-dollar-1::before { content: "\f1b5c"; } +.lnid-money-1-dollar-1::after { content: "\f1b5b"; } +.lnid-money-1-dollar-2::before { content: "\f1b5e"; } +.lnid-money-1-dollar-2::after { content: "\f1b5d"; } +.lnid-money-1-error::before { content: "\f1b60"; } +.lnid-money-1-error::after { content: "\f1b5f"; } +.lnid-money-1-fire::before { content: "\f1b62"; } +.lnid-money-1-fire::after { content: "\f1b61"; } +.lnid-money-1-globe::before { content: "\f1b64"; } +.lnid-money-1-globe::after { content: "\f1b63"; } +.lnid-money-1-heart::before { content: "\f1b68"; } +.lnid-money-1-heart::after { content: "\f1b67"; } +.lnid-money-1-heart-circle::before { content: "\f1b66"; } +.lnid-money-1-heart-circle::after { content: "\f1b65"; } +.lnid-money-1-info::before { content: "\f1b6a"; } +.lnid-money-1-info::after { content: "\f1b69"; } +.lnid-money-1-leaf::before { content: "\f1b6c"; } +.lnid-money-1-leaf::after { content: "\f1b6b"; } +.lnid-money-1-locked::before { content: "\f1b6e"; } +.lnid-money-1-locked::after { content: "\f1b6d"; } +.lnid-money-1-minus::before { content: "\f1b70"; } +.lnid-money-1-minus::after { content: "\f1b6f"; } +.lnid-money-1-number-1::before { content: "\f1b74"; } +.lnid-money-1-number-1::after { content: "\f1b73"; } +.lnid-money-1-number-10::before { content: "\f1b72"; } +.lnid-money-1-number-10::after { content: "\f1b71"; } +.lnid-money-1-paperclip::before { content: "\f1b76"; } +.lnid-money-1-paperclip::after { content: "\f1b75"; } +.lnid-money-1-percent::before { content: "\f1b7a"; } +.lnid-money-1-percent::after { content: "\f1b79"; } +.lnid-money-1-percent-circle::before { content: "\f1b78"; } +.lnid-money-1-percent-circle::after { content: "\f1b77"; } +.lnid-money-1-plus-circle::before { content: "\f1b7c"; } +.lnid-money-1-plus-circle::after { content: "\f1b7b"; } +.lnid-money-1-pound::before { content: "\f1b7e"; } +.lnid-money-1-pound::after { content: "\f1b7d"; } +.lnid-money-1-refresh::before { content: "\f1b80"; } +.lnid-money-1-refresh::after { content: "\f1b7f"; } +.lnid-money-1-return::before { content: "\f1b82"; } +.lnid-money-1-return::after { content: "\f1b81"; } +.lnid-money-1-search::before { content: "\f1b84"; } +.lnid-money-1-search::after { content: "\f1b83"; } +.lnid-money-1-share-1::before { content: "\f1b86"; } +.lnid-money-1-share-1::after { content: "\f1b85"; } +.lnid-money-1-share-2::before { content: "\f1b88"; } +.lnid-money-1-share-2::after { content: "\f1b87"; } +.lnid-money-1-shield::before { content: "\f1b8a"; } +.lnid-money-1-shield::after { content: "\f1b89"; } +.lnid-money-1-smile::before { content: "\f1b8c"; } +.lnid-money-1-smile::after { content: "\f1b8b"; } +.lnid-money-1-star::before { content: "\f1b8e"; } +.lnid-money-1-star::after { content: "\f1b8d"; } +.lnid-money-1-swap::before { content: "\f1b90"; } +.lnid-money-1-swap::after { content: "\f1b8f"; } +.lnid-money-1-thumbs-down::before { content: "\f1b92"; } +.lnid-money-1-thumbs-down::after { content: "\f1b91"; } +.lnid-money-1-thumbs-up::before { content: "\f1b94"; } +.lnid-money-1-thumbs-up::after { content: "\f1b93"; } +.lnid-money-1-time::before { content: "\f1b96"; } +.lnid-money-1-time::after { content: "\f1b95"; } +.lnid-money-1-trash::before { content: "\f1b98"; } +.lnid-money-1-trash::after { content: "\f1b97"; } +.lnid-money-1-trend-down::before { content: "\f1b9a"; } +.lnid-money-1-trend-down::after { content: "\f1b99"; } +.lnid-money-1-trend-up::before { content: "\f1b9c"; } +.lnid-money-1-trend-up::after { content: "\f1b9b"; } +.lnid-money-1-unlocked::before { content: "\f1b9e"; } +.lnid-money-1-unlocked::after { content: "\f1b9d"; } +.lnid-money-1-user::before { content: "\f1ba0"; } +.lnid-money-1-user::after { content: "\f1b9f"; } +.lnid-money-1-vr::before { content: "\f1ba2"; } +.lnid-money-1-vr::after { content: "\f1ba1"; } +.lnid-money-1-wave::before { content: "\f1ba4"; } +.lnid-money-1-wave::after { content: "\f1ba3"; } +.lnid-money-1-withdraw-1::before { content: "\f1ba6"; } +.lnid-money-1-withdraw-1::after { content: "\f1ba5"; } +.lnid-money-1-withdraw-2::before { content: "\f1ba8"; } +.lnid-money-1-withdraw-2::after { content: "\f1ba7"; } +.lnid-money-1-withdraw-3::before { content: "\f1baa"; } +.lnid-money-1-withdraw-3::after { content: "\f1ba9"; } +.lnid-money-1-xmark-circle::before { content: "\f1bac"; } +.lnid-money-1-xmark-circle::after { content: "\f1bab"; } +.lnid-money-1-yen::before { content: "\f1bae"; } +.lnid-money-1-yen::after { content: "\f1bad"; } +.lnid-money-2::before { content: "\f1c1e"; } +.lnid-money-2::after { content: "\f1c1d"; } +.lnid-money-2-arrow-downward::before { content: "\f1bb2"; } +.lnid-money-2-arrow-downward::after { content: "\f1bb1"; } +.lnid-money-2-arrow-left::before { content: "\f1bb4"; } +.lnid-money-2-arrow-left::after { content: "\f1bb3"; } +.lnid-money-2-arrow-right::before { content: "\f1bb6"; } +.lnid-money-2-arrow-right::after { content: "\f1bb5"; } +.lnid-money-2-arrow-upward::before { content: "\f1bb8"; } +.lnid-money-2-arrow-upward::after { content: "\f1bb7"; } +.lnid-money-2-bills::before { content: "\f1bba"; } +.lnid-money-2-bills::after { content: "\f1bb9"; } +.lnid-money-2-bitcoin::before { content: "\f1bbc"; } +.lnid-money-2-bitcoin::after { content: "\f1bbb"; } +.lnid-money-2-bracket::before { content: "\f1bbe"; } +.lnid-money-2-bracket::after { content: "\f1bbd"; } +.lnid-money-2-check::before { content: "\f1bc2"; } +.lnid-money-2-check::after { content: "\f1bc1"; } +.lnid-money-2-check-circle::before { content: "\f1bc0"; } +.lnid-money-2-check-circle::after { content: "\f1bbf"; } +.lnid-money-2-cloud::before { content: "\f1bc4"; } +.lnid-money-2-cloud::after { content: "\f1bc3"; } +.lnid-money-2-crypto::before { content: "\f1bc6"; } +.lnid-money-2-crypto::after { content: "\f1bc5"; } +.lnid-money-2-disabled::before { content: "\f1bc8"; } +.lnid-money-2-disabled::after { content: "\f1bc7"; } +.lnid-money-2-dollar-2::before { content: "\f1bca"; } +.lnid-money-2-dollar-2::after { content: "\f1bc9"; } +.lnid-money-2-error::before { content: "\f1bcc"; } +.lnid-money-2-error::after { content: "\f1bcb"; } +.lnid-money-2-fire::before { content: "\f1bce"; } +.lnid-money-2-fire::after { content: "\f1bcd"; } +.lnid-money-2-globe::before { content: "\f1bd0"; } +.lnid-money-2-globe::after { content: "\f1bcf"; } +.lnid-money-2-heart::before { content: "\f1bd4"; } +.lnid-money-2-heart::after { content: "\f1bd3"; } +.lnid-money-2-heart-circle::before { content: "\f1bd2"; } +.lnid-money-2-heart-circle::after { content: "\f1bd1"; } +.lnid-money-2-info::before { content: "\f1bd6"; } +.lnid-money-2-info::after { content: "\f1bd5"; } +.lnid-money-2-leaf::before { content: "\f1bd8"; } +.lnid-money-2-leaf::after { content: "\f1bd7"; } +.lnid-money-2-locked::before { content: "\f1bda"; } +.lnid-money-2-locked::after { content: "\f1bd9"; } +.lnid-money-2-minus::before { content: "\f1bdc"; } +.lnid-money-2-minus::after { content: "\f1bdb"; } +.lnid-money-2-number-1::before { content: "\f1be0"; } +.lnid-money-2-number-1::after { content: "\f1bdf"; } +.lnid-money-2-number-10::before { content: "\f1bde"; } +.lnid-money-2-number-10::after { content: "\f1bdd"; } +.lnid-money-2-paperclip::before { content: "\f1be2"; } +.lnid-money-2-paperclip::after { content: "\f1be1"; } +.lnid-money-2-percent::before { content: "\f1be6"; } +.lnid-money-2-percent::after { content: "\f1be5"; } +.lnid-money-2-percent-circle::before { content: "\f1be4"; } +.lnid-money-2-percent-circle::after { content: "\f1be3"; } +.lnid-money-2-plus-circle::before { content: "\f1be8"; } +.lnid-money-2-plus-circle::after { content: "\f1be7"; } +.lnid-money-2-pound::before { content: "\f1bea"; } +.lnid-money-2-pound::after { content: "\f1be9"; } +.lnid-money-2-refresh::before { content: "\f1bec"; } +.lnid-money-2-refresh::after { content: "\f1beb"; } +.lnid-money-2-return::before { content: "\f1bee"; } +.lnid-money-2-return::after { content: "\f1bed"; } +.lnid-money-2-search::before { content: "\f1bf0"; } +.lnid-money-2-search::after { content: "\f1bef"; } +.lnid-money-2-share-1::before { content: "\f1bf2"; } +.lnid-money-2-share-1::after { content: "\f1bf1"; } +.lnid-money-2-share-2::before { content: "\f1bf4"; } +.lnid-money-2-share-2::after { content: "\f1bf3"; } +.lnid-money-2-shield::before { content: "\f1bf6"; } +.lnid-money-2-shield::after { content: "\f1bf5"; } +.lnid-money-2-smile::before { content: "\f1bf8"; } +.lnid-money-2-smile::after { content: "\f1bf7"; } +.lnid-money-2-star::before { content: "\f1bfa"; } +.lnid-money-2-star::after { content: "\f1bf9"; } +.lnid-money-2-swap::before { content: "\f1bfc"; } +.lnid-money-2-swap::after { content: "\f1bfb"; } +.lnid-money-2-thumbs-down::before { content: "\f1bfe"; } +.lnid-money-2-thumbs-down::after { content: "\f1bfd"; } +.lnid-money-2-thumbs-up::before { content: "\f1c00"; } +.lnid-money-2-thumbs-up::after { content: "\f1bff"; } +.lnid-money-2-time::before { content: "\f1c02"; } +.lnid-money-2-time::after { content: "\f1c01"; } +.lnid-money-2-trash::before { content: "\f1c04"; } +.lnid-money-2-trash::after { content: "\f1c03"; } +.lnid-money-2-trend-down::before { content: "\f1c06"; } +.lnid-money-2-trend-down::after { content: "\f1c05"; } +.lnid-money-2-trend-up::before { content: "\f1c08"; } +.lnid-money-2-trend-up::after { content: "\f1c07"; } +.lnid-money-2-unlocked::before { content: "\f1c0a"; } +.lnid-money-2-unlocked::after { content: "\f1c09"; } +.lnid-money-2-user::before { content: "\f1c0c"; } +.lnid-money-2-user::after { content: "\f1c0b"; } +.lnid-money-2-vr::before { content: "\f1c0e"; } +.lnid-money-2-vr::after { content: "\f1c0d"; } +.lnid-money-2-wave::before { content: "\f1c10"; } +.lnid-money-2-wave::after { content: "\f1c0f"; } +.lnid-money-2-withdraw-1::before { content: "\f1c12"; } +.lnid-money-2-withdraw-1::after { content: "\f1c11"; } +.lnid-money-2-withdraw-2::before { content: "\f1c14"; } +.lnid-money-2-withdraw-2::after { content: "\f1c13"; } +.lnid-money-2-withdraw-3::before { content: "\f1c16"; } +.lnid-money-2-withdraw-3::after { content: "\f1c15"; } +.lnid-money-2-withdraw-wave::before { content: "\f1c18"; } +.lnid-money-2-withdraw-wave::after { content: "\f1c17"; } +.lnid-money-2-xmark-circle::before { content: "\f1c1a"; } +.lnid-money-2-xmark-circle::after { content: "\f1c19"; } +.lnid-money-2-yen::before { content: "\f1c1c"; } +.lnid-money-2-yen::after { content: "\f1c1b"; } +.lnid-money-ai-1::before { content: "\f1c20"; } +.lnid-money-ai-1::after { content: "\f1c1f"; } +.lnid-money-ai-2::before { content: "\f1c22"; } +.lnid-money-ai-2::after { content: "\f1c21"; } +.lnid-money-ai-3::before { content: "\f1c24"; } +.lnid-money-ai-3::after { content: "\f1c23"; } +.lnid-money-ai-4::before { content: "\f1c26"; } +.lnid-money-ai-4::after { content: "\f1c25"; } +.lnid-money-bundle::before { content: "\f1c28"; } +.lnid-money-bundle::after { content: "\f1c27"; } +.lnid-money-check-ai-1::before { content: "\f1c2a"; } +.lnid-money-check-ai-1::after { content: "\f1c29"; } +.lnid-money-check-ai-2::before { content: "\f1c2c"; } +.lnid-money-check-ai-2::after { content: "\f1c2b"; } +.lnid-money-exchange::before { content: "\f1c2e"; } +.lnid-money-exchange::after { content: "\f1c2d"; } +.lnid-monitor::before { content: "\f1c96"; } +.lnid-monitor::after { content: "\f1c95"; } +.lnid-monitor-2nd-bracket::before { content: "\f1c30"; } +.lnid-monitor-2nd-bracket::after { content: "\f1c2f"; } +.lnid-monitor-3-dot::before { content: "\f1c32"; } +.lnid-monitor-3-dot::after { content: "\f1c31"; } +.lnid-monitor-4k::before { content: "\f1c34"; } +.lnid-monitor-4k::after { content: "\f1c33"; } +.lnid-monitor-ai::before { content: "\f1c36"; } +.lnid-monitor-ai::after { content: "\f1c35"; } +.lnid-monitor-aids::before { content: "\f1c38"; } +.lnid-monitor-aids::after { content: "\f1c37"; } +.lnid-monitor-arrow-downward::before { content: "\f1c3a"; } +.lnid-monitor-arrow-downward::after { content: "\f1c39"; } +.lnid-monitor-arrow-upward::before { content: "\f1c3c"; } +.lnid-monitor-arrow-upward::after { content: "\f1c3b"; } +.lnid-monitor-bar-chart::before { content: "\f1c3e"; } +.lnid-monitor-bar-chart::after { content: "\f1c3d"; } +.lnid-monitor-beat::before { content: "\f1c40"; } +.lnid-monitor-beat::after { content: "\f1c3f"; } +.lnid-monitor-binary::before { content: "\f1c42"; } +.lnid-monitor-binary::after { content: "\f1c41"; } +.lnid-monitor-bolt::before { content: "\f1c44"; } +.lnid-monitor-bolt::after { content: "\f1c43"; } +.lnid-monitor-book::before { content: "\f1c46"; } +.lnid-monitor-book::after { content: "\f1c45"; } +.lnid-monitor-bug::before { content: "\f1c48"; } +.lnid-monitor-bug::after { content: "\f1c47"; } +.lnid-monitor-cart::before { content: "\f1c4a"; } +.lnid-monitor-cart::after { content: "\f1c49"; } +.lnid-monitor-check-circle::before { content: "\f1c4c"; } +.lnid-monitor-check-circle::after { content: "\f1c4b"; } +.lnid-monitor-chip::before { content: "\f1c4e"; } +.lnid-monitor-chip::after { content: "\f1c4d"; } +.lnid-monitor-cloud::before { content: "\f1c50"; } +.lnid-monitor-cloud::after { content: "\f1c4f"; } +.lnid-monitor-code::before { content: "\f1c52"; } +.lnid-monitor-code::after { content: "\f1c51"; } +.lnid-monitor-cursor::before { content: "\f1c54"; } +.lnid-monitor-cursor::after { content: "\f1c53"; } +.lnid-monitor-curved::before { content: "\f1c56"; } +.lnid-monitor-curved::after { content: "\f1c55"; } +.lnid-monitor-database::before { content: "\f1c58"; } +.lnid-monitor-database::after { content: "\f1c57"; } +.lnid-monitor-disabled-1::before { content: "\f1c5a"; } +.lnid-monitor-disabled-1::after { content: "\f1c59"; } +.lnid-monitor-disabled-2::before { content: "\f1c5c"; } +.lnid-monitor-disabled-2::after { content: "\f1c5b"; } +.lnid-monitor-dollar::before { content: "\f1c60"; } +.lnid-monitor-dollar::after { content: "\f1c5f"; } +.lnid-monitor-dollar-locked::before { content: "\f1c5e"; } +.lnid-monitor-dollar-locked::after { content: "\f1c5d"; } +.lnid-monitor-error::before { content: "\f1c62"; } +.lnid-monitor-error::after { content: "\f1c61"; } +.lnid-monitor-gear::before { content: "\f1c64"; } +.lnid-monitor-gear::after { content: "\f1c63"; } +.lnid-monitor-heart::before { content: "\f1c66"; } +.lnid-monitor-heart::after { content: "\f1c65"; } +.lnid-monitor-leaf::before { content: "\f1c68"; } +.lnid-monitor-leaf::after { content: "\f1c67"; } +.lnid-monitor-mac::before { content: "\f1c6a"; } +.lnid-monitor-mac::after { content: "\f1c69"; } +.lnid-monitor-pencil::before { content: "\f1c6c"; } +.lnid-monitor-pencil::after { content: "\f1c6b"; } +.lnid-monitor-phone::before { content: "\f1c6e"; } +.lnid-monitor-phone::after { content: "\f1c6d"; } +.lnid-monitor-plus::before { content: "\f1c72"; } +.lnid-monitor-plus::after { content: "\f1c71"; } +.lnid-monitor-plus-circle::before { content: "\f1c70"; } +.lnid-monitor-plus-circle::after { content: "\f1c6f"; } +.lnid-monitor-recycle::before { content: "\f1c74"; } +.lnid-monitor-recycle::after { content: "\f1c73"; } +.lnid-monitor-refresh-anticlockwise::before { content: "\f1c76"; } +.lnid-monitor-refresh-anticlockwise::after { content: "\f1c75"; } +.lnid-monitor-refresh-clockwise::before { content: "\f1c78"; } +.lnid-monitor-refresh-clockwise::after { content: "\f1c77"; } +.lnid-monitor-rocket-1::before { content: "\f1c7a"; } +.lnid-monitor-rocket-1::after { content: "\f1c79"; } +.lnid-monitor-rocket-2::before { content: "\f1c7c"; } +.lnid-monitor-rocket-2::after { content: "\f1c7b"; } +.lnid-monitor-server::before { content: "\f1c7e"; } +.lnid-monitor-server::after { content: "\f1c7d"; } +.lnid-monitor-shield::before { content: "\f1c80"; } +.lnid-monitor-shield::after { content: "\f1c7f"; } +.lnid-monitor-sound::before { content: "\f1c82"; } +.lnid-monitor-sound::after { content: "\f1c81"; } +.lnid-monitor-speaker::before { content: "\f1c84"; } +.lnid-monitor-speaker::after { content: "\f1c83"; } +.lnid-monitor-target::before { content: "\f1c86"; } +.lnid-monitor-target::after { content: "\f1c85"; } +.lnid-monitor-time::before { content: "\f1c88"; } +.lnid-monitor-time::after { content: "\f1c87"; } +.lnid-monitor-trend-down::before { content: "\f1c8a"; } +.lnid-monitor-trend-down::after { content: "\f1c89"; } +.lnid-monitor-trend-up::before { content: "\f1c8c"; } +.lnid-monitor-trend-up::after { content: "\f1c8b"; } +.lnid-monitor-user::before { content: "\f1c8e"; } +.lnid-monitor-user::after { content: "\f1c8d"; } +.lnid-monitor-video::before { content: "\f1c90"; } +.lnid-monitor-video::after { content: "\f1c8f"; } +.lnid-monitor-vr::before { content: "\f1c92"; } +.lnid-monitor-vr::after { content: "\f1c91"; } +.lnid-monitor-xmark-circle::before { content: "\f1c94"; } +.lnid-monitor-xmark-circle::after { content: "\f1c93"; } +.lnid-monkey-1::before { content: "\f1c98"; } +.lnid-monkey-1::after { content: "\f1c97"; } +.lnid-monkey-2::before { content: "\f1c9a"; } +.lnid-monkey-2::after { content: "\f1c99"; } +.lnid-moon-ai::before { content: "\f1c9c"; } +.lnid-moon-ai::after { content: "\f1c9b"; } +.lnid-moon-half-left-1::before { content: "\f1c9e"; } +.lnid-moon-half-left-1::after { content: "\f1c9d"; } +.lnid-moon-half-left-2::before { content: "\f1ca0"; } +.lnid-moon-half-left-2::after { content: "\f1c9f"; } +.lnid-moon-half-left-3::before { content: "\f1ca2"; } +.lnid-moon-half-left-3::after { content: "\f1ca1"; } +.lnid-moon-half-left-4::before { content: "\f1ca4"; } +.lnid-moon-half-left-4::after { content: "\f1ca3"; } +.lnid-moon-half-left-5::before { content: "\f1ca6"; } +.lnid-moon-half-left-5::after { content: "\f1ca5"; } +.lnid-moon-half-left-ai::before { content: "\f1ca8"; } +.lnid-moon-half-left-ai::after { content: "\f1ca7"; } +.lnid-moon-half-right-1::before { content: "\f1caa"; } +.lnid-moon-half-right-1::after { content: "\f1ca9"; } +.lnid-moon-half-right-2::before { content: "\f1cac"; } +.lnid-moon-half-right-2::after { content: "\f1cab"; } +.lnid-moon-half-right-3::before { content: "\f1cae"; } +.lnid-moon-half-right-3::after { content: "\f1cad"; } +.lnid-moon-half-right-4::before { content: "\f1cb0"; } +.lnid-moon-half-right-4::after { content: "\f1caf"; } +.lnid-moon-half-right-5::before { content: "\f1cb2"; } +.lnid-moon-half-right-5::after { content: "\f1cb1"; } +.lnid-moon-star-1::before { content: "\f1cb4"; } +.lnid-moon-star-1::after { content: "\f1cb3"; } +.lnid-moon-star-2::before { content: "\f1cb6"; } +.lnid-moon-star-2::after { content: "\f1cb5"; } +.lnid-moon-wind::before { content: "\f1cb8"; } +.lnid-moon-wind::after { content: "\f1cb7"; } +.lnid-mooring-buoy-1::before { content: "\f1cba"; } +.lnid-mooring-buoy-1::after { content: "\f1cb9"; } +.lnid-mooring-buoy-2::before { content: "\f1cbc"; } +.lnid-mooring-buoy-2::after { content: "\f1cbb"; } +.lnid-mooring-buoy-3::before { content: "\f1cbe"; } +.lnid-mooring-buoy-3::after { content: "\f1cbd"; } +.lnid-mooring-buoy-4::before { content: "\f1cc0"; } +.lnid-mooring-buoy-4::after { content: "\f1cbf"; } +.lnid-mooring-buoy-5::before { content: "\f1cc2"; } +.lnid-mooring-buoy-5::after { content: "\f1cc1"; } +.lnid-mooring-buoy-6::before { content: "\f1cc4"; } +.lnid-mooring-buoy-6::after { content: "\f1cc3"; } +.lnid-mosque-1::before { content: "\f1cc6"; } +.lnid-mosque-1::after { content: "\f1cc5"; } +.lnid-mosque-2::before { content: "\f1cc8"; } +.lnid-mosque-2::after { content: "\f1cc7"; } +.lnid-mosque-3::before { content: "\f1cca"; } +.lnid-mosque-3::after { content: "\f1cc9"; } +.lnid-mosque-4::before { content: "\f1ccc"; } +.lnid-mosque-4::after { content: "\f1ccb"; } +.lnid-mosque-check-circle::before { content: "\f1cce"; } +.lnid-mosque-check-circle::after { content: "\f1ccd"; } +.lnid-mosque-heart::before { content: "\f1cd0"; } +.lnid-mosque-heart::after { content: "\f1ccf"; } +.lnid-mosque-time::before { content: "\f1cd2"; } +.lnid-mosque-time::after { content: "\f1cd1"; } +.lnid-mosque-user::before { content: "\f1cd4"; } +.lnid-mosque-user::after { content: "\f1cd3"; } +.lnid-motion::before { content: "\f1cd6"; } +.lnid-motion::after { content: "\f1cd5"; } +.lnid-mountain::before { content: "\f1cd8"; } +.lnid-mountain::after { content: "\f1cd7"; } +.lnid-mountains-1::before { content: "\f1cda"; } +.lnid-mountains-1::after { content: "\f1cd9"; } +.lnid-mountains-2::before { content: "\f1cdc"; } +.lnid-mountains-2::after { content: "\f1cdb"; } +.lnid-mountains-3::before { content: "\f1cde"; } +.lnid-mountains-3::after { content: "\f1cdd"; } +.lnid-mountains-4::before { content: "\f1ce0"; } +.lnid-mountains-4::after { content: "\f1cdf"; } +.lnid-mountains-5::before { content: "\f1ce2"; } +.lnid-mountains-5::after { content: "\f1ce1"; } +.lnid-mountains-6::before { content: "\f1ce4"; } +.lnid-mountains-6::after { content: "\f1ce3"; } +.lnid-mountains-7::before { content: "\f1ce6"; } +.lnid-mountains-7::after { content: "\f1ce5"; } +.lnid-mountains-8::before { content: "\f1ce8"; } +.lnid-mountains-8::after { content: "\f1ce7"; } +.lnid-mountains-ai-1::before { content: "\f1cea"; } +.lnid-mountains-ai-1::after { content: "\f1ce9"; } +.lnid-mountains-ai-2::before { content: "\f1cec"; } +.lnid-mountains-ai-2::after { content: "\f1ceb"; } +.lnid-mountains-ai-3::before { content: "\f1cee"; } +.lnid-mountains-ai-3::after { content: "\f1ced"; } +.lnid-mouse-1::before { content: "\f1cf0"; } +.lnid-mouse-1::after { content: "\f1cef"; } +.lnid-mouse-2::before { content: "\f1cf2"; } +.lnid-mouse-2::after { content: "\f1cf1"; } +.lnid-mouse-arrow-downward::before { content: "\f1cf4"; } +.lnid-mouse-arrow-downward::after { content: "\f1cf3"; } +.lnid-mouse-arrow-left::before { content: "\f1cf6"; } +.lnid-mouse-arrow-left::after { content: "\f1cf5"; } +.lnid-mouse-arrow-right::before { content: "\f1cf8"; } +.lnid-mouse-arrow-right::after { content: "\f1cf7"; } +.lnid-mouse-arrow-upward::before { content: "\f1cfa"; } +.lnid-mouse-arrow-upward::after { content: "\f1cf9"; } +.lnid-mouse-bluetooth::before { content: "\f1cfc"; } +.lnid-mouse-bluetooth::after { content: "\f1cfb"; } +.lnid-mouse-bolt::before { content: "\f1cfe"; } +.lnid-mouse-bolt::after { content: "\f1cfd"; } +.lnid-mouse-check-circle::before { content: "\f1d00"; } +.lnid-mouse-check-circle::after { content: "\f1cff"; } +.lnid-mouse-disabled::before { content: "\f1d02"; } +.lnid-mouse-disabled::after { content: "\f1d01"; } +.lnid-mouse-gear::before { content: "\f1d04"; } +.lnid-mouse-gear::after { content: "\f1d03"; } +.lnid-mouse-left-click::before { content: "\f1d06"; } +.lnid-mouse-left-click::after { content: "\f1d05"; } +.lnid-mouse-locked::before { content: "\f1d08"; } +.lnid-mouse-locked::after { content: "\f1d07"; } +.lnid-mouse-refresh::before { content: "\f1d0a"; } +.lnid-mouse-refresh::after { content: "\f1d09"; } +.lnid-mouse-right-click::before { content: "\f1d0c"; } +.lnid-mouse-right-click::after { content: "\f1d0b"; } +.lnid-mouse-wifi::before { content: "\f1d0e"; } +.lnid-mouse-wifi::after { content: "\f1d0d"; } +.lnid-mouse-xmark-circle::before { content: "\f1d10"; } +.lnid-mouse-xmark-circle::after { content: "\f1d0f"; } +.lnid-move-down::before { content: "\f1d12"; } +.lnid-move-down::after { content: "\f1d11"; } +.lnid-move-left::before { content: "\f1d14"; } +.lnid-move-left::after { content: "\f1d13"; } +.lnid-move-right::before { content: "\f1d16"; } +.lnid-move-right::after { content: "\f1d15"; } +.lnid-move-up::before { content: "\f1d18"; } +.lnid-move-up::after { content: "\f1d17"; } +.lnid-muscles::before { content: "\f1d1c"; } +.lnid-muscles::after { content: "\f1d1b"; } +.lnid-muscles-ai::before { content: "\f1d1a"; } +.lnid-muscles-ai::after { content: "\f1d19"; } +.lnid-mushroom-1::before { content: "\f1d1e"; } +.lnid-mushroom-1::after { content: "\f1d1d"; } +.lnid-mushroom-2::before { content: "\f1d20"; } +.lnid-mushroom-2::after { content: "\f1d1f"; } +.lnid-mushroom-3::before { content: "\f1d22"; } +.lnid-mushroom-3::after { content: "\f1d21"; } +.lnid-mushroom-4::before { content: "\f1d24"; } +.lnid-mushroom-4::after { content: "\f1d23"; } +.lnid-mushroom-5::before { content: "\f1d26"; } +.lnid-mushroom-5::after { content: "\f1d25"; } +.lnid-mushrooms-1::before { content: "\f1d28"; } +.lnid-mushrooms-1::after { content: "\f1d27"; } +.lnid-mushrooms-2::before { content: "\f1d2a"; } +.lnid-mushrooms-2::after { content: "\f1d29"; } +.lnid-mushrooms-3::before { content: "\f1d2c"; } +.lnid-mushrooms-3::after { content: "\f1d2b"; } +.lnid-music::before { content: "\f1d3e"; } +.lnid-music::after { content: "\f1d3d"; } +.lnid-music-ai-1::before { content: "\f1d2e"; } +.lnid-music-ai-1::after { content: "\f1d2d"; } +.lnid-music-ai-2::before { content: "\f1d30"; } +.lnid-music-ai-2::after { content: "\f1d2f"; } +.lnid-music-heart::before { content: "\f1d32"; } +.lnid-music-heart::after { content: "\f1d31"; } +.lnid-music-list-1::before { content: "\f1d34"; } +.lnid-music-list-1::after { content: "\f1d33"; } +.lnid-music-list-2::before { content: "\f1d36"; } +.lnid-music-list-2::after { content: "\f1d35"; } +.lnid-music-list-3::before { content: "\f1d38"; } +.lnid-music-list-3::after { content: "\f1d37"; } +.lnid-music-list-4::before { content: "\f1d3a"; } +.lnid-music-list-4::after { content: "\f1d39"; } +.lnid-music-note::before { content: "\f1d3c"; } +.lnid-music-note::after { content: "\f1d3b"; } +.lnid-mustache::before { content: "\f1d40"; } +.lnid-mustache::after { content: "\f1d3f"; } +.lnid-nail-1::before { content: "\f1d42"; } +.lnid-nail-1::after { content: "\f1d41"; } +.lnid-nail-2::before { content: "\f1d44"; } +.lnid-nail-2::after { content: "\f1d43"; } +.lnid-nailpolish-1::before { content: "\f1d46"; } +.lnid-nailpolish-1::after { content: "\f1d45"; } +.lnid-nailpolish-2::before { content: "\f1d48"; } +.lnid-nailpolish-2::after { content: "\f1d47"; } +.lnid-nailpolish-3::before { content: "\f1d4a"; } +.lnid-nailpolish-3::after { content: "\f1d49"; } +.lnid-necklace-1::before { content: "\f1d4c"; } +.lnid-necklace-1::after { content: "\f1d4b"; } +.lnid-necklace-2::before { content: "\f1d4e"; } +.lnid-necklace-2::after { content: "\f1d4d"; } +.lnid-network-ai-1::before { content: "\f1d50"; } +.lnid-network-ai-1::after { content: "\f1d4f"; } +.lnid-network-ai-2::before { content: "\f1d52"; } +.lnid-network-ai-2::after { content: "\f1d51"; } +.lnid-newspaper::before { content: "\f1d56"; } +.lnid-newspaper::after { content: "\f1d55"; } +.lnid-newspaper-ai::before { content: "\f1d54"; } +.lnid-newspaper-ai::after { content: "\f1d53"; } +.lnid-next-step-1::before { content: "\f1d58"; } +.lnid-next-step-1::after { content: "\f1d57"; } +.lnid-next-step-2::before { content: "\f1d5a"; } +.lnid-next-step-2::after { content: "\f1d59"; } +.lnid-nfc-1::before { content: "\f1d5e"; } +.lnid-nfc-1::after { content: "\f1d5d"; } +.lnid-nfc-1-disabled::before { content: "\f1d5c"; } +.lnid-nfc-1-disabled::after { content: "\f1d5b"; } +.lnid-nfc-2::before { content: "\f1d62"; } +.lnid-nfc-2::after { content: "\f1d61"; } +.lnid-nfc-2-disabled::before { content: "\f1d60"; } +.lnid-nfc-2-disabled::after { content: "\f1d5f"; } +.lnid-nfc-3::before { content: "\f1d64"; } +.lnid-nfc-3::after { content: "\f1d63"; } +.lnid-nfc-4::before { content: "\f1d68"; } +.lnid-nfc-4::after { content: "\f1d67"; } +.lnid-nfc-4-disabled::before { content: "\f1d66"; } +.lnid-nfc-4-disabled::after { content: "\f1d65"; } +.lnid-nfc-ai-1::before { content: "\f1d6a"; } +.lnid-nfc-ai-1::after { content: "\f1d69"; } +.lnid-nfc-ai-2::before { content: "\f1d6c"; } +.lnid-nfc-ai-2::after { content: "\f1d6b"; } +.lnid-nfc-card::before { content: "\f1d70"; } +.lnid-nfc-card::after { content: "\f1d6f"; } +.lnid-nfc-card-disabled::before { content: "\f1d6e"; } +.lnid-nfc-card-disabled::after { content: "\f1d6d"; } +.lnid-nfc-circle::before { content: "\f1d74"; } +.lnid-nfc-circle::after { content: "\f1d73"; } +.lnid-nfc-circle-disabled::before { content: "\f1d72"; } +.lnid-nfc-circle-disabled::after { content: "\f1d71"; } +.lnid-nfc-square::before { content: "\f1d78"; } +.lnid-nfc-square::after { content: "\f1d77"; } +.lnid-nfc-square-disabled::before { content: "\f1d76"; } +.lnid-nfc-square-disabled::after { content: "\f1d75"; } +.lnid-node-add::before { content: "\f1d7a"; } +.lnid-node-add::after { content: "\f1d79"; } +.lnid-node-edit::before { content: "\f1d7c"; } +.lnid-node-edit::after { content: "\f1d7b"; } +.lnid-node-move-down::before { content: "\f1d7e"; } +.lnid-node-move-down::after { content: "\f1d7d"; } +.lnid-node-move-up::before { content: "\f1d80"; } +.lnid-node-move-up::after { content: "\f1d7f"; } +.lnid-node-remove::before { content: "\f1d82"; } +.lnid-node-remove::after { content: "\f1d81"; } +.lnid-node-tree::before { content: "\f1d84"; } +.lnid-node-tree::after { content: "\f1d83"; } +.lnid-nose::before { content: "\f1d86"; } +.lnid-nose::after { content: "\f1d85"; } +.lnid-notebook-1::before { content: "\f1d88"; } +.lnid-notebook-1::after { content: "\f1d87"; } +.lnid-notebook-2::before { content: "\f1d8a"; } +.lnid-notebook-2::after { content: "\f1d89"; } +.lnid-notebook-ai::before { content: "\f1d8c"; } +.lnid-notebook-ai::after { content: "\f1d8b"; } +.lnid-notification::before { content: "\f1d94"; } +.lnid-notification::after { content: "\f1d93"; } +.lnid-notification-ai::before { content: "\f1d8e"; } +.lnid-notification-ai::after { content: "\f1d8d"; } +.lnid-notification-text::before { content: "\f1d92"; } +.lnid-notification-text::after { content: "\f1d91"; } +.lnid-notification-text-ai::before { content: "\f1d90"; } +.lnid-notification-text-ai::after { content: "\f1d8f"; } +.lnid-nurse-hat-1::before { content: "\f1d96"; } +.lnid-nurse-hat-1::after { content: "\f1d95"; } +.lnid-nurse-hat-2::before { content: "\f1d98"; } +.lnid-nurse-hat-2::after { content: "\f1d97"; } +.lnid-octagon-code-ai::before { content: "\f1d9a"; } +.lnid-octagon-code-ai::after { content: "\f1d99"; } +.lnid-octagon-code-simple-ai::before { content: "\f1d9c"; } +.lnid-octagon-code-simple-ai::after { content: "\f1d9b"; } +.lnid-old-1::before { content: "\f1d9e"; } +.lnid-old-1::after { content: "\f1d9d"; } +.lnid-old-2::before { content: "\f1da0"; } +.lnid-old-2::after { content: "\f1d9f"; } +.lnid-opera-house::before { content: "\f1da2"; } +.lnid-opera-house::after { content: "\f1da1"; } +.lnid-orange::before { content: "\f1da4"; } +.lnid-orange::after { content: "\f1da3"; } +.lnid-outdent::before { content: "\f1da6"; } +.lnid-outdent::after { content: "\f1da5"; } +.lnid-page-break-1::before { content: "\f1da8"; } +.lnid-page-break-1::after { content: "\f1da7"; } +.lnid-page-break-2::before { content: "\f1daa"; } +.lnid-page-break-2::after { content: "\f1da9"; } +.lnid-pagination::before { content: "\f1dac"; } +.lnid-pagination::after { content: "\f1dab"; } +.lnid-paint-bucket::before { content: "\f1dae"; } +.lnid-paint-bucket::after { content: "\f1dad"; } +.lnid-paint-roller-1::before { content: "\f1db0"; } +.lnid-paint-roller-1::after { content: "\f1daf"; } +.lnid-paint-roller-2::before { content: "\f1db2"; } +.lnid-paint-roller-2::after { content: "\f1db1"; } +.lnid-paint-roller-3::before { content: "\f1db4"; } +.lnid-paint-roller-3::after { content: "\f1db3"; } +.lnid-pancake::before { content: "\f1db6"; } +.lnid-pancake::after { content: "\f1db5"; } +.lnid-paperclip-1::before { content: "\f1db8"; } +.lnid-paperclip-1::after { content: "\f1db7"; } +.lnid-paperclip-2::before { content: "\f1dba"; } +.lnid-paperclip-2::after { content: "\f1db9"; } +.lnid-party-cone-1::before { content: "\f1dbc"; } +.lnid-party-cone-1::after { content: "\f1dbb"; } +.lnid-party-cone-2::before { content: "\f1dbe"; } +.lnid-party-cone-2::after { content: "\f1dbd"; } +.lnid-party-flags::before { content: "\f1dc0"; } +.lnid-party-flags::after { content: "\f1dbf"; } +.lnid-party-horn::before { content: "\f1dc2"; } +.lnid-party-horn::after { content: "\f1dc1"; } +.lnid-party-spray::before { content: "\f1dc4"; } +.lnid-party-spray::after { content: "\f1dc3"; } +.lnid-passport-1::before { content: "\f1dc6"; } +.lnid-passport-1::after { content: "\f1dc5"; } +.lnid-passport-2::before { content: "\f1dc8"; } +.lnid-passport-2::after { content: "\f1dc7"; } +.lnid-passport-3::before { content: "\f1dca"; } +.lnid-passport-3::after { content: "\f1dc9"; } +.lnid-passport-4::before { content: "\f1dcc"; } +.lnid-passport-4::after { content: "\f1dcb"; } +.lnid-passport-5::before { content: "\f1dce"; } +.lnid-passport-5::after { content: "\f1dcd"; } +.lnid-passport-6::before { content: "\f1dd0"; } +.lnid-passport-6::after { content: "\f1dcf"; } +.lnid-passport-7::before { content: "\f1dd2"; } +.lnid-passport-7::after { content: "\f1dd1"; } +.lnid-pause::before { content: "\f1dd4"; } +.lnid-pause::after { content: "\f1dd3"; } +.lnid-pear::before { content: "\f1dd6"; } +.lnid-pear::after { content: "\f1dd5"; } +.lnid-pen-drive-ai-1::before { content: "\f1dd8"; } +.lnid-pen-drive-ai-1::after { content: "\f1dd7"; } +.lnid-pen-drive-ai-2::before { content: "\f1dda"; } +.lnid-pen-drive-ai-2::after { content: "\f1dd9"; } +.lnid-pen-drive-binary::before { content: "\f1ddc"; } +.lnid-pen-drive-binary::after { content: "\f1ddb"; } +.lnid-pen-drive-book::before { content: "\f1dde"; } +.lnid-pen-drive-book::after { content: "\f1ddd"; } +.lnid-pen-drive-check-circle::before { content: "\f1de0"; } +.lnid-pen-drive-check-circle::after { content: "\f1ddf"; } +.lnid-pen-drive-code::before { content: "\f1de2"; } +.lnid-pen-drive-code::after { content: "\f1de1"; } +.lnid-pen-drive-disabled::before { content: "\f1de8"; } +.lnid-pen-drive-disabled::after { content: "\f1de7"; } +.lnid-pen-drive-disabled-1::before { content: "\f1de4"; } +.lnid-pen-drive-disabled-1::after { content: "\f1de3"; } +.lnid-pen-drive-disabled-2::before { content: "\f1de6"; } +.lnid-pen-drive-disabled-2::after { content: "\f1de5"; } +.lnid-pen-drive-document::before { content: "\f1dea"; } +.lnid-pen-drive-document::after { content: "\f1de9"; } +.lnid-pen-drive-error-circle::before { content: "\f1dec"; } +.lnid-pen-drive-error-circle::after { content: "\f1deb"; } +.lnid-pen-drive-gear::before { content: "\f1dee"; } +.lnid-pen-drive-gear::after { content: "\f1ded"; } +.lnid-pen-drive-heart::before { content: "\f1df0"; } +.lnid-pen-drive-heart::after { content: "\f1def"; } +.lnid-pen-drive-leaf::before { content: "\f1df2"; } +.lnid-pen-drive-leaf::after { content: "\f1df1"; } +.lnid-pen-drive-locked::before { content: "\f1df4"; } +.lnid-pen-drive-locked::after { content: "\f1df3"; } +.lnid-pen-drive-minus-circle::before { content: "\f1df6"; } +.lnid-pen-drive-minus-circle::after { content: "\f1df5"; } +.lnid-pen-drive-plus-circle::before { content: "\f1df8"; } +.lnid-pen-drive-plus-circle::after { content: "\f1df7"; } +.lnid-pen-drive-shield::before { content: "\f1dfa"; } +.lnid-pen-drive-shield::after { content: "\f1df9"; } +.lnid-pen-drive-star::before { content: "\f1dfc"; } +.lnid-pen-drive-star::after { content: "\f1dfb"; } +.lnid-pen-drive-trash::before { content: "\f1dfe"; } +.lnid-pen-drive-trash::after { content: "\f1dfd"; } +.lnid-pen-drive-user::before { content: "\f1e00"; } +.lnid-pen-drive-user::after { content: "\f1dff"; } +.lnid-pen-drive-video::before { content: "\f1e02"; } +.lnid-pen-drive-video::after { content: "\f1e01"; } +.lnid-pen-drive-xmark-circle::before { content: "\f1e04"; } +.lnid-pen-drive-xmark-circle::after { content: "\f1e03"; } +.lnid-pen-to-square::before { content: "\f1e06"; } +.lnid-pen-to-square::after { content: "\f1e05"; } +.lnid-pen-tool-1::before { content: "\f1e08"; } +.lnid-pen-tool-1::after { content: "\f1e07"; } +.lnid-pen-tool-2::before { content: "\f1e0a"; } +.lnid-pen-tool-2::after { content: "\f1e09"; } +.lnid-pen-tool-3::before { content: "\f1e0c"; } +.lnid-pen-tool-3::after { content: "\f1e0b"; } +.lnid-pen-tool-4::before { content: "\f1e0e"; } +.lnid-pen-tool-4::after { content: "\f1e0d"; } +.lnid-pen-tool-ai::before { content: "\f1e10"; } +.lnid-pen-tool-ai::after { content: "\f1e0f"; } +.lnid-pen-tool-minus::before { content: "\f1e14"; } +.lnid-pen-tool-minus::after { content: "\f1e13"; } +.lnid-pen-tool-minus-circle::before { content: "\f1e12"; } +.lnid-pen-tool-minus-circle::after { content: "\f1e11"; } +.lnid-pen-tool-plus::before { content: "\f1e18"; } +.lnid-pen-tool-plus::after { content: "\f1e17"; } +.lnid-pen-tool-plus-circle::before { content: "\f1e16"; } +.lnid-pen-tool-plus-circle::after { content: "\f1e15"; } +.lnid-pencil-1::before { content: "\f1e1a"; } +.lnid-pencil-1::after { content: "\f1e19"; } +.lnid-pencil-2::before { content: "\f1e1c"; } +.lnid-pencil-2::after { content: "\f1e1b"; } +.lnid-pencil-ai-1::before { content: "\f1e1e"; } +.lnid-pencil-ai-1::after { content: "\f1e1d"; } +.lnid-pencil-ai-2::before { content: "\f1e20"; } +.lnid-pencil-ai-2::after { content: "\f1e1f"; } +.lnid-percent::before { content: "\f1e22"; } +.lnid-percent::after { content: "\f1e21"; } +.lnid-perfume-1::before { content: "\f1e24"; } +.lnid-perfume-1::after { content: "\f1e23"; } +.lnid-perfume-2::before { content: "\f1e26"; } +.lnid-perfume-2::after { content: "\f1e25"; } +.lnid-perfume-3::before { content: "\f1e28"; } +.lnid-perfume-3::after { content: "\f1e27"; } +.lnid-person-chalkboard::before { content: "\f1e2c"; } +.lnid-person-chalkboard::after { content: "\f1e2b"; } +.lnid-person-chalkboard-ai::before { content: "\f1e2a"; } +.lnid-person-chalkboard-ai::after { content: "\f1e29"; } +.lnid-phone::before { content: "\f1e96"; } +.lnid-phone::after { content: "\f1e95"; } +.lnid-phone-ai::before { content: "\f1e2e"; } +.lnid-phone-ai::after { content: "\f1e2d"; } +.lnid-phone-aids::before { content: "\f1e30"; } +.lnid-phone-aids::after { content: "\f1e2f"; } +.lnid-phone-apps::before { content: "\f1e32"; } +.lnid-phone-apps::after { content: "\f1e31"; } +.lnid-phone-arrow-downward::before { content: "\f1e34"; } +.lnid-phone-arrow-downward::after { content: "\f1e33"; } +.lnid-phone-arrow-left::before { content: "\f1e36"; } +.lnid-phone-arrow-left::after { content: "\f1e35"; } +.lnid-phone-arrow-right::before { content: "\f1e38"; } +.lnid-phone-arrow-right::after { content: "\f1e37"; } +.lnid-phone-arrow-upward::before { content: "\f1e3a"; } +.lnid-phone-arrow-upward::after { content: "\f1e39"; } +.lnid-phone-bar-chart-1::before { content: "\f1e3c"; } +.lnid-phone-bar-chart-1::after { content: "\f1e3b"; } +.lnid-phone-bar-chart-2::before { content: "\f1e3e"; } +.lnid-phone-bar-chart-2::after { content: "\f1e3d"; } +.lnid-phone-basket::before { content: "\f1e40"; } +.lnid-phone-basket::after { content: "\f1e3f"; } +.lnid-phone-battery::before { content: "\f1e42"; } +.lnid-phone-battery::after { content: "\f1e41"; } +.lnid-phone-bluethooth::before { content: "\f1e44"; } +.lnid-phone-bluethooth::after { content: "\f1e43"; } +.lnid-phone-bolt::before { content: "\f1e46"; } +.lnid-phone-bolt::after { content: "\f1e45"; } +.lnid-phone-book::before { content: "\f1e48"; } +.lnid-phone-book::after { content: "\f1e47"; } +.lnid-phone-chat::before { content: "\f1e4a"; } +.lnid-phone-chat::after { content: "\f1e49"; } +.lnid-phone-check-circle::before { content: "\f1e4c"; } +.lnid-phone-check-circle::after { content: "\f1e4b"; } +.lnid-phone-disabled::before { content: "\f1e4e"; } +.lnid-phone-disabled::after { content: "\f1e4d"; } +.lnid-phone-dollar::before { content: "\f1e50"; } +.lnid-phone-dollar::after { content: "\f1e4f"; } +.lnid-phone-error-circle::before { content: "\f1e52"; } +.lnid-phone-error-circle::after { content: "\f1e51"; } +.lnid-phone-gear::before { content: "\f1e54"; } +.lnid-phone-gear::after { content: "\f1e53"; } +.lnid-phone-heart::before { content: "\f1e56"; } +.lnid-phone-heart::after { content: "\f1e55"; } +.lnid-phone-id::before { content: "\f1e58"; } +.lnid-phone-id::after { content: "\f1e57"; } +.lnid-phone-link::before { content: "\f1e5a"; } +.lnid-phone-link::after { content: "\f1e59"; } +.lnid-phone-live::before { content: "\f1e5c"; } +.lnid-phone-live::after { content: "\f1e5b"; } +.lnid-phone-locked::before { content: "\f1e5e"; } +.lnid-phone-locked::after { content: "\f1e5d"; } +.lnid-phone-moon::before { content: "\f1e60"; } +.lnid-phone-moon::after { content: "\f1e5f"; } +.lnid-phone-network::before { content: "\f1e62"; } +.lnid-phone-network::after { content: "\f1e61"; } +.lnid-phone-nfc::before { content: "\f1e64"; } +.lnid-phone-nfc::after { content: "\f1e63"; } +.lnid-phone-notch::before { content: "\f1e66"; } +.lnid-phone-notch::after { content: "\f1e65"; } +.lnid-phone-pencil::before { content: "\f1e68"; } +.lnid-phone-pencil::after { content: "\f1e67"; } +.lnid-phone-recycle::before { content: "\f1e6a"; } +.lnid-phone-recycle::after { content: "\f1e69"; } +.lnid-phone-refresh::before { content: "\f1e6c"; } +.lnid-phone-refresh::after { content: "\f1e6b"; } +.lnid-phone-rocket-1::before { content: "\f1e6e"; } +.lnid-phone-rocket-1::after { content: "\f1e6d"; } +.lnid-phone-rocket-2::before { content: "\f1e70"; } +.lnid-phone-rocket-2::after { content: "\f1e6f"; } +.lnid-phone-shield::before { content: "\f1e72"; } +.lnid-phone-shield::after { content: "\f1e71"; } +.lnid-phone-silent-1::before { content: "\f1e74"; } +.lnid-phone-silent-1::after { content: "\f1e73"; } +.lnid-phone-silent-2::before { content: "\f1e76"; } +.lnid-phone-silent-2::after { content: "\f1e75"; } +.lnid-phone-sim::before { content: "\f1e78"; } +.lnid-phone-sim::after { content: "\f1e77"; } +.lnid-phone-sound::before { content: "\f1e7a"; } +.lnid-phone-sound::after { content: "\f1e79"; } +.lnid-phone-star::before { content: "\f1e7c"; } +.lnid-phone-star::after { content: "\f1e7b"; } +.lnid-phone-sun::before { content: "\f1e7e"; } +.lnid-phone-sun::after { content: "\f1e7d"; } +.lnid-phone-taka::before { content: "\f1e80"; } +.lnid-phone-taka::after { content: "\f1e7f"; } +.lnid-phone-target::before { content: "\f1e82"; } +.lnid-phone-target::after { content: "\f1e81"; } +.lnid-phone-time::before { content: "\f1e84"; } +.lnid-phone-time::after { content: "\f1e83"; } +.lnid-phone-trash::before { content: "\f1e86"; } +.lnid-phone-trash::after { content: "\f1e85"; } +.lnid-phone-trend-up::before { content: "\f1e88"; } +.lnid-phone-trend-up::after { content: "\f1e87"; } +.lnid-phone-user::before { content: "\f1e8a"; } +.lnid-phone-user::after { content: "\f1e89"; } +.lnid-phone-vibration-1::before { content: "\f1e8c"; } +.lnid-phone-vibration-1::after { content: "\f1e8b"; } +.lnid-phone-vibration-2::before { content: "\f1e8e"; } +.lnid-phone-vibration-2::after { content: "\f1e8d"; } +.lnid-phone-video::before { content: "\f1e90"; } +.lnid-phone-video::after { content: "\f1e8f"; } +.lnid-phone-vr::before { content: "\f1e92"; } +.lnid-phone-vr::after { content: "\f1e91"; } +.lnid-phone-wifi::before { content: "\f1e94"; } +.lnid-phone-wifi::after { content: "\f1e93"; } +.lnid-photos::before { content: "\f1e9a"; } +.lnid-photos::after { content: "\f1e99"; } +.lnid-photos-ai::before { content: "\f1e98"; } +.lnid-photos-ai::after { content: "\f1e97"; } +.lnid-pie-chart-1::before { content: "\f1e9c"; } +.lnid-pie-chart-1::after { content: "\f1e9b"; } +.lnid-pie-chart-2::before { content: "\f1e9e"; } +.lnid-pie-chart-2::after { content: "\f1e9d"; } +.lnid-pie-chart-ai::before { content: "\f1ea0"; } +.lnid-pie-chart-ai::after { content: "\f1e9f"; } +.lnid-pie-chart-dollar::before { content: "\f1ea2"; } +.lnid-pie-chart-dollar::after { content: "\f1ea1"; } +.lnid-piggy-bank::before { content: "\f1eae"; } +.lnid-piggy-bank::after { content: "\f1ead"; } +.lnid-piggy-bank-ai::before { content: "\f1ea4"; } +.lnid-piggy-bank-ai::after { content: "\f1ea3"; } +.lnid-piggy-bank-coin::before { content: "\f1ea6"; } +.lnid-piggy-bank-coin::after { content: "\f1ea5"; } +.lnid-piggy-bank-dollar::before { content: "\f1ea8"; } +.lnid-piggy-bank-dollar::after { content: "\f1ea7"; } +.lnid-piggy-bank-locked::before { content: "\f1eaa"; } +.lnid-piggy-bank-locked::after { content: "\f1ea9"; } +.lnid-piggy-bank-percent::before { content: "\f1eac"; } +.lnid-piggy-bank-percent::after { content: "\f1eab"; } +.lnid-pilcrow::before { content: "\f1eb0"; } +.lnid-pilcrow::after { content: "\f1eaf"; } +.lnid-pin::before { content: "\f1eb2"; } +.lnid-pin::after { content: "\f1eb1"; } +.lnid-pineapple::before { content: "\f1eb4"; } +.lnid-pineapple::after { content: "\f1eb3"; } +.lnid-pipe::before { content: "\f1eb6"; } +.lnid-pipe::after { content: "\f1eb5"; } +.lnid-pizza-1::before { content: "\f1eb8"; } +.lnid-pizza-1::after { content: "\f1eb7"; } +.lnid-pizza-2::before { content: "\f1eba"; } +.lnid-pizza-2::after { content: "\f1eb9"; } +.lnid-placeholder-dollar::before { content: "\f1ebc"; } +.lnid-placeholder-dollar::after { content: "\f1ebb"; } +.lnid-placeholder-euro::before { content: "\f1ebe"; } +.lnid-placeholder-euro::after { content: "\f1ebd"; } +.lnid-placeholder-pound::before { content: "\f1ec0"; } +.lnid-placeholder-pound::after { content: "\f1ebf"; } +.lnid-placeholder-ruble::before { content: "\f1ec2"; } +.lnid-placeholder-ruble::after { content: "\f1ec1"; } +.lnid-plan::before { content: "\f1ec8"; } +.lnid-plan::after { content: "\f1ec7"; } +.lnid-plan-ai::before { content: "\f1ec4"; } +.lnid-plan-ai::after { content: "\f1ec3"; } +.lnid-plan-pie-chart::before { content: "\f1ec6"; } +.lnid-plan-pie-chart::after { content: "\f1ec5"; } +.lnid-plant-ai-1::before { content: "\f1eca"; } +.lnid-plant-ai-1::after { content: "\f1ec9"; } +.lnid-plant-ai-2::before { content: "\f1ecc"; } +.lnid-plant-ai-2::after { content: "\f1ecb"; } +.lnid-plant-dollar::before { content: "\f1ece"; } +.lnid-plant-dollar::after { content: "\f1ecd"; } +.lnid-plant-pot-1::before { content: "\f1ed0"; } +.lnid-plant-pot-1::after { content: "\f1ecf"; } +.lnid-plant-pot-2::before { content: "\f1ed2"; } +.lnid-plant-pot-2::after { content: "\f1ed1"; } +.lnid-plant-pot-3::before { content: "\f1ed4"; } +.lnid-plant-pot-3::after { content: "\f1ed3"; } +.lnid-plant-pot-4::before { content: "\f1ed6"; } +.lnid-plant-pot-4::after { content: "\f1ed5"; } +.lnid-plant-pot-5::before { content: "\f1ed8"; } +.lnid-plant-pot-5::after { content: "\f1ed7"; } +.lnid-plant-pot-6::before { content: "\f1eda"; } +.lnid-plant-pot-6::after { content: "\f1ed9"; } +.lnid-plate::before { content: "\f1ede"; } +.lnid-plate::after { content: "\f1edd"; } +.lnid-plate-spoon-fork::before { content: "\f1edc"; } +.lnid-plate-spoon-fork::after { content: "\f1edb"; } +.lnid-play::before { content: "\f1ee0"; } +.lnid-play::after { content: "\f1edf"; } +.lnid-plug-1::before { content: "\f1ee2"; } +.lnid-plug-1::after { content: "\f1ee1"; } +.lnid-plug-2::before { content: "\f1ee4"; } +.lnid-plug-2::after { content: "\f1ee3"; } +.lnid-plug-3::before { content: "\f1ee6"; } +.lnid-plug-3::after { content: "\f1ee5"; } +.lnid-plug-4::before { content: "\f1ee8"; } +.lnid-plug-4::after { content: "\f1ee7"; } +.lnid-plug-bolt::before { content: "\f1eea"; } +.lnid-plug-bolt::after { content: "\f1ee9"; } +.lnid-plug-cable::before { content: "\f1eec"; } +.lnid-plug-cable::after { content: "\f1eeb"; } +.lnid-plug-check-circle::before { content: "\f1eee"; } +.lnid-plug-check-circle::after { content: "\f1eed"; } +.lnid-plug-disabled::before { content: "\f1ef0"; } +.lnid-plug-disabled::after { content: "\f1eef"; } +.lnid-plug-error-circle::before { content: "\f1ef2"; } +.lnid-plug-error-circle::after { content: "\f1ef1"; } +.lnid-plug-fire::before { content: "\f1ef4"; } +.lnid-plug-fire::after { content: "\f1ef3"; } +.lnid-plug-gear::before { content: "\f1ef6"; } +.lnid-plug-gear::after { content: "\f1ef5"; } +.lnid-plug-info-circle::before { content: "\f1ef8"; } +.lnid-plug-info-circle::after { content: "\f1ef7"; } +.lnid-plug-leaf::before { content: "\f1efa"; } +.lnid-plug-leaf::after { content: "\f1ef9"; } +.lnid-plug-locked::before { content: "\f1efc"; } +.lnid-plug-locked::after { content: "\f1efb"; } +.lnid-plug-play::before { content: "\f1efe"; } +.lnid-plug-play::after { content: "\f1efd"; } +.lnid-plug-plus-circle::before { content: "\f1f00"; } +.lnid-plug-plus-circle::after { content: "\f1eff"; } +.lnid-plug-question-mark::before { content: "\f1f02"; } +.lnid-plug-question-mark::after { content: "\f1f01"; } +.lnid-plug-refresh::before { content: "\f1f04"; } +.lnid-plug-refresh::after { content: "\f1f03"; } +.lnid-plug-shield::before { content: "\f1f06"; } +.lnid-plug-shield::after { content: "\f1f05"; } +.lnid-plug-thumbs-down::before { content: "\f1f08"; } +.lnid-plug-thumbs-down::after { content: "\f1f07"; } +.lnid-plug-thumbs-up::before { content: "\f1f0a"; } +.lnid-plug-thumbs-up::after { content: "\f1f09"; } +.lnid-plug-unlocked::before { content: "\f1f0c"; } +.lnid-plug-unlocked::after { content: "\f1f0b"; } +.lnid-plug-xmark-circle::before { content: "\f1f0e"; } +.lnid-plug-xmark-circle::after { content: "\f1f0d"; } +.lnid-plus::before { content: "\f1f1c"; } +.lnid-plus::after { content: "\f1f1b"; } +.lnid-plus-circle::before { content: "\f1f10"; } +.lnid-plus-circle::after { content: "\f1f0f"; } +.lnid-plus-hexagon::before { content: "\f1f12"; } +.lnid-plus-hexagon::after { content: "\f1f11"; } +.lnid-plus-octagon::before { content: "\f1f14"; } +.lnid-plus-octagon::after { content: "\f1f13"; } +.lnid-plus-rechtangle::before { content: "\f1f16"; } +.lnid-plus-rechtangle::after { content: "\f1f15"; } +.lnid-plus-reload::before { content: "\f1f18"; } +.lnid-plus-reload::after { content: "\f1f17"; } +.lnid-plus-square::before { content: "\f1f1a"; } +.lnid-plus-square::after { content: "\f1f19"; } +.lnid-police-badge::before { content: "\f1f1e"; } +.lnid-police-badge::after { content: "\f1f1d"; } +.lnid-popcorn::before { content: "\f1f20"; } +.lnid-popcorn::after { content: "\f1f1f"; } +.lnid-pos-machine-1::before { content: "\f1f22"; } +.lnid-pos-machine-1::after { content: "\f1f21"; } +.lnid-pos-machine-2::before { content: "\f1f24"; } +.lnid-pos-machine-2::after { content: "\f1f23"; } +.lnid-pos-machine-3::before { content: "\f1f26"; } +.lnid-pos-machine-3::after { content: "\f1f25"; } +.lnid-pos-machine-4::before { content: "\f1f28"; } +.lnid-pos-machine-4::after { content: "\f1f27"; } +.lnid-pos-machine-5::before { content: "\f1f2a"; } +.lnid-pos-machine-5::after { content: "\f1f29"; } +.lnid-pos-machine-6::before { content: "\f1f2c"; } +.lnid-pos-machine-6::after { content: "\f1f2b"; } +.lnid-pos-machine-7::before { content: "\f1f2e"; } +.lnid-pos-machine-7::after { content: "\f1f2d"; } +.lnid-pos-machine-8::before { content: "\f1f30"; } +.lnid-pos-machine-8::after { content: "\f1f2f"; } +.lnid-pound::before { content: "\f1f3c"; } +.lnid-pound::after { content: "\f1f3b"; } +.lnid-pound-ai-1::before { content: "\f1f32"; } +.lnid-pound-ai-1::after { content: "\f1f31"; } +.lnid-pound-ai-2::before { content: "\f1f34"; } +.lnid-pound-ai-2::after { content: "\f1f33"; } +.lnid-pound-circle::before { content: "\f1f36"; } +.lnid-pound-circle::after { content: "\f1f35"; } +.lnid-pound-trend-down::before { content: "\f1f38"; } +.lnid-pound-trend-down::after { content: "\f1f37"; } +.lnid-pound-trend-up::before { content: "\f1f3a"; } +.lnid-pound-trend-up::after { content: "\f1f39"; } +.lnid-power-button::before { content: "\f1f3e"; } +.lnid-power-button::after { content: "\f1f3d"; } +.lnid-pray-hand::before { content: "\f1f40"; } +.lnid-pray-hand::after { content: "\f1f3f"; } +.lnid-prayer-rug-1::before { content: "\f1f42"; } +.lnid-prayer-rug-1::after { content: "\f1f41"; } +.lnid-prayer-rug-2::before { content: "\f1f44"; } +.lnid-prayer-rug-2::after { content: "\f1f43"; } +.lnid-prayer-rug-3::before { content: "\f1f46"; } +.lnid-prayer-rug-3::after { content: "\f1f45"; } +.lnid-presentation-1::before { content: "\f1f48"; } +.lnid-presentation-1::after { content: "\f1f47"; } +.lnid-presentation-2::before { content: "\f1f4a"; } +.lnid-presentation-2::after { content: "\f1f49"; } +.lnid-presentation-3::before { content: "\f1f4c"; } +.lnid-presentation-3::after { content: "\f1f4b"; } +.lnid-presentation-4::before { content: "\f1f4e"; } +.lnid-presentation-4::after { content: "\f1f4d"; } +.lnid-presentation-4k::before { content: "\f1f50"; } +.lnid-presentation-4k::after { content: "\f1f4f"; } +.lnid-presentation-ai-1::before { content: "\f1f52"; } +.lnid-presentation-ai-1::after { content: "\f1f51"; } +.lnid-presentation-ai-2::before { content: "\f1f54"; } +.lnid-presentation-ai-2::after { content: "\f1f53"; } +.lnid-presentation-ai-3::before { content: "\f1f56"; } +.lnid-presentation-ai-3::after { content: "\f1f55"; } +.lnid-presentation-ai-4::before { content: "\f1f58"; } +.lnid-presentation-ai-4::after { content: "\f1f57"; } +.lnid-presentation-bar-chart-1::before { content: "\f1f5a"; } +.lnid-presentation-bar-chart-1::after { content: "\f1f59"; } +.lnid-presentation-bar-chart-2::before { content: "\f1f5c"; } +.lnid-presentation-bar-chart-2::after { content: "\f1f5b"; } +.lnid-presentation-beat::before { content: "\f1f5e"; } +.lnid-presentation-beat::after { content: "\f1f5d"; } +.lnid-presentation-bug::before { content: "\f1f60"; } +.lnid-presentation-bug::after { content: "\f1f5f"; } +.lnid-presentation-bulb::before { content: "\f1f62"; } +.lnid-presentation-bulb::after { content: "\f1f61"; } +.lnid-presentation-cursor::before { content: "\f1f64"; } +.lnid-presentation-cursor::after { content: "\f1f63"; } +.lnid-presentation-dollar::before { content: "\f1f66"; } +.lnid-presentation-dollar::after { content: "\f1f65"; } +.lnid-presentation-fire::before { content: "\f1f68"; } +.lnid-presentation-fire::after { content: "\f1f67"; } +.lnid-presentation-list::before { content: "\f1f6a"; } +.lnid-presentation-list::after { content: "\f1f69"; } +.lnid-presentation-money::before { content: "\f1f6c"; } +.lnid-presentation-money::after { content: "\f1f6b"; } +.lnid-presentation-percent::before { content: "\f1f6e"; } +.lnid-presentation-percent::after { content: "\f1f6d"; } +.lnid-presentation-pie-chart::before { content: "\f1f70"; } +.lnid-presentation-pie-chart::after { content: "\f1f6f"; } +.lnid-presentation-thumbs-down::before { content: "\f1f72"; } +.lnid-presentation-thumbs-down::after { content: "\f1f71"; } +.lnid-presentation-thumbs-up::before { content: "\f1f74"; } +.lnid-presentation-thumbs-up::after { content: "\f1f73"; } +.lnid-presentation-trend-down::before { content: "\f1f76"; } +.lnid-presentation-trend-down::after { content: "\f1f75"; } +.lnid-presentation-trend-up::before { content: "\f1f78"; } +.lnid-presentation-trend-up::after { content: "\f1f77"; } +.lnid-presentation-user::before { content: "\f1f7a"; } +.lnid-presentation-user::after { content: "\f1f79"; } +.lnid-presentation-vr::before { content: "\f1f7c"; } +.lnid-presentation-vr::after { content: "\f1f7b"; } +.lnid-previous-step-1::before { content: "\f1f7e"; } +.lnid-previous-step-1::after { content: "\f1f7d"; } +.lnid-previous-step-2::before { content: "\f1f80"; } +.lnid-previous-step-2::after { content: "\f1f7f"; } +.lnid-printer::before { content: "\f1f94"; } +.lnid-printer::after { content: "\f1f93"; } +.lnid-printer-check-circle::before { content: "\f1f82"; } +.lnid-printer-check-circle::after { content: "\f1f81"; } +.lnid-printer-cloud::before { content: "\f1f84"; } +.lnid-printer-cloud::after { content: "\f1f83"; } +.lnid-printer-disabled::before { content: "\f1f86"; } +.lnid-printer-disabled::after { content: "\f1f85"; } +.lnid-printer-error-circle::before { content: "\f1f88"; } +.lnid-printer-error-circle::after { content: "\f1f87"; } +.lnid-printer-gear::before { content: "\f1f8a"; } +.lnid-printer-gear::after { content: "\f1f89"; } +.lnid-printer-plus-circle::before { content: "\f1f8c"; } +.lnid-printer-plus-circle::after { content: "\f1f8b"; } +.lnid-printer-refresh::before { content: "\f1f8e"; } +.lnid-printer-refresh::after { content: "\f1f8d"; } +.lnid-printer-wifi::before { content: "\f1f90"; } +.lnid-printer-wifi::after { content: "\f1f8f"; } +.lnid-printer-xmark-circle::before { content: "\f1f92"; } +.lnid-printer-xmark-circle::after { content: "\f1f91"; } +.lnid-prison::before { content: "\f1f96"; } +.lnid-prison::after { content: "\f1f95"; } +.lnid-projector::before { content: "\f1f98"; } +.lnid-projector::after { content: "\f1f97"; } +.lnid-property-price-balance::before { content: "\f1f9a"; } +.lnid-property-price-balance::after { content: "\f1f99"; } +.lnid-pruning-shears::before { content: "\f1f9c"; } +.lnid-pruning-shears::after { content: "\f1f9b"; } +.lnid-pull-up::before { content: "\f1f9e"; } +.lnid-pull-up::after { content: "\f1f9d"; } +.lnid-pumpkin::before { content: "\f1fa2"; } +.lnid-pumpkin::after { content: "\f1fa1"; } +.lnid-pumpkin-halloween::before { content: "\f1fa0"; } +.lnid-pumpkin-halloween::after { content: "\f1f9f"; } +.lnid-punching-bag::before { content: "\f1fa4"; } +.lnid-punching-bag::after { content: "\f1fa3"; } +.lnid-push-down::before { content: "\f1fa6"; } +.lnid-push-down::after { content: "\f1fa5"; } +.lnid-push-left::before { content: "\f1fa8"; } +.lnid-push-left::after { content: "\f1fa7"; } +.lnid-push-right::before { content: "\f1faa"; } +.lnid-push-right::after { content: "\f1fa9"; } +.lnid-push-up::before { content: "\f1fac"; } +.lnid-push-up::after { content: "\f1fab"; } +.lnid-puzzle::before { content: "\f1fae"; } +.lnid-puzzle::after { content: "\f1fad"; } +.lnid-pyramid::before { content: "\f1fb4"; } +.lnid-pyramid::after { content: "\f1fb3"; } +.lnid-pyramid-arrow-downward::before { content: "\f1fb0"; } +.lnid-pyramid-arrow-downward::after { content: "\f1faf"; } +.lnid-pyramid-arrow-upward::before { content: "\f1fb2"; } +.lnid-pyramid-arrow-upward::after { content: "\f1fb1"; } +.lnid-question-mark::before { content: "\f1fbe"; } +.lnid-question-mark::after { content: "\f1fbd"; } +.lnid-question-mark-circle::before { content: "\f1fb6"; } +.lnid-question-mark-circle::after { content: "\f1fb5"; } +.lnid-question-mark-hexagon::before { content: "\f1fb8"; } +.lnid-question-mark-hexagon::after { content: "\f1fb7"; } +.lnid-question-mark-octagon::before { content: "\f1fba"; } +.lnid-question-mark-octagon::after { content: "\f1fb9"; } +.lnid-question-mark-square::before { content: "\f1fbc"; } +.lnid-question-mark-square::after { content: "\f1fbb"; } +.lnid-quill::before { content: "\f1fc2"; } +.lnid-quill::after { content: "\f1fc1"; } +.lnid-quill-ai::before { content: "\f1fc0"; } +.lnid-quill-ai::after { content: "\f1fbf"; } +.lnid-rabbit::before { content: "\f1fc4"; } +.lnid-rabbit::after { content: "\f1fc3"; } +.lnid-radar::before { content: "\f1fc8"; } +.lnid-radar::after { content: "\f1fc7"; } +.lnid-radar-objects::before { content: "\f1fc6"; } +.lnid-radar-objects::after { content: "\f1fc5"; } +.lnid-radiation::before { content: "\f1fca"; } +.lnid-radiation::after { content: "\f1fc9"; } +.lnid-radio::before { content: "\f1fcc"; } +.lnid-radio::after { content: "\f1fcb"; } +.lnid-rainbow::before { content: "\f1fd0"; } +.lnid-rainbow::after { content: "\f1fcf"; } +.lnid-rainbow-cloud::before { content: "\f1fce"; } +.lnid-rainbow-cloud::after { content: "\f1fcd"; } +.lnid-rechtangle::before { content: "\f1fd6"; } +.lnid-rechtangle::after { content: "\f1fd5"; } +.lnid-rechtangle-code-ai::before { content: "\f1fd2"; } +.lnid-rechtangle-code-ai::after { content: "\f1fd1"; } +.lnid-rechtangle-code-simple-ai::before { content: "\f1fd4"; } +.lnid-rechtangle-code-simple-ai::after { content: "\f1fd3"; } +.lnid-record-button::before { content: "\f1fd8"; } +.lnid-record-button::after { content: "\f1fd7"; } +.lnid-recycle-circle::before { content: "\f1fda"; } +.lnid-recycle-circle::after { content: "\f1fd9"; } +.lnid-recycle-triangle::before { content: "\f1fdc"; } +.lnid-recycle-triangle::after { content: "\f1fdb"; } +.lnid-redo::before { content: "\f1fde"; } +.lnid-redo::after { content: "\f1fdd"; } +.lnid-reel::before { content: "\f1fe4"; } +.lnid-reel::after { content: "\f1fe3"; } +.lnid-reel-heart-1::before { content: "\f1fe0"; } +.lnid-reel-heart-1::after { content: "\f1fdf"; } +.lnid-reel-heart-2::before { content: "\f1fe2"; } +.lnid-reel-heart-2::after { content: "\f1fe1"; } +.lnid-refresh-ai-1::before { content: "\f1fe6"; } +.lnid-refresh-ai-1::after { content: "\f1fe5"; } +.lnid-refresh-ai-2::before { content: "\f1fe8"; } +.lnid-refresh-ai-2::after { content: "\f1fe7"; } +.lnid-refresh-ai-3::before { content: "\f1fea"; } +.lnid-refresh-ai-3::after { content: "\f1fe9"; } +.lnid-refresh-ai-4::before { content: "\f1fec"; } +.lnid-refresh-ai-4::after { content: "\f1feb"; } +.lnid-refresh-ai-5::before { content: "\f1fee"; } +.lnid-refresh-ai-5::after { content: "\f1fed"; } +.lnid-refresh-ai-6::before { content: "\f1ff0"; } +.lnid-refresh-ai-6::after { content: "\f1fef"; } +.lnid-refresh-bulb-1::before { content: "\f1ff2"; } +.lnid-refresh-bulb-1::after { content: "\f1ff1"; } +.lnid-refresh-bulb-2::before { content: "\f1ff4"; } +.lnid-refresh-bulb-2::after { content: "\f1ff3"; } +.lnid-refresh-circle-1-anticlockwise::before { content: "\f1ff6"; } +.lnid-refresh-circle-1-anticlockwise::after { content: "\f1ff5"; } +.lnid-refresh-circle-1-clockwise::before { content: "\f1ff8"; } +.lnid-refresh-circle-1-clockwise::after { content: "\f1ff7"; } +.lnid-refresh-circle-2-anticlockwise::before { content: "\f1ffa"; } +.lnid-refresh-circle-2-anticlockwise::after { content: "\f1ff9"; } +.lnid-refresh-circle-2-clockwise::before { content: "\f1ffc"; } +.lnid-refresh-circle-2-clockwise::after { content: "\f1ffb"; } +.lnid-refresh-circle-3-anticlockwise::before { content: "\f1ffe"; } +.lnid-refresh-circle-3-anticlockwise::after { content: "\f1ffd"; } +.lnid-refresh-circle-3-clockwise::before { content: "\f2000"; } +.lnid-refresh-circle-3-clockwise::after { content: "\f1fff"; } +.lnid-refresh-dollar-1::before { content: "\f2002"; } +.lnid-refresh-dollar-1::after { content: "\f2001"; } +.lnid-refresh-dollar-2::before { content: "\f2004"; } +.lnid-refresh-dollar-2::after { content: "\f2003"; } +.lnid-refresh-user-1::before { content: "\f2006"; } +.lnid-refresh-user-1::after { content: "\f2005"; } +.lnid-refresh-user-2::before { content: "\f2008"; } +.lnid-refresh-user-2::after { content: "\f2007"; } +.lnid-repeat-1::before { content: "\f2018"; } +.lnid-repeat-1::after { content: "\f2017"; } +.lnid-repeat-1-one::before { content: "\f200a"; } +.lnid-repeat-1-one::after { content: "\f2009"; } +.lnid-repeat-1-vertical-anticlockwise-1::before { content: "\f200c"; } +.lnid-repeat-1-vertical-anticlockwise-1::after { content: "\f200b"; } +.lnid-repeat-1-vertical-anticlockwise-2::before { content: "\f200e"; } +.lnid-repeat-1-vertical-anticlockwise-2::after { content: "\f200d"; } +.lnid-repeat-1-vertical-anticlockwise-3::before { content: "\f2010"; } +.lnid-repeat-1-vertical-anticlockwise-3::after { content: "\f200f"; } +.lnid-repeat-1-vertical-clockwise-1::before { content: "\f2012"; } +.lnid-repeat-1-vertical-clockwise-1::after { content: "\f2011"; } +.lnid-repeat-1-vertical-clockwise-2::before { content: "\f2014"; } +.lnid-repeat-1-vertical-clockwise-2::after { content: "\f2013"; } +.lnid-repeat-1-vertical-clockwise-3::before { content: "\f2016"; } +.lnid-repeat-1-vertical-clockwise-3::after { content: "\f2015"; } +.lnid-repeat-2-one::before { content: "\f201a"; } +.lnid-repeat-2-one::after { content: "\f2019"; } +.lnid-repeat-2-vertical-anticlockwise-1::before { content: "\f201c"; } +.lnid-repeat-2-vertical-anticlockwise-1::after { content: "\f201b"; } +.lnid-repeat-2-vertical-anticlockwise-2::before { content: "\f201e"; } +.lnid-repeat-2-vertical-anticlockwise-2::after { content: "\f201d"; } +.lnid-repeat-2-vertical-anticlockwise-3::before { content: "\f2020"; } +.lnid-repeat-2-vertical-anticlockwise-3::after { content: "\f201f"; } +.lnid-repeat-2-vertical-clockwise-1::before { content: "\f2022"; } +.lnid-repeat-2-vertical-clockwise-1::after { content: "\f2021"; } +.lnid-repeat-2-vertical-clockwise-2::before { content: "\f2024"; } +.lnid-repeat-2-vertical-clockwise-2::after { content: "\f2023"; } +.lnid-repeat-2-vertical-clockwise-3::before { content: "\f2026"; } +.lnid-repeat-2-vertical-clockwise-3::after { content: "\f2025"; } +.lnid-repeat-3-one::before { content: "\f2028"; } +.lnid-repeat-3-one::after { content: "\f2027"; } +.lnid-repeat-3-vertical-anticlockwise-1::before { content: "\f202a"; } +.lnid-repeat-3-vertical-anticlockwise-1::after { content: "\f2029"; } +.lnid-repeat-3-vertical-anticlockwise-2::before { content: "\f202c"; } +.lnid-repeat-3-vertical-anticlockwise-2::after { content: "\f202b"; } +.lnid-repeat-3-vertical-anticlockwise-3::before { content: "\f202e"; } +.lnid-repeat-3-vertical-anticlockwise-3::after { content: "\f202d"; } +.lnid-repeat-3-vertical-clockwise-1::before { content: "\f2030"; } +.lnid-repeat-3-vertical-clockwise-1::after { content: "\f202f"; } +.lnid-repeat-3-vertical-clockwise-2::before { content: "\f2032"; } +.lnid-repeat-3-vertical-clockwise-2::after { content: "\f2031"; } +.lnid-repeat-3-vertical-clockwise-3::before { content: "\f2034"; } +.lnid-repeat-3-vertical-clockwise-3::after { content: "\f2033"; } +.lnid-repeat-ai-1::before { content: "\f2036"; } +.lnid-repeat-ai-1::after { content: "\f2035"; } +.lnid-repeat-ai-2::before { content: "\f2038"; } +.lnid-repeat-ai-2::after { content: "\f2037"; } +.lnid-repeat-ai-3::before { content: "\f203a"; } +.lnid-repeat-ai-3::after { content: "\f2039"; } +.lnid-repeat-anticlockwise-circle-1::before { content: "\f203c"; } +.lnid-repeat-anticlockwise-circle-1::after { content: "\f203b"; } +.lnid-repeat-anticlockwise-circle-2::before { content: "\f203e"; } +.lnid-repeat-anticlockwise-circle-2::after { content: "\f203d"; } +.lnid-repeat-anticlockwise-square-1::before { content: "\f2040"; } +.lnid-repeat-anticlockwise-square-1::after { content: "\f203f"; } +.lnid-repeat-anticlockwise-square-2::before { content: "\f2042"; } +.lnid-repeat-anticlockwise-square-2::after { content: "\f2041"; } +.lnid-repeat-clockwise-circle-1::before { content: "\f2044"; } +.lnid-repeat-clockwise-circle-1::after { content: "\f2043"; } +.lnid-repeat-clockwise-circle-2::before { content: "\f2046"; } +.lnid-repeat-clockwise-circle-2::after { content: "\f2045"; } +.lnid-repeat-clockwise-square-1::before { content: "\f2048"; } +.lnid-repeat-clockwise-square-1::after { content: "\f2047"; } +.lnid-repeat-clockwise-square-2::before { content: "\f204a"; } +.lnid-repeat-clockwise-square-2::after { content: "\f2049"; } +.lnid-report-analytics::before { content: "\f204c"; } +.lnid-report-analytics::after { content: "\f204b"; } +.lnid-reservoir-1::before { content: "\f204e"; } +.lnid-reservoir-1::after { content: "\f204d"; } +.lnid-reservoir-2::before { content: "\f2050"; } +.lnid-reservoir-2::after { content: "\f204f"; } +.lnid-resistance-band::before { content: "\f2052"; } +.lnid-resistance-band::after { content: "\f2051"; } +.lnid-restaurant-menu::before { content: "\f2054"; } +.lnid-restaurant-menu::after { content: "\f2053"; } +.lnid-return::before { content: "\f2056"; } +.lnid-return::after { content: "\f2055"; } +.lnid-ring-diamond::before { content: "\f2058"; } +.lnid-ring-diamond::after { content: "\f2057"; } +.lnid-ring-gold::before { content: "\f205a"; } +.lnid-ring-gold::after { content: "\f2059"; } +.lnid-road-1::before { content: "\f205c"; } +.lnid-road-1::after { content: "\f205b"; } +.lnid-road-2::before { content: "\f205e"; } +.lnid-road-2::after { content: "\f205d"; } +.lnid-road-barrier::before { content: "\f2060"; } +.lnid-road-barrier::after { content: "\f205f"; } +.lnid-rocket-1::before { content: "\f2062"; } +.lnid-rocket-1::after { content: "\f2061"; } +.lnid-rocket-2::before { content: "\f2064"; } +.lnid-rocket-2::after { content: "\f2063"; } +.lnid-rocket-3::before { content: "\f2068"; } +.lnid-rocket-3::after { content: "\f2067"; } +.lnid-rocket-3-dot-circle::before { content: "\f2066"; } +.lnid-rocket-3-dot-circle::after { content: "\f2065"; } +.lnid-rocket-4::before { content: "\f206a"; } +.lnid-rocket-4::after { content: "\f2069"; } +.lnid-rocket-5::before { content: "\f206c"; } +.lnid-rocket-5::after { content: "\f206b"; } +.lnid-rocket-6::before { content: "\f206e"; } +.lnid-rocket-6::after { content: "\f206d"; } +.lnid-rocket-ai::before { content: "\f2070"; } +.lnid-rocket-ai::after { content: "\f206f"; } +.lnid-rocket-bar-chart-1::before { content: "\f2072"; } +.lnid-rocket-bar-chart-1::after { content: "\f2071"; } +.lnid-rocket-bar-chart-2::before { content: "\f2074"; } +.lnid-rocket-bar-chart-2::after { content: "\f2073"; } +.lnid-rocket-bolt::before { content: "\f2076"; } +.lnid-rocket-bolt::after { content: "\f2075"; } +.lnid-rocket-bug::before { content: "\f2078"; } +.lnid-rocket-bug::after { content: "\f2077"; } +.lnid-rocket-bulb::before { content: "\f207a"; } +.lnid-rocket-bulb::after { content: "\f2079"; } +.lnid-rocket-check-circle::before { content: "\f207c"; } +.lnid-rocket-check-circle::after { content: "\f207b"; } +.lnid-rocket-cloud::before { content: "\f207e"; } +.lnid-rocket-cloud::after { content: "\f207d"; } +.lnid-rocket-database::before { content: "\f2080"; } +.lnid-rocket-database::after { content: "\f207f"; } +.lnid-rocket-disabled::before { content: "\f2082"; } +.lnid-rocket-disabled::after { content: "\f2081"; } +.lnid-rocket-dollar::before { content: "\f2084"; } +.lnid-rocket-dollar::after { content: "\f2083"; } +.lnid-rocket-error-circle::before { content: "\f2086"; } +.lnid-rocket-error-circle::after { content: "\f2085"; } +.lnid-rocket-fire::before { content: "\f2088"; } +.lnid-rocket-fire::after { content: "\f2087"; } +.lnid-rocket-gear::before { content: "\f208a"; } +.lnid-rocket-gear::after { content: "\f2089"; } +.lnid-rocket-globe::before { content: "\f208c"; } +.lnid-rocket-globe::after { content: "\f208b"; } +.lnid-rocket-heart::before { content: "\f208e"; } +.lnid-rocket-heart::after { content: "\f208d"; } +.lnid-rocket-info-circle::before { content: "\f2090"; } +.lnid-rocket-info-circle::after { content: "\f208f"; } +.lnid-rocket-leaf::before { content: "\f2092"; } +.lnid-rocket-leaf::after { content: "\f2091"; } +.lnid-rocket-locked::before { content: "\f2094"; } +.lnid-rocket-locked::after { content: "\f2093"; } +.lnid-rocket-moon::before { content: "\f2096"; } +.lnid-rocket-moon::after { content: "\f2095"; } +.lnid-rocket-number-1::before { content: "\f2098"; } +.lnid-rocket-number-1::after { content: "\f2097"; } +.lnid-rocket-refresh::before { content: "\f209a"; } +.lnid-rocket-refresh::after { content: "\f2099"; } +.lnid-rocket-reload::before { content: "\f209c"; } +.lnid-rocket-reload::after { content: "\f209b"; } +.lnid-rocket-search::before { content: "\f209e"; } +.lnid-rocket-search::after { content: "\f209d"; } +.lnid-rocket-shield::before { content: "\f20a0"; } +.lnid-rocket-shield::after { content: "\f209f"; } +.lnid-rocket-star::before { content: "\f20a2"; } +.lnid-rocket-star::after { content: "\f20a1"; } +.lnid-rocket-sun::before { content: "\f20a4"; } +.lnid-rocket-sun::after { content: "\f20a3"; } +.lnid-rocket-target::before { content: "\f20a6"; } +.lnid-rocket-target::after { content: "\f20a5"; } +.lnid-rocket-time::before { content: "\f20a8"; } +.lnid-rocket-time::after { content: "\f20a7"; } +.lnid-rocket-timer::before { content: "\f20aa"; } +.lnid-rocket-timer::after { content: "\f20a9"; } +.lnid-rocket-trend-down::before { content: "\f20ac"; } +.lnid-rocket-trend-down::after { content: "\f20ab"; } +.lnid-rocket-trend-up::before { content: "\f20ae"; } +.lnid-rocket-trend-up::after { content: "\f20ad"; } +.lnid-rocket-unlocked::before { content: "\f20b0"; } +.lnid-rocket-unlocked::after { content: "\f20af"; } +.lnid-rocket-user::before { content: "\f20b2"; } +.lnid-rocket-user::after { content: "\f20b1"; } +.lnid-rocket-vr::before { content: "\f20b4"; } +.lnid-rocket-vr::after { content: "\f20b3"; } +.lnid-rocket-xmark-circle::before { content: "\f20b6"; } +.lnid-rocket-xmark-circle::after { content: "\f20b5"; } +.lnid-rook-1::before { content: "\f20b8"; } +.lnid-rook-1::after { content: "\f20b7"; } +.lnid-rook-2::before { content: "\f20ba"; } +.lnid-rook-2::after { content: "\f20b9"; } +.lnid-rotate-1-anticlockwise::before { content: "\f20bc"; } +.lnid-rotate-1-anticlockwise::after { content: "\f20bb"; } +.lnid-rotate-1-clockwise::before { content: "\f20be"; } +.lnid-rotate-1-clockwise::after { content: "\f20bd"; } +.lnid-rotate-2::before { content: "\f20c0"; } +.lnid-rotate-2::after { content: "\f20bf"; } +.lnid-route-1::before { content: "\f20d6"; } +.lnid-route-1::after { content: "\f20d5"; } +.lnid-route-10::before { content: "\f20c2"; } +.lnid-route-10::after { content: "\f20c1"; } +.lnid-route-11::before { content: "\f20c4"; } +.lnid-route-11::after { content: "\f20c3"; } +.lnid-route-12::before { content: "\f20c6"; } +.lnid-route-12::after { content: "\f20c5"; } +.lnid-route-13::before { content: "\f20c8"; } +.lnid-route-13::after { content: "\f20c7"; } +.lnid-route-14::before { content: "\f20ca"; } +.lnid-route-14::after { content: "\f20c9"; } +.lnid-route-15::before { content: "\f20cc"; } +.lnid-route-15::after { content: "\f20cb"; } +.lnid-route-16::before { content: "\f20ce"; } +.lnid-route-16::after { content: "\f20cd"; } +.lnid-route-17::before { content: "\f20d0"; } +.lnid-route-17::after { content: "\f20cf"; } +.lnid-route-18::before { content: "\f20d2"; } +.lnid-route-18::after { content: "\f20d1"; } +.lnid-route-19::before { content: "\f20d4"; } +.lnid-route-19::after { content: "\f20d3"; } +.lnid-route-2::before { content: "\f20de"; } +.lnid-route-2::after { content: "\f20dd"; } +.lnid-route-20::before { content: "\f20d8"; } +.lnid-route-20::after { content: "\f20d7"; } +.lnid-route-21::before { content: "\f20da"; } +.lnid-route-21::after { content: "\f20d9"; } +.lnid-route-22::before { content: "\f20dc"; } +.lnid-route-22::after { content: "\f20db"; } +.lnid-route-3::before { content: "\f20e0"; } +.lnid-route-3::after { content: "\f20df"; } +.lnid-route-4::before { content: "\f20e2"; } +.lnid-route-4::after { content: "\f20e1"; } +.lnid-route-5::before { content: "\f20e4"; } +.lnid-route-5::after { content: "\f20e3"; } +.lnid-route-6::before { content: "\f20e6"; } +.lnid-route-6::after { content: "\f20e5"; } +.lnid-route-7::before { content: "\f20e8"; } +.lnid-route-7::after { content: "\f20e7"; } +.lnid-route-8::before { content: "\f20ea"; } +.lnid-route-8::after { content: "\f20e9"; } +.lnid-route-9::before { content: "\f20ec"; } +.lnid-route-9::after { content: "\f20eb"; } +.lnid-route-ai::before { content: "\f20ee"; } +.lnid-route-ai::after { content: "\f20ed"; } +.lnid-row::before { content: "\f20f0"; } +.lnid-row::after { content: "\f20ef"; } +.lnid-rss-left::before { content: "\f20f2"; } +.lnid-rss-left::after { content: "\f20f1"; } +.lnid-rss-right::before { content: "\f20f4"; } +.lnid-rss-right::after { content: "\f20f3"; } +.lnid-ruble-circle::before { content: "\f20f6"; } +.lnid-ruble-circle::after { content: "\f20f5"; } +.lnid-ruble-trend-down::before { content: "\f20f8"; } +.lnid-ruble-trend-down::after { content: "\f20f7"; } +.lnid-ruble-trend-up::before { content: "\f20fa"; } +.lnid-ruble-trend-up::after { content: "\f20f9"; } +.lnid-ruler-1::before { content: "\f20fc"; } +.lnid-ruler-1::after { content: "\f20fb"; } +.lnid-ruler-2::before { content: "\f20fe"; } +.lnid-ruler-2::after { content: "\f20fd"; } +.lnid-ruler-4::before { content: "\f2100"; } +.lnid-ruler-4::after { content: "\f20ff"; } +.lnid-ruler-5::before { content: "\f2102"; } +.lnid-ruler-5::after { content: "\f2101"; } +.lnid-ruler-pen::before { content: "\f2104"; } +.lnid-ruler-pen::after { content: "\f2103"; } +.lnid-ruler-triangle-1::before { content: "\f2106"; } +.lnid-ruler-triangle-1::after { content: "\f2105"; } +.lnid-ruler-triangle-2::before { content: "\f2108"; } +.lnid-ruler-triangle-2::after { content: "\f2107"; } +.lnid-rupee::before { content: "\f2110"; } +.lnid-rupee::after { content: "\f210f"; } +.lnid-rupee-circle::before { content: "\f210a"; } +.lnid-rupee-circle::after { content: "\f2109"; } +.lnid-rupee-trend-down::before { content: "\f210c"; } +.lnid-rupee-trend-down::after { content: "\f210b"; } +.lnid-rupee-trend-up::before { content: "\f210e"; } +.lnid-rupee-trend-up::after { content: "\f210d"; } +.lnid-sack-dollar::before { content: "\f2112"; } +.lnid-sack-dollar::after { content: "\f2111"; } +.lnid-saline-bottle-1::before { content: "\f2114"; } +.lnid-saline-bottle-1::after { content: "\f2113"; } +.lnid-saline-bottle-2::before { content: "\f2116"; } +.lnid-saline-bottle-2::after { content: "\f2115"; } +.lnid-saline-bottle-3::before { content: "\f2118"; } +.lnid-saline-bottle-3::after { content: "\f2117"; } +.lnid-saline-bottle-4::before { content: "\f211a"; } +.lnid-saline-bottle-4::after { content: "\f2119"; } +.lnid-saline-bottle-5::before { content: "\f211c"; } +.lnid-saline-bottle-5::after { content: "\f211b"; } +.lnid-saline-bottle-6::before { content: "\f211e"; } +.lnid-saline-bottle-6::after { content: "\f211d"; } +.lnid-satay::before { content: "\f2120"; } +.lnid-satay::after { content: "\f211f"; } +.lnid-savings-dollar::before { content: "\f2122"; } +.lnid-savings-dollar::after { content: "\f2121"; } +.lnid-saw-1::before { content: "\f2124"; } +.lnid-saw-1::after { content: "\f2123"; } +.lnid-saw-2::before { content: "\f2126"; } +.lnid-saw-2::after { content: "\f2125"; } +.lnid-scale-eraser::before { content: "\f2128"; } +.lnid-scale-eraser::after { content: "\f2127"; } +.lnid-scale-machine::before { content: "\f212c"; } +.lnid-scale-machine::after { content: "\f212b"; } +.lnid-scale-machine-digital::before { content: "\f212a"; } +.lnid-scale-machine-digital::after { content: "\f2129"; } +.lnid-scale-square::before { content: "\f212e"; } +.lnid-scale-square::after { content: "\f212d"; } +.lnid-scale-underline::before { content: "\f2130"; } +.lnid-scale-underline::after { content: "\f212f"; } +.lnid-scaling::before { content: "\f2132"; } +.lnid-scaling::after { content: "\f2131"; } +.lnid-scalpel::before { content: "\f2134"; } +.lnid-scalpel::after { content: "\f2133"; } +.lnid-scan-1::before { content: "\f2136"; } +.lnid-scan-1::after { content: "\f2135"; } +.lnid-scan-2::before { content: "\f2138"; } +.lnid-scan-2::after { content: "\f2137"; } +.lnid-scan-ai::before { content: "\f213a"; } +.lnid-scan-ai::after { content: "\f2139"; } +.lnid-scan-battery::before { content: "\f213c"; } +.lnid-scan-battery::after { content: "\f213b"; } +.lnid-scan-beat::before { content: "\f213e"; } +.lnid-scan-beat::after { content: "\f213d"; } +.lnid-scan-book::before { content: "\f2140"; } +.lnid-scan-book::after { content: "\f213f"; } +.lnid-scan-bug::before { content: "\f2142"; } +.lnid-scan-bug::after { content: "\f2141"; } +.lnid-scan-check::before { content: "\f2144"; } +.lnid-scan-check::after { content: "\f2143"; } +.lnid-scan-database::before { content: "\f2146"; } +.lnid-scan-database::after { content: "\f2145"; } +.lnid-scan-document::before { content: "\f2148"; } +.lnid-scan-document::after { content: "\f2147"; } +.lnid-scan-error::before { content: "\f214a"; } +.lnid-scan-error::after { content: "\f2149"; } +.lnid-scan-eye::before { content: "\f214c"; } +.lnid-scan-eye::after { content: "\f214b"; } +.lnid-scan-id::before { content: "\f214e"; } +.lnid-scan-id::after { content: "\f214d"; } +.lnid-scan-link::before { content: "\f2150"; } +.lnid-scan-link::after { content: "\f214f"; } +.lnid-scan-list::before { content: "\f2152"; } +.lnid-scan-list::after { content: "\f2151"; } +.lnid-scan-money::before { content: "\f2154"; } +.lnid-scan-money::after { content: "\f2153"; } +.lnid-scan-phone::before { content: "\f2156"; } +.lnid-scan-phone::after { content: "\f2155"; } +.lnid-scan-server::before { content: "\f2158"; } +.lnid-scan-server::after { content: "\f2157"; } +.lnid-scan-smile::before { content: "\f215a"; } +.lnid-scan-smile::after { content: "\f2159"; } +.lnid-scan-user::before { content: "\f215c"; } +.lnid-scan-user::after { content: "\f215b"; } +.lnid-scan-wifi::before { content: "\f215e"; } +.lnid-scan-wifi::after { content: "\f215d"; } +.lnid-scan-xmark::before { content: "\f2160"; } +.lnid-scan-xmark::after { content: "\f215f"; } +.lnid-school-bench-1::before { content: "\f2162"; } +.lnid-school-bench-1::after { content: "\f2161"; } +.lnid-school-bench-2::before { content: "\f2164"; } +.lnid-school-bench-2::after { content: "\f2163"; } +.lnid-scissors-1-angular-left::before { content: "\f2166"; } +.lnid-scissors-1-angular-left::after { content: "\f2165"; } +.lnid-scissors-1-angular-right::before { content: "\f2168"; } +.lnid-scissors-1-angular-right::after { content: "\f2167"; } +.lnid-scissors-1-horizontal-left::before { content: "\f216a"; } +.lnid-scissors-1-horizontal-left::after { content: "\f2169"; } +.lnid-scissors-1-horizontal-right::before { content: "\f216c"; } +.lnid-scissors-1-horizontal-right::after { content: "\f216b"; } +.lnid-scissors-1-vertical::before { content: "\f216e"; } +.lnid-scissors-1-vertical::after { content: "\f216d"; } +.lnid-scissors-2-angular-left::before { content: "\f2170"; } +.lnid-scissors-2-angular-left::after { content: "\f216f"; } +.lnid-scissors-2-angular-right::before { content: "\f2172"; } +.lnid-scissors-2-angular-right::after { content: "\f2171"; } +.lnid-scissors-2-horizontal-left::before { content: "\f2174"; } +.lnid-scissors-2-horizontal-left::after { content: "\f2173"; } +.lnid-scissors-2-horizontal-right::before { content: "\f2176"; } +.lnid-scissors-2-horizontal-right::after { content: "\f2175"; } +.lnid-scissors-2-vertical::before { content: "\f2178"; } +.lnid-scissors-2-vertical::after { content: "\f2177"; } +.lnid-scoter::before { content: "\f217a"; } +.lnid-scoter::after { content: "\f2179"; } +.lnid-screen-users::before { content: "\f217c"; } +.lnid-screen-users::after { content: "\f217b"; } +.lnid-screw-1::before { content: "\f217e"; } +.lnid-screw-1::after { content: "\f217d"; } +.lnid-screw-2::before { content: "\f2180"; } +.lnid-screw-2::after { content: "\f217f"; } +.lnid-screwdriver-1::before { content: "\f2182"; } +.lnid-screwdriver-1::after { content: "\f2181"; } +.lnid-screwdriver-2::before { content: "\f2184"; } +.lnid-screwdriver-2::after { content: "\f2183"; } +.lnid-screwdriver-wrench-1::before { content: "\f2186"; } +.lnid-screwdriver-wrench-1::after { content: "\f2185"; } +.lnid-screwdriver-wrench-2::before { content: "\f2188"; } +.lnid-screwdriver-wrench-2::after { content: "\f2187"; } +.lnid-screwdriver-wrench-3::before { content: "\f218a"; } +.lnid-screwdriver-wrench-3::after { content: "\f2189"; } +.lnid-scroll-angular-1::before { content: "\f218c"; } +.lnid-scroll-angular-1::after { content: "\f218b"; } +.lnid-scroll-angular-2::before { content: "\f218e"; } +.lnid-scroll-angular-2::after { content: "\f218d"; } +.lnid-scroll-down-1::before { content: "\f2190"; } +.lnid-scroll-down-1::after { content: "\f218f"; } +.lnid-scroll-down-2::before { content: "\f2192"; } +.lnid-scroll-down-2::after { content: "\f2191"; } +.lnid-scroll-horizontal::before { content: "\f2194"; } +.lnid-scroll-horizontal::after { content: "\f2193"; } +.lnid-scroll-vertical::before { content: "\f2196"; } +.lnid-scroll-vertical::after { content: "\f2195"; } +.lnid-scythe-1::before { content: "\f2198"; } +.lnid-scythe-1::after { content: "\f2197"; } +.lnid-scythe-2::before { content: "\f219a"; } +.lnid-scythe-2::after { content: "\f2199"; } +.lnid-search-1::before { content: "\f219c"; } +.lnid-search-1::after { content: "\f219b"; } +.lnid-search-2::before { content: "\f219e"; } +.lnid-search-2::after { content: "\f219d"; } +.lnid-search-4k::before { content: "\f21a0"; } +.lnid-search-4k::after { content: "\f219f"; } +.lnid-search-ai::before { content: "\f21a2"; } +.lnid-search-ai::after { content: "\f21a1"; } +.lnid-search-arrow-downward::before { content: "\f21a4"; } +.lnid-search-arrow-downward::after { content: "\f21a3"; } +.lnid-search-arrow-left::before { content: "\f21a6"; } +.lnid-search-arrow-left::after { content: "\f21a5"; } +.lnid-search-arrow-right::before { content: "\f21a8"; } +.lnid-search-arrow-right::after { content: "\f21a7"; } +.lnid-search-arrow-upward::before { content: "\f21aa"; } +.lnid-search-arrow-upward::after { content: "\f21a9"; } +.lnid-search-bar-chart::before { content: "\f21ac"; } +.lnid-search-bar-chart::after { content: "\f21ab"; } +.lnid-search-binary::before { content: "\f21ae"; } +.lnid-search-binary::after { content: "\f21ad"; } +.lnid-search-bitcoin::before { content: "\f21b0"; } +.lnid-search-bitcoin::after { content: "\f21af"; } +.lnid-search-bluetooth::before { content: "\f21b2"; } +.lnid-search-bluetooth::after { content: "\f21b1"; } +.lnid-search-bolt::before { content: "\f21b4"; } +.lnid-search-bolt::after { content: "\f21b3"; } +.lnid-search-book::before { content: "\f21b6"; } +.lnid-search-book::after { content: "\f21b5"; } +.lnid-search-bookmark::before { content: "\f21b8"; } +.lnid-search-bookmark::after { content: "\f21b7"; } +.lnid-search-bulb::before { content: "\f21ba"; } +.lnid-search-bulb::after { content: "\f21b9"; } +.lnid-search-check::before { content: "\f21bc"; } +.lnid-search-check::after { content: "\f21bb"; } +.lnid-search-cloud::before { content: "\f21be"; } +.lnid-search-cloud::after { content: "\f21bd"; } +.lnid-search-code::before { content: "\f21c0"; } +.lnid-search-code::after { content: "\f21bf"; } +.lnid-search-crypto::before { content: "\f21c2"; } +.lnid-search-crypto::after { content: "\f21c1"; } +.lnid-search-database::before { content: "\f21c4"; } +.lnid-search-database::after { content: "\f21c3"; } +.lnid-search-doc::before { content: "\f21c6"; } +.lnid-search-doc::after { content: "\f21c5"; } +.lnid-search-dollar::before { content: "\f21c8"; } +.lnid-search-dollar::after { content: "\f21c7"; } +.lnid-search-error-circle::before { content: "\f21ca"; } +.lnid-search-error-circle::after { content: "\f21c9"; } +.lnid-search-eye::before { content: "\f21cc"; } +.lnid-search-eye::after { content: "\f21cb"; } +.lnid-search-gear::before { content: "\f21ce"; } +.lnid-search-gear::after { content: "\f21cd"; } +.lnid-search-globe::before { content: "\f21d0"; } +.lnid-search-globe::after { content: "\f21cf"; } +.lnid-search-image::before { content: "\f21d2"; } +.lnid-search-image::after { content: "\f21d1"; } +.lnid-search-info-circle::before { content: "\f21d4"; } +.lnid-search-info-circle::after { content: "\f21d3"; } +.lnid-search-link::before { content: "\f21d6"; } +.lnid-search-link::after { content: "\f21d5"; } +.lnid-search-list::before { content: "\f21d8"; } +.lnid-search-list::after { content: "\f21d7"; } +.lnid-search-map-marker::before { content: "\f21da"; } +.lnid-search-map-marker::after { content: "\f21d9"; } +.lnid-search-minus::before { content: "\f21dc"; } +.lnid-search-minus::after { content: "\f21db"; } +.lnid-search-music::before { content: "\f21de"; } +.lnid-search-music::after { content: "\f21dd"; } +.lnid-search-paperclip::before { content: "\f21e0"; } +.lnid-search-paperclip::after { content: "\f21df"; } +.lnid-search-percent::before { content: "\f21e2"; } +.lnid-search-percent::after { content: "\f21e1"; } +.lnid-search-phone::before { content: "\f21e4"; } +.lnid-search-phone::after { content: "\f21e3"; } +.lnid-search-plane-1::before { content: "\f21e6"; } +.lnid-search-plane-1::after { content: "\f21e5"; } +.lnid-search-plane-2::before { content: "\f21e8"; } +.lnid-search-plane-2::after { content: "\f21e7"; } +.lnid-search-play::before { content: "\f21ea"; } +.lnid-search-play::after { content: "\f21e9"; } +.lnid-search-plus::before { content: "\f21ee"; } +.lnid-search-plus::after { content: "\f21ed"; } +.lnid-search-plus-minus::before { content: "\f21ec"; } +.lnid-search-plus-minus::after { content: "\f21eb"; } +.lnid-search-question-mark::before { content: "\f21f0"; } +.lnid-search-question-mark::after { content: "\f21ef"; } +.lnid-search-refresh::before { content: "\f21f2"; } +.lnid-search-refresh::after { content: "\f21f1"; } +.lnid-search-reload-anticlockwise::before { content: "\f21f4"; } +.lnid-search-reload-anticlockwise::after { content: "\f21f3"; } +.lnid-search-rx::before { content: "\f21f6"; } +.lnid-search-rx::after { content: "\f21f5"; } +.lnid-search-server::before { content: "\f21f8"; } +.lnid-search-server::after { content: "\f21f7"; } +.lnid-search-shield::before { content: "\f21fa"; } +.lnid-search-shield::after { content: "\f21f9"; } +.lnid-search-star::before { content: "\f21fc"; } +.lnid-search-star::after { content: "\f21fb"; } +.lnid-search-text::before { content: "\f21fe"; } +.lnid-search-text::after { content: "\f21fd"; } +.lnid-search-trend-down::before { content: "\f2200"; } +.lnid-search-trend-down::after { content: "\f21ff"; } +.lnid-search-trend-up::before { content: "\f2202"; } +.lnid-search-trend-up::after { content: "\f2201"; } +.lnid-search-user::before { content: "\f2204"; } +.lnid-search-user::after { content: "\f2203"; } +.lnid-search-video::before { content: "\f2206"; } +.lnid-search-video::after { content: "\f2205"; } +.lnid-search-wifi::before { content: "\f2208"; } +.lnid-search-wifi::after { content: "\f2207"; } +.lnid-search-xmark::before { content: "\f220a"; } +.lnid-search-xmark::after { content: "\f2209"; } +.lnid-secondary::before { content: "\f220e"; } +.lnid-secondary::after { content: "\f220d"; } +.lnid-secondary-1::before { content: "\f220c"; } +.lnid-secondary-1::after { content: "\f220b"; } +.lnid-seeds::before { content: "\f2212"; } +.lnid-seeds::after { content: "\f2211"; } +.lnid-seeds-pot::before { content: "\f2210"; } +.lnid-seeds-pot::after { content: "\f220f"; } +.lnid-select-cursor-1::before { content: "\f2214"; } +.lnid-select-cursor-1::after { content: "\f2213"; } +.lnid-select-cursor-2::before { content: "\f2216"; } +.lnid-select-cursor-2::after { content: "\f2215"; } +.lnid-send-1::before { content: "\f2218"; } +.lnid-send-1::after { content: "\f2217"; } +.lnid-send-2::before { content: "\f221a"; } +.lnid-send-2::after { content: "\f2219"; } +.lnid-send-3::before { content: "\f221c"; } +.lnid-send-3::after { content: "\f221b"; } +.lnid-send-4::before { content: "\f221e"; } +.lnid-send-4::after { content: "\f221d"; } +.lnid-seo-ai::before { content: "\f2220"; } +.lnid-seo-ai::after { content: "\f221f"; } +.lnid-seo-monitor::before { content: "\f2224"; } +.lnid-seo-monitor::after { content: "\f2223"; } +.lnid-seo-monitor-ai::before { content: "\f2222"; } +.lnid-seo-monitor-ai::after { content: "\f2221"; } +.lnid-seo-rechtangle::before { content: "\f2226"; } +.lnid-seo-rechtangle::after { content: "\f2225"; } +.lnid-server-1::before { content: "\f2228"; } +.lnid-server-1::after { content: "\f2227"; } +.lnid-server-2::before { content: "\f222a"; } +.lnid-server-2::after { content: "\f2229"; } +.lnid-server-3::before { content: "\f222c"; } +.lnid-server-3::after { content: "\f222b"; } +.lnid-server-4::before { content: "\f222e"; } +.lnid-server-4::after { content: "\f222d"; } +.lnid-server-5::before { content: "\f2230"; } +.lnid-server-5::after { content: "\f222f"; } +.lnid-server-ai-1::before { content: "\f2232"; } +.lnid-server-ai-1::after { content: "\f2231"; } +.lnid-server-ai-2::before { content: "\f2234"; } +.lnid-server-ai-2::after { content: "\f2233"; } +.lnid-server-ai-3::before { content: "\f2236"; } +.lnid-server-ai-3::after { content: "\f2235"; } +.lnid-server-ai-4::before { content: "\f2238"; } +.lnid-server-ai-4::after { content: "\f2237"; } +.lnid-server-ai-5::before { content: "\f223a"; } +.lnid-server-ai-5::after { content: "\f2239"; } +.lnid-server-arrow-downward::before { content: "\f223c"; } +.lnid-server-arrow-downward::after { content: "\f223b"; } +.lnid-server-arrow-left::before { content: "\f223e"; } +.lnid-server-arrow-left::after { content: "\f223d"; } +.lnid-server-arrow-right::before { content: "\f2240"; } +.lnid-server-arrow-right::after { content: "\f223f"; } +.lnid-server-arrow-upward::before { content: "\f2242"; } +.lnid-server-arrow-upward::after { content: "\f2241"; } +.lnid-server-bar-chart::before { content: "\f2244"; } +.lnid-server-bar-chart::after { content: "\f2243"; } +.lnid-server-bolt::before { content: "\f2246"; } +.lnid-server-bolt::after { content: "\f2245"; } +.lnid-server-check-circle::before { content: "\f2248"; } +.lnid-server-check-circle::after { content: "\f2247"; } +.lnid-server-cloud::before { content: "\f224a"; } +.lnid-server-cloud::after { content: "\f2249"; } +.lnid-server-code::before { content: "\f224c"; } +.lnid-server-code::after { content: "\f224b"; } +.lnid-server-disabled-1::before { content: "\f224e"; } +.lnid-server-disabled-1::after { content: "\f224d"; } +.lnid-server-disabled-2::before { content: "\f2250"; } +.lnid-server-disabled-2::after { content: "\f224f"; } +.lnid-server-error-circle::before { content: "\f2252"; } +.lnid-server-error-circle::after { content: "\f2251"; } +.lnid-server-gear::before { content: "\f2254"; } +.lnid-server-gear::after { content: "\f2253"; } +.lnid-server-leaf::before { content: "\f2256"; } +.lnid-server-leaf::after { content: "\f2255"; } +.lnid-server-link::before { content: "\f2258"; } +.lnid-server-link::after { content: "\f2257"; } +.lnid-server-live::before { content: "\f225a"; } +.lnid-server-live::after { content: "\f2259"; } +.lnid-server-locked::before { content: "\f225c"; } +.lnid-server-locked::after { content: "\f225b"; } +.lnid-server-minus-circle::before { content: "\f225e"; } +.lnid-server-minus-circle::after { content: "\f225d"; } +.lnid-server-pencil::before { content: "\f2260"; } +.lnid-server-pencil::after { content: "\f225f"; } +.lnid-server-percent::before { content: "\f2262"; } +.lnid-server-percent::after { content: "\f2261"; } +.lnid-server-phone::before { content: "\f2264"; } +.lnid-server-phone::after { content: "\f2263"; } +.lnid-server-play::before { content: "\f2266"; } +.lnid-server-play::after { content: "\f2265"; } +.lnid-server-question::before { content: "\f2268"; } +.lnid-server-question::after { content: "\f2267"; } +.lnid-server-refresh::before { content: "\f226a"; } +.lnid-server-refresh::after { content: "\f2269"; } +.lnid-server-shield::before { content: "\f226c"; } +.lnid-server-shield::after { content: "\f226b"; } +.lnid-server-time::before { content: "\f226e"; } +.lnid-server-time::after { content: "\f226d"; } +.lnid-server-trash::before { content: "\f2270"; } +.lnid-server-trash::after { content: "\f226f"; } +.lnid-server-user::before { content: "\f2272"; } +.lnid-server-user::after { content: "\f2271"; } +.lnid-server-video::before { content: "\f2274"; } +.lnid-server-video::after { content: "\f2273"; } +.lnid-server-wifi::before { content: "\f2276"; } +.lnid-server-wifi::after { content: "\f2275"; } +.lnid-server-xmark-circle::before { content: "\f2278"; } +.lnid-server-xmark-circle::after { content: "\f2277"; } +.lnid-service-bell-1::before { content: "\f227a"; } +.lnid-service-bell-1::after { content: "\f2279"; } +.lnid-service-bell-2::before { content: "\f227c"; } +.lnid-service-bell-2::after { content: "\f227b"; } +.lnid-shampoo::before { content: "\f227e"; } +.lnid-shampoo::after { content: "\f227d"; } +.lnid-shape-builder-tool::before { content: "\f2280"; } +.lnid-shape-builder-tool::after { content: "\f227f"; } +.lnid-shapes::before { content: "\f2282"; } +.lnid-shapes::after { content: "\f2281"; } +.lnid-share-1::before { content: "\f228a"; } +.lnid-share-1::after { content: "\f2289"; } +.lnid-share-1-circle::before { content: "\f2284"; } +.lnid-share-1-circle::after { content: "\f2283"; } +.lnid-share-1-disabled::before { content: "\f2286"; } +.lnid-share-1-disabled::after { content: "\f2285"; } +.lnid-share-1-square::before { content: "\f2288"; } +.lnid-share-1-square::after { content: "\f2287"; } +.lnid-share-2::before { content: "\f2294"; } +.lnid-share-2::after { content: "\f2293"; } +.lnid-share-2-circle-1::before { content: "\f228c"; } +.lnid-share-2-circle-1::after { content: "\f228b"; } +.lnid-share-2-circle-2::before { content: "\f228e"; } +.lnid-share-2-circle-2::after { content: "\f228d"; } +.lnid-share-2-square-1::before { content: "\f2290"; } +.lnid-share-2-square-1::after { content: "\f228f"; } +.lnid-share-2-square-2::before { content: "\f2292"; } +.lnid-share-2-square-2::after { content: "\f2291"; } +.lnid-share-3::before { content: "\f2298"; } +.lnid-share-3::after { content: "\f2297"; } +.lnid-share-3-disabled::before { content: "\f2296"; } +.lnid-share-3-disabled::after { content: "\f2295"; } +.lnid-share-all::before { content: "\f229a"; } +.lnid-share-all::after { content: "\f2299"; } +.lnid-share-nodes::before { content: "\f22a2"; } +.lnid-share-nodes::after { content: "\f22a1"; } +.lnid-share-nodes-circle::before { content: "\f229c"; } +.lnid-share-nodes-circle::after { content: "\f229b"; } +.lnid-share-nodes-disabled::before { content: "\f229e"; } +.lnid-share-nodes-disabled::after { content: "\f229d"; } +.lnid-share-nodes-square::before { content: "\f22a0"; } +.lnid-share-nodes-square::after { content: "\f229f"; } +.lnid-shark::before { content: "\f22a4"; } +.lnid-shark::after { content: "\f22a3"; } +.lnid-sheep::before { content: "\f22a6"; } +.lnid-sheep::after { content: "\f22a5"; } +.lnid-shekel-circle::before { content: "\f22a8"; } +.lnid-shekel-circle::after { content: "\f22a7"; } +.lnid-shield-1::before { content: "\f22b2"; } +.lnid-shield-1::after { content: "\f22b1"; } +.lnid-shield-1-bulb::before { content: "\f22aa"; } +.lnid-shield-1-bulb::after { content: "\f22a9"; } +.lnid-shield-1-check::before { content: "\f22ac"; } +.lnid-shield-1-check::after { content: "\f22ab"; } +.lnid-shield-1-heart::before { content: "\f22ae"; } +.lnid-shield-1-heart::after { content: "\f22ad"; } +.lnid-shield-1-leaf::before { content: "\f22b0"; } +.lnid-shield-1-leaf::after { content: "\f22af"; } +.lnid-shield-2::before { content: "\f22bc"; } +.lnid-shield-2::after { content: "\f22bb"; } +.lnid-shield-2-bulb::before { content: "\f22b4"; } +.lnid-shield-2-bulb::after { content: "\f22b3"; } +.lnid-shield-2-check::before { content: "\f22b6"; } +.lnid-shield-2-check::after { content: "\f22b5"; } +.lnid-shield-2-heart::before { content: "\f22b8"; } +.lnid-shield-2-heart::after { content: "\f22b7"; } +.lnid-shield-2-leaf::before { content: "\f22ba"; } +.lnid-shield-2-leaf::after { content: "\f22b9"; } +.lnid-shield-3::before { content: "\f22c6"; } +.lnid-shield-3::after { content: "\f22c5"; } +.lnid-shield-3-bulb::before { content: "\f22be"; } +.lnid-shield-3-bulb::after { content: "\f22bd"; } +.lnid-shield-3-check::before { content: "\f22c0"; } +.lnid-shield-3-check::after { content: "\f22bf"; } +.lnid-shield-3-heart::before { content: "\f22c2"; } +.lnid-shield-3-heart::after { content: "\f22c1"; } +.lnid-shield-3-leaf::before { content: "\f22c4"; } +.lnid-shield-3-leaf::after { content: "\f22c3"; } +.lnid-shield-4::before { content: "\f22d0"; } +.lnid-shield-4::after { content: "\f22cf"; } +.lnid-shield-4-bulb::before { content: "\f22c8"; } +.lnid-shield-4-bulb::after { content: "\f22c7"; } +.lnid-shield-4-check::before { content: "\f22ca"; } +.lnid-shield-4-check::after { content: "\f22c9"; } +.lnid-shield-4-heart::before { content: "\f22cc"; } +.lnid-shield-4-heart::after { content: "\f22cb"; } +.lnid-shield-4-leaf::before { content: "\f22ce"; } +.lnid-shield-4-leaf::after { content: "\f22cd"; } +.lnid-shield-ai-1::before { content: "\f22d2"; } +.lnid-shield-ai-1::after { content: "\f22d1"; } +.lnid-shield-ai-2::before { content: "\f22d4"; } +.lnid-shield-ai-2::after { content: "\f22d3"; } +.lnid-shield-ai-3::before { content: "\f22d6"; } +.lnid-shield-ai-3::after { content: "\f22d5"; } +.lnid-shield-ai-4::before { content: "\f22d8"; } +.lnid-shield-ai-4::after { content: "\f22d7"; } +.lnid-shield-ai-5::before { content: "\f22da"; } +.lnid-shield-ai-5::after { content: "\f22d9"; } +.lnid-shield-ai-6::before { content: "\f22dc"; } +.lnid-shield-ai-6::after { content: "\f22db"; } +.lnid-shield-ai-7::before { content: "\f22de"; } +.lnid-shield-ai-7::after { content: "\f22dd"; } +.lnid-shield-ai-8::before { content: "\f22e0"; } +.lnid-shield-ai-8::after { content: "\f22df"; } +.lnid-shield-dollar::before { content: "\f22e2"; } +.lnid-shield-dollar::after { content: "\f22e1"; } +.lnid-shift-left::before { content: "\f22e4"; } +.lnid-shift-left::after { content: "\f22e3"; } +.lnid-shift-right::before { content: "\f22e6"; } +.lnid-shift-right::after { content: "\f22e5"; } +.lnid-ship-1::before { content: "\f22e8"; } +.lnid-ship-1::after { content: "\f22e7"; } +.lnid-ship-2::before { content: "\f22ea"; } +.lnid-ship-2::after { content: "\f22e9"; } +.lnid-ship-3::before { content: "\f22ec"; } +.lnid-ship-3::after { content: "\f22eb"; } +.lnid-ship-4::before { content: "\f22ee"; } +.lnid-ship-4::after { content: "\f22ed"; } +.lnid-ship-arrow-downward::before { content: "\f22f0"; } +.lnid-ship-arrow-downward::after { content: "\f22ef"; } +.lnid-ship-arrow-upward::before { content: "\f22f2"; } +.lnid-ship-arrow-upward::after { content: "\f22f1"; } +.lnid-ship-box::before { content: "\f22f4"; } +.lnid-ship-box::after { content: "\f22f3"; } +.lnid-ship-check-circle::before { content: "\f22f6"; } +.lnid-ship-check-circle::after { content: "\f22f5"; } +.lnid-ship-containers-1::before { content: "\f22f8"; } +.lnid-ship-containers-1::after { content: "\f22f7"; } +.lnid-ship-containers-2::before { content: "\f22fa"; } +.lnid-ship-containers-2::after { content: "\f22f9"; } +.lnid-ship-disabled::before { content: "\f22fc"; } +.lnid-ship-disabled::after { content: "\f22fb"; } +.lnid-ship-dollar::before { content: "\f22fe"; } +.lnid-ship-dollar::after { content: "\f22fd"; } +.lnid-ship-error-circle::before { content: "\f2300"; } +.lnid-ship-error-circle::after { content: "\f22ff"; } +.lnid-ship-fire::before { content: "\f2302"; } +.lnid-ship-fire::after { content: "\f2301"; } +.lnid-ship-globe::before { content: "\f2304"; } +.lnid-ship-globe::after { content: "\f2303"; } +.lnid-ship-heart::before { content: "\f2308"; } +.lnid-ship-heart::after { content: "\f2307"; } +.lnid-ship-heart-circle::before { content: "\f2306"; } +.lnid-ship-heart-circle::after { content: "\f2305"; } +.lnid-ship-info-circle::before { content: "\f230a"; } +.lnid-ship-info-circle::after { content: "\f2309"; } +.lnid-ship-leaf::before { content: "\f230c"; } +.lnid-ship-leaf::after { content: "\f230b"; } +.lnid-ship-locked::before { content: "\f230e"; } +.lnid-ship-locked::after { content: "\f230d"; } +.lnid-ship-map-marker::before { content: "\f2310"; } +.lnid-ship-map-marker::after { content: "\f230f"; } +.lnid-ship-number-24::before { content: "\f2312"; } +.lnid-ship-number-24::after { content: "\f2311"; } +.lnid-ship-percent-circle::before { content: "\f2314"; } +.lnid-ship-percent-circle::after { content: "\f2313"; } +.lnid-ship-question-mark::before { content: "\f2316"; } +.lnid-ship-question-mark::after { content: "\f2315"; } +.lnid-ship-recycle::before { content: "\f2318"; } +.lnid-ship-recycle::after { content: "\f2317"; } +.lnid-ship-refresh::before { content: "\f231a"; } +.lnid-ship-refresh::after { content: "\f2319"; } +.lnid-ship-return::before { content: "\f231c"; } +.lnid-ship-return::after { content: "\f231b"; } +.lnid-ship-search::before { content: "\f231e"; } +.lnid-ship-search::after { content: "\f231d"; } +.lnid-ship-shield::before { content: "\f2320"; } +.lnid-ship-shield::after { content: "\f231f"; } +.lnid-ship-ship-thumbs-down::before { content: "\f2322"; } +.lnid-ship-ship-thumbs-down::after { content: "\f2321"; } +.lnid-ship-smile::before { content: "\f2324"; } +.lnid-ship-smile::after { content: "\f2323"; } +.lnid-ship-star::before { content: "\f2326"; } +.lnid-ship-star::after { content: "\f2325"; } +.lnid-ship-stearing::before { content: "\f2328"; } +.lnid-ship-stearing::after { content: "\f2327"; } +.lnid-ship-thumbs-up::before { content: "\f232a"; } +.lnid-ship-thumbs-up::after { content: "\f2329"; } +.lnid-ship-time::before { content: "\f232c"; } +.lnid-ship-time::after { content: "\f232b"; } +.lnid-ship-unlocked::before { content: "\f232e"; } +.lnid-ship-unlocked::after { content: "\f232d"; } +.lnid-ship-user::before { content: "\f2330"; } +.lnid-ship-user::after { content: "\f232f"; } +.lnid-ship-xmark-circle::before { content: "\f2332"; } +.lnid-ship-xmark-circle::after { content: "\f2331"; } +.lnid-shirt-1::before { content: "\f2334"; } +.lnid-shirt-1::after { content: "\f2333"; } +.lnid-shirt-2::before { content: "\f2336"; } +.lnid-shirt-2::after { content: "\f2335"; } +.lnid-shirt-3::before { content: "\f2338"; } +.lnid-shirt-3::after { content: "\f2337"; } +.lnid-shirt-4::before { content: "\f233a"; } +.lnid-shirt-4::after { content: "\f2339"; } +.lnid-shirt-5::before { content: "\f233c"; } +.lnid-shirt-5::after { content: "\f233b"; } +.lnid-shirt-6::before { content: "\f233e"; } +.lnid-shirt-6::after { content: "\f233d"; } +.lnid-shirt-ai-1::before { content: "\f2340"; } +.lnid-shirt-ai-1::after { content: "\f233f"; } +.lnid-shirt-ai-2::before { content: "\f2342"; } +.lnid-shirt-ai-2::after { content: "\f2341"; } +.lnid-shirt-formal::before { content: "\f2344"; } +.lnid-shirt-formal::after { content: "\f2343"; } +.lnid-shirt-long-sleeve::before { content: "\f2346"; } +.lnid-shirt-long-sleeve::after { content: "\f2345"; } +.lnid-shirt-tank-top-1::before { content: "\f2348"; } +.lnid-shirt-tank-top-1::after { content: "\f2347"; } +.lnid-shirt-tank-top-2::before { content: "\f234a"; } +.lnid-shirt-tank-top-2::after { content: "\f2349"; } +.lnid-shirt-tank-top-3::before { content: "\f234c"; } +.lnid-shirt-tank-top-3::after { content: "\f234b"; } +.lnid-shirt-tank-top-4::before { content: "\f234e"; } +.lnid-shirt-tank-top-4::after { content: "\f234d"; } +.lnid-shoe-1::before { content: "\f2350"; } +.lnid-shoe-1::after { content: "\f234f"; } +.lnid-shoe-2::before { content: "\f2352"; } +.lnid-shoe-2::after { content: "\f2351"; } +.lnid-shoe-3::before { content: "\f2354"; } +.lnid-shoe-3::after { content: "\f2353"; } +.lnid-shop::before { content: "\f236c"; } +.lnid-shop::after { content: "\f236b"; } +.lnid-shop-food::before { content: "\f2356"; } +.lnid-shop-food::after { content: "\f2355"; } +.lnid-shop-search::before { content: "\f2358"; } +.lnid-shop-search::after { content: "\f2357"; } +.lnid-shop-sign-247::before { content: "\f235a"; } +.lnid-shop-sign-247::after { content: "\f2359"; } +.lnid-shop-sign-Scissor::before { content: "\f235c"; } +.lnid-shop-sign-Scissor::after { content: "\f235b"; } +.lnid-shop-sign-check::before { content: "\f235e"; } +.lnid-shop-sign-check::after { content: "\f235d"; } +.lnid-shop-sign-closed::before { content: "\f2360"; } +.lnid-shop-sign-closed::after { content: "\f235f"; } +.lnid-shop-sign-new::before { content: "\f2362"; } +.lnid-shop-sign-new::after { content: "\f2361"; } +.lnid-shop-sign-open::before { content: "\f2364"; } +.lnid-shop-sign-open::after { content: "\f2363"; } +.lnid-shop-sign-paid::before { content: "\f2366"; } +.lnid-shop-sign-paid::after { content: "\f2365"; } +.lnid-shop-sign-sale::before { content: "\f2368"; } +.lnid-shop-sign-sale::after { content: "\f2367"; } +.lnid-shop-sign-xmark::before { content: "\f236a"; } +.lnid-shop-sign-xmark::after { content: "\f2369"; } +.lnid-shopping-bag-ai::before { content: "\f236e"; } +.lnid-shopping-bag-ai::after { content: "\f236d"; } +.lnid-shorts::before { content: "\f2370"; } +.lnid-shorts::after { content: "\f236f"; } +.lnid-shovel::before { content: "\f2372"; } +.lnid-shovel::after { content: "\f2371"; } +.lnid-shower::before { content: "\f2374"; } +.lnid-shower::after { content: "\f2373"; } +.lnid-shuffle::before { content: "\f2376"; } +.lnid-shuffle::after { content: "\f2375"; } +.lnid-sign-aid::before { content: "\f2378"; } +.lnid-sign-aid::after { content: "\f2377"; } +.lnid-sign-board::before { content: "\f2382"; } +.lnid-sign-board::after { content: "\f2381"; } +.lnid-sign-board-airplane-1::before { content: "\f237a"; } +.lnid-sign-board-airplane-1::after { content: "\f2379"; } +.lnid-sign-board-airplane-2::before { content: "\f237c"; } +.lnid-sign-board-airplane-2::after { content: "\f237b"; } +.lnid-sign-board-rent::before { content: "\f237e"; } +.lnid-sign-board-rent::after { content: "\f237d"; } +.lnid-sign-board-sale::before { content: "\f2380"; } +.lnid-sign-board-sale::after { content: "\f237f"; } +.lnid-sign-construction-1::before { content: "\f2384"; } +.lnid-sign-construction-1::after { content: "\f2383"; } +.lnid-sign-construction-2::before { content: "\f2386"; } +.lnid-sign-construction-2::after { content: "\f2385"; } +.lnid-sign-hanging-left::before { content: "\f2388"; } +.lnid-sign-hanging-left::after { content: "\f2387"; } +.lnid-sign-hanging-right::before { content: "\f238a"; } +.lnid-sign-hanging-right::after { content: "\f2389"; } +.lnid-sign-post-left::before { content: "\f238c"; } +.lnid-sign-post-left::after { content: "\f238b"; } +.lnid-sign-post-right::before { content: "\f238e"; } +.lnid-sign-post-right::after { content: "\f238d"; } +.lnid-sign-washroom::before { content: "\f2390"; } +.lnid-sign-washroom::after { content: "\f238f"; } +.lnid-signal-1-fair::before { content: "\f2392"; } +.lnid-signal-1-fair::after { content: "\f2391"; } +.lnid-signal-1-full::before { content: "\f2394"; } +.lnid-signal-1-full::after { content: "\f2393"; } +.lnid-signal-1-good::before { content: "\f2396"; } +.lnid-signal-1-good::after { content: "\f2395"; } +.lnid-signal-1-low::before { content: "\f2398"; } +.lnid-signal-1-low::after { content: "\f2397"; } +.lnid-signal-2-disabled::before { content: "\f239a"; } +.lnid-signal-2-disabled::after { content: "\f2399"; } +.lnid-signal-2-fair::before { content: "\f239c"; } +.lnid-signal-2-fair::after { content: "\f239b"; } +.lnid-signal-2-full::before { content: "\f239e"; } +.lnid-signal-2-full::after { content: "\f239d"; } +.lnid-signal-2-half::before { content: "\f23a0"; } +.lnid-signal-2-half::after { content: "\f239f"; } +.lnid-signal-2-low::before { content: "\f23a2"; } +.lnid-signal-2-low::after { content: "\f23a1"; } +.lnid-signal-disabled::before { content: "\f23a4"; } +.lnid-signal-disabled::after { content: "\f23a3"; } +.lnid-signal-one-min::before { content: "\f23a6"; } +.lnid-signal-one-min::after { content: "\f23a5"; } +.lnid-signal-stream::before { content: "\f23ac"; } +.lnid-signal-stream::after { content: "\f23ab"; } +.lnid-signal-stream-ai::before { content: "\f23a8"; } +.lnid-signal-stream-ai::after { content: "\f23a7"; } +.lnid-signal-stream-disabled::before { content: "\f23aa"; } +.lnid-signal-stream-disabled::after { content: "\f23a9"; } +.lnid-signature::before { content: "\f23ae"; } +.lnid-signature::after { content: "\f23ad"; } +.lnid-signs-post-1::before { content: "\f23b0"; } +.lnid-signs-post-1::after { content: "\f23af"; } +.lnid-signs-post-2::before { content: "\f23b2"; } +.lnid-signs-post-2::after { content: "\f23b1"; } +.lnid-signs-post-3::before { content: "\f23b4"; } +.lnid-signs-post-3::after { content: "\f23b3"; } +.lnid-silo-1::before { content: "\f23b6"; } +.lnid-silo-1::after { content: "\f23b5"; } +.lnid-silo-2::before { content: "\f23b8"; } +.lnid-silo-2::after { content: "\f23b7"; } +.lnid-sim::before { content: "\f23dc"; } +.lnid-sim::after { content: "\f23db"; } +.lnid-sim-bar-chart::before { content: "\f23ba"; } +.lnid-sim-bar-chart::after { content: "\f23b9"; } +.lnid-sim-bolt::before { content: "\f23bc"; } +.lnid-sim-bolt::after { content: "\f23bb"; } +.lnid-sim-check-circle::before { content: "\f23be"; } +.lnid-sim-check-circle::after { content: "\f23bd"; } +.lnid-sim-code::before { content: "\f23c0"; } +.lnid-sim-code::after { content: "\f23bf"; } +.lnid-sim-disabled::before { content: "\f23c4"; } +.lnid-sim-disabled::after { content: "\f23c3"; } +.lnid-sim-disabled-2::before { content: "\f23c2"; } +.lnid-sim-disabled-2::after { content: "\f23c1"; } +.lnid-sim-error-circle::before { content: "\f23c6"; } +.lnid-sim-error-circle::after { content: "\f23c5"; } +.lnid-sim-gear::before { content: "\f23c8"; } +.lnid-sim-gear::after { content: "\f23c7"; } +.lnid-sim-locked::before { content: "\f23ca"; } +.lnid-sim-locked::after { content: "\f23c9"; } +.lnid-sim-number-1::before { content: "\f23cc"; } +.lnid-sim-number-1::after { content: "\f23cb"; } +.lnid-sim-percent-circle::before { content: "\f23ce"; } +.lnid-sim-percent-circle::after { content: "\f23cd"; } +.lnid-sim-plus-circle::before { content: "\f23d0"; } +.lnid-sim-plus-circle::after { content: "\f23cf"; } +.lnid-sim-refresh::before { content: "\f23d2"; } +.lnid-sim-refresh::after { content: "\f23d1"; } +.lnid-sim-shield::before { content: "\f23d4"; } +.lnid-sim-shield::after { content: "\f23d3"; } +.lnid-sim-user::before { content: "\f23d6"; } +.lnid-sim-user::after { content: "\f23d5"; } +.lnid-sim-wifi::before { content: "\f23d8"; } +.lnid-sim-wifi::after { content: "\f23d7"; } +.lnid-sim-xmark-circle::before { content: "\f23da"; } +.lnid-sim-xmark-circle::after { content: "\f23d9"; } +.lnid-sinusoid::before { content: "\f23de"; } +.lnid-sinusoid::after { content: "\f23dd"; } +.lnid-sitemap::before { content: "\f23e2"; } +.lnid-sitemap::after { content: "\f23e1"; } +.lnid-sitemap-triangle::before { content: "\f23e0"; } +.lnid-sitemap-triangle::after { content: "\f23df"; } +.lnid-size-height-width::before { content: "\f23e4"; } +.lnid-size-height-width::after { content: "\f23e3"; } +.lnid-skipping-rope::before { content: "\f23e6"; } +.lnid-skipping-rope::after { content: "\f23e5"; } +.lnid-skirt-1::before { content: "\f23e8"; } +.lnid-skirt-1::after { content: "\f23e7"; } +.lnid-skirt-2::before { content: "\f23ea"; } +.lnid-skirt-2::after { content: "\f23e9"; } +.lnid-skirt-3::before { content: "\f23ec"; } +.lnid-skirt-3::after { content: "\f23eb"; } +.lnid-slice-1::before { content: "\f23ee"; } +.lnid-slice-1::after { content: "\f23ed"; } +.lnid-slice-2::before { content: "\f23f0"; } +.lnid-slice-2::after { content: "\f23ef"; } +.lnid-slider-horizontal::before { content: "\f23f2"; } +.lnid-slider-horizontal::after { content: "\f23f1"; } +.lnid-slider-vertical::before { content: "\f23f4"; } +.lnid-slider-vertical::after { content: "\f23f3"; } +.lnid-sliders-double-horizontal::before { content: "\f23f6"; } +.lnid-sliders-double-horizontal::after { content: "\f23f5"; } +.lnid-sliders-double-vertical::before { content: "\f23f8"; } +.lnid-sliders-double-vertical::after { content: "\f23f7"; } +.lnid-sliders-horizontal-circle-1::before { content: "\f23fa"; } +.lnid-sliders-horizontal-circle-1::after { content: "\f23f9"; } +.lnid-sliders-horizontal-circle-2::before { content: "\f23fc"; } +.lnid-sliders-horizontal-circle-2::after { content: "\f23fb"; } +.lnid-sliders-horizontal-square-1::before { content: "\f23fe"; } +.lnid-sliders-horizontal-square-1::after { content: "\f23fd"; } +.lnid-sliders-horizontal-square-2::before { content: "\f2400"; } +.lnid-sliders-horizontal-square-2::after { content: "\f23ff"; } +.lnid-sliders-triple-horizontal-1::before { content: "\f2402"; } +.lnid-sliders-triple-horizontal-1::after { content: "\f2401"; } +.lnid-sliders-triple-horizontal-2::before { content: "\f2404"; } +.lnid-sliders-triple-horizontal-2::after { content: "\f2403"; } +.lnid-sliders-triple-vertical-1::before { content: "\f2406"; } +.lnid-sliders-triple-vertical-1::after { content: "\f2405"; } +.lnid-sliders-triple-vertical-2::before { content: "\f2408"; } +.lnid-sliders-triple-vertical-2::after { content: "\f2407"; } +.lnid-sliders-vertical-circle-1::before { content: "\f240a"; } +.lnid-sliders-vertical-circle-1::after { content: "\f2409"; } +.lnid-sliders-vertical-circle-2::before { content: "\f240c"; } +.lnid-sliders-vertical-circle-2::after { content: "\f240b"; } +.lnid-sliders-vertical-square-1::before { content: "\f240e"; } +.lnid-sliders-vertical-square-1::after { content: "\f240d"; } +.lnid-sliders-vertical-square-2::before { content: "\f2410"; } +.lnid-sliders-vertical-square-2::after { content: "\f240f"; } +.lnid-slipper::before { content: "\f2412"; } +.lnid-slipper::after { content: "\f2411"; } +.lnid-snowfall::before { content: "\f2414"; } +.lnid-snowfall::after { content: "\f2413"; } +.lnid-sort-alphabetical::before { content: "\f2416"; } +.lnid-sort-alphabetical::after { content: "\f2415"; } +.lnid-sort-high-to-low::before { content: "\f2418"; } +.lnid-sort-high-to-low::after { content: "\f2417"; } +.lnid-spatula::before { content: "\f241a"; } +.lnid-spatula::after { content: "\f2419"; } +.lnid-speaker::before { content: "\f241c"; } +.lnid-speaker::after { content: "\f241b"; } +.lnid-speed-boat-1::before { content: "\f241e"; } +.lnid-speed-boat-1::after { content: "\f241d"; } +.lnid-speed-boat-2::before { content: "\f2420"; } +.lnid-speed-boat-2::after { content: "\f241f"; } +.lnid-speed-boat-disabled::before { content: "\f2422"; } +.lnid-speed-boat-disabled::after { content: "\f2421"; } +.lnid-spellcheck::before { content: "\f2424"; } +.lnid-spellcheck::after { content: "\f2423"; } +.lnid-spinner-1::before { content: "\f242e"; } +.lnid-spinner-1::after { content: "\f242d"; } +.lnid-spinner-1-bottom-left-blank::before { content: "\f2426"; } +.lnid-spinner-1-bottom-left-blank::after { content: "\f2425"; } +.lnid-spinner-1-bottom-right-blank::before { content: "\f2428"; } +.lnid-spinner-1-bottom-right-blank::after { content: "\f2427"; } +.lnid-spinner-1-top-left-blank::before { content: "\f242a"; } +.lnid-spinner-1-top-left-blank::after { content: "\f2429"; } +.lnid-spinner-1-top-right-blank::before { content: "\f242c"; } +.lnid-spinner-1-top-right-blank::after { content: "\f242b"; } +.lnid-spinner-2::before { content: "\f2436"; } +.lnid-spinner-2::after { content: "\f2435"; } +.lnid-spinner-2-bold::before { content: "\f2430"; } +.lnid-spinner-2-bold::after { content: "\f242f"; } +.lnid-spinner-2-dotted::before { content: "\f2432"; } +.lnid-spinner-2-dotted::after { content: "\f2431"; } +.lnid-spinner-2-sacle::before { content: "\f2434"; } +.lnid-spinner-2-sacle::after { content: "\f2433"; } +.lnid-spinner-3::before { content: "\f2438"; } +.lnid-spinner-3::after { content: "\f2437"; } +.lnid-spinner-4::before { content: "\f2446"; } +.lnid-spinner-4::after { content: "\f2445"; } +.lnid-spinner-4-bottom-blank::before { content: "\f243a"; } +.lnid-spinner-4-bottom-blank::after { content: "\f2439"; } +.lnid-spinner-4-bottom-left-blank::before { content: "\f243c"; } +.lnid-spinner-4-bottom-left-blank::after { content: "\f243b"; } +.lnid-spinner-4-bottom-right-blank::before { content: "\f243e"; } +.lnid-spinner-4-bottom-right-blank::after { content: "\f243d"; } +.lnid-spinner-4-top-blank::before { content: "\f2440"; } +.lnid-spinner-4-top-blank::after { content: "\f243f"; } +.lnid-spinner-4-top-left-blank::before { content: "\f2442"; } +.lnid-spinner-4-top-left-blank::after { content: "\f2441"; } +.lnid-spinner-4-top-right-blank::before { content: "\f2444"; } +.lnid-spinner-4-top-right-blank::after { content: "\f2443"; } +.lnid-spinner-5::before { content: "\f2448"; } +.lnid-spinner-5::after { content: "\f2447"; } +.lnid-spiral-tool::before { content: "\f244a"; } +.lnid-spiral-tool::after { content: "\f2449"; } +.lnid-split::before { content: "\f244c"; } +.lnid-split::after { content: "\f244b"; } +.lnid-spoon::before { content: "\f2450"; } +.lnid-spoon::after { content: "\f244f"; } +.lnid-spoon-rotated::before { content: "\f244e"; } +.lnid-spoon-rotated::after { content: "\f244d"; } +.lnid-sports::before { content: "\f2452"; } +.lnid-sports::after { content: "\f2451"; } +.lnid-square-code-ai::before { content: "\f2454"; } +.lnid-square-code-ai::after { content: "\f2453"; } +.lnid-square-code-simple-ai::before { content: "\f2456"; } +.lnid-square-code-simple-ai::after { content: "\f2455"; } +.lnid-square-triangle::before { content: "\f2458"; } +.lnid-square-triangle::after { content: "\f2457"; } +.lnid-squares::before { content: "\f245a"; } +.lnid-squares::after { content: "\f2459"; } +.lnid-ssd-ai-1::before { content: "\f245c"; } +.lnid-ssd-ai-1::after { content: "\f245b"; } +.lnid-ssd-ai-2::before { content: "\f245e"; } +.lnid-ssd-ai-2::after { content: "\f245d"; } +.lnid-ssd-disabled-1::before { content: "\f2460"; } +.lnid-ssd-disabled-1::after { content: "\f245f"; } +.lnid-ssd-disabled-2::before { content: "\f2462"; } +.lnid-ssd-disabled-2::after { content: "\f2461"; } +.lnid-ssd-disabled-3::before { content: "\f2464"; } +.lnid-ssd-disabled-3::after { content: "\f2463"; } +.lnid-ssd-disabled-4::before { content: "\f2466"; } +.lnid-ssd-disabled-4::after { content: "\f2465"; } +.lnid-stairs-1::before { content: "\f2468"; } +.lnid-stairs-1::after { content: "\f2467"; } +.lnid-stairs-2::before { content: "\f246a"; } +.lnid-stairs-2::after { content: "\f2469"; } +.lnid-stairs-3::before { content: "\f246c"; } +.lnid-stairs-3::after { content: "\f246b"; } +.lnid-stairs-4::before { content: "\f246e"; } +.lnid-stairs-4::after { content: "\f246d"; } +.lnid-stamp::before { content: "\f2470"; } +.lnid-stamp::after { content: "\f246f"; } +.lnid-stapler::before { content: "\f2472"; } +.lnid-stapler::after { content: "\f2471"; } +.lnid-star-aeroplane::before { content: "\f2474"; } +.lnid-star-aeroplane::after { content: "\f2473"; } +.lnid-star-arrow-right::before { content: "\f2476"; } +.lnid-star-arrow-right::after { content: "\f2475"; } +.lnid-star-bitcoin::before { content: "\f2478"; } +.lnid-star-bitcoin::after { content: "\f2477"; } +.lnid-star-christmas-rounded::before { content: "\f247a"; } +.lnid-star-christmas-rounded::after { content: "\f2479"; } +.lnid-star-christmas-sharp::before { content: "\f247c"; } +.lnid-star-christmas-sharp::after { content: "\f247b"; } +.lnid-star-circle::before { content: "\f247e"; } +.lnid-star-circle::after { content: "\f247d"; } +.lnid-star-crypto::before { content: "\f2480"; } +.lnid-star-crypto::after { content: "\f247f"; } +.lnid-star-dollar::before { content: "\f2482"; } +.lnid-star-dollar::after { content: "\f2481"; } +.lnid-star-error::before { content: "\f2484"; } +.lnid-star-error::after { content: "\f2483"; } +.lnid-star-eye::before { content: "\f2486"; } +.lnid-star-eye::after { content: "\f2485"; } +.lnid-star-fat::before { content: "\f249c"; } +.lnid-star-fat::after { content: "\f249b"; } +.lnid-star-fat-disabled::before { content: "\f2488"; } +.lnid-star-fat-disabled::after { content: "\f2487"; } +.lnid-star-fat-falling::before { content: "\f248a"; } +.lnid-star-fat-falling::after { content: "\f2489"; } +.lnid-star-fat-half-1::before { content: "\f248c"; } +.lnid-star-fat-half-1::after { content: "\f248b"; } +.lnid-star-fat-half-2::before { content: "\f248e"; } +.lnid-star-fat-half-2::after { content: "\f248d"; } +.lnid-star-fat-half-3::before { content: "\f2490"; } +.lnid-star-fat-half-3::after { content: "\f248f"; } +.lnid-star-fat-multiple::before { content: "\f2492"; } +.lnid-star-fat-multiple::after { content: "\f2491"; } +.lnid-star-fat-rounded::before { content: "\f2498"; } +.lnid-star-fat-rounded::after { content: "\f2497"; } +.lnid-star-fat-rounded-falling::before { content: "\f2494"; } +.lnid-star-fat-rounded-falling::after { content: "\f2493"; } +.lnid-star-fat-rounded-multiple::before { content: "\f2496"; } +.lnid-star-fat-rounded-multiple::after { content: "\f2495"; } +.lnid-star-fat-shine::before { content: "\f249a"; } +.lnid-star-fat-shine::after { content: "\f2499"; } +.lnid-star-heart::before { content: "\f249e"; } +.lnid-star-heart::after { content: "\f249d"; } +.lnid-star-info::before { content: "\f24a0"; } +.lnid-star-info::after { content: "\f249f"; } +.lnid-star-life::before { content: "\f24a2"; } +.lnid-star-life::after { content: "\f24a1"; } +.lnid-star-marker::before { content: "\f24a4"; } +.lnid-star-marker::after { content: "\f24a3"; } +.lnid-star-minus::before { content: "\f24a6"; } +.lnid-star-minus::after { content: "\f24a5"; } +.lnid-star-multiple-1::before { content: "\f24a8"; } +.lnid-star-multiple-1::after { content: "\f24a7"; } +.lnid-star-multiple-2::before { content: "\f24aa"; } +.lnid-star-multiple-2::after { content: "\f24a9"; } +.lnid-star-number-5::before { content: "\f24ac"; } +.lnid-star-number-5::after { content: "\f24ab"; } +.lnid-star-percent::before { content: "\f24ae"; } +.lnid-star-percent::after { content: "\f24ad"; } +.lnid-star-pin::before { content: "\f24b0"; } +.lnid-star-pin::after { content: "\f24af"; } +.lnid-star-plus::before { content: "\f24b2"; } +.lnid-star-plus::after { content: "\f24b1"; } +.lnid-star-questionmark::before { content: "\f24b4"; } +.lnid-star-questionmark::after { content: "\f24b3"; } +.lnid-star-rechtangle::before { content: "\f24b6"; } +.lnid-star-rechtangle::after { content: "\f24b5"; } +.lnid-star-rounded-disabled::before { content: "\f24b8"; } +.lnid-star-rounded-disabled::after { content: "\f24b7"; } +.lnid-star-rounded-half-1::before { content: "\f24ba"; } +.lnid-star-rounded-half-1::after { content: "\f24b9"; } +.lnid-star-rounded-half-2::before { content: "\f24bc"; } +.lnid-star-rounded-half-2::after { content: "\f24bb"; } +.lnid-star-rounded-half-3::before { content: "\f24be"; } +.lnid-star-rounded-half-3::after { content: "\f24bd"; } +.lnid-star-rounded-shine::before { content: "\f24c0"; } +.lnid-star-rounded-shine::after { content: "\f24bf"; } +.lnid-star-sharp::before { content: "\f24cc"; } +.lnid-star-sharp::after { content: "\f24cb"; } +.lnid-star-sharp-disabled::before { content: "\f24c2"; } +.lnid-star-sharp-disabled::after { content: "\f24c1"; } +.lnid-star-sharp-half-1::before { content: "\f24c4"; } +.lnid-star-sharp-half-1::after { content: "\f24c3"; } +.lnid-star-sharp-half-2::before { content: "\f24c6"; } +.lnid-star-sharp-half-2::after { content: "\f24c5"; } +.lnid-star-sharp-half-3::before { content: "\f24c8"; } +.lnid-star-sharp-half-3::after { content: "\f24c7"; } +.lnid-star-sharp-shine::before { content: "\f24ca"; } +.lnid-star-sharp-shine::after { content: "\f24c9"; } +.lnid-star-user::before { content: "\f24ce"; } +.lnid-star-user::after { content: "\f24cd"; } +.lnid-star-wifi::before { content: "\f24d0"; } +.lnid-star-wifi::after { content: "\f24cf"; } +.lnid-stars::before { content: "\f24d2"; } +.lnid-stars::after { content: "\f24d1"; } +.lnid-stationary-bike::before { content: "\f24d4"; } +.lnid-stationary-bike::after { content: "\f24d3"; } +.lnid-steak-cooked::before { content: "\f24d6"; } +.lnid-steak-cooked::after { content: "\f24d5"; } +.lnid-steak-meat::before { content: "\f24d8"; } +.lnid-steak-meat::after { content: "\f24d7"; } +.lnid-stethoscope-1::before { content: "\f24da"; } +.lnid-stethoscope-1::after { content: "\f24d9"; } +.lnid-stethoscope-2::before { content: "\f24dc"; } +.lnid-stethoscope-2::after { content: "\f24db"; } +.lnid-stethoscope-ai::before { content: "\f24de"; } +.lnid-stethoscope-ai::after { content: "\f24dd"; } +.lnid-stocking::before { content: "\f24e0"; } +.lnid-stocking::after { content: "\f24df"; } +.lnid-stop::before { content: "\f24e2"; } +.lnid-stop::after { content: "\f24e1"; } +.lnid-stopcock::before { content: "\f24e4"; } +.lnid-stopcock::after { content: "\f24e3"; } +.lnid-stopwatch::before { content: "\f24f2"; } +.lnid-stopwatch::after { content: "\f24f1"; } +.lnid-stopwatch-beat-1::before { content: "\f24e6"; } +.lnid-stopwatch-beat-1::after { content: "\f24e5"; } +.lnid-stopwatch-beat-2::before { content: "\f24e8"; } +.lnid-stopwatch-beat-2::after { content: "\f24e7"; } +.lnid-stopwatch-disabled::before { content: "\f24ea"; } +.lnid-stopwatch-disabled::after { content: "\f24e9"; } +.lnid-stopwatch-number-10::before { content: "\f24ec"; } +.lnid-stopwatch-number-10::after { content: "\f24eb"; } +.lnid-stopwatch-number-20::before { content: "\f24ee"; } +.lnid-stopwatch-number-20::after { content: "\f24ed"; } +.lnid-stopwatch-number-50::before { content: "\f24f0"; } +.lnid-stopwatch-number-50::after { content: "\f24ef"; } +.lnid-storage-hdd-1::before { content: "\f24f4"; } +.lnid-storage-hdd-1::after { content: "\f24f3"; } +.lnid-storage-hdd-2::before { content: "\f24f6"; } +.lnid-storage-hdd-2::after { content: "\f24f5"; } +.lnid-storage-pen-drive-1::before { content: "\f24f8"; } +.lnid-storage-pen-drive-1::after { content: "\f24f7"; } +.lnid-storage-pen-drive-2::before { content: "\f24fa"; } +.lnid-storage-pen-drive-2::after { content: "\f24f9"; } +.lnid-storage-ssd-1::before { content: "\f24fc"; } +.lnid-storage-ssd-1::after { content: "\f24fb"; } +.lnid-storage-ssd-2::before { content: "\f24fe"; } +.lnid-storage-ssd-2::after { content: "\f24fd"; } +.lnid-storage-ssd-3::before { content: "\f2500"; } +.lnid-storage-ssd-3::after { content: "\f24ff"; } +.lnid-storage-ssd-4::before { content: "\f2502"; } +.lnid-storage-ssd-4::after { content: "\f2501"; } +.lnid-strategy::before { content: "\f2508"; } +.lnid-strategy::after { content: "\f2507"; } +.lnid-strategy-ai::before { content: "\f2504"; } +.lnid-strategy-ai::after { content: "\f2503"; } +.lnid-strategy-flow-chart::before { content: "\f2506"; } +.lnid-strategy-flow-chart::after { content: "\f2505"; } +.lnid-strawberry-1::before { content: "\f250a"; } +.lnid-strawberry-1::after { content: "\f2509"; } +.lnid-strawberry-2::before { content: "\f250c"; } +.lnid-strawberry-2::after { content: "\f250b"; } +.lnid-strikethrough-1::before { content: "\f250e"; } +.lnid-strikethrough-1::after { content: "\f250d"; } +.lnid-strikethrough-2::before { content: "\f2510"; } +.lnid-strikethrough-2::after { content: "\f250f"; } +.lnid-subnode-add::before { content: "\f2512"; } +.lnid-subnode-add::after { content: "\f2511"; } +.lnid-subnode-remove::before { content: "\f2514"; } +.lnid-subnode-remove::after { content: "\f2513"; } +.lnid-subtract-selection::before { content: "\f2516"; } +.lnid-subtract-selection::after { content: "\f2515"; } +.lnid-suitcase-1::before { content: "\f2518"; } +.lnid-suitcase-1::after { content: "\f2517"; } +.lnid-suitcase-2::before { content: "\f251a"; } +.lnid-suitcase-2::after { content: "\f2519"; } +.lnid-sun-1::before { content: "\f251c"; } +.lnid-sun-1::after { content: "\f251b"; } +.lnid-sun-2::before { content: "\f251e"; } +.lnid-sun-2::after { content: "\f251d"; } +.lnid-sun-desert::before { content: "\f2520"; } +.lnid-sun-desert::after { content: "\f251f"; } +.lnid-sun-haze-high::before { content: "\f2522"; } +.lnid-sun-haze-high::after { content: "\f2521"; } +.lnid-sun-haze-low::before { content: "\f2524"; } +.lnid-sun-haze-low::after { content: "\f2523"; } +.lnid-sun-water::before { content: "\f2526"; } +.lnid-sun-water::after { content: "\f2525"; } +.lnid-sun-wind::before { content: "\f2528"; } +.lnid-sun-wind::after { content: "\f2527"; } +.lnid-sunflower::before { content: "\f252a"; } +.lnid-sunflower::after { content: "\f2529"; } +.lnid-surfboard-1::before { content: "\f252c"; } +.lnid-surfboard-1::after { content: "\f252b"; } +.lnid-surfboard-2::before { content: "\f252e"; } +.lnid-surfboard-2::after { content: "\f252d"; } +.lnid-surfboard-3::before { content: "\f2530"; } +.lnid-surfboard-3::after { content: "\f252f"; } +.lnid-surfboard-4::before { content: "\f2532"; } +.lnid-surfboard-4::after { content: "\f2531"; } +.lnid-surfboard-5::before { content: "\f2534"; } +.lnid-surfboard-5::after { content: "\f2533"; } +.lnid-swap-coins::before { content: "\f2536"; } +.lnid-swap-coins::after { content: "\f2535"; } +.lnid-swap-currency::before { content: "\f2538"; } +.lnid-swap-currency::after { content: "\f2537"; } +.lnid-swimming::before { content: "\f253c"; } +.lnid-swimming::after { content: "\f253b"; } +.lnid-swimming-pool::before { content: "\f253a"; } +.lnid-swimming-pool::after { content: "\f2539"; } +.lnid-symbol::before { content: "\f2540"; } +.lnid-symbol::after { content: "\f253f"; } +.lnid-symbol-moon-star::before { content: "\f253e"; } +.lnid-symbol-moon-star::after { content: "\f253d"; } +.lnid-tab::before { content: "\f2542"; } +.lnid-tab::after { content: "\f2541"; } +.lnid-table::before { content: "\f254c"; } +.lnid-table::after { content: "\f254b"; } +.lnid-table-1::before { content: "\f2544"; } +.lnid-table-1::after { content: "\f2543"; } +.lnid-table-2::before { content: "\f2546"; } +.lnid-table-2::after { content: "\f2545"; } +.lnid-table-3::before { content: "\f2548"; } +.lnid-table-3::after { content: "\f2547"; } +.lnid-table-chair::before { content: "\f254a"; } +.lnid-table-chair::after { content: "\f2549"; } +.lnid-tablets::before { content: "\f254e"; } +.lnid-tablets::after { content: "\f254d"; } +.lnid-taco::before { content: "\f2550"; } +.lnid-taco::after { content: "\f254f"; } +.lnid-taj-mahal::before { content: "\f2552"; } +.lnid-taj-mahal::after { content: "\f2551"; } +.lnid-taka::before { content: "\f255a"; } +.lnid-taka::after { content: "\f2559"; } +.lnid-taka-circle::before { content: "\f2554"; } +.lnid-taka-circle::after { content: "\f2553"; } +.lnid-taka-trend-down::before { content: "\f2558"; } +.lnid-taka-trend-down::after { content: "\f2557"; } +.lnid-taka-trend-down-1::before { content: "\f2556"; } +.lnid-taka-trend-down-1::after { content: "\f2555"; } +.lnid-tap::before { content: "\f2566"; } +.lnid-tap::after { content: "\f2565"; } +.lnid-tap-angular::before { content: "\f255c"; } +.lnid-tap-angular::after { content: "\f255b"; } +.lnid-tap-long::before { content: "\f2560"; } +.lnid-tap-long::after { content: "\f255f"; } +.lnid-tap-long-angular::before { content: "\f255e"; } +.lnid-tap-long-angular::after { content: "\f255d"; } +.lnid-tap-quick::before { content: "\f2564"; } +.lnid-tap-quick::after { content: "\f2563"; } +.lnid-tap-quick-angular::before { content: "\f2562"; } +.lnid-tap-quick-angular::after { content: "\f2561"; } +.lnid-target-1::before { content: "\f2568"; } +.lnid-target-1::after { content: "\f2567"; } +.lnid-target-2::before { content: "\f256a"; } +.lnid-target-2::after { content: "\f2569"; } +.lnid-target-3::before { content: "\f256c"; } +.lnid-target-3::after { content: "\f256b"; } +.lnid-target-4::before { content: "\f256e"; } +.lnid-target-4::after { content: "\f256d"; } +.lnid-target-5::before { content: "\f2570"; } +.lnid-target-5::after { content: "\f256f"; } +.lnid-target-bitcoin-1::before { content: "\f2572"; } +.lnid-target-bitcoin-1::after { content: "\f2571"; } +.lnid-target-bitcoin-2::before { content: "\f2574"; } +.lnid-target-bitcoin-2::after { content: "\f2573"; } +.lnid-target-bitcoin-3::before { content: "\f2576"; } +.lnid-target-bitcoin-3::after { content: "\f2575"; } +.lnid-target-crypto-1::before { content: "\f2578"; } +.lnid-target-crypto-1::after { content: "\f2577"; } +.lnid-target-crypto-2::before { content: "\f257a"; } +.lnid-target-crypto-2::after { content: "\f2579"; } +.lnid-target-crypto-3::before { content: "\f257c"; } +.lnid-target-crypto-3::after { content: "\f257b"; } +.lnid-target-envelope::before { content: "\f257e"; } +.lnid-target-envelope::after { content: "\f257d"; } +.lnid-target-euro-1::before { content: "\f2580"; } +.lnid-target-euro-1::after { content: "\f257f"; } +.lnid-target-euro-2::before { content: "\f2582"; } +.lnid-target-euro-2::after { content: "\f2581"; } +.lnid-target-euro-3::before { content: "\f2584"; } +.lnid-target-euro-3::after { content: "\f2583"; } +.lnid-target-user::before { content: "\f2586"; } +.lnid-target-user::after { content: "\f2585"; } +.lnid-target-yen-1::before { content: "\f2588"; } +.lnid-target-yen-1::after { content: "\f2587"; } +.lnid-target-yen-2::before { content: "\f258a"; } +.lnid-target-yen-2::after { content: "\f2589"; } +.lnid-target-yen-3::before { content: "\f258c"; } +.lnid-target-yen-3::after { content: "\f258b"; } +.lnid-task-done::before { content: "\f2590"; } +.lnid-task-done::after { content: "\f258f"; } +.lnid-task-done-circle::before { content: "\f258e"; } +.lnid-task-done-circle::after { content: "\f258d"; } +.lnid-task-error::before { content: "\f2594"; } +.lnid-task-error::after { content: "\f2593"; } +.lnid-task-error-circle::before { content: "\f2592"; } +.lnid-task-error-circle::after { content: "\f2591"; } +.lnid-task-stopped::before { content: "\f2598"; } +.lnid-task-stopped::after { content: "\f2597"; } +.lnid-task-stopped-circle::before { content: "\f2596"; } +.lnid-task-stopped-circle::after { content: "\f2595"; } +.lnid-teabag::before { content: "\f259a"; } +.lnid-teabag::after { content: "\f2599"; } +.lnid-teeth::before { content: "\f259c"; } +.lnid-teeth::after { content: "\f259b"; } +.lnid-telephone-1::before { content: "\f259e"; } +.lnid-telephone-1::after { content: "\f259d"; } +.lnid-telephone-2::before { content: "\f25a0"; } +.lnid-telephone-2::after { content: "\f259f"; } +.lnid-telephone-3::before { content: "\f25a2"; } +.lnid-telephone-3::after { content: "\f25a1"; } +.lnid-telephone-4::before { content: "\f25a4"; } +.lnid-telephone-4::after { content: "\f25a3"; } +.lnid-telephone-ai::before { content: "\f25a6"; } +.lnid-telephone-ai::after { content: "\f25a5"; } +.lnid-telephone-arrow-bottom-left::before { content: "\f25a8"; } +.lnid-telephone-arrow-bottom-left::after { content: "\f25a7"; } +.lnid-telephone-arrow-down::before { content: "\f25aa"; } +.lnid-telephone-arrow-down::after { content: "\f25a9"; } +.lnid-telephone-arrow-left::before { content: "\f25ac"; } +.lnid-telephone-arrow-left::after { content: "\f25ab"; } +.lnid-telephone-arrow-right::before { content: "\f25ae"; } +.lnid-telephone-arrow-right::after { content: "\f25ad"; } +.lnid-telephone-arrow-top::before { content: "\f25b2"; } +.lnid-telephone-arrow-top::after { content: "\f25b1"; } +.lnid-telephone-arrow-top-right::before { content: "\f25b0"; } +.lnid-telephone-arrow-top-right::after { content: "\f25af"; } +.lnid-telephone-disabled::before { content: "\f25b4"; } +.lnid-telephone-disabled::after { content: "\f25b3"; } +.lnid-telephone-dollar::before { content: "\f25b6"; } +.lnid-telephone-dollar::after { content: "\f25b5"; } +.lnid-telephone-dots::before { content: "\f25b8"; } +.lnid-telephone-dots::after { content: "\f25b7"; } +.lnid-telephone-hold::before { content: "\f25ba"; } +.lnid-telephone-hold::after { content: "\f25b9"; } +.lnid-telephone-missed-call-1::before { content: "\f25bc"; } +.lnid-telephone-missed-call-1::after { content: "\f25bb"; } +.lnid-telephone-missed-call-2::before { content: "\f25be"; } +.lnid-telephone-missed-call-2::after { content: "\f25bd"; } +.lnid-telephone-plus::before { content: "\f25c0"; } +.lnid-telephone-plus::after { content: "\f25bf"; } +.lnid-telephone-reload::before { content: "\f25c2"; } +.lnid-telephone-reload::after { content: "\f25c1"; } +.lnid-telephone-wave::before { content: "\f25c4"; } +.lnid-telephone-wave::after { content: "\f25c3"; } +.lnid-telescope::before { content: "\f25c6"; } +.lnid-telescope::after { content: "\f25c5"; } +.lnid-temple-1::before { content: "\f25c8"; } +.lnid-temple-1::after { content: "\f25c7"; } +.lnid-temple-2::before { content: "\f25ca"; } +.lnid-temple-2::after { content: "\f25c9"; } +.lnid-tennis-ball::before { content: "\f25cc"; } +.lnid-tennis-ball::after { content: "\f25cb"; } +.lnid-tent-1::before { content: "\f25ce"; } +.lnid-tent-1::after { content: "\f25cd"; } +.lnid-tent-2::before { content: "\f25d0"; } +.lnid-tent-2::after { content: "\f25cf"; } +.lnid-tent-3::before { content: "\f25d2"; } +.lnid-tent-3::after { content: "\f25d1"; } +.lnid-terminal::before { content: "\f25de"; } +.lnid-terminal::after { content: "\f25dd"; } +.lnid-terminal-circle::before { content: "\f25d4"; } +.lnid-terminal-circle::after { content: "\f25d3"; } +.lnid-terminal-hexagon::before { content: "\f25d6"; } +.lnid-terminal-hexagon::after { content: "\f25d5"; } +.lnid-terminal-octagon::before { content: "\f25d8"; } +.lnid-terminal-octagon::after { content: "\f25d7"; } +.lnid-terminal-rechtangle::before { content: "\f25da"; } +.lnid-terminal-rechtangle::after { content: "\f25d9"; } +.lnid-terminal-square::before { content: "\f25dc"; } +.lnid-terminal-square::after { content: "\f25db"; } +.lnid-test-tube-1::before { content: "\f25e0"; } +.lnid-test-tube-1::after { content: "\f25df"; } +.lnid-test-tube-2::before { content: "\f25e2"; } +.lnid-test-tube-2::after { content: "\f25e1"; } +.lnid-test-tube-3::before { content: "\f25e4"; } +.lnid-test-tube-3::after { content: "\f25e3"; } +.lnid-text::before { content: "\f25f0"; } +.lnid-text::after { content: "\f25ef"; } +.lnid-text-format::before { content: "\f25e8"; } +.lnid-text-format::after { content: "\f25e7"; } +.lnid-text-format-remove::before { content: "\f25e6"; } +.lnid-text-format-remove::after { content: "\f25e5"; } +.lnid-text-paragraph::before { content: "\f25ea"; } +.lnid-text-paragraph::after { content: "\f25e9"; } +.lnid-text-square::before { content: "\f25ec"; } +.lnid-text-square::after { content: "\f25eb"; } +.lnid-text-width::before { content: "\f25ee"; } +.lnid-text-width::after { content: "\f25ed"; } +.lnid-thermometer-1::before { content: "\f25f2"; } +.lnid-thermometer-1::after { content: "\f25f1"; } +.lnid-thermometer-2::before { content: "\f25f4"; } +.lnid-thermometer-2::after { content: "\f25f3"; } +.lnid-thermometer-ai-1::before { content: "\f25f6"; } +.lnid-thermometer-ai-1::after { content: "\f25f5"; } +.lnid-thermometer-ai-2::before { content: "\f25f8"; } +.lnid-thermometer-ai-2::after { content: "\f25f7"; } +.lnid-thermometer-ai-3::before { content: "\f25fa"; } +.lnid-thermometer-ai-3::after { content: "\f25f9"; } +.lnid-thermometer-ai-4::before { content: "\f25fc"; } +.lnid-thermometer-ai-4::after { content: "\f25fb"; } +.lnid-thermometer-progress-full-1::before { content: "\f25fe"; } +.lnid-thermometer-progress-full-1::after { content: "\f25fd"; } +.lnid-thermometer-progress-full-2::before { content: "\f2600"; } +.lnid-thermometer-progress-full-2::after { content: "\f25ff"; } +.lnid-thermometer-progress-half::before { content: "\f2602"; } +.lnid-thermometer-progress-half::after { content: "\f2601"; } +.lnid-thumbs-down-1::before { content: "\f2604"; } +.lnid-thumbs-down-1::after { content: "\f2603"; } +.lnid-thumbs-down-2::before { content: "\f2606"; } +.lnid-thumbs-down-2::after { content: "\f2605"; } +.lnid-thumbs-down-3::before { content: "\f2608"; } +.lnid-thumbs-down-3::after { content: "\f2607"; } +.lnid-thumbs-up-1::before { content: "\f260a"; } +.lnid-thumbs-up-1::after { content: "\f2609"; } +.lnid-thumbs-up-2::before { content: "\f260c"; } +.lnid-thumbs-up-2::after { content: "\f260b"; } +.lnid-thumbs-up-3::before { content: "\f260e"; } +.lnid-thumbs-up-3::after { content: "\f260d"; } +.lnid-thumbs-up-locked::before { content: "\f2610"; } +.lnid-thumbs-up-locked::after { content: "\f260f"; } +.lnid-thumbs-up-spark::before { content: "\f2612"; } +.lnid-thumbs-up-spark::after { content: "\f2611"; } +.lnid-ticket-1::before { content: "\f2614"; } +.lnid-ticket-1::after { content: "\f2613"; } +.lnid-ticket-2::before { content: "\f2616"; } +.lnid-ticket-2::after { content: "\f2615"; } +.lnid-ticket-ai::before { content: "\f2618"; } +.lnid-ticket-ai::after { content: "\f2617"; } +.lnid-ticket-airplane::before { content: "\f261a"; } +.lnid-ticket-airplane::after { content: "\f2619"; } +.lnid-tickets-1::before { content: "\f261c"; } +.lnid-tickets-1::after { content: "\f261b"; } +.lnid-tickets-2::before { content: "\f261e"; } +.lnid-tickets-2::after { content: "\f261d"; } +.lnid-tickets-3::before { content: "\f2620"; } +.lnid-tickets-3::after { content: "\f261f"; } +.lnid-tickets-ai::before { content: "\f2622"; } +.lnid-tickets-ai::after { content: "\f2621"; } +.lnid-tickets-star::before { content: "\f2624"; } +.lnid-tickets-star::after { content: "\f2623"; } +.lnid-tie::before { content: "\f2626"; } +.lnid-tie::after { content: "\f2625"; } +.lnid-tiimer::before { content: "\f2628"; } +.lnid-tiimer::after { content: "\f2627"; } +.lnid-timelapse::before { content: "\f262a"; } +.lnid-timelapse::after { content: "\f2629"; } +.lnid-timeline::before { content: "\f262c"; } +.lnid-timeline::after { content: "\f262b"; } +.lnid-timer-1::before { content: "\f262e"; } +.lnid-timer-1::after { content: "\f262d"; } +.lnid-timer-2::before { content: "\f2630"; } +.lnid-timer-2::after { content: "\f262f"; } +.lnid-timer-half::before { content: "\f2632"; } +.lnid-timer-half::after { content: "\f2631"; } +.lnid-timer-quarter::before { content: "\f2636"; } +.lnid-timer-quarter::after { content: "\f2635"; } +.lnid-timer-quarter-pass::before { content: "\f2634"; } +.lnid-timer-quarter-pass::after { content: "\f2633"; } +.lnid-toggle-1-neutral::before { content: "\f2638"; } +.lnid-toggle-1-neutral::after { content: "\f2637"; } +.lnid-toggle-1-off::before { content: "\f263a"; } +.lnid-toggle-1-off::after { content: "\f2639"; } +.lnid-toggle-1-on::before { content: "\f263c"; } +.lnid-toggle-1-on::after { content: "\f263b"; } +.lnid-toggle-2-neutral::before { content: "\f263e"; } +.lnid-toggle-2-neutral::after { content: "\f263d"; } +.lnid-toggle-2-off::before { content: "\f2640"; } +.lnid-toggle-2-off::after { content: "\f263f"; } +.lnid-toggle-2-on::before { content: "\f2642"; } +.lnid-toggle-2-on::after { content: "\f2641"; } +.lnid-tomato::before { content: "\f2644"; } +.lnid-tomato::after { content: "\f2643"; } +.lnid-tombstone::before { content: "\f264e"; } +.lnid-tombstone::after { content: "\f264d"; } +.lnid-tombstone-cross::before { content: "\f2646"; } +.lnid-tombstone-cross::after { content: "\f2645"; } +.lnid-tombstone-moon-star::before { content: "\f2648"; } +.lnid-tombstone-moon-star::after { content: "\f2647"; } +.lnid-tombstone-octagon::before { content: "\f264a"; } +.lnid-tombstone-octagon::after { content: "\f2649"; } +.lnid-tombstone-text::before { content: "\f264c"; } +.lnid-tombstone-text::after { content: "\f264b"; } +.lnid-tooth::before { content: "\f2650"; } +.lnid-tooth::after { content: "\f264f"; } +.lnid-torii-gate-1::before { content: "\f2652"; } +.lnid-torii-gate-1::after { content: "\f2651"; } +.lnid-torii-gate-2::before { content: "\f2654"; } +.lnid-torii-gate-2::after { content: "\f2653"; } +.lnid-tornado-1::before { content: "\f2656"; } +.lnid-tornado-1::after { content: "\f2655"; } +.lnid-tornado-2::before { content: "\f2658"; } +.lnid-tornado-2::after { content: "\f2657"; } +.lnid-tornado-3::before { content: "\f265a"; } +.lnid-tornado-3::after { content: "\f2659"; } +.lnid-towel::before { content: "\f265c"; } +.lnid-towel::after { content: "\f265b"; } +.lnid-tower-broadcast-1::before { content: "\f265e"; } +.lnid-tower-broadcast-1::after { content: "\f265d"; } +.lnid-tower-broadcast-2::before { content: "\f2660"; } +.lnid-tower-broadcast-2::after { content: "\f265f"; } +.lnid-tower-broadcast-ai::before { content: "\f2662"; } +.lnid-tower-broadcast-ai::after { content: "\f2661"; } +.lnid-tractor::before { content: "\f2664"; } +.lnid-tractor::after { content: "\f2663"; } +.lnid-trade-mark::before { content: "\f2666"; } +.lnid-trade-mark::after { content: "\f2665"; } +.lnid-traffic-cone-1::before { content: "\f2668"; } +.lnid-traffic-cone-1::after { content: "\f2667"; } +.lnid-traffic-cone-2::before { content: "\f266a"; } +.lnid-traffic-cone-2::after { content: "\f2669"; } +.lnid-traffic-light::before { content: "\f266c"; } +.lnid-traffic-light::after { content: "\f266b"; } +.lnid-train-1::before { content: "\f266e"; } +.lnid-train-1::after { content: "\f266d"; } +.lnid-train-2::before { content: "\f2670"; } +.lnid-train-2::after { content: "\f266f"; } +.lnid-train-3::before { content: "\f2672"; } +.lnid-train-3::after { content: "\f2671"; } +.lnid-trampoline::before { content: "\f2674"; } +.lnid-trampoline::after { content: "\f2673"; } +.lnid-transform-1::before { content: "\f2676"; } +.lnid-transform-1::after { content: "\f2675"; } +.lnid-transform-2::before { content: "\f2678"; } +.lnid-transform-2::after { content: "\f2677"; } +.lnid-trash-1::before { content: "\f267c"; } +.lnid-trash-1::after { content: "\f267b"; } +.lnid-trash-1-disabled::before { content: "\f267a"; } +.lnid-trash-1-disabled::after { content: "\f2679"; } +.lnid-trash-2::before { content: "\f2680"; } +.lnid-trash-2::after { content: "\f267f"; } +.lnid-trash-2-disabled::before { content: "\f267e"; } +.lnid-trash-2-disabled::after { content: "\f267d"; } +.lnid-trash-3::before { content: "\f2684"; } +.lnid-trash-3::after { content: "\f2683"; } +.lnid-trash-3-disabled::before { content: "\f2682"; } +.lnid-trash-3-disabled::after { content: "\f2681"; } +.lnid-trash-4::before { content: "\f2688"; } +.lnid-trash-4::after { content: "\f2687"; } +.lnid-trash-4-disabled::before { content: "\f2686"; } +.lnid-trash-4-disabled::after { content: "\f2685"; } +.lnid-trash-5::before { content: "\f268c"; } +.lnid-trash-5::after { content: "\f268b"; } +.lnid-trash-5-disabled::before { content: "\f268a"; } +.lnid-trash-5-disabled::after { content: "\f2689"; } +.lnid-trash-6::before { content: "\f2690"; } +.lnid-trash-6::after { content: "\f268f"; } +.lnid-trash-6-disabled::before { content: "\f268e"; } +.lnid-trash-6-disabled::after { content: "\f268d"; } +.lnid-trash-7::before { content: "\f2694"; } +.lnid-trash-7::after { content: "\f2693"; } +.lnid-trash-7-disabled::before { content: "\f2692"; } +.lnid-trash-7-disabled::after { content: "\f2691"; } +.lnid-trash-arrow-downward::before { content: "\f2696"; } +.lnid-trash-arrow-downward::after { content: "\f2695"; } +.lnid-trash-arrow-left::before { content: "\f2698"; } +.lnid-trash-arrow-left::after { content: "\f2697"; } +.lnid-trash-arrow-right::before { content: "\f269a"; } +.lnid-trash-arrow-right::after { content: "\f2699"; } +.lnid-trash-arrow-upward::before { content: "\f269c"; } +.lnid-trash-arrow-upward::after { content: "\f269b"; } +.lnid-trash-bitcoin::before { content: "\f269e"; } +.lnid-trash-bitcoin::after { content: "\f269d"; } +.lnid-trash-check::before { content: "\f26a2"; } +.lnid-trash-check::after { content: "\f26a1"; } +.lnid-trash-check-circle::before { content: "\f26a0"; } +.lnid-trash-check-circle::after { content: "\f269f"; } +.lnid-trash-cloud::before { content: "\f26a4"; } +.lnid-trash-cloud::after { content: "\f26a3"; } +.lnid-trash-code::before { content: "\f26a6"; } +.lnid-trash-code::after { content: "\f26a5"; } +.lnid-trash-crypto::before { content: "\f26a8"; } +.lnid-trash-crypto::after { content: "\f26a7"; } +.lnid-trash-database::before { content: "\f26aa"; } +.lnid-trash-database::after { content: "\f26a9"; } +.lnid-trash-disabled::before { content: "\f26ac"; } +.lnid-trash-disabled::after { content: "\f26ab"; } +.lnid-trash-document::before { content: "\f26ae"; } +.lnid-trash-document::after { content: "\f26ad"; } +.lnid-trash-error-circle::before { content: "\f26b0"; } +.lnid-trash-error-circle::after { content: "\f26af"; } +.lnid-trash-gear::before { content: "\f26b2"; } +.lnid-trash-gear::after { content: "\f26b1"; } +.lnid-trash-image::before { content: "\f26b4"; } +.lnid-trash-image::after { content: "\f26b3"; } +.lnid-trash-info-circle::before { content: "\f26b6"; } +.lnid-trash-info-circle::after { content: "\f26b5"; } +.lnid-trash-link::before { content: "\f26b8"; } +.lnid-trash-link::after { content: "\f26b7"; } +.lnid-trash-list::before { content: "\f26ba"; } +.lnid-trash-list::after { content: "\f26b9"; } +.lnid-trash-music::before { content: "\f26bc"; } +.lnid-trash-music::after { content: "\f26bb"; } +.lnid-trash-phone::before { content: "\f26be"; } +.lnid-trash-phone::after { content: "\f26bd"; } +.lnid-trash-play::before { content: "\f26c0"; } +.lnid-trash-play::after { content: "\f26bf"; } +.lnid-trash-plus::before { content: "\f26c4"; } +.lnid-trash-plus::after { content: "\f26c3"; } +.lnid-trash-plus-circle::before { content: "\f26c2"; } +.lnid-trash-plus-circle::after { content: "\f26c1"; } +.lnid-trash-question-mark::before { content: "\f26c6"; } +.lnid-trash-question-mark::after { content: "\f26c5"; } +.lnid-trash-redo::before { content: "\f26c8"; } +.lnid-trash-redo::after { content: "\f26c7"; } +.lnid-trash-refresh-anticlockwise::before { content: "\f26ca"; } +.lnid-trash-refresh-anticlockwise::after { content: "\f26c9"; } +.lnid-trash-refresh-clockwise::before { content: "\f26cc"; } +.lnid-trash-refresh-clockwise::after { content: "\f26cb"; } +.lnid-trash-reload-anticlockwise::before { content: "\f26ce"; } +.lnid-trash-reload-anticlockwise::after { content: "\f26cd"; } +.lnid-trash-reload-clockwise::before { content: "\f26d0"; } +.lnid-trash-reload-clockwise::after { content: "\f26cf"; } +.lnid-trash-search::before { content: "\f26d2"; } +.lnid-trash-search::after { content: "\f26d1"; } +.lnid-trash-server::before { content: "\f26d4"; } +.lnid-trash-server::after { content: "\f26d3"; } +.lnid-trash-shield::before { content: "\f26d6"; } +.lnid-trash-shield::after { content: "\f26d5"; } +.lnid-trash-time::before { content: "\f26d8"; } +.lnid-trash-time::after { content: "\f26d7"; } +.lnid-trash-timer::before { content: "\f26da"; } +.lnid-trash-timer::after { content: "\f26d9"; } +.lnid-trash-undo::before { content: "\f26dc"; } +.lnid-trash-undo::after { content: "\f26db"; } +.lnid-trash-user::before { content: "\f26de"; } +.lnid-trash-user::after { content: "\f26dd"; } +.lnid-trash-vector-points::before { content: "\f26e0"; } +.lnid-trash-vector-points::after { content: "\f26df"; } +.lnid-trash-video::before { content: "\f26e2"; } +.lnid-trash-video::after { content: "\f26e1"; } +.lnid-trash-xmark::before { content: "\f26e6"; } +.lnid-trash-xmark::after { content: "\f26e5"; } +.lnid-trash-xmark-circle::before { content: "\f26e4"; } +.lnid-trash-xmark-circle::after { content: "\f26e3"; } +.lnid-treadmill::before { content: "\f26ea"; } +.lnid-treadmill::after { content: "\f26e9"; } +.lnid-treadmill-ai::before { content: "\f26e8"; } +.lnid-treadmill-ai::after { content: "\f26e7"; } +.lnid-tree-1::before { content: "\f26ec"; } +.lnid-tree-1::after { content: "\f26eb"; } +.lnid-tree-2::before { content: "\f26ee"; } +.lnid-tree-2::after { content: "\f26ed"; } +.lnid-tree-3::before { content: "\f26f0"; } +.lnid-tree-3::after { content: "\f26ef"; } +.lnid-tree-4::before { content: "\f26f2"; } +.lnid-tree-4::after { content: "\f26f1"; } +.lnid-tree-5::before { content: "\f26f4"; } +.lnid-tree-5::after { content: "\f26f3"; } +.lnid-tree-6::before { content: "\f26f6"; } +.lnid-tree-6::after { content: "\f26f5"; } +.lnid-tree-7::before { content: "\f26f8"; } +.lnid-tree-7::after { content: "\f26f7"; } +.lnid-trees-1::before { content: "\f26fe"; } +.lnid-trees-1::after { content: "\f26fd"; } +.lnid-trees-10::before { content: "\f26fa"; } +.lnid-trees-10::after { content: "\f26f9"; } +.lnid-trees-11::before { content: "\f26fc"; } +.lnid-trees-11::after { content: "\f26fb"; } +.lnid-trees-2::before { content: "\f2700"; } +.lnid-trees-2::after { content: "\f26ff"; } +.lnid-trees-3::before { content: "\f2702"; } +.lnid-trees-3::after { content: "\f2701"; } +.lnid-trees-4::before { content: "\f2704"; } +.lnid-trees-4::after { content: "\f2703"; } +.lnid-trees-5::before { content: "\f2706"; } +.lnid-trees-5::after { content: "\f2705"; } +.lnid-trees-6::before { content: "\f2708"; } +.lnid-trees-6::after { content: "\f2707"; } +.lnid-trees-7::before { content: "\f270a"; } +.lnid-trees-7::after { content: "\f2709"; } +.lnid-trees-8::before { content: "\f270c"; } +.lnid-trees-8::after { content: "\f270b"; } +.lnid-trees-9::before { content: "\f270e"; } +.lnid-trees-9::after { content: "\f270d"; } +.lnid-trend-down-1::before { content: "\f2710"; } +.lnid-trend-down-1::after { content: "\f270f"; } +.lnid-trend-down-2::before { content: "\f2712"; } +.lnid-trend-down-2::after { content: "\f2711"; } +.lnid-trend-up-1::before { content: "\f2714"; } +.lnid-trend-up-1::after { content: "\f2713"; } +.lnid-trend-up-2::before { content: "\f2716"; } +.lnid-trend-up-2::after { content: "\f2715"; } +.lnid-trend-up-ai-1::before { content: "\f2718"; } +.lnid-trend-up-ai-1::after { content: "\f2717"; } +.lnid-trend-up-ai-2::before { content: "\f271a"; } +.lnid-trend-up-ai-2::after { content: "\f2719"; } +.lnid-trend-up-ai-3::before { content: "\f271c"; } +.lnid-trend-up-ai-3::after { content: "\f271b"; } +.lnid-trend-up-rechtangle::before { content: "\f271e"; } +.lnid-trend-up-rechtangle::after { content: "\f271d"; } +.lnid-triangle-1::before { content: "\f2720"; } +.lnid-triangle-1::after { content: "\f271f"; } +.lnid-triangle-2::before { content: "\f2722"; } +.lnid-triangle-2::after { content: "\f2721"; } +.lnid-triangle-bolt::before { content: "\f2724"; } +.lnid-triangle-bolt::after { content: "\f2723"; } +.lnid-triangle-xmark::before { content: "\f2726"; } +.lnid-triangle-xmark::after { content: "\f2725"; } +.lnid-triangles-1::before { content: "\f2728"; } +.lnid-triangles-1::after { content: "\f2727"; } +.lnid-triangles-2::before { content: "\f272a"; } +.lnid-triangles-2::after { content: "\f2729"; } +.lnid-triangles-3::before { content: "\f272c"; } +.lnid-triangles-3::after { content: "\f272b"; } +.lnid-trophy-1::before { content: "\f272e"; } +.lnid-trophy-1::after { content: "\f272d"; } +.lnid-trophy-2::before { content: "\f2730"; } +.lnid-trophy-2::after { content: "\f272f"; } +.lnid-trophy-3::before { content: "\f2732"; } +.lnid-trophy-3::after { content: "\f2731"; } +.lnid-trophy-4::before { content: "\f2734"; } +.lnid-trophy-4::after { content: "\f2733"; } +.lnid-trowel-1::before { content: "\f2736"; } +.lnid-trowel-1::after { content: "\f2735"; } +.lnid-trowel-2::before { content: "\f2738"; } +.lnid-trowel-2::after { content: "\f2737"; } +.lnid-trowel-3::before { content: "\f273a"; } +.lnid-trowel-3::after { content: "\f2739"; } +.lnid-truck::before { content: "\f279c"; } +.lnid-truck::after { content: "\f279b"; } +.lnid-truck-construction-1::before { content: "\f273c"; } +.lnid-truck-construction-1::after { content: "\f273b"; } +.lnid-truck-construction-2::before { content: "\f273e"; } +.lnid-truck-construction-2::after { content: "\f273d"; } +.lnid-truck-construction-3::before { content: "\f2740"; } +.lnid-truck-construction-3::after { content: "\f273f"; } +.lnid-truck-construction-4::before { content: "\f2742"; } +.lnid-truck-construction-4::after { content: "\f2741"; } +.lnid-truck-container::before { content: "\f2748"; } +.lnid-truck-container::after { content: "\f2747"; } +.lnid-truck-container-ai::before { content: "\f2744"; } +.lnid-truck-container-ai::after { content: "\f2743"; } +.lnid-truck-container-empty::before { content: "\f2746"; } +.lnid-truck-container-empty::after { content: "\f2745"; } +.lnid-truck-delivery-1::before { content: "\f274a"; } +.lnid-truck-delivery-1::after { content: "\f2749"; } +.lnid-truck-delivery-2::before { content: "\f274e"; } +.lnid-truck-delivery-2::after { content: "\f274d"; } +.lnid-truck-delivery-24::before { content: "\f274c"; } +.lnid-truck-delivery-24::after { content: "\f274b"; } +.lnid-truck-delivery-3::before { content: "\f2750"; } +.lnid-truck-delivery-3::after { content: "\f274f"; } +.lnid-truck-delivery-ai::before { content: "\f2752"; } +.lnid-truck-delivery-ai::after { content: "\f2751"; } +.lnid-truck-delivery-arrow-downward::before { content: "\f2754"; } +.lnid-truck-delivery-arrow-downward::after { content: "\f2753"; } +.lnid-truck-delivery-arrow-right::before { content: "\f2756"; } +.lnid-truck-delivery-arrow-right::after { content: "\f2755"; } +.lnid-truck-delivery-arrow-upward::before { content: "\f2758"; } +.lnid-truck-delivery-arrow-upward::after { content: "\f2757"; } +.lnid-truck-delivery-battery::before { content: "\f275a"; } +.lnid-truck-delivery-battery::after { content: "\f2759"; } +.lnid-truck-delivery-bolt::before { content: "\f275c"; } +.lnid-truck-delivery-bolt::after { content: "\f275b"; } +.lnid-truck-delivery-box::before { content: "\f275e"; } +.lnid-truck-delivery-box::after { content: "\f275d"; } +.lnid-truck-delivery-check-circle::before { content: "\f2760"; } +.lnid-truck-delivery-check-circle::after { content: "\f275f"; } +.lnid-truck-delivery-chip::before { content: "\f2762"; } +.lnid-truck-delivery-chip::after { content: "\f2761"; } +.lnid-truck-delivery-disabled::before { content: "\f2764"; } +.lnid-truck-delivery-disabled::after { content: "\f2763"; } +.lnid-truck-delivery-dollar::before { content: "\f2766"; } +.lnid-truck-delivery-dollar::after { content: "\f2765"; } +.lnid-truck-delivery-error-circle::before { content: "\f2768"; } +.lnid-truck-delivery-error-circle::after { content: "\f2767"; } +.lnid-truck-delivery-fast::before { content: "\f276a"; } +.lnid-truck-delivery-fast::after { content: "\f2769"; } +.lnid-truck-delivery-fire::before { content: "\f276c"; } +.lnid-truck-delivery-fire::after { content: "\f276b"; } +.lnid-truck-delivery-food::before { content: "\f276e"; } +.lnid-truck-delivery-food::after { content: "\f276d"; } +.lnid-truck-delivery-globe::before { content: "\f2770"; } +.lnid-truck-delivery-globe::after { content: "\f276f"; } +.lnid-truck-delivery-info-circle::before { content: "\f2772"; } +.lnid-truck-delivery-info-circle::after { content: "\f2771"; } +.lnid-truck-delivery-leaf::before { content: "\f2774"; } +.lnid-truck-delivery-leaf::after { content: "\f2773"; } +.lnid-truck-delivery-locked::before { content: "\f2776"; } +.lnid-truck-delivery-locked::after { content: "\f2775"; } +.lnid-truck-delivery-map-marker::before { content: "\f2778"; } +.lnid-truck-delivery-map-marker::after { content: "\f2777"; } +.lnid-truck-delivery-money::before { content: "\f277a"; } +.lnid-truck-delivery-money::after { content: "\f2779"; } +.lnid-truck-delivery-percent-circle::before { content: "\f277c"; } +.lnid-truck-delivery-percent-circle::after { content: "\f277b"; } +.lnid-truck-delivery-phone::before { content: "\f277e"; } +.lnid-truck-delivery-phone::after { content: "\f277d"; } +.lnid-truck-delivery-plus-circle::before { content: "\f2780"; } +.lnid-truck-delivery-plus-circle::after { content: "\f277f"; } +.lnid-truck-delivery-recycle::before { content: "\f2782"; } +.lnid-truck-delivery-recycle::after { content: "\f2781"; } +.lnid-truck-delivery-refresh::before { content: "\f2784"; } +.lnid-truck-delivery-refresh::after { content: "\f2783"; } +.lnid-truck-delivery-return::before { content: "\f2786"; } +.lnid-truck-delivery-return::after { content: "\f2785"; } +.lnid-truck-delivery-search::before { content: "\f2788"; } +.lnid-truck-delivery-search::after { content: "\f2787"; } +.lnid-truck-delivery-shield::before { content: "\f278a"; } +.lnid-truck-delivery-shield::after { content: "\f2789"; } +.lnid-truck-delivery-star::before { content: "\f278c"; } +.lnid-truck-delivery-star::after { content: "\f278b"; } +.lnid-truck-delivery-thumbs-down::before { content: "\f278e"; } +.lnid-truck-delivery-thumbs-down::after { content: "\f278d"; } +.lnid-truck-delivery-thumbs-up::before { content: "\f2790"; } +.lnid-truck-delivery-thumbs-up::after { content: "\f278f"; } +.lnid-truck-delivery-time::before { content: "\f2792"; } +.lnid-truck-delivery-time::after { content: "\f2791"; } +.lnid-truck-delivery-xmark-circle::before { content: "\f2794"; } +.lnid-truck-delivery-xmark-circle::after { content: "\f2793"; } +.lnid-truck-dump::before { content: "\f2796"; } +.lnid-truck-dump::after { content: "\f2795"; } +.lnid-truck-oil-1::before { content: "\f2798"; } +.lnid-truck-oil-1::after { content: "\f2797"; } +.lnid-truck-oil-2::before { content: "\f279a"; } +.lnid-truck-oil-2::after { content: "\f2799"; } +.lnid-turn-down-left::before { content: "\f279e"; } +.lnid-turn-down-left::after { content: "\f279d"; } +.lnid-turn-down-right::before { content: "\f27a0"; } +.lnid-turn-down-right::after { content: "\f279f"; } +.lnid-turn-left::before { content: "\f27a6"; } +.lnid-turn-left::after { content: "\f27a5"; } +.lnid-turn-left-down::before { content: "\f27a2"; } +.lnid-turn-left-down::after { content: "\f27a1"; } +.lnid-turn-left-up::before { content: "\f27a4"; } +.lnid-turn-left-up::after { content: "\f27a3"; } +.lnid-turn-right::before { content: "\f27b4"; } +.lnid-turn-right::after { content: "\f27b3"; } +.lnid-turn-right-circle::before { content: "\f27a8"; } +.lnid-turn-right-circle::after { content: "\f27a7"; } +.lnid-turn-right-down::before { content: "\f27aa"; } +.lnid-turn-right-down::after { content: "\f27a9"; } +.lnid-turn-right-hexagon::before { content: "\f27ac"; } +.lnid-turn-right-hexagon::after { content: "\f27ab"; } +.lnid-turn-right-octagon::before { content: "\f27ae"; } +.lnid-turn-right-octagon::after { content: "\f27ad"; } +.lnid-turn-right-square::before { content: "\f27b0"; } +.lnid-turn-right-square::after { content: "\f27af"; } +.lnid-turn-right-up::before { content: "\f27b2"; } +.lnid-turn-right-up::after { content: "\f27b1"; } +.lnid-turtle-1::before { content: "\f27b6"; } +.lnid-turtle-1::after { content: "\f27b5"; } +.lnid-turtle-2::before { content: "\f27b8"; } +.lnid-turtle-2::after { content: "\f27b7"; } +.lnid-tv-4k::before { content: "\f27ba"; } +.lnid-tv-4k::after { content: "\f27b9"; } +.lnid-tv-audio::before { content: "\f27bc"; } +.lnid-tv-audio::after { content: "\f27bb"; } +.lnid-tv-check-circle::before { content: "\f27be"; } +.lnid-tv-check-circle::after { content: "\f27bd"; } +.lnid-tv-crt::before { content: "\f27c0"; } +.lnid-tv-crt::after { content: "\f27bf"; } +.lnid-tv-disabled-1::before { content: "\f27c2"; } +.lnid-tv-disabled-1::after { content: "\f27c1"; } +.lnid-tv-disabled-2::before { content: "\f27c4"; } +.lnid-tv-disabled-2::after { content: "\f27c3"; } +.lnid-tv-error-circle::before { content: "\f27c6"; } +.lnid-tv-error-circle::after { content: "\f27c5"; } +.lnid-tv-gear::before { content: "\f27c8"; } +.lnid-tv-gear::after { content: "\f27c7"; } +.lnid-tv-heart::before { content: "\f27ca"; } +.lnid-tv-heart::after { content: "\f27c9"; } +.lnid-tv-leaf::before { content: "\f27cc"; } +.lnid-tv-leaf::after { content: "\f27cb"; } +.lnid-tv-live::before { content: "\f27ce"; } +.lnid-tv-live::after { content: "\f27cd"; } +.lnid-tv-locked-1::before { content: "\f27d0"; } +.lnid-tv-locked-1::after { content: "\f27cf"; } +.lnid-tv-locked-2::before { content: "\f27d2"; } +.lnid-tv-locked-2::after { content: "\f27d1"; } +.lnid-tv-minus-circle::before { content: "\f27d4"; } +.lnid-tv-minus-circle::after { content: "\f27d3"; } +.lnid-tv-modern::before { content: "\f27d6"; } +.lnid-tv-modern::after { content: "\f27d5"; } +.lnid-tv-moon::before { content: "\f27d8"; } +.lnid-tv-moon::after { content: "\f27d7"; } +.lnid-tv-play::before { content: "\f27da"; } +.lnid-tv-play::after { content: "\f27d9"; } +.lnid-tv-plus-circle::before { content: "\f27dc"; } +.lnid-tv-plus-circle::after { content: "\f27db"; } +.lnid-tv-recycle::before { content: "\f27de"; } +.lnid-tv-recycle::after { content: "\f27dd"; } +.lnid-tv-refresh::before { content: "\f27e0"; } +.lnid-tv-refresh::after { content: "\f27df"; } +.lnid-tv-reload::before { content: "\f27e2"; } +.lnid-tv-reload::after { content: "\f27e1"; } +.lnid-tv-search::before { content: "\f27e4"; } +.lnid-tv-search::after { content: "\f27e3"; } +.lnid-tv-sleep::before { content: "\f27e6"; } +.lnid-tv-sleep::after { content: "\f27e5"; } +.lnid-tv-sound::before { content: "\f27e8"; } +.lnid-tv-sound::after { content: "\f27e7"; } +.lnid-tv-speaker::before { content: "\f27ea"; } +.lnid-tv-speaker::after { content: "\f27e9"; } +.lnid-tv-star::before { content: "\f27ec"; } +.lnid-tv-star::after { content: "\f27eb"; } +.lnid-tv-time::before { content: "\f27ee"; } +.lnid-tv-time::after { content: "\f27ed"; } +.lnid-tv-unlocked::before { content: "\f27f0"; } +.lnid-tv-unlocked::after { content: "\f27ef"; } +.lnid-tv-user::before { content: "\f27f2"; } +.lnid-tv-user::after { content: "\f27f1"; } +.lnid-tv-video::before { content: "\f27f4"; } +.lnid-tv-video::after { content: "\f27f3"; } +.lnid-tv-vr::before { content: "\f27f6"; } +.lnid-tv-vr::after { content: "\f27f5"; } +.lnid-tv-wifi-1::before { content: "\f27f8"; } +.lnid-tv-wifi-1::after { content: "\f27f7"; } +.lnid-tv-wifi-2::before { content: "\f27fa"; } +.lnid-tv-wifi-2::after { content: "\f27f9"; } +.lnid-tweezers::before { content: "\f27fc"; } +.lnid-tweezers::after { content: "\f27fb"; } +.lnid-umbrella-1::before { content: "\f27fe"; } +.lnid-umbrella-1::after { content: "\f27fd"; } +.lnid-umbrella-2::before { content: "\f2800"; } +.lnid-umbrella-2::after { content: "\f27ff"; } +.lnid-umbrella-rain-1::before { content: "\f2802"; } +.lnid-umbrella-rain-1::after { content: "\f2801"; } +.lnid-umbrella-rain-2::before { content: "\f2804"; } +.lnid-umbrella-rain-2::after { content: "\f2803"; } +.lnid-underline::before { content: "\f2806"; } +.lnid-underline::after { content: "\f2805"; } +.lnid-undo::before { content: "\f280a"; } +.lnid-undo::after { content: "\f2809"; } +.lnid-undo-rotated::before { content: "\f2808"; } +.lnid-undo-rotated::after { content: "\f2807"; } +.lnid-union-selection::before { content: "\f280c"; } +.lnid-union-selection::after { content: "\f280b"; } +.lnid-unlink-1-angular-left::before { content: "\f280e"; } +.lnid-unlink-1-angular-left::after { content: "\f280d"; } +.lnid-unlink-1-angular-right::before { content: "\f2810"; } +.lnid-unlink-1-angular-right::after { content: "\f280f"; } +.lnid-unlink-1-horizontal::before { content: "\f2812"; } +.lnid-unlink-1-horizontal::after { content: "\f2811"; } +.lnid-unlink-1-vertical::before { content: "\f2814"; } +.lnid-unlink-1-vertical::after { content: "\f2813"; } +.lnid-unlink-2-angular-eft::before { content: "\f2816"; } +.lnid-unlink-2-angular-eft::after { content: "\f2815"; } +.lnid-unlink-2-angular-right::before { content: "\f2818"; } +.lnid-unlink-2-angular-right::after { content: "\f2817"; } +.lnid-unlink-3-angular-left::before { content: "\f281a"; } +.lnid-unlink-3-angular-left::after { content: "\f2819"; } +.lnid-unlink-3-angular-right::before { content: "\f281c"; } +.lnid-unlink-3-angular-right::after { content: "\f281b"; } +.lnid-unlink-3-horizontal::before { content: "\f281e"; } +.lnid-unlink-3-horizontal::after { content: "\f281d"; } +.lnid-unlink-3-vertical::before { content: "\f2820"; } +.lnid-unlink-3-vertical::after { content: "\f281f"; } +.lnid-unlocked-1::before { content: "\f2822"; } +.lnid-unlocked-1::after { content: "\f2821"; } +.lnid-unlocked-2::before { content: "\f2824"; } +.lnid-unlocked-2::after { content: "\f2823"; } +.lnid-unlocked-3::before { content: "\f2826"; } +.lnid-unlocked-3::after { content: "\f2825"; } +.lnid-upload-1::before { content: "\f282a"; } +.lnid-upload-1::after { content: "\f2829"; } +.lnid-upload-1-disabled::before { content: "\f2828"; } +.lnid-upload-1-disabled::after { content: "\f2827"; } +.lnid-upload-2::before { content: "\f282e"; } +.lnid-upload-2::after { content: "\f282d"; } +.lnid-upload-2-disabled::before { content: "\f282c"; } +.lnid-upload-2-disabled::after { content: "\f282b"; } +.lnid-upload-3::before { content: "\f2832"; } +.lnid-upload-3::after { content: "\f2831"; } +.lnid-upload-3-disabled::before { content: "\f2830"; } +.lnid-upload-3-disabled::after { content: "\f282f"; } +.lnid-upload-4::before { content: "\f2836"; } +.lnid-upload-4::after { content: "\f2835"; } +.lnid-upload-4-disabled::before { content: "\f2834"; } +.lnid-upload-4-disabled::after { content: "\f2833"; } +.lnid-upload-5::before { content: "\f283a"; } +.lnid-upload-5::after { content: "\f2839"; } +.lnid-upload-5-disabled::before { content: "\f2838"; } +.lnid-upload-5-disabled::after { content: "\f2837"; } +.lnid-upload-6::before { content: "\f283e"; } +.lnid-upload-6::after { content: "\f283d"; } +.lnid-upload-6-disabled::before { content: "\f283c"; } +.lnid-upload-6-disabled::after { content: "\f283b"; } +.lnid-upload-7::before { content: "\f2842"; } +.lnid-upload-7::after { content: "\f2841"; } +.lnid-upload-7-disabled::before { content: "\f2840"; } +.lnid-upload-7-disabled::after { content: "\f283f"; } +.lnid-upload-8::before { content: "\f2846"; } +.lnid-upload-8::after { content: "\f2845"; } +.lnid-upload-8-disabled::before { content: "\f2844"; } +.lnid-upload-8-disabled::after { content: "\f2843"; } +.lnid-upload-circle-1::before { content: "\f2848"; } +.lnid-upload-circle-1::after { content: "\f2847"; } +.lnid-upload-circle-2::before { content: "\f284a"; } +.lnid-upload-circle-2::after { content: "\f2849"; } +.lnid-upload-cloud::before { content: "\f284c"; } +.lnid-upload-cloud::after { content: "\f284b"; } +.lnid-upload-half-circle-1::before { content: "\f284e"; } +.lnid-upload-half-circle-1::after { content: "\f284d"; } +.lnid-upload-half-circle-2::before { content: "\f2850"; } +.lnid-upload-half-circle-2::after { content: "\f284f"; } +.lnid-upload-rechtangle::before { content: "\f2852"; } +.lnid-upload-rechtangle::after { content: "\f2851"; } +.lnid-upload-square-1::before { content: "\f2854"; } +.lnid-upload-square-1::after { content: "\f2853"; } +.lnid-upload-square-2::before { content: "\f2856"; } +.lnid-upload-square-2::after { content: "\f2855"; } +.lnid-uploading::before { content: "\f2858"; } +.lnid-uploading::after { content: "\f2857"; } +.lnid-usb::before { content: "\f285c"; } +.lnid-usb::after { content: "\f285b"; } +.lnid-usb-port::before { content: "\f285a"; } +.lnid-usb-port::after { content: "\f2859"; } +.lnid-user-1::before { content: "\f285e"; } +.lnid-user-1::after { content: "\f285d"; } +.lnid-user-2::before { content: "\f2860"; } +.lnid-user-2::after { content: "\f285f"; } +.lnid-user-3::before { content: "\f2862"; } +.lnid-user-3::after { content: "\f2861"; } +.lnid-user-4::before { content: "\f2864"; } +.lnid-user-4::after { content: "\f2863"; } +.lnid-user-ai-1::before { content: "\f2866"; } +.lnid-user-ai-1::after { content: "\f2865"; } +.lnid-user-ai-2::before { content: "\f2868"; } +.lnid-user-ai-2::after { content: "\f2867"; } +.lnid-user-ai-3::before { content: "\f286a"; } +.lnid-user-ai-3::after { content: "\f2869"; } +.lnid-user-ai-4::before { content: "\f286c"; } +.lnid-user-ai-4::after { content: "\f286b"; } +.lnid-user-ai-5::before { content: "\f286e"; } +.lnid-user-ai-5::after { content: "\f286d"; } +.lnid-user-ai-6::before { content: "\f2870"; } +.lnid-user-ai-6::after { content: "\f286f"; } +.lnid-user-aids::before { content: "\f2872"; } +.lnid-user-aids::after { content: "\f2871"; } +.lnid-user-arrow-both-direction-horizontal::before { content: "\f2874"; } +.lnid-user-arrow-both-direction-horizontal::after { content: "\f2873"; } +.lnid-user-arrow-both-direction-vertical::before { content: "\f2876"; } +.lnid-user-arrow-both-direction-vertical::after { content: "\f2875"; } +.lnid-user-arrow-center-pointed::before { content: "\f2878"; } +.lnid-user-arrow-center-pointed::after { content: "\f2877"; } +.lnid-user-arrow-top-right::before { content: "\f287a"; } +.lnid-user-arrow-top-right::after { content: "\f2879"; } +.lnid-user-bulb::before { content: "\f287e"; } +.lnid-user-bulb::after { content: "\f287d"; } +.lnid-user-bulb-idea::before { content: "\f287c"; } +.lnid-user-bulb-idea::after { content: "\f287b"; } +.lnid-user-check::before { content: "\f2882"; } +.lnid-user-check::after { content: "\f2881"; } +.lnid-user-check-circle::before { content: "\f2880"; } +.lnid-user-check-circle::after { content: "\f287f"; } +.lnid-user-circle-1::before { content: "\f2884"; } +.lnid-user-circle-1::after { content: "\f2883"; } +.lnid-user-circle-2::before { content: "\f2886"; } +.lnid-user-circle-2::after { content: "\f2885"; } +.lnid-user-code-1::before { content: "\f2888"; } +.lnid-user-code-1::after { content: "\f2887"; } +.lnid-user-code-2::before { content: "\f288a"; } +.lnid-user-code-2::after { content: "\f2889"; } +.lnid-user-disabled::before { content: "\f288c"; } +.lnid-user-disabled::after { content: "\f288b"; } +.lnid-user-dollar::before { content: "\f288e"; } +.lnid-user-dollar::after { content: "\f288d"; } +.lnid-user-downward::before { content: "\f2890"; } +.lnid-user-downward::after { content: "\f288f"; } +.lnid-user-gear::before { content: "\f2892"; } +.lnid-user-gear::after { content: "\f2891"; } +.lnid-user-globe-1::before { content: "\f2894"; } +.lnid-user-globe-1::after { content: "\f2893"; } +.lnid-user-globe-2::before { content: "\f2896"; } +.lnid-user-globe-2::after { content: "\f2895"; } +.lnid-user-globe-3::before { content: "\f2898"; } +.lnid-user-globe-3::after { content: "\f2897"; } +.lnid-user-heart::before { content: "\f289a"; } +.lnid-user-heart::after { content: "\f2899"; } +.lnid-user-info-circle::before { content: "\f289c"; } +.lnid-user-info-circle::after { content: "\f289b"; } +.lnid-user-key::before { content: "\f289e"; } +.lnid-user-key::after { content: "\f289d"; } +.lnid-user-link::before { content: "\f28a0"; } +.lnid-user-link::after { content: "\f289f"; } +.lnid-user-lokced::before { content: "\f28a2"; } +.lnid-user-lokced::after { content: "\f28a1"; } +.lnid-user-map::before { content: "\f2920"; } +.lnid-user-map::after { content: "\f291f"; } +.lnid-user-map-ai::before { content: "\f28a4"; } +.lnid-user-map-ai::after { content: "\f28a3"; } +.lnid-user-map-arrow-downward::before { content: "\f28a6"; } +.lnid-user-map-arrow-downward::after { content: "\f28a5"; } +.lnid-user-map-arrow-left::before { content: "\f28a8"; } +.lnid-user-map-arrow-left::after { content: "\f28a7"; } +.lnid-user-map-arrow-right::before { content: "\f28aa"; } +.lnid-user-map-arrow-right::after { content: "\f28a9"; } +.lnid-user-map-arrow-upward::before { content: "\f28ac"; } +.lnid-user-map-arrow-upward::after { content: "\f28ab"; } +.lnid-user-map-badge::before { content: "\f28ae"; } +.lnid-user-map-badge::after { content: "\f28ad"; } +.lnid-user-map-beat::before { content: "\f28b0"; } +.lnid-user-map-beat::after { content: "\f28af"; } +.lnid-user-map-bitcoin::before { content: "\f28b2"; } +.lnid-user-map-bitcoin::after { content: "\f28b1"; } +.lnid-user-map-bolt::before { content: "\f28b4"; } +.lnid-user-map-bolt::after { content: "\f28b3"; } +.lnid-user-map-bookmark::before { content: "\f28b6"; } +.lnid-user-map-bookmark::after { content: "\f28b5"; } +.lnid-user-map-bulb::before { content: "\f28b8"; } +.lnid-user-map-bulb::after { content: "\f28b7"; } +.lnid-user-map-check-circle::before { content: "\f28ba"; } +.lnid-user-map-check-circle::after { content: "\f28b9"; } +.lnid-user-map-chip::before { content: "\f28bc"; } +.lnid-user-map-chip::after { content: "\f28bb"; } +.lnid-user-map-cloud::before { content: "\f28be"; } +.lnid-user-map-cloud::after { content: "\f28bd"; } +.lnid-user-map-code::before { content: "\f28c0"; } +.lnid-user-map-code::after { content: "\f28bf"; } +.lnid-user-map-crypto::before { content: "\f28c2"; } +.lnid-user-map-crypto::after { content: "\f28c1"; } +.lnid-user-map-disabled-1::before { content: "\f28c4"; } +.lnid-user-map-disabled-1::after { content: "\f28c3"; } +.lnid-user-map-disabled-2::before { content: "\f28c6"; } +.lnid-user-map-disabled-2::after { content: "\f28c5"; } +.lnid-user-map-dollar::before { content: "\f28c8"; } +.lnid-user-map-dollar::after { content: "\f28c7"; } +.lnid-user-map-error-circle::before { content: "\f28ca"; } +.lnid-user-map-error-circle::after { content: "\f28c9"; } +.lnid-user-map-eye::before { content: "\f28cc"; } +.lnid-user-map-eye::after { content: "\f28cb"; } +.lnid-user-map-fire::before { content: "\f28ce"; } +.lnid-user-map-fire::after { content: "\f28cd"; } +.lnid-user-map-gear::before { content: "\f28d0"; } +.lnid-user-map-gear::after { content: "\f28cf"; } +.lnid-user-map-heart::before { content: "\f28d4"; } +.lnid-user-map-heart::after { content: "\f28d3"; } +.lnid-user-map-heart-circle::before { content: "\f28d2"; } +.lnid-user-map-heart-circle::after { content: "\f28d1"; } +.lnid-user-map-image::before { content: "\f28d6"; } +.lnid-user-map-image::after { content: "\f28d5"; } +.lnid-user-map-incognito::before { content: "\f28d8"; } +.lnid-user-map-incognito::after { content: "\f28d7"; } +.lnid-user-map-info-circle::before { content: "\f28da"; } +.lnid-user-map-info-circle::after { content: "\f28d9"; } +.lnid-user-map-leaf::before { content: "\f28dc"; } +.lnid-user-map-leaf::after { content: "\f28db"; } +.lnid-user-map-link::before { content: "\f28de"; } +.lnid-user-map-link::after { content: "\f28dd"; } +.lnid-user-map-location::before { content: "\f28e0"; } +.lnid-user-map-location::after { content: "\f28df"; } +.lnid-user-map-locked::before { content: "\f28e2"; } +.lnid-user-map-locked::after { content: "\f28e1"; } +.lnid-user-map-map-marker::before { content: "\f28e4"; } +.lnid-user-map-map-marker::after { content: "\f28e3"; } +.lnid-user-map-minus-circle::before { content: "\f28e6"; } +.lnid-user-map-minus-circle::after { content: "\f28e5"; } +.lnid-user-map-moon::before { content: "\f28e8"; } +.lnid-user-map-moon::after { content: "\f28e7"; } +.lnid-user-map-paperclip::before { content: "\f28ea"; } +.lnid-user-map-paperclip::after { content: "\f28e9"; } +.lnid-user-map-percent::before { content: "\f28ec"; } +.lnid-user-map-percent::after { content: "\f28eb"; } +.lnid-user-map-phone::before { content: "\f28ee"; } +.lnid-user-map-phone::after { content: "\f28ed"; } +.lnid-user-map-pie-chart::before { content: "\f28f0"; } +.lnid-user-map-pie-chart::after { content: "\f28ef"; } +.lnid-user-map-pin::before { content: "\f28f2"; } +.lnid-user-map-pin::after { content: "\f28f1"; } +.lnid-user-map-plus-circle::before { content: "\f28f4"; } +.lnid-user-map-plus-circle::after { content: "\f28f3"; } +.lnid-user-map-question-mark::before { content: "\f28f6"; } +.lnid-user-map-question-mark::after { content: "\f28f5"; } +.lnid-user-map-refresh::before { content: "\f28f8"; } +.lnid-user-map-refresh::after { content: "\f28f7"; } +.lnid-user-map-reload::before { content: "\f28fa"; } +.lnid-user-map-reload::after { content: "\f28f9"; } +.lnid-user-map-search::before { content: "\f28fc"; } +.lnid-user-map-search::after { content: "\f28fb"; } +.lnid-user-map-share-nodes::before { content: "\f28fe"; } +.lnid-user-map-share-nodes::after { content: "\f28fd"; } +.lnid-user-map-shield::before { content: "\f2900"; } +.lnid-user-map-shield::after { content: "\f28ff"; } +.lnid-user-map-sound::before { content: "\f2902"; } +.lnid-user-map-sound::after { content: "\f2901"; } +.lnid-user-map-star::before { content: "\f2904"; } +.lnid-user-map-star::after { content: "\f2903"; } +.lnid-user-map-storage::before { content: "\f2906"; } +.lnid-user-map-storage::after { content: "\f2905"; } +.lnid-user-map-sun::before { content: "\f2908"; } +.lnid-user-map-sun::after { content: "\f2907"; } +.lnid-user-map-thumbs-down::before { content: "\f290a"; } +.lnid-user-map-thumbs-down::after { content: "\f2909"; } +.lnid-user-map-thumbs-up::before { content: "\f290c"; } +.lnid-user-map-thumbs-up::after { content: "\f290b"; } +.lnid-user-map-time::before { content: "\f290e"; } +.lnid-user-map-time::after { content: "\f290d"; } +.lnid-user-map-timer::before { content: "\f2910"; } +.lnid-user-map-timer::after { content: "\f290f"; } +.lnid-user-map-trash::before { content: "\f2912"; } +.lnid-user-map-trash::after { content: "\f2911"; } +.lnid-user-map-turn-left::before { content: "\f2914"; } +.lnid-user-map-turn-left::after { content: "\f2913"; } +.lnid-user-map-turn-right::before { content: "\f2916"; } +.lnid-user-map-turn-right::after { content: "\f2915"; } +.lnid-user-map-unlocked::before { content: "\f2918"; } +.lnid-user-map-unlocked::after { content: "\f2917"; } +.lnid-user-map-vr::before { content: "\f291a"; } +.lnid-user-map-vr::after { content: "\f2919"; } +.lnid-user-map-wifi::before { content: "\f291c"; } +.lnid-user-map-wifi::after { content: "\f291b"; } +.lnid-user-map-xmark-circle::before { content: "\f291e"; } +.lnid-user-map-xmark-circle::after { content: "\f291d"; } +.lnid-user-minus-circle::before { content: "\f2922"; } +.lnid-user-minus-circle::after { content: "\f2921"; } +.lnid-user-multiple-1::before { content: "\f2924"; } +.lnid-user-multiple-1::after { content: "\f2923"; } +.lnid-user-multiple-2::before { content: "\f2926"; } +.lnid-user-multiple-2::after { content: "\f2925"; } +.lnid-user-multiple-3::before { content: "\f2928"; } +.lnid-user-multiple-3::after { content: "\f2927"; } +.lnid-user-multiple-4::before { content: "\f292a"; } +.lnid-user-multiple-4::after { content: "\f2929"; } +.lnid-user-pencil::before { content: "\f292c"; } +.lnid-user-pencil::after { content: "\f292b"; } +.lnid-user-plus::before { content: "\f2930"; } +.lnid-user-plus::after { content: "\f292f"; } +.lnid-user-plus-circle::before { content: "\f292e"; } +.lnid-user-plus-circle::after { content: "\f292d"; } +.lnid-user-question-mark::before { content: "\f2932"; } +.lnid-user-question-mark::after { content: "\f2931"; } +.lnid-user-refresh::before { content: "\f2934"; } +.lnid-user-refresh::after { content: "\f2933"; } +.lnid-user-roadside::before { content: "\f2936"; } +.lnid-user-roadside::after { content: "\f2935"; } +.lnid-user-search::before { content: "\f2938"; } +.lnid-user-search::after { content: "\f2937"; } +.lnid-user-shield::before { content: "\f293a"; } +.lnid-user-shield::after { content: "\f2939"; } +.lnid-user-star::before { content: "\f293c"; } +.lnid-user-star::after { content: "\f293b"; } +.lnid-user-street-view::before { content: "\f293e"; } +.lnid-user-street-view::after { content: "\f293d"; } +.lnid-user-tie::before { content: "\f2942"; } +.lnid-user-tie::after { content: "\f2941"; } +.lnid-user-tie-ai::before { content: "\f2940"; } +.lnid-user-tie-ai::after { content: "\f293f"; } +.lnid-user-time::before { content: "\f2944"; } +.lnid-user-time::after { content: "\f2943"; } +.lnid-user-xmark-circle::before { content: "\f2946"; } +.lnid-user-xmark-circle::after { content: "\f2945"; } +.lnid-users::before { content: "\f2950"; } +.lnid-users::after { content: "\f294f"; } +.lnid-users-check::before { content: "\f2948"; } +.lnid-users-check::after { content: "\f2947"; } +.lnid-users-minus-circle::before { content: "\f294a"; } +.lnid-users-minus-circle::after { content: "\f2949"; } +.lnid-users-plus::before { content: "\f294c"; } +.lnid-users-plus::after { content: "\f294b"; } +.lnid-users-xmark::before { content: "\f294e"; } +.lnid-users-xmark::after { content: "\f294d"; } +.lnid-uterus::before { content: "\f2952"; } +.lnid-uterus::after { content: "\f2951"; } +.lnid-vaccine::before { content: "\f2954"; } +.lnid-vaccine::after { content: "\f2953"; } +.lnid-vault-1::before { content: "\f2956"; } +.lnid-vault-1::after { content: "\f2955"; } +.lnid-vault-2::before { content: "\f2958"; } +.lnid-vault-2::after { content: "\f2957"; } +.lnid-vault-3::before { content: "\f295a"; } +.lnid-vault-3::after { content: "\f2959"; } +.lnid-vault-4::before { content: "\f295c"; } +.lnid-vault-4::after { content: "\f295b"; } +.lnid-vault-5::before { content: "\f295e"; } +.lnid-vault-5::after { content: "\f295d"; } +.lnid-vector-corners::before { content: "\f2960"; } +.lnid-vector-corners::after { content: "\f295f"; } +.lnid-vector-nodes-1::before { content: "\f2962"; } +.lnid-vector-nodes-1::after { content: "\f2961"; } +.lnid-vector-nodes-2::before { content: "\f2964"; } +.lnid-vector-nodes-2::after { content: "\f2963"; } +.lnid-vector-nodes-3::before { content: "\f2966"; } +.lnid-vector-nodes-3::after { content: "\f2965"; } +.lnid-vector-nodes-4::before { content: "\f2968"; } +.lnid-vector-nodes-4::after { content: "\f2967"; } +.lnid-vector-nodes-5::before { content: "\f296a"; } +.lnid-vector-nodes-5::after { content: "\f2969"; } +.lnid-vector-nodes-6::before { content: "\f296c"; } +.lnid-vector-nodes-6::after { content: "\f296b"; } +.lnid-vector-nodes-7::before { content: "\f296e"; } +.lnid-vector-nodes-7::after { content: "\f296d"; } +.lnid-vector-nodes-8::before { content: "\f2970"; } +.lnid-vector-nodes-8::after { content: "\f296f"; } +.lnid-video::before { content: "\f298a"; } +.lnid-video::after { content: "\f2989"; } +.lnid-video-ai::before { content: "\f297a"; } +.lnid-video-ai::after { content: "\f2979"; } +.lnid-video-ai-1::before { content: "\f2972"; } +.lnid-video-ai-1::after { content: "\f2971"; } +.lnid-video-ai-2::before { content: "\f2974"; } +.lnid-video-ai-2::after { content: "\f2973"; } +.lnid-video-ai-3::before { content: "\f2976"; } +.lnid-video-ai-3::after { content: "\f2975"; } +.lnid-video-ai-4::before { content: "\f2978"; } +.lnid-video-ai-4::after { content: "\f2977"; } +.lnid-video-call-chat::before { content: "\f297c"; } +.lnid-video-call-chat::after { content: "\f297b"; } +.lnid-video-call-comment::before { content: "\f297e"; } +.lnid-video-call-comment::after { content: "\f297d"; } +.lnid-video-call-horizontal::before { content: "\f2980"; } +.lnid-video-call-horizontal::after { content: "\f297f"; } +.lnid-video-call-vertical::before { content: "\f2982"; } +.lnid-video-call-vertical::after { content: "\f2981"; } +.lnid-video-camera-heart::before { content: "\f2984"; } +.lnid-video-camera-heart::after { content: "\f2983"; } +.lnid-video-play::before { content: "\f2986"; } +.lnid-video-play::after { content: "\f2985"; } +.lnid-video-playback::before { content: "\f2988"; } +.lnid-video-playback::after { content: "\f2987"; } +.lnid-virus::before { content: "\f298c"; } +.lnid-virus::after { content: "\f298b"; } +.lnid-volume-1::before { content: "\f298e"; } +.lnid-volume-1::after { content: "\f298d"; } +.lnid-volume-2::before { content: "\f2990"; } +.lnid-volume-2::after { content: "\f298f"; } +.lnid-volume-high::before { content: "\f2992"; } +.lnid-volume-high::after { content: "\f2991"; } +.lnid-volume-low::before { content: "\f2994"; } +.lnid-volume-low::after { content: "\f2993"; } +.lnid-volume-mute::before { content: "\f2996"; } +.lnid-volume-mute::after { content: "\f2995"; } +.lnid-volume-off::before { content: "\f2997"; } +.lnid-vr-1::before { content: "\f299d"; } +.lnid-vr-1::after { content: "\f299c"; } +.lnid-vr-1-disabled-1::before { content: "\f2999"; } +.lnid-vr-1-disabled-1::after { content: "\f2998"; } +.lnid-vr-1-disabled-2::before { content: "\f299b"; } +.lnid-vr-1-disabled-2::after { content: "\f299a"; } +.lnid-vr-3-dot::before { content: "\f299f"; } +.lnid-vr-3-dot::after { content: "\f299e"; } +.lnid-vr-4k::before { content: "\f29a1"; } +.lnid-vr-4k::after { content: "\f29a0"; } +.lnid-vr-ai::before { content: "\f29a3"; } +.lnid-vr-ai::after { content: "\f29a2"; } +.lnid-vr-audio::before { content: "\f29a5"; } +.lnid-vr-audio::after { content: "\f29a4"; } +.lnid-vr-bolt::before { content: "\f29a7"; } +.lnid-vr-bolt::after { content: "\f29a6"; } +.lnid-vr-bug::before { content: "\f29a9"; } +.lnid-vr-bug::after { content: "\f29a8"; } +.lnid-vr-cardboard::before { content: "\f29ab"; } +.lnid-vr-cardboard::after { content: "\f29aa"; } +.lnid-vr-chat::before { content: "\f29ad"; } +.lnid-vr-chat::after { content: "\f29ac"; } +.lnid-vr-check-circle::before { content: "\f29af"; } +.lnid-vr-check-circle::after { content: "\f29ae"; } +.lnid-vr-chip::before { content: "\f29b1"; } +.lnid-vr-chip::after { content: "\f29b0"; } +.lnid-vr-cloud::before { content: "\f29b3"; } +.lnid-vr-cloud::after { content: "\f29b2"; } +.lnid-vr-code::before { content: "\f29b5"; } +.lnid-vr-code::after { content: "\f29b4"; } +.lnid-vr-error-circle::before { content: "\f29b7"; } +.lnid-vr-error-circle::after { content: "\f29b6"; } +.lnid-vr-gear::before { content: "\f29b9"; } +.lnid-vr-gear::after { content: "\f29b8"; } +.lnid-vr-head-front::before { content: "\f29bb"; } +.lnid-vr-head-front::after { content: "\f29ba"; } +.lnid-vr-head-side::before { content: "\f29bd"; } +.lnid-vr-head-side::after { content: "\f29bc"; } +.lnid-vr-heart::before { content: "\f29bf"; } +.lnid-vr-heart::after { content: "\f29be"; } +.lnid-vr-image::before { content: "\f29c1"; } +.lnid-vr-image::after { content: "\f29c0"; } +.lnid-vr-live::before { content: "\f29c3"; } +.lnid-vr-live::after { content: "\f29c2"; } +.lnid-vr-locked::before { content: "\f29c5"; } +.lnid-vr-locked::after { content: "\f29c4"; } +.lnid-vr-modern-1::before { content: "\f29c9"; } +.lnid-vr-modern-1::after { content: "\f29c8"; } +.lnid-vr-modern-1-disabled::before { content: "\f29c7"; } +.lnid-vr-modern-1-disabled::after { content: "\f29c6"; } +.lnid-vr-modern-2::before { content: "\f29cd"; } +.lnid-vr-modern-2::after { content: "\f29cc"; } +.lnid-vr-modern-2-disabled::before { content: "\f29cb"; } +.lnid-vr-modern-2-disabled::after { content: "\f29ca"; } +.lnid-vr-modern-3::before { content: "\f29d1"; } +.lnid-vr-modern-3::after { content: "\f29d0"; } +.lnid-vr-modern-3-disabled::before { content: "\f29cf"; } +.lnid-vr-modern-3-disabled::after { content: "\f29ce"; } +.lnid-vr-modern-wireless::before { content: "\f29d5"; } +.lnid-vr-modern-wireless::after { content: "\f29d4"; } +.lnid-vr-modern-wireless-disabled::before { content: "\f29d3"; } +.lnid-vr-modern-wireless-disabled::after { content: "\f29d2"; } +.lnid-vr-phone::before { content: "\f29d7"; } +.lnid-vr-phone::after { content: "\f29d6"; } +.lnid-vr-play::before { content: "\f29d9"; } +.lnid-vr-play::after { content: "\f29d8"; } +.lnid-vr-plus-circle::before { content: "\f29db"; } +.lnid-vr-plus-circle::after { content: "\f29da"; } +.lnid-vr-refresh::before { content: "\f29dd"; } +.lnid-vr-refresh::after { content: "\f29dc"; } +.lnid-vr-shield::before { content: "\f29df"; } +.lnid-vr-shield::after { content: "\f29de"; } +.lnid-vr-speaker::before { content: "\f29e1"; } +.lnid-vr-speaker::after { content: "\f29e0"; } +.lnid-vr-star::before { content: "\f29e3"; } +.lnid-vr-star::after { content: "\f29e2"; } +.lnid-vr-unlocked::before { content: "\f29e5"; } +.lnid-vr-unlocked::after { content: "\f29e4"; } +.lnid-vr-video::before { content: "\f29e7"; } +.lnid-vr-video::after { content: "\f29e6"; } +.lnid-vr-vision-pro::before { content: "\f29eb"; } +.lnid-vr-vision-pro::after { content: "\f29ea"; } +.lnid-vr-vision-pro-disabled::before { content: "\f29e9"; } +.lnid-vr-vision-pro-disabled::after { content: "\f29e8"; } +.lnid-vr-wifi-1::before { content: "\f29ed"; } +.lnid-vr-wifi-1::after { content: "\f29ec"; } +.lnid-vr-wifi-2::before { content: "\f29ef"; } +.lnid-vr-wifi-2::after { content: "\f29ee"; } +.lnid-vr-xmark-circle::before { content: "\f29f1"; } +.lnid-vr-xmark-circle::after { content: "\f29f0"; } +.lnid-waiter::before { content: "\f29f3"; } +.lnid-waiter::after { content: "\f29f2"; } +.lnid-walker::before { content: "\f29f5"; } +.lnid-walker::after { content: "\f29f4"; } +.lnid-walkie-talkie-1::before { content: "\f29f7"; } +.lnid-walkie-talkie-1::after { content: "\f29f6"; } +.lnid-walkie-talkie-2::before { content: "\f29f9"; } +.lnid-walkie-talkie-2::after { content: "\f29f8"; } +.lnid-wallet-1::before { content: "\f29fd"; } +.lnid-wallet-1::after { content: "\f29fc"; } +.lnid-wallet-1-dollar::before { content: "\f29fb"; } +.lnid-wallet-1-dollar::after { content: "\f29fa"; } +.lnid-wallet-2::before { content: "\f29ff"; } +.lnid-wallet-2::after { content: "\f29fe"; } +.lnid-wallet-3::before { content: "\f2a01"; } +.lnid-wallet-3::after { content: "\f2a00"; } +.lnid-wallet-4::before { content: "\f2a03"; } +.lnid-wallet-4::after { content: "\f2a02"; } +.lnid-wallet-ai::before { content: "\f2a05"; } +.lnid-wallet-ai::after { content: "\f2a04"; } +.lnid-warm-up::before { content: "\f2a07"; } +.lnid-warm-up::after { content: "\f2a06"; } +.lnid-watch-aids::before { content: "\f2a09"; } +.lnid-watch-aids::after { content: "\f2a08"; } +.lnid-watch-apps::before { content: "\f2a0b"; } +.lnid-watch-apps::after { content: "\f2a0a"; } +.lnid-watch-beat-1::before { content: "\f2a0d"; } +.lnid-watch-beat-1::after { content: "\f2a0c"; } +.lnid-watch-beat-2::before { content: "\f2a0f"; } +.lnid-watch-beat-2::after { content: "\f2a0e"; } +.lnid-watch-check::before { content: "\f2a11"; } +.lnid-watch-check::after { content: "\f2a10"; } +.lnid-watch-disabled::before { content: "\f2a13"; } +.lnid-watch-disabled::after { content: "\f2a12"; } +.lnid-watch-fire::before { content: "\f2a15"; } +.lnid-watch-fire::after { content: "\f2a14"; } +.lnid-watch-gear::before { content: "\f2a17"; } +.lnid-watch-gear::after { content: "\f2a16"; } +.lnid-watch-heart-1::before { content: "\f2a19"; } +.lnid-watch-heart-1::after { content: "\f2a18"; } +.lnid-watch-heart-2::before { content: "\f2a1b"; } +.lnid-watch-heart-2::after { content: "\f2a1a"; } +.lnid-watch-leaf::before { content: "\f2a1d"; } +.lnid-watch-leaf::after { content: "\f2a1c"; } +.lnid-watch-locked::before { content: "\f2a1f"; } +.lnid-watch-locked::after { content: "\f2a1e"; } +.lnid-watch-minus::before { content: "\f2a21"; } +.lnid-watch-minus::after { content: "\f2a20"; } +.lnid-watch-moon::before { content: "\f2a23"; } +.lnid-watch-moon::after { content: "\f2a22"; } +.lnid-watch-number-10::before { content: "\f2a25"; } +.lnid-watch-number-10::after { content: "\f2a24"; } +.lnid-watch-number-20::before { content: "\f2a27"; } +.lnid-watch-number-20::after { content: "\f2a26"; } +.lnid-watch-number-50::before { content: "\f2a29"; } +.lnid-watch-number-50::after { content: "\f2a28"; } +.lnid-watch-pencil::before { content: "\f2a2b"; } +.lnid-watch-pencil::after { content: "\f2a2a"; } +.lnid-watch-play::before { content: "\f2a2d"; } +.lnid-watch-play::after { content: "\f2a2c"; } +.lnid-watch-plus::before { content: "\f2a2f"; } +.lnid-watch-plus::after { content: "\f2a2e"; } +.lnid-watch-reload::before { content: "\f2a31"; } +.lnid-watch-reload::after { content: "\f2a30"; } +.lnid-watch-user::before { content: "\f2a33"; } +.lnid-watch-user::after { content: "\f2a32"; } +.lnid-watch-wifi::before { content: "\f2a35"; } +.lnid-watch-wifi::after { content: "\f2a34"; } +.lnid-watch-xmark::before { content: "\f2a37"; } +.lnid-watch-xmark::after { content: "\f2a36"; } +.lnid-water-bottle::before { content: "\f2a39"; } +.lnid-water-bottle::after { content: "\f2a38"; } +.lnid-water-decrease::before { content: "\f2a3b"; } +.lnid-water-decrease::after { content: "\f2a3a"; } +.lnid-water-drop-1::before { content: "\f2a3d"; } +.lnid-water-drop-1::after { content: "\f2a3c"; } +.lnid-water-drop-2::before { content: "\f2a3f"; } +.lnid-water-drop-2::after { content: "\f2a3e"; } +.lnid-water-drop-ai::before { content: "\f2a41"; } +.lnid-water-drop-ai::after { content: "\f2a40"; } +.lnid-water-drops-1::before { content: "\f2a43"; } +.lnid-water-drops-1::after { content: "\f2a42"; } +.lnid-water-drops-2::before { content: "\f2a45"; } +.lnid-water-drops-2::after { content: "\f2a44"; } +.lnid-water-increase::before { content: "\f2a47"; } +.lnid-water-increase::after { content: "\f2a46"; } +.lnid-watering-can::before { content: "\f2a49"; } +.lnid-watering-can::after { content: "\f2a48"; } +.lnid-watermelon-slice::before { content: "\f2a4b"; } +.lnid-watermelon-slice::after { content: "\f2a4a"; } +.lnid-waveform-lines::before { content: "\f2a4d"; } +.lnid-waveform-lines::after { content: "\f2a4c"; } +.lnid-weathercock::before { content: "\f2a4f"; } +.lnid-weathercock::after { content: "\f2a4e"; } +.lnid-webcam-1::before { content: "\f2a51"; } +.lnid-webcam-1::after { content: "\f2a50"; } +.lnid-webcam-2::before { content: "\f2a53"; } +.lnid-webcam-2::after { content: "\f2a52"; } +.lnid-webcam-3::before { content: "\f2a55"; } +.lnid-webcam-3::after { content: "\f2a54"; } +.lnid-webcam-ai::before { content: "\f2a57"; } +.lnid-webcam-ai::after { content: "\f2a56"; } +.lnid-webcam-check-circle::before { content: "\f2a59"; } +.lnid-webcam-check-circle::after { content: "\f2a58"; } +.lnid-webcam-disabled::before { content: "\f2a5f"; } +.lnid-webcam-disabled::after { content: "\f2a5e"; } +.lnid-webcam-disabled-1::before { content: "\f2a5b"; } +.lnid-webcam-disabled-1::after { content: "\f2a5a"; } +.lnid-webcam-disabled-2::before { content: "\f2a5d"; } +.lnid-webcam-disabled-2::after { content: "\f2a5c"; } +.lnid-webcam-shield::before { content: "\f2a61"; } +.lnid-webcam-shield::after { content: "\f2a60"; } +.lnid-wedding-heart::before { content: "\f2a63"; } +.lnid-wedding-heart::after { content: "\f2a62"; } +.lnid-weight-lifting::before { content: "\f2a65"; } +.lnid-weight-lifting::after { content: "\f2a64"; } +.lnid-weight-machine-1::before { content: "\f2a67"; } +.lnid-weight-machine-1::after { content: "\f2a66"; } +.lnid-weight-machine-2::before { content: "\f2a69"; } +.lnid-weight-machine-2::after { content: "\f2a68"; } +.lnid-weight-machine-3::before { content: "\f2a6b"; } +.lnid-weight-machine-3::after { content: "\f2a6a"; } +.lnid-weight-machine-4::before { content: "\f2a6d"; } +.lnid-weight-machine-4::after { content: "\f2a6c"; } +.lnid-well::before { content: "\f2a6f"; } +.lnid-well::after { content: "\f2a6e"; } +.lnid-whale::before { content: "\f2a71"; } +.lnid-whale::after { content: "\f2a70"; } +.lnid-wheat::before { content: "\f2a73"; } +.lnid-wheat::after { content: "\f2a72"; } +.lnid-wheelbarrow-empty::before { content: "\f2a75"; } +.lnid-wheelbarrow-empty::after { content: "\f2a74"; } +.lnid-wheelbarrow-filled::before { content: "\f2a77"; } +.lnid-wheelbarrow-filled::after { content: "\f2a76"; } +.lnid-wheelchair-1::before { content: "\f2a79"; } +.lnid-wheelchair-1::after { content: "\f2a78"; } +.lnid-wheelchair-2::before { content: "\f2a7b"; } +.lnid-wheelchair-2::after { content: "\f2a7a"; } +.lnid-wheelchair-3::before { content: "\f2a7d"; } +.lnid-wheelchair-3::after { content: "\f2a7c"; } +.lnid-wheelchair-ai-1::before { content: "\f2a7f"; } +.lnid-wheelchair-ai-1::after { content: "\f2a7e"; } +.lnid-wheelchair-ai-2::before { content: "\f2a81"; } +.lnid-wheelchair-ai-2::after { content: "\f2a80"; } +.lnid-whistle::before { content: "\f2a83"; } +.lnid-whistle::after { content: "\f2a82"; } +.lnid-wifi::before { content: "\f2a91"; } +.lnid-wifi::after { content: "\f2a90"; } +.lnid-wifi-ai::before { content: "\f2a85"; } +.lnid-wifi-ai::after { content: "\f2a84"; } +.lnid-wifi-disabled::before { content: "\f2a87"; } +.lnid-wifi-disabled::after { content: "\f2a86"; } +.lnid-wifi-error::before { content: "\f2a89"; } +.lnid-wifi-error::after { content: "\f2a88"; } +.lnid-wifi-fair::before { content: "\f2a8b"; } +.lnid-wifi-fair::after { content: "\f2a8a"; } +.lnid-wifi-good::before { content: "\f2a8d"; } +.lnid-wifi-good::after { content: "\f2a8c"; } +.lnid-wifi-low::before { content: "\f2a8f"; } +.lnid-wifi-low::after { content: "\f2a8e"; } +.lnid-wind-1::before { content: "\f2a93"; } +.lnid-wind-1::after { content: "\f2a92"; } +.lnid-wind-2::before { content: "\f2a95"; } +.lnid-wind-2::after { content: "\f2a94"; } +.lnid-wind-ai::before { content: "\f2a97"; } +.lnid-wind-ai::after { content: "\f2a96"; } +.lnid-wind-rose::before { content: "\f2a99"; } +.lnid-wind-rose::after { content: "\f2a98"; } +.lnid-windmill-1::before { content: "\f2a9b"; } +.lnid-windmill-1::after { content: "\f2a9a"; } +.lnid-windmill-2::before { content: "\f2a9d"; } +.lnid-windmill-2::after { content: "\f2a9c"; } +.lnid-wine-glass-1::before { content: "\f2a9f"; } +.lnid-wine-glass-1::after { content: "\f2a9e"; } +.lnid-wine-glass-2::before { content: "\f2aa1"; } +.lnid-wine-glass-2::after { content: "\f2aa0"; } +.lnid-wine-glass-3::before { content: "\f2aa3"; } +.lnid-wine-glass-3::after { content: "\f2aa2"; } +.lnid-wine-glass-4::before { content: "\f2aa5"; } +.lnid-wine-glass-4::after { content: "\f2aa4"; } +.lnid-wrench::before { content: "\f2aa7"; } +.lnid-wrench::after { content: "\f2aa6"; } +.lnid-wrist-watch-circle::before { content: "\f2aab"; } +.lnid-wrist-watch-circle::after { content: "\f2aaa"; } +.lnid-wrist-watch-circle-ai::before { content: "\f2aa9"; } +.lnid-wrist-watch-circle-ai::after { content: "\f2aa8"; } +.lnid-wrist-watch-square::before { content: "\f2aaf"; } +.lnid-wrist-watch-square::after { content: "\f2aae"; } +.lnid-wrist-watch-square-ai::before { content: "\f2aad"; } +.lnid-wrist-watch-square-ai::after { content: "\f2aac"; } +.lnid-www::before { content: "\f2ab5"; } +.lnid-www::after { content: "\f2ab4"; } +.lnid-www-ai::before { content: "\f2ab1"; } +.lnid-www-ai::after { content: "\f2ab0"; } +.lnid-www-cursor::before { content: "\f2ab3"; } +.lnid-www-cursor::after { content: "\f2ab2"; } +.lnid-x-ray::before { content: "\f2ab7"; } +.lnid-x-ray::after { content: "\f2ab6"; } +.lnid-xmark::before { content: "\f2ac1"; } +.lnid-xmark::after { content: "\f2ac0"; } +.lnid-xmark-circle::before { content: "\f2ab9"; } +.lnid-xmark-circle::after { content: "\f2ab8"; } +.lnid-xmark-hexagon::before { content: "\f2abb"; } +.lnid-xmark-hexagon::after { content: "\f2aba"; } +.lnid-xmark-octagon::before { content: "\f2abd"; } +.lnid-xmark-octagon::after { content: "\f2abc"; } +.lnid-xmark-square::before { content: "\f2abf"; } +.lnid-xmark-square::after { content: "\f2abe"; } +.lnid-yen::before { content: "\f2acd"; } +.lnid-yen::after { content: "\f2acc"; } +.lnid-yen-ai-1::before { content: "\f2ac3"; } +.lnid-yen-ai-1::after { content: "\f2ac2"; } +.lnid-yen-ai-2::before { content: "\f2ac5"; } +.lnid-yen-ai-2::after { content: "\f2ac4"; } +.lnid-yen-circle::before { content: "\f2ac7"; } +.lnid-yen-circle::after { content: "\f2ac6"; } +.lnid-yen-trend-down::before { content: "\f2ac9"; } +.lnid-yen-trend-down::after { content: "\f2ac8"; } +.lnid-yen-trend-up::before { content: "\f2acb"; } +.lnid-yen-trend-up::after { content: "\f2aca"; } +.lnid-yin-yang-1::before { content: "\f2acf"; } +.lnid-yin-yang-1::after { content: "\f2ace"; } +.lnid-yin-yang-2::before { content: "\f2ad1"; } +.lnid-yin-yang-2::after { content: "\f2ad0"; } +.lnid-yoga-ball::before { content: "\f2ad3"; } +.lnid-yoga-ball::after { content: "\f2ad2"; } +.lnid-yoga-mat-1::before { content: "\f2ad5"; } +.lnid-yoga-mat-1::after { content: "\f2ad4"; } +.lnid-yoga-mat-2::before { content: "\f2ad7"; } +.lnid-yoga-mat-2::after { content: "\f2ad6"; } +.lnid-yoga-mat-3::before { content: "\f2ad9"; } +.lnid-yoga-mat-3::after { content: "\f2ad8"; } +.lnid-zen::before { content: "\f2adb"; } +.lnid-zen::after { content: "\f2ada"; } +.lnid-zero-size::before { content: "\f2add"; } +.lnid-zero-size::after { content: "\f2adc"; } diff --git a/frontend/css/lineicons-duotone.ttf b/frontend/css/lineicons-duotone.ttf new file mode 100644 index 0000000..ea342bc Binary files /dev/null and b/frontend/css/lineicons-duotone.ttf differ diff --git a/frontend/css/lineicons-duotone.woff b/frontend/css/lineicons-duotone.woff new file mode 100644 index 0000000..a577334 Binary files /dev/null and b/frontend/css/lineicons-duotone.woff differ diff --git a/frontend/css/lineicons-duotone.woff2 b/frontend/css/lineicons-duotone.woff2 new file mode 100644 index 0000000..b152c8e Binary files /dev/null and b/frontend/css/lineicons-duotone.woff2 differ diff --git a/frontend/src/styles/neu.css b/frontend/css/neu.css similarity index 64% rename from frontend/src/styles/neu.css rename to frontend/css/neu.css index 7fb3981..ef4b0c6 100644 --- a/frontend/src/styles/neu.css +++ b/frontend/css/neu.css @@ -4,6 +4,32 @@ Utilisé par tous les composants et les modules. ============================================================================= */ +/* ── Reset / Base ───────────────────────────────────────────────────────────── */ +*, *::before, *::after { + box-sizing: border-box; +} + +html, body { + margin: 0; + padding: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Inter', sans-serif; + font-size: 14px; + line-height: 1.5; + -webkit-font-smoothing: antialiased; +} + +body { + min-height: 100vh; + background-color: var(--neu-bg); + color: var(--neu-text); +} + +h1, h2, h3, h4, h5, h6 { margin: 0; } +p { margin: 0; } +a { color: inherit; } +button { font-family: inherit; font-size: inherit; } +input, select, textarea { font-family: inherit; font-size: inherit; } + /* ── Variables CSS (surchargées par dark.css et light.css) ─────────────────── */ :root { /* Couleurs de base */ @@ -52,7 +78,7 @@ /* Sidebar */ --sidebar-width: 240px; - --sidebar-width-collapsed: 64px; + --sidebar-width-collapsed: 52px; /* Z-index */ --z-sidebar: 100; @@ -189,6 +215,13 @@ border-radius: var(--neu-radius-md); } +/* Bouton icône carré (taille sm) */ +.neu-btn.neu-btn--icon-sm { + width: 2rem; + height: 2rem; + padding: 0; +} + .neu-btn--ghost { background: transparent; box-shadow: none; @@ -370,3 +403,242 @@ --sidebar-width: 100%; } } + +/* ── Layout Alpine (sidebar + navbar + page-content) ───────────────────────── */ + +:root { + --navbar-height: 56px; +} + +/* Sidebar (position:fixed, hors flux) */ +.sidebar { + width: var(--sidebar-width); + height: 100vh; + background: var(--neu-surface); + border-right: 1px solid var(--neu-border); + display: flex; + flex-direction: column; + transition: width 0.2s ease; + position: fixed; + top: 0; + left: 0; + z-index: var(--z-sidebar); + overflow: hidden; +} + +.sidebar.collapsed { + width: var(--sidebar-width-collapsed); +} + +.sidebar.collapsed .sidebar-link { + justify-content: center; + padding-left: 0; + padding-right: 0; +} + +.sidebar-header { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 1rem; + border-bottom: 1px solid var(--neu-border); + min-height: var(--navbar-height); + flex-shrink: 0; + cursor: pointer; + user-select: none; +} + +.sidebar-logo { + font-size: 1.5rem; + color: var(--neu-primary); + flex-shrink: 0; +} + +.sidebar-title { + font-weight: 700; + font-size: 1rem; + white-space: nowrap; + overflow: hidden; + color: var(--neu-text); +} + + +.sidebar-nav { + flex: 1; + padding: 0.5rem; + display: flex; + flex-direction: column; + gap: 0.25rem; + overflow-y: auto; + overflow-x: hidden; +} + +.sidebar-link { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.625rem 0.75rem; + border-radius: var(--neu-radius-sm); + text-decoration: none; + color: var(--neu-text-muted); + font-size: 0.875rem; + font-weight: 500; + transition: all 0.15s; + white-space: nowrap; + overflow: hidden; +} + +.sidebar-link:hover { + background: rgba(108, 142, 244, 0.08); + color: var(--neu-text); +} + +.sidebar-link.active { + background: rgba(108, 142, 244, 0.15); + color: var(--neu-primary); +} + +.sidebar-icon { + display: flex; + align-items: center; + justify-content: center; + font-size: 1.2rem; + flex-shrink: 0; + width: 1.25rem; + line-height: 1; +} + +.sidebar-label { + overflow: hidden; + text-overflow: ellipsis; +} + +.sidebar-footer { + padding: 0.75rem; + border-top: 1px solid var(--neu-border); + display: flex; + align-items: center; + gap: 0.5rem; + flex-shrink: 0; +} + +.sidebar-user { + flex: 1; + font-size: 0.8rem; + color: var(--neu-text-muted); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* Main layout (marge pour compenser le sidebar fixe) */ +.main-layout { + display: flex; + flex-direction: column; + min-height: 100vh; + margin-left: var(--sidebar-width); + transition: margin-left 0.2s ease; +} + +.sidebar.collapsed ~ .main-layout { + margin-left: var(--sidebar-width-collapsed); +} + +/* Navbar */ +.navbar { + height: var(--navbar-height); + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 1.5rem; + border-bottom: 1px solid var(--neu-border); + background: var(--neu-bg); + flex-shrink: 0; + position: sticky; + top: 0; + z-index: var(--z-navbar); +} + +.navbar-title { + font-size: 1rem; + font-weight: 700; + margin: 0; + color: var(--neu-text); +} + +.navbar-actions { + display: flex; + align-items: center; + gap: 0.5rem; +} + +/* Page content */ +.page-content { + flex: 1; + padding: 1.5rem; + overflow-y: auto; + background: var(--neu-bg); + color: var(--neu-text); +} + +/* Auth layout (login, install) */ +.auth-layout { + min-height: 100vh; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem; + background: var(--neu-bg); +} + +/* Swup fade transition */ +.transition-fade { + transition: opacity 0.2s ease; +} + +html.is-animating .transition-fade { + opacity: 0; +} + +/* Responsive */ +@media (max-width: 768px) { + .sidebar { width: var(--sidebar-width-collapsed); } + .main-layout { margin-left: var(--sidebar-width-collapsed); } +} + +[x-cloak] { display: none !important; } + +/* ── Sidebar droite ─────────────────────────────────────────────────────────── */ +[data-sidebar="right"] .sidebar { + left: auto; + right: 0; + border-right: none; + border-left: 1px solid var(--neu-border); +} + +[data-sidebar="right"] .main-layout { + margin-left: 0; + margin-right: var(--sidebar-width); + transition: margin-right 0.2s ease; +} + +[data-sidebar="right"] .sidebar.collapsed ~ .main-layout { + margin-right: var(--sidebar-width-collapsed); +} + +@media (max-width: 768px) { + [data-sidebar="right"] .main-layout { + margin-right: var(--sidebar-width-collapsed); + } +} + +/* ── Couleurs icônes contextuelles ─────────────────────────────────────────── */ + +/* Navbar : logout, thème, édition */ +.navbar .lnid-power-button { color: var(--neu-danger); } +.navbar .lnid-sun-1 { color: #f59e0b; } +.navbar .lnid-moon-half-left-1 { color: #60a5fa; } + +/* Sidebar footer : utilisateur */ +.sidebar-footer .sidebar-icon { color: var(--neu-primary); } diff --git a/frontend/css/pages.css b/frontend/css/pages.css new file mode 100644 index 0000000..25a7354 --- /dev/null +++ b/frontend/css/pages.css @@ -0,0 +1,986 @@ +/* ============================================================================= + ProxmoxPanel — Styles spécifiques aux pages + Chargé sur toutes les pages. Persiste à travers les navigations Swup. + ============================================================================= */ + +/* ── Spinners ────────────────────────────────────────────────────────────────── */ +@keyframes spin { to { transform: rotate(360deg); } } + +.spinner { + display: inline-block; + width: 1rem; + height: 1rem; + border: 2px solid transparent; + border-top-color: currentColor; + border-radius: 50%; + animation: spin 0.6s linear infinite; +} + +.spinner-sm { + display: inline-block; + width: .875rem; + height: .875rem; + border: 2px solid transparent; + border-top-color: currentColor; + border-radius: 50%; + animation: spin .6s linear infinite; +} + +.spinner-lg { + width: 2rem; + height: 2rem; + border: 3px solid transparent; + border-top-color: var(--neu-primary); + border-radius: 50%; + animation: spin .6s linear infinite; +} + +/* ── États communs ───────────────────────────────────────────────────────────── */ +.loading-state { + display: flex; + align-items: center; + gap: .75rem; + padding: 2rem; + color: var(--neu-text-muted); +} + +.empty-state { + color: var(--neu-text-muted); + font-size: .875rem; +} + +.loading { + color: var(--neu-text-muted); + font-size: .875rem; +} + +/* ── Badge statut ────────────────────────────────────────────────────────────── */ +.badge { + font-size: .7rem; + padding: .2rem .5rem; + border-radius: .25rem; + text-transform: uppercase; + font-weight: 600; +} +.badge.running, .resource-badge.running { + background: rgba(34,197,94,.15); + color: var(--neu-success); +} +.badge.stopped, .resource-badge.stopped { + background: rgba(239,68,68,.1); + color: var(--neu-danger); +} +.resource-badge { + font-size: .7rem; + padding: .2rem .5rem; + border-radius: .25rem; + text-transform: uppercase; +} + +/* ── Formulaires ─────────────────────────────────────────────────────────────── */ +.form-group { + display: flex; + flex-direction: column; + gap: .4rem; +} +.form-label { + font-size: .8rem; + font-weight: 600; + color: var(--neu-text-muted); +} +.form-error { + background: rgba(239,68,68,.1); + border: 1px solid var(--neu-danger); + border-radius: .5rem; + padding: .75rem; + font-size: .875rem; + color: var(--neu-danger); +} +.form-hint { + font-size: .75rem; + color: var(--neu-text-muted); + margin: 0; +} + +/* ── Sections ────────────────────────────────────────────────────────────────── */ +.section { + margin-bottom: 2rem; +} +.section-title { + font-size: .875rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: .05em; + color: var(--neu-text-muted); + margin-bottom: .75rem; +} + +/* ── WebSocket status ────────────────────────────────────────────────────────── */ +.ws-status { + padding: .5rem 1rem; + border-radius: .5rem; + font-size: .8rem; + margin-bottom: 1rem; + background: var(--neu-surface); +} +.ws-status.ok { color: var(--neu-success); } +.ws-status.disconnected, +.ws-status.error { color: var(--neu-warning); } + +/* ── Métriques ───────────────────────────────────────────────────────────────── */ +.resource-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1rem; +} +.resource-card { padding: 1rem; } +.resource-header { + display: flex; + align-items: center; + gap: .5rem; + margin-bottom: .75rem; +} +.resource-name { + font-weight: 600; + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.resource-id { + font-size: .75rem; + color: var(--neu-text-muted); +} +.resource-metrics { margin-bottom: .75rem; } +.resource-actions { display: flex; gap: .5rem; flex-wrap: wrap; } +.metric { display: flex; align-items: center; gap: .5rem; margin-bottom: .4rem; } +.metric-label { font-size: .7rem; color: var(--neu-text-muted); min-width: 30px; } +.metric-bar { + flex: 1; + height: 6px; + border-radius: 3px; + background: var(--neu-surface); + overflow: hidden; +} +.metric-fill { + height: 100%; + border-radius: 3px; + background: var(--neu-primary); + transition: width .5s; +} +.metric-val { font-size: .7rem; min-width: 36px; text-align: right; } + +/* ── Dashboard — Stats ───────────────────────────────────────────────────────── */ +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); + gap: 1rem; + margin-bottom: 1.5rem; +} +.stat-card { padding: 1.25rem; text-align: center; } +.stat-icon { font-size: 1.5rem; margin-bottom: .5rem; color: var(--neu-primary); } +.stat-value { font-size: 2rem; font-weight: 700; } +.stat-label { font-size: .8rem; color: var(--neu-text-muted); } + +/* ── Updates page ────────────────────────────────────────────────────────────── */ +.page-actions { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 1.5rem; + gap: 1rem; + flex-wrap: wrap; +} +.page-actions-left, +.page-actions-right { display: flex; align-items: center; gap: .75rem; } +.total-badge { font-size: .875rem; font-weight: 600; color: var(--neu-primary); } +.targets-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); + gap: 1rem; +} +.target-card { padding: 1rem; display: flex; flex-direction: column; gap: .75rem; } +.target-header { display: flex; justify-content: space-between; align-items: flex-start; } +.target-info { display: flex; flex-direction: column; gap: .2rem; } +.target-name { font-weight: 700; font-size: .95rem; } +.target-id { font-size: .7rem; color: var(--neu-text-muted); font-family: monospace; } +.target-status {} +.target-actions { display: flex; gap: .5rem; margin-top: auto; } +.package-summary { font-size: .875rem; } +.muted { color: var(--neu-text-muted); } +.up-to-date { color: var(--neu-success); } +.has-updates { color: var(--neu-warning); font-weight: 600; } +.checking-text { display: flex; align-items: center; gap: .4rem; color: var(--neu-text-muted); } +.package-list { + max-height: 160px; + overflow-y: auto; + border-top: 1px solid var(--neu-border); + padding-top: .5rem; + display: flex; + flex-direction: column; + gap: .25rem; +} +.package-row { display: flex; justify-content: space-between; gap: .5rem; font-size: .75rem; } +.pkg-name { font-weight: 600; font-family: monospace; color: var(--neu-primary); } +.pkg-version { display: flex; align-items: center; gap: .25rem; color: var(--neu-text-muted); } +.old-ver { text-decoration: line-through; opacity: .6; } +.arrow { color: var(--neu-primary); } +.new-ver { color: var(--neu-success); font-weight: 600; } +.output-panel { margin-top: 1.5rem; border-radius: .75rem; overflow: hidden; } +.output-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: .75rem 1rem; + border-bottom: 1px solid var(--neu-border); +} +.output-title { font-weight: 600; font-size: .875rem; font-family: monospace; } +.job-status { font-size: .75rem; padding: .2rem .5rem; border-radius: .25rem; text-transform: uppercase; } +.job-status.running { background: rgba(99,102,241,.15); color: var(--neu-primary); } +.job-status.success { background: rgba(34,197,94,.15); color: var(--neu-success); } +.job-status.error { background: rgba(239,68,68,.1); color: var(--neu-danger); } +.output-content { + padding: 1rem; + font-family: monospace; + font-size: .75rem; + white-space: pre-wrap; + word-break: break-all; + max-height: 400px; + overflow-y: auto; + margin: 0; + color: var(--neu-text); +} + +/* ── Settings page ───────────────────────────────────────────────────────────── */ +.tabs { + display: flex; + gap: .5rem; + margin-bottom: 1.5rem; + border-bottom: 1px solid var(--neu-border); + padding-bottom: .5rem; +} +.tab-btn { + padding: .5rem 1rem; + border-radius: .375rem .375rem 0 0; + font-size: .875rem; + font-weight: 600; + color: var(--neu-text-muted); + background: transparent; + border: none; + cursor: pointer; + transition: all .15s; +} +.tab-btn.active { + color: var(--neu-primary); + background: var(--neu-surface); + border-bottom: 2px solid var(--neu-primary); +} +.tab-btn:hover:not(.active) { color: var(--neu-text); } +.tab-panel { animation: fadeIn .15s ease; } +@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } } +.form-grid { + display: grid; + gap: 1.25rem; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + margin-bottom: 1.5rem; +} +.save-bar { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 1rem; + padding-top: 1rem; + border-top: 1px solid var(--neu-border); +} +.save-feedback { flex: 1; } +.save-success { color: var(--neu-success); font-size: .875rem; } +.save-error { color: var(--neu-danger); font-size: .875rem; } + +/* ── Modules page ────────────────────────────────────────────────────────────── */ +.modules-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1rem; +} +.module-card { padding: 1rem; transition: opacity .2s; } +.module-card.disabled { opacity: .6; } +.module-header { display: flex; align-items: center; gap: .75rem; } +.module-icon { font-size: 1.75rem; flex-shrink: 0; } +.module-info { flex: 1; } +.module-name { font-weight: 700; display: block; margin-bottom: .2rem; } +.module-desc { font-size: .8rem; color: var(--neu-text-muted); display: block; } +.core-badge { + font-size: .65rem; + padding: .15rem .4rem; + border-radius: .2rem; + background: rgba(99,102,241,.15); + color: var(--neu-primary); + font-weight: 700; + text-transform: uppercase; +} +.toggle-btn { + display: flex; + align-items: center; + gap: .4rem; + background: none; + border: none; + cursor: pointer; + color: var(--neu-text-muted); + font-size: .8rem; +} +.toggle-btn:disabled { cursor: not-allowed; opacity: .5; } +.toggle-track { + width: 2.5rem; + height: 1.25rem; + background: var(--neu-surface); + border-radius: .625rem; + position: relative; + transition: background .2s; + border: 1px solid var(--neu-border); +} +.toggle-thumb { + position: absolute; + top: .125rem; + left: .125rem; + width: .875rem; + height: .875rem; + background: var(--neu-text-muted); + border-radius: 50%; + transition: transform .2s, background .2s; +} +.toggle-btn.on .toggle-track { background: var(--neu-primary); border-color: var(--neu-primary); } +.toggle-btn.on .toggle-thumb { transform: translateX(1.25rem); background: #fff; } +.module-toggle { margin-left: auto; } + +/* ── Terminal page ───────────────────────────────────────────────────────────── */ +.main-layout.terminal-wrapper { + height: 100vh; + overflow: hidden; +} +.terminal-layout { + flex: 1; + display: flex; + flex-direction: column; + padding: 0 !important; + overflow: hidden; +} +.terminal-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + padding: .5rem 1rem; + border-bottom: 1px solid var(--neu-border); + background: var(--neu-surface); + flex-shrink: 0; +} +.terminal-status { font-size: .8rem; font-family: monospace; } +.terminal-status.connected { color: var(--neu-success); } +.terminal-status.disconnected, +.terminal-status.error { color: var(--neu-danger); } +.terminal-status.connecting { color: var(--neu-text-muted); } +.terminal-container { + flex: 1; + overflow: hidden; + background: #1a1a2e; + padding: .5rem; +} +.terminal-container .xterm { height: 100%; } + +/* ── Auth pages (login + install) ────────────────────────────────────────────── */ +.auth-card { + width: 100%; + max-width: 400px; + padding: 2rem; +} +.install-card { + width: 100%; + max-width: 560px; + padding: 2rem; +} +.auth-logo { text-align: center; margin-bottom: 2rem; } +.logo-icon { font-size: 3rem; color: var(--neu-primary); } +.auth-title { font-size: 1.5rem; font-weight: 700; margin: .5rem 0 .25rem; } +.auth-subtitle { font-size: .875rem; color: var(--neu-text-muted); margin: 0; } +.auth-form { display: flex; flex-direction: column; gap: 1.25rem; } +.auth-submit { width: 100%; padding: .875rem; margin-top: .5rem; } + +/* ── Install wizard ──────────────────────────────────────────────────────────── */ +.stepper { display: flex; gap: .5rem; justify-content: center; margin: 1.5rem 0; } +.step { display: flex; flex-direction: column; align-items: center; gap: .25rem; flex: 1; max-width: 100px; } +.step-dot { + width: 2rem; + height: 2rem; + border-radius: 50%; + border: 2px solid var(--neu-border); + display: flex; + align-items: center; + justify-content: center; + font-size: .8rem; + font-weight: 700; + transition: all .2s; +} +.step.active .step-dot { border-color: var(--neu-primary); background: var(--neu-primary); color: #fff; } +.step.done .step-dot { border-color: var(--neu-success); background: var(--neu-success); color: #fff; } +.step-label { font-size: .7rem; color: var(--neu-text-muted); text-align: center; } +.step-content { display: flex; flex-direction: column; gap: 1rem; min-height: 200px; } +.step-content h2 { margin: 0; font-size: 1.125rem; } +.step-desc { margin: 0; font-size: .875rem; color: var(--neu-text-muted); } +.step-nav { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1.5rem; } +.status-ok { + padding: .5rem .75rem; + border-radius: .375rem; + background: rgba(34,197,94,.1); + border: 1px solid var(--neu-success); + color: var(--neu-success); + font-size: .875rem; +} +.status-error { + padding: .5rem .75rem; + border-radius: .375rem; + background: rgba(239,68,68,.1); + border: 1px solid var(--neu-danger); + color: var(--neu-danger); + font-size: .875rem; +} +.confirm-summary { padding: 1rem; display: flex; flex-direction: column; gap: .5rem; border-radius: .5rem; } +.confirm-row { display: flex; gap: 1rem; font-size: .875rem; } +.confirm-label { font-weight: 600; min-width: 80px; color: var(--neu-text-muted); } + +/* ── Page header ─────────────────────────────────────────────────────────────── */ +.page-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 1.25rem; + gap: 1rem; +} +.page-title { font-size: 1.25rem; font-weight: 700; } + +/* ── Dashboard widgets ───────────────────────────────────────────────────────── */ +.widgets-grid { + display: grid; + gap: 1.25rem; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); +} +.widget { + min-height: 160px; + cursor: grab; + user-select: none; + transition: var(--neu-transition); +} +.widget:active { cursor: grabbing; } +.widget:hover { transform: translateY(-2px); } +.widget-title { + font-size: .875rem; + font-weight: 700; + color: var(--neu-text-muted); + text-transform: uppercase; + letter-spacing: .5px; + margin: 0 0 .75rem 0; +} + +/* Widget config panel */ +.widget-config { + margin-bottom: 1.25rem; + padding: 1rem; +} +.widget-config-title { + font-weight: 700; + margin: 0 0 .75rem 0; + font-size: .9rem; +} +.widget-config-row { + display: flex; + align-items: center; + gap: .75rem; + padding: .5rem .25rem; + border-radius: .375rem; + cursor: grab; + transition: background .15s; +} +.widget-config-row:hover { background: rgba(108, 142, 244, 0.06); } +.widget-toggle-label { + display: flex; + align-items: center; + gap: .5rem; + margin-left: auto; + font-size: .8rem; + color: var(--neu-text-muted); + cursor: pointer; +} +.drag-handle { color: var(--neu-text-muted); font-size: 1rem; } + +/* Widget: status (stats) */ +.stat-rows { display: flex; flex-direction: column; gap: .5rem; } +.stat-row { + display: flex; + align-items: center; + gap: .75rem; + font-size: .9rem; +} +.stat-icon { font-size: 1.1rem; width: 1.25rem; flex-shrink: 0; } +.stat-num { font-size: 1.5rem; font-weight: 700; min-width: 2rem; } +.stat-label { color: var(--neu-text-muted); } + +/* Widget: lxc-list */ +.lxc-row { + display: flex; + align-items: center; + gap: .5rem; + padding: .375rem 0; + border-bottom: 1px solid var(--neu-border); + font-size: .85rem; +} +.lxc-row:last-child { border-bottom: none; } +.lxc-name { flex: 1; font-weight: 500; } +.lxc-cpu, .lxc-ram { color: var(--neu-text-muted); font-size: .8rem; min-width: 3.5rem; text-align: right; } + +/* Widget: links */ +.links-grid { + display: flex; + flex-wrap: wrap; + gap: .75rem; +} +.link-btn { + flex: 1; + min-width: 80px; + justify-content: center; + gap: .375rem; +} + +/* Widget edit mode */ +.widget-size-2 { grid-column: span 2; } +@media (max-width: 720px) { .widget-size-2 { grid-column: span 1; } } + +.widget { position: relative; } +.widget.is-dragging { opacity: 0.35; transform: scale(.97); } +.widget-highlighted { outline: 2px solid var(--neu-primary) !important; outline-offset: 2px; } + +/* Edit mode layout : grid + panel côte à côte */ +.edit-mode-layout { + display: flex; + gap: 1.25rem; + align-items: flex-start; +} +.edit-mode-layout .widgets-grid { + flex: 1; + min-width: 0; +} + +/* Widget panel (liste de tous les widgets en mode édition) */ +.widget-panel { + width: 200px; + flex-shrink: 0; + position: sticky; + top: 1rem; + padding: 1rem; +} +.widget-panel-title { + display: flex; + align-items: center; + gap: .5rem; + font-size: .875rem; + font-weight: 700; + margin: 0 0 .75rem 0; + padding-bottom: .5rem; + border-bottom: 1px solid var(--neu-border); +} +.widget-panel-list { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: .2rem; +} +.widget-panel-item { + display: flex; + align-items: center; + gap: .5rem; + padding: .4rem .375rem; + border-radius: var(--neu-radius-sm); + cursor: default; + transition: background .15s; +} +.widget-panel-item:hover { background: rgba(108, 142, 244, 0.08); } +.widget-panel-label { + flex: 1; + font-size: .85rem; + color: var(--neu-text-muted); + transition: color .15s; +} +.widget-panel-item.is-visible .widget-panel-label { color: var(--neu-text); } +.widget-panel-toggle { + background: none; + border: none; + cursor: pointer; + color: var(--neu-text-muted); + padding: .2rem; + border-radius: .2rem; + line-height: 1; + transition: color .15s; +} +.widget-panel-toggle:hover { color: var(--neu-primary); } +.widget-panel-item.is-visible .widget-panel-toggle { color: var(--neu-success); } + +/* Resize handle (coin bas-droit de la tuile, edit mode) */ +.widget-resize-handle { + position: absolute; + bottom: 0; + right: 0; + width: 22px; + height: 22px; + cursor: ew-resize; + border-radius: 0 0 var(--neu-radius-sm) 0; + background: linear-gradient(135deg, transparent 50%, var(--neu-border) 50%); + transition: background .15s; +} +.widget-resize-handle:hover { + background: linear-gradient(135deg, transparent 50%, var(--neu-primary) 50%); +} + +/* ── Profil / préférences ────────────────────────────────────────────────────── */ +.settings-section { + margin-bottom: 1.25rem; +} +.settings-section h3 { + display: flex; + align-items: center; + gap: .5rem; + font-size: 1rem; + font-weight: 700; + margin: 0 0 1rem 0; + padding-bottom: .75rem; + border-bottom: 1px solid var(--neu-border); +} + +.profile-info { display: flex; flex-direction: column; gap: .5rem; } +.profile-row { + display: flex; + align-items: center; + gap: 1rem; + font-size: .9rem; + padding: .375rem 0; +} +.profile-label { + font-weight: 600; + color: var(--neu-text-muted); + min-width: 100px; +} +.profile-value { color: var(--neu-text); } + +.badge-admin { + background: rgba(108, 142, 244, 0.15); + color: var(--neu-primary); + padding: 2px 8px; + border-radius: 9999px; + font-size: .75rem; + font-weight: 600; +} +.badge-user { + background: rgba(127, 136, 153, 0.15); + color: var(--neu-text-muted); + padding: 2px 8px; + border-radius: 9999px; + font-size: .75rem; + font-weight: 600; +} + +/* Groupe de boutons (thème, sidebar position) */ +.btn-group { + display: flex; + gap: .5rem; + flex-wrap: wrap; +} + +/* ── Sessions ───────────────────────────────────────────────────────────────── */ +.session-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: .75rem; + padding: .6rem 0; + border-bottom: 1px solid var(--neu-border); +} +.session-row:last-child { border-bottom: none; } + +.session-info { display: flex; flex-direction: column; gap: .2rem; min-width: 0; } + +.session-browser { + display: flex; + align-items: center; + gap: .4rem; + font-size: .9rem; + color: var(--neu-text); + font-weight: 500; +} +.session-meta { + display: flex; + align-items: center; + gap: .3rem; + font-size: .75rem; + color: var(--neu-text-muted); + flex-wrap: wrap; +} +.session-sep { opacity: .4; } +.session-id { font-family: monospace; opacity: .6; } + +.session-current { background: rgba(var(--neu-primary-rgb, 108,142,244), .05); border-radius: var(--neu-radius); padding-left: .5rem; padding-right: .5rem; } + +.badge-current { + font-size: .65rem; + padding: .15rem .45rem; + border-radius: 99px; + background: rgba(34,197,94,.15); + color: var(--neu-success); + font-weight: 600; + letter-spacing: .02em; +} + +/* ── Logo auth LineIcons ─────────────────────────────────────────────────────── */ +.logo-icon { + font-size: 2.5rem; + color: var(--neu-primary); + display: block; + line-height: 1; +} + +/* ── Historique mises à jour ─────────────────────────────────────────────────── */ +.history-table { display: flex; flex-direction: column; gap: 0; } +.history-header, .history-row { + display: grid; + grid-template-columns: 6rem 1fr 6rem 10rem 5rem; + gap: .5rem; + align-items: center; + padding: .5rem .75rem; +} +.history-header { + font-size: .75rem; + font-weight: 600; + color: var(--neu-text-muted); + text-transform: uppercase; + letter-spacing: .04em; + border-bottom: 1px solid var(--neu-border); +} +.history-row { + font-size: .85rem; + cursor: pointer; + border-bottom: 1px solid var(--neu-border); + transition: background .15s; +} +.history-row:last-child { border-bottom: none; } +.history-row:hover { background: var(--neu-bg-hover); border-radius: var(--neu-radius); } +.history-job { font-family: monospace; opacity: .7; } +.history-status.running { color: var(--neu-info); } +.history-status.success { color: var(--neu-success); } +.history-status.error { color: var(--neu-danger); } + +/* ── Toasts ──────────────────────────────────────────────────────────────────── */ +#pxp-toasts { + position: fixed; + bottom: 1.25rem; + right: 1.25rem; + z-index: 9999; + display: flex; + flex-direction: column; + gap: .5rem; + pointer-events: none; + max-width: 24rem; +} +.toast { + display: flex; + align-items: flex-start; + gap: .6rem; + padding: .75rem 1rem; + border-radius: var(--neu-radius); + background: var(--neu-surface); + box-shadow: 0 4px 16px rgba(0,0,0,.35); + border-left: 3px solid transparent; + font-size: .875rem; + pointer-events: all; + animation: toast-in .2s ease; +} +@keyframes toast-in { + from { opacity: 0; transform: translateX(1rem); } + to { opacity: 1; transform: translateX(0); } +} +.toast > i:first-child { margin-top: .05rem; flex-shrink: 0; font-size: 1rem; } +.toast-msg { flex: 1; color: var(--neu-text); line-height: 1.4; } +.toast-close { + background: none; + border: none; + cursor: pointer; + padding: 0; + color: var(--neu-text-muted); + line-height: 1; + flex-shrink: 0; + margin-top: .05rem; +} +.toast-close:hover { color: var(--neu-text); } +.toast--error { border-left-color: var(--neu-danger); } +.toast--error > i:first-child { color: var(--neu-danger); } +.toast--success { border-left-color: var(--neu-success); } +.toast--success > i:first-child { color: var(--neu-success); } +.toast--warn { border-left-color: var(--neu-warning); } +.toast--warn > i:first-child { color: var(--neu-warning); } +.toast--info { border-left-color: var(--neu-info); } +.toast--info > i:first-child { color: var(--neu-info); } + +/* ── Page Services ───────────────────────────────────────────────────────────── */ +.services-toolbar { + display: flex; + align-items: center; + gap: .75rem; + flex-wrap: wrap; + margin-bottom: 1rem; +} +.services-target-sel { min-width: 12rem; } +.services-search { + display: flex; + align-items: center; + gap: .5rem; + flex: 1; + min-width: 10rem; + background: var(--neu-bg); + border: 1px solid var(--neu-border); + border-radius: var(--neu-radius); + padding: 0 .75rem; +} +.services-search i { color: var(--neu-text-muted); font-size: .9rem; flex-shrink: 0; } +.services-search .neu-input { + border: none; + background: transparent; + padding: .45rem 0; + flex: 1; + box-shadow: none; + min-width: 0; +} +.services-table-wrap { padding: 0; overflow-x: auto; } +.services-table { + width: 100%; + border-collapse: collapse; + font-size: .875rem; +} +.services-table thead tr { + border-bottom: 1px solid var(--neu-border); +} +.services-table th { + padding: .6rem 1rem; + text-align: left; + font-weight: 600; + color: var(--neu-text-muted); + white-space: nowrap; +} +.services-table td { + padding: .5rem 1rem; + border-bottom: 1px solid var(--neu-border); + vertical-align: middle; +} +.services-table tbody tr:last-child td { border-bottom: none; } +.services-table tbody tr:hover { background: var(--neu-bg-raised); } + +.svc-state-dot { + display: inline-block; + width: .5rem; + height: .5rem; + border-radius: 50%; + margin-right: .4rem; + vertical-align: middle; +} +.state-active .svc-state-dot { background: var(--neu-success); } +.state-failed .svc-state-dot { background: var(--neu-danger); } +.state-inactive .svc-state-dot { background: var(--neu-text-muted); } +.state-other .svc-state-dot { background: var(--neu-warning); } + +.state-active .svc-state-label { color: var(--neu-success); } +.state-failed .svc-state-label { color: var(--neu-danger); } +.state-inactive .svc-state-label { color: var(--neu-text-muted); } + +.svc-name { font-weight: 500; font-family: var(--neu-font-mono, monospace); white-space: nowrap; } +.svc-sub { color: var(--neu-text-muted); font-size: .8rem; white-space: nowrap; } +.svc-desc { color: var(--neu-text-muted); font-size: .8rem; max-width: 22rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.svc-actions { display: flex; gap: .35rem; white-space: nowrap; } + +/* ── Page Logs ───────────────────────────────────────────────────────────────── */ +.logs-toolbar { + display: flex; + align-items: center; + gap: .75rem; + flex-wrap: wrap; + margin-bottom: 1rem; +} +.logs-sel { min-width: 10rem; } +.logs-sel-sm { min-width: 5rem; width: 5rem; } + +.logs-status { + display: flex; + align-items: center; + gap: .5rem; + font-size: .8rem; + color: var(--neu-success); + margin-bottom: .5rem; +} +.logs-status-dot { + width: .45rem; + height: .45rem; + border-radius: 50%; + background: var(--neu-success); + animation: pulse 1.2s ease-in-out infinite; +} +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: .35; } +} + +.logs-output-wrap { padding: 0; min-height: 22rem; display: flex; flex-direction: column; } +.logs-output { + flex: 1; + padding: 1rem; + margin: 0; + font-family: var(--neu-font-mono, 'Courier New', monospace); + font-size: .78rem; + line-height: 1.5; + color: var(--neu-text); + overflow-y: auto; + max-height: 65vh; + white-space: pre-wrap; + word-break: break-all; +} +.logs-empty { + padding: 2rem; + text-align: center; +} + +/* ── Éditeur de raccourcis ───────────────────────────────────────────────────── */ +.shortcuts-editor { display: flex; flex-direction: column; gap: .5rem; } +.shortcut-row { + display: grid; + grid-template-columns: 9rem 1fr 1fr 2rem; + gap: .5rem; + align-items: center; +} +.shortcut-icon-sel { padding: .4rem .5rem; font-size: .85rem; } +.shortcut-label, .shortcut-href { font-size: .85rem; } + +/* ── Store de modules ────────────────────────────────────────────────────────── */ +.section-desc { color: var(--neu-text-muted); font-size: .85rem; margin: -.25rem 0 .75rem; } +.section-desc a { color: var(--neu-primary); text-decoration: none; } +.section-desc a:hover { text-decoration: underline; } +.module-version { font-size: .75rem; color: var(--neu-text-muted); margin-left: .5rem; } +.module-repo-link { font-size: .75rem; color: var(--neu-text-muted); text-decoration: none; display: block; margin-top: .2rem; } +.module-repo-link:hover { color: var(--neu-primary); } +.installed-badge { + padding: .2rem .6rem; + border-radius: 1rem; + font-size: .75rem; + font-weight: 600; + background: color-mix(in srgb, var(--neu-success) 15%, transparent); + color: var(--neu-success); +} +.rebuild-notice { + display: flex; + align-items: center; + gap: .75rem; + padding: 1rem; + font-size: .875rem; +} diff --git a/frontend/dashboard.html b/frontend/dashboard.html new file mode 100644 index 0000000..5982055 --- /dev/null +++ b/frontend/dashboard.html @@ -0,0 +1,193 @@ + + + + + + + ProxmoxPanel — Dashboard + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+ ⌛ Connexion… + ⚠ Déconnecté (reconnexion…) + ✗ Erreur WebSocket +
+ + +
+ + +
+ + +

+ Aucun widget actif — activez le mode édition pour en ajouter. +

+
+ + +
+

+ Widgets +

+
    + +
+
+ +
+
+
+ + + diff --git a/frontend/icons/icon.svg b/frontend/icons/icon.svg new file mode 100644 index 0000000..ad174ca --- /dev/null +++ b/frontend/icons/icon.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + P + diff --git a/frontend/index.html b/frontend/index.html index b11eb63..43f81a1 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,15 +1,18 @@ - - - - - ProxmoxPanel - - - - -
- - + + + + ProxmoxPanel + + + + + + + +
+ Chargement… +
+ diff --git a/frontend/install.html b/frontend/install.html new file mode 100644 index 0000000..e1c4eaa --- /dev/null +++ b/frontend/install.html @@ -0,0 +1,150 @@ + + + + + + + ProxmoxPanel — Installation + + + + + + + + + + + + +
+
+ + + +
+ +
+ + +
+

+

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+

+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ + +
+

+

+
+ + +
+
+ + +
+
+ + +
+

+
+ + +
+

+
+
+ Instance + +
+
+ URL + +
+
+ SSH + +
+
+ Proxmox + +
+
+
+
+ + +
+ + +
+
+
+ + + diff --git a/frontend/js/app.js b/frontend/js/app.js new file mode 100644 index 0000000..eef9b9c --- /dev/null +++ b/frontend/js/app.js @@ -0,0 +1,1317 @@ +/** + * ProxmoxPanel — Alpine.js stores + composants + Swup init + HTMX config + * + * Chargé AVANT alpine.min.js (qui est defer). + * L'événement 'alpine:init' est déclenché par Alpine avant qu'il parcourt le DOM. + */ + +// ── WsProxy — WebSocket via Service Worker avec fallback direct ───────────── + +const WsProxy = { + _subs: new Map(), // channel → [{onMessage, onStatus}] + _direct: new Map(), // channel → WebSocket (fallback sans SW) + + init() { + if (!('serviceWorker' in navigator)) return + navigator.serviceWorker.register('/ws.sw.js') + .catch(e => console.warn('[WsProxy] SW registration failed:', e)) + navigator.serviceWorker.addEventListener('message', event => { + const { channel, type, data, status } = event.data || {} + if (!channel) return + const subs = this._subs.get(channel) || [] + if (type === 'WS_MESSAGE') subs.forEach(s => s.onMessage?.(data)) + if (type === 'WS_STATUS') subs.forEach(s => s.onStatus?.(status)) + }) + }, + + async subscribe(channel, url, onMessage, onStatus) { + if (!this._subs.has(channel)) this._subs.set(channel, []) + const sub = { onMessage, onStatus } + this._subs.get(channel).push(sub) + + if ('serviceWorker' in navigator) { + try { + await navigator.serviceWorker.ready + const sw = navigator.serviceWorker.controller + if (sw) { + sw.postMessage({ type: 'WS_SUBSCRIBE', channel, url }) + return () => this._unsub(channel, sub, true) + } + } catch(e) { /* fallback */ } + } + this._connectDirect(channel, url) + return () => this._unsub(channel, sub, false) + }, + + _unsub(channel, sub, usedSW) { + const subs = this._subs.get(channel) || [] + const idx = subs.indexOf(sub) + if (idx > -1) subs.splice(idx, 1) + if (usedSW) { + navigator.serviceWorker?.controller?.postMessage({ type: 'WS_UNSUBSCRIBE', channel }) + } else if (subs.length === 0) { + this._direct.get(channel)?.close() + this._direct.delete(channel) + } + }, + + _connectDirect(channel, url) { + const ex = this._direct.get(channel) + if (ex && ex.readyState < 2) return + const ws = new WebSocket(url) + this._direct.set(channel, ws) + const fire = (cb, arg) => (this._subs.get(channel) || []).forEach(s => s[cb]?.(arg)) + ws.onopen = () => fire('onStatus', 'connected') + ws.onmessage = (e) => fire('onMessage', e.data) + ws.onerror = () => fire('onStatus', 'error') + ws.onclose = () => { + fire('onStatus', 'disconnected') + setTimeout(() => { + if ((this._subs.get(channel) || []).length > 0) this._connectDirect(channel, url) + }, 3000) + } + }, + + send(channel, data) { + const sw = navigator.serviceWorker?.controller + if (sw) sw.postMessage({ type: 'WS_SEND', channel, payload: data }) + else this._direct.get(channel)?.send(data) + }, +} + +// ── Utilitaires ──────────────────────────────────────────────────────────── + +function apiFetch(path, opts = {}) { + const token = localStorage.getItem('pxp_token') + return fetch(path, { + ...opts, + headers: { + 'Content-Type': 'application/json', + ...(token ? { Authorization: 'Bearer ' + token } : {}), + ...(opts.headers || {}), + }, + }) +} + +// ── Alpine:init ──────────────────────────────────────────────────────────── + +document.addEventListener('alpine:init', () => { + + // ── Store toasts ──────────────────────────────────────────────────────── + Alpine.store('toasts', { + items: [], + _id: 0, + add(message, type = 'info', duration = 5000) { + const id = ++this._id + this.items.push({ id, message, type }) + if (duration > 0) setTimeout(() => this.remove(id), duration) + return id + }, + remove(id) { this.items = this.items.filter(t => t.id !== id) }, + error(msg) { return this.add(msg, 'error', 8000) }, + success(msg) { return this.add(msg, 'success', 4000) }, + warn(msg) { return this.add(msg, 'warn', 6000) }, + info(msg) { return this.add(msg, 'info', 4000) }, + }) + + // Injecter le conteneur de toasts dans le body (persiste à travers Swup) + ;(function() { + const tc = document.createElement('div') + tc.id = 'pxp-toasts' + tc.setAttribute('x-data', '') + tc.innerHTML = ` + + ` + document.body.appendChild(tc) + })() + + // ── Store auth ───────────────────────────────────────────────────────── + Alpine.store('auth', { + token: null, + user: null, + get isAuthenticated() { return !!this.token && !!this.user }, + + async init() { + this.token = localStorage.getItem('pxp_token') + if (this.token) { + try { + await this.fetchMe() + } catch { + await this.tryRefresh() + } + } + }, + + async fetchMe() { + const res = await apiFetch('/api/auth/me') + if (res.ok) { + this.user = await res.json() + // Sync préférences DB → localStorage + stores + const u = this.user + if (u.theme && u.theme !== Alpine.store('ui').theme) { + localStorage.setItem('pxp_theme', u.theme) + Alpine.store('ui').theme = u.theme + Alpine.store('ui').applyTheme() + } + if (u.sidebar_position && u.sidebar_position !== Alpine.store('ui').sidebarPosition) { + Alpine.store('ui').setSidebarPosition(u.sidebar_position) + } + if (u.lang && u.lang !== Alpine.store('i18n').lang) { + Alpine.store('i18n').setLang(u.lang) + } + } else if (res.status === 401) { + // Token expiré → tenter un refresh silencieusement + await this.tryRefresh() + } else { + // Erreur inattendue (404, 500…) — signaler + tenter quand même + const body = await res.json().catch(() => ({})) + console.error(`[auth/me] HTTP ${res.status}`, body.error || '') + Alpine.store('toasts').error( + `Erreur ${res.status} sur /api/auth/me : ${body.error || 'voir console'}` + ) + await this.tryRefresh() + } + }, + + async tryRefresh() { + const res = await fetch('/api/auth/refresh', { method: 'POST', credentials: 'include' }) + if (res.ok) { + const data = await res.json() + this.token = data.access_token + localStorage.setItem('pxp_token', data.access_token) + await this.fetchMe() + } else { + // Lire le vrai message d'erreur du backend pour le diagnostic + const body = await res.json().catch(() => ({})) + const serverMsg = body.error || `HTTP ${res.status}` + const page = window.location.pathname.replace(/^\/|\.html$/g, '') + if (page !== 'login' && page !== 'install' && page !== 'index' && page !== '') { + sessionStorage.setItem('pxp_auth_notice', `Refresh échoué : ${serverMsg}`) + } + console.error('[auth/tryRefresh]', res.status, serverMsg) + this.clear() + } + }, + + async login(username, password) { + const res = await fetch('/api/auth/login', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + credentials: 'include', + body: JSON.stringify({ username, password }), + }) + if (!res.ok) { + const err = await res.json().catch(() => ({})) + throw new Error(err.error || 'Identifiants invalides') + } + const data = await res.json() + // Le backend retourne "access_token" (pas "token") + this.token = data.access_token + this.user = data.user + localStorage.setItem('pxp_token', data.access_token) + }, + + async logout() { + await apiFetch('/api/auth/logout', { method: 'POST', credentials: 'include' }).catch(() => {}) + this.clear() + sessionStorage.setItem('pxp_auth_notice', 'Déconnexion réussie') + window.location.href = '/login.html' + }, + + clear() { + this.token = null + this.user = null + localStorage.removeItem('pxp_token') + }, + }) + + // ── Store UI ──────────────────────────────────────────────────────────── + Alpine.store('ui', { + theme: localStorage.getItem('pxp_theme') || 'dark', + sidebarCollapsed: localStorage.getItem('pxp_sidebar') === 'true', + sidebarPosition: localStorage.getItem('pxp_sidebar_pos') || 'left', + currentPage: '', + + init() { + this.applyTheme() + this.applySidebarPosition() + const path = window.location.pathname + this.currentPage = path.replace(/^\/|\.html$/g, '') || 'index' + }, + + applyTheme() { + document.documentElement.setAttribute('data-theme', this.theme) + }, + + toggleTheme() { + this.theme = this.theme === 'dark' ? 'light' : 'dark' + localStorage.setItem('pxp_theme', this.theme) + this.applyTheme() + }, + + applySidebarPosition() { + document.documentElement.setAttribute('data-sidebar', this.sidebarPosition) + }, + + setSidebarPosition(pos) { + this.sidebarPosition = pos + localStorage.setItem('pxp_sidebar_pos', pos) + this.applySidebarPosition() + }, + + toggleSidebar() { + this.sidebarCollapsed = !this.sidebarCollapsed + localStorage.setItem('pxp_sidebar', this.sidebarCollapsed) + }, + }) + + // ── Store i18n ────────────────────────────────────────────────────────── + Alpine.store('i18n', { + lang: localStorage.getItem('pxp_lang') || 'fr', + msgs: {}, + loaded: false, + + async init() { + await this.load(this.lang) + }, + + async load(lang) { + try { + const res = await fetch(`/locales/${lang}.json`) + if (res.ok) { + this.msgs = await res.json() + this.lang = lang + localStorage.setItem('pxp_lang', lang) + this.loaded = true + } + } catch (e) { + console.error('i18n load error', e) + } + }, + + t(key, vars = {}) { + const parts = key.split('.') + let val = this.msgs + for (const p of parts) { + val = val?.[p] + if (val === undefined) return key + } + if (typeof val !== 'string') return key + return val.replace(/\{(\w+)\}/g, (_, k) => vars[k] ?? `{${k}}`) + }, + + async setLang(lang) { + await this.load(lang) + }, + }) + + // ── Composant: sidebar ────────────────────────────────────────────────── + // Items CORE toujours visibles (sidebar hardcodée pour le CORE) + const _coreNavItems = [ + { id: 'dashboard', iconClass: 'lnid-dashboard-square-1', iconColor: '#6c8ef4', labelKey: 'nav.dashboard', href: '/dashboard.html' }, + { id: 'proxmox', iconClass: 'lnid-server-1', iconColor: '#22c55e', labelKey: 'nav.proxmox', href: '/proxmox.html' }, + { id: 'updates', iconClass: 'lnid-arrow-upward', iconColor: '#f59e0b', labelKey: 'nav.updates', href: '/updates.html' }, + { id: 'settings', iconClass: 'lnid-gear-1', iconColor: '#94a3b8', labelKey: 'nav.settings', href: '/settings.html' }, + { id: 'modules', iconClass: 'lnid-puzzle', iconColor: '#f472b6', labelKey: 'nav.modules', href: '/modules.html' }, + ] + + Alpine.data('sidebar', () => ({ + get collapsed() { return Alpine.store('ui').sidebarCollapsed }, + get currentPage() { return Alpine.store('ui').currentPage }, + + navItems: [..._coreNavItems], + + async init() { + await this.refreshNav() + }, + + async refreshNav() { + try { + const res = await apiFetch('/api/modules') + if (!res.ok) return + const allModules = await res.json() || [] + // Modules optionnels activés avec nav_href défini + const moduleItems = allModules + .filter(m => !m.is_core && m.is_enabled && m.nav_href) + .map(m => ({ + id: m.id, + iconClass: m.nav_icon || 'lnid-puzzle', + iconColor: m.nav_color || '#94a3b8', + labelKey: m.nav_label_key || `nav.${m.id}`, + href: m.nav_href, + })) + // Insérer entre Updates et Settings + const insertAt = _coreNavItems.findIndex(i => i.id === 'settings') + this.navItems = [ + ..._coreNavItems.slice(0, insertAt), + ...moduleItems, + ..._coreNavItems.slice(insertAt), + ] + } catch(e) {} + }, + + iconStyle(item) { + return this.isActive(item.id) ? '' : `color: ${item.iconColor}` + }, + + isActive(id) { + return this.currentPage === id + }, + + navigate(href) { + if (window.swup) { + window.swup.navigate(href) + } else { + window.location.href = href + } + }, + + t(key) { return Alpine.store('i18n').t(key) }, + toggle() { Alpine.store('ui').toggleSidebar() }, + })) + + // ── Composant: navbar ─────────────────────────────────────────────────── + Alpine.data('navbar', () => ({ + get theme() { return Alpine.store('ui').theme }, + get user() { return Alpine.store('auth').user }, + get lang() { return Alpine.store('i18n').lang }, + set lang(v) { /* x-model a besoin d'un setter ; @change gère la vraie MAJ */ }, + + toggleTheme() { Alpine.store('ui').toggleTheme() }, + logout() { Alpine.store('auth').logout() }, + async setLang(lang) { await Alpine.store('i18n').setLang(lang) }, + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: loginPage ──────────────────────────────────────────────── + Alpine.data('loginPage', () => ({ + username: '', + password: '', + error: '', + loading: false, + + init() { + // Afficher le message si la session a expiré avant la redirection + const msg = sessionStorage.getItem('pxp_auth_notice') + if (msg) { + sessionStorage.removeItem('pxp_auth_notice') + setTimeout(() => Alpine.store('toasts').warn(msg), 200) + } + }, + + async submit() { + this.error = '' + this.loading = true + try { + await Alpine.store('auth').login(this.username, this.password) + window.location.href = '/dashboard.html' + } catch (e) { + this.error = e.message + } finally { + this.loading = false + } + }, + + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: installPage ────────────────────────────────────────────── + Alpine.data('installPage', () => ({ + step: 1, + totalSteps: 4, + error: '', + loading: false, + sshTesting: false, + sshStatus: '', + + form: { + instance_name: 'ProxmoxPanel', + public_url: window.location.origin, + default_lang: 'fr', + ssh_host: '', + ssh_username: '', + ssh_password: '', + proxmox_url: '', + proxmox_token_id: '', + proxmox_token_secret: '', + }, + + async testSSH() { + this.sshTesting = true + this.sshStatus = '' + try { + const res = await fetch('/api/install/test-ssh', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + host: this.form.ssh_host, + username: this.form.ssh_username, + password: this.form.ssh_password, + }), + }) + this.sshStatus = res.ok ? 'ok' : 'error' + } catch { + this.sshStatus = 'error' + } finally { + this.sshTesting = false + } + }, + + nextStep() { + if (this.step < this.totalSteps) this.step++ + }, + prevStep() { + if (this.step > 1) this.step-- + }, + + async finish() { + this.loading = true + this.error = '' + try { + const res = await fetch('/api/install/configure', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(this.form), + }) + if (!res.ok) { + const d = await res.json().catch(() => ({})) + throw new Error(d.error || 'Erreur installation') + } + window.location.href = '/login.html' + } catch (e) { + this.error = e.message + } finally { + this.loading = false + } + }, + + t(key, vars) { return Alpine.store('i18n').t(key, vars) }, + })) + + // ── Composant: dashboardPage ──────────────────────────────────────────── + Alpine.data('dashboardPage', () => ({ + resources: [], + _unsubWS: null, + wsStatus: 'connecting', + editMode: false, + dragSrcIdx: null, + _dragOriginal: null, + hoveredWidgetId: null, + shortcuts: [], + + widgets: (function() { + const defaults = [ + { id: 'status', visible: true, size: 1, label: 'Statut LXC' }, + { id: 'lxc-list', visible: true, size: 1, label: 'Liste LXC' }, + { id: 'links', visible: false, size: 1, label: 'Raccourcis' }, + ] + try { + const saved = JSON.parse(localStorage.getItem('pxp_widgets') || 'null') + if (!saved) return defaults + const ids = saved.map(w => w.id) + return [...saved, ...defaults.filter(d => !ids.includes(d.id))] + } catch(e) { return defaults } + })(), + + saveWidgets() { localStorage.setItem('pxp_widgets', JSON.stringify(this.widgets)) }, + + // ── Edition + toggleEdit() { this.editMode = !this.editMode }, + + showWidget(id) { + const w = this.widgets.find(w => w.id === id) + if (w) { w.visible = true; this.saveWidgets() } + }, + + hideWidget(w) { + w.visible = false + this.saveWidgets() + }, + + // ── Resize via souris (bords de la tuile) + startResize(event, w) { + event.stopPropagation() + event.preventDefault() + const startX = event.clientX + const origSize = w.size || 1 + const onMove = (e) => { + const grid = this.$el.querySelector('.widgets-grid') + const col = grid ? (grid.offsetWidth / 2) : 400 + const dx = e.clientX - startX + if (origSize === 1 && dx > col * 0.3) w.size = 2 + else if (origSize === 2 && dx < -col * 0.3) w.size = 1 + else w.size = origSize + } + const onUp = () => { + this.saveWidgets() + document.removeEventListener('mousemove', onMove) + document.removeEventListener('mouseup', onUp) + } + document.addEventListener('mousemove', onMove) + document.addEventListener('mouseup', onUp) + }, + + // ── DnD — réorganisation live (les autres widgets se déplacent pendant le drag) + onDragStart(idx) { + this.dragSrcIdx = idx + this._dragOriginal = JSON.parse(JSON.stringify(this.widgets)) + }, + + onDragEnter(idx) { + if (this.dragSrcIdx === null || this.dragSrcIdx === idx) return + const moved = this.widgets.splice(this.dragSrcIdx, 1)[0] + this.widgets.splice(idx, 0, moved) + this.dragSrcIdx = idx + }, + + onDragEnd() { + // Annulation (pas de drop) → restaurer l'ordre original + if (this._dragOriginal) { + this.widgets = JSON.parse(JSON.stringify(this._dragOriginal)) + this._dragOriginal = null + } + this.dragSrcIdx = null + }, + + onDrop() { + this._dragOriginal = null // commit — ne pas restaurer dans onDragEnd + this.dragSrcIdx = null + this.saveWidgets() + }, + + // ── Data + async init() { + await this.fetchResources() + await this.connectWS() + await this.loadShortcuts() + }, + + destroy() { + if (this._unsubWS) { this._unsubWS(); this._unsubWS = null } + }, + + async loadShortcuts() { + try { + const res = await apiFetch('/api/settings') + if (res.ok) { + const data = await res.json() + if (data.dashboard_shortcuts) { + const parsed = JSON.parse(data.dashboard_shortcuts) + if (Array.isArray(parsed) && parsed.length > 0) this.shortcuts = parsed + } + } + } catch(e) { /* use defaults */ } + }, + + get displayShortcuts() { + return this.shortcuts.length ? this.shortcuts : [ + { href: '/proxmox.html', icon: 'lnid-server-1', label: 'Proxmox' }, + { href: '/terminal.html', icon: 'lnid-terminal', label: 'Terminal' }, + { href: '/updates.html', icon: 'lnid-arrow-upward', label: 'Updates' }, + ] + }, + + async fetchResources() { + try { + const res = await apiFetch('/api/proxmox/resources') + if (res.ok) { this.resources = await res.json() || []; this.wsStatus = 'connected' } + } catch (e) { /* WS prendra le relais */ } + }, + + async connectWS() { + const proto = location.protocol === 'https:' ? 'wss' : 'ws' + const token = encodeURIComponent(localStorage.getItem('pxp_token') || '') + const url = `${proto}://${location.host}/ws/proxmox?token=${token}` + this._unsubWS = await WsProxy.subscribe( + 'proxmox', url, + (data) => { + const msg = JSON.parse(data) + if (msg.type === 'resources_update') { this.resources = msg.payload || []; this.wsStatus = 'connected' } + }, + (status) => { this.wsStatus = status } + ) + }, + + get visibleWidgets() { return this.widgets.filter(w => w.visible) }, + get lxc() { return this.resources.filter(r => r.type === 'lxc') }, + get running() { return this.lxc.filter(r => r.status === 'running') }, + get stopped() { return this.lxc.filter(r => r.status !== 'running') }, + get lxcList() { return this.lxc }, + get vmList() { return this.resources.filter(r => r.type === 'qemu') }, + + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: profilePage ────────────────────────────────────────────── + Alpine.data('profilePage', () => ({ + theme: '', + sidebarPosition: '', + lang: '', + sessions: [], + sessionsLoading: true, + revoking: {}, + + async init() { + this.theme = Alpine.store('ui').theme + this.sidebarPosition = Alpine.store('ui').sidebarPosition + this.lang = Alpine.store('i18n').lang + await this.loadSessions() + }, + + setTheme(t) { + this.theme = t + Alpine.store('ui').theme = t + Alpine.store('ui').applyTheme() + localStorage.setItem('pxp_theme', t) + apiFetch('/api/auth/preferences', { method: 'PATCH', body: JSON.stringify({ theme: t }) }).catch(() => {}) + }, + + setSidebarPosition(pos) { + this.sidebarPosition = pos + Alpine.store('ui').setSidebarPosition(pos) + apiFetch('/api/auth/preferences', { method: 'PATCH', body: JSON.stringify({ sidebar_position: pos }) }).catch(() => {}) + }, + + async setLang(lang) { + this.lang = lang + await Alpine.store('i18n').setLang(lang) + apiFetch('/api/auth/preferences', { method: 'PATCH', body: JSON.stringify({ lang }) }).catch(() => {}) + }, + + async loadSessions() { + this.sessionsLoading = true + try { + const res = await apiFetch('/api/auth/sessions') + if (res.ok) this.sessions = await res.json() + } catch (e) { /* ignore */ } + this.sessionsLoading = false + }, + + async revokeSession(id) { + this.revoking[id] = true + try { + const res = await apiFetch(`/api/auth/sessions/${id}`, { method: 'DELETE' }) + if (res.ok) { + this.sessions = this.sessions.filter(s => s.id !== id) + Alpine.store('toasts').success('Session révoquée') + } else { + const d = await res.json().catch(() => ({})) + Alpine.store('toasts').error(d.error || 'Erreur révocation session') + } + } catch (e) { + Alpine.store('toasts').error(`Erreur réseau — ${e.message}`) + } finally { + this.revoking[id] = false + } + }, + + isRevoking(id) { return this.revoking[id] === true }, + + formatDate(raw) { + if (!raw) return '—' + // SQLite retourne "YYYY-MM-DD HH:MM:SS" ou RFC3339 selon le driver + // new Date() gère les deux si on normalise le séparateur + const d = new Date(raw.includes('T') ? raw : raw.replace(' ', 'T') + 'Z') + if (isNaN(d.getTime())) return raw + return d.toLocaleString('fr-FR', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit' }) + }, + + parseUA(ua) { + if (!ua) return 'Navigateur inconnu' + if (/Firefox\/(\d+)/i.test(ua)) return `Firefox ${RegExp.$1}` + if (/Chrome\/(\d+)/i.test(ua) && !/Chromium|Edge|OPR/i.test(ua)) return `Chrome ${RegExp.$1}` + if (/Edg\/(\d+)/i.test(ua)) return `Edge ${RegExp.$1}` + if (/Safari\//i.test(ua) && !/Chrome/i.test(ua)) return 'Safari' + if (/OPR\/(\d+)/i.test(ua)) return `Opera ${RegExp.$1}` + return ua.slice(0, 40) + }, + + get user() { return Alpine.store('auth').user }, + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: proxmoxPage ────────────────────────────────────────────── + Alpine.data('proxmoxPage', () => ({ + resources: [], + _unsubWS: null, + wsStatus: 'connecting', + actionLoading: {}, + + async init() { + await this.fetchResources() + await this.connectWS() + }, + destroy() { if (this._unsubWS) { this._unsubWS(); this._unsubWS = null } }, + + async fetchResources() { + try { + const res = await apiFetch('/api/proxmox/resources') + if (res.ok) { + this.resources = await res.json() || [] + this.wsStatus = 'connected' + } + } catch (e) { /* WS prendra le relais */ } + }, + + async connectWS() { + const proto = location.protocol === 'https:' ? 'wss' : 'ws' + const token = encodeURIComponent(localStorage.getItem('pxp_token') || '') + const url = `${proto}://${location.host}/ws/proxmox?token=${token}` + this._unsubWS = await WsProxy.subscribe( + 'proxmox', url, + (data) => { + const msg = JSON.parse(data) + if (msg.type === 'resources_update') { this.resources = msg.payload || []; this.wsStatus = 'connected' } + }, + (status) => { this.wsStatus = status } + ) + }, + + async action(vmid, type, action) { + const key = `${vmid}-${action}` + this.actionLoading[key] = true + try { + const res = await apiFetch(`/api/proxmox/${type}/${vmid}/${action}`, { method: 'POST' }) + if (res.ok) { + Alpine.store('toasts').success(`Action « ${action} » envoyée sur ${type} ${vmid}`) + } else { + const d = await res.json().catch(() => ({})) + Alpine.store('toasts').error(d.error || `Erreur action ${action} (HTTP ${res.status})`) + } + } catch(e) { + Alpine.store('toasts').error(`Erreur réseau — ${e.message}`) + } finally { + this.actionLoading[key] = false + } + }, + + cpuColor(pct) { + if (pct > 80) return 'var(--neu-danger)' + if (pct > 50) return 'var(--neu-warning)' + return 'var(--neu-success)' + }, + + formatMem(bytes) { + if (!bytes) return '0 MB' + return Math.round(bytes / 1024 / 1024) + ' MB' + }, + + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: updatesPage ────────────────────────────────────────────── + Alpine.data('updatesPage', () => ({ + targets: [], + loading: true, + ws: null, + currentJob: null, + output: '', + jobStatus: '', + activeTab: 'targets', + history: [], + historyLoading: false, + + async init() { + await this.loadTargets() + await this.checkAll() + }, + + destroy() { if (this.ws) this.ws.close() }, + + async loadTargets() { + this.loading = true + try { + const res = await apiFetch('/api/proxmox/resources') + if (res.ok) { + const resources = await res.json() || [] + this.targets = [ + { id: 'host', name: 'Proxmox Host', status: 'running', packages: null, checking: false, updating: false }, + ...resources + .filter(r => r.type === 'lxc') + .map(r => ({ + id: `lxc:${r.vmid}`, + name: r.name || `LXC ${r.vmid}`, + status: r.status, + vmid: r.vmid, + packages: null, + checking: false, + updating: false, + })), + ] + } + } catch(e) { + console.error('loadTargets', e) + } finally { + this.loading = false + } + }, + + async checkTarget(target) { + if (target.status !== 'running') return // container arrêté → pas de SSH possible + target.checking = true + target.packages = null + try { + const res = await apiFetch(`/api/updates/packages?target=${encodeURIComponent(target.id)}`) + if (res.ok) { + target.packages = await res.json() + } else { + target.packages = [] + } + } catch(e) { + console.error('checkTarget', e) + target.packages = [] + } finally { + target.checking = false + } + }, + + async checkAll() { + for (const t of this.targets) { + await this.checkTarget(t) + } + }, + + async updateTarget(target) { + target.updating = true + this.output = '' + this.jobStatus = 'running' + try { + const res = await apiFetch('/api/updates/run', { + method: 'POST', + body: JSON.stringify({ target: target.id }), + }) + if (!res.ok) throw new Error('Erreur démarrage mise à jour') + const data = await res.json() + this.currentJob = data.job_id + await this.watchJob(data.job_id) + target.packages = [] + } catch(e) { + this.output += '\n[ERREUR] ' + e.message + this.jobStatus = 'error' + } finally { + target.updating = false + } + }, + + async updateAll() { + this.output = '' + this.jobStatus = 'running' + try { + const res = await apiFetch('/api/updates/run', { + method: 'POST', + body: JSON.stringify({ target: 'all' }), + }) + if (!res.ok) throw new Error('Erreur démarrage') + const data = await res.json() + this.currentJob = data.job_id + await this.watchJob(data.job_id) + for (const t of this.targets) t.packages = [] + } catch(e) { + this.output += '\n[ERREUR] ' + e.message + this.jobStatus = 'error' + } + }, + + watchJob(jobId) { + return new Promise((resolve) => { + if (this.ws) this.ws.close() + const proto = location.protocol === 'https:' ? 'wss' : 'ws' + const token = localStorage.getItem('pxp_token') + this.ws = new WebSocket(`${proto}://${location.host}/ws/updates/${jobId}?token=${token}`) + this.ws.onmessage = (e) => { + const msg = JSON.parse(e.data) + // Le backend publie dans msg.payload (pas msg.data) + if (msg.type === 'update_output') { + this.output += msg.payload?.chunk || '' + } else if (msg.type === 'update_done') { + this.jobStatus = 'success' + resolve() + } else if (msg.type === 'update_error') { + this.jobStatus = 'error' + this.output += '\n[ERREUR] ' + (msg.payload?.error || '') + resolve() + } + } + this.ws.onerror = () => { this.jobStatus = 'error'; resolve() } + this.ws.onclose = () => { if (this.jobStatus === 'running') { this.jobStatus = 'error'; resolve() } } + }) + }, + + async loadHistory() { + this.historyLoading = true + try { + const res = await apiFetch('/api/updates/history') + if (res.ok) this.history = await res.json() || [] + } catch(e) { /* ignore */ } + this.historyLoading = false + }, + + formatDate(iso) { + if (!iso) return '—' + const d = new Date(iso) + return d.toLocaleString('fr-FR', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit' }) + }, + + get totalPackages() { + return this.targets.reduce((sum, t) => sum + (t.packages?.length || 0), 0) + }, + + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: settingsPage ───────────────────────────────────────────── + Alpine.data('settingsPage', () => ({ + tab: 'general', + loading: true, + saving: false, + saved: false, + error: '', + shortcuts: [], + repairModules: [], + repairLoading: false, + resetting: {}, + settings: { + instance_name: '', + public_url: '', + default_lang: 'fr', + ssh_host: '', + ssh_username: '', + ssh_password: '', // chiffré, laisser vide = pas de changement + proxmox_url: '', + proxmox_token: '', // chiffré, format: user@realm!tokenid=secret + }, + + async init() { + await this.load() + }, + + async load() { + this.loading = true + try { + const res = await apiFetch('/api/settings') + if (res.ok) { + const data = await res.json() + Object.assign(this.settings, data) + if (data.dashboard_shortcuts) { + try { this.shortcuts = JSON.parse(data.dashboard_shortcuts) } catch(e) { this.shortcuts = [] } + } + } + } finally { + this.loading = false + } + }, + + async save() { + this.saving = true + this.saved = false + this.error = '' + try { + // Backend: PUT /api/settings/{key} avec { value: "..." } — un appel par clé + const keys = Object.keys(this.settings) + for (const key of keys) { + const val = this.settings[key] + // Ignorer les champs vides pour les secrets (ne pas écraser l'existant) + if (val === '' && (key === 'ssh_password' || key === 'proxmox_token')) continue + const res = await apiFetch(`/api/settings/${key}`, { + method: 'PUT', + body: JSON.stringify({ value: val }), + }) + if (!res.ok) { + const d = await res.json().catch(() => ({})) + throw new Error(d.error || `Erreur sauvegarde de ${key}`) + } + } + this.saved = true + setTimeout(() => { this.saved = false }, 3000) + } catch(e) { + this.error = e.message + } finally { + this.saving = false + } + }, + + addShortcut() { + this.shortcuts.push({ label: '', href: '', icon: 'lnid-link-1' }) + }, + + removeShortcut(idx) { + this.shortcuts.splice(idx, 1) + }, + + async saveShortcuts() { + this.saving = true + this.saved = false + this.error = '' + try { + const res = await apiFetch('/api/settings/dashboard_shortcuts', { + method: 'PUT', + body: JSON.stringify({ value: JSON.stringify(this.shortcuts) }), + }) + if (!res.ok) { + const d = await res.json().catch(() => ({})) + throw new Error(d.error || 'Erreur sauvegarde raccourcis') + } + this.saved = true + setTimeout(() => { this.saved = false }, 3000) + } catch(e) { + this.error = e.message + } finally { + this.saving = false + } + }, + + async loadRepair() { + this.repairLoading = true + try { + const res = await apiFetch('/api/repair/modules') + if (res.ok) { + const data = await res.json() + this.repairModules = data.modules || [] + } + } finally { + this.repairLoading = false + } + }, + + async resetModule(mod) { + if (!confirm(`Supprimer "${mod.name || mod.id}" de la base de données ?\nLe module pourra être réinstallé depuis le Store.`)) return + this.resetting[mod.id] = true + try { + const res = await apiFetch(`/api/repair/modules/${mod.id}`, { method: 'DELETE' }) + if (res.ok) { + this.repairModules = this.repairModules.filter(m => m.id !== mod.id) + Alpine.store('toasts').success(`Module "${mod.name || mod.id}" supprimé de la DB`) + } else { + const d = await res.json().catch(() => ({})) + Alpine.store('toasts').error(d.error || 'Erreur suppression') + } + } catch(e) { + Alpine.store('toasts').error(e.message) + } finally { + this.resetting[mod.id] = false + } + }, + + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // ── Composant: modulesPage ────────────────────────────────────────────── + Alpine.data('modulesPage', () => ({ + modules: [], + loading: true, + toggling: {}, + storeModules: [], + storeLoading: true, + storeError: '', + installing: {}, + rebuilding: false, + rebuildDone: false, + _pollTimer: null, + + async init() { + await Promise.all([this.load(), this.loadStore()]) + }, + + destroy() { + if (this._pollTimer) clearInterval(this._pollTimer) + }, + + async load() { + this.loading = true + try { + const res = await apiFetch('/api/modules') + if (res.ok) this.modules = await res.json() || [] + } finally { + this.loading = false + } + }, + + async loadStore() { + this.storeLoading = true + this.storeError = '' + try { + const res = await apiFetch('/api/registry/modules') + if (res.ok) { + const data = await res.json() + this.storeModules = data.modules || [] + if (data.error) this.storeError = data.error + } else { + this.storeError = `Erreur serveur (HTTP ${res.status})` + this.storeModules = [] + } + } catch(e) { + this.storeError = 'Impossible de joindre le store : ' + e.message + this.storeModules = [] + } finally { + this.storeLoading = false + } + }, + + async toggle(mod) { + this.toggling[mod.id] = true + try { + const action = mod.is_enabled ? 'disable' : 'enable' + const res = await apiFetch(`/api/modules/${mod.id}/${action}`, { method: 'POST' }) + if (res.ok) { + const data = await res.json().catch(() => ({})) + mod.is_enabled = !mod.is_enabled + if (data.restarting) { + Alpine.store('toasts').info('Redémarrage du container en cours…') + this._startRebuildPoll() + } + // Rafraîchir la sidebar + const sb = document.querySelector('[x-data="sidebar()"]') + if (sb) { + const sidebarData = Alpine.$data(sb) + if (sidebarData?.refreshNav) await sidebarData.refreshNav() + } + } + } catch(e) { + console.error(e) + } finally { + this.toggling[mod.id] = false + } + }, + + async install(mod) { + this.installing[mod.id] = true + try { + const res = await apiFetch(`/api/registry/modules/${mod.id}/install`, { method: 'POST' }) + if (res.ok) { + const data = await res.json().catch(() => ({})) + mod.installed = true + if (data.rebuilding) { + this.rebuilding = true + Alpine.store('toasts').info(`Module ${mod.id} installé — rebuild en cours (~2 min)`) + this._startRebuildPoll() + } else { + Alpine.store('toasts').success(`Module ${mod.id} installé`) + } + await this.load() + } else { + const b = await res.json().catch(() => ({})) + Alpine.store('toasts').error(b.error || 'Erreur installation') + } + } catch(e) { + Alpine.store('toasts').error(e.message) + } finally { + this.installing[mod.id] = false + } + }, + + // Poll /api/health toutes les 3s pour détecter le retour du container après rebuild/restart. + _startRebuildPoll() { + if (this._pollTimer) return + // Attendre 5s avant de commencer à poller (le container est encore en train de s'arrêter) + setTimeout(() => { + this._pollTimer = setInterval(async () => { + try { + const res = await fetch('/api/health') + if (res.ok) { + clearInterval(this._pollTimer) + this._pollTimer = null + this.rebuilding = false + this.rebuildDone = true + } + } catch(_) { /* container encore hors ligne, on attend */ } + }, 3000) + }, 5000) + }, + + t(key) { return Alpine.store('i18n').t(key) }, + })) + + // Note: servicePage et logsPage ont été déplacés dans les modules + // indépendants viewServices et viewLogs. + +}) // end alpine:init + +// ── DOMContentLoaded : init stores + Swup ───────────────────────────────── + +document.addEventListener('DOMContentLoaded', async () => { + // Init stores + await Alpine.store('i18n').init() + await Alpine.store('auth').init() + Alpine.store('ui').init() + + const publicPages = ['login', 'install', 'index', ''] + const currentPage = window.location.pathname.replace(/^\/|\.html$/g, '') || 'index' + + // Guard auth : si pas authentifié (token absent ou invalid/expiré), redirect login + if (!publicPages.includes(currentPage) && !Alpine.store('auth').isAuthenticated) { + window.location.href = '/login.html' + return + } + + // Redirect depuis index + if (currentPage === 'index' || currentPage === '') { + const res = await fetch('/api/install/status').catch(() => null) + if (res && res.ok) { + const data = await res.json().catch(() => ({})) + window.location.href = data.installed ? '/login.html' : '/install.html' + } else { + window.location.href = '/login.html' + } + return + } + + // Init Swup pour transitions de page + if (typeof Swup !== 'undefined') { + const swup = new Swup({ + containers: ['#swup'], + animationSelector: '[class*="transition-"]', + }) + + window.swup = swup + + // Guard auth sur navigation + swup.hooks.on('visit:start', (visit) => { + const dest = new URL(visit.to.url, location.href).pathname + .replace(/^\/|\.html$/g, '') || 'index' + if (!publicPages.includes(dest) && !Alpine.store('auth').isAuthenticated) { + visit.abort() + window.location.href = '/login.html' + } + }) + + // Destroy Alpine scope de l'ancien contenu AVANT le swap + swup.hooks.on('animation:out:end', () => { + const container = document.getElementById('swup') + if (container && typeof Alpine.destroyTree === 'function') { + Alpine.destroyTree(container) + } + }) + + // Init Alpine sur le nouveau contenu APRÈS le swap + swup.hooks.on('content:replace', () => { + const container = document.getElementById('swup') + if (container) { + Alpine.initTree(container) + } + // Update current page dans UI store + Alpine.store('ui').currentPage = + window.location.pathname.replace(/^\/|\.html$/g, '') || 'index' + }) + } + + // HTMX : inject Authorization header sur toutes les requêtes + document.addEventListener('htmx:configRequest', (e) => { + const token = localStorage.getItem('pxp_token') + if (token) { + e.detail.headers['Authorization'] = 'Bearer ' + token + } + }) +}) diff --git a/frontend/js/terminal.js b/frontend/js/terminal.js new file mode 100644 index 0000000..d9d4c4d --- /dev/null +++ b/frontend/js/terminal.js @@ -0,0 +1,110 @@ +/** + * ProxmoxPanel — Terminal page logic + * xterm.js + WebSocket PTY + * Chargé uniquement sur terminal.html + */ + +document.addEventListener('DOMContentLoaded', () => { + // Les classes Terminal et FitAddon sont exposées par xterm.iife.js + if (typeof Terminal === 'undefined' || typeof FitAddon === 'undefined') { + console.error('xterm.js not loaded') + return + } + + const term = new Terminal({ + cursorBlink: true, + fontFamily: '"JetBrains Mono", "Fira Code", "Cascadia Code", monospace', + fontSize: 14, + theme: { + background: 'var(--bg-secondary, #1a1a2e)', + foreground: 'var(--text-primary, #e2e8f0)', + cursor: 'var(--accent-primary, #6366f1)', + }, + }) + + const fitAddon = new FitAddon() + term.loadAddon(fitAddon) + + const container = document.getElementById('terminal-container') + if (!container) return + + term.open(container) + fitAddon.fit() + + // Connexion WebSocket PTY + const proto = location.protocol === 'https:' ? 'wss' : 'ws' + const token = localStorage.getItem('pxp_token') + const ws = new WebSocket(`${proto}://${location.host}/ws/terminal?token=${encodeURIComponent(token || '')}`) + ws.binaryType = 'arraybuffer' + + const statusEl = document.getElementById('terminal-status') + function setStatus(text, cls) { + if (statusEl) { + statusEl.textContent = text + statusEl.className = 'terminal-status ' + (cls || '') + } + } + + setStatus('Connexion…', 'connecting') + + ws.onopen = () => { + setStatus('Connecté', 'connected') + // Envoyer la taille initiale du terminal + sendResize() + } + + ws.onmessage = (e) => { + if (e.data instanceof ArrayBuffer) { + term.write(new Uint8Array(e.data)) + } else { + term.write(e.data) + } + } + + ws.onclose = () => { + setStatus('Déconnecté', 'disconnected') + term.writeln('\r\n\x1b[31m[Connexion terminée]\x1b[0m') + } + + ws.onerror = () => { + setStatus('Erreur', 'error') + } + + // Envoyer l'input utilisateur au serveur + term.onData((data) => { + if (ws.readyState === WebSocket.OPEN) { + ws.send(data) + } + }) + + // Envoyer la taille du terminal lors du redimensionnement + function sendResize() { + if (ws.readyState === WebSocket.OPEN) { + ws.send(JSON.stringify({ + type: 'resize', + cols: term.cols, + rows: term.rows, + })) + } + } + + const resizeObserver = new ResizeObserver(() => { + fitAddon.fit() + sendResize() + }) + resizeObserver.observe(container) + + // Nettoyage quand Swup navigue hors de la page + document.addEventListener('swup:page:view', () => { + if (!document.getElementById('terminal-container')) { + ws.close() + resizeObserver.disconnect() + } + }) + + // Bouton "Effacer" + const clearBtn = document.getElementById('terminal-clear') + if (clearBtn) { + clearBtn.addEventListener('click', () => term.clear()) + } +}) diff --git a/frontend/js/ws.sw.js b/frontend/js/ws.sw.js new file mode 100644 index 0000000..6e15087 --- /dev/null +++ b/frontend/js/ws.sw.js @@ -0,0 +1,86 @@ +/** + * ProxmoxPanel — WebSocket Service Worker + * Maintient les connexions WS en vie entre les navigations Swup. + * Les pages s'abonnent/désabonnent via postMessage. + */ +'use strict' + +// channel → { ws: WebSocket|null, url: string, clientIds: Set, retryDelay: number } +const connections = new Map() + +self.addEventListener('install', () => self.skipWaiting()) + +self.addEventListener('activate', e => + e.waitUntil(self.clients.claim()) +) + +self.addEventListener('message', event => { + const { type, channel, url, payload } = event.data || {} + if (!channel) return + const clientId = event.source?.id + if (!clientId) return + + switch (type) { + case 'WS_SUBSCRIBE': { + let conn = connections.get(channel) + if (!conn) { + conn = { ws: null, url: null, clientIds: new Set(), retryDelay: 2000 } + connections.set(channel, conn) + } + conn.clientIds.add(clientId) + if (url) conn.url = url + ensureWS(channel) + break + } + case 'WS_UNSUBSCRIBE': { + const conn = connections.get(channel) + if (conn) conn.clientIds.delete(clientId) + break + } + case 'WS_SEND': { + const conn = connections.get(channel) + if (conn?.ws?.readyState === 1) conn.ws.send(payload) + break + } + } +}) + +function ensureWS(channel) { + const conn = connections.get(channel) + if (!conn?.url) return + if (conn.ws && conn.ws.readyState < 2) return // CONNECTING (0) ou OPEN (1) + + const ws = new WebSocket(conn.url) + conn.ws = ws + conn.retryDelay = 2000 + + notify(channel, 'WS_STATUS', { status: 'connecting' }) + + ws.onopen = () => { + conn.retryDelay = 2000 + notify(channel, 'WS_STATUS', { status: 'connected' }) + } + + ws.onmessage = e => notify(channel, 'WS_MESSAGE', { data: e.data }) + + ws.onerror = () => notify(channel, 'WS_STATUS', { status: 'error' }) + + ws.onclose = () => { + notify(channel, 'WS_STATUS', { status: 'disconnected' }) + // Backoff exponentiel plafonné à 30s + const delay = conn.retryDelay + conn.retryDelay = Math.min(conn.retryDelay * 1.5, 30000) + setTimeout(() => ensureWS(channel), delay) + } +} + +async function notify(channel, type, extra) { + const conn = connections.get(channel) + if (!conn || conn.clientIds.size === 0) return + const allClients = await self.clients.matchAll({ type: 'window' }) + for (const client of allClients) { + if (conn.clientIds.has(client.id)) { + client.postMessage({ channel, type, ...extra }) + } + } +} diff --git a/frontend/src/locales/en.json b/frontend/locales/en.json similarity index 86% rename from frontend/src/locales/en.json rename to frontend/locales/en.json index 82f6ab4..4ef7bee 100644 --- a/frontend/src/locales/en.json +++ b/frontend/locales/en.json @@ -8,7 +8,8 @@ "logs": "Logs", "services": "Services", "settings": "Settings", - "modules": "Modules" + "modules": "Modules", + "profile": "Profile" }, "navbar": { "darkMode": "Dark mode", @@ -114,6 +115,34 @@ "desc": "SFTP file browser", "moduleNotEnabled": "Module not enabled. Go to Settings → Modules to enable it." }, + "services": { + "desc": "systemd service management", + "target": "Target", + "filter": "Filter by name or description…", + "noServices": "No services found", + "name": "Service", + "status": "Status", + "substate": "Sub-state", + "description": "Description", + "start": "Start", + "stop": "Stop", + "restart": "Restart", + "reload": "Reload", + "enable": "Enable", + "disable": "Disable" + }, + "logs": { + "desc": "System journal viewer via journalctl", + "target": "Target", + "unit": "Unit", + "unitAll": "All units", + "lines": "Lines", + "follow": "Follow live", + "stopFollow": "Stop", + "clear": "Clear", + "noLogs": "No logs — click «Follow» to start", + "connecting": "Connecting…" + }, "settings": { "general": "General", "infrastructure": "Infrastructure", diff --git a/frontend/src/locales/fr.json b/frontend/locales/fr.json similarity index 86% rename from frontend/src/locales/fr.json rename to frontend/locales/fr.json index edc3e34..5bf2b82 100644 --- a/frontend/src/locales/fr.json +++ b/frontend/locales/fr.json @@ -8,7 +8,8 @@ "logs": "Journaux", "services": "Services", "settings": "Paramètres", - "modules": "Modules" + "modules": "Modules", + "profile": "Profil" }, "navbar": { "darkMode": "Mode sombre", @@ -114,6 +115,34 @@ "desc": "Navigateur de fichiers SFTP", "moduleNotEnabled": "Module non activé. Rendez-vous dans Paramètres → Modules pour l'activer." }, + "services": { + "desc": "Gestion des services systemd", + "target": "Cible", + "filter": "Filtrer par nom ou description…", + "noServices": "Aucun service trouvé", + "name": "Service", + "status": "Statut", + "substate": "Sous-état", + "description": "Description", + "start": "Démarrer", + "stop": "Arrêter", + "restart": "Redémarrer", + "reload": "Recharger", + "enable": "Activer", + "disable": "Désactiver" + }, + "logs": { + "desc": "Consultation des journaux système via journalctl", + "target": "Cible", + "unit": "Unité", + "unitAll": "Toutes les unités", + "lines": "Lignes", + "follow": "Suivre en temps réel", + "stopFollow": "Arrêter", + "clear": "Effacer", + "noLogs": "Aucun journal — cliquez sur « Suivre » pour démarrer", + "connecting": "Connexion en cours…" + }, "settings": { "general": "Général", "infrastructure": "Infrastructure", diff --git a/frontend/login.html b/frontend/login.html new file mode 100644 index 0000000..cfbe54c --- /dev/null +++ b/frontend/login.html @@ -0,0 +1,64 @@ + + + + + + + ProxmoxPanel — Connexion + + + + + + + + + + + + +
+
+ + +
+
+ + +
+ +
+ + +
+ + + + +
+
+
+ + + diff --git a/frontend/manifest.json b/frontend/manifest.json new file mode 100644 index 0000000..57d0ac8 --- /dev/null +++ b/frontend/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "ProxmoxPanel", + "short_name": "PxPanel", + "description": "Interface de gestion Proxmox", + "start_url": "/dashboard.html", + "display": "standalone", + "background_color": "#1a1a2e", + "theme_color": "#6c8ef4", + "icons": [ + { + "src": "/icons/icon.svg", + "sizes": "any", + "type": "image/svg+xml", + "purpose": "any maskable" + } + ] +} diff --git a/frontend/modules.html b/frontend/modules.html new file mode 100644 index 0000000..14b153c --- /dev/null +++ b/frontend/modules.html @@ -0,0 +1,158 @@ + + + + + + + ProxmoxPanel — Modules + + + + + + + + + + + + + + + +
+ + +
+
+ + +

Modules installés

+ +
+
Chargement… +
+ +
+ +

Aucun module installé

+
+ + +
+

Store

+ +
+

Modules disponibles depuis git.geronzi.fr/proxmoxPanel

+ + +
+ + +
+ +
+
Chargement du store… +
+ +
+ +

+ Aucun module disponible dans le store +

+
+ + +
+
+ Rebuild du container en cours (~1-2 min) — l'interface redémarrera automatiquement. +
+ + +
+ + Rebuild terminé. +
+ +
+
+
+ + + diff --git a/frontend/nginx.conf b/frontend/nginx.conf index ac4f5a0..2d7a465 100644 --- a/frontend/nginx.conf +++ b/frontend/nginx.conf @@ -1,6 +1,3 @@ -# Configuration Nginx pour le frontend ProxmoxPanel -# Sert les fichiers statiques et proxy les requêtes API/WebSocket vers le backend Go - user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; @@ -14,7 +11,6 @@ http { include /etc/nginx/mime.types; default_type application/octet-stream; - # Logs au format JSON pour faciliter l'analyse log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; @@ -23,7 +19,6 @@ http { sendfile on; keepalive_timeout 65; - # Compression gzip pour les assets statiques gzip on; gzip_vary on; gzip_min_length 1024; @@ -36,13 +31,13 @@ http { root /usr/share/nginx/html; index index.html; - # Cache agressif pour les assets avec hash dans le nom (Vite) + # Cache agressif pour JS/CSS location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { expires 1y; add_header Cache-Control "public, immutable"; } - # Proxy des requêtes API vers le backend Go + # Proxy API → backend Go location /api/ { proxy_pass http://backend:3001; proxy_http_version 1.1; @@ -50,10 +45,10 @@ http { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; - proxy_read_timeout 300s; # Timeout long pour les mises à jour apt + proxy_read_timeout 300s; } - # Proxy des connexions WebSocket + # Proxy WebSocket → backend Go location /ws/ { proxy_pass http://backend:3001; proxy_http_version 1.1; @@ -61,13 +56,32 @@ http { proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; - proxy_read_timeout 3600s; # 1 heure pour les sessions terminal + proxy_read_timeout 3600s; proxy_send_timeout 3600s; } - # SPA : toutes les autres routes servent index.html (Vue Router) + # Proxy modules → backend Go + location /viewLogs/ { + proxy_pass http://backend:3001; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /viewServices/ { + proxy_pass http://backend:3001; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + # URLs propres : /dashboard → /dashboard.html location / { - try_files $uri $uri/ /index.html; + try_files $uri $uri.html $uri/ /index.html; } } } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 63eef78..43c5341 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,255 +1,23 @@ { "name": "proxmoxpanel-frontend", - "version": "1.0.0", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "proxmoxpanel-frontend", - "version": "1.0.0", - "dependencies": { - "@codemirror/commands": "^6.8.0", - "@codemirror/lang-css": "^6.3.1", - "@codemirror/lang-html": "^6.4.10", - "@codemirror/lang-javascript": "^6.2.2", - "@codemirror/lang-json": "^6.0.1", - "@codemirror/lang-markdown": "^6.3.2", - "@codemirror/lang-python": "^6.1.7", - "@codemirror/language": "^6.10.8", - "@codemirror/state": "^6.5.1", - "@codemirror/theme-one-dark": "^6.1.2", - "@codemirror/view": "^6.36.3", - "@xterm/addon-attach": "^0.11.0", + "version": "2.0.0", + "devDependencies": { "@xterm/addon-fit": "^0.10.0", "@xterm/xterm": "^5.5.0", - "pinia": "^2.3.0", - "vue": "^3.5.13", - "vue-draggable-plus": "^0.6.0", - "vue-i18n": "^11.0.0", - "vue-router": "^4.5.0" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^5.2.1", - "typescript": "^5.7.3", - "vite": "^6.3.3", - "vue-tsc": "^2.2.10" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", - "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.20.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.1.tgz", - "integrity": "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.3.tgz", - "integrity": "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.6.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz", - "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.1.7" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.11", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.11.tgz", - "integrity": "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.12" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz", - "integrity": "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-json": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz", - "integrity": "sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-markdown": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.5.0.tgz", - "integrity": "sha512-0K40bZ35jpHya6FriukbgaleaqzBLZfOh7HuzqbMxBXkbYMJDxfF39c23xOgxFezR+3G+tR2/Mup+Xk865OMvw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.7.1", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.3.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/markdown": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-python": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.2.1.tgz", - "integrity": "sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==", - "license": "MIT", - "dependencies": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "node_modules/@codemirror/language": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.2.tgz", - "integrity": "sha512-jEPmz2nGGDxhRTg3lTpzmIyGKxz3Gp3SJES4b0nAuE5SWQoKdT5GoQ69cwMmFd+wvFUhYirtDTr0/DRHpQAyWg==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.5.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.9.5", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.5.tgz", - "integrity": "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.35.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.6.0.tgz", - "integrity": "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ==", - "license": "MIT", - "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", - "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.40.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.40.0.tgz", - "integrity": "sha512-WA0zdU7xfF10+5I3HhUUq3kqOx3KjqmtQ9lqZjfK7jtYk4G72YW9rezcSywpaUMCWOMlq+6E0pO1IWg1TNIhtg==", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.6.0", - "crelt": "^1.0.6", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" + "esbuild": "^0.24.0", + "swup": "^4.8.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -264,9 +32,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -281,9 +49,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -298,9 +66,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -315,9 +83,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -332,9 +100,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -349,9 +117,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -366,9 +134,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -383,9 +151,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -400,9 +168,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -417,9 +185,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -434,9 +202,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -451,9 +219,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -468,9 +236,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -485,9 +253,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -502,9 +270,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -519,9 +287,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -536,9 +304,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "cpu": [ "arm64" ], @@ -553,9 +321,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -570,9 +338,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "cpu": [ "arm64" ], @@ -587,9 +355,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -603,27 +371,10 @@ "node": ">=18" } }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -638,9 +389,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -655,9 +406,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -672,9 +423,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -688,729 +439,11 @@ "node": ">=18" } }, - "node_modules/@intlify/core-base": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.3.0.tgz", - "integrity": "sha512-NNX5jIwF4TJBe7RtSKDMOA6JD9mp2mRcBHAwt2X+Q8PvnZub0yj5YYXlFu2AcESdgQpEv/5Yx2uOCV/yh7YkZg==", - "license": "MIT", - "dependencies": { - "@intlify/devtools-types": "11.3.0", - "@intlify/message-compiler": "11.3.0", - "@intlify/shared": "11.3.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/devtools-types": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.3.0.tgz", - "integrity": "sha512-G9CNL4WpANWVdUjubOIIS7/D2j/0j+1KJmhBJxHilWNKr9mmt3IjFV3Hq4JoBP23uOoC5ynxz/FHZ42M+YxfGw==", - "license": "MIT", - "dependencies": { - "@intlify/core-base": "11.3.0", - "@intlify/shared": "11.3.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/message-compiler": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.3.0.tgz", - "integrity": "sha512-RAJp3TMsqohg/Wa7bVF3cChRhecSYBLrTCQSj7j0UtWVFLP+6iEJoE2zb7GU5fp+fmG5kCbUdzhmlAUCWXiUJw==", - "license": "MIT", - "dependencies": { - "@intlify/shared": "11.3.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/shared": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.3.0.tgz", - "integrity": "sha512-LC6P/uay7rXL5zZ5+5iRJfLs/iUN8apu9tm8YqQVmW3Uq3X4A0dOFUIDuAmB7gAC29wTHOS3EiN/IosNSz0eNQ==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@lezer/common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", - "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", - "license": "MIT" - }, - "node_modules/@lezer/css": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.3.1.tgz", - "integrity": "sha512-PYAKeUVBo3HFThruRyp/iK91SwiZJnzXh8QzkQlwijB5y+N5iB28+iLk78o2zmKqqV0uolNhCwFqB8LA7b0Svg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", - "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.13.tgz", - "integrity": "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.5.4.tgz", - "integrity": "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/json": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", - "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", - "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/markdown": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.6.3.tgz", - "integrity": "sha512-jpGm5Ps+XErS+xA4urw7ogEGkeZOahVQF21Z6oECF0sj+2liwZopd2+I8uH5I/vZsRuuze3OxBREIANLf6KKUw==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.5.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@lezer/python": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.18.tgz", - "integrity": "sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==", - "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", - "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/sortablejs": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.9.tgz", - "integrity": "sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==", - "license": "MIT" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", - "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", - "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/source-map": "2.4.15" - } - }, - "node_modules/@volar/source-map": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", - "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@volar/typescript": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", - "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "2.4.15", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.30.tgz", - "integrity": "sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@vue/shared": "3.5.30", - "entities": "^7.0.1", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.30.tgz", - "integrity": "sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==", - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.30", - "@vue/shared": "3.5.30" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.30.tgz", - "integrity": "sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@vue/compiler-core": "3.5.30", - "@vue/compiler-dom": "3.5.30", - "@vue/compiler-ssr": "3.5.30", - "@vue/shared": "3.5.30", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.21", - "postcss": "^8.5.8", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.30.tgz", - "integrity": "sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.30", - "@vue/shared": "3.5.30" - } - }, - "node_modules/@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" - }, - "node_modules/@vue/language-core": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz", - "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/language-core": "2.4.15", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^1.0.3", - "minimatch": "^9.0.3", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.30.tgz", - "integrity": "sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==", - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.30" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.30.tgz", - "integrity": "sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.30", - "@vue/shared": "3.5.30" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.30.tgz", - "integrity": "sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.30", - "@vue/runtime-core": "3.5.30", - "@vue/shared": "3.5.30", - "csstype": "^3.2.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.30.tgz", - "integrity": "sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==", - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.30", - "@vue/shared": "3.5.30" - }, - "peerDependencies": { - "vue": "3.5.30" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.30.tgz", - "integrity": "sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==", - "license": "MIT" - }, - "node_modules/@xterm/addon-attach": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@xterm/addon-attach/-/addon-attach-0.11.0.tgz", - "integrity": "sha512-JboCN0QAY6ZLY/SSB/Zl2cQ5zW1Eh4X3fH7BnuR1NB7xGRhzbqU2Npmpiw/3zFlxDaU88vtKzok44JKi2L2V2Q==", - "license": "MIT", - "peerDependencies": { - "@xterm/xterm": "^5.0.0" - } - }, "node_modules/@xterm/addon-fit": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", + "dev": true, "license": "MIT", "peerDependencies": { "@xterm/xterm": "^5.0.0" @@ -1420,67 +453,26 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==", - "license": "MIT" - }, - "node_modules/alien-signals": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", - "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", "dev": true, "license": "MIT" }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "node_modules/delegate-it": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/delegate-it/-/delegate-it-6.3.0.tgz", + "integrity": "sha512-WAa6cA61M5mfDR31PBgMNQQ3LY1q++TxnZzcm7E9XV8ODBPxDutxH0toTR/BXqIkLaVuU7ntFe1uOqDllhA22A==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true, - "license": "MIT" - }, - "node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" + "typed-query-selector": "^2.11.2" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/fregante" } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1491,503 +483,67 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "license": "MIT" - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true, "license": "MIT", "bin": { - "he": "bin/he" + "opencollective-postinstall": "index.js" } }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", "dev": true, "license": "MIT" }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pinia": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", - "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.6.3", - "vue-demi": "^0.14.10" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "typescript": ">=4.4.4", - "vue": "^2.7.0 || ^3.5.11" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "node_modules/swup": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/swup/-/swup-4.8.3.tgz", + "integrity": "sha512-2U+mE7SnU4Jm+H82C2FChML04v5kb+fnf+2aYP2e0MX7vWOnmd6SHvjSBF8MH3HOrwalaXnynQVImgCaxGZxtA==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", - "fsevents": "~2.3.2" + "delegate-it": "^6.0.0", + "opencollective-postinstall": "^2.0.2", + "path-to-regexp": "^6.2.1" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-mod": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", - "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "node_modules/typed-query-selector": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz", + "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==", "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vscode-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", - "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/vue": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.30.tgz", - "integrity": "sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.30", - "@vue/compiler-sfc": "3.5.30", - "@vue/runtime-dom": "3.5.30", - "@vue/server-renderer": "3.5.30", - "@vue/shared": "3.5.30" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-demi": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", - "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-draggable-plus": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/vue-draggable-plus/-/vue-draggable-plus-0.6.1.tgz", - "integrity": "sha512-FbtQ/fuoixiOfTZzG3yoPl4JAo9HJXRHmBQZFB9x2NYCh6pq0TomHf7g5MUmpaDYv+LU2n6BPq2YN9sBO+FbIg==", - "license": "MIT", - "dependencies": { - "@types/sortablejs": "^1.15.8" - }, - "peerDependencies": { - "@types/sortablejs": "^1.15.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue-i18n": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.3.0.tgz", - "integrity": "sha512-1J+xDfDJTLhDxElkd3+XUhT7FYSZd2b8pa7IRKGxhWH/8yt6PTvi3xmWhGwhYT5EaXdatui11pF2R6tL73/zPA==", - "license": "MIT", - "dependencies": { - "@intlify/core-base": "11.3.0", - "@intlify/devtools-types": "11.3.0", - "@intlify/shared": "11.3.0", - "@vue/devtools-api": "^6.5.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-router": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", - "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.6.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/vue-tsc": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.12.tgz", - "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@volar/typescript": "2.4.15", - "@vue/language-core": "2.2.12" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": ">=5.0.0" - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", "license": "MIT" } } diff --git a/frontend/package.json b/frontend/package.json index d06edf2..b7d4f4a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,37 +1,15 @@ { "name": "proxmoxpanel-frontend", - "version": "1.0.0", + "version": "2.0.0", "private": true, + "type": "module", "scripts": { - "dev": "vite", - "build": "vue-tsc --noEmit && vite build", - "preview": "vite preview" - }, - "dependencies": { - "vue": "^3.5.13", - "vue-router": "^4.5.0", - "pinia": "^2.3.0", - "vue-i18n": "^11.0.0", - "@xterm/xterm": "^5.5.0", - "@xterm/addon-fit": "^0.10.0", - "@xterm/addon-attach": "^0.11.0", - "@codemirror/state": "^6.5.1", - "@codemirror/view": "^6.36.3", - "@codemirror/commands": "^6.8.0", - "@codemirror/language": "^6.10.8", - "@codemirror/lang-javascript": "^6.2.2", - "@codemirror/lang-json": "^6.0.1", - "@codemirror/lang-css": "^6.3.1", - "@codemirror/lang-html": "^6.4.10", - "@codemirror/lang-python": "^6.1.7", - "@codemirror/lang-markdown": "^6.3.2", - "@codemirror/theme-one-dark": "^6.1.2", - "vue-draggable-plus": "^0.6.0" + "build": "node build.mjs" }, "devDependencies": { - "@vitejs/plugin-vue": "^5.2.1", - "typescript": "^5.7.3", - "vite": "^6.3.3", - "vue-tsc": "^2.2.10" + "swup": "^4.8.0", + "@xterm/xterm": "^5.5.0", + "@xterm/addon-fit": "^0.10.0", + "esbuild": "^0.24.0" } } diff --git a/frontend/profile.html b/frontend/profile.html new file mode 100644 index 0000000..cb98fa0 --- /dev/null +++ b/frontend/profile.html @@ -0,0 +1,198 @@ + + + + + + + ProxmoxPanel — Profil + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+

+ + Compte +

+
+
+ Utilisateur + +
+
+ Rôle + + + +
+
+
+ + +
+

+ + Apparence +

+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+

+ + Langue +

+
+ +
+ + +
+
+
+ + +
+

+ + Sessions actives +

+ +
+
+
+ +
+ + +
+
+ + +
+ +
+ +
+
+
+ + + diff --git a/frontend/proxmox.html b/frontend/proxmox.html new file mode 100644 index 0000000..22eaee0 --- /dev/null +++ b/frontend/proxmox.html @@ -0,0 +1,141 @@ + + + + + + + ProxmoxPanel — Proxmox + + + + + + + + + + + + + + + +
+ + +
+
+ +
+ ⌛ Connexion WebSocket… + ● Live + ● Live + ⚠ Reconnexion… + ✗ Erreur WebSocket +
+ + +
+

Containers LXC

+
+ +
+

Aucun container LXC

+
+ + +
+

Machines virtuelles

+
+ +
+

Aucune VM

+
+
+
+
+ + + diff --git a/frontend/settings.html b/frontend/settings.html new file mode 100644 index 0000000..a37f218 --- /dev/null +++ b/frontend/settings.html @@ -0,0 +1,238 @@ + + + + + + + ProxmoxPanel — Paramètres + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+
+ Chargement… +
+ + +
+
+
+ + + diff --git a/frontend/src/App.vue b/frontend/src/App.vue deleted file mode 100644 index 23cc868..0000000 --- a/frontend/src/App.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - diff --git a/frontend/src/components/Layout.vue b/frontend/src/components/Layout.vue deleted file mode 100644 index e057acf..0000000 --- a/frontend/src/components/Layout.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - - - diff --git a/frontend/src/components/Navbar.vue b/frontend/src/components/Navbar.vue deleted file mode 100644 index 970093b..0000000 --- a/frontend/src/components/Navbar.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue deleted file mode 100644 index cace0ae..0000000 --- a/frontend/src/components/Sidebar.vue +++ /dev/null @@ -1,292 +0,0 @@ - - - - - diff --git a/frontend/src/main.ts b/frontend/src/main.ts deleted file mode 100644 index b2ecc37..0000000 --- a/frontend/src/main.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Point d'entrée de l'application ProxmoxPanel Frontend. -// Initialise Vue 3, Pinia, Vue Router et vue-i18n. -import { createApp } from 'vue' -import { createPinia } from 'pinia' -import { createI18n } from 'vue-i18n' - -import App from './App.vue' -import router from './router/index' - -// Imports des fichiers de traduction (locaux, pas de CDN) -import fr from './locales/fr.json' -import en from './locales/en.json' - -// Styles Neumorphism — chargés globalement -import './styles/neu.css' -import './styles/dark.css' -import './styles/light.css' - -// Déterminer la locale initiale (localStorage > défaut 'fr') -const savedLocale = localStorage.getItem('pxp_locale') || 'fr' - -// Initialisation vue-i18n -const i18n = createI18n({ - legacy: false, // Utiliser la Composition API - locale: savedLocale, - fallbackLocale: 'en', - messages: { fr, en }, -}) - -const pinia = createPinia() -const app = createApp(App) - -app.use(pinia) -app.use(router) -app.use(i18n) - -app.mount('#app') diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts deleted file mode 100644 index 029db82..0000000 --- a/frontend/src/router/index.ts +++ /dev/null @@ -1,129 +0,0 @@ -// Configuration du routeur Vue — gère la navigation et la protection des routes. -import { createRouter, createWebHistory } from 'vue-router' -import { useAuthStore } from '@/stores/auth.store' - -const router = createRouter({ - history: createWebHistory(), - routes: [ - // Page d'installation (premier lancement) - { - path: '/install', - name: 'install', - component: () => import('@/views/Install.vue'), - meta: { public: true, hideLayout: true }, - }, - - // Authentification - { - path: '/login', - name: 'login', - component: () => import('@/views/Login.vue'), - meta: { public: true, hideLayout: true }, - }, - - // Application principale (protégée) - { - path: '/', - component: () => import('@/components/Layout.vue'), - meta: { requiresAuth: true }, - children: [ - { - path: '', - name: 'dashboard', - component: () => import('@/views/Dashboard.vue'), - }, - { - path: 'proxmox', - name: 'proxmox', - component: () => import('@/views/Proxmox.vue'), - }, - { - path: 'updates', - name: 'updates', - component: () => import('@/views/Updates.vue'), - }, - { - path: 'files', - name: 'files', - component: () => import('@/views/Files.vue'), - meta: { module: 'files' }, - }, - { - path: 'terminal', - name: 'terminal', - component: () => import('@/views/Terminal.vue'), - meta: { module: 'terminal' }, - }, - { - path: 'logs', - name: 'logs', - component: () => import('@/views/Logs.vue'), - meta: { module: 'logs' }, - }, - { - path: 'services', - name: 'services', - component: () => import('@/views/Services.vue'), - meta: { module: 'services' }, - }, - { - path: 'settings', - name: 'settings', - component: () => import('@/views/Settings.vue'), - }, - { - path: 'modules', - name: 'modules', - component: () => import('@/views/Modules.vue'), - meta: { requiresAdmin: true }, - }, - ], - }, - - // Redirection 404 - { - path: '/:pathMatch(.*)*', - redirect: '/', - }, - ], -}) - -// Guard de navigation : vérification authentification et installation -router.beforeEach(async (to) => { - const authStore = useAuthStore() - - // Au premier chargement : vérifier l'installation ET restaurer la session - if (!authStore.installChecked) { - await authStore.checkInstallation() - await authStore.restoreSession() - } - - // Rediriger vers l'installation si pas encore configuré - if (!authStore.isInstalled && to.name !== 'install') { - return { name: 'install' } - } - - // Si installé et route d'install → rediriger vers le dashboard - if (authStore.isInstalled && to.name === 'install') { - return { name: 'dashboard' } - } - - // Routes publiques — passer directement - if (to.meta.public) return true - - // Routes protégées — vérifier l'authentification - if (to.meta.requiresAuth || to.matched.some(r => r.meta.requiresAuth)) { - if (!authStore.isAuthenticated) { - return { name: 'login', query: { redirect: to.fullPath } } - } - } - - // Routes admin uniquement - if (to.meta.requiresAdmin && !authStore.user?.is_admin) { - return { name: 'dashboard' } - } - - return true -}) - -export default router diff --git a/frontend/src/stores/auth.store.ts b/frontend/src/stores/auth.store.ts deleted file mode 100644 index 8886723..0000000 --- a/frontend/src/stores/auth.store.ts +++ /dev/null @@ -1,218 +0,0 @@ -// Store d'authentification — gère la session JWT, le profil utilisateur et l'état d'installation. -import { defineStore } from 'pinia' -import { ref, computed } from 'vue' - -export interface User { - id: number - username: string - is_admin: boolean - lang: string - theme: string - sidebar_position: string -} - -export const useAuthStore = defineStore('auth', () => { - // État - const user = ref(null) - const accessToken = ref(localStorage.getItem('pxp_token')) - const isInstalled = ref(false) - const installChecked = ref(false) - - // Computed - const isAuthenticated = computed(() => !!accessToken.value && !!user.value) - - // ── Actions ────────────────────────────────────────────────────────────── - - /** - * Vérifie si l'application est installée via l'API. - * Appelé une seule fois au démarrage par le router guard. - */ - async function checkInstallation(): Promise { - try { - const res = await fetch('/api/install/check') - if (res.ok) { - const data = await res.json() - isInstalled.value = data.installed - } - } catch { - // En cas d'erreur réseau, on suppose installé pour éviter une boucle - isInstalled.value = true - } finally { - installChecked.value = true - } - } - - /** - * Authentifie l'utilisateur avec ses credentials Linux. - */ - async function login(username: string, password: string): Promise { - const res = await fetch('/api/auth/login', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ username, password }), - }) - - if (!res.ok) { - const contentType = res.headers.get('content-type') || '' - if (contentType.includes('application/json')) { - const err = await res.json() - throw new Error(err.error || 'Erreur d\'authentification') - } - throw new Error(`Erreur ${res.status} — réponse inattendue du serveur`) - } - - const data = await res.json() - accessToken.value = data.access_token - localStorage.setItem('pxp_token', data.access_token) - user.value = data.user - - // Planifier le renouvellement automatique avant expiration (14 min) - scheduleRefresh(14 * 60 * 1000) - } - - /** - * Restaure la session au démarrage de l'application (après F5). - * 1. Essaie fetchMe() avec le token existant (marche si < 15 min) - * 2. Si le token est expiré, tente le refresh via le cookie httpOnly - */ - async function restoreSession(): Promise { - if (!accessToken.value) return - - // Le token est peut-être encore valide : évite d'avoir besoin du cookie - await fetchMe() - if (user.value) { - scheduleRefresh(14 * 60 * 1000) - return - } - - // Token expiré — tenter le refresh via le cookie httpOnly - try { - const res = await fetch('/api/auth/refresh', { - method: 'POST', - credentials: 'include', - }) - if (res.ok) { - const data = await res.json() - accessToken.value = data.access_token - localStorage.setItem('pxp_token', data.access_token) - await fetchMe() - if (user.value) scheduleRefresh(14 * 60 * 1000) - } else { - // Le refresh a explicitement échoué (cookie absent ou expiré) - clearSession() - } - } catch { - // Erreur réseau transitoire — ne pas effacer le token, laisser le guard rediriger - } - } - - /** - * Tente de renouveler le token via le cookie httpOnly (pxp_refresh). - * Utilisé par le timer automatique (14 min après login). - */ - async function tryRefresh(): Promise { - const token = localStorage.getItem('pxp_token') - if (!token) return - - try { - const res = await fetch('/api/auth/refresh', { - method: 'POST', - credentials: 'include', - }) - - if (res.ok) { - const data = await res.json() - accessToken.value = data.access_token - localStorage.setItem('pxp_token', data.access_token) - await fetchMe() - scheduleRefresh(14 * 60 * 1000) - } else { - clearSession() - } - } catch { - clearSession() - } - } - - /** - * Charge le profil de l'utilisateur connecté. - */ - async function fetchMe(): Promise { - if (!accessToken.value) return - - const res = await fetch('/api/auth/me', { - headers: { Authorization: `Bearer ${accessToken.value}` }, - }) - - if (res.ok) { - user.value = await res.json() - } - } - - /** - * Déconnecte l'utilisateur. - */ - async function logout(): Promise { - try { - await fetch('/api/auth/logout', { - method: 'POST', - headers: { Authorization: `Bearer ${accessToken.value}` }, - credentials: 'include', - }) - } finally { - clearSession() - } - } - - /** - * Met à jour les préférences de l'utilisateur (thème, langue, sidebar). - */ - async function updatePreferences(prefs: Partial>): Promise { - if (!accessToken.value) return - - await fetch('/api/auth/preferences', { - method: 'PATCH', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${accessToken.value}`, - }, - body: JSON.stringify(prefs), - }) - - // Mettre à jour localement - if (user.value) { - Object.assign(user.value, prefs) - } - } - - // ── Helpers privés ──────────────────────────────────────────────────────── - - let refreshTimer: ReturnType | null = null - - function scheduleRefresh(delayMs: number): void { - if (refreshTimer) clearTimeout(refreshTimer) - refreshTimer = setTimeout(() => tryRefresh(), delayMs) - } - - function clearSession(): void { - user.value = null - accessToken.value = null - localStorage.removeItem('pxp_token') - if (refreshTimer) clearTimeout(refreshTimer) - } - - return { - user, - accessToken, - isInstalled, - installChecked, - isAuthenticated, - checkInstallation, - login, - logout, - restoreSession, - tryRefresh, - fetchMe, - updatePreferences, - } -}) diff --git a/frontend/src/stores/ui.store.ts b/frontend/src/stores/ui.store.ts deleted file mode 100644 index ee4f1f7..0000000 --- a/frontend/src/stores/ui.store.ts +++ /dev/null @@ -1,84 +0,0 @@ -// Store UI — gère le thème (dark/light) et la position de la sidebar. -// Les préférences sont persistées localement et synchronisées avec le serveur. -import { defineStore } from 'pinia' -import { ref } from 'vue' - -export type Theme = 'dark' | 'light' -export type SidebarPosition = 'left' | 'right' - -export const useUiStore = defineStore('ui', () => { - const theme = ref('dark') - const sidebarPosition = ref('left') - const sidebarCollapsed = ref(false) - const mobileMenuOpen = ref(false) - - /** - * Initialise le thème depuis les préférences locales. - * Appelé au montage de App.vue. - */ - function initTheme(): void { - const savedTheme = localStorage.getItem('pxp_theme') as Theme | null - const savedSidebar = localStorage.getItem('pxp_sidebar') as SidebarPosition | null - - if (savedTheme === 'dark' || savedTheme === 'light') { - theme.value = savedTheme - } - if (savedSidebar === 'left' || savedSidebar === 'right') { - sidebarPosition.value = savedSidebar - } - - applyTheme(theme.value) - } - - /** - * Bascule entre thème sombre et clair. - */ - function toggleTheme(): void { - theme.value = theme.value === 'dark' ? 'light' : 'dark' - localStorage.setItem('pxp_theme', theme.value) - applyTheme(theme.value) - } - - /** - * Définit le thème explicitement. - */ - function setTheme(newTheme: Theme): void { - theme.value = newTheme - localStorage.setItem('pxp_theme', newTheme) - applyTheme(newTheme) - } - - /** - * Définit la position de la sidebar. - */ - function setSidebarPosition(pos: SidebarPosition): void { - sidebarPosition.value = pos - localStorage.setItem('pxp_sidebar', pos) - } - - /** - * Bascule l'état réduit de la sidebar. - */ - function toggleSidebarCollapse(): void { - sidebarCollapsed.value = !sidebarCollapsed.value - } - - /** - * Applique le thème sur l'élément via data-theme. - */ - function applyTheme(t: Theme): void { - document.documentElement.setAttribute('data-theme', t) - } - - return { - theme, - sidebarPosition, - sidebarCollapsed, - mobileMenuOpen, - initTheme, - toggleTheme, - setTheme, - setSidebarPosition, - toggleSidebarCollapse, - } -}) diff --git a/frontend/src/views/Dashboard.vue b/frontend/src/views/Dashboard.vue deleted file mode 100644 index 7be64e3..0000000 --- a/frontend/src/views/Dashboard.vue +++ /dev/null @@ -1,393 +0,0 @@ - - - - - diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue deleted file mode 100644 index b8a2080..0000000 --- a/frontend/src/views/Files.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/frontend/src/views/Install.vue b/frontend/src/views/Install.vue deleted file mode 100644 index d3111a3..0000000 --- a/frontend/src/views/Install.vue +++ /dev/null @@ -1,487 +0,0 @@ - - - - - diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue deleted file mode 100644 index c99e37f..0000000 --- a/frontend/src/views/Login.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - - - diff --git a/frontend/src/views/Logs.vue b/frontend/src/views/Logs.vue deleted file mode 100644 index e8d97be..0000000 --- a/frontend/src/views/Logs.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/frontend/src/views/Modules.vue b/frontend/src/views/Modules.vue deleted file mode 100644 index bb7112a..0000000 --- a/frontend/src/views/Modules.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/frontend/src/views/Proxmox.vue b/frontend/src/views/Proxmox.vue deleted file mode 100644 index 975adf3..0000000 --- a/frontend/src/views/Proxmox.vue +++ /dev/null @@ -1,290 +0,0 @@ - - - - - diff --git a/frontend/src/views/Services.vue b/frontend/src/views/Services.vue deleted file mode 100644 index 2e2485d..0000000 --- a/frontend/src/views/Services.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue deleted file mode 100644 index 5fef691..0000000 --- a/frontend/src/views/Settings.vue +++ /dev/null @@ -1,403 +0,0 @@ - - - - - diff --git a/frontend/src/views/Terminal.vue b/frontend/src/views/Terminal.vue deleted file mode 100644 index d4b849f..0000000 --- a/frontend/src/views/Terminal.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/frontend/src/views/Updates.vue b/frontend/src/views/Updates.vue deleted file mode 100644 index 233f3db..0000000 --- a/frontend/src/views/Updates.vue +++ /dev/null @@ -1,424 +0,0 @@ - - - - - diff --git a/frontend/swup-bundle.entry.mjs b/frontend/swup-bundle.entry.mjs new file mode 100644 index 0000000..9184051 --- /dev/null +++ b/frontend/swup-bundle.entry.mjs @@ -0,0 +1 @@ +export { default as Swup } from 'swup' diff --git a/frontend/terminal.html b/frontend/terminal.html new file mode 100644 index 0000000..44c38b0 --- /dev/null +++ b/frontend/terminal.html @@ -0,0 +1,70 @@ + + + + + + + ProxmoxPanel — Terminal + + + + + + + + + + + + + + + + + + +
+ + +
+
+ ⌛ Connexion… + +
+
+
+
+ + + diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json deleted file mode 100644 index 66a5553..0000000 --- a/frontend/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "useDefineForClassFields": true, - "module": "ESNext", - "lib": ["ES2022", "DOM", "DOM.Iterable"], - "skipLibCheck": true, - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "preserve", - "strict": true, - "noUnusedLocals": false, - "noUnusedParameters": false, - "noFallthroughCasesInSwitch": true, - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json deleted file mode 100644 index 97ede7e..0000000 --- a/frontend/tsconfig.node.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true, - "strict": true - }, - "include": ["vite.config.ts"] -} diff --git a/frontend/updates.html b/frontend/updates.html new file mode 100644 index 0000000..032e0f8 --- /dev/null +++ b/frontend/updates.html @@ -0,0 +1,201 @@ + + + + + + + ProxmoxPanel — Mises à jour + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+ + +
+ + +
+ + +
+
+ + paquets à mettre à jour + +
+
+ + +
+
+ + +
+
+ Chargement des cibles… +
+ + +
+ +
+ + +
+
+ Job + +
+

+      
+ +
+ + +
+
+
+ Chargement… +
+
+

Aucune mise à jour effectuée

+
+
+ Job + Cible + Statut + Date + Durée +
+ +
+
+
+ +
+
+
+ + + diff --git a/frontend/vendors/alpine.min.js b/frontend/vendors/alpine.min.js new file mode 100644 index 0000000..2fdd6ec --- /dev/null +++ b/frontend/vendors/alpine.min.js @@ -0,0 +1,5 @@ +(()=>{var nt=!1,it=!1,W=[],ot=-1;function Ut(e){Rn(e)}function Rn(e){W.includes(e)||W.push(e),Mn()}function Wt(e){let t=W.indexOf(e);t!==-1&&t>ot&&W.splice(t,1)}function Mn(){!it&&!nt&&(nt=!0,queueMicrotask(Nn))}function Nn(){nt=!1,it=!0;for(let e=0;ee.effect(t,{scheduler:r=>{st?Ut(r):r()}}),at=e.raw}function ct(e){N=e}function Yt(e){let t=()=>{};return[n=>{let i=N(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),$(i))},i},()=>{t()}]}function ve(e,t){let r=!0,n,i=N(()=>{let o=e();JSON.stringify(o),r?n=o:queueMicrotask(()=>{t(o,n),n=o}),r=!1});return()=>$(i)}var Xt=[],Zt=[],Qt=[];function er(e){Qt.push(e)}function te(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Zt.push(t))}function Ae(e){Xt.push(e)}function Oe(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function lt(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function tr(e){for(e._x_effects?.forEach(Wt);e._x_cleanups?.length;)e._x_cleanups.pop()()}var ut=new MutationObserver(mt),ft=!1;function ue(){ut.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ft=!0}function dt(){kn(),ut.disconnect(),ft=!1}var le=[];function kn(){let e=ut.takeRecords();le.push(()=>e.length>0&&mt(e));let t=le.length;queueMicrotask(()=>{if(le.length===t)for(;le.length>0;)le.shift()()})}function m(e){if(!ft)return e();dt();let t=e();return ue(),t}var pt=!1,Se=[];function rr(){pt=!0}function nr(){pt=!1,mt(Se),Se=[]}function mt(e){if(pt){Se=Se.concat(e);return}let t=[],r=new Set,n=new Map,i=new Map;for(let o=0;o{s.nodeType===1&&s._x_marker&&r.add(s)}),e[o].addedNodes.forEach(s=>{if(s.nodeType===1){if(r.has(s)){r.delete(s);return}s._x_marker||t.push(s)}})),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{lt(s,o)}),n.forEach((o,s)=>{Xt.forEach(a=>a(s,o))});for(let o of r)t.some(s=>s.contains(o))||Zt.forEach(s=>s(o));for(let o of t)o.isConnected&&Qt.forEach(s=>s(o));t=null,r=null,n=null,i=null}function Ce(e){return z(B(e))}function k(e,t,r){return e._x_dataStack=[t,...B(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function B(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?B(e.host):e.parentNode?B(e.parentNode):[]}function z(e){return new Proxy({objects:e},Dn)}var Dn={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?Pn:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){let i=e.find(s=>Object.prototype.hasOwnProperty.call(s,t))||e[e.length-1],o=Object.getOwnPropertyDescriptor(i,t);return o?.set&&o?.get?o.set.call(n,r)||!0:Reflect.set(i,t,r)}};function Pn(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Te(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0||typeof s=="object"&&s!==null&&s.__v_skip)return;let c=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function Re(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>In(n,i),s=>ht(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function In(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function ht(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),ht(e[t[0]],t.slice(1),r)}}var ir={};function y(e,t){ir[e]=t}function fe(e,t){let r=Ln(t);return Object.entries(ir).forEach(([n,i])=>{Object.defineProperty(e,`$${n}`,{get(){return i(t,r)},enumerable:!1})}),e}function Ln(e){let[t,r]=_t(e),n={interceptor:Re,...t};return te(e,r),n}function or(e,t,r,...n){try{return r(...n)}catch(i){re(i,e,t)}}function re(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} + +${r?'Expression: "'+r+`" + +`:""}`,t),setTimeout(()=>{throw e},0)}var Me=!0;function ke(e){let t=Me;Me=!1;let r=e();return Me=t,r}function R(e,t,r={}){let n;return x(e,t)(i=>n=i,r),n}function x(...e){return sr(...e)}var sr=xt;function ar(e){sr=e}function xt(e,t){let r={};fe(r,e);let n=[r,...B(e)],i=typeof t=="function"?$n(n,t):Fn(n,t,e);return or.bind(null,e,t,i)}function $n(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(z([n,...e]),i);Ne(r,o)}}var gt={};function jn(e,t){if(gt[e])return gt[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,o=(()=>{try{let s=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(s,"name",{value:`[Alpine] ${e}`}),s}catch(s){return re(s,t,e),Promise.resolve()}})();return gt[e]=o,o}function Fn(e,t,r){let n=jn(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=z([o,...e]);if(typeof n=="function"){let c=n(n,a).catch(l=>re(l,r,t));n.finished?(Ne(i,n.result,a,s,r),n.result=void 0):c.then(l=>{Ne(i,l,a,s,r)}).catch(l=>re(l,r,t)).finally(()=>n.result=void 0)}}}function Ne(e,t,r,n,i){if(Me&&typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>Ne(e,s,r,n)).catch(s=>re(s,i,t)):e(o)}else typeof t=="object"&&t instanceof Promise?t.then(o=>e(o)):e(t)}var wt="x-";function C(e=""){return wt+e}function cr(e){wt=e}var De={};function d(e,t){return De[e]=t,{before(r){if(!De[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}let n=G.indexOf(r);G.splice(n>=0?n:G.indexOf("DEFAULT"),0,e)}}}function lr(e){return Object.keys(De).includes(e)}function pe(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let o=Object.entries(e._x_virtualDirectives).map(([a,c])=>({name:a,value:c})),s=Et(o);o=o.map(a=>s.find(c=>c.name===a.name)?{name:`x-bind:${a.name}`,value:`"${a.value}"`}:a),t=t.concat(o)}let n={};return t.map(dr((o,s)=>n[o]=s)).filter(mr).map(zn(n,r)).sort(Kn).map(o=>Bn(e,o))}function Et(e){return Array.from(e).map(dr()).filter(t=>!mr(t))}var yt=!1,de=new Map,ur=Symbol();function fr(e){yt=!0;let t=Symbol();ur=t,de.set(t,[]);let r=()=>{for(;de.get(t).length;)de.get(t).shift()();de.delete(t)},n=()=>{yt=!1,r()};e(r),n()}function _t(e){let t=[],r=a=>t.push(a),[n,i]=Yt(e);return t.push(i),[{Alpine:K,effect:n,cleanup:r,evaluateLater:x.bind(x,e),evaluate:R.bind(R,e)},()=>t.forEach(a=>a())]}function Bn(e,t){let r=()=>{},n=De[t.type]||r,[i,o]=_t(e);Oe(e,t.original,o);let s=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),yt?de.get(ur).push(n):n())};return s.runCleanups=o,s}var Pe=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),Ie=e=>e;function dr(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=pr.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var pr=[];function ne(e){pr.push(e)}function mr({name:e}){return hr().test(e)}var hr=()=>new RegExp(`^${wt}([^:^.]+)\\b`);function zn(e,t){return({name:r,value:n})=>{let i=r.match(hr()),o=r.match(/:([a-zA-Z0-9\-_:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:n,original:a}}}var bt="DEFAULT",G=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",bt,"teleport"];function Kn(e,t){let r=G.indexOf(e.type)===-1?bt:e.type,n=G.indexOf(t.type)===-1?bt:t.type;return G.indexOf(r)-G.indexOf(n)}function J(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function D(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>D(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)D(n,t,!1),n=n.nextElementSibling}function E(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var _r=!1;function gr(){_r&&E("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),_r=!0,document.body||E("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `