diff --git a/SUIVI.md b/SUIVI.md deleted file mode 100644 index a7d43cb..0000000 --- a/SUIVI.md +++ /dev/null @@ -1,149 +0,0 @@ -# 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 06ca443..a6f5e2b 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,36 +1,18 @@ # ── É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 -RUN apk add --no-cache git ca-certificates +# Dépendances de compilation (git pour les modules Go) +RUN apk add --no-cache git -ARG MODULES="" -ENV MODULES=${MODULES} +WORKDIR /build -WORKDIR /workspace/core/backend - -# Copier les sources du CORE (build context = backend/) +# Copier les fichiers de dépendances en premier (optimise le cache Docker) 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 \ @@ -39,21 +21,26 @@ 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 -# Utilisateur non-root pour la sécurité +# Créer un 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 deleted file mode 100644 index c6ca334..0000000 --- a/backend/cmd/gen-modules/main.go +++ /dev/null @@ -1,104 +0,0 @@ -// 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 7fdfa46..92359e1 100644 --- a/backend/internal/api/auth.go +++ b/backend/internal/api/auth.go @@ -5,7 +5,6 @@ import ( "crypto/sha256" "database/sql" "encoding/hex" - "fmt" "log" "net/http" "time" @@ -13,7 +12,6 @@ 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. @@ -108,28 +106,20 @@ 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()) - 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 - } + h.db.Exec(` + INSERT INTO refresh_tokens (user_id, token_hash, expires_at) VALUES (?, ?, ?) + `, userID, tokenHash, expiry) // 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/", + Path: "/api/auth/refresh", HttpOnly: true, - Secure: isHTTPS, + Secure: r.TLS != nil, SameSite: http.SameSiteStrictMode, Expires: expiry, }) @@ -147,22 +137,14 @@ func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) { }) } -// Logout invalide la session courante de l'utilisateur. +// Logout invalide la session 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 { - // 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.db.Exec(`DELETE FROM refresh_tokens WHERE user_id = ?`, claims.UserID) h.auditLogger.Log(&claims.UserID, claims.Username, "logout", "", nil, clientIP(r)) } @@ -170,7 +152,7 @@ func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "pxp_refresh", Value: "", - Path: "/api/auth/", + Path: "/api/auth/refresh", HttpOnly: true, Expires: time.Unix(0, 0), MaxAge: -1, @@ -182,18 +164,14 @@ 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 } @@ -203,26 +181,15 @@ 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 } @@ -321,104 +288,21 @@ func (h *AuthHandler) upsertUser(info *auth.UserInfo) (int64, error) { } // Mise à jour du statut admin à chaque connexion (peut changer côté Linux) - if _, err := h.db.Exec(` + result, 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); err != nil { + `, info.Username, isAdmin) + if err != nil { return 0, err } - // 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) + // 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) } - 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"}) + return id, err } // 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 e7588df..c78244d 100644 --- a/backend/internal/api/settings.go +++ b/backend/internal/api/settings.go @@ -2,19 +2,12 @@ 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" ) @@ -24,12 +17,11 @@ 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, docker *dockerclient.Client) *SettingsHandler { - return &SettingsHandler{db: database, auditLogger: auditLog, encryptor: enc, docker: docker} +func NewSettingsHandler(database *db.DB, auditLog *audit.Logger, enc *crypto.Encryptor) *SettingsHandler { + return &SettingsHandler{db: database, auditLogger: auditLog, encryptor: enc} } // paramètres publics (non-sensibles) accessibles par les admins. @@ -40,7 +32,6 @@ var publicSettings = []string{ "proxmox_url", "ssh_host", "ssh_username", - "dashboard_shortcuts", } // paramètres sensibles : modifiables en écriture seule, stockés chiffrés. @@ -131,27 +122,11 @@ 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, has_backend, - COALESCE(nav_href,''), COALESCE(nav_icon,''), COALESCE(nav_color,''), COALESCE(nav_label_key,'') + SELECT id, name, description, version, is_core, is_enabled, installed_at FROM modules ORDER BY is_core DESC, name ASC `) if err != nil { @@ -160,15 +135,25 @@ func (h *SettingsHandler) GetModules(w http.ResponseWriter, r *http.Request) { } defer rows.Close() - var modules []moduleResp + 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 for rows.Next() { - 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) + var m module + var isCore, isEnabled int + var installedAt *string + rows.Scan(&m.ID, &m.Name, &m.Description, &m.Version, &isCore, &isEnabled, &installedAt) m.IsCore = isCore == 1 m.IsEnabled = isEnabled == 1 - m.HasBackend = hasBackend == 1 + m.InstalledAt = installedAt modules = append(modules, m) } @@ -193,10 +178,7 @@ func (h *SettingsHandler) EnableModule(w http.ResponseWriter, r *http.Request) { } h.auditLogger.Log(&claims.UserID, claims.Username, "module_enable", id, nil, clientIP(r)) - - // 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}) + JSONResponse(w, http.StatusOK, map[string]string{"message": "Module activé (redémarrage requis pour prendre effet)"}) } // DisableModule désactive un module (ne peut pas désactiver les modules CORE). @@ -218,43 +200,7 @@ 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)) - - 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 + JSONResponse(w, http.StatusOK, map[string]string{"message": "Module désactivé"}) } // GetLogs retourne les dernières lignes du log applicatif (tampon mémoire). @@ -309,277 +255,3 @@ 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 4cf5d58..76f67ed 100644 --- a/backend/internal/db/db.go +++ b/backend/internal/db/db.go @@ -53,11 +53,6 @@ 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 } @@ -131,17 +126,9 @@ func (db *DB) migrate() error { return fmt.Errorf("transaction 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) - } + if _, err := tx.Exec(string(content)); 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) @@ -196,57 +183,3 @@ 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 deleted file mode 100644 index e56b4e0..0000000 --- a/backend/internal/db/migrations/002_sessions.sql +++ /dev/null @@ -1,6 +0,0 @@ --- 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 deleted file mode 100644 index 4c0397d..0000000 --- a/backend/internal/db/migrations/003_modules_extra.sql +++ /dev/null @@ -1,4 +0,0 @@ --- 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 deleted file mode 100644 index 67f9f4a..0000000 --- a/backend/internal/db/migrations/004_enable_modules.sql +++ /dev/null @@ -1,6 +0,0 @@ --- 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 deleted file mode 100644 index 6457cb3..0000000 --- a/backend/internal/db/migrations/005_module_nav_store.sql +++ /dev/null @@ -1,10 +0,0 @@ --- 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 deleted file mode 100644 index 8ba294f..0000000 --- a/backend/internal/db/migrations/006_has_backend.sql +++ /dev/null @@ -1,3 +0,0 @@ --- 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 deleted file mode 100644 index 28db2fd..0000000 --- a/backend/internal/docker/client.go +++ /dev/null @@ -1,416 +0,0 @@ -// 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 4824c0d..d4242da 100644 --- a/backend/main.go +++ b/backend/main.go @@ -13,7 +13,6 @@ 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" @@ -27,14 +26,6 @@ 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") @@ -76,8 +67,9 @@ func main() { auditLogger := audit.New(database.DB) // ── Chargement des modules actifs ────────────────────────────────────── - loader := modules.NewLoader(database, sshPool, encryptor) - RegisterModules(loader) // généré par cmd/gen-modules selon les modules compilés + 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 if err := loader.LoadActive(); err != nil { log.Fatalf("Erreur chargement modules : %v", err) } @@ -87,7 +79,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, docker) + settingsHandler := api.NewSettingsHandler(database, auditLogger, encryptor) terminalHandler := api.NewTerminalHandler(database, auditLogger, encryptor) // Démarrer le polling Proxmox en arrière-plan @@ -138,8 +130,6 @@ 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) @@ -178,20 +168,6 @@ 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) @@ -201,12 +177,9 @@ func main() { // Routes enregistrées par les modules actifs for _, route := range loader.Registry().GetRoutes() { routeCopy := route // Capturer la variable pour la closure - switch { - case routeCopy.Public: - r.MethodFunc(routeCopy.Method, routeCopy.Path, routeCopy.Handler) - case routeCopy.RequireAdmin: + if routeCopy.RequireAdmin { r.With(api.RequireAuth(jwtManager), api.RequireAdmin).MethodFunc(routeCopy.Method, routeCopy.Path, routeCopy.Handler) - default: + } else { 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 4150254..76e7cd0 100644 --- a/backend/modules/loader.go +++ b/backend/modules/loader.go @@ -1,3 +1,6 @@ +// 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 ( @@ -5,34 +8,25 @@ 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 *db.DB - pool *sshpool.Pool - enc *crypto.Encryptor + db *sql.DB registry *coreRegistry modules []Module } -// 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 { +// NewLoader crée un Loader avec le router et la DB fournis. +func NewLoader(db *sql.DB) *Loader { return &Loader{ - db: database, - pool: pool, - enc: enc, - registry: newCoreRegistry(database.DB, pool, enc), + db: db, + registry: newCoreRegistry(db), } } // 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) } @@ -63,24 +57,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 + return false, nil // Module inconnu = désactivé } return enabled == 1, err } -// Registry retourne le registry partagé. +// Registry retourne le registry partagé (pour accès par le serveur HTTP). 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 { @@ -96,35 +90,24 @@ type translationEntry struct { // coreRegistry implémente l'interface Registry. type coreRegistry struct { - sqlDB *sql.DB - pool *sshpool.Pool - enc *crypto.Encryptor + db *sql.DB 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(sqlDB *sql.DB, pool *sshpool.Pool, enc *crypto.Encryptor) *coreRegistry { +func newCoreRegistry(db *sql.DB) *coreRegistry { return &coreRegistry{ - sqlDB: sqlDB, - pool: pool, - enc: enc, + db: db, 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: 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}) + r.routes = append(r.routes, RouteEntry{method, path, handler, requireAdmin}) } func (r *coreRegistry) RegisterWSChannel(channel string, handler WSHandler) { @@ -147,69 +130,8 @@ 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.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 + return r.db } // GetRoutes retourne les routes enregistrées par les modules. @@ -217,11 +139,6 @@ 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 new file mode 100644 index 0000000..fd9196a --- /dev/null +++ b/backend/modules/logs/README.md @@ -0,0 +1,45 @@ +# 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 4bb5e82..a624774 100644 --- a/backend/modules/module.go +++ b/backend/modules/module.go @@ -1,4 +1,5 @@ // 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 ( @@ -8,51 +9,36 @@ 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 } -// 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"` -} - // 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 enregistre une route HTTP dans le router principal. 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 enregistre un handler WebSocket pour un channel nommé. RegisterWSChannel(channel string, handler WSHandler) - // Widgets et onglets + // RegisterWidget déclare un type de widget disponible pour le dashboard. RegisterWidget(widget WidgetDef) + + // RegisterSettingsTab ajoute un onglet dans la page paramètres. RegisterSettingsTab(tab SettingsTabDef) - // Traductions et migrations + // RegisterTranslations fusionne des clés de traduction pour une langue donnée. 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) - // Entrée de navigation dans la sidebar - RegisterNavItem(item NavItemDef) - - // Accès à la base SQLite (isolation par module possible via préfixe) + // DB retourne un accès à SQLite avec isolation par module (préfixe de tables). 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é. @@ -69,11 +55,12 @@ 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"` + ID string `json:"id"` + Label string `json:"label"` + Icon string `json:"icon"` + // Path est le chemin frontend du composant Vue à charger (lazy import). ComponentPath string `json:"component_path"` } -// MigrationFn est une fonction de migration optionnelle. +// MigrationFn est une fonction de migration optionnelle (pour les migrations non-SQL). type MigrationFn func(db *sql.DB) error diff --git a/backend/modules/services/README.md b/backend/modules/services/README.md new file mode 100644 index 0000000..cc5d4a4 --- /dev/null +++ b/backend/modules/services/README.md @@ -0,0 +1,55 @@ +# 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 deleted file mode 100644 index 159afc8..0000000 --- a/backend/registered_modules.go +++ /dev/null @@ -1,8 +0,0 @@ -// 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 cec5a0c..25e0a0b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,6 @@ services: build: context: ./backend dockerfile: Dockerfile - container_name: proxmoxpanel-backend restart: unless-stopped expose: @@ -17,28 +16,10 @@ 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 deleted file mode 100644 index b947077..0000000 --- a/frontend/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -dist/ diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 7d28b2b..2e7e479 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,21 +1,26 @@ -# ── Étape 1 : Build (bundle Swup + xterm via esbuild) ───────────────────── +# ── Étape 1 : Build du frontend Vue 3 + Vite ─────────────────────────────── FROM node:22-alpine AS builder WORKDIR /build -COPY package.json package-lock.json ./ -RUN npm ci +# Copier les fichiers de dépendances en premier +COPY package.json package-lock.json* ./ +RUN npm install --frozen-lockfile +# Copier le code source et compiler COPY . . RUN npm run build -# ── Étape 2 : Nginx pour servir les fichiers statiques ───────────────────── +# ── Étape 2 : Image Nginx pour servir le frontend ────────────────────────── 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 deleted file mode 100644 index 329d057..0000000 --- a/frontend/build.mjs +++ /dev/null @@ -1,111 +0,0 @@ -/** - * 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/css/lineicons-duotone.css b/frontend/css/lineicons-duotone.css deleted file mode 100644 index b611810..0000000 --- a/frontend/css/lineicons-duotone.css +++ /dev/null @@ -1,11023 +0,0 @@ -@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 deleted file mode 100644 index ea342bc..0000000 Binary files a/frontend/css/lineicons-duotone.ttf and /dev/null differ diff --git a/frontend/css/lineicons-duotone.woff b/frontend/css/lineicons-duotone.woff deleted file mode 100644 index a577334..0000000 Binary files a/frontend/css/lineicons-duotone.woff and /dev/null differ diff --git a/frontend/css/lineicons-duotone.woff2 b/frontend/css/lineicons-duotone.woff2 deleted file mode 100644 index b152c8e..0000000 Binary files a/frontend/css/lineicons-duotone.woff2 and /dev/null differ diff --git a/frontend/css/pages.css b/frontend/css/pages.css deleted file mode 100644 index 25a7354..0000000 --- a/frontend/css/pages.css +++ /dev/null @@ -1,986 +0,0 @@ -/* ============================================================================= - 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 deleted file mode 100644 index 5982055..0000000 --- a/frontend/dashboard.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - 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 deleted file mode 100644 index ad174ca..0000000 --- a/frontend/icons/icon.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - P - diff --git a/frontend/index.html b/frontend/index.html index 43f81a1..b11eb63 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,18 +1,15 @@ - - - - ProxmoxPanel - - - - - - - -
- Chargement… -
- + + + + + ProxmoxPanel + + + + +
+ + diff --git a/frontend/install.html b/frontend/install.html deleted file mode 100644 index e1c4eaa..0000000 --- a/frontend/install.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - ProxmoxPanel — Installation - - - - - - - - - - - - -
-
- - - -
- -
- - -
-

-

-
- - -
-
- - -
-
- - -
-
- - -
-

-

-
- - -
-
- - -
-
- - -
- -
-
-
- - -
-

-

-
- - -
-
- - -
-
- - -
-

-
- - -
-

-
-
- Instance - -
-
- URL - -
-
- SSH - -
-
- Proxmox - -
-
-
-
- - -
- - -
-
-
- - - diff --git a/frontend/js/app.js b/frontend/js/app.js deleted file mode 100644 index eef9b9c..0000000 --- a/frontend/js/app.js +++ /dev/null @@ -1,1317 +0,0 @@ -/** - * 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 deleted file mode 100644 index d9d4c4d..0000000 --- a/frontend/js/terminal.js +++ /dev/null @@ -1,110 +0,0 @@ -/** - * 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 deleted file mode 100644 index 6e15087..0000000 --- a/frontend/js/ws.sw.js +++ /dev/null @@ -1,86 +0,0 @@ -/** - * 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/login.html b/frontend/login.html deleted file mode 100644 index cfbe54c..0000000 --- a/frontend/login.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - ProxmoxPanel — Connexion - - - - - - - - - - - - -
-
- - -
-
- - -
- -
- - -
- - - - -
-
-
- - - diff --git a/frontend/manifest.json b/frontend/manifest.json deleted file mode 100644 index 57d0ac8..0000000 --- a/frontend/manifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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 deleted file mode 100644 index 14b153c..0000000 --- a/frontend/modules.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - 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 2d7a465..ac4f5a0 100644 --- a/frontend/nginx.conf +++ b/frontend/nginx.conf @@ -1,3 +1,6 @@ +# 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; @@ -11,6 +14,7 @@ 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"'; @@ -19,6 +23,7 @@ http { sendfile on; keepalive_timeout 65; + # Compression gzip pour les assets statiques gzip on; gzip_vary on; gzip_min_length 1024; @@ -31,13 +36,13 @@ http { root /usr/share/nginx/html; index index.html; - # Cache agressif pour JS/CSS + # Cache agressif pour les assets avec hash dans le nom (Vite) location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { expires 1y; add_header Cache-Control "public, immutable"; } - # Proxy API → backend Go + # Proxy des requêtes API vers le backend Go location /api/ { proxy_pass http://backend:3001; proxy_http_version 1.1; @@ -45,10 +50,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; + proxy_read_timeout 300s; # Timeout long pour les mises à jour apt } - # Proxy WebSocket → backend Go + # Proxy des connexions WebSocket location /ws/ { proxy_pass http://backend:3001; proxy_http_version 1.1; @@ -56,32 +61,13 @@ http { proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; - proxy_read_timeout 3600s; + proxy_read_timeout 3600s; # 1 heure pour les sessions terminal proxy_send_timeout 3600s; } - # 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 + # SPA : toutes les autres routes servent index.html (Vue Router) location / { - try_files $uri $uri.html $uri/ /index.html; + try_files $uri $uri/ /index.html; } } } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 43c5341..63eef78 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,23 +1,255 @@ { "name": "proxmoxpanel-frontend", - "version": "2.0.0", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "proxmoxpanel-frontend", - "version": "2.0.0", - "devDependencies": { + "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", "@xterm/addon-fit": "^0.10.0", "@xterm/xterm": "^5.5.0", - "esbuild": "^0.24.0", - "swup": "^4.8.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" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "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==", "cpu": [ "ppc64" ], @@ -32,9 +264,9 @@ } }, "node_modules/@esbuild/android-arm": { - "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==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], @@ -49,9 +281,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "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==", "cpu": [ "arm64" ], @@ -66,9 +298,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "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==", "cpu": [ "x64" ], @@ -83,9 +315,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], @@ -100,9 +332,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], @@ -117,9 +349,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], @@ -134,9 +366,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "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==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], @@ -151,9 +383,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "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==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], @@ -168,9 +400,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], @@ -185,9 +417,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "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==", "cpu": [ "ia32" ], @@ -202,9 +434,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "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==", "cpu": [ "loong64" ], @@ -219,9 +451,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "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==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], @@ -236,9 +468,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "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==", "cpu": [ "ppc64" ], @@ -253,9 +485,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], @@ -270,9 +502,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], @@ -287,9 +519,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], @@ -304,9 +536,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "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==", "cpu": [ "arm64" ], @@ -321,9 +553,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], @@ -338,9 +570,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", "cpu": [ "arm64" ], @@ -355,9 +587,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], @@ -371,10 +603,27 @@ "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.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], @@ -389,9 +638,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], @@ -406,9 +655,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], @@ -423,9 +672,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], @@ -439,11 +688,729 @@ "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" @@ -453,26 +1420,67 @@ "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/delegate-it": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/delegate-it/-/delegate-it-6.3.0.tgz", - "integrity": "sha512-WAa6cA61M5mfDR31PBgMNQQ3LY1q++TxnZzcm7E9XV8ODBPxDutxH0toTR/BXqIkLaVuU7ntFe1uOqDllhA22A==", + "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==", "dev": true, "license": "MIT", "dependencies": { - "typed-query-selector": "^2.11.2" + "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" }, "funding": { - "url": "https://github.com/sponsors/fregante" + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -483,67 +1491,503 @@ "node": ">=18" }, "optionalDependencies": { - "@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" + "@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" } }, - "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==", + "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==", "dev": true, "license": "MIT", "bin": { - "opencollective-postinstall": "index.js" + "he": "bin/he" } }, - "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==", + "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==", "dev": true, "license": "MIT" }, - "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==", + "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==", "dev": true, "license": "MIT", "dependencies": { - "delegate-it": "^6.0.0", - "opencollective-postinstall": "^2.0.2", - "path-to-regexp": "^6.2.1" + "@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" } }, - "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==", + "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==", "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 b7d4f4a..d06edf2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,15 +1,37 @@ { "name": "proxmoxpanel-frontend", - "version": "2.0.0", + "version": "1.0.0", "private": true, - "type": "module", "scripts": { - "build": "node build.mjs" + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" }, - "devDependencies": { - "swup": "^4.8.0", + "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", - "esbuild": "^0.24.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" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "typescript": "^5.7.3", + "vite": "^6.3.3", + "vue-tsc": "^2.2.10" } } diff --git a/frontend/profile.html b/frontend/profile.html deleted file mode 100644 index cb98fa0..0000000 --- a/frontend/profile.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - ProxmoxPanel — Profil - - - - - - - - - - - - - - - -
- - -
-
- - -
-

- - Compte -

-
-
- Utilisateur - -
-
- Rôle - - - -
-
-
- - -
-

- - Apparence -

- -
- -
- - -
-
- -
- -
- - -
-
-
- - -
-

- - Langue -

-
- -
- - -
-
-
- - -
-

- - Sessions actives -

- -
-
-
- -
- - -
-
- - -
- -
- -
-
-
- - - diff --git a/frontend/proxmox.html b/frontend/proxmox.html deleted file mode 100644 index 22eaee0..0000000 --- a/frontend/proxmox.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - 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 deleted file mode 100644 index a37f218..0000000 --- a/frontend/settings.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - ProxmoxPanel — Paramètres - - - - - - - - - - - - - - - -
- - -
-
- - -
-
- Chargement… -
- - -
-
-
- - - diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..23cc868 --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/frontend/src/components/Layout.vue b/frontend/src/components/Layout.vue new file mode 100644 index 0000000..e057acf --- /dev/null +++ b/frontend/src/components/Layout.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/frontend/src/components/Navbar.vue b/frontend/src/components/Navbar.vue new file mode 100644 index 0000000..970093b --- /dev/null +++ b/frontend/src/components/Navbar.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue new file mode 100644 index 0000000..cace0ae --- /dev/null +++ b/frontend/src/components/Sidebar.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/frontend/locales/en.json b/frontend/src/locales/en.json similarity index 86% rename from frontend/locales/en.json rename to frontend/src/locales/en.json index 4ef7bee..82f6ab4 100644 --- a/frontend/locales/en.json +++ b/frontend/src/locales/en.json @@ -8,8 +8,7 @@ "logs": "Logs", "services": "Services", "settings": "Settings", - "modules": "Modules", - "profile": "Profile" + "modules": "Modules" }, "navbar": { "darkMode": "Dark mode", @@ -115,34 +114,6 @@ "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/locales/fr.json b/frontend/src/locales/fr.json similarity index 86% rename from frontend/locales/fr.json rename to frontend/src/locales/fr.json index 5bf2b82..edc3e34 100644 --- a/frontend/locales/fr.json +++ b/frontend/src/locales/fr.json @@ -8,8 +8,7 @@ "logs": "Journaux", "services": "Services", "settings": "Paramètres", - "modules": "Modules", - "profile": "Profil" + "modules": "Modules" }, "navbar": { "darkMode": "Mode sombre", @@ -115,34 +114,6 @@ "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/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..b2ecc37 --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,37 @@ +// 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 new file mode 100644 index 0000000..029db82 --- /dev/null +++ b/frontend/src/router/index.ts @@ -0,0 +1,129 @@ +// 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 new file mode 100644 index 0000000..8886723 --- /dev/null +++ b/frontend/src/stores/auth.store.ts @@ -0,0 +1,218 @@ +// 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 new file mode 100644 index 0000000..ee4f1f7 --- /dev/null +++ b/frontend/src/stores/ui.store.ts @@ -0,0 +1,84 @@ +// 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/css/dark.css b/frontend/src/styles/dark.css similarity index 100% rename from frontend/css/dark.css rename to frontend/src/styles/dark.css diff --git a/frontend/css/light.css b/frontend/src/styles/light.css similarity index 100% rename from frontend/css/light.css rename to frontend/src/styles/light.css diff --git a/frontend/css/neu.css b/frontend/src/styles/neu.css similarity index 64% rename from frontend/css/neu.css rename to frontend/src/styles/neu.css index ef4b0c6..7fb3981 100644 --- a/frontend/css/neu.css +++ b/frontend/src/styles/neu.css @@ -4,32 +4,6 @@ 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 */ @@ -78,7 +52,7 @@ input, select, textarea { font-family: inherit; font-size: inherit; } /* Sidebar */ --sidebar-width: 240px; - --sidebar-width-collapsed: 52px; + --sidebar-width-collapsed: 64px; /* Z-index */ --z-sidebar: 100; @@ -215,13 +189,6 @@ input, select, textarea { font-family: inherit; font-size: inherit; } 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; @@ -403,242 +370,3 @@ input, select, textarea { font-family: inherit; font-size: inherit; } --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/src/views/Dashboard.vue b/frontend/src/views/Dashboard.vue new file mode 100644 index 0000000..7be64e3 --- /dev/null +++ b/frontend/src/views/Dashboard.vue @@ -0,0 +1,393 @@ + + + + + diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue new file mode 100644 index 0000000..b8a2080 --- /dev/null +++ b/frontend/src/views/Files.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/frontend/src/views/Install.vue b/frontend/src/views/Install.vue new file mode 100644 index 0000000..d3111a3 --- /dev/null +++ b/frontend/src/views/Install.vue @@ -0,0 +1,487 @@ + + + + + diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue new file mode 100644 index 0000000..c99e37f --- /dev/null +++ b/frontend/src/views/Login.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/frontend/src/views/Logs.vue b/frontend/src/views/Logs.vue new file mode 100644 index 0000000..e8d97be --- /dev/null +++ b/frontend/src/views/Logs.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/frontend/src/views/Modules.vue b/frontend/src/views/Modules.vue new file mode 100644 index 0000000..bb7112a --- /dev/null +++ b/frontend/src/views/Modules.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/frontend/src/views/Proxmox.vue b/frontend/src/views/Proxmox.vue new file mode 100644 index 0000000..975adf3 --- /dev/null +++ b/frontend/src/views/Proxmox.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/frontend/src/views/Services.vue b/frontend/src/views/Services.vue new file mode 100644 index 0000000..2e2485d --- /dev/null +++ b/frontend/src/views/Services.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue new file mode 100644 index 0000000..5fef691 --- /dev/null +++ b/frontend/src/views/Settings.vue @@ -0,0 +1,403 @@ + + + + + diff --git a/frontend/src/views/Terminal.vue b/frontend/src/views/Terminal.vue new file mode 100644 index 0000000..d4b849f --- /dev/null +++ b/frontend/src/views/Terminal.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/frontend/src/views/Updates.vue b/frontend/src/views/Updates.vue new file mode 100644 index 0000000..233f3db --- /dev/null +++ b/frontend/src/views/Updates.vue @@ -0,0 +1,424 @@ + + + + + diff --git a/frontend/swup-bundle.entry.mjs b/frontend/swup-bundle.entry.mjs deleted file mode 100644 index 9184051..0000000 --- a/frontend/swup-bundle.entry.mjs +++ /dev/null @@ -1 +0,0 @@ -export { default as Swup } from 'swup' diff --git a/frontend/terminal.html b/frontend/terminal.html deleted file mode 100644 index 44c38b0..0000000 --- a/frontend/terminal.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - ProxmoxPanel — Terminal - - - - - - - - - - - - - - - - - - -
- - -
-
- ⌛ Connexion… - -
-
-
-
- - - diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..66a5553 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,24 @@ +{ + "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 new file mode 100644 index 0000000..97ede7e --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "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 deleted file mode 100644 index 032e0f8..0000000 --- a/frontend/updates.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - 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 deleted file mode 100644 index 2fdd6ec..0000000 --- a/frontend/vendors/alpine.min.js +++ /dev/null @@ -1,5 +0,0 @@ -(()=>{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 `