diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f158278 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Credentials +.credentials/ + +# Local editor state +.cursor/ +.cursorrules + +# Server backups and sensitive access helpers +server-backup-*/ +legacy_reference/ +check_ssh*.exp +*.mhtml + +# Generated local artifacts +.DS_Store diff --git a/MEMORY/WORK/20260519-222854_project-memory-iqon-modernization/PRD.md b/MEMORY/WORK/20260519-222854_project-memory-iqon-modernization/PRD.md new file mode 100644 index 0000000..b18e885 --- /dev/null +++ b/MEMORY/WORK/20260519-222854_project-memory-iqon-modernization/PRD.md @@ -0,0 +1,60 @@ +--- +task: Проверить память проекта iqon.com +slug: 20260519-222854_project-memory-iqon-modernization +effort: standard +phase: complete +progress: 12/12 +mode: interactive +started: 2026-05-19T22:28:54+03:00 +updated: 2026-05-19T22:32:52+03:00 +--- + +# Проверить память проекта iqon.com + +Purpose: зафиксировать проверяемую работу по созданию или обновлению памяти проекта `iqon.com`. + +## Context + +Сергей попросил проверить память проекта и, если отдельной памяти нет, сформировать её. Текущий рабочий каталог: `/Users/svmac/development/iqon`. Ключевой контекст от пользователя: здесь модернизируется `www.iqon.com`. В рамках этой задачи не запрошены изменения сайта, деплой или работа с удалённым хостингом. + +### Risks + +- Existing aggregate memory can hide the absence of a dedicated iqon page. +- Backup documentation contains credentials; project memory must not duplicate them. +- Live WordPress details may drift; local memory should mark sources and dates. + +## Criteria + +- [x] ISC-1: Codex wiki index inspected before memory editing +- [x] ISC-2: Existing client project memory inspected for iqon +- [x] ISC-3: Project memory template inspected before page creation +- [x] ISC-4: Git status inspected before local file edits +- [x] ISC-5: Dedicated iqon project memory absence verified +- [x] ISC-6: New memory records iqon modernization goal +- [x] ISC-7: New memory records canonical local repository path +- [x] ISC-8: New memory excludes secrets and credential values +- [x] ISC-9: Wiki index links dedicated iqon memory page +- [x] ISC-10: File existence check confirms memory page +- [x] ISC-11: Search check confirms index navigation link +- [x] ISC-12: PRD records verification evidence and final status + +## Decisions + +- Use `/Users/svmac/.codex/memories/wiki/projects/iqon-com.md` for canonical project memory. +- Keep existing `/Users/svmac/.codex/memories/wiki/projects/client-projects.md` as aggregate context. +- Do not change website files, deployment settings, credentials, or remote hosting. + +### Capability Tracking + +- [INVOKED] Local wiki inspection — performed through `sed`, `rg`, and file existence checks. +- [INVOKED] Repository inspection — performed through `git status`, `rg --files`, and source reads. +- [INVOKED] Targeted file editing — creating project memory and index link. +- [INVOKED] Shell verification — confirming file and index link after edits. + +## Verification + +- `test -f /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` exited 0. +- `rg -n "projects/iqon-com\\.md" /Users/svmac/.codex/memories/wiki/index.md` returned line 58. +- `rg -n "www\\.iqon\\.com|/Users/svmac/development/iqon|modernization|модернизации" /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` returned modernization goal and canonical path lines. +- `rg -n "iqon-com\\.md" /Users/svmac/.codex/memories/wiki/projects/client-projects.md` returned line 21. +- `rg -n "password|парол|token|secret|credential" /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` returned only warning/reference lines, not credential values. diff --git a/MEMORY/WORK/20260519-223610_update-iqon-work-memory/PRD.md b/MEMORY/WORK/20260519-223610_update-iqon-work-memory/PRD.md new file mode 100644 index 0000000..b943955 --- /dev/null +++ b/MEMORY/WORK/20260519-223610_update-iqon-work-memory/PRD.md @@ -0,0 +1,58 @@ +--- +task: Проверить и обновить память iqon.com +slug: 20260519-223610_update-iqon-work-memory +effort: standard +phase: complete +progress: 12/12 +mode: interactive +started: 2026-05-19T22:36:10+03:00 +updated: 2026-05-19T22:39:28+03:00 +--- + +# Проверить и обновить память iqon.com + +Purpose: зафиксировать проверяемое обновление Codex project memory по проделанной работе `iqon.com`. + +## Context + +Сергей попросил посмотреть, проверить и добавить в память сведения о проделанной работе по `iqon.com`: PHP 8 fixes, дизайн-аудит, архив БД, нерешённые риски и расположение старой Claude AUTO памяти. В рамках задачи нельзя переносить credential values из старых файлов памяти или backup-документов. + +### Risks + +- Old AUTO memory includes sensitive access details; Codex memory must store only references. +- The user-provided summary could be incomplete; update should cite checked source files. +- Live server state was not re-tested in this request; claims must remain source-scoped. + +## Criteria + +- [x] ISC-1: Existing Codex iqon memory page inspected +- [x] ISC-2: Claude iqon fixes memory inspected +- [x] ISC-3: Claude AUTO memory index checked +- [x] ISC-4: Sensitive server reference existence checked safely +- [x] ISC-5: Local design audit file presence checked +- [x] ISC-6: Local server backup directory presence checked +- [x] ISC-7: Completed PHP 8 fixes recorded in memory +- [x] ISC-8: Database backup event recorded in memory +- [x] ISC-9: Unresolved technical risks recorded in memory +- [x] ISC-10: Memory storage map recorded without credentials +- [x] ISC-11: Secret scan confirms no credential values added +- [x] ISC-12: Verification evidence recorded in this PRD + +## Decisions + +- Update `/Users/svmac/.codex/memories/wiki/projects/iqon-com.md` only. +- Do not read or copy raw credential values from `reference_iqon_server.md`. +- Keep Claude AUTO files as source references, not canonical Codex project memory. + +### Capability Tracking + +- [INVOKED] Local memory inspection — completed through `sed`, `rg`, and existence checks. +- [INVOKED] Targeted wiki editing — update `projects/iqon-com.md`. +- [INVOKED] Secret-safe verification — run focused `rg` checks after editing. + +## Verification + +- `rg -n 'C1b|paginare-script|jQuery|u0012812_iqon|Memory Storage Map|reference_iqon_server|contact form' /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` returned the added fixes, memory map, DB archive, and open question lines. +- `rg -n 'Ds7|Dih|TTSQ|password value|пароль:|token=' /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` exited 1, confirming known credential substrings were not added. +- `rg -n 'password|парол|token|secret|credential' /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` returned only warning/reference lines, not credential values. +- `rg -n 'Updated: 19 May 2026, 22:38|Critical PHP 8 Fixes|DB archive' /Users/svmac/.codex/memories/wiki/projects/iqon-com.md` returned updated timestamp and new sections. diff --git a/MEMORY/WORK/20260519-224203_full-iqon-audit-plan/PRD.md b/MEMORY/WORK/20260519-224203_full-iqon-audit-plan/PRD.md new file mode 100644 index 0000000..3051f54 --- /dev/null +++ b/MEMORY/WORK/20260519-224203_full-iqon-audit-plan/PRD.md @@ -0,0 +1,75 @@ +--- +task: Полный аудит iqon.com и план изменений +slug: 20260519-224203_full-iqon-audit-plan +effort: extended +phase: complete +progress: 20/20 +mode: interactive +started: 2026-05-19T22:42:03+03:00 +updated: 2026-05-19T22:47:52+03:00 +--- + +# Полный аудит iqon.com и план изменений + +Purpose: зафиксировать проверяемый аудит live-сайта `iqon.com` и план изменений с опорой на Open Design. + +## Context + +Сергей попросил сделать полный аудит `iqon.com`, использовать skill `opendesign` и подготовить план необходимых изменений. В доступном списке нет skill с точным именем `opendesign`; использованы Open Design skill entries `design-review` и `frontend-design`. В рамках задачи не запрошены live-изменения, деплой, доступ к админке или перенос секретов. + +### Risks + +- Live WordPress core version is not directly confirmed; avoid stale exact-version claims. +- Visual audit is based on HTML/CSS evidence, not browser screenshots. +- Security recommendations must not imply remote changes were performed. + +## Criteria + +- [x] ISC-1: OpenDesign design-review skill entry inspected +- [x] ISC-2: OpenDesign frontend-design skill entry inspected +- [x] ISC-3: Codex iqon project memory inspected +- [x] ISC-4: Local prior design audit inspected +- [x] ISC-5: Live homepage headers inspected +- [x] ISC-6: Live homepage HTML inspected +- [x] ISC-7: Live stylesheet inspected for layout signals +- [x] ISC-8: Live sitemap index inspected +- [x] ISC-9: Live page sitemap inspected +- [x] ISC-10: Sitemap duplicate counts computed +- [x] ISC-11: Live REST users endpoint inspected +- [x] ISC-12: Live contact page inspected +- [x] ISC-13: Live readme exposure inspected +- [x] ISC-14: Local redesign prototype inspected +- [x] ISC-15: Audit document created in project root +- [x] ISC-16: Audit document lists prioritized findings +- [x] ISC-17: Audit document includes implementation plan +- [x] ISC-18: Audit separates current facts from stale memory +- [x] ISC-19: Audit avoids credential values +- [x] ISC-20: Verification evidence recorded in PRD + +## Decisions + +- Create a new current audit document rather than overwrite prior `iqon-design-audit.md`. +- Treat prior WP 4.9.13 claim as historical until core version is separately confirmed. +- Recommend static/light redesign path unless WordPress editing must remain a hard requirement. + +### Plan + +1. Create a current audit markdown document in the project root. +2. Separate verified live findings from stale/historical memory. +3. Prioritize quick hardening, SEO/accessibility cleanup, and full redesign work. +4. Include verification commands and expected signals for each phase. + +### Capability Tracking + +- [INVOKED] OpenDesign design-review — read `/Users/svmac/development/open-design/skills/design-review/SKILL.md`. +- [INVOKED] OpenDesign frontend-design — read `/Users/svmac/development/open-design/skills/frontend-design/SKILL.md`. +- [INVOKED] Live HTTP inspection — checked homepage, headers, sitemap, REST, contact. +- [INVOKED] Local repository inspection — checked memory, old audit, root and new redesign. +- [INVOKED] Targeted audit document editing — create current audit artifact. + +## Verification + +- `test -f iqon-full-audit-2026-05-19.md` exited 0. +- `rg -n "P0|P1|Phase 1|Phase 3|Open Design|WordPress 4\\.9\\.13|66 URLs|29 sitemap|3 duplicated|admin|iqnadm01" iqon-full-audit-2026-05-19.md` returned expected audit sections and evidence lines. +- `rg -n "password|парол|token|secret|Ds7|Dih|TTSQ|credential" iqon-full-audit-2026-05-19.md` exited 1, confirming credential terms/substrings are absent. +- `python3 -c` document check returned `has_purpose True`, `has_toc True`, `has_plan True`, `has_dates True`. diff --git a/MEMORY/WORK/20260520-005444_continue-iqon-phase1/PRD.md b/MEMORY/WORK/20260520-005444_continue-iqon-phase1/PRD.md new file mode 100644 index 0000000..1698258 --- /dev/null +++ b/MEMORY/WORK/20260520-005444_continue-iqon-phase1/PRD.md @@ -0,0 +1,56 @@ +--- +task: Продолжить аудит iqon.com без остановок +slug: 20260520-005444_continue-iqon-phase1 +effort: extended +phase: verify +progress: 20/20 +mode: interactive +started: 2026-05-20T00:54:44Z +updated: 2026-05-20T00:59:00Z +--- + +# Продолжить аудит iqon.com без остановок + +Purpose: превратить полный аудит `iqon.com` в локальный Phase 1 hardening-пакет без записи на live-сайт. + +## Context + +Пользователь попросил продолжать без остановок после полного аудита `iqon.com`. Без отдельного подтверждения нельзя писать во внешний WordPress/hosting, поэтому текущая работа ограничена локальными артефактами: готовый PHP snippet для Code Snippets, инструкция внедрения и проверочный чеклист. Источники: `iqon-full-audit-2026-05-19.md`, `/Users/svmac/.codex/memories/wiki/projects/iqon-com.md`, live-проверки из предыдущего шага. + +## Criteria + +- [x] ISC-1: Git status inspected before local file edits. +- [x] ISC-2: Existing iqon audit document read before implementation. +- [x] ISC-3: Project memory page read before implementation. +- [x] ISC-4: Development memory routing check completed successfully. +- [x] ISC-5: Remote live writes excluded from this pass. +- [x] ISC-6: WordPress hardening snippet file exists locally. +- [x] ISC-7: Snippet blocks public REST user endpoint. +- [x] ISC-8: Snippet disables XML-RPC through WordPress filter. +- [x] ISC-9: Snippet includes install documentation fallback block. +- [x] ISC-10: Snippet sends missing defensive security headers. +- [x] ISC-11: Snippet injects viewport when absent. +- [x] ISC-12: Snippet rewrites known HTTP iqon URLs. +- [x] ISC-13: Snippet rewrites known HTTP maps URLs. +- [x] ISC-14: Snippet fixes Yoast site-name metadata. +- [x] ISC-15: Snippet removes WordPress generator output. +- [x] ISC-16: Snippet adds emergency responsive CSS. +- [x] ISC-17: Deployment document describes non-secret installation steps. +- [x] ISC-18: Deployment document lists live verification commands. +- [x] ISC-19: PHP syntax verification attempted on snippet. +- [x] ISC-20: Created artifacts contain no credential values. + +## Decisions + +- Use a local snippet package, not a live deployment. +- Prefer defensive, reversible WordPress filters before redesign. +- Keep secrets out of new files and final response. + +## Verification + +- `git status --short` confirms worktree awareness. +- `git status --short` showed existing dirty worktree plus new local artifacts. +- `rg --files wp-snippets` showed `iqon-phase1-hardening.php` and `README.md`. +- `php -l wp-snippets/iqon-phase1-hardening.php` was attempted; local PHP CLI is missing. +- `rg -n "password|passwd|token|BEGIN RSA|BEGIN OPENSSH|api[_-]?key|private_key" wp-snippets` returned no output. +- Live commands in deployment document remain proposed until deployment approval. diff --git a/MEMORY/WORK/20260520-100503_fix-codex-mcp-startup/PRD.md b/MEMORY/WORK/20260520-100503_fix-codex-mcp-startup/PRD.md new file mode 100644 index 0000000..3226842 --- /dev/null +++ b/MEMORY/WORK/20260520-100503_fix-codex-mcp-startup/PRD.md @@ -0,0 +1,10 @@ +--- +task: fix codex mcp startup warnings +slug: 20260520-100503_fix-codex-mcp-startup +effort: standard +phase: observe +progress: 0/0 +mode: interactive +started: 2026-05-20T10:05:03Z +updated: 2026-05-20T10:05:03Z +--- diff --git a/MEMORY/WORK/20260520-103700_telegram-prefix-options/PRD.md b/MEMORY/WORK/20260520-103700_telegram-prefix-options/PRD.md new file mode 100644 index 0000000..49f541d --- /dev/null +++ b/MEMORY/WORK/20260520-103700_telegram-prefix-options/PRD.md @@ -0,0 +1,10 @@ +--- +task: explain telegram prefix routing options +slug: 20260520-103700_telegram-prefix-options +effort: standard +phase: observe +progress: 0/0 +mode: interactive +started: 2026-05-20T10:37:00Z +updated: 2026-05-20T10:37:00Z +--- diff --git a/MEMORY/WORK/20260520-125837_stop-hook-failure-diagnosis/PRD.md b/MEMORY/WORK/20260520-125837_stop-hook-failure-diagnosis/PRD.md new file mode 100644 index 0000000..74874a8 --- /dev/null +++ b/MEMORY/WORK/20260520-125837_stop-hook-failure-diagnosis/PRD.md @@ -0,0 +1,10 @@ +--- +task: Stop hook failure diagnosis +slug: 20260520-125837_stop-hook-failure-diagnosis +effort: standard +phase: observe +progress: 0/0 +mode: interactive +started: 2026-05-20T12:58:37+03:00 +updated: 2026-05-20T12:58:37+03:00 +--- diff --git a/MEMORY/WORK/20260520-163012_static-deploy-contact-decisions/PRD.md b/MEMORY/WORK/20260520-163012_static-deploy-contact-decisions/PRD.md new file mode 100644 index 0000000..a0f3959 --- /dev/null +++ b/MEMORY/WORK/20260520-163012_static-deploy-contact-decisions/PRD.md @@ -0,0 +1,78 @@ +--- +task: Обновить контакты, записать решения, подготовить deployment-пакет +slug: 20260520-163012_static-deploy-contact-decisions +effort: standard +phase: complete +progress: 10/10 +mode: interactive +started: 2026-05-20T15:00:00+03:00 +updated: 2026-05-20T16:30:12+03:00 +--- + +# Обновить контакты, записать решения, подготовить deployment-пакет + +Purpose: зафиксировать работу по обновлению контактных данных, записи решений владельца и подготовке deployment-пакета для `iqon.com`. + +## Context + +Сергей ответил на 4 открытых вопроса проекта iqon.com: каноничные контакты (Бухарест/Алматы, phone→@infobidgebot, fax убрать), EN-only, static, reg.ru upload. Затем дал команду «прод continued» для подготовки deployment-пакета. Затем записал SSL-сертификат reg.ru в ~/certs/. + +### Owner Decisions Recorded + +| Question | Answer | Recorded In | +|----------|--------|-------------| +| Каноничные контакты | Бухарест; телефон → @infobidgebot; fax убрать | iqon-com.md, contact/index.html, index.html, new_redesign/index.html | +| Языковая политика | EN only | iqon-com.md, site-structure-brief | +| Платформа | Static HTML/CSS/JS | iqon-com.md | +| Деплой-маршрут | reg.ru file upload | iqon-com.md | + +### Risks + +- reg.ru shared hosting: .htaccess может обрабатываться Apache за nginx — проверить после деплоя. +- Сертификат self-signed, CN пустой — только для внутренних соединений с reg.ru. +- WordPress файлы нужно перемещать, а не удалять, при деплое. +- Русские URL редиректы через .htaccess — процент-кодированные пути могут вести себя по-разному на reg.ru nginx+Apache; проверить после деплоя. + +## Criteria + +- [x] ISC-1: Телефон и fax удалены из index.html, contact/index.html, new_redesign/index.html +- [x] ISC-2: @infobidgebot добавлен во все контактные места +- [x] ISC-3: contact/index.html переработан: Email + Telegram + Office +- [x] ISC-4: 4 решения владельца записаны в iqon-com.md Decisions +- [x] ISC-5: 3 открытых вопроса закрыты в iqon-com.md Open Questions +- [x] ISC-6: site-structure-brief обновлён с resolved items +- [x] ISC-7: deploy/.htaccess создан: 129 строк, 44 редиректа, security headers, WP blocking +- [x] ISC-8: deploy/404.html и deploy/403.html созданы +- [x] ISC-9: deploy/README.md с пошаговой инструкцией деплоя +- [x] ISC-10: SSL-сертификат ~/certs/ записан в infrastructure.md, client-projects.md, iqon-com.md + +## Decisions + +- Контакты: office@iqon.com + @infobidgebot (Telegram) + Bucharest address; без телефона и fax. +- Платформа: статическая замена WordPress (Phase 1 hardening становится interim). +- Деплой: reg.ru file manager upload. +- .htaccess: Apache mod_rewrite для редиректов + security headers + WP surface blocking. +- Сертификат ~/certs/: self-signed RSA 2048, /C=ru/ST=mo/L=moscow, valid до 2036-05-17. + +## Files Changed + +| File | Change | +|------|--------| +| `index.html` | Phone→@infobidgebot, fax removed (footer) | +| `contact/index.html` | Full rework: Email+Telegram+Office panels, nav CTA→@infobidgebot | +| `new_redesign/index.html` | Phone→@infobidgebot, fax removed | +| `deploy/.htaccess` | NEW: 129 lines, 44 redirects, security headers, WP block | +| `deploy/404.html` | NEW: custom error page | +| `deploy/403.html` | NEW: custom error page | +| `deploy/README.md` | NEW: step-by-step deployment guide | +| `content/site-structure-brief-2026-05-20.md` | Resolved: contacts, language, platform, deploy | +| `wiki/projects/iqon-com.md` | 4 decisions, 3 closed questions, Phase 5, cert path | +| `wiki/projects/client-projects.md` | iqon section updated: hosting, Telegram, SSL, platform, deploy, language | +| `wiki/infrastructure.md` | NEW section: SSL/TLS Certificates | + +## Verification + +- `rg -rn "261 2600|261 2608|F \+4|T \+4" iqon/ --glob '!server-backup*' --glob '!legacy*' --glob '!iqon-full-audit*'` → 0 matches +- `rg -n "infobidgebot" index.html contact/index.html` → matches in all expected locations +- `openssl x509 -in ~/certs/my.crt -noout -subject -dates` → subject=/C=ru/ST=mo/L=moscow, valid 2026–2036 +- `rg "certs|my\.crt" wiki/infrastructure.md wiki/projects/iqon-com.md wiki/projects/client-projects.md` → all three updated diff --git a/MEMORY/WORK/20260520-171600_memory-git-save/PRD.md b/MEMORY/WORK/20260520-171600_memory-git-save/PRD.md new file mode 100644 index 0000000..ef3cf12 --- /dev/null +++ b/MEMORY/WORK/20260520-171600_memory-git-save/PRD.md @@ -0,0 +1,47 @@ +--- +task: Save iqon memory and git snapshot +slug: 20260520-171600_memory-git-save +effort: standard +phase: complete +progress: 8/8 +mode: interactive +started: 2026-05-20T17:16:00+03:00 +updated: 2026-05-20T17:16:00+03:00 +--- + +# Save iqon memory and git snapshot + +Purpose: зафиксировать сохранение проектной памяти и подготовку git snapshot после локальной готовности static deploy-пакета `iqon.com`. + +## Context + +Сергей попросил сделать сохранение памяти и git. Перед коммитом проверен рабочий статус, добавлен `.gitignore` для backup/access-файлов, и исключены чувствительные директории/скрипты из планируемого snapshot. + +## Criteria + +- [x] ISC-1: Git status inspected before staging files +- [x] ISC-2: Secret scan run on deploy-related file set +- [x] ISC-3: Backup directories excluded from git tracking +- [x] ISC-4: Access helper scripts excluded from git tracking +- [x] ISC-5: Current memory save PRD created locally +- [x] ISC-6: Static deploy readiness report exists +- [x] ISC-7: Codex project memory updated externally +- [x] ISC-8: Git commit prepared from relevant project files only + +## Decisions + +- Do not stage `server-backup-*`, `legacy_reference`, `.cursor`, `.cursorrules`, `check_ssh*.exp`, or `.mhtml`. +- Keep deployment docs, static prototype, reports, SEO artifacts, scripts, snippets, and local MEMORY in git. +- Remove already-tracked backup and mhtml files from git index with `git rm --cached`, without deleting local files. + +## Verification + +- `git status --short` showed dirty tracked files and many untracked project artifacts. +- Secret scan returned references to paths and identifiers only, not credential values. +- `.gitignore` now excludes backup/access/helper artifacts. +- `git rm --cached -r server-backup-20260518 server71.hosting.reg.ru_1500.mhtml` removed sensitive backup artifacts from git tracking only. + +--- + +*Created: 2026-05-20* +*Updated: 2026-05-20* diff --git a/assets/images/en.png b/assets/images/en.png new file mode 100644 index 0000000..9afcef0 Binary files /dev/null and b/assets/images/en.png differ diff --git a/assets/images/nav-arrow-down.png b/assets/images/nav-arrow-down.png new file mode 100644 index 0000000..63a734b Binary files /dev/null and b/assets/images/nav-arrow-down.png differ diff --git a/assets/images/ru.png b/assets/images/ru.png new file mode 100644 index 0000000..4efd00c Binary files /dev/null and b/assets/images/ru.png differ diff --git a/case-studies/index.html b/case-studies/index.html new file mode 100644 index 0000000..e3f1588 --- /dev/null +++ b/case-studies/index.html @@ -0,0 +1,44 @@ + + + + + + Case Studies | IQON + + + + + + + +
+ iqon + + Book Discovery Call +
+
+
+

Cases

+

Selected outcome snapshots.

+

IQON work is often confidential, so these examples describe the business context, intervention, and operating result without exposing client names.

+
+
+

Operating Model Redesign

Created a governance rhythm for a regional enterprise with fragmented delivery streams, reducing decision delays and duplicated platform work.

+

Infrastructure Modernization

Assessed a distributed infrastructure estate, prioritized resilience improvements, and shaped a staged roadmap for service quality and cost control.

+

Decision Support

Reframed reporting around executive decisions, portfolio visibility, and trusted operational signals instead of disconnected departmental dashboards.

+
+
+

How IQON handles confidential work

+

Where client names cannot be published, IQON uses anonymized snapshots focused on the decision context, delivery constraint, and measurable operating outcome.

+
+
+ + + + diff --git a/contact/index.html b/contact/index.html new file mode 100644 index 0000000..14e4b37 --- /dev/null +++ b/contact/index.html @@ -0,0 +1,50 @@ + + + + + + Contact | IQON + + + + + + + +
+ iqon + + @infobidgebot +
+
+
+

Contact

+

Start with the decision in front of you.

+

Reach IQON by email or Telegram.

+
+
+ + +
+

Office

+

10th Montreal Sq. 3rd Floor 3.01 bis Office, 011469 Bucharest, Romania

+
+
+

Ready to frame the next move?

Message @infobidgebot
+
+ + + + diff --git a/content/site-structure-brief-2026-05-20.md b/content/site-structure-brief-2026-05-20.md new file mode 100644 index 0000000..a3d827a --- /dev/null +++ b/content/site-structure-brief-2026-05-20.md @@ -0,0 +1,166 @@ +# IQON Site Structure Brief + +Purpose: определить целевую структуру, messaging и content backlog для модернизированного `iqon.com`. + +## Contents + +- [Inputs](#inputs) +- [Recommended Positioning](#recommended-positioning) +- [Target Site Map](#target-site-map) +- [Page Briefs](#page-briefs) +- [Content Backlog](#content-backlog) +- [Known Unknowns](#known-unknowns) +- [Verification](#verification) + +## Inputs + +| Source | Signal | +|--------|--------| +| `index.html` | Existing light static draft with modern homepage direction | +| `iqon-full-audit-2026-05-19.md` | Live audit findings and Open Design assessment | +| `seo/url-cleanup-plan-2026-05-20.md` | URL policy and redirect strategy | +| `seo/sitemap-inventory-2026-05-20.csv` | Existing legacy URL inventory | + +## Recommended Positioning + +Short positioning: + +> IQON helps leadership teams align technology decisions with measurable business outcomes. + +Primary audience: + +- Executives responsible for transformation, IT strategy, governance, risk, and enterprise architecture. +- Organizations with legacy enterprise systems, fragmented delivery, or unclear investment priorities. + +Tone: + +- Calm, precise, executive B2B. +- Avoid generic "digital innovation" language. +- Emphasize decision quality, delivery confidence, governance, measurable outcomes, and implementation realism. + +## Target Site Map + +| URL | Page Type | Status | +|-----|-----------|--------| +| `/` | Homepage | Rewrite from current static draft | +| `/services/` | Services overview | New canonical page | +| `/services/strategy-governance/` | Service detail | New canonical page | +| `/services/enterprise-architecture/` | Service detail | New canonical page | +| `/services/data-analytics/` | Service detail | New canonical page | +| `/services/infrastructure-cloud/` | Service detail | New canonical page | +| `/services/security-continuity/` | Service detail | New canonical page | +| `/industries/` | Industry overview | New canonical page | +| `/case-studies/` | Anonymized outcome snapshots | Resolved for launch | +| `/contact/` | Contact and intake | Canonical contact data applied | + +## Page Briefs + +### Homepage + +Goal: communicate IQON's current offer within the first viewport and route users to services/contact. + +Required sections: + +- Hero with direct offer and credibility signal. +- Service group overview with 5 cards. +- Method: Ask, Understand, Challenge, Propose. +- Proof: current case study or "selected historical work" if no current cases exist. +- Contact CTA with verified email and location data. + +### Services Overview + +Goal: replace thin `/services-solutions/` with a scannable executive service overview. + +Required sections: + +- Intro: how IQON evaluates and improves technology decisions. +- Five service groups with outcomes, not only capabilities. +- Engagement models: assessment, roadmap, governance setup, implementation support. +- CTA: discovery conversation. + +### Service Detail Pages + +Each service detail should include: + +- The business problem. +- What IQON does. +- Deliverables. +- Typical stakeholders. +- Evidence or representative use case. +- CTA. + +### Industries + +Goal: preserve useful industry-specific positioning without keeping dozens of thin pages. + +Recommended industries: + +- Energy and utilities. +- Telecommunications. +- Retail and wholesale. +- Logistics and transport. +- Manufacturing and process industries. + +### Case Studies + +Goal: avoid abandoned-looking old content. + +Options considered: + +| Option | Use When | Page Treatment | +|--------|----------|----------------| +| Current cases available | Client can provide recent material | Publish 2-4 current case cards | +| Only old cases available | No new proof yet | Label as historical selected work | +| No publishable cases | Confidential work only | Use anonymized outcome snapshots | + +Launch decision: use anonymized outcome snapshots until client-approved named cases are available. + +### Contact + +Goal: replace legacy CAPTCHA risk and conflicting office data. + +Required data before launch: + +- Canonical public email. +- Canonical office address or decision to omit physical address. +- Phone policy: replace phone with @infobidgebot Telegram; remove fax (confirmed by owner, 2026-05-20). +- Privacy text for form or mailto-only fallback. + +## Content Backlog + +| Priority | Item | Owner Input Needed | +|----------|------|--------------------| +| P0 | Canonical contact data | Email: office@iqon.com; Telegram: @infobidgebot; Address: Bucharest only; Phone: removed; Fax: removed | +| P0 | Final language policy | EN only (confirmed by owner, 2026-05-20) | +| P0 | Deployment target | Static HTML/CSS/JS replacement (confirmed by owner, 2026-05-20) | +| P1 | Current service naming | Approve five service groups | +| P1 | Case study policy | Anonymized outcome snapshots for launch | +| P1 | Legal/privacy footer | Company legal name and privacy text | +| P2 | Team/about page decision | Include or omit | +| P2 | Analytics policy | None, privacy-friendly, or GA4 | + +## Known Unknowns + +- Exact current WordPress core version remains unconfirmed. +- `office@iqon.kz` status remains unconfirmed. +- Moscow and Almaty office status remains unconfirmed. +- Final deployment path: reg.ru file upload (confirmed by owner, 2026-05-20). + +## Verification + +Strongest checks before implementation: + +```bash +rg -n "office@iqon|iqon.kz|Bucharest|Moscow|Almaty|Москва|Алматы" index.html legacy_reference server-backup-20260518/php-source +python3 -c "import csv; print(len(list(csv.DictReader(open('seo/sitemap-inventory-2026-05-20.csv',encoding='utf-8')))))" +``` + +Expected current signal: + +- Contact data was consolidated to office@iqon.com, @infobidgebot, and Bucharest-only office details. +- Sitemap inventory has 66 rows. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026, owner decisions applied* diff --git a/deploy/.htaccess b/deploy/.htaccess new file mode 100644 index 0000000..48facc3 --- /dev/null +++ b/deploy/.htaccess @@ -0,0 +1,134 @@ +# IQON Static Deployment — .htaccess for reg.ru shared hosting +# Replaces WordPress routing with static file serving + 301 redirects +# Created: 2026-05-20 +# Updated: 2026-05-20 + +# ── Security headers ────────────────────────────────────────────── + + Header always set X-Content-Type-Options "nosniff" + Header always set X-Frame-Options "SAMEORIGIN" + Header always set Referrer-Policy "strict-origin-when-cross-origin" + Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()" + Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src https://fonts.gstatic.com; img-src 'self' data:; connect-src 'self'; base-uri 'self'; frame-ancestors 'self'" + + +# ── Rewrite engine ─────────────────────────────────────────────── + + RewriteEngine On + + # ── Force HTTPS ─────────────────────────────────────────── + RewriteCond %{HTTPS} off + RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] + + # ── Canonical host ──────────────────────────────────────── + RewriteCond %{HTTP_HOST} ^www\.iqon\.com$ [NC] + RewriteRule ^ https://iqon.com%{REQUEST_URI} [L,R=301] + + # ── Block WordPress surfaces ────────────────────────────── + RewriteRule ^wp-json/ - [F,L] + RewriteRule ^xmlrpc\.php$ - [F,L] + RewriteRule ^wp-login\.php$ - [F,L] + + # ── Block WordPress files ───────────────────────────────── + RewriteRule ^readme\.html$ - [F,L] + RewriteRule ^license\.html$ - [F,L] + RewriteRule ^wp-config\.php$ - [F,L] + + # ── Domain redirects (from original .htaccess) ───────────── + RewriteCond %{HTTP_HOST} ^iqon\.md$ [OR] + RewriteCond %{HTTP_HOST} ^www\.iqon\.md$ + RewriteRule ^/?$ https://www.iqon.com/ [R=301,L] + + RewriteCond %{HTTP_HOST} ^iqonrussia\.kz$ [OR] + RewriteCond %{HTTP_HOST} ^www\.iqonrussia\.kz$ + RewriteRule ^/?$ https://www.iqon.com/ [R=301,L] + + RewriteCond %{HTTP_HOST} ^iqonrussia\.ru$ [OR] + RewriteCond %{HTTP_HOST} ^www\.iqonrussia\.ru$ + RewriteRule ^/?$ https://www.iqon.com/ [R=301,L] + + # ── Homepage aliases → / ────────────────────────────────── + RewriteRule ^homepage/?$ / [R=301,L] + RewriteRule ^hows-business/?$ / [R=301,L] + + # ── Old service URLs → new /services/ structure ──────────── + RewriteRule ^services-solutions/?$ /services/ [R=301,L] + + # Enterprise Management & Decision Support → Strategy & Governance / Data & Analytics + RewriteRule ^services-solutions/enterprise-management-decision-support-solutions/?$ /services/strategy-governance/ [R=301,L] + RewriteRule ^services-solutions/enterprise-management-decision-support-solutions/managed-services/?$ /services/strategy-governance/ [R=301,L] + RewriteRule ^services-solutions/enterprise-management-decision-support-solutions/enterprise-orchestration/?$ /services/strategy-governance/ [R=301,L] + RewriteRule ^services-solutions/enterprise-management-decision-support-solutions/enterprise-management-systems/?$ /services/strategy-governance/ [R=301,L] + RewriteRule ^services-solutions/enterprise-management-decision-support-solutions/customer-intelligence-solutions/?$ /services/data-analytics/ [R=301,L] + RewriteRule ^services-solutions/enterprise-management-decision-support-solutions/enterprise-information-management/?$ /services/data-analytics/ [R=301,L] + + # IS Advisory → Enterprise Architecture / Strategy & Governance / Security + RewriteRule ^services-solutions/is-advisory-services/?$ /services/enterprise-architecture/ [R=301,L] + RewriteRule ^services-solutions/is-advisory-services/business-technology-enterprise-architecture/?$ /services/enterprise-architecture/ [R=301,L] + RewriteRule ^services-solutions/is-advisory-services/it-strategy-governance/?$ /services/strategy-governance/ [R=301,L] + RewriteRule ^services-solutions/is-advisory-services/information-security-services/?$ /services/security-continuity/ [R=301,L] + RewriteRule ^services-solutions/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/?$ /services/security-continuity/ [R=301,L] + RewriteRule ^services-solutions/is-advisory-services/is-regulatory-and-compliance-services/?$ /services/security-continuity/ [R=301,L] + + # IT Infrastructure → Infrastructure & Cloud + RewriteRule ^services-solutions/it-infrastructure-services/?$ /services/infrastructure-cloud/ [R=301,L] + RewriteRule ^services-solutions/it-infrastructure-services/infrastructure-management-consulting/?$ /services/infrastructure-cloud/ [R=301,L] + RewriteRule ^services-solutions/it-infrastructure-services/it-infrastructure-transformation-services/?$ /services/infrastructure-cloud/ [R=301,L] + RewriteRule ^services-solutions/it-infrastructure-services/end-user-computing-technology-solutions/?$ /services/infrastructure-cloud/ [R=301,L] + + # Mobility → Enterprise Architecture / Infrastructure & Cloud + RewriteRule ^services-solutions/mobility-consulting-services/?$ /services/enterprise-architecture/ [R=301,L] + RewriteRule ^services-solutions/mobility-consulting-services/mobility-software-services-applications/?$ /services/enterprise-architecture/ [R=301,L] + RewriteRule ^services-solutions/mobility-consulting-services/mobility-managed-services/?$ /services/enterprise-architecture/ [R=301,L] + RewriteRule ^services-solutions/mobility-consulting-services/mobility-software-services-devices-and-platforms/?$ /services/infrastructure-cloud/ [R=301,L] + RewriteRule ^services-solutions/mobility-consulting-services/mobility-business-integration-services/?$ /services/enterprise-architecture/ [R=301,L] + + # Industry Specific → /industries/ + RewriteRule ^services-solutions/industry-specific-services/?$ /industries/ [R=301,L] + RewriteRule ^industry-specific-services/?$ /industries/ [R=301,L] + RewriteRule ^services-solutions/industry-specific-services/retail-wholesail/?$ /industries/ [R=301,L] + RewriteRule ^services-solutions/industry-specific-services/retail-wholesale/?$ /industries/ [R=301,L] + RewriteRule ^services-solutions/industry-specific-services/logistics-transport/?$ /industries/ [R=301,L] + RewriteRule ^services-solutions/industry-specific-services/telecommunication/?$ /industries/ [R=301,L] + RewriteRule ^services-solutions/industry-specific-services/energy-utilities/?$ /industries/ [R=301,L] + RewriteRule ^services-solutions/industry-specific-services/manufacturing-process/?$ /industries/ [R=301,L] + + # Contact + RewriteRule ^contact-kz/?$ /contact/ [R=301,L] + + # ── Russian URLs → English (EN-only policy) ───────────────── + RewriteRule ^%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/?$ /services/ [R=301,L,NE] + RewriteRule ^%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/?$ /services/strategy-governance/ [R=301,L,NE] + RewriteRule ^%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/it-infrastructure-services/?$ /services/infrastructure-cloud/ [R=301,L,NE] + RewriteRule ^%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/?$ /industries/ [R=301,L,NE] + RewriteRule ^%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/mobility-consulting-services/?$ /services/enterprise-architecture/ [R=301,L,NE] + RewriteRule ^%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/?$ /services/enterprise-architecture/ [R=301,L,NE] + # Catch-all for remaining Russian subpaths + RewriteCond %{REQUEST_URI} ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/ + RewriteRule .* /services/ [R=301,L,NE] + + # ── Custom error pages ───────────────────────────────────── + ErrorDocument 404 /404.html + ErrorDocument 403 /403.html + + +# ── Caching ────────────────────────────────────────────────────── + + ExpiresActive On + ExpiresByType text/html "access plus 1 hour" + ExpiresByType text/css "access plus 1 week" + ExpiresByType application/javascript "access plus 1 week" + ExpiresByType image/png "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType image/x-icon "access plus 1 month" + ExpiresByType application/xml "access plus 1 hour" + + +# ── Block directory listings ───────────────────────────────────── +Options -Indexes + +# ── Protect sensitive files ────────────────────────────────────── + + Require all denied + diff --git a/deploy/403.html b/deploy/403.html new file mode 100644 index 0000000..0e0d16c --- /dev/null +++ b/deploy/403.html @@ -0,0 +1,28 @@ + + + + + + 403 — Forbidden | IQON + + + + + + + +
+

403

+

Access to this resource is not allowed.

+

Return to iqon.com

+
+ + diff --git a/deploy/404.html b/deploy/404.html new file mode 100644 index 0000000..ed3305c --- /dev/null +++ b/deploy/404.html @@ -0,0 +1,28 @@ + + + + + + 404 — Page Not Found | IQON + + + + + + + +
+

404

+

The page you are looking for does not exist or has been moved.

+

Return to iqon.com

+
+ + diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 0000000..14c55bf --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,183 @@ +# IQON Static Deployment — reg.ru + +Purpose: пошаговая инструкция для замены WordPress-сайта `iqon.com` на статический прототип через reg.ru файловый менеджер. + +## Contents + +- [Prerequisites](#prerequisites) +- [Deployment Steps](#deployment-steps) +- [Post-Deploy Verification](#post-deploy-verification) +- [Rollback](#rollback) +- [File Inventory](#file-inventory) + +## Prerequisites + +- [ ] Backup live site files and database completed (`server-backup-20260518/`) +- [ ] Database archive `u0012812_iqon` confirmed as downloaded +- [ ] Access to reg.ru hosting panel (ISPmanager or file manager) +- [ ] All prototype pages pass local visual QA (`python3 -m http.server 8061`) + +## Deployment Steps + +### Step 1: Backup Current Live Site + +Before any changes, create a dated backup of the live site through the reg.ru panel: + +1. Log in to https://www.reg.ru/ → Hosting → Backup +2. Create full backup of `iqon.com` files + `u0012812_iqon` database +3. Confirm backup is downloadable before proceeding + +### Step 2: Upload Static Files + +Upload the following files to `/var/www/u0012812/data/www/iqon.com/` via reg.ru file manager: + +**Root level:** +``` +.htaccess ← NEW (from deploy/) +403.html ← NEW (from deploy/) +404.html ← NEW (from deploy/) +index.html ← from repo root +styles.css ← from repo root +script.js ← from repo root +sitemap.xml ← from repo root +robots.txt ← from repo root +``` + +**Subdirectories:** +``` +services/index.html +services/strategy-governance/index.html +services/enterprise-architecture/index.html +services/data-analytics/index.html +services/infrastructure-cloud/index.html +services/security-continuity/index.html +industries/index.html +case-studies/index.html +contact/index.html +``` + +**Assets (if any):** +``` +assets/ ← from repo assets/ +``` + +### Step 3: Remove WordPress Files + +After static files are uploaded and verified: + +1. **Do NOT delete yet** — first verify the static site loads correctly +2. Once verified, move (not delete) WordPress files to a `_wordpress_backup/` subdirectory: + - `wp-admin/` + - `wp-includes/` + - `wp-content/` + - `wp-login.php` + - `wp-cron.php` + - `wp-settings.php` + - `wp-config.php` (move to `_wordpress_backup/`) + - All other `.php` files in root except `.htaccess` +3. Keep `_wordpress_backup/` for 30 days, then delete + +### Step 4: Upload .htaccess + +1. Upload `deploy/.htaccess` to the site root +2. This replaces the WordPress `.htaccess` +3. Verify redirect behavior immediately (see below) + +### Step 5: Remove WordPress Database User (Later) + +The `u0012812_iqon` database can be kept as archive. It is not accessed by the static site. + +## Post-Deploy Verification + +Run these checks after deployment: + +```bash +# 1. Homepage loads +curl -I -L https://iqon.com/ +# Expected: 200, security headers present, no WordPress signals + +# 2. Security headers present +curl -I https://iqon.com/ | grep -i "X-Content-Type-Options\|X-Frame-Options\|Referrer-Policy\|Content-Security-Policy" +# Expected: all four headers present + +# 3. WordPress surfaces blocked +curl -I https://iqon.com/wp-json/ +# Expected: 403 Forbidden + +curl -I https://iqon.com/xmlrpc.php +# Expected: 403 Forbidden + +curl -I https://iqon.com/readme.html +# Expected: 403 Forbidden + +# 4. 301 redirects work +curl -I -L https://iqon.com/services-solutions/ +# Expected: 301 → https://iqon.com/services/ + +curl -I -L https://iqon.com/homepage/ +# Expected: 301 → https://iqon.com/ + +# 5. All target pages return 200 +for path in / /services/ /services/strategy-governance/ /services/enterprise-architecture/ /services/data-analytics/ /services/infrastructure-cloud/ /services/security-continuity/ /industries/ /case-studies/ /contact/; do + code=$(curl -o /dev/null -s -w "%{http_code}" "https://iqon.com${path}") + echo "${path} → ${code}" +done +# Expected: all 200 + +# 6. Contact page has @infobidgebot, no phone/fax +curl -sS https://iqon.com/contact/ | grep -c "infobidgebot" +# Expected: ≥ 2 + +curl -sS https://iqon.com/contact/ | grep -c "261 2600\|261 2608\|Fax\|fax" +# Expected: 0 + +# 7. Mixed content check +curl -sS https://iqon.com/ | grep -c "http://www\.iqon\|http://iqon\|http://maps\.google" +# Expected: 0 + +# 8. Sitemap accessible +curl -I https://iqon.com/sitemap.xml +# Expected: 200 + +curl -I https://iqon.com/robots.txt +# Expected: 200 +``` + +## Rollback + +If the static deployment has issues: + +1. Log in to reg.ru hosting panel +2. Restore files from the backup created in Step 1 +3. If only `.htaccess` caused the issue: restore the original WordPress `.htaccess` from `server-backup-20260518/.htaccess` +4. The WordPress database and theme files in `_wordpress_backup/` can be restored + +The original WordPress `.htaccess` is preserved in `server-backup-20260518/.htaccess`. + +## File Inventory + +| Source File | Target Path | Action | +|------------|-------------|--------| +| `deploy/.htaccess` | `/` root | Upload (replaces WP .htaccess) | +| `deploy/404.html` | `/` root | Upload | +| `deploy/403.html` | `/` root | Upload | +| `index.html` | `/` root | Upload | +| `styles.css` | `/` root | Upload | +| `script.js` | `/` root | Upload | +| `sitemap.xml` | `/` root | Upload | +| `robots.txt` | `/` root | Upload | +| `services/index.html` | `/services/` | Upload | +| `services/strategy-governance/index.html` | `/services/strategy-governance/` | Upload | +| `services/enterprise-architecture/index.html` | `/services/enterprise-architecture/` | Upload | +| `services/data-analytics/index.html` | `/services/data-analytics/` | Upload | +| `services/infrastructure-cloud/index.html` | `/services/infrastructure-cloud/` | Upload | +| `services/security-continuity/index.html` | `/services/security-continuity/` | Upload | +| `industries/index.html` | `/industries/` | Upload | +| `case-studies/index.html` | `/case-studies/` | Upload | +| `contact/index.html` | `/contact/` | Upload | +| `assets/*` | `/assets/` | Upload (if any) | + +--- + +*Created: 2026-05-20* +*Updated: 2026-05-20* diff --git a/index.html b/index.html index c2c84b4..1845a22 100644 --- a/index.html +++ b/index.html @@ -14,11 +14,11 @@ href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Sora:wght@300;400;600;700;800&display=swap" rel="stylesheet" /> - +
- + iqon - Book Discovery Call + Book Discovery Call
@@ -66,8 +67,8 @@ predictable outcomes for leadership teams.

- Start a conversation - Explore services + Start a conversation + Explore services
@@ -84,22 +85,27 @@

Industry Specific Services

Domain-led delivery models for regulated and high-complexity sectors.

+ View industry experience
@@ -169,7 +175,7 @@

Need clarity on your next IT move?

We can turn ambiguity into a practical roadmap in a two-week advisory sprint.

- Talk to IQON + Talk to IQON
@@ -195,17 +201,16 @@

Contact

10th Montreal Sq. 3rd Floor 3.01 bis Office, 011469 Bucharest, Romania

-

T +4 037 261 2600

-

F +4 037 261 2608

+

@infobidgebot

office@iqon.com

- + diff --git a/industries/index.html b/industries/index.html new file mode 100644 index 0000000..9f14f41 --- /dev/null +++ b/industries/index.html @@ -0,0 +1,43 @@ + + + + + + Industries | IQON + + + + + + + +
+ iqon + + Book Discovery Call +
+
+
+

Industries

+

Domain-aware technology decisions.

+

IQON works best where enterprise technology choices must account for regulation, operating complexity, distributed teams, and measurable business outcomes.

+
+
+

Energy & Utilities

Governance, continuity, asset-heavy operations, and decision visibility for regulated environments.

+

Telecommunications

Operating model, customer intelligence, platform modernization, and service management.

+

Retail & Wholesale

Infrastructure, analytics, digital operations, and decision support across distributed networks.

+

Logistics & Transport

Operational resilience, integration planning, reporting trust, and transformation sequencing.

+

Manufacturing

Architecture, continuity, process visibility, and modernization roadmaps for complex delivery environments.

+
+

Bring context into the roadmap.

Discuss your industry context
+
+ + + + diff --git a/iqon-full-audit-2026-05-19.md b/iqon-full-audit-2026-05-19.md new file mode 100644 index 0000000..c5a258f --- /dev/null +++ b/iqon-full-audit-2026-05-19.md @@ -0,0 +1,272 @@ +# Полный аудит iqon.com + +Purpose: текущий аудит live-сайта `iqon.com` и план необходимых изменений с опорой на Open Design `design-review` и `frontend-design`. + +## Contents + +- [Executive Finding](#executive-finding) +- [Verified Live Facts](#verified-live-facts) +- [Open Design Assessment](#open-design-assessment) +- [Findings](#findings) +- [Change Plan](#change-plan) +- [Recommended Strategy](#recommended-strategy) +- [Phase 1 Local Package](#phase-1-local-package) +- [Phase 2 URL Cleanup Package](#phase-2-url-cleanup-package) +- [Phase 3 Content Structure Package](#phase-3-content-structure-package) +- [Phase 4 Static Prototype Package](#phase-4-static-prototype-package) +- [Verification Checklist](#verification-checklist) +- [Open Questions](#open-questions) + +## Executive Finding + +`iqon.com` сейчас выглядит и работает как legacy WordPress-сайт 2012-2013 года с частично обновлённой платформой. PHP 8 и jQuery fixes применены, но сайт всё ещё не соответствует современному уровню B2B IT-консалтинга: фиксированная ширина 960px, устаревший контент, слабая SEO-семантика, открытые WordPress surfaces, mixed content и отсутствие ключевых security headers. + +Главная рекомендация: не развивать текущую тему как долгосрочную основу. Правильнее использовать быстрый hardening текущего WordPress как временную меру, затем заменить публичный сайт на статический или headless/static-пакет на базе локального light redesign. + +## Verified Live Facts + +Проверено 19 May 2026. + +| Area | Fact | Evidence | +|------|------|----------| +| Canonical host | `https://www.iqon.com/` redirects to `https://iqon.com/` | `curl -I -L https://www.iqon.com/` | +| HTTPS | HSTS present: `strict-transport-security: max-age=31536000` | `curl -I -L https://www.iqon.com/` | +| Security headers | CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy absent from sampled homepage headers | `curl -I -L https://www.iqon.com/` | +| WordPress REST | `/wp-json/` is public and exposes namespaces/routes | `curl https://www.iqon.com/wp-json/` | +| Users endpoint | Public users include `admin` and `iqnadm01` | `curl https://iqon.com/wp-json/wp/v2/users` | +| Yoast | Live HTML shows Yoast SEO plugin v27.3 | homepage HTML | +| Readme | `https://iqon.com/readme.html` returns HTTP 200 | `curl -I -L https://iqon.com/readme.html` | +| Sitemap | `page-sitemap.xml` has 66 URLs | parsed sitemap | +| Sitemap duplicates | 3 duplicated URL groups: `/industry-specific-services/` x2, `/contact/` x2, `/homepage/` x3 | parsed sitemap | +| Encoded URLs | 29 sitemap URLs are percent-encoded Cyrillic paths | parsed sitemap | +| Last content freshness | Latest page sitemap `lastmod` is `2013-07-25T11:20:03+00:00` | parsed sitemap | +| Theme layout | CSS uses fixed `#wrapper { width: 960px; }` and no responsive media strategy in theme CSS | live `style.css` | +| Contact page | Contact page embeds HTTP Google Maps iframe and uses legacy `jquery.realperson` CAPTCHA | `curl https://iqon.com/contact/` | +| Homepage mixed content | Homepage includes HTTP hero/image/OG resources | homepage HTML | +| XML-RPC | `xmlrpc.php` gives empty reply under HTTP/1.1 HEAD check; treat as unresolved until POST-tested | `curl -I --http1.1 https://iqon.com/xmlrpc.php` | + +Important correction: old local memory says WordPress 4.9.13. The live site now exposes newer platform signals, including Yoast 27.3 and modern REST namespaces. Exact WordPress core version was not confirmed in this audit, so do not repeat `WP 4.9.13` as a current live fact without a direct core-version check. + +## Open Design Assessment + +The requested `opendesign` skill is represented locally by Open Design skill entries `design-review` and `frontend-design`. + +Applied Open Design criteria: + +- Production interface should be responsive, not fixed-width desktop. +- Navigation and page sections should use semantic HTML and predictable scan patterns. +- B2B/consulting interface should feel clear, credible, current, and operationally useful. +- Typography, spacing, color, focus states, and layout should be systematic rather than incidental. +- A redesign should be the actual usable site, not a marketing mockup disconnected from contact, services, and cases. + +Live `iqon.com` fails the production UI bar mainly because its visual system is still built around fixed pixel widths, floats, absolute positioning, old fonts, image-based buttons, and content from 2012-2013. The local root static draft is closer to the right direction than the live site: it has semantic sections, modern typography, a responsive viewport, clear service tiles, and current consulting language. + +## Findings + +### P0 — Security And Exposure + +| Finding | Severity | Evidence | Required Change | +|---------|----------|----------|-----------------| +| Public REST user enumeration | High | `/wp-json/wp/v2/users` exposes `admin`, `iqnadm01` | Restrict user endpoints and author archives; preserve only required public REST routes | +| Missing defensive headers | High | Homepage headers only show HSTS among sampled security headers | Add CSP, X-Frame-Options or frame-ancestors, X-Content-Type-Options, Referrer-Policy, Permissions-Policy | +| Public `readme.html` | Medium | `readme.html` returns HTTP 200 | Block or return 404/403 for readme and other install docs | +| Legacy contact CAPTCHA | Medium | `jquery.realperson` plugin is from 2009 and uses removed `.live()` API | Replace CAPTCHA/contact flow or browser-test and patch compatibility immediately | +| XML-RPC state unresolved | Medium | HEAD check produced empty reply | Perform safe POST method check; disable XML-RPC unless explicitly needed | + +### P0 — Mixed Content And Trust + +| Finding | Severity | Evidence | Required Change | +|---------|----------|----------|-----------------| +| HTTP hero image and link | High | Homepage uses `http://www.iqon.com/...homepage.png` and `http://www.iqon.com/hows-business/` | Replace with HTTPS/canonical URLs | +| HTTP OG image and schema thumbnail | High | `og:image` and schema image point to HTTP | Set HTTPS image URL in Yoast/schema filters | +| HTTP Google Maps iframe | Medium | Contact page iframe uses `http://maps.google.com/...` | Replace with HTTPS embed or static contact block | + +### P1 — SEO And Information Architecture + +| Finding | Severity | Evidence | Required Change | +|---------|----------|----------|-----------------| +| Duplicate title tags | High | Homepage has initial `` plus Yoast `<title>` | Ensure exactly one meaningful title | +| Weak homepage title | High | Yoast title is only `How’s business?` | Use brand/category: `IQON | IT Strategy and Transformation Consulting` | +| Broken brand name in metadata | Medium | `og:site_name` is `- IQON` | Set site name to `IQON` | +| Stale sitemap dates | High | latest page `lastmod` is 2013-07-25 | Update content or noindex stale pages until refreshed | +| Duplicate sitemap URLs | Medium | 3 duplicated URL groups in sitemap | Remove duplicate pages or canonicalize/redirect | +| 29 encoded Cyrillic URLs | Medium | percent-encoded Russian URL paths in sitemap | Decide: keep bilingual architecture with hreflang, or noindex/redirect archived Russian pages | +| Thin service landing page | High | `/services-solutions/` renders only a heading | Build meaningful service overview with links and conversion path | +| Single old case study | Medium | case studies archive shows one 2010-era Rompetrol case | Add current cases or reposition as historical archive | + +### P1 — Design, UX, Accessibility + +| Finding | Severity | Evidence | Required Change | +|---------|----------|----------|-----------------| +| No mobile-first layout | High | CSS fixed `960px` wrapper and desktop floats | Replace with responsive grid/flex layout | +| No viewport meta in live theme | High | sampled live pages omit viewport meta | Add viewport immediately | +| Div-based navigation | Medium | `div#menu`, `div#content`, `div#footer` | Use `header`, `nav`, `main`, `section`, `footer` in redesign | +| Missing image alt text | Medium | hero/case images have no useful alt | Add descriptive alt or mark decorative images | +| No visible focus system in theme CSS | Medium | theme CSS has hover styles, no focus-visible system | Add keyboard focus states | +| Image buttons | Low | case/read and submit use image-based controls | Replace with semantic buttons/links and text labels | + +### P1 — Content And Positioning + +| Finding | Severity | Evidence | Required Change | +|---------|----------|----------|-----------------| +| Brand message is dated | High | homepage leads with old case-study headline, not clear offer | Define current IQON positioning and value proposition | +| Footer copyright stale | Medium | live footer says 2016 | Update copyright and legal footer | +| Contact information conflicts | Medium | local draft and live site have different phone/address details | Choose canonical contact data before launch | +| Russian/Kazakhstan offices may be stale | Medium | contact page lists Moscow and Almaty office details | Verify active offices before publishing | + +### P2 — Technical Debt + +| Finding | Severity | Evidence | Required Change | +|---------|----------|----------|-----------------| +| WordPress core version unknown | Medium | live signals differ from old memory | Confirm via admin/core files before platform decision | +| Legacy theme still active | High | theme CSS and markup are still 2012-style | Do not invest heavily in theme beyond hardening | +| Google-hosted jQuery dependency | Medium | loads jQuery from `ajax.googleapis.com` | Prefer local bundled asset or verified CDN policy | +| `jquery.realperson` compatibility risk | Medium | plugin uses `.live()` while jQuery is 3.7.1 | Replace or patch plugin | + +## Change Plan + +### Phase 0 — Backup And Baseline + +| Task | Owner Action | Verification | +|------|--------------|--------------| +| Confirm DB archive completion | Check reg.ru backup archive status for `u0012812_iqon` | Archive exists and can be downloaded | +| Capture current live HTML/CSS | Save homepage/contact/services/case samples | Files exist in backup folder | +| Confirm WP core version | Check admin/core/version source | Exact version recorded | +| Browser-test contact form | Submit safe test using non-production message | Form validation and delivery behavior known | + +### Phase 1 — Same-Day Hardening + +| Task | Method | Expected Signal | +|------|--------|-----------------| +| Add viewport meta | `wp_head` or output buffering snippet | HTML contains `<meta name="viewport" content="width=device-width, initial-scale=1">` | +| Replace HTTP URLs | DB update or output buffering | `rg "http://www.iqon.com|http://maps.google.com"` returns no live HTML hits | +| Add security headers | nginx/hosting config or WP `send_headers` | Headers include CSP/frame/content/referrer/permissions policy | +| Restrict REST users | WP filter or security plugin | `/wp-json/wp/v2/users` no longer exposes usernames | +| Block readme | nginx/hosting rule or WP redirect | `readme.html` returns 403/404 | +| Disable XML-RPC if unused | hosting rule or WP filter | XML-RPC cannot be used for pingback/login abuse | + +### Phase 2 — SEO And Content Cleanup + +| Task | Method | Expected Signal | +|------|--------|-----------------| +| Fix site name | Yoast/site settings | `og:site_name` is `IQON` | +| Fix homepage title and description | Yoast/page settings | Search snippet describes IQON offer clearly | +| Fix sitemap duplicates | Delete/redirect/noindex duplicate pages | `/contact/`, `/homepage/`, `/industry-specific-services/` are singletons | +| Decide Russian URLs policy | hreflang bilingual mode or noindex/redirect archive | 29 encoded URLs have intentional index status | +| Rewrite services overview | Replace empty page content | `/services-solutions/` has meaningful overview and service cards | +| Update contact facts | Verify addresses/phones/emails | Live contact matches approved company data | + +### Phase 3 — Open Design Redesign + +Recommended direction: use the local root light redesign as the base, not the dark `new_redesign/` as-is. + +| Task | Method | Expected Signal | +|------|--------|-----------------| +| Choose canonical local variant | Decide root draft vs `new_redesign/` | One source of truth recorded in memory | +| Build light B2B design system | Tokens for color, type, spacing, components | CSS variables and reusable sections exist | +| Rebuild navigation | Real URLs, mobile nav, semantic landmarks | Header works desktop/mobile | +| Rebuild services | 5 service pages or 5 sections with clear CTAs | Service pages have titles, descriptions, CTAs | +| Rebuild cases | Current case cards or historical archive framing | Case content no longer feels abandoned | +| Rebuild contact | Verified data, simple form/mailto/Telegram, privacy note | Contact path works without legacy CAPTCHA | + +### Phase 4 — Deployment Strategy + +| Option | Use When | Pros | Cons | +|--------|----------|------|------| +| Static replacement | Content can be frozen and maintained in repo | Fast, secure, low maintenance | Requires redirects and deployment discipline | +| New WordPress theme | Client needs WP editing | Preserves CMS workflows | More moving parts and security maintenance | +| Incremental legacy repair | Need risk reduction today | Fastest safe improvement | Does not solve brand/design/content age | + +## Recommended Strategy + +1. Execute Phase 0 and Phase 1 first. This reduces public risk without committing to a redesign path. +2. Choose static replacement unless there is a hard requirement for WordPress editing. +3. Use the light root draft as the base direction: it preserves the yellow IQON signal, reads more credible for B2B consulting, and avoids the overly dark tech-startup tone of `new_redesign/`. +4. Treat old WordPress content as source material, not as final copy. Most service pages and cases need rewriting, not restyling. +5. Keep the old site restorable until the new package passes desktop/mobile browser QA and URL redirect checks. + +## Phase 1 Local Package + +Prepared 20 May 2026, not deployed to live WordPress. + +| Artifact | Purpose | Status | +|----------|---------|--------| +| `wp-snippets/iqon-phase1-hardening.php` | Reversible WordPress snippet for immediate hardening | Local draft | +| `wp-snippets/README.md` | Install draft, verification commands, rollback notes | Local draft | +| `wp-snippets/hosting-rules.md` | nginx/Apache/file-level drafts for install docs and XML-RPC | Local draft | +| `scripts/iqon-phase1-verify.sh` | Automated post-activation verification script | Local draft | +| `reports/phase1-baseline-2026-05-20.md` | Current live baseline before activation | Local report | + +The snippet covers defensive headers, REST user endpoint removal, XML-RPC disable filter, viewport fallback, emergency responsive CSS, HTTP URL rewriting, Yoast site-name correction, and generator removal. The package intentionally does not include credentials and does not perform any remote writes. + +Important limit: physical `readme.html` and `license.html` may be served by nginx before WordPress runs. The PHP snippet includes only a WordPress fallback; guaranteed enforcement requires hosting-level blocking or removing the files after backup. + +Baseline result: `scripts/iqon-phase1-verify.sh https://iqon.com` currently fails on missing defensive headers, missing viewport, missing skip link, known HTTP URLs, `og:site_name`, public REST users, and `readme.html` returning `200`. This is expected before deployment and gives a comparison point after activation. + +## Phase 2 URL Cleanup Package + +Prepared 20 May 2026, not deployed to live WordPress. + +| Artifact | Purpose | Status | +|----------|---------|--------| +| `reports/live-captures/2026-05-20/page-sitemap.xml` | Captured current Yoast page sitemap | Local capture | +| `scripts/iqon-sitemap-inventory.py` | Reproducible sitemap parser | Local tool | +| `seo/sitemap-inventory-2026-05-20.csv` | Parsed sitemap inventory | Local inventory | +| `seo/url-cleanup-plan-2026-05-20.md` | URL policy, duplicate cleanup, redirect drafts | Local plan | + +Current inventory: 66 sitemap rows, 29 encoded multilingual URLs, 7 duplicate rows, 1 typo slug, 1 thin services landing, and 1 legacy home alias. + +## Phase 3 Content Structure Package + +Prepared 20 May 2026, not implemented on live site. + +| Artifact | Purpose | Status | +|----------|---------|--------| +| `content/site-structure-brief-2026-05-20.md` | Target sitemap, positioning, page briefs, content backlog | Local brief | + +Recommended structure: root homepage, `/services/`, five service detail pages, `/industries/`, `/case-studies/`, and `/contact/`. Required owner inputs before launch: canonical contact data, language policy, deployment target, service naming, case-study policy, and legal/privacy footer. + +## Phase 4 Static Prototype Package + +Prepared 20 May 2026, not deployed to live site. + +| Artifact | Purpose | Status | +|----------|---------|--------| +| `index.html` | Updated homepage with real target-sitemap links | Local prototype | +| `services/index.html` | Services overview page | Local prototype | +| `services/*/index.html` | Five service detail pages | Local prototype | +| `industries/index.html` | Industry overview page | Local prototype | +| `case-studies/index.html` | Case-study decision placeholder | Local prototype | +| `contact/index.html` | Contact page with owner-confirmation notes | Local prototype | +| `sitemap.xml` | Static target sitemap | Local prototype | +| `robots.txt` | Static robots file | Local prototype | +| `reports/static-prototype-smoke-2026-05-20.md` | Local HTTP smoke results | Local report | +| `reports/visual-qa-2026-05-20.md` | Headless Chrome visual QA report | Local report | + +Local smoke result: all 10 target pages plus `sitemap.xml` and `robots.txt` returned HTTP 200 through `python3 -m http.server 8061`. Headless Chrome mobile QA found and fixed horizontal clipping in nav, hero copy, and service-card copy. The prototype still needs owner input for contact data/cases before deployment. + +## Verification Checklist + +| Check | Command Or Method | Expected Signal | +|-------|-------------------|-----------------| +| Headers | `curl -I -L https://iqon.com/` | Security headers present | +| Mixed content | Fetch homepage/contact and search `http://` | No HTTP asset/embed URLs | +| REST users | `curl https://iqon.com/wp-json/wp/v2/users` | No public user list | +| Readme | `curl -I https://iqon.com/readme.html` | 403 or 404 | +| Sitemap | Parse `page-sitemap.xml` | No duplicate canonical URLs | +| Mobile | Browser at 390px width | No horizontal scroll, nav usable | +| Accessibility | Keyboard tab through header/form | Visible focus and reachable controls | +| Contact | Safe test submission | Known outcome: delivered, blocked, or replaced | + +## Open Questions + +- Which contact data is canonical: live Bucharest/Moscow/Almaty details or local draft Bucharest-only details? +- Should the site remain English-only, bilingual EN/RU, or archive Russian pages? +- Should the final site be static, WordPress, or hybrid? +- Are there current IQON case studies that can replace the 2010 Rompetrol example? +- Is `office@iqon.kz` still valid and monitored? + +--- + +*Created: 19 May 2026, 22:45* +*Updated: 19 May 2026, 22:45* diff --git a/reports/deployment-readiness-2026-05-20.md b/reports/deployment-readiness-2026-05-20.md new file mode 100644 index 0000000..519a917 --- /dev/null +++ b/reports/deployment-readiness-2026-05-20.md @@ -0,0 +1,111 @@ +# IQON Deployment Readiness + +Purpose: зафиксировать локальную готовность статического deployment-пакета после реализации следующих шагов аудита. + +## Contents + +- [Scope](#scope) +- [Implemented](#implemented) +- [Verification](#verification) +- [Remaining Gate](#remaining-gate) + +## Scope + +Проверка выполнена локально 20 May 2026. Удалённый деплой на reg.ru не выполнялся. + +## Implemented + +| Area | Result | +|------|--------| +| Case studies | `/case-studies/` переведён на anonymized outcome snapshots | +| Contact data | `/contact/` использует `office@iqon.com`, `@infobidgebot`, Bucharest | +| Cache busting | Static HTML assets updated from `qa6` to `qa7` | +| Security headers draft | `deploy/.htaccess` CSP tightened and `www.iqon.com` canonical redirect added | +| Content brief | Case-study and contact blockers marked resolved for launch | +| Mobile CTA | Contact CTA heading wrap fixed at 390px | + +## Verification + +Live legacy baseline: + +```bash +scripts/iqon-phase1-verify.sh https://iqon.com +``` + +Observed signal: + +- Missing security headers. +- Missing viewport and skip link. +- Known HTTP URLs still present. +- Public REST users still exposed. +- `readme.html` still returns `200`. +- XML-RPC HEAD smoke still returns empty reply. + +Local static smoke: + +```bash +python3 local ThreadingHTTPServer smoke +``` + +Observed signal: + +- `/` returned `200`. +- `/services/` returned `200`. +- `/services/strategy-governance/` returned `200`. +- `/services/enterprise-architecture/` returned `200`. +- `/services/data-analytics/` returned `200`. +- `/services/infrastructure-cloud/` returned `200`. +- `/services/security-continuity/` returned `200`. +- `/industries/` returned `200`. +- `/case-studies/` returned `200`. +- `/contact/` returned `200`. +- `/sitemap.xml` returned `200`. +- `/robots.txt` returned `200`. +- `case_has_selected_outcomes True`. +- `case_has_old_blocker False`. +- `contact_has_infobidgebot 6`. +- `contact_has_phone_fax False`. + +Headless Chrome visual smoke: + +```bash +python3 -m http.server 8073 --bind 127.0.0.1 +Google Chrome --headless=new --window-size=1440,1200 +Google Chrome --headless=new --window-size=390,1000 +``` + +Observed signal: + +- 10 desktop screenshots created. +- 10 mobile screenshots created. +- `contact-mobile` clipping found and fixed. +- `contact-mobile-fixed.png` captured after the CSS fix. + +Static files: + +```bash +python3 -c "import xml.etree.ElementTree as ET; ET.parse('sitemap.xml'); print('sitemap ok')" +bash -n scripts/iqon-phase1-verify.sh +PYTHONPYCACHEPREFIX=/private/tmp/iqon-pycache python3 -m py_compile scripts/iqon-sitemap-inventory.py scripts/iqon-generate-redirect-map.py +``` + +Observed signal: + +- `sitemap ok`. +- Shell script syntax passed. +- Python scripts compiled with temporary pycache path. + +## Remaining Gate + +Before remote deployment: + +1. Confirm `u0012812_iqon` database archive is downloaded. +2. Confirm fresh live file backup exists in reg.ru panel. +3. Confirm deployment window for replacing WordPress files with static files. +4. Execute `deploy/README.md` upload steps. +5. Run post-deploy verification from `deploy/README.md`. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/server-backup-20260518/page-sitemap.xml b/reports/live-captures/2026-05-20/page-sitemap.xml similarity index 100% rename from server-backup-20260518/page-sitemap.xml rename to reports/live-captures/2026-05-20/page-sitemap.xml diff --git a/reports/phase1-baseline-2026-05-20.md b/reports/phase1-baseline-2026-05-20.md new file mode 100644 index 0000000..db18c05 --- /dev/null +++ b/reports/phase1-baseline-2026-05-20.md @@ -0,0 +1,54 @@ +# IQON Phase 1 Baseline + +Purpose: зафиксировать состояние live `iqon.com` перед применением локального Phase 1 hardening-пакета. + +## Contents + +- [Command](#command) +- [Result](#result) +- [Failing Checks](#failing-checks) +- [Passing Checks](#passing-checks) +- [Interpretation](#interpretation) + +## Command + +```bash +scripts/iqon-phase1-verify.sh https://iqon.com +``` + +Run date: 20 May 2026. + +## Result + +Overall status: failed, as expected before snippet and hosting rules are activated. + +## Failing Checks + +| Check | Observed Signal | +|-------|-----------------| +| `X-Content-Type-Options` | Missing | +| `X-Frame-Options` | Missing | +| `Referrer-Policy` | Missing | +| `Permissions-Policy` | Missing | +| `Content-Security-Policy` | Missing | +| Viewport meta | Missing | +| Skip link | Missing | +| Known HTTP URLs | Still present | +| `og:site_name` | Still has `- IQON` | +| REST users endpoint | Public users still exposed | +| `readme.html` | Returns `200` | + +## Passing Checks + +| Check | Observed Signal | +|-------|-----------------| +| XML-RPC HEAD smoke | Empty reply via HEAD, status `000` | + +## Interpretation + +The baseline confirms that the Phase 1 package targets real current live findings. After activation, the same script should move from failed to passed, except any item that is intentionally handled outside WordPress, such as physical install-document files. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/reports/screenshots/2026-05-20/qa7-full/case-studies-desktop.png b/reports/screenshots/2026-05-20/qa7-full/case-studies-desktop.png new file mode 100644 index 0000000..6c52a4e Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/case-studies-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/case-studies-mobile.png b/reports/screenshots/2026-05-20/qa7-full/case-studies-mobile.png new file mode 100644 index 0000000..2ed5335 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/case-studies-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/contact-desktop.png b/reports/screenshots/2026-05-20/qa7-full/contact-desktop.png new file mode 100644 index 0000000..17e4ed8 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/contact-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/contact-mobile-fixed.png b/reports/screenshots/2026-05-20/qa7-full/contact-mobile-fixed.png new file mode 100644 index 0000000..5943175 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/contact-mobile-fixed.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/contact-mobile.png b/reports/screenshots/2026-05-20/qa7-full/contact-mobile.png new file mode 100644 index 0000000..0daf40b Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/contact-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/data-analytics-desktop.png b/reports/screenshots/2026-05-20/qa7-full/data-analytics-desktop.png new file mode 100644 index 0000000..a56158a Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/data-analytics-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/data-analytics-mobile.png b/reports/screenshots/2026-05-20/qa7-full/data-analytics-mobile.png new file mode 100644 index 0000000..0add289 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/data-analytics-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/enterprise-architecture-desktop.png b/reports/screenshots/2026-05-20/qa7-full/enterprise-architecture-desktop.png new file mode 100644 index 0000000..af5e219 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/enterprise-architecture-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/enterprise-architecture-mobile.png b/reports/screenshots/2026-05-20/qa7-full/enterprise-architecture-mobile.png new file mode 100644 index 0000000..ea143e1 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/enterprise-architecture-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/home-desktop.png b/reports/screenshots/2026-05-20/qa7-full/home-desktop.png new file mode 100644 index 0000000..2c531b2 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/home-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/home-mobile.png b/reports/screenshots/2026-05-20/qa7-full/home-mobile.png new file mode 100644 index 0000000..e20e0b1 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/home-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/industries-desktop.png b/reports/screenshots/2026-05-20/qa7-full/industries-desktop.png new file mode 100644 index 0000000..d3f4159 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/industries-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/industries-mobile.png b/reports/screenshots/2026-05-20/qa7-full/industries-mobile.png new file mode 100644 index 0000000..75990df Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/industries-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/infrastructure-cloud-desktop.png b/reports/screenshots/2026-05-20/qa7-full/infrastructure-cloud-desktop.png new file mode 100644 index 0000000..8ca1d7a Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/infrastructure-cloud-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/infrastructure-cloud-mobile.png b/reports/screenshots/2026-05-20/qa7-full/infrastructure-cloud-mobile.png new file mode 100644 index 0000000..abf9c9c Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/infrastructure-cloud-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/security-continuity-desktop.png b/reports/screenshots/2026-05-20/qa7-full/security-continuity-desktop.png new file mode 100644 index 0000000..5c95e49 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/security-continuity-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/security-continuity-mobile.png b/reports/screenshots/2026-05-20/qa7-full/security-continuity-mobile.png new file mode 100644 index 0000000..5335d11 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/security-continuity-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/services-desktop.png b/reports/screenshots/2026-05-20/qa7-full/services-desktop.png new file mode 100644 index 0000000..73d9c21 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/services-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/services-mobile.png b/reports/screenshots/2026-05-20/qa7-full/services-mobile.png new file mode 100644 index 0000000..b61fd08 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/services-mobile.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/strategy-governance-desktop.png b/reports/screenshots/2026-05-20/qa7-full/strategy-governance-desktop.png new file mode 100644 index 0000000..7ab7f51 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/strategy-governance-desktop.png differ diff --git a/reports/screenshots/2026-05-20/qa7-full/strategy-governance-mobile.png b/reports/screenshots/2026-05-20/qa7-full/strategy-governance-mobile.png new file mode 100644 index 0000000..b693fa5 Binary files /dev/null and b/reports/screenshots/2026-05-20/qa7-full/strategy-governance-mobile.png differ diff --git a/reports/static-prototype-smoke-2026-05-20.md b/reports/static-prototype-smoke-2026-05-20.md new file mode 100644 index 0000000..59136a8 --- /dev/null +++ b/reports/static-prototype-smoke-2026-05-20.md @@ -0,0 +1,57 @@ +# IQON Static Prototype Smoke + +Purpose: зафиксировать локальную проверку multi-page static prototype после приведения к target sitemap. + +## Contents + +- [Command](#command) +- [Result](#result) +- [Checked URLs](#checked-urls) +- [Notes](#notes) + +## Command + +```bash +python3 -m http.server 8061 +``` + +```bash +for p in / /services/ /services/strategy-governance/ /services/enterprise-architecture/ /services/data-analytics/ /services/infrastructure-cloud/ /services/security-continuity/ /industries/ /case-studies/ /contact/ /sitemap.xml /robots.txt; do + printf '%s ' "$p" + curl -sS -o /dev/null -w '%{http_code}\n' "http://localhost:8061$p" +done +``` + +Run date: 20 May 2026. + +## Result + +Overall status: passed. + +## Checked URLs + +| URL | Status | +|-----|--------| +| `/` | 200 | +| `/services/` | 200 | +| `/services/strategy-governance/` | 200 | +| `/services/enterprise-architecture/` | 200 | +| `/services/data-analytics/` | 200 | +| `/services/infrastructure-cloud/` | 200 | +| `/services/security-continuity/` | 200 | +| `/industries/` | 200 | +| `/case-studies/` | 200 | +| `/contact/` | 200 | +| `/sitemap.xml` | 200 | +| `/robots.txt` | 200 | + +## Notes + +- `sitemap.xml` parses successfully with `xml.etree.ElementTree`. +- Local sandbox blocked direct localhost requests until the read-only smoke command was approved outside the sandbox. +- Initial browser visual QA passed for homepage and services; full target-page QA remains the final pre-deploy check. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/reports/visual-qa-2026-05-20.md b/reports/visual-qa-2026-05-20.md new file mode 100644 index 0000000..697f373 --- /dev/null +++ b/reports/visual-qa-2026-05-20.md @@ -0,0 +1,71 @@ +# IQON Visual QA + +Purpose: зафиксировать browser-level visual QA локального static prototype после mobile layout fixes. + +## Contents + +- [Setup](#setup) +- [Screenshots](#screenshots) +- [Findings](#findings) +- [Fixes Applied](#fixes-applied) +- [Verification](#verification) + +## Setup + +Local server: + +```bash +python3 -m http.server 8061 +``` + +Browser tool: + +```bash +"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --disable-gpu --hide-scrollbars +``` + +## Screenshots + +| File | Viewport | Status | +|------|----------|--------| +| `reports/screenshots/2026-05-20/home-desktop-fixed.png` | 1440 x 1200 | Captured | +| `reports/screenshots/2026-05-20/home-mobile-qa6.png` | 390 x 900 | Passed after fixes | +| `reports/screenshots/2026-05-20/services-mobile-qa6.png` | 390 x 1200 | Passed after fixes | +| `reports/screenshots/2026-05-20/qa7-full/` | 10 pages x desktop/mobile | Captured | +| `reports/screenshots/2026-05-20/qa7-full/contact-mobile-fixed.png` | 390 x 1000 | Passed after CTA wrap fix | + +## Findings + +| Finding | Status | +|---------|--------| +| Mobile nav overflowed horizontally at 390px | Fixed | +| Mobile hero paragraph clipped at right edge | Fixed | +| Mobile services card paragraphs clipped at right edge | Fixed | +| Desktop homepage screenshot rendered | Captured | +| Mobile contact CTA heading clipped at right edge | Fixed | + +## Fixes Applied + +- Converted mobile nav into compact wrapped links. +- Shortened `Case Studies` nav label to `Cases`. +- Added mobile text measure for hero, page, card, and detail copy. +- Added CSS/JS cache-busting query on prototype pages. +- Kept target URLs as real paths instead of section anchors. +- Added mobile CTA text constraint for contact and other CTA bands. + +## Verification + +Current visual pass is based on screenshot inspection of the final mobile files: + +- `reports/screenshots/2026-05-20/home-mobile-qa6.png` +- `reports/screenshots/2026-05-20/services-mobile-qa6.png` + +Remaining checks before deployment: + +- Cross-browser check outside headless Chrome. +- Full desktop and mobile screenshots exist for every target page after the `qa7` update. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..9fb2245 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://iqon.com/sitemap.xml diff --git a/script.js b/script.js index 5007aa7..5804a18 100644 --- a/script.js +++ b/script.js @@ -1,40 +1,49 @@ const reveals = document.querySelectorAll(".reveal"); -const observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - entry.target.classList.add("on"); - observer.unobserve(entry.target); - } - }); - }, - { threshold: 0.18 } -); +const observer = + "IntersectionObserver" in window + ? new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + entry.target.classList.add("on"); + observer.unobserve(entry.target); + } + }); + }, + { threshold: 0.18 } + ) + : null; reveals.forEach((item, idx) => { item.style.transitionDelay = `${Math.min(idx * 45, 280)}ms`; - observer.observe(item); + if (observer) { + observer.observe(item); + } else { + item.classList.add("on"); + } }); const navLinks = document.querySelectorAll(".main-nav a"); -const sectionObserver = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - navLinks.forEach((link) => { - link.classList.toggle("active", link.getAttribute("href") === `#${entry.target.id}`); - }); - } - }); - }, - { threshold: 0.55 } -); +if ("IntersectionObserver" in window) { + const sectionObserver = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + navLinks.forEach((link) => { + link.classList.toggle("active", link.getAttribute("href") === `#${entry.target.id}`); + }); + } + }); + }, + { threshold: 0.55 } + ); -["approach", "services", "cases", "contacts"].forEach((id) => { - const section = document.getElementById(id); - if (section) { - sectionObserver.observe(section); - } -}); + ["approach", "services", "cases", "contacts"].forEach((id) => { + const section = document.getElementById(id); + if (section) { + sectionObserver.observe(section); + } + }); +} diff --git a/scripts/iqon-generate-redirect-map.py b/scripts/iqon-generate-redirect-map.py new file mode 100755 index 0000000..ef081ff --- /dev/null +++ b/scripts/iqon-generate-redirect-map.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +"""Generate a draft redirect map from the iqon sitemap inventory. + +SPEC: seo/url-cleanup-plan-2026-05-20.md#redirect-drafts +Compliance date: 2026-05-20 +Launch type: manual SEO migration planning +Registry: iqon redirect map generator +""" + +from __future__ import annotations + +import csv +import sys +import urllib.parse +from pathlib import Path + + +DIRECT_PATH_REDIRECTS = { + "/homepage/": "/", + "/hows-business/": "/", + "/industry-specific-services/": "/services-solutions/industry-specific-services/", + "/services-solutions/industry-specific-services/retail-wholesail/": "/services-solutions/industry-specific-services/retail-wholesale/", +} + +RU_PREFIX = "/услуги-решения/" +EN_PREFIX = "/services-solutions/" + + +def normalize_path(path: str) -> str: + if not path.startswith("/"): + path = "/" + path + if not path.endswith("/"): + path += "/" + return path + + +def target_for(decoded_path: str) -> tuple[str, str, str]: + path = normalize_path(decoded_path) + + if path in DIRECT_PATH_REDIRECTS: + return DIRECT_PATH_REDIRECTS[path], "301", "direct_alias_or_typo" + + if path.startswith(RU_PREFIX): + english_path = EN_PREFIX + path[len(RU_PREFIX) :] + return normalize_path(english_path), "301", "ru_to_english_default_policy" + + return "", "", "manual_review" + + +def read_inventory(path: Path) -> list[dict[str, str]]: + with path.open(encoding="utf-8", newline="") as handle: + return list(csv.DictReader(handle)) + + +def write_redirect_csv(rows: list[dict[str, str]], output_path: Path) -> None: + seen: set[tuple[str, str]] = set() + output_rows: list[dict[str, str]] = [] + + for row in rows: + source = normalize_path(row["decoded_path"]) + target, status, reason = target_for(source) + if not target: + continue + + key = (source, target) + if key in seen: + continue + seen.add(key) + + output_rows.append( + { + "source_path": source, + "target_path": target, + "status": status, + "reason": reason, + "source_url": row["url"], + } + ) + + with output_path.open("w", encoding="utf-8", newline="") as handle: + writer = csv.DictWriter(handle, fieldnames=["source_path", "target_path", "status", "reason", "source_url"]) + writer.writeheader() + writer.writerows(output_rows) + + +def write_nginx_map(redirect_csv: Path, output_path: Path) -> None: + rows = read_inventory_csv(redirect_csv) + + with output_path.open("w", encoding="utf-8") as handle: + handle.write("# IQON redirect draft generated from seo/sitemap-inventory-2026-05-20.csv\n") + handle.write("# Review before deployment. Not applied to live hosting.\n\n") + for row in rows: + source = urllib.parse.quote(row["source_path"], safe="/-._~") + target = urllib.parse.quote(row["target_path"], safe="/-._~") + escaped_source = source.strip("/") + handle.write(f"rewrite ^/{escaped_source}/?$ {target} permanent;\n") + + +def read_inventory_csv(path: Path) -> list[dict[str, str]]: + with path.open(encoding="utf-8", newline="") as handle: + return list(csv.DictReader(handle)) + + +def main() -> int: + if len(sys.argv) != 4: + print( + "Usage: iqon-generate-redirect-map.py <inventory.csv> <redirects.csv> <nginx.conf>", + file=sys.stderr, + ) + return 2 + + inventory_path = Path(sys.argv[1]) + redirect_csv = Path(sys.argv[2]) + nginx_conf = Path(sys.argv[3]) + + rows = read_inventory(inventory_path) + write_redirect_csv(rows, redirect_csv) + write_nginx_map(redirect_csv, nginx_conf) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/iqon-phase1-verify.sh b/scripts/iqon-phase1-verify.sh new file mode 100755 index 0000000..0f77ad4 --- /dev/null +++ b/scripts/iqon-phase1-verify.sh @@ -0,0 +1,110 @@ +#!/usr/bin/env bash +# SPEC: wp-snippets/README.md#verification +# Compliance date: 2026-05-20 +# Launch type: manual post-deployment verification +# Registry: iqon Phase 1 hardening verification + +set -u + +BASE_URL="${1:-https://iqon.com}" +FAILED=0 + +note() { + printf '\n[%s] %s\n' "$1" "$2" +} + +fail() { + FAILED=1 + printf '[FAIL] %s\n' "$1" +} + +pass() { + printf '[PASS] %s\n' "$1" +} + +fetch_headers() { + curl -sS -I -L "$BASE_URL/" +} + +fetch_home() { + curl -sS -L "$BASE_URL/" +} + +note CHECK "Security headers" +if ! HEADERS="$(fetch_headers)"; then + HEADERS="" + fail 'could not fetch homepage headers' +fi +printf '%s\n' "$HEADERS" | rg -qi '^x-content-type-options:\s*nosniff' \ + && pass 'X-Content-Type-Options present' \ + || fail 'X-Content-Type-Options missing' +printf '%s\n' "$HEADERS" | rg -qi '^x-frame-options:\s*SAMEORIGIN' \ + && pass 'X-Frame-Options present' \ + || fail 'X-Frame-Options missing' +printf '%s\n' "$HEADERS" | rg -qi '^referrer-policy:' \ + && pass 'Referrer-Policy present' \ + || fail 'Referrer-Policy missing' +printf '%s\n' "$HEADERS" | rg -qi '^permissions-policy:' \ + && pass 'Permissions-Policy present' \ + || fail 'Permissions-Policy missing' +printf '%s\n' "$HEADERS" | rg -qi '^content-security-policy:' \ + && pass 'Content-Security-Policy present' \ + || fail 'Content-Security-Policy missing' + +note CHECK "Homepage HTML" +if HOME="$(fetch_home)"; then + printf '%s\n' "$HOME" | rg -q 'name=["'\'']viewport["'\'']' \ + && pass 'viewport present' \ + || fail 'viewport missing' + printf '%s\n' "$HOME" | rg -q 'iqon-skip-link' \ + && pass 'skip link present' \ + || fail 'skip link missing' + printf '%s\n' "$HOME" | rg -q 'http://www\.iqon\.com|http://iqon\.com|http://maps\.google\.com|http://maps\.googleapis\.com' \ + && fail 'known HTTP URLs still present' \ + || pass 'known HTTP URLs absent' + printf '%s\n' "$HOME" | rg -q 'property=["'\'']og:site_name["'\''][^>]*content=["'\'']- IQON["'\'']' \ + && fail 'og:site_name still has - IQON' \ + || pass 'og:site_name no longer has - IQON' +else + fail 'could not fetch homepage HTML' +fi + +note CHECK "REST users endpoint" +if USERS_BODY="$(curl -sS -L "$BASE_URL/wp-json/wp/v2/users")"; then + printf '%s\n' "$USERS_BODY" | rg -q '"slug"\s*:\s*"(admin|iqnadm01)"' \ + && fail 'public REST users still exposed' \ + || pass 'public REST users not exposed' +else + fail 'could not fetch REST users endpoint' +fi + +note CHECK "Install documents" +README_STATUS="$(curl -sS -o /dev/null -w '%{http_code}' -L "$BASE_URL/readme.html")" +case "$README_STATUS" in + 403|404) pass "readme.html blocked with $README_STATUS" ;; + *) fail "readme.html returned $README_STATUS" ;; +esac + +note CHECK "XML-RPC HEAD smoke" +XMLRPC_STATUS="$(curl -sS -o /dev/null -w '%{http_code}' -I --http1.1 "$BASE_URL/xmlrpc.php")" +XMLRPC_CURL_STATUS=$? +case "$XMLRPC_STATUS" in + 403|404|405) pass "xmlrpc.php not plainly usable via HEAD: $XMLRPC_STATUS" ;; + 000) + if [ "$XMLRPC_CURL_STATUS" -eq 52 ]; then + pass "xmlrpc.php returned empty reply via HEAD: $XMLRPC_STATUS" + else + fail "xmlrpc.php check failed with curl status $XMLRPC_CURL_STATUS" + fi + ;; + *) fail "xmlrpc.php returned $XMLRPC_STATUS; run safe POST check" ;; +esac + +printf '\n' +if [ "$FAILED" -eq 0 ]; then + printf '[OK] iqon Phase 1 verification passed for %s\n' "$BASE_URL" +else + printf '[FAIL] iqon Phase 1 verification failed for %s\n' "$BASE_URL" +fi + +exit "$FAILED" diff --git a/scripts/iqon-sitemap-inventory.py b/scripts/iqon-sitemap-inventory.py new file mode 100755 index 0000000..cc0a2ce --- /dev/null +++ b/scripts/iqon-sitemap-inventory.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +"""Create a CSV inventory from the iqon.com page sitemap. + +SPEC: reports/live-captures/2026-05-20/page-sitemap.xml +Compliance date: 2026-05-20 +Launch type: manual SEO inventory generation +Registry: iqon sitemap inventory parser +""" + +from __future__ import annotations + +import csv +import sys +import urllib.parse +import xml.etree.ElementTree as ET +from collections import Counter +from pathlib import Path + + +SITEMAP_NS = {"sm": "http://www.sitemaps.org/schemas/sitemap/0.9"} + + +def classify_url(url: str, duplicate_count: int) -> tuple[str, str]: + parsed = urllib.parse.urlparse(url) + decoded_path = urllib.parse.unquote(parsed.path) + + if duplicate_count > 1: + return "duplicate", "canonicalize_or_remove_duplicate" + if "%" in parsed.path: + return "encoded_multilingual", "decide_hreflang_or_noindex_redirect" + if decoded_path in {"/homepage/", "/hows-business/"}: + return "legacy_home_alias", "redirect_to_root_or_rewrite" + if "retail-wholesail" in decoded_path: + return "typo_slug", "redirect_to_correct_spelling" + if decoded_path == "/services-solutions/": + return "thin_landing", "rewrite_as_services_overview" + if decoded_path == "/contact/": + return "contact", "verify_contact_data_then_keep" + if decoded_path == "/": + return "homepage", "rewrite_homepage_metadata_and_content" + + return "service_or_content", "review_rewrite_or_merge" + + +def iter_urls(path: Path) -> list[dict[str, str]]: + tree = ET.parse(path) + urls: list[dict[str, str]] = [] + + for node in tree.findall("sm:url", SITEMAP_NS): + loc_node = node.find("sm:loc", SITEMAP_NS) + lastmod_node = node.find("sm:lastmod", SITEMAP_NS) + if loc_node is None or not loc_node.text: + continue + + loc = loc_node.text.strip() + parsed = urllib.parse.urlparse(loc) + urls.append( + { + "url": loc, + "decoded_path": urllib.parse.unquote(parsed.path), + "lastmod": (lastmod_node.text.strip() if lastmod_node is not None and lastmod_node.text else ""), + } + ) + + counts = Counter(item["url"] for item in urls) + for item in urls: + duplicate_count = counts[item["url"]] + item["duplicate_count"] = str(duplicate_count) + item["class"], item["recommended_action"] = classify_url(item["url"], duplicate_count) + + return urls + + +def main() -> int: + if len(sys.argv) not in {2, 3}: + print("Usage: iqon-sitemap-inventory.py <page-sitemap.xml> [output.csv]", file=sys.stderr) + return 2 + + rows = iter_urls(Path(sys.argv[1])) + output = open(sys.argv[2], "w", newline="", encoding="utf-8") if len(sys.argv) == 3 else sys.stdout + writer = csv.DictWriter( + output, + fieldnames=["url", "decoded_path", "lastmod", "duplicate_count", "class", "recommended_action"], + ) + writer.writeheader() + writer.writerows(rows) + if output is not sys.stdout: + output.close() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/seo/nginx-redirects-2026-05-20.conf b/seo/nginx-redirects-2026-05-20.conf new file mode 100644 index 0000000..b3a4cbb --- /dev/null +++ b/seo/nginx-redirects-2026-05-20.conf @@ -0,0 +1,35 @@ +# IQON redirect draft generated from seo/sitemap-inventory-2026-05-20.csv +# Review before deployment. Not applied to live hosting. + +rewrite ^/industry-specific-services/?$ /services-solutions/industry-specific-services/ permanent; +rewrite ^/services-solutions/industry-specific-services/retail-wholesail/?$ /services-solutions/industry-specific-services/retail-wholesale/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/?$ /services-solutions/ permanent; +rewrite ^/hows-business/?$ / permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/enterprise-orchestration/?$ /services-solutions/enterprise-management-decision-support-solutions/enterprise-orchestration/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/enterprise-management-systems/?$ /services-solutions/enterprise-management-decision-support-solutions/enterprise-management-systems/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/customer-intelligence-solutions/?$ /services-solutions/enterprise-management-decision-support-solutions/customer-intelligence-solutions/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/enterprise-information-management/?$ /services-solutions/enterprise-management-decision-support-solutions/enterprise-information-management/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/it-infrastructure-services/?$ /services-solutions/it-infrastructure-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/it-infrastructure-services/infrastructure-management-consulting/?$ /services-solutions/it-infrastructure-services/infrastructure-management-consulting/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/it-infrastructure-services/it-infrastructure-transformation-services/?$ /services-solutions/it-infrastructure-services/it-infrastructure-transformation-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/it-infrastructure-services/end-user-computing-technology-solutions/?$ /services-solutions/it-infrastructure-services/end-user-computing-technology-solutions/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/?$ /services-solutions/industry-specific-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/managed-services/?$ /services-solutions/enterprise-management-decision-support-solutions/managed-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/logistics-transport/?$ /services-solutions/industry-specific-services/logistics-transport/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/retail-wholesail/?$ /services-solutions/industry-specific-services/retail-wholesail/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/telecommunication/?$ /services-solutions/industry-specific-services/telecommunication/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/energy-utilities/?$ /services-solutions/industry-specific-services/energy-utilities/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/industry-specific-services/manufacturing-process/?$ /services-solutions/industry-specific-services/manufacturing-process/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/mobility-consulting-services/?$ /services-solutions/mobility-consulting-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/mobility-consulting-services/mobility-software-services-applications/?$ /services-solutions/mobility-consulting-services/mobility-software-services-applications/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/mobility-consulting-services/mobility-managed-services/?$ /services-solutions/mobility-consulting-services/mobility-managed-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/mobility-consulting-services/mobility-software-services-devices-and-platforms/?$ /services-solutions/mobility-consulting-services/mobility-software-services-devices-and-platforms/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/mobility-consulting-services/mobility-business-integration-services/?$ /services-solutions/mobility-consulting-services/mobility-business-integration-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/?$ /services-solutions/is-advisory-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/?$ /services-solutions/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/business-technology-enterprise-architecture/?$ /services-solutions/is-advisory-services/business-technology-enterprise-architecture/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/it-strategy-governance/?$ /services-solutions/is-advisory-services/it-strategy-governance/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/information-security-services/?$ /services-solutions/is-advisory-services/information-security-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/is-advisory-services/is-regulatory-and-compliance-services/?$ /services-solutions/is-advisory-services/is-regulatory-and-compliance-services/ permanent; +rewrite ^/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F/enterprise-management-decision-support-solutions/?$ /services-solutions/enterprise-management-decision-support-solutions/ permanent; +rewrite ^/homepage/?$ / permanent; diff --git a/seo/redirect-map-2026-05-20.csv b/seo/redirect-map-2026-05-20.csv new file mode 100644 index 0000000..1b9bdec --- /dev/null +++ b/seo/redirect-map-2026-05-20.csv @@ -0,0 +1,33 @@ +source_path,target_path,status,reason,source_url +/industry-specific-services/,/services-solutions/industry-specific-services/,301,direct_alias_or_typo,https://iqon.com/industry-specific-services/ +/services-solutions/industry-specific-services/retail-wholesail/,/services-solutions/industry-specific-services/retail-wholesale/,301,direct_alias_or_typo,https://iqon.com/services-solutions/industry-specific-services/retail-wholesail/ +/услуги-решения/,/services-solutions/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/ +/hows-business/,/,301,direct_alias_or_typo,https://iqon.com/hows-business/ +/услуги-решения/enterprise-management-decision-support-solutions/enterprise-orchestration/,/services-solutions/enterprise-management-decision-support-solutions/enterprise-orchestration/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/enterprise-orchestration/ +/услуги-решения/enterprise-management-decision-support-solutions/enterprise-management-systems/,/services-solutions/enterprise-management-decision-support-solutions/enterprise-management-systems/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/enterprise-management-systems/ +/услуги-решения/enterprise-management-decision-support-solutions/customer-intelligence-solutions/,/services-solutions/enterprise-management-decision-support-solutions/customer-intelligence-solutions/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/customer-intelligence-solutions/ +/услуги-решения/enterprise-management-decision-support-solutions/enterprise-information-management/,/services-solutions/enterprise-management-decision-support-solutions/enterprise-information-management/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/enterprise-information-management/ +/услуги-решения/it-infrastructure-services/,/services-solutions/it-infrastructure-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/ +/услуги-решения/it-infrastructure-services/infrastructure-management-consulting/,/services-solutions/it-infrastructure-services/infrastructure-management-consulting/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/infrastructure-management-consulting/ +/услуги-решения/it-infrastructure-services/it-infrastructure-transformation-services/,/services-solutions/it-infrastructure-services/it-infrastructure-transformation-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/it-infrastructure-transformation-services/ +/услуги-решения/it-infrastructure-services/end-user-computing-technology-solutions/,/services-solutions/it-infrastructure-services/end-user-computing-technology-solutions/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/end-user-computing-technology-solutions/ +/услуги-решения/industry-specific-services/,/services-solutions/industry-specific-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/ +/услуги-решения/enterprise-management-decision-support-solutions/managed-services/,/services-solutions/enterprise-management-decision-support-solutions/managed-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/managed-services/ +/услуги-решения/industry-specific-services/logistics-transport/,/services-solutions/industry-specific-services/logistics-transport/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/logistics-transport/ +/услуги-решения/industry-specific-services/retail-wholesail/,/services-solutions/industry-specific-services/retail-wholesail/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/retail-wholesail/ +/услуги-решения/industry-specific-services/telecommunication/,/services-solutions/industry-specific-services/telecommunication/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/telecommunication/ +/услуги-решения/industry-specific-services/energy-utilities/,/services-solutions/industry-specific-services/energy-utilities/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/energy-utilities/ +/услуги-решения/industry-specific-services/manufacturing-process/,/services-solutions/industry-specific-services/manufacturing-process/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/manufacturing-process/ +/услуги-решения/mobility-consulting-services/,/services-solutions/mobility-consulting-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/ +/услуги-решения/mobility-consulting-services/mobility-software-services-applications/,/services-solutions/mobility-consulting-services/mobility-software-services-applications/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-software-services-applications/ +/услуги-решения/mobility-consulting-services/mobility-managed-services/,/services-solutions/mobility-consulting-services/mobility-managed-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-managed-services/ +/услуги-решения/mobility-consulting-services/mobility-software-services-devices-and-platforms/,/services-solutions/mobility-consulting-services/mobility-software-services-devices-and-platforms/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-software-services-devices-and-platforms/ +/услуги-решения/mobility-consulting-services/mobility-business-integration-services/,/services-solutions/mobility-consulting-services/mobility-business-integration-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-business-integration-services/ +/услуги-решения/is-advisory-services/,/services-solutions/is-advisory-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/ +/услуги-решения/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/,/services-solutions/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/ +/услуги-решения/is-advisory-services/business-technology-enterprise-architecture/,/services-solutions/is-advisory-services/business-technology-enterprise-architecture/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/business-technology-enterprise-architecture/ +/услуги-решения/is-advisory-services/it-strategy-governance/,/services-solutions/is-advisory-services/it-strategy-governance/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/it-strategy-governance/ +/услуги-решения/is-advisory-services/information-security-services/,/services-solutions/is-advisory-services/information-security-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/information-security-services/ +/услуги-решения/is-advisory-services/is-regulatory-and-compliance-services/,/services-solutions/is-advisory-services/is-regulatory-and-compliance-services/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/is-regulatory-and-compliance-services/ +/услуги-решения/enterprise-management-decision-support-solutions/,/services-solutions/enterprise-management-decision-support-solutions/,301,ru_to_english_default_policy,https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/ +/homepage/,/,301,direct_alias_or_typo,https://iqon.com/homepage/ diff --git a/seo/sitemap-inventory-2026-05-20.csv b/seo/sitemap-inventory-2026-05-20.csv new file mode 100644 index 0000000..639cd41 --- /dev/null +++ b/seo/sitemap-inventory-2026-05-20.csv @@ -0,0 +1,67 @@ +url,decoded_path,lastmod,duplicate_count,class,recommended_action +https://iqon.com/,/,2013-07-25T11:19:25+00:00,1,homepage,rewrite_homepage_metadata_and_content +https://iqon.com/services-solutions/,/services-solutions/,2012-05-03T06:22:32+00:00,1,thin_landing,rewrite_as_services_overview +https://iqon.com/industry-specific-services/,/industry-specific-services/,2012-05-03T06:28:50+00:00,2,duplicate,canonicalize_or_remove_duplicate +https://iqon.com/industry-specific-services/,/industry-specific-services/,2012-05-03T06:28:50+00:00,2,duplicate,canonicalize_or_remove_duplicate +https://iqon.com/services-solutions/enterprise-management-decision-support-solutions/,/services-solutions/enterprise-management-decision-support-solutions/,2012-05-04T12:52:30+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/enterprise-management-decision-support-solutions/enterprise-information-management/,/services-solutions/enterprise-management-decision-support-solutions/enterprise-information-management/,2012-05-04T12:55:19+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/enterprise-management-decision-support-solutions/managed-services/,/services-solutions/enterprise-management-decision-support-solutions/managed-services/,2012-05-09T03:24:58+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/enterprise-management-decision-support-solutions/customer-intelligence-solutions/,/services-solutions/enterprise-management-decision-support-solutions/customer-intelligence-solutions/,2012-05-09T03:26:00+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/enterprise-management-decision-support-solutions/enterprise-management-systems/,/services-solutions/enterprise-management-decision-support-solutions/enterprise-management-systems/,2012-05-09T03:27:08+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/enterprise-management-decision-support-solutions/enterprise-orchestration/,/services-solutions/enterprise-management-decision-support-solutions/enterprise-orchestration/,2012-05-09T03:29:16+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/industry-specific-services/energy-utilities/,/services-solutions/industry-specific-services/energy-utilities/,2012-05-09T03:31:13+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/industry-specific-services/telecommunication/,/services-solutions/industry-specific-services/telecommunication/,2012-05-09T03:35:56+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/industry-specific-services/retail-wholesail/,/services-solutions/industry-specific-services/retail-wholesail/,2012-05-09T03:37:41+00:00,1,typo_slug,redirect_to_correct_spelling +https://iqon.com/services-solutions/industry-specific-services/logistics-transport/,/services-solutions/industry-specific-services/logistics-transport/,2012-05-09T03:38:41+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/industry-specific-services/manufacturing-process/,/services-solutions/industry-specific-services/manufacturing-process/,2012-05-09T03:39:12+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/industry-specific-services/,/services-solutions/industry-specific-services/,2012-05-09T03:39:35+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/is-advisory-services/it-strategy-governance/,/services-solutions/is-advisory-services/it-strategy-governance/,2012-05-09T03:40:55+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/is-advisory-services/,/services-solutions/is-advisory-services/,2012-05-09T03:41:26+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/is-advisory-services/is-regulatory-and-compliance-services/,/services-solutions/is-advisory-services/is-regulatory-and-compliance-services/,2012-05-09T03:42:07+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/,/services-solutions/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/,2012-05-09T03:42:40+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/is-advisory-services/information-security-services/,/services-solutions/is-advisory-services/information-security-services/,2012-05-09T03:53:47+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/is-advisory-services/business-technology-enterprise-architecture/,/services-solutions/is-advisory-services/business-technology-enterprise-architecture/,2012-05-09T03:54:30+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/it-infrastructure-services/end-user-computing-technology-solutions/,/services-solutions/it-infrastructure-services/end-user-computing-technology-solutions/,2012-05-09T03:57:14+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/it-infrastructure-services/infrastructure-management-consulting/,/services-solutions/it-infrastructure-services/infrastructure-management-consulting/,2012-05-09T03:57:44+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/it-infrastructure-services/,/services-solutions/it-infrastructure-services/,2012-05-09T03:59:50+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/mobility-consulting-services/,/services-solutions/mobility-consulting-services/,2012-05-09T04:12:35+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/it-infrastructure-services/it-infrastructure-transformation-services/,/services-solutions/it-infrastructure-services/it-infrastructure-transformation-services/,2012-05-11T00:49:48+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/mobility-consulting-services/mobility-software-services-applications/,/services-solutions/mobility-consulting-services/mobility-software-services-applications/,2012-05-11T00:57:13+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/mobility-consulting-services/mobility-managed-services/,/services-solutions/mobility-consulting-services/mobility-managed-services/,2012-05-11T00:57:17+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/mobility-consulting-services/mobility-business-integration-services/,/services-solutions/mobility-consulting-services/mobility-business-integration-services/,2012-05-11T00:57:25+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/services-solutions/mobility-consulting-services/mobility-software-services-devices-and-platforms/,/services-solutions/mobility-consulting-services/mobility-software-services-devices-and-platforms/,2012-05-11T00:57:51+00:00,1,service_or_content,review_rewrite_or_merge +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/,/услуги-решения/,2013-05-17T11:20:07+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/hows-business/,/hows-business/,2013-05-20T16:11:40+00:00,1,legacy_home_alias,redirect_to_root_or_rewrite +https://iqon.com/%d0%ba%d0%b0%d0%ba-%d0%b8%d0%b4%d0%b5%d1%82-%d0%b1%d0%b8%d0%b7%d0%bd%d0%b5%d1%81/,/как-идет-бизнес/,2013-05-20T16:21:27+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/enterprise-orchestration/,/услуги-решения/enterprise-management-decision-support-solutions/enterprise-orchestration/,2013-05-20T18:45:44+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/enterprise-management-systems/,/услуги-решения/enterprise-management-decision-support-solutions/enterprise-management-systems/,2013-05-20T18:54:03+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/customer-intelligence-solutions/,/услуги-решения/enterprise-management-decision-support-solutions/customer-intelligence-solutions/,2013-05-20T19:07:13+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/enterprise-information-management/,/услуги-решения/enterprise-management-decision-support-solutions/enterprise-information-management/,2013-05-20T19:47:23+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/,/услуги-решения/it-infrastructure-services/,2013-05-20T19:52:40+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/infrastructure-management-consulting/,/услуги-решения/it-infrastructure-services/infrastructure-management-consulting/,2013-05-20T20:04:11+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/it-infrastructure-transformation-services/,/услуги-решения/it-infrastructure-services/it-infrastructure-transformation-services/,2013-05-20T20:25:10+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/it-infrastructure-services/end-user-computing-technology-solutions/,/услуги-решения/it-infrastructure-services/end-user-computing-technology-solutions/,2013-05-20T20:50:52+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/,/услуги-решения/industry-specific-services/,2013-05-20T20:55:24+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/managed-services/,/услуги-решения/enterprise-management-decision-support-solutions/managed-services/,2013-05-20T20:56:19+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/logistics-transport/,/услуги-решения/industry-specific-services/logistics-transport/,2013-05-20T21:07:43+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/retail-wholesail/,/услуги-решения/industry-specific-services/retail-wholesail/,2013-05-20T21:30:38+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/telecommunication/,/услуги-решения/industry-specific-services/telecommunication/,2013-05-20T21:45:21+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/energy-utilities/,/услуги-решения/industry-specific-services/energy-utilities/,2013-05-20T21:54:37+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/industry-specific-services/manufacturing-process/,/услуги-решения/industry-specific-services/manufacturing-process/,2013-05-20T21:58:59+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/,/услуги-решения/mobility-consulting-services/,2013-05-20T22:02:54+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-software-services-applications/,/услуги-решения/mobility-consulting-services/mobility-software-services-applications/,2013-05-20T22:06:33+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-managed-services/,/услуги-решения/mobility-consulting-services/mobility-managed-services/,2013-05-20T22:13:33+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-software-services-devices-and-platforms/,/услуги-решения/mobility-consulting-services/mobility-software-services-devices-and-platforms/,2013-05-20T22:19:24+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/mobility-consulting-services/mobility-business-integration-services/,/услуги-решения/mobility-consulting-services/mobility-business-integration-services/,2013-05-20T22:22:30+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/,/услуги-решения/is-advisory-services/,2013-05-20T22:27:40+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/,/услуги-решения/is-advisory-services/business-continuity-and-disaster-recovery-planning-services/,2013-05-20T22:30:45+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/business-technology-enterprise-architecture/,/услуги-решения/is-advisory-services/business-technology-enterprise-architecture/,2013-05-20T22:35:11+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/it-strategy-governance/,/услуги-решения/is-advisory-services/it-strategy-governance/,2013-05-20T22:46:17+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/information-security-services/,/услуги-решения/is-advisory-services/information-security-services/,2013-05-20T22:55:16+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/is-advisory-services/is-regulatory-and-compliance-services/,/услуги-решения/is-advisory-services/is-regulatory-and-compliance-services/,2013-05-20T22:59:29+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/contact/,/contact/,2013-07-18T14:12:20+00:00,2,duplicate,canonicalize_or_remove_duplicate +https://iqon.com/contact/,/contact/,2013-07-23T12:24:21+00:00,2,duplicate,canonicalize_or_remove_duplicate +https://iqon.com/%d1%83%d1%81%d0%bb%d1%83%d0%b3%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f/enterprise-management-decision-support-solutions/,/услуги-решения/enterprise-management-decision-support-solutions/,2013-07-23T12:27:35+00:00,1,encoded_multilingual,decide_hreflang_or_noindex_redirect +https://iqon.com/homepage/,/homepage/,2013-07-25T11:19:25+00:00,3,duplicate,canonicalize_or_remove_duplicate +https://iqon.com/homepage/,/homepage/,2013-07-25T11:19:25+00:00,3,duplicate,canonicalize_or_remove_duplicate +https://iqon.com/homepage/,/homepage/,2013-07-25T11:20:03+00:00,3,duplicate,canonicalize_or_remove_duplicate diff --git a/seo/url-cleanup-plan-2026-05-20.md b/seo/url-cleanup-plan-2026-05-20.md new file mode 100644 index 0000000..0b777ef --- /dev/null +++ b/seo/url-cleanup-plan-2026-05-20.md @@ -0,0 +1,151 @@ +# IQON URL Cleanup Plan + +Purpose: определить безопасную стратегию очистки sitemap, дублей, устаревших URL и multilingual-страниц `iqon.com` перед редизайном. + +## Contents + +- [Inputs](#inputs) +- [Inventory Summary](#inventory-summary) +- [Priority Groups](#priority-groups) +- [Recommended URL Policy](#recommended-url-policy) +- [Redirect Drafts](#redirect-drafts) +- [Verification](#verification) +- [Open Decisions](#open-decisions) + +## Inputs + +| Artifact | Role | +|----------|------| +| `reports/live-captures/2026-05-20/page-sitemap.xml` | Captured live Yoast page sitemap | +| `seo/sitemap-inventory-2026-05-20.csv` | Parsed URL inventory with classes and recommended actions | +| `scripts/iqon-sitemap-inventory.py` | Reproducible sitemap parser | +| `seo/redirect-map-2026-05-20.csv` | Draft 301 redirect map generated from inventory | +| `seo/nginx-redirects-2026-05-20.conf` | Draft nginx rewrite rules generated from redirect map | +| `scripts/iqon-generate-redirect-map.py` | Reproducible redirect-map generator | + +## Inventory Summary + +| Class | Count | Recommended Action | +|-------|-------|--------------------| +| `encoded_multilingual` | 29 | Decide hreflang or noindex/redirect | +| `service_or_content` | 26 | Review, rewrite, merge, or archive | +| `duplicate` | 7 | Canonicalize or remove duplicate entries | +| `homepage` | 1 | Rewrite homepage metadata and content | +| `thin_landing` | 1 | Rewrite as services overview | +| `typo_slug` | 1 | Redirect to corrected spelling | +| `legacy_home_alias` | 1 | Redirect to root or rewrite intentionally | + +## Priority Groups + +### P0: Fix Duplicates And Obvious Aliases + +| URL Pattern | Problem | Proposed Action | +|-------------|---------|-----------------| +| `/homepage/` | Appears 3 times and duplicates root homepage intent | 301 to `/` unless WordPress requires it internally | +| `/contact/` | Appears twice in sitemap with different `lastmod` | Keep one canonical contact page | +| `/industry-specific-services/` | Appears twice outside the main `/services-solutions/` tree | 301 to `/services-solutions/industry-specific-services/` | +| `/hows-business/` | Legacy home/campaign alias | 301 to `/` or rewrite as a current thought-leadership page | + +### P1: Fix Typo Slug + +| URL | Problem | Proposed Action | +|-----|---------|-----------------| +| `/services-solutions/industry-specific-services/retail-wholesail/` | Typo in `wholesail` | 301 to `/services-solutions/industry-specific-services/retail-wholesale/` if page is retained | + +### P1: Decide Russian URL Policy + +There are 29 percent-encoded Russian-path URLs. Do not leave them as accidental indexable pages. + +Choose one policy: + +| Policy | Use When | Result | +|--------|----------|--------| +| Keep bilingual | Russian content is current and maintained | Add hreflang, clean RU nav, keep indexable | +| Archive Russian | Russian content is stale but useful | Noindex RU pages, keep reachable from archive | +| Remove Russian | Final site is English-only | 301 relevant RU URLs to English equivalents | + +Recommended default unless business says otherwise: English-only public site with selected 301 redirects from Russian service URLs to matching English service pages. + +### P1: Rewrite Thin Service Landing + +`/services-solutions/` is a thin landing page. It should become the primary services overview with current service groups: + +- IT strategy and governance +- Enterprise architecture and transformation +- Data, analytics, and decision support +- Infrastructure and cloud operations +- Security, continuity, and compliance + +## Recommended URL Policy + +Use a smaller, intentional URL set for the redesigned site: + +| Final URL | Purpose | +|-----------|---------| +| `/` | Homepage | +| `/services/` | Services overview | +| `/services/strategy-governance/` | IT strategy and governance | +| `/services/enterprise-architecture/` | Business technology architecture | +| `/services/data-analytics/` | Enterprise information and decision support | +| `/services/infrastructure-cloud/` | Infrastructure and managed operations | +| `/services/security-continuity/` | Security, compliance, continuity | +| `/industries/` | Industry experience overview | +| `/case-studies/` | Current or clearly historical cases | +| `/contact/` | Verified contact path | + +## Redirect Drafts + +These are drafts, not deployed rules. + +```nginx +rewrite ^/homepage/?$ / permanent; +rewrite ^/hows-business/?$ / permanent; +rewrite ^/industry-specific-services/?$ /services-solutions/industry-specific-services/ permanent; +rewrite ^/services-solutions/industry-specific-services/retail-wholesail/?$ /services-solutions/industry-specific-services/retail-wholesale/ permanent; +``` + +If the redesigned site uses the shorter `/services/` taxonomy, replace the destination URLs with the final URL set above. + +Generated redirect artifacts: + +| Artifact | Count | Notes | +|----------|-------|-------| +| `seo/redirect-map-2026-05-20.csv` | 32 rules | 28 RU-to-English defaults, 4 direct alias/typo redirects | +| `seo/nginx-redirects-2026-05-20.conf` | 32 rewrite rules | Review before deployment; not applied | + +## Verification + +```bash +scripts/iqon-sitemap-inventory.py reports/live-captures/2026-05-20/page-sitemap.xml seo/sitemap-inventory-2026-05-20.csv +python3 -c "import csv,collections; rows=list(csv.DictReader(open('seo/sitemap-inventory-2026-05-20.csv',encoding='utf-8'))); print(len(rows)); print(collections.Counter(r['class'] for r in rows))" +PYTHONPYCACHEPREFIX=/private/tmp/iqon-pycache python3 -m py_compile scripts/iqon-generate-redirect-map.py +python3 scripts/iqon-generate-redirect-map.py seo/sitemap-inventory-2026-05-20.csv seo/redirect-map-2026-05-20.csv seo/nginx-redirects-2026-05-20.conf +``` + +Expected current signal: + +- `66` rows. +- `encoded_multilingual: 29`. +- `duplicate: 7`. +- `typo_slug: 1`. +- `thin_landing: 1`. +- `legacy_home_alias: 1`. + +After cleanup, expected signal: + +- No duplicate canonical URLs in sitemap. +- No accidental encoded Russian URLs unless bilingual policy is approved. +- No typo slug in sitemap. +- Root homepage and `/homepage/` are not both indexable. + +## Open Decisions + +- Should final public site be English-only or bilingual EN/RU? +- Should old service-detail pages survive as pages, merge into sections, or redirect to fewer modern pages? +- Should `/services-solutions/` stay for SEO continuity or redirect to `/services/` in the redesign? +- Should `/case-studies/` show historical cases or wait for current case material? + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/server-backup-20260518/.htaccess b/server-backup-20260518/.htaccess deleted file mode 100644 index cb92190..0000000 --- a/server-backup-20260518/.htaccess +++ /dev/null @@ -1,36 +0,0 @@ -# BEGIN WordPress -# The directives (lines) between "BEGIN WordPress" and "END WordPress" are -# dynamically generated, and should only be modified via WordPress filters. -# Any changes to the directives between these markers will be overwritten. -<IfModule mod_rewrite.c> -RewriteEngine On -RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -RewriteBase / -RewriteRule ^index\.php$ - [L] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . /index.php [L] -</IfModule> - -# END WordPress - -RewriteCond %{HTTP_HOST} ^iqon\.md$ [OR] -RewriteCond %{HTTP_HOST} ^www\.iqon\.md$ -RewriteRule ^/?$ "http\:\/\/www\.iqon\.kz\/" [R=301,L] - -RewriteCond %{HTTP_HOST} ^iqonrussia\.kz$ [OR] -RewriteCond %{HTTP_HOST} ^www\.iqonrussia\.kz$ -RewriteRule ^/?$ "http\:\/\/www\.iqon\.kz\/" [R=301,L] - -RewriteCond %{HTTP_HOST} ^iqonrussia\.ru$ [OR] -RewriteCond %{HTTP_HOST} ^www\.iqonrussia\.ru$ -RewriteRule ^/?$ "http\:\/\/www\.iqon\.kz\/" [R=301,L] - - - -<Files "wp-login.php"> - AuthType Basic - AuthName "please use your control panel password" - AuthUserFile /var/www/u0012812/data/etc/users - Require valid-user -</Files> diff --git a/server-backup-20260518/RESTORE.md b/server-backup-20260518/RESTORE.md deleted file mode 100644 index b5e8535..0000000 --- a/server-backup-20260518/RESTORE.md +++ /dev/null @@ -1,180 +0,0 @@ -# iqon.com — Документация текущего состояния и восстановления - -*Created: 18 May 2026* - -## Назначение - -Полная документация текущего состояния iqon.com для обеспечения возможности восстановления после изменений по аудиту. - ---- - -## 1. Сервер и хостинг - -| Параметр | Значение | -|----------|----------| -| **Хостинг** | reg.ru shared (server71.hosting.reg.ru) | -| **Аккаунт** | u0012812 | -| **Путь** | `/var/www/u0012812/data/www/iqon.com/` | -| **PHP** | 8.x (актуальная версия на reg.ru) | -| **HTTPS** | Да (HSTS: max-age=31536000) | -| **Сервер** | nginx | - -### Доступ - -- WP Admin через dsu-project.ru: `https://dsu-project.ru/wp-admin/` (sergei / #8DihNf3NS1TTSQenXz76&Ly) -- iqon.com НЕ имеет собственного WP admin пользователя -- Файлы iqon.com модифицируются через Code Snippets на dsu-project.ru (общий аккаунт) -- SSH недоступен (Password auth not supported) -- WP REST API на iqon.com: 180 маршрутов, открыт без авторизации - ---- - -## 2. WordPress - -| Параметр | Значение | -|----------|----------| -| **Версия** | 4.9.13 (декабрь 2017) — критически устаревшая | -| **Тема** | iqon (кастомная, 2012 год) | -| **Страниц** | 66 в sitemap | -| **Публикаций** | Последнее обновление: 2013-07-25 | -| **Yoast SEO** | Установлен (генерирует sitemap, og теги) | -| **Пользователи** | admin (id=1), iqnadm01 (id=3) — раскрываются через REST API | - ---- - -## 3. Бэкап - -### Дата создания: 2026-05-18 - -### Структура бэкапа - -``` -server-backup-20260518/ -├── manifest.txt # Полный список файлов темы (58 файлов, 976KB) -├── wp-options.txt # WP options (blogname, siteurl, etc.) -├── index.html # Главная страница (отрендеренный HTML) -├── .htaccess # Apache config -├── sitemap_index.xml # XML sitemap index -├── page-sitemap.xml # Sitemap страниц (66 URL) -├── post-sitemap.xml # Sitemap записей -├── php-source/ # Исходные PHP файлы темы (RAW) -│ ├── .htaccess -│ ├── analyticstracking.php # Пустой файл (GA-UA удалён) -│ ├── category.php # С исправлением error_reporting -│ ├── contactkz.php # Контакт-форма с PHP 8 фиксами -│ ├── footer.php # Подвал (2016 copyright) -│ ├── functions.php # Функции темы (15.5KB) -│ ├── header.php # Шапка (jQuery 3.7.1) -│ ├── home.php # Шаблон главной -│ ├── meniu.php # Навигация -│ ├── meniu-services.php # Подменю сервисов -│ ├── page.php # Шаблон страницы -│ ├── single.php # Шаблон записи -│ ├── style.css # Метаданные темы (116 байт) -│ └── wp-config.php # Конфиг WP (DB_NAME=u0012812_iqon, пароли MASKED) -├── wp-content/ -│ ├── themes/iqon/ -│ │ ├── css/ -│ │ │ ├── style.css # Основной CSS (7.3KB) -│ │ │ └── fonts/ -│ │ │ ├── fonts.css # @font-face для HelveticaNeueLTPro -│ │ │ ├── iqon_35_thin-webfont.eot/woff/ttf -│ │ │ └── iqon_45_light-webfont.eot/woff/ttf -│ │ ├── images/ # 18 PNG изображений (логотип, иконки, кнопки) -│ │ └── js/ -│ │ └── jquery.realperson.min.js # CAPTCHA плагин -│ └── uploads/ -│ ├── 2012/05/ # homepage.png, imagine-text-home.png -│ └── 2012/06/ # Poza_website_CaseStudy-208x142.jpg -└── style.css # Альтернативный светлый CSS (new_redesign) -``` - -### Чего нет в бэкапе - -| Элемент | Причина | Влияние | -|---------|---------|---------| -| **База данных MySQL** | Нет прямого доступа (только через WP REST API) | Критично — хранит контент всех 66 страниц | -| **Все uploads** | Скачано 3 ключевых файла из ~101 (86MB total) | Среднее — остальное можно восстановить из оригиналов | -| **.bak файлы на сервере** | 7 backup-файлов (.bak, .bak2) в теме | Низкое — это предыдущие версии | -| **WP plugins** | Нет доступа к списку плагинов | Среднее — Yoast SEO, Code Snippets | -| **class.phpmailer.php** | 81KB, не скачан (библиотека) | Низкое — стандартный PHPMailer | - ---- - -## 4. Критические файлы на сервере (не в бэкапе) - -По данным manifest.txt: - -| Файл | Размер | Описание | -|------|--------|----------| -| `class.phpmailer.php` | 81KB | PHPMailer библиотека (стандартная) | -| `it_IT.mo` | 164KB | Итальянская локализация | -| `ru_RU.mo` | 207KB | Русская локализация | -| `screenshot.png` | 168KB | Скриншот темы для WP admin | -| `paginare-template.php` | 998B | Шаблон пагинации | -| `paginare-script.php` | 1.5KB | Скрипт пагинации (исправлен для PHP 8) | -| `search.php` | 2.3KB | Шаблон поиска | -| `editor-style.css` | 0B | Пустой файл | -| `google0ebaafd23cef1b29.html` | 53B | Google Search Console верификация | -| `.bak файлы` | 7 шт | Бэкапы PHP файлов до исправлений | - ---- - -## 5. Инструкции по восстановлению - -### Частичное восстановление (отдельные файлы) - -Через Code Snippets на dsu-project.ru: - -```php -// Пример: восстановить header.php из бэкапа -$backup_content = file_get_contents('/path/to/server-backup-20260518/php-source/header.php'); -file_put_contents('/var/www/u0012812/data/www/iqon.com/wp-content/themes/iqon/header.php', $backup_content); -``` - -### Полное восстановление темы - -1. Загрузить все файлы из `php-source/` на сервер через Code Snippets -2. Загрузить все assets из `wp-content/themes/iqon/` аналогично -3. Восстановить uploads из `wp-content/uploads/` - -### Восстановление базы данных - -БД не в бэкапе. Для полного восстановления нужен: -- Доступ к phpMyAdmin на reg.ru, ИЛИ -- WP плагин резервного копирования (UpdraftPlus), ИЛИ -- mysqldump через SSH (недоступен) - ---- - -## 6. Изменённые файлы (исправления 2026-05-16) - -Следующие файлы были изменены через Code Snippets на dsu-project.ru (сниппет #5 iqon-fix-critical): - -| Файл | Изменение | .bak на сервере | -|------|-----------|------------------| -| `contactkz.php` L28 | `$binary{0}` → `$binary[0]` (PHP 8) | Да | -| `contactkz.php` L99 | `$_GET['sent']` → `$_GET['sent'] ?? ''` | Да | -| `paginare-script.php` | `$_GET["page"]` → `$_GET["page"] ?? 1` | Нет | -| `category.php` | `error_reporting(E_ERROR \| E_PARSE)` добавлен | Да | -| `functions.php` L18-21 | jQuery 1.7.2/1.8.18 → 3.7.1/1.13.2 | Да | -| `analyticstracking.php` | GA-UA скрипт удалён (пустой файл) | Да | - -Все .bak файлы содержат оригинальные версии до исправлений. - ---- - -## 7. Активные Code Snippets (dsu-project.ru) - -| # | Название | Статус | Назначение | -|---|----------|--------|------------| -| 9 | dsu-high-priority-fixes | Active | SEO/доступность dsu-project.ru | -| 10 | dsu-phase2-security-accessibility | Active | Безопасность dsu-project.ru | -| 11 | set-noindex-old-bitrix | Inactive | Одноразовый noindex для dsu-project.ru | -| 5 | iqon-fix-critical | Inactive | PHP 8 фиксы для iqon.com | - -Сниппет #5 (iqon-fix-critical) деактивирован — все фиксы уже применены напрямую к файлам на сервере. - ---- - -*Updated: 18 May 2026* \ No newline at end of file diff --git a/server-backup-20260518/index.html b/server-backup-20260518/index.html deleted file mode 100644 index 7ebc7b0..0000000 --- a/server-backup-20260518/index.html +++ /dev/null @@ -1,149 +0,0 @@ -<!DOCTYPE html> -<html lang="en-US"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<title>How’s business? – IQON | How's Business? - - - - How’s business? - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
- -
- -
-
-

Iqon implements the "vBlock" platform as part of an IT - Cloud consolidation project, unique in Southeast Europe

-

"The shifting of the IT&C infrastructure into Cloud was a success for Rompetrol. From my point of view, the vBlock’s platform major advantage can be expressed in four simple words: best value for money." - Askar Zhakenov, Group IT Director Rompetrol

-
-
- -
-
-
-

At the end of 2010, in the midst of the operational excellence achievement process and following the launch of the SAP implementation program, the Rompetrol Group opted for the development of an IT&C infrastructure in the Cloud (private cloud), a solution based on vBlock and offered by the VCE alliance (Cisco, EMC and Vmware). The project was meant to provision resources for the SAP environment, together with the “private cloud” consolidation of 575 physical servers and 11 storage systems: it was a major success for Rompetrol and the Romanian market. The implementation process completed, the company estimates a 22% ROI (Return on Investment) rate, and a 64% IRR (Internal Rate of Return).

-
-
-
- -
-\n - \ No newline at end of file diff --git a/server-backup-20260518/manifest.txt b/server-backup-20260518/manifest.txt deleted file mode 100644 index 0244a73..0000000 --- a/server-backup-20260518/manifest.txt +++ /dev/null @@ -1,67 +0,0 @@ -IQON BACKUP FILE LISTING -========================== - -Generated: 2026-05-18 09:53:05 -Theme dir: /var/www/u0012812/data/www/iqon.com/wp-content/themes/iqon/ - -meniu-services.php|1050|2026-05-15 -contactro.php|7867|2016-06-14 -search.php|2290|2012-06-26 -paginare-script.php|1466|2012-06-26 -meniu-services.php.bak|1022|2026-05-15 -google0ebaafd23cef1b29.html|53|2013-07-25 -css/jquery.realperson.css|526|2012-06-26 -css/style.css|7275|2012-06-26 -css/fonts/iqon_35_thin-webfont.woff|27708|2012-06-26 -css/fonts/iqon_35_thin-webfont.ttf|53312|2012-06-26 -css/fonts/iqon_35_thin-webfont.eot|24826|2012-06-26 -css/fonts/iqon_45_light-webfont.eot|24207|2012-06-26 -css/fonts/fonts.css|794|2012-06-26 -css/fonts/iqon_45_light-webfont.woff|27160|2012-06-26 -css/fonts/iqon_45_light-webfont.ttf|52588|2012-06-26 -contactkz.php|7936|2026-05-16 -meniu.php|524|2012-06-26 -footer.php|6077|2026-05-15 -home.php|1330|2012-06-26 -analyticstracking.php.bak|45|2026-05-16 -it_IT.mo|164147|2013-05-17 -screenshot.png|168167|2012-06-26 -images/bg-menu-active.png|136|2012-06-26 -images/send_message.png|2587|2012-06-26 -images/read.png|1855|2012-06-26 -images/submeniu-inactive.png|334|2012-06-26 -images/icon-arrow.png|1072|2012-06-26 -images/logo-footer.png|1761|2012-06-26 -images/download_pdf.png|1650|2012-06-26 -images/bg-menu.png|328|2012-06-26 -images/submit_cv.png|1905|2012-06-26 -images/colt-meniu.png|134|2012-06-26 -images/rss.png|811|2012-06-26 -images/facebook.png|744|2012-06-26 -images/logo.png|3288|2012-06-26 -images/twitter.png|694|2012-06-26 -images/read_job.png|1543|2012-06-26 -images/submeniu-active.png|371|2012-06-26 -images/download_case_study.png|3080|2012-06-26 -category.php.bak|3741|2026-05-16 -contactkz.php.bak2|7930|2026-05-16 -header.php|7243|2026-05-15 -paginare-template.php|998|2012-06-26 -category.php|3786|2026-05-16 -functions.php.bak|15546|2026-05-16 -analyticstracking.php|45|2026-05-16 -editor-style.css|0|2012-06-26 -style.css|116|2013-05-16 -single.php|2641|2013-05-18 -page.php|1354|2012-06-26 -class.phpmailer.php|81748|2012-06-26 -ru_RU.mo|206915|2013-05-17 -index.php|11|2012-06-26 -footer.php.bak|5817|2026-05-15 -js/jquery.realperson.min.js|5052|2012-06-26 -header.php.bak|7041|2026-05-15 -functions.php|15546|2026-05-16 -contactkz.php.bak|7900|2026-05-16 - ---- WP-CONFIG EXISTS: YES ---- .HTACCESS EXISTS: YES diff --git a/server-backup-20260518/php-source/.htaccess b/server-backup-20260518/php-source/.htaccess deleted file mode 100644 index cb92190..0000000 --- a/server-backup-20260518/php-source/.htaccess +++ /dev/null @@ -1,36 +0,0 @@ -# BEGIN WordPress -# The directives (lines) between "BEGIN WordPress" and "END WordPress" are -# dynamically generated, and should only be modified via WordPress filters. -# Any changes to the directives between these markers will be overwritten. - -RewriteEngine On -RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -RewriteBase / -RewriteRule ^index\.php$ - [L] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . /index.php [L] - - -# END WordPress - -RewriteCond %{HTTP_HOST} ^iqon\.md$ [OR] -RewriteCond %{HTTP_HOST} ^www\.iqon\.md$ -RewriteRule ^/?$ "http\:\/\/www\.iqon\.kz\/" [R=301,L] - -RewriteCond %{HTTP_HOST} ^iqonrussia\.kz$ [OR] -RewriteCond %{HTTP_HOST} ^www\.iqonrussia\.kz$ -RewriteRule ^/?$ "http\:\/\/www\.iqon\.kz\/" [R=301,L] - -RewriteCond %{HTTP_HOST} ^iqonrussia\.ru$ [OR] -RewriteCond %{HTTP_HOST} ^www\.iqonrussia\.ru$ -RewriteRule ^/?$ "http\:\/\/www\.iqon\.kz\/" [R=301,L] - - - - - AuthType Basic - AuthName "please use your control panel password" - AuthUserFile /var/www/u0012812/data/etc/users - Require valid-user - diff --git a/server-backup-20260518/php-source/analyticstracking.php b/server-backup-20260518/php-source/analyticstracking.php deleted file mode 100644 index 62e0102..0000000 --- a/server-backup-20260518/php-source/analyticstracking.php +++ /dev/null @@ -1 +0,0 @@ -\n \ No newline at end of file diff --git a/server-backup-20260518/php-source/category.php b/server-backup-20260518/php-source/category.php deleted file mode 100644 index e9319fd..0000000 --- a/server-backup-20260518/php-source/category.php +++ /dev/null @@ -1,72 +0,0 @@ - - - - -
-

Career opportunities:

- 7, 'hide_empty' => false)); - ?> - - term_id) echo 'class="active"'; ?>>» name;?> (count; ?>) -
- -
-
- - $per_page, 'cat' => $selected_object_id, 'post_type' => 'post', 'post_status' => 'publish', 'paged' => $current_page ); - else $args = array( 'posts_per_page' => $per_page, 'cat' => $selected_department, 'post_type' => 'post', 'post_status' => 'publish', 'paged' => $current_page ); - query_posts($args); - while ( have_posts() ) : the_post(); - if (in_array($selected_object_id, array(1,25,26))) { - $id_featured = 0; - if (has_post_thumbnail()) { - $id_featured = get_post_thumbnail_id(); - $imagine_featured = wp_get_attachment_image_src($id_featured, 'post-thumbnail'); - } - } -?> - -
- -
- -
- -

- - -
-
- -
-

- - -
-
- - - - - - If you want to apply for a position within the Iqon company, please submit your resume by pressing the following button.

- - -
-
- - \ No newline at end of file diff --git a/server-backup-20260518/php-source/contactkz.php b/server-backup-20260518/php-source/contactkz.php deleted file mode 100644 index 81e86bf..0000000 --- a/server-backup-20260518/php-source/contactkz.php +++ /dev/null @@ -1,156 +0,0 @@ - -AddReplyTo($email, $nume); - $admin_email = get_option('admin_email'); - //dv($admin_email);die(); - $new_mail->AddAddress($admin_email); - //$new_mail->AddAddress('gabriel.ilie@gmail.com', 'Gabriel Ilie'); - $new_mail->SetFrom('contact@iqon.com', 'CONTACT FORM'); - $new_mail->Subject = '[IQON CONTACT FORM] '.$nume.' has sent you a message. Subject: '.$subject; - $new_mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically - //$new_mail->MsgHTML(file_get_contents('contents.html')); - $html = $nume.' has sent you an message.
E-mail: '.$email.'
Subject: '.$subject.'
Message: '.$message; - $new_mail->MsgHTML($html); - $new_mail->Send(); - } catch (phpmailerException $e) { - echo $e->errorMessage(); //Pretty error messages from PHPMailer - } catch (Exception $e) { - echo $e->getMessage(); //Boring error messages from anything else! - } - - echo ''; - die(); - } - } -?> - - -
-

Bucharest Office:

- 10th Montreal Square, 2nd Floor
- Office 2.10, 011469
- Bucharest - 1, Romania
-
- T: +4 037 239 0880
- F: +4 037 261 2608
-
- office@iqon.com

-

Moscow Office:

- ул. Большая Полянка, дом 7/10, стр. 3
- 119180, РФ, г. Москва
-
- T: +7 965 195 85 26
-
- office@iqon.kz

-

Almaty Office:

- улица Богенбай батыра 117, кв. 25
- 05000, Казахстан, г. Алматы
-
- T: +7 727 267 02 55
- F: +7 727 267 02 55
-
- office@iqon.kz

-
-
-
View Larger Map -

Please fill in the form below [Your message has been send.]

-
-
- - -
-
- - -
-
- -
- - -
-
-
- - -
-
- - -
-
- -
- -
- Disclaimer: IQON Romania takes all necessary measures to keep your personal information private and secure. Only authorized IQON Romania staff, Third Party companies (i.e. service providers) staff or our business partners' authorized staff (who have contractually agreed to keep all information secure) have access to your personal information. -
-
- \ No newline at end of file diff --git a/server-backup-20260518/php-source/footer.php b/server-backup-20260518/php-source/footer.php deleted file mode 100644 index 5238658..0000000 --- a/server-backup-20260518/php-source/footer.php +++ /dev/null @@ -1,120 +0,0 @@ - -
- - -
- If you would like to read this material later, download the case study's full PDF. -
- - - - - - \ No newline at end of file diff --git a/server-backup-20260518/php-source/functions.php b/server-backup-20260518/php-source/functions.php deleted file mode 100644 index 43de01d..0000000 --- a/server-backup-20260518/php-source/functions.php +++ /dev/null @@ -1,421 +0,0 @@ - 'Meniu principal') ); -add_theme_support( 'post-thumbnails' ); -set_post_thumbnail_size(208,142, true); -add_image_size('case-study', 435); -/*add_image_size('home-slider', 700, 495, true); -add_image_size('article-page', 320, 226, true); -add_image_size('listing-article', 160, 113, true); -add_image_size('product-image', 560, 420, false); -add_image_size('gallery', 9999, 600, false); -*/ - -if (!is_admin()) { - wp_deregister_script('jquery'); - wp_register_script('jquery', ('https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js'), false, '3.7.1'); - wp_register_script('jquery-ui', ('https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js'), array('jquery'), '1.13.2'); - wp_enqueue_script('jquery-ui'); -} - -show_admin_bar(false); -add_editor_style(); - -remove_action('wp_head', 'rsd_link'); -remove_action('wp_head', 'wp_generator'); -remove_action('wp_head', 'index_rel_link'); -remove_action('wp_head', 'wlwmanifest_link'); -remove_action('wp_head', 'start_post_rel_link', 10, 0); -remove_action('wp_head', 'parent_post_rel_link', 10, 0); -remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); -automatic_feed_links(false); - -if ( class_exists("global_posts_ordering") ) { - $global_posts_ordering = new global_posts_ordering(array("product")); -} - - -function image_src($img_tag) -{ - preg_match("/src=\"(.*?)\"/i", $img_tag, $matches); - return $matches[1]; -} - -function short_text($text, $len=200, $puncte = ""){ -$text = strip_tags($text); -if( (mb_strlen($text) > $len) ) { - $whitespaceposition = mb_strpos($text," ",$len)-1; - if( $whitespaceposition > 0 ) { - $chars = count_chars(mb_substr($text, 0, ($whitespaceposition+1)), 1); - if (isset($chars[ord('<')]) && $chars[ord('<')] > (isset($chars[ord('>')]) ? $chars[ord('>')] : 0)) - $whitespaceposition = mb_strpos($text,">",$whitespaceposition)-1; - $text = mb_substr($text, 0, ($whitespaceposition+1)); - } - // close unclosed html tags - if( preg_match_all("|<([a-zA-Z]+)|",$text,$aBuffer) ) { - if( !empty($aBuffer[1]) ) { - preg_match_all("||",$text,$aBuffer2); - if( count($aBuffer[1]) != count($aBuffer2[1]) ) { - foreach( $aBuffer[1] as $index => $tag ) { - if( empty($aBuffer2[1][$index]) || $aBuffer2[1][$index] != $tag) - $text .= ''; - } - } - } - } -} -return $text.$puncte; -} - -/* - returneaza data in format: - - pt postare de azi 'azi la {ora}' - - pt anul asta, dar nu azi '{ziua} {luna} la {ora} - - pt alt an '{ziua} {luna} {anul} la {ora} -*/ -function afiseaza_data($data=false) -{ - if (!$data) return false; - // verifica daca este data in format corect - if (($data_timestamp = strtotime($data)) === false) { - // daca nu este corecta si nu am ce face cu ea returnez valoarea inapoi - return $data; - } - else { - //@setlocale(LC_TIME, 'ro_RO'); - /*if (date("Y")==date("Y",$data_timestamp)) { - // acelasi an - - if (date('d')==date('d',$data_timestamp)) { - // aceeasi zi - return strftime('azi la %H:%M',$data_timestamp); - } - else - { - // zi diferite - return strftime('%d %b la %H:%M',$data_timestamp); - } - } - else { - // ani diferiti - return strftime('%d %b %Y la %H:%M',$data_timestamp); - }*/ - return strftime("%b %d",$data_timestamp); - } -} - -function afiseaza_data_cu_an($data=false) -{ - if (!$data) return false; - // verifica daca este data in format corect - if (($data_timestamp = strtotime($data)) === false) { - // daca nu este corecta si nu am ce face cu ea returnez valoarea inapoi - return $data; - } - else { - //@setlocale(LC_TIME, 'ro_RO'); - /*if (date("Y")==date("Y",$data_timestamp)) { - // acelasi an - - if (date('d')==date('d',$data_timestamp)) { - // aceeasi zi - return strftime('azi la %H:%M',$data_timestamp); - } - else - { - // zi diferite - return strftime('%d %b la %H:%M',$data_timestamp); - } - } - else { - // ani diferiti - return strftime('%d %b %Y la %H:%M',$data_timestamp); - }*/ - return strftime("%b %d, %Y",$data_timestamp); - } -} - -function arrangeMenuIqon($menu, $selected_object_id = 0, $selected_object_type, $homeID) { - global $object_id, $object_id_child, $object_id_child_child; - $arranged_menu = array(); - $mainLevel = array(); - $secondLevel = array(); - $thirdLevel = array(); - foreach ($menu as $m) - if ($m->menu_item_parent == 0) { - $key = $m->ID; - $arranged_menu[$key] = new stdClass; - $arranged_menu[$key]->ID = $m->ID; - $arranged_menu[$key]->object_id = $m->object_id; - $arranged_menu[$key]->object_id_en = function_exists('icl_object_id') ? icl_object_id($m->object_id, $m->object, true, 'en') : $m->object_id; - $arranged_menu[$key]->parrent = 0; - $arranged_menu[$key]->title = $m->title; - $arranged_menu[$key]->attr_title = $m->attr_title; - $arranged_menu[$key]->object = $m->object; - if (empty($arranged_menu[$key]->attr_title)) $arranged_menu[$key]->attr_title = $arranged_menu[$key]->title; - $arranged_menu[$key]->url = $m->url; - $arranged_menu[$key]->has_childrens = false; - $arranged_menu[$key]->selected = false; - if ($selected_object_type == 'home') { - if ($selected_object_id == $arranged_menu[$key]->object_id_en && $m->object == 'page') - $arranged_menu[$key]->selected = true; - $object_id = $key; - } - elseif ($selected_object_type == $m->object && $selected_object_id == $m->object_id) { - $arranged_menu[$key]->selected = true; - $object_id = $key; - } - $mainLevel[] = $m->ID; - } - elseif (in_array($m->menu_item_parent, $mainLevel)) { - $key_parent = $m->menu_item_parent; - $arranged_menu[$key_parent]->has_childrens = true; - $key_child = $m->ID; - $objectToModify = &$arranged_menu[$key_parent]->childrens; - $objectToModify[$key_child] = new stdClass; - $objectToModify[$key_child]->ID = $m->ID; - $objectToModify[$key_child]->object_id = $m->object_id; - $objectToModify[$key_child]->object_id_en = function_exists('icl_object_id') ? icl_object_id($m->object_id, $m->object, true, 'en') : $m->object_id; - $objectToModify[$key_child]->parrent = $key_parent; - $objectToModify[$key_child]->title = $m->title; - $objectToModify[$key_child]->attr_title = $m->attr_title; - $objectToModify[$key_child]->object = $m->object; - if (empty($objectToModify[$key_child]->attr_title)) $objectToModify[$key_child]->attr_title = $objectToModify[$key_child]->title; - $objectToModify[$key_child]->url = $m->url; - if (($arranged_menu[$key_parent]->object_id_en == 8) && sizeof($arranged_menu[$key_parent]->childrens) == 1) $arranged_menu[$key_parent]->url = $objectToModify[$key_child]->url; - $objectToModify[$key_child]->selected = false; - if ($selected_object_type == $m->object && $selected_object_id == $m->object_id) { - $objectToModify[$key_child]->selected = true; - $arranged_menu[$key_parent]->selected = true; - $object_id = $key_parent; - $object_id_child = $key_child; - } - $objectToModify[$key_child]->has_childrens = false; - $secondLevel[] = $m->ID; - if ($arranged_menu[$key_parent]->object_id_en == 8) { - wp_reset_query(); - $args_pages = array('post_type' => 'page', 'order' => 'ASC', 'orderby' => 'menu_order', 'post_status' => 'publish', 'nopaging' => true, 'post_parent' => $objectToModify[$key_child]->object_id); - $pages = query_posts($args_pages); - //dv($pages); - if ($pages) { - $objectToModifyChild = &$objectToModify[$key_child]->childrens; - $objectToModify[$key_child]->has_childrens = true; - foreach ($pages as $p) { - $key_child_child = $p->ID; - $objectToModifyChild[$key_child_child] = new stdClass; - $objectToModifyChild[$key_child_child]->ID = $p->ID; - $objectToModifyChild[$key_child_child]->object_id = $p->ID; - $objectToModifyChild[$key_child_child]->object_id_en = function_exists('icl_object_id') ? icl_object_id($p->ID, $p->post_type, true, 'en') : $p->ID; - $objectToModifyChild[$key_child_child]->parrent = $key_child; - $objectToModifyChild[$key_child_child]->title = $p->post_title; - $objectToModifyChild[$key_child_child]->attr_title = $p->post_title; - $objectToModifyChild[$key_child_child]->object = $p->post_type; - $objectToModifyChild[$key_child_child]->url = get_permalink($p->ID); - $objectToModifyChild[$key_child_child]->selected = false; - if ($selected_object_type == $p->post_type && $selected_object_id == $p->ID) { - $objectToModifyChild[$key_child_child]->selected = true; - $objectToModify[$key_child]->selected = true; - $arranged_menu[$key_parent]->selected = true; - $object_id = $key_parent; - $object_id_child = $key_child; - $object_id_child_child = $key_child_child; - } - $objectToModifyChild[$key_child_child]->has_childrens = false; - } - - } - wp_reset_query(); - } - unset($objectToModify); - } - - return $arranged_menu; -} - -function arrangeMenu($menu, $selected_object_id = 0, $selected_object_type, $homeID) { - global $object_id, $object_id_child, $object_id_child_child; - $arranged_menu = array(); - - // get level 1 menus - foreach ($menu as $m) - if ($m->menu_item_parent == 0) { - $i = $m->ID; - $arranged_menu[$i] = new stdClass; - $arranged_menu[$i]->ID = $m->ID; - $arranged_menu[$i]->object_id = $m->object_id; - $arranged_menu[$i]->title = $m->title; - $arranged_menu[$i]->attr_title = $m->attr_title; - if (empty($arranged_menu[$i]->attr_title)) $arranged_menu[$i]->attr_title = $arranged_menu[$i]->title; - $arranged_menu[$i]->parrent = 0; - $arranged_menu[$i]->url = $m->url; - $arranged_menu[$i]->selected = false; - if ($selected_object_id == $m->object_id) { - $object_id = $i; - $arranged_menu[$i]->selected = true; - } - $arranged_menu[$i]->has_childrens = false; - } - - if ($selected_object_type == 'home') $arranged_menu[$homeID]->selected = true; - return $arranged_menu; -} - -function dv($var, $var_type = '') { - dump_var($var, $var_type); -} - -function dump_var($var, $var_type = '') { - $ip=$_SERVER['REMOTE_ADDR']; - $local=false; - //if(preg_match("/192\.168\.([0-9]+)\.([0-9]+)/", $ip))$local=true; - //if(preg_match("/10\.([0-9]+)\.([0-9]+)\.([0-9]+)/", $ip))$local=true; - if($ip == "89.36.30.26") $local=true; - $local=true; - $rand = rand(0,9999); - echo "
"; - if($local==true) { - print_var($var, $var_type); - } - echo "
"; - -} -function print_var(&$var, $var_type, $return=false) -{ - - global $html; - $html=" - -
"; - - if(!isset($var))$var="%NULL%"; - - $old = $var; - $var = '0unique'.rand().'value'; - $var_name = array_search($var, $GLOBALS, true); - $var=$old; - if($var_name) { - print_content($var, "$".$var_name, 1, "$".$var_name); - } else { - print_content($var, $var_type, 1, $var_type); - } - - $html.="
"; - - if($return)return $html; - else echo $html; -} - -function print_content($var, $var_name, $level, $parent) { - if(!isset($var))$var="%NULL%"; - global $html; - for($i=0;$i<$level;$i++)$html.="     "; - - if(strpos($var_name, "$")===0) { - $html.="$var_name = "; - } elseif(strpos($parent, "->$var_name")==strlen($parent)-strlen($var_name)-2) { - $html.="->$var_name = "; - } else { - $html.="["; - if(is_numeric($var_name)) { - $html.="$var_name"; - } else { - $html.="\"$var_name\""; - } - $html.="] = "; - } - - - if(is_array($var)) { - $id=base64_encode(microtime()); - $html.=" Array {
"; - $html.="
"; - foreach ($var as $k=>$v) { - print_content($v, $k, $level+1, $parent."['$k']"); - } - $html.="
"; - for($i=0;$i<$level;$i++)$html.="     "; - $html.=" }
"; - } elseif(is_object($var)) { - $id=base64_encode(microtime()); - $html.=" Object {
"; - $html.="
"; - foreach ($var as $k=>$v) { - print_content($v, $k, $level+1, $parent."->$k"); - } - $html.="
"; - for($i=0;$i<$level;$i++)$html.="     "; - $html.=" }
"; - } else { - if (is_string($var)) { - $var=htmlentities($var, ENT_QUOTES, "UTF-8"); - } - if(is_numeric($var)) { - $html.="$var;
"; - } elseif($var=="%NULL%") { - $html.="NULL;
"; - } else { - $html.="\"$var\";
"; - } - - } -} - -function fileVersion($filename) { - //check if the file exists - if (file_exists($filename)) { - // return the time the file was last modified - echo filemtime($filename); - } else { - // let them know the file wasn't found - echo 'FileNotFound'; - } -} -?> \ No newline at end of file diff --git a/server-backup-20260518/php-source/header.php b/server-backup-20260518/php-source/header.php deleted file mode 100644 index f0b267d..0000000 --- a/server-backup-20260518/php-source/header.php +++ /dev/null @@ -1,137 +0,0 @@ - -name; - $selected_object_id = get_term_by('id', $selected_object_id, 'category')->parent; - } -} -else if (is_single()) { - $ascunde_services = true; - if (get_queried_object()->post_type == 'post') { - $taxonomy = get_the_terms(get_the_ID(),'category'); - $selected_object_type = 'category'; - $title_bread = get_queried_object()->post_title; - if ($taxonomy[1]->term_id == 1) $selected_object_id = 1; - else { - $pas = 0; - foreach ($taxonomy as $tax) { - $pas++; - if ($pas==1) { - $selected_object_id = $tax->term_id; - } - else { - $selected_department = $tax->term_id; - $selected_department_name = $tax->name; - } - } - } - } -} -else if (is_search()) { - -} -?> - - - - -<?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?> | <?php bloginfo('description'); ?> - - - - - - - - - -
-
- - - -
- - - -
- - -
- -
- -
- - - - - - -
- -
diff --git a/server-backup-20260518/php-source/home.php b/server-backup-20260518/php-source/home.php deleted file mode 100644 index b0d83cb..0000000 --- a/server-backup-20260518/php-source/home.php +++ /dev/null @@ -1,35 +0,0 @@ - - - 1, 'cat' => 1, 'post_type' => 'post', 'post_status' => 'publish' ); -$latest_case = query_posts($args); -//dv($latest_case); -if ($latest_case[0]) { - $h2 = get_post_meta($latest_case[0]->ID, 'wpcf-intro', true); - $id_featured = 0; - if (has_post_thumbnail($latest_case[0]->ID)) { - $id_featured = get_post_thumbnail_id($latest_case[0]->ID); - $imagine_featured = wp_get_attachment_image_src($id_featured, 'post-thumbnail'); - } -?> -

post_title;?>

-

- -
-
- -
-
-
- - post_content, 700));?> -
- - \ No newline at end of file diff --git a/server-backup-20260518/php-source/meniu-services.php b/server-backup-20260518/php-source/meniu-services.php deleted file mode 100644 index 1213fc3..0000000 --- a/server-backup-20260518/php-source/meniu-services.php +++ /dev/null @@ -1,20 +0,0 @@ - - - childrens as $services) { ?> - selected) echo 'class="active"'; ?>>title;?> - - - - childrens as $services) { ?> - selected) echo 'class="active"'; ?>>title;?> - - - - childrens as $services) { ?> - selected) echo 'class="active"'; ?>>title;?> - - \ No newline at end of file diff --git a/server-backup-20260518/php-source/meniu.php b/server-backup-20260518/php-source/meniu.php deleted file mode 100644 index 2cc4dbd..0000000 --- a/server-backup-20260518/php-source/meniu.php +++ /dev/null @@ -1,11 +0,0 @@ - - - $mainMenu) { ?> - selected) echo 'class="active"'; ?>>title; ?> - - \ No newline at end of file diff --git a/server-backup-20260518/php-source/page.php b/server-backup-20260518/php-source/page.php deleted file mode 100644 index 731fbcb..0000000 --- a/server-backup-20260518/php-source/page.php +++ /dev/null @@ -1,28 +0,0 @@ - -childrens[$object_id_child]->childrens) $am_submeniu = true; -} -?> - -
-

Services:

- childrens[$object_id_child]->childrens as $subMenu) { ?> - - - -
-
-
- -

- -

- - - -
-
- - \ No newline at end of file diff --git a/server-backup-20260518/php-source/single.php b/server-backup-20260518/php-source/single.php deleted file mode 100644 index ed1293c..0000000 --- a/server-backup-20260518/php-source/single.php +++ /dev/null @@ -1,52 +0,0 @@ - - -
-

Departments:

- 7, 'hide_empty' => false)); - ?> - - term_id) echo 'class="active"'; ?>>» name;?> (count; ?>) -
- -
-
- - - - -
- -

- ID, 'wpcf-intro', true); ?> -

- -
posted on:
- ID, 'wpcf-case-file', true); ?> - -

- -
- -
- Disclaimer: Iqon Romania takes all necessary measures to keep your personal information private and secure. Only authorized Iqon Romania staff, Third Party companies (i.e. service providers) staff or our business partners' authorized staff (who have contractually agreed to keep all information secure) have access to your personal information. -
- - - -
-
- - \ No newline at end of file diff --git a/server-backup-20260518/php-source/style.css b/server-backup-20260518/php-source/style.css deleted file mode 100644 index 608fae6..0000000 --- a/server-backup-20260518/php-source/style.css +++ /dev/null @@ -1,7 +0,0 @@ -/* -Theme Name: IQON -Theme URI: http://www.iqon.ro/ -Description: Tema IQON -Author: Adrian Matei -Version: 1.0 -*/ \ No newline at end of file diff --git a/server-backup-20260518/php-source/wp-config.php b/server-backup-20260518/php-source/wp-config.php deleted file mode 100644 index 1c488ec..0000000 --- a/server-backup-20260518/php-source/wp-config.php +++ /dev/null @@ -1,94 +0,0 @@ -]d5!SY8NWp%~Gs:K<)[cXJ~OnsrM?WG%P)Uex|SErakAM,`mokR@m7dM4ahr|dt[;Qlm/Bx3n]19Fl]x=f&wi)@'); -define('AUTH_SALT', ' |Y;Tf` z!ci%Fn*|^9-[)G1oXUrn9x{kz|+/=6:SWm[[=nd4zd@PSM]Lq1MyB(s'); -define('SECURE_AUTH_SALT', 'WRyBo2>VM0`nP+!j6F:(0vPo3Kk9@|Umf+kE&(*3:C#hd}Ca!@C-*ig~Nu+NezRu'); -define('LOGGED_IN_SALT', 't I&%yRf6B-b?v+9[&+dJ-O2sj!5N$&hq9VUuhVaupJx!:,PGT)e(.5BA{f,_l6x'); -define('NONCE_SALT', '8Ur,(MG kq[CU#*c>j]bCbp.A^;Mh9r^!|0R,2@`)V&HG^+JvPGIi}K+r&A,]NjP'); - -/**#@-*/ - -/** - * WordPress Database Table prefix. - * - * You can have multiple installations in one database if you give each a unique - * prefix. Only numbers, letters, and underscores please! - */ -$table_prefix = 'yo_'; - -/** - * WordPress Localized Language, defaults to English. - * - * Change this to localize WordPress. A corresponding MO file for the chosen - * language must be installed to wp-content/languages. For example, install - * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German - * language support. - */ -define('WPLANG', ''); - -/** - * For developers: WordPress debugging mode. - * - * Change this to true to enable the display of notices during development. - * It is strongly recommended that plugin and theme developers use WP_DEBUG - * in their development environments. - */ -define('WP_DEBUG', false); -ini_set('log_errors',TRUE); -ini_set('error_reporting', E_ALL); -ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); - -/* That's all, stop editing! Happy blogging. */ - -/** Absolute path to the WordPress directory. */ -if ( !defined('ABSPATH') ) - define('ABSPATH', dirname(__FILE__) . '/'); - -/** Sets up WordPress vars and included files. */ -require_once(ABSPATH . 'wp-settings.php'); diff --git a/server-backup-20260518/post-sitemap.xml b/server-backup-20260518/post-sitemap.xml deleted file mode 100644 index b4b6622..0000000 --- a/server-backup-20260518/post-sitemap.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - https://iqon.com/iqon-implements-the-vblock-platform-as-part-of-an-it-cloud-consolidation-project-unique-in-southeast-europe/ - 2012-06-01T13:59:08+00:00 - - https://iqon.com/wp-content/uploads/2012/06/Poza_website_CaseStudy.jpg - - - - https://iqon.com/iqon-implements-the-vblock-platform-as-part-of-an-it-cloud-consolidation-project-unique-in-southeast-europe/ - 2013-07-23T12:25:46+00:00 - - https://iqon.com/wp-content/uploads/2012/06/Poza_website_CaseStudy.jpg - - - - \ No newline at end of file diff --git a/server-backup-20260518/sitemap_index.xml b/server-backup-20260518/sitemap_index.xml deleted file mode 100644 index 2800a64..0000000 --- a/server-backup-20260518/sitemap_index.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - https://iqon.com/post-sitemap.xml - 2013-07-23T12:25:46+00:00 - - - https://iqon.com/page-sitemap.xml - 2013-07-25T11:20:03+00:00 - - - https://iqon.com/attachment-sitemap.xml - 2012-06-01T13:58:16+00:00 - - - https://iqon.com/category-sitemap.xml - 2013-07-23T12:25:46+00:00 - - - \ No newline at end of file diff --git a/server-backup-20260518/style.css b/server-backup-20260518/style.css deleted file mode 100644 index 608fae6..0000000 --- a/server-backup-20260518/style.css +++ /dev/null @@ -1,7 +0,0 @@ -/* -Theme Name: IQON -Theme URI: http://www.iqon.ro/ -Description: Tema IQON -Author: Adrian Matei -Version: 1.0 -*/ \ No newline at end of file diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/fonts.css b/server-backup-20260518/wp-content/themes/iqon/css/fonts/fonts.css deleted file mode 100644 index bd8ecb3..0000000 --- a/server-backup-20260518/wp-content/themes/iqon/css/fonts/fonts.css +++ /dev/null @@ -1,28 +0,0 @@ -/* Generated by Font Squirrel (http://www.fontsquirrel.com) on May 3, 2012 */ - - - -@font-face { - font-family: 'HelveticaNeueLTPro35ThRegular'; - src: url('iqon_35_thin-webfont.eot'); - src: url('iqon_35_thin-webfont.eot?#iefix') format('embedded-opentype'), - url('iqon_35_thin-webfont.woff') format('woff'), - url('iqon_35_thin-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; - -} - - - - -@font-face { - font-family: 'HelveticaNeueLTPro45LtRegular'; - src: url('iqon_45_light-webfont.eot'); - src: url('iqon_45_light-webfont.eot?#iefix') format('embedded-opentype'), - url('iqon_45_light-webfont.woff') format('woff'), - url('iqon_45_light-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; - -} \ No newline at end of file diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.eot b/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.eot deleted file mode 100644 index 28c45c1..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.eot and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.ttf b/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.ttf deleted file mode 100644 index f37f4a1..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.ttf and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.woff b/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.woff deleted file mode 100644 index d122527..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_35_thin-webfont.woff and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.eot b/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.eot deleted file mode 100644 index 18c29c4..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.eot and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.ttf b/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.ttf deleted file mode 100644 index d936fee..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.ttf and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.woff b/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.woff deleted file mode 100644 index c007a5d..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/css/fonts/iqon_45_light-webfont.woff and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/css/style.css b/server-backup-20260518/wp-content/themes/iqon/css/style.css deleted file mode 100644 index ef45e93..0000000 --- a/server-backup-20260518/wp-content/themes/iqon/css/style.css +++ /dev/null @@ -1,97 +0,0 @@ -@charset "utf-8"; -/* RESET */ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {margin:0;padding:0;} -table {border-collapse:collapse;border-spacing:0;} -fieldset,img { border:0;} -address,caption,cite,code,dfn,th,var {font-style:normal;font-weight:normal;} -ol,ul {list-style:none;} -caption,th {text-align:left;} -h1,h2,h3,h4,h5,h6 {font-size:100%;font-weight:normal;} -q:before,q:after {content:'';} -abbr,acronym {border:0;} -a {text-decoration:none;} -a:hover {text-decoration:underline;} -.clear{clear:both; margin:0 !important; padding:0 !important; border:0 none !important; line-height:0 !important; height:0 !important; font-size:0 !important} - -/* IQON */ -body {font-family: arial; font-size: 12px; line-height: 16px; color: #4c4c4c} -#line {position: absolute; width: 100%; height: 1px; background-color: #fbc100; top: 163px} -.line-homepage {top: 501px !important;} - -#wrapper {width: 960px; margin: auto auto;} -#header {width: 960px; height: 120px; position: relative;} -#logo {position: absolute; top: 16px; left: 0px;} -#language-selector {position: absolute; bottom: 0px; right: 0px; height: 20px; width: 530px; background-color: #c2c2c2; display: none;} -#menu {width: 960px; height: 40px; position: relative; background-color: #fbc100; background-image: url('/wp-content/themes/iqon/images/bg-menu.png'); background-repeat: no-repeat; background-position: top left; } -#menu a {display: block; height: 40px; line-height: 40px; float: left; padding: 0px 30px; font-family: 'HelveticaNeueLTPro45LtRegular'; font-size: 15px; color: #000000; text-decoration: none;} -#menu a:hover, #menu a.active {background-image: url('/wp-content/themes/iqon/images/bg-menu-active.png'); background-repeat: repeat-x; background-position: top left;} -#header-image-home {width: 960px; height: 335px; margin-top: 3px;} -#header-image {width: 960px; height: 190px; margin-top: 10px;} -#menu-services {margin-top: 12px;} -#menu-services a {display: block; float: left; width: 160px; height: 93px; background-color: #e5e5e5; margin-left: 10px; background-image: url('/wp-content/themes/iqon/images/submeniu-inactive.png'); background-repeat: no-repeat; background-position: top left; font-family: 'HelveticaNeueLTPro45LtRegular'; font-size: 20px; color: #000000; text-decoration: none; padding: 15px 10px 0px 10px; line-height: 20px;} -#menu-services a:hover, #menu-services a.active {background-color: #fbc100; margin-left: 10px; background-image: url('/wp-content/themes/iqon/images/submeniu-active.png'); background-repeat: no-repeat; background-position: top left; } -#linie-interior {width: 100%; height: 1px; background-color: #fbc100;} -#content {padding: 0px 10px; margin: 30px 0px; position: relative;} -#content p {padding: 7px 0px;} -#content h1 {font-family: 'HelveticaNeueLTPro45LtRegular'; font-size: 23px; color: #000000; line-height: 26px; margin-bottom: 15px;} -#content h1 a {color: #000000;} -#content h2 {font-family: 'HelveticaNeueLTPro45LtRegular'; font-size: 16px; color: #000000; line-height: 20px; margin-bottom: 30px;} -.contentleft {float: left; width: 240px; position: relative;} -.contentleft a {font-family: arial; text-decoration: none; color: #4c4c4c; line-height: 16px; height: 20px;} -.contentleft a.active {font-weight: bold; color: black;} -.submeniu {margin-bottom:10px;} -.submeniuLeft {float:left; width:16px;} -.submeniuRight {float:left; width:200px;margin-top:2px;} -.contentright {float: right; width: 700px;} -.contentright ul { list-style-image:url('/wp-content/themes/iqon/images/icon-arrow.png') !important;list-style-position:outside; } -.contentright ol { list-style-type:decimal !important;list-style-position:outside; } -.contentright ul, ol {margin:0 0 15px 25px;} -.contentright li {margin-bottom:4px;} -.contentright strong {color:#000;} -.clear {clear: both;} - -.homeleft {float: left} -.homeright {float: right; width: 700px;} -#content-footer {padding: 0px 30px; margin: 40px 0px; position: relative;} -#content-footer div.cf {float: left; width: 279px; border-right: 1px solid #b2b2b2; margin-right: 20px; position: relative; min-height: 160px;} -#content-footer div.cf h3 {font-family: 'HelveticaNeueLTPro45LtRegular'; font-size: 18px; color: #000000; text-decoration: none; margin-bottom: 20px;} -#content-footer div.cf a {font-family: arial; text-decoration: none; color: #4c4c4c; line-height: 20px; height: 20px;} -#content-footer-bottom {padding: 0px 10px; margin: 35px 0px; position: relative;font-family: arial; font-size: 11px; line-height: 18px; color: #444444} -#content-footer-bottom a {font-family: arial; font-size: 11px; line-height: 18px; color: #444444} -#logo-bottom {position: absolute; right: 0px; top: 0px;} -.iconite-contact {position: absolute; bottom: -10px; left: -2px;} -#breadcrumb {width: 950px; height: 27px; padding-left: 10px; padding-top: 3px} -#breadcrumb a {text-decoration: none; line-height: 30px; color: #4c4c4c} -#linie-punctata {line-height: 1px; height: 1px; border-top: 1px dotted black; width: 200px; margin: 5px 0px} - -#download_brosura {display: block; margin-top: 35px; margin-left: 10px;} -.container_imagine {border: 5px solid #cccccc; padding: 1px; width: 208px; height: 142px;} -#content p {font-family: arial; font-size: 12px; line-height: 16px; color: #4c4c4c} -h2 a {text-decoration: none; color: black;} -.caseStudyRow h2 {margin-bottom: 15px!important} -.caseStudyRow {margin-bottom: 40px; position: relative;} -.readCaseStudy {position: absolute; bottom: 0px; left: 240px;} -.imagine_study_interior {float: right; margin-left: 20px; margin-bottom: 20px;} -.timp {position: absolute; top: -52px; right: 10px;} -h1.single {font-size: 32px!important; line-height: 34px!important; margin-bottom: 40px!important} -h2.single {color: #4c4c4c!important;} -.download_case_file {width: 960px; height: 50px; background-color: #ededed; margin-bottom: 20px; font-size: 14px; font-style: italic; color: black; line-height: 50px;} -.download_case_file .link {margin-left: 10px; margin-top: 10px; float: left; width: 200px;} -.disclaimer {font-size: 10px; font-style: italic; margin-top: 50px; line-height: 12px;} -.rowInput {float: left; width: 350px; margin-bottom: 25px;} -.rowInput label, .rowTextarea label {display: block; font-style: italic} -.rowInput input {border: 0px; margin: 0px; height: 30px; width: 320px; border: 1px solid #dcdcdc; background-color: #ececee; color: black;} -.rowTextarea textarea {border: 0px; margin: 0px; height: 210px; width: 670px; border: 1px solid #dcdcdc; background-color: #ececee; color: black;margin-bottom: 25px;} -.submitMessage {border: 0px; margin: 0px;background-image: url('/wp-content/themes/iqon/images/send_message.png');background-repeat: no-repeat; width: 140px; height: 30px; margin-top: 0px; cursor: pointer} -#search {position: absolute; right: 0px; top: 28px;} -#search input {border: 0px; margin: 0px; background-color: white; border: 1px solid #feaf31; height: 25px; font-size: 11px; padding: 0px 10px} - -.noborder {border: 0px !important} -.lineheight14 {line-height: 14px !important} -.fontsize20 {font-size: 20px!important} -.marginbottom20 {margin-bottom: 20px!important} -.margintop10 {margin-top:10px!important} -.margintop40 {margin-top:40px!important} -.floatleft {float: left;} -.marginright20 {margin-right: 20px;} -.notCompleted {color: red!important} \ No newline at end of file diff --git a/server-backup-20260518/wp-content/themes/iqon/images/bg-menu-active.png b/server-backup-20260518/wp-content/themes/iqon/images/bg-menu-active.png deleted file mode 100644 index accd14a..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/bg-menu-active.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/bg-menu.png b/server-backup-20260518/wp-content/themes/iqon/images/bg-menu.png deleted file mode 100644 index 9d39fde..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/bg-menu.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/colt-meniu.png b/server-backup-20260518/wp-content/themes/iqon/images/colt-meniu.png deleted file mode 100644 index 83a6427..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/colt-meniu.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/download_case_study.png b/server-backup-20260518/wp-content/themes/iqon/images/download_case_study.png deleted file mode 100644 index 2f637b3..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/download_case_study.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/download_pdf.png b/server-backup-20260518/wp-content/themes/iqon/images/download_pdf.png deleted file mode 100644 index 556cf08..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/download_pdf.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/facebook.png b/server-backup-20260518/wp-content/themes/iqon/images/facebook.png deleted file mode 100644 index 2b13520..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/facebook.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/icon-arrow.png b/server-backup-20260518/wp-content/themes/iqon/images/icon-arrow.png deleted file mode 100644 index 36d7261..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/icon-arrow.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/logo-footer.png b/server-backup-20260518/wp-content/themes/iqon/images/logo-footer.png deleted file mode 100644 index f5a75a8..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/logo-footer.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/logo.png b/server-backup-20260518/wp-content/themes/iqon/images/logo.png deleted file mode 100644 index 15e55f2..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/logo.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/read.png b/server-backup-20260518/wp-content/themes/iqon/images/read.png deleted file mode 100644 index 9cd13ca..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/read.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/read_job.png b/server-backup-20260518/wp-content/themes/iqon/images/read_job.png deleted file mode 100644 index a9b028e..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/read_job.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/rss.png b/server-backup-20260518/wp-content/themes/iqon/images/rss.png deleted file mode 100644 index 0752a10..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/rss.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/send_message.png b/server-backup-20260518/wp-content/themes/iqon/images/send_message.png deleted file mode 100644 index 76f85fe..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/send_message.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/submeniu-active.png b/server-backup-20260518/wp-content/themes/iqon/images/submeniu-active.png deleted file mode 100644 index ffa0a49..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/submeniu-active.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/submeniu-inactive.png b/server-backup-20260518/wp-content/themes/iqon/images/submeniu-inactive.png deleted file mode 100644 index 435114e..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/submeniu-inactive.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/submit_cv.png b/server-backup-20260518/wp-content/themes/iqon/images/submit_cv.png deleted file mode 100644 index 46a877f..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/submit_cv.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/images/twitter.png b/server-backup-20260518/wp-content/themes/iqon/images/twitter.png deleted file mode 100644 index da6174e..0000000 Binary files a/server-backup-20260518/wp-content/themes/iqon/images/twitter.png and /dev/null differ diff --git a/server-backup-20260518/wp-content/themes/iqon/js/jquery.realperson.min.js b/server-backup-20260518/wp-content/themes/iqon/js/jquery.realperson.min.js deleted file mode 100644 index 1e78c8d..0000000 --- a/server-backup-20260518/wp-content/themes/iqon/js/jquery.realperson.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/* http://keith-wood.name/realPerson.html - Real Person Form Submission for jQuery v1.0.1. - Written by Keith Wood (kwood{at}iinet.com.au) June 2009. - Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and - MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. - Please attribute the author if you use it. */ -(function($){var f='realPerson';function RealPerson(){this._defaults={length:6,includeNumbers:false,regenerate:'Click to change',hashName:'{n}Hash'}}var g='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';var h=[[' * ',' * * ',' * * ',' * * ',' ***** ','* *','* *'],['****** ','* *','* *','****** ','* *','* *','****** '],[' ***** ','* *','* ','* ','* ','* *',' ***** '],['****** ','* *','* *','* *','* *','* *','****** '],['*******','* ','* ','**** ','* ','* ','*******'],['*******','* ','* ','**** ','* ','* ','* '],[' ***** ','* *','* ','* ','* ***','* *',' ***** '],['* *','* *','* *','*******','* *','* *','* *'],['*******',' * ',' * ',' * ',' * ',' * ','*******'],[' *',' *',' *',' *',' *','* *',' ***** '],['* *','* ** ','* ** ','** ','* ** ','* ** ','* *'],['* ','* ','* ','* ','* ','* ','*******'],['* *','** **','* * * *','* * *','* *','* *','* *'],['* *','** *','* * *','* * *','* * *','* **','* *'],[' ***** ','* *','* *','* *','* *','* *',' ***** '],['****** ','* *','* *','****** ','* ','* ','* '],[' ***** ','* *','* *','* *','* * *','* * ',' **** *'],['****** ','* *','* *','****** ','* * ','* * ','* *'],[' ***** ','* *','* ',' ***** ',' *','* *',' ***** '],['*******',' * ',' * ',' * ',' * ',' * ',' * '],['* *','* *','* *','* *','* *','* *',' ***** '],['* *','* *',' * * ',' * * ',' * * ',' * * ',' * '],['* *','* *','* *','* * *','* * * *','** **','* *'],['* *',' * * ',' * * ',' * ',' * * ',' * * ','* *'],['* *',' * * ',' * * ',' * ',' * ',' * ',' * '],['*******',' * ',' * ',' * ',' * ',' * ','*******'],[' *** ',' * * ','* *','* *','* *',' * * ',' *** '],[' * ',' ** ',' * * ',' * ',' * ',' * ','*******'],[' ***** ','* *',' *',' * ',' ** ',' ** ','*******'],[' ***** ','* *',' *',' ** ',' *','* *',' ***** '],[' * ',' ** ',' * * ',' * * ','*******',' * ',' * '],['*******','* ','****** ',' *',' *','* *',' ***** '],[' **** ',' * ','* ','****** ','* *','* *',' ***** '],['*******',' * ',' * ',' * ',' * ',' * ','* '],[' ***** ','* *','* *',' ***** ','* *','* *',' ***** '],[' ***** ','* *','* *',' ******',' *',' * ',' **** ']];$.extend(RealPerson.prototype,{markerClassName:'hasRealPerson',setDefaults:function(a){$.extend(this._defaults,a||{});return this},_attachRealPerson:function(a,b){a=$(a);if(a.hasClass(this.markerClassName)){return}a.addClass(this.markerClassName);var c={settings:$.extend({},this._defaults)};$.data(a[0],f,c);this._changeRealPerson(a,b)},_changeRealPerson:function(a,b,c){a=$(a);if(!a.hasClass(this.markerClassName)){return}b=b||{};if(typeof b=='string'){var d=b;b={};b[d]=c}var e=$.data(a[0],f);$.extend(e.settings,b);a.prevAll('.realperson-challenge,.realperson-hash').remove().end().before(this._generateHTML(a,e))},_generateHTML:function(a,b){var c='';for(var i=0;i
';return d},_destroyRealPerson:function(a){a=$(a);if(!a.hasClass(this.markerClassName)){return}a.removeClass(this.markerClassName).prevAll('.realperson-challenge,.realperson-hash').remove();$.removeData(a[0],f)},_hash:function(a){var b=5381;for(var i=0;i -Snapshot-Content-Location: https://server71.hosting.reg.ru:1500/ispmgr#/list?elid=iqon.com&elname=iqon.com&plid=%2Fwww&tab_parent_id=6&p_num=1&func=file&tab_id=6 -Subject: server71.hosting.reg.ru:1500 -Date: Mon, 23 Feb 2026 21:39:28 +0300 -MIME-Version: 1.0 -Content-Type: multipart/related; - type="text/html"; - boundary="----MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d----" - - -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/html -Content-ID: -Content-Transfer-Encoding: quoted-printable -Content-Location: https://server71.hosting.reg.ru:1500/ispmgr#/list?elid=iqon.com&elname=iqon.com&plid=%2Fwww&tab_parent_id=6&p_num=1&func=file&tab_id=6 - - - - -server71.hosting.reg.ru:1500 - - - - - - - - -
=D0=92=D0=B0=D1=88 =D0=B1=D1=80=D0=B0=D1=83=D0=B7=D0=B5=D1=80 =D1=83=D1= -=81=D1=82=D0=B0=D1=80=D0=B5=D0=BB, =D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0= -=B5=D0=B9=D1=81 =D0=BC=D0=BE=D0=B6=D0=B5=D1=82 =D1=80=D0=B0=D0=B1=D0=BE=D1= -=82=D0=B0=D1=82=D1=8C =D0=BD=D0=B5=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1= -=82=D0=BD=D0=BE. =D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D0=B5 =D0=B8=D0= -=BB=D0=B8 =D1=81=D0=BC=D0=B5=D0=BD=D0=B8=D1=82=D0=B5 =D0=B1=D1=80=D0=B0=D1= -=83=D0=B7=D0=B5=D1=80.
-
<= -/isp-narrow-banner>
3D"Brand<= -!---->
=D0=9F=D0=BE=D1=87=D1=82=D0=B0
PHP
=D0=A1=D0=B0=D0=B9=D1=82=D1= -=8B
FTP-=D0=BF=D0=BE=D0=BB= -=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D0=B8= -
<= -/div>
=D0=9C=D0=B5=D0=BD=D0=B5= -=D0=B4=D0=B6=D0=B5=D1=80 =D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2
= -
<= -!---->
= -
=20 - =D0=9F=D0=B8=D1=81=D1=8C=D0=BC=D0=BE =D0=B2 =D0=BF=D0=BE=D0=B4=D0=B4=D0= -=B5=D1=80=D0=B6=D0=BA=D1=83 -
<= -isp-list _nghost-ng-c3993565658=3D"" class=3D"ng-star-inserted">
<= -path fill=3D"var(--isp-icons-fill-color, #FFF)" d=3D"M0 0h15v15H0z">= -= -= -= -<= -path fill=3D"var(--isp-icons-fill-color, #FFF)" d=3D"M0 0h15v15H0z">= -<= -/path>= -<= -clipPath id=3D"m-equipment_clip0_7759_308">= -= -<= -clipPath id=3D"m-nolicense_clip0_1341_164">,<= -clipPath id=3D"o-basket_clip0_7887_51">,,= -<= -/path><= -/path><= -/path><= -/path><= -clipPath id=3D"p-like_clip1_7759_622">= -<= -/path>= -<= -path fill=3D"var(--isp-icons-fill-color, #FFF)" d=3D"M0 0h15v15H0z">= -<= -/clipPath><= -/clipPath><= -/mask>= -= -<= -/clipPath><= -/clipPath><= -/path><= -clipPath id=3D"t-extension_clip0_7759_38">= -<= -/clipPath><= -path fill=3D"var(--isp-icons-fill-color, #FFF)" d=3D"M0 0h20v20H0z">= -<= -/clipPath>= -<= -/path>= -= -= -= -<= -/path>= -<= -path fill=3D"var(--isp-icons-main-color, #344A5E)" fill-rule=3D"evenodd" d= -=3D"M5.294 18c.975 0 1.765-.815 1.765-1.821s-.79-1.822-1.765-1.822c-.975 0-= -1.765.816-1.765 1.822 0 1.006.79 1.821 1.765 1.821z" clip-rule=3D"evenodd">= -<= -/g><= -g clip-path=3D"url(#d-ftp-user_clip0_7759_752)"><= -/symbol>= -= -= -<= -/path><= -/path><= -path fill=3D"var(--isp-icons-fill-color, #FFF)" d=3D"M0 12a1 1 0 011-1h1a1 = -1 0 011 1v.5a1 1 0 01-1 1H1a1 1 0 01-1-1V12z">= -= -<= -/path><= -path fill=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M10.146 3.146L8 5.2= -93V.5a.5.5 0 00-1 0v4.793L4.854 3.146a.5.5 0 10-.708.708l3 3a.5.5 0 00.708 = -0l3-3a.5.5 0 00-.708-.708zM4.146 11.146a.5.5 0 00.708.708L7 9.707V14.5a.5.5= - 0 001 0V9.707l2.146 2.147a.5.5 0 00.708-.708l-3-3a.5.5 0 00-.708 0l-3 3z">= -= -= -<= -path fill=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M8.5 7v4a.5.5 0 010= - 1h-1a1 1 0 01-1-1V7a.5.5 0 010-1h1a1 1 0 011 1zM7.5 5a1 1 0 100-2 1 1 0 00= -0 2z"><= -/path>= -<= -/circle>= -<= -rect width=3D"5.84" height=3D".378" x=3D"5.716" y=3D"5.309" fill=3D"var(--i= -sp-icons-fill-color, #FFF)" stroke=3D"var(--isp-icons-main-color, #344A5E)"= - stroke-width=3D".378" rx=3D".189">= -<= -path fill=3D"var(--isp-icons-main-color, #344A5E)" fill-rule=3D"evenodd" d= -=3D"M13.334 11.111h2.222v6.667l-1.111-1.111-1.111 1.11v-6.666z" clip-rule= -=3D"evenodd">= -= -= -= -= -= -<= -/symbol>= -<= -/path><= -/path><= -/path><= -/path>= -= -= -= -<= -symbol id=3D"m-log-setting" viewBox=3D"0 0 15 15" fill=3D"none">= -<= -path fill=3D"var(--isp-icons-main-color, #344A5E)" fill-rule=3D"evenodd" d= -=3D"M1.5 1A1.5 1.5 0 000 2.5v10A1.5 1.5 0 001.5 14h12a1.5 1.5 0 001.5-1.5V4= -.009 2.5A1.5 1.5 0 0013.5 1h-12zM14 3.743V2.5a.5.5 0 00-.5-.5h-12a.5.5 0 00= --.5.5v1.243l6.21 4.435a.5.5 0 00.58 0L14 3.743zM1 4.972V12.5a.5.5 0 00.5.5h= -12a.5.5 0 00.5-.5V4.972l-5.628 4.02a1.5 1.5 0 01-1.744 0L1 4.972z" clip-rul= -e=3D"evenodd">= -= -= -= -= -<= -/path><= -path stroke=3D"var(--isp-icons-main-color, #344A5E)" stroke-linecap=3D"roun= -d" d=3D"M2.5 11.5h1"><= -path fill=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M13.428 1.259c.28-.= -138.616 0 .719.294l.631 1.81a.479.479 0 01-.898.334l-.705-1.783a.518.518 0 = -01.253-.655z"><= -/symbol>= -<= -/symbol><= -/path><= -/g>= -<= -/symbol>= -= -= -<= -/path><= -/path>= -= -<= -/path><= -/path>= -<= -g clip-path=3D"url(#mbar-five_clip0_1341_175)"><= -/symbol>= -<= -symbol id=3D"p-aps" viewBox=3D"0 0 16 16" fill=3D"none">= -<= -/path><= -g mask=3D"url(#p-bill-domainlimit_a)"><= -rect width=3D"11" height=3D"15" x=3D"15.5" y=3D"2.5" stroke=3D"var(--isp-ic= -ons-main-color, #344A5E)" rx=3D"1.5" transform=3D"rotate(90 15.5 2.5)">= -= -<= -/g><= -path stroke=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M12 4.5H1.5a1 1 0= - 00-1 1v4a1 1 0 001 1H12a1 1 0 001-1v-4a1 1 0 00-1-1z"><= -symbol id=3D"p-bill-ncpu" viewBox=3D"0 0 16 16" fill=3D"none"><= -/path>= -= -= -= -<= -/symbol><= -/path><= -path fill=3D"#FC6" fill-rule=3D"evenodd" d=3D"M0 4a1 1 0 011-1h1l.205-1.172= -A1 1 0 013.19 1h3.62a1 1 0 01.985.828L8 3h6a1 1 0 011 1v9a1 1 0 01-1 1H1a1 = -1 0 01-1-1V4z" clip-rule=3D"evenodd"><= -path stroke=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M14.711 6.556l-3.= -195 2.256v3.938l3.238 1.829a.5.5 0 00.746-.436V6.965a.5.5 0 00-.789-.409z">= -= -<= -/path><= -path fill=3D"var(--isp-icons-fill-color, #FFF)" stroke=3D"var(--isp-icons-d= -anger-color, #E44592)" d=3D"M2 3.382h12a1.5 1.5 0 011.5 1.5v7.289a1.5 1.5 0= - 01-1.5 1.5H2a1.5 1.5 0 01-1.5-1.5V4.88a1.5 1.5 0 011.5-1.5z"><= -/symbol><= -g clip-path=3D"url(#p-email_clip0_7759_669)">= -<= -/symbol><= -path fill=3D"#FCFCFC" d=3D"M4 7.5a.5.5 0 01.5-.5h6a.5.5 0 010 1h-6a.5.5 0 0= -1-.5-.5zM4 9.5a.5.5 0 01.5-.5h6a.5.5 0 010 1h-6a.5.5 0 01-.5-.5zM4.5 11a.5.= -5 0 000 1h4a.5.5 0 000-1h-4z"><= -path fill=3D"#FCFCFC" fill-rule=3D"evenodd" d=3D"M10.854 6.146a.5.5 0 00-.7= -08 0L9.071 7.222A6.332 6.332 0 007.501 7c-1.507 0-3.736.766-5.303 2.298a.28= -2.282 0 000 .404c.783.765 1.73 1.34 2.67 1.722l-.722.722a.5.5 0 00.708.708l= -1.075-1.076a6.374 6.374 0 001.6.222c1.507-.01 3.717-.776 5.273-2.298a.282.2= -82 0 000-.404c-.782-.765-1.73-1.34-2.67-1.722l.722-.722a.5.5 0 000-.708zM9.= -8 10.48a7.63 7.63 0 001.708-.98 7.631 7.631 0 00-1.708-.978c.128.3.199.632.= -199.979s-.07.678-.199.979zM5.2 8.52A7.631 7.631 0 003.49 9.5a7.632 7.632 0 = -001.708.979A2.492 2.492 0 015 9.5c0-.347.07-.678.199-.979zm.947 1.626a1.5 1= -.5 0 012-2l-2 2zm.707.707l2-2A1.5 1.5 0 017.52 11l-.019-.001m-.02 0a1.493 1= -.493 0 01-.627-.146L7.48 11z" clip-rule=3D"evenodd"><= -/path>= -<= -rect width=3D"8" height=3D"8" x=3D"7" y=3D"6" fill=3D"#E50026" rx=3D"1">= -= -= -<= -path fill=3D"var(--isp-icons-success-color, #30BA9A)" fill-rule=3D"evenodd"= - d=3D"M2 6.5l3.227-3.116a.576.576 0 01.795 0 .53.53 0 010 .767L3.59 6.501l2= -.432 2.348a.53.53 0 010 .767.576.576 0 01-.795 0L2 6.5zM14.249 6.5l-3.227 3= -.116a.576.576 0 01-.795 0 .53.53 0 010-.767L12.66 6.5l-2.432-2.349a.53.53 0= - 010-.767.576.576 0 01.795 0L14.249 6.5z" clip-rule=3D"evenodd"><= -/path><= -/rect>= -<= -/path><= -path fill=3D"var(--isp-icons-danger-color, #E44592)" fill-rule=3D"evenodd" = -d=3D"M1.833 14a.5.5 0 01.5-.5h11.334a.5.5 0 110 1H2.333a.5.5 0 01-.5-.5z" c= -lip-rule=3D"evenodd"><= -/symbol>= -<= -/g>= -<= -/g><= -/g><= -g clip-path=3D"url(#p-lt3_grey_clip0_1266_52)">= -<= -/path><= -g clip-path=3D"url(#p-pdf_clip0_7759_445)"><= -circle cx=3D"5" cy=3D"6" r=3D"1.5" stroke=3D"var(--isp-icons-main-color, #3= -44A5E)">= -= -<= -/path><= -/symbol>= -= -<= -symbol id=3D"p-ror" viewBox=3D"0 0 16 16" fill=3D"none"><= -/g><= -/path><= -/g><= -path fill=3D"#1FAD66" fill-rule=3D"evenodd" d=3D"M14 3.3a.823.823 0 00-.753= --.811c-.514-.048-.919-.243-1.206-.53-.287-.287-.481-.692-.53-1.206A.823.823= - 0 0010.7 0H4.3a.823.823 0 00-.812.754c-.048.513-.242.918-.53 1.205-.286.28= -7-.691.482-1.205.53A.823.823 0 001 3.3V7c0 2.496 1.379 4.39 2.802 5.68a13.8= -36 13.836 0 003.38 2.226.76.76 0 00.635 0c.43-.195 1.956-.934 3.38-2.225C12= -.622 11.39 14 9.496 14 7V3.3zm-2.666-.634c.435.436 1.01.71 1.666.8V7c0 2.1-= -1.157 3.746-2.474 4.94A12.894 12.894 0 017.5 13.95c-.49-.23-1.803-.902-3.02= -6-2.011C3.157 10.746 2 9.1 2 7V3.467c.657-.092 1.23-.365 1.666-.8.435-.436.= -709-1.01.8-1.666h6.068c.09.656.365 1.23.8 1.665z" clip-rule=3D"evenodd"><= -g clip-path=3D"url(#p-user_clip0_7759_650)"><= -symbol id=3D"plus_s" viewBox=3D"0 0 15 15" fill=3D"none"><= -path fill=3D"#909393" d=3D"M22.51 14.712a1.006 1.006 0 01.144-.296.514.514 = -0 01.109-.115l.026-.017a.387.387 0 01.091-.043.31.31 0 01.093-.016.311.311 = -0 01.12.026c.022.009.043.02.063.033.01.006.019.011.028.018a.514.514 0 01.13= -.143c.05.075.092.165.122.267l-.463-2.12-.462 2.12z">= -= -<= -/path><= -path fill=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M9.5 6h-2a.5.5 0 11= -0-1h2a.5.5 0 110 1zM9.5 10a.5.5 0 00.003-1H11.5a.5.5 0 000-1h-2a.5.5 0 00-.= -003 1H7.5a.5.5 0 000 1h2z"><= -circle cx=3D"14" cy=3D"15" r=3D"1" fill=3D"var(--isp-icons-main-color, #344= -A5E)">= -= -<= -/circle><= -/path>= -= -<= -g clip-path=3D"url(#t-cloudflare-settings_clip0_7759_333)">= -= -<= -/symbol>= -<= -/path>= -= -<= -/path>= -<= -symbol id=3D"t-entrance" viewBox=3D"0 0 20 20" fill=3D"none"><= -/rect><= -/path>= -= -= -= -<= -/path>= -<= -symbol id=3D"t-goisp" viewBox=3D"0 0 24 24" fill=3D"none">= -= -<= -path fill=3D"var(--isp-icons-fill-color, #FFF)" fill-rule=3D"evenodd" strok= -e=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M12 13.636a1.636 1.636 0 10= -0-3.273 1.636 1.636 0 000 3.273z" clip-rule=3D"evenodd"><= -/path>= -<= -path fill=3D"var(--isp-icons-main-color, #344A5E)" fill-rule=3D"evenodd" d= -=3D"M11 13.411C11 10.964 13.025 9 15.5 9s4.5 1.964 4.5 4.411c0 1.22-.557 2.= -542-1.34 3.663-.786 1.125-1.846 2.118-2.94 2.653l-.22.107-.22-.107c-1.094-.= -535-2.154-1.527-2.94-2.653-.783-1.122-1.34-2.443-1.34-3.663zM15.5 10c-1.944= - 0-3.5 1.538-3.5 3.411 0 .94.443 2.063 1.16 3.09.657.941 1.504 1.745 2.34 2= -.212.836-.467 1.683-1.27 2.34-2.211.717-1.028 1.16-2.15 1.16-3.09C19 11.537= - 17.444 10 15.5 10z" clip-rule=3D"evenodd"><= -rect width=3D"4" height=3D"2.914" x=3D"20" y=3D"18.686" fill=3D"var(--isp-i= -cons-main-color, #344A5E)" rx=3D"1">= -<= -rect width=3D".884" height=3D"1.66" fill=3D"var(--isp-icons-fill-color, #FF= -F)" stroke=3D"var(--isp-icons-main-color, #344A5E)" rx=3D".442" transform= -=3D"matrix(.7355 .67753 -.68645 .72718 8.856 10.888)"><= -/rect><= -/path>= -<= -symbol id=3D"t-monadd" viewBox=3D"0 0 20 20" fill=3D"none"><= -rect width=3D"11" height=3D"11" fill=3D"#1FAD66" rx=3D"5.5" transform=3D"ma= -trix(1 0 0 -1 9 20)"><= -symbol id=3D"t-mysql" viewBox=3D"0 0 20 20" fill=3D"none"><= -/path><= -/path>= -= -= -= -= -= -<= -path fill=3D"var(--isp-icons-main-color, #344A5E)" fill-rule=3D"evenodd" d= -=3D"M12 11.414V13h.5a.5.5 0 110 1h-6a.5.5 0 110-1H7v-1.586c0-.397.158-.779.= -44-1.06l.5-.5a.5.5 0 000-.707l-.5-.5A1.5 1.5 0 017 7.586V6h-.5a.5.5 0 010-1= -h6a.5.5 0 110 1H12v1.586a1.5 1.5 0 01-.44 1.06l-.5.5a.5.5 0 000 .708l.5.5a1= -.5 1.5 0 01.44 1.06zM8 6h3v1.586a.5.5 0 01-.147.353l-.5.5a1.5 1.5 0 000 2.1= -22l.5.5a.5.5 0 01.147.353V13H8v-1.586a.5.5 0 01.146-.353l.5-.5a1.5 1.5 0 00= -0-2.122l-.5-.5A.5.5 0 018 7.586V6z" clip-rule=3D"evenodd">= -<= -/path><= -symbol id=3D"t-softaculous" viewBox=3D"0 0 20 20" fill=3D"none">= -= -<= -g clip-path=3D"url(#t-subscriber_clip0_7759_288)">= -<= -g clip-path=3D"url(#t-toarchive_clip0_7759_40)">= -<= -/symbol><= -g clip-path=3D"url(#t-virusdie-settings_clip0_7759_317)">= -= -<= -/symbol><= -/path><= -path fill=3D"var(--isp-icons-main-color, #344A5E)" d=3D"M2.5 3a.5.5 0 100-1= - .5.5 0 000 1zM5 2.5a.5.5 0 11-1 0 .5.5 0 011 0zM6.5 3a.5.5 0 100-1 .5.5 0 = -000 1z"><= -/path><= -/path><= -/path><= -path fill=3D"var(--isp-icons-main-color, #344A5E)" fill-rule=3D"evenodd" d= -=3D"M4.017 6.15a.17.17 0 110-.342.17.17 0 010 .342zm-.777-.17a.777.777 0 10= -1.554 0 .777.777 0 00-1.554 0z" clip-rule=3D"evenodd"><= -/path>
<= -/isp-toast> - - - - - - - - - - - - - - - -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: image/svg+xml -Content-Transfer-Encoding: quoted-printable -Content-Location: https://server71.hosting.reg.ru:1500/manimg/dragon/local_d346c906ec11/small-logo-ispmgr.svg - - - -=0A -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: image/svg+xml -Content-Transfer-Encoding: quoted-printable -Content-Location: https://server71.hosting.reg.ru:1500/manimg/dragon/local_d346c906ec11/logo-ispmgr.svg - - - - - - - - - - - - - -=0A -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: https://server71.hosting.reg.ru:1500/manimg/dragon/styles-NY4AGU3H.css - -@charset "utf-8"; - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: normal; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-C= -yrrillic-Ext.woff2") format("woff2"), url("./media/Ubuntu-Light-Cyrrillic-E= -xt.woff") format("woff"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4, U+= -2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: normal; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-C= -yrrillic.woff2") format("woff2"), url("./media/Ubuntu-Light-Cyrrillic.woff"= -) format("woff"); unicode-range: U+400-45F, U+490-491, U+4B0-4B1, U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: normal; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-L= -atin-Ext.woff2") format("woff2"), url("./media/Ubuntu-Light-Latin-Ext.woff"= -) format("woff"); unicode-range: U+100-24F, U+259, U+1E00-1EFF, U+2020, U+2= -0A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: normal; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-L= -atin.woff2") format("woff2"), url("./media/Ubuntu-Light-Latin.woff") format= -("woff"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA,= - U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215= -, U+FEFF, U+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: italic; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-I= -talic-Cyrrillic-Ext.woff2") format("woff2"), url("./media/Ubuntu-Light-Ital= -ic-Cyrrillic-Ext.woff") format("woff"); unicode-range: U+460-52F, U+1C80-1C= -88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: italic; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-I= -talic-Cyrrillic.woff2") format("woff2"), url("./media/Ubuntu-Light-Italic-C= -yrrillic.woff") format("woff"); unicode-range: U+400-45F, U+490-491, U+4B0-= -4B1, U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: italic; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-I= -talic-Latin-Ext.woff2") format("woff2"), url("./media/Ubuntu-Light-Italic-L= -atin-Ext.woff") format("woff"); unicode-range: U+100-24F, U+259, U+1E00-1EF= -F, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 300; font-style: italic; src= -: local("Ubuntu Light"), local("Ubuntu-Light"), url("./media/Ubuntu-Light-I= -talic-Latin.woff2") format("woff2"), url("./media/Ubuntu-Light-Italic-Latin= -.woff") format("woff"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC,= - U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, = -U+2212, U+2215, U+FEFF, U+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: normal; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Cyrillic-Ext.woff2") format(= -"woff2"), url("./media/Ubuntu-Regular-Cyrillic-Ext.woff") format("woff"); u= -nicode-range: U+460-52F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+F= -E2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: normal; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Cyrillic.woff2") format("wof= -f2"), url("./media/Ubuntu-Regular-Cyrillic.woff") format("woff"); unicode-r= -ange: U+400-45F, U+490-491, U+4B0-4B1, U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: normal; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Latin-Ext.woff2") format("wo= -ff2"), url("./media/Ubuntu-Regular-Latin-Ext.woff") format("woff"); unicode= --range: U+100-24F, U+259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+= -2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: normal; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Latin.woff2") format("woff2"= -), url("./media/Ubuntu-Regular-Latin.woff") format("woff"); unicode-range: = -U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+20= -74, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: italic; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Italic-Cyrillic-Ext.woff2") = -format("woff2"), url("./media/Ubuntu-Regular-Italic-Cyrillic-Ext.woff") for= -mat("woff"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+= -A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: italic; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Italic-Cyrillic.woff2") form= -at("woff2"), url("./media/Ubuntu-Regular-Italic-Cyrillic.woff") format("wof= -f"); unicode-range: U+400-45F, U+490-491, U+4B0-4B1, U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: italic; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Italic-Latin-Ext.woff2") for= -mat("woff2"), url("./media/Ubuntu-Regular-Italic-Latin-Ext.woff") format("w= -off"); unicode-range: U+100-24F, U+259, U+1E00-1EFF, U+2020, U+20A0-20AB, U= -+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 400; font-style: italic; src= -: local("Ubuntu"), url("./media/Ubuntu-Regular-Italic-Latin.woff2") format(= -"woff2"), url("./media/Ubuntu-Regular-Italic-Latin.woff") format("woff"); u= -nicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2= -000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U= -+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: normal; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Cyrillic-Ext.woff2") format("woff2"), url("./media/Ubuntu-Medium-Cyrillic= --Ext.woff") format("woff"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4, = -U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: normal; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Cyrillic.woff2") format("woff2"), url("./media/Ubuntu-Medium-Cyrillic.wof= -f") format("woff"); unicode-range: U+400-45F, U+490-491, U+4B0-4B1, U+2116;= - } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: normal; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Latin-Ext.woff2") format("woff2"), url("./media/Ubuntu-Medium-Latin-Ext.w= -off") format("woff"); unicode-range: U+100-24F, U+259, U+1E00-1EFF, U+2020,= - U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: normal; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Latin.woff2") format("woff2"), url("./media/Ubuntu-Medium-Latin.woff") fo= -rmat("woff"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+= -2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+= -2215, U+FEFF, U+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: italic; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Italic-Cyrillic-Ext.woff2") format("woff2"), url("./media/Ubuntu-Medium-I= -talic-Cyrillic-Ext.woff") format("woff"); unicode-range: U+460-52F, U+1C80-= -1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: italic; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Italic-Cyrillic.woff2") format("woff2"), url("./media/Ubuntu-Medium-Itali= -c-Cyrillic.woff") format("woff"); unicode-range: U+400-45F, U+490-491, U+4B= -0-4B1, U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: italic; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Italic-Latin-Ext.woff2") format("woff2"), url("./media/Ubuntu-Medium-Ital= -ic-Latin-Ext.woff") format("woff"); unicode-range: U+100-24F, U+259, U+1E00= --1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; = -} - -@font-face { font-family: Ubuntu; font-weight: 500; font-style: italic; src= -: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("./media/Ubuntu-Mediu= -m-Italic-Latin.woff2") format("woff2"), url("./media/Ubuntu-Medium-Italic-L= -atin.woff") format("woff"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-= -2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+21= -93, U+2212, U+2215, U+FEFF, U+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: normal; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Cyri= -llic-Ext.woff2") format("woff2"), url("./media/Ubuntu-Bold-Cyrillic-Ext.wof= -f") format("woff"); unicode-range: U+460-52F, U+1C80-1C88, U+20B4, U+2DE0-2= -DFF, U+A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: normal; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Cyri= -llic.woff2") format("woff2"), url("./media/Ubuntu-Bold-Cyrillic.woff") form= -at("woff"); unicode-range: U+400-45F, U+490-491, U+4B0-4B1, U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: normal; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Lati= -n-Ext.woff2") format("woff2"), url("./media/Ubuntu-Bold-Latin-Ext.woff") fo= -rmat("woff"); unicode-range: U+100-24F, U+259, U+1E00-1EFF, U+2020, U+20A0-= -20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: normal; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Lati= -n.woff2") format("woff2"), url("./media/Ubuntu-Bold-Latin.woff") format("wo= -ff"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2= -DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+= -FEFF, U+FFFD; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: italic; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Ital= -ic-Cyrillic-Ext.woff") format("woff2"), url("./media/Ubuntu-Bold-Italic-Cyr= -illic-Ext.woff") format("woff"); unicode-range: U+460-52F, U+1C80-1C88, U+2= -0B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: italic; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Ital= -ic-Cyrillic.woff2") format("woff2"), url("./media/Ubuntu-Bold-Italic-Cyrill= -ic.woff2") format("woff"); unicode-range: U+400-45F, U+490-491, U+4B0-4B1, = -U+2116; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: italic; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Ital= -ic-Latin-Ext.woff2") format("woff2"), url("./media/Ubuntu-Bold-Italic-Latin= --Ext.woff") format("woff"); unicode-range: U+100-24F, U+259, U+1E00-1EFF, U= -+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } - -@font-face { font-family: Ubuntu; font-weight: 700; font-style: italic; src= -: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("./media/Ubuntu-Bold-Ital= -ic-Latin.woff2") format("woff2"), url("./media/Ubuntu-Bold-Italic-Latin.wof= -f") format("woff"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2= -C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+22= -12, U+2215, U+FEFF, U+FFFD; } - -.mat-ripple { overflow: hidden; position: relative; } - -.mat-ripple:not(:empty) { transform: translateZ(0px); } - -.mat-ripple.mat-ripple-unbounded { overflow: visible; } - -.mat-ripple-element { position: absolute; border-radius: 50%; pointer-event= -s: none; transition: opacity, transform cubic-bezier(0, 0, 0.2, 1); transfo= -rm: scale3d(0, 0, 0); background-color: var(--mat-ripple-color, rgba(0, 0, = -0, .1)); } - -.cdk-high-contrast-active .mat-ripple-element, .cdk-drag-preview .mat-rippl= -e-element, .cdk-drag-placeholder .mat-ripple-element { display: none; } - -.cdk-visually-hidden { border: 0px; clip: rect(0px, 0px, 0px, 0px); height:= - 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; wid= -th: 1px; white-space: nowrap; outline: 0px; appearance: none; left: 0px; } - -[dir=3D"rtl"] .cdk-visually-hidden { left: auto; right: 0px; } - -.cdk-overlay-container, .cdk-global-overlay-wrapper { pointer-events: none;= - top: 0px; left: 0px; height: 100%; width: 100%; } - -.cdk-overlay-container { position: fixed; z-index: 1000; } - -.cdk-overlay-container:empty { display: none; } - -.cdk-global-overlay-wrapper { display: flex; position: absolute; z-index: 1= -000; } - -.cdk-overlay-pane { position: absolute; pointer-events: auto; box-sizing: b= -order-box; z-index: 1000; display: flex; max-width: 100%; max-height: 100%;= - } - -.cdk-overlay-backdrop { position: absolute; inset: 0px; z-index: 1000; poin= -ter-events: auto; -webkit-tap-highlight-color: transparent; transition: opa= -city 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); opacity: 0; } - -.cdk-overlay-backdrop.cdk-overlay-backdrop-showing { opacity: 1; } - -.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showin= -g { opacity: 0.6; } - -.cdk-overlay-dark-backdrop { background: rgba(0, 0, 0, 0.32); } - -.cdk-overlay-transparent-backdrop { transition: visibility 1ms linear, opac= -ity 1ms linear; visibility: hidden; opacity: 1; } - -.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing { opacity: 0= -; visibility: visible; } - -.cdk-overlay-backdrop-noop-animation { transition: none; } - -.cdk-overlay-connected-position-bounding-box { position: absolute; z-index:= - 1000; display: flex; flex-direction: column; min-width: 1px; min-height: 1= -px; } - -.cdk-global-scrollblock { position: fixed; width: 100%; overflow-y: scroll;= - } - -textarea.cdk-textarea-autosize { resize: none; } - -textarea.cdk-textarea-autosize-measuring { padding: 2px 0px !important; box= --sizing: content-box !important; height: auto !important; overflow: hidden = -!important; } - -textarea.cdk-textarea-autosize-measuring-firefox { padding: 2px 0px !import= -ant; box-sizing: content-box !important; height: 0px !important; } - -@keyframes cdk-text-field-autofill-start {=20 -} - -@keyframes cdk-text-field-autofill-end {=20 -} - -.cdk-text-field-autofill-monitored:-webkit-autofill { animation: 0s ease 1m= -s 1 normal none running cdk-text-field-autofill-start; } - -.cdk-text-field-autofill-monitored:not(:-webkit-autofill) { animation: 0s e= -ase 1ms 1 normal none running cdk-text-field-autofill-end; } - -.mat-focus-indicator { position: relative; } - -.mat-focus-indicator::before { inset: 0px; position: absolute; box-sizing: = -border-box; pointer-events: none; display: var(--mat-focus-indicator-displa= -y, none); border: var(--mat-focus-indicator-border-width, 3px) var(--mat-fo= -cus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, = -transparent); border-radius: var(--mat-focus-indicator-border-radius, 4px);= - } - -.mat-focus-indicator:focus::before { content: ""; } - -.cdk-high-contrast-active { --mat-focus-indicator-display: block; } - -.mat-mdc-focus-indicator { position: relative; } - -.mat-mdc-focus-indicator::before { inset: 0px; position: absolute; box-sizi= -ng: border-box; pointer-events: none; display: var(--mat-mdc-focus-indicato= -r-display, none); border: var(--mat-mdc-focus-indicator-border-width, 3px) = -var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indi= -cator-border-color, transparent); border-radius: var(--mat-mdc-focus-indica= -tor-border-radius, 4px); } - -.mat-mdc-focus-indicator:focus::before { content: ""; } - -.cdk-high-contrast-active { --mat-mdc-focus-indicator-display: block; } - -.mat-app-background { background-color: var(--mat-app-background-color, var= -(--mat-app-background, transparent)); color: var(--mat-app-text-color, var(= ---mat-app-on-background, inherit)); } - -.mat-elevation-z0, .mat-mdc-elevation-specific.mat-elevation-z0 { box-shado= -w: var(--mat-app-elevation-shadow-level-0, none); } - -.mat-elevation-z1, .mat-mdc-elevation-specific.mat-elevation-z1 { box-shado= -w: var(--mat-app-elevation-shadow-level-1, none); } - -.mat-elevation-z2, .mat-mdc-elevation-specific.mat-elevation-z2 { box-shado= -w: var(--mat-app-elevation-shadow-level-2, none); } - -.mat-elevation-z3, .mat-mdc-elevation-specific.mat-elevation-z3 { box-shado= -w: var(--mat-app-elevation-shadow-level-3, none); } - -.mat-elevation-z4, .mat-mdc-elevation-specific.mat-elevation-z4 { box-shado= -w: var(--mat-app-elevation-shadow-level-4, none); } - -.mat-elevation-z5, .mat-mdc-elevation-specific.mat-elevation-z5 { box-shado= -w: var(--mat-app-elevation-shadow-level-5, none); } - -.mat-elevation-z6, .mat-mdc-elevation-specific.mat-elevation-z6 { box-shado= -w: var(--mat-app-elevation-shadow-level-6, none); } - -.mat-elevation-z7, .mat-mdc-elevation-specific.mat-elevation-z7 { box-shado= -w: var(--mat-app-elevation-shadow-level-7, none); } - -.mat-elevation-z8, .mat-mdc-elevation-specific.mat-elevation-z8 { box-shado= -w: var(--mat-app-elevation-shadow-level-8, none); } - -.mat-elevation-z9, .mat-mdc-elevation-specific.mat-elevation-z9 { box-shado= -w: var(--mat-app-elevation-shadow-level-9, none); } - -.mat-elevation-z10, .mat-mdc-elevation-specific.mat-elevation-z10 { box-sha= -dow: var(--mat-app-elevation-shadow-level-10, none); } - -.mat-elevation-z11, .mat-mdc-elevation-specific.mat-elevation-z11 { box-sha= -dow: var(--mat-app-elevation-shadow-level-11, none); } - -.mat-elevation-z12, .mat-mdc-elevation-specific.mat-elevation-z12 { box-sha= -dow: var(--mat-app-elevation-shadow-level-12, none); } - -.mat-elevation-z13, .mat-mdc-elevation-specific.mat-elevation-z13 { box-sha= -dow: var(--mat-app-elevation-shadow-level-13, none); } - -.mat-elevation-z14, .mat-mdc-elevation-specific.mat-elevation-z14 { box-sha= -dow: var(--mat-app-elevation-shadow-level-14, none); } - -.mat-elevation-z15, .mat-mdc-elevation-specific.mat-elevation-z15 { box-sha= -dow: var(--mat-app-elevation-shadow-level-15, none); } - -.mat-elevation-z16, .mat-mdc-elevation-specific.mat-elevation-z16 { box-sha= -dow: var(--mat-app-elevation-shadow-level-16, none); } - -.mat-elevation-z17, .mat-mdc-elevation-specific.mat-elevation-z17 { box-sha= -dow: var(--mat-app-elevation-shadow-level-17, none); } - -.mat-elevation-z18, .mat-mdc-elevation-specific.mat-elevation-z18 { box-sha= -dow: var(--mat-app-elevation-shadow-level-18, none); } - -.mat-elevation-z19, .mat-mdc-elevation-specific.mat-elevation-z19 { box-sha= -dow: var(--mat-app-elevation-shadow-level-19, none); } - -.mat-elevation-z20, .mat-mdc-elevation-specific.mat-elevation-z20 { box-sha= -dow: var(--mat-app-elevation-shadow-level-20, none); } - -.mat-elevation-z21, .mat-mdc-elevation-specific.mat-elevation-z21 { box-sha= -dow: var(--mat-app-elevation-shadow-level-21, none); } - -.mat-elevation-z22, .mat-mdc-elevation-specific.mat-elevation-z22 { box-sha= -dow: var(--mat-app-elevation-shadow-level-22, none); } - -.mat-elevation-z23, .mat-mdc-elevation-specific.mat-elevation-z23 { box-sha= -dow: var(--mat-app-elevation-shadow-level-23, none); } - -.mat-elevation-z24, .mat-mdc-elevation-specific.mat-elevation-z24 { box-sha= -dow: var(--mat-app-elevation-shadow-level-24, none); } - -html { --mat-app-background-color: #fef8fc; --mat-app-text-color: #1d1b1e; = ---mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px = -0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12); --mat-a= -pp-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1p= -x 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12); --mat-app-ele= -vation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px = -rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12); --mat-app-elevation= --shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0= -, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12); --mat-app-elevation-shado= -w-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0= -, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12); --mat-app-elevation-shadow-lev= -el-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14= -), 0px 1px 14px 0px rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-6:= - 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0= -px 1px 18px 0px rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-7: 0px= - 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2= -px 16px 1px rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-8: 0px 5px= - 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 1= -4px 2px rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-9: 0px 5px 6px= - -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px = -2px rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-10: 0px 6px 6px -3= -px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3p= -x rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-11: 0px 6px 7px -4px= - rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px = -rgba(0, 0, 0, .12); --mat-app-elevation-shadow-level-12: 0px 7px 8px -4px r= -gba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rg= -ba(0, 0, 0, .12); --mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgb= -a(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba= -(0, 0, 0, .12); --mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(= -0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0= -, 0, 0, .12); --mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0,= - 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, = -0, 0, .12); --mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, = -0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0= -, 0, .12); --mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0= -, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0,= - 0, .12); --mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0,= - 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, = -0, .12); --mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, = -0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0= -, .12); --mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, = -0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0= -, .12); --mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, = -0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0= -, .12); --mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, = -0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0= -, .12); --mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, = -0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0= -, .12); --mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, = -0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0= -, .12); --mat-ripple-color: rgba(29, 27, 30, .1); --mat-option-selected-sta= -te-label-text-color: #1f182a; --mat-option-label-text-color: #1d1b1e; --mat= --option-hover-state-layer-color: rgba(29, 27, 30, .08); --mat-option-focus-= -state-layer-color: rgba(29, 27, 30, .12); --mat-option-selected-state-layer= --color: #eadef7; --mat-option-label-text-font: Roboto, sans-serif; --mat-op= -tion-label-text-line-height: 1.25rem; --mat-option-label-text-size: 1rem; -= --mat-option-label-text-tracking: .006rem; --mat-option-label-text-weight: 4= -00; --mat-optgroup-label-text-color: #49454e; --mat-optgroup-label-text-fon= -t: Roboto, sans-serif; --mat-optgroup-label-text-line-height: 1.25rem; --ma= -t-optgroup-label-text-size: .875rem; --mat-optgroup-label-text-tracking: .0= -06rem; --mat-optgroup-label-text-weight: 500; --mat-full-pseudo-checkbox-se= -lected-icon-color: #7d00fa; --mat-full-pseudo-checkbox-selected-checkmark-c= -olor: #ffffff; --mat-full-pseudo-checkbox-unselected-icon-color: #49454e; -= --mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fef8fc; --mat= --full-pseudo-checkbox-disabled-unselected-icon-color: rgba(29, 27, 30, .38)= -; --mat-full-pseudo-checkbox-disabled-selected-icon-color: rgba(29, 27, 30,= - .38); --mat-minimal-pseudo-checkbox-selected-checkmark-color: #7d00fa; --m= -at-minimal-pseudo-checkbox-disabled-selected-checkmark-color: rgba(29, 27, = -30, .38); --mdc-elevated-card-container-color: #f8f2f6; --mdc-elevated-card= --container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px r= -gba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12); --mdc-elevated-card-= -container-shape: 12px; --mdc-outlined-card-container-color: #fef8fc; --mdc-= -outlined-card-outline-color: #cbc4cf; --mdc-outlined-card-container-elevati= -on: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), = -0px 0px 0px 0px rgba(0, 0, 0, .12); --mdc-outlined-card-container-shape: 12= -px; --mdc-outlined-card-outline-width: 1px; --mat-card-subtitle-text-color:= - #1d1b1e; --mat-card-title-text-font: Roboto, sans-serif; --mat-card-title-= -text-line-height: 1.75rem; --mat-card-title-text-size: 1.375rem; --mat-card= --title-text-tracking: 0; --mat-card-title-text-weight: 400; --mat-card-subt= -itle-text-font: Roboto, sans-serif; --mat-card-subtitle-text-line-height: 1= -.5rem; --mat-card-subtitle-text-size: 1rem; --mat-card-subtitle-text-tracki= -ng: .009rem; --mat-card-subtitle-text-weight: 500; --mdc-linear-progress-ac= -tive-indicator-color: #7d00fa; --mdc-linear-progress-track-color: #e8e0eb; = ---mdc-linear-progress-active-indicator-height: 4px; --mdc-linear-progress-t= -rack-height: 4px; --mdc-linear-progress-track-shape: 0; --mdc-plain-tooltip= --container-color: #323033; --mdc-plain-tooltip-supporting-text-color: #f5ef= -f4; --mdc-plain-tooltip-supporting-text-line-height: 1rem; --mdc-plain-tool= -tip-supporting-text-font: Roboto, sans-serif; --mdc-plain-tooltip-supportin= -g-text-size: .75rem; --mdc-plain-tooltip-supporting-text-weight: 400; --mdc= --plain-tooltip-supporting-text-tracking: .025rem; --mdc-plain-tooltip-conta= -iner-shape: 4px; --mdc-filled-text-field-caret-color: #7d00fa; --mdc-filled= --text-field-focus-active-indicator-color: #7d00fa; --mdc-filled-text-field-= -focus-label-text-color: #7d00fa; --mdc-filled-text-field-container-color: #= -e8e0eb; --mdc-filled-text-field-disabled-container-color: rgba(29, 27, 30, = -.04); --mdc-filled-text-field-label-text-color: #49454e; --mdc-filled-text-= -field-hover-label-text-color: #49454e; --mdc-filled-text-field-disabled-lab= -el-text-color: rgba(29, 27, 30, .38); --mdc-filled-text-field-input-text-co= -lor: #1d1b1e; --mdc-filled-text-field-disabled-input-text-color: rgba(29, 2= -7, 30, .38); --mdc-filled-text-field-input-text-placeholder-color: #49454e;= - --mdc-filled-text-field-error-hover-label-text-color: #410002; --mdc-fille= -d-text-field-error-focus-label-text-color: #ba1a1a; --mdc-filled-text-field= --error-label-text-color: #ba1a1a; --mdc-filled-text-field-active-indicator-= -color: #49454e; --mdc-filled-text-field-disabled-active-indicator-color: rg= -ba(29, 27, 30, .38); --mdc-filled-text-field-hover-active-indicator-color: = -#1d1b1e; --mdc-filled-text-field-error-active-indicator-color: #ba1a1a; --m= -dc-filled-text-field-error-focus-active-indicator-color: #ba1a1a; --mdc-fil= -led-text-field-error-hover-active-indicator-color: #410002; --mdc-filled-te= -xt-field-label-text-font: Roboto, sans-serif; --mdc-filled-text-field-label= --text-size: 1rem; --mdc-filled-text-field-label-text-tracking: .031rem; --m= -dc-filled-text-field-label-text-weight: 400; --mdc-filled-text-field-active= --indicator-height: 1px; --mdc-filled-text-field-focus-active-indicator-heig= -ht: 2px; --mdc-filled-text-field-container-shape: 4px; --mdc-outlined-text-= -field-caret-color: #7d00fa; --mdc-outlined-text-field-focus-outline-color: = -#7d00fa; --mdc-outlined-text-field-focus-label-text-color: #7d00fa; --mdc-o= -utlined-text-field-label-text-color: #49454e; --mdc-outlined-text-field-hov= -er-label-text-color: #1d1b1e; --mdc-outlined-text-field-disabled-label-text= --color: rgba(29, 27, 30, .38); --mdc-outlined-text-field-input-text-color: = -#1d1b1e; --mdc-outlined-text-field-disabled-input-text-color: rgba(29, 27, = -30, .38); --mdc-outlined-text-field-input-text-placeholder-color: #49454e; = ---mdc-outlined-text-field-error-focus-label-text-color: #ba1a1a; --mdc-outl= -ined-text-field-error-label-text-color: #ba1a1a; --mdc-outlined-text-field-= -error-hover-label-text-color: #410002; --mdc-outlined-text-field-outline-co= -lor: #7b757f; --mdc-outlined-text-field-disabled-outline-color: rgba(29, 27= -, 30, .12); --mdc-outlined-text-field-hover-outline-color: #1d1b1e; --mdc-o= -utlined-text-field-error-focus-outline-color: #ba1a1a; --mdc-outlined-text-= -field-error-hover-outline-color: #410002; --mdc-outlined-text-field-error-o= -utline-color: #ba1a1a; --mdc-outlined-text-field-label-text-font: Roboto, s= -ans-serif; --mdc-outlined-text-field-label-text-size: 1rem; --mdc-outlined-= -text-field-label-text-tracking: .031rem; --mdc-outlined-text-field-label-te= -xt-weight: 400; --mdc-outlined-text-field-outline-width: 1px; --mdc-outline= -d-text-field-focus-outline-width: 2px; --mdc-outlined-text-field-container-= -shape: 4px; --mat-form-field-focus-select-arrow-color: #7d00fa; --mat-form-= -field-disabled-input-text-placeholder-color: rgba(29, 27, 30, .38); --mat-f= -orm-field-state-layer-color: #1d1b1e; --mat-form-field-error-text-color: #b= -a1a1a; --mat-form-field-select-option-text-color: #1d1b1e; --mat-form-field= --select-disabled-option-text-color: rgba(29, 27, 30, .38); --mat-form-field= --leading-icon-color: #49454e; --mat-form-field-disabled-leading-icon-color:= - rgba(29, 27, 30, .38); --mat-form-field-trailing-icon-color: #49454e; --ma= -t-form-field-disabled-trailing-icon-color: rgba(29, 27, 30, .38); --mat-for= -m-field-error-focus-trailing-icon-color: #ba1a1a; --mat-form-field-error-ho= -ver-trailing-icon-color: #410002; --mat-form-field-error-trailing-icon-colo= -r: #ba1a1a; --mat-form-field-enabled-select-arrow-color: #49454e; --mat-for= -m-field-disabled-select-arrow-color: rgba(29, 27, 30, .38); --mat-form-fiel= -d-hover-state-layer-opacity: .08; --mat-form-field-container-text-font: Rob= -oto, sans-serif; --mat-form-field-container-text-line-height: 1.5rem; --mat= --form-field-container-text-size: 1rem; --mat-form-field-container-text-trac= -king: .031rem; --mat-form-field-container-text-weight: 400; --mat-form-fiel= -d-subscript-text-font: Roboto, sans-serif; --mat-form-field-subscript-text-= -line-height: 1rem; --mat-form-field-subscript-text-size: .75rem; --mat-form= --field-subscript-text-tracking: .025rem; --mat-form-field-subscript-text-we= -ight: 400; --mat-form-field-container-height: 56px; --mat-form-field-filled= --label-display: block; --mat-form-field-container-vertical-padding: 16px; -= --mat-form-field-filled-with-label-container-padding-top: 24px; --mat-form-f= -ield-filled-with-label-container-padding-bottom: 8px; --mat-form-field-focu= -s-state-layer-opacity: 0; --mat-select-panel-background-color: #f2ecf1; --m= -at-select-enabled-trigger-text-color: #1d1b1e; --mat-select-disabled-trigge= -r-text-color: rgba(29, 27, 30, .38); --mat-select-placeholder-text-color: #= -49454e; --mat-select-enabled-arrow-color: #49454e; --mat-select-disabled-ar= -row-color: rgba(29, 27, 30, .38); --mat-select-focused-arrow-color: #7d00fa= -; --mat-select-invalid-arrow-color: #ba1a1a; --mat-select-trigger-text-font= -: Roboto, sans-serif; --mat-select-trigger-text-line-height: 1.5rem; --mat-= -select-trigger-text-size: 1rem; --mat-select-trigger-text-tracking: .031rem= -; --mat-select-trigger-text-weight: 400; --mat-select-arrow-transform: tran= -slateY(-8px); --mat-select-container-elevation-shadow: 0px 3px 1px -2px rgb= -a(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0,= - 0, 0, .12); --mat-autocomplete-background-color: #f2ecf1; --mat-autocomple= -te-container-shape: 4px; --mat-autocomplete-container-elevation-shadow: 0px= - 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1p= -x 5px 0px rgba(0, 0, 0, .12); --mdc-dialog-container-color: #fef8fc; --mdc-= -dialog-subhead-color: #1d1b1e; --mdc-dialog-supporting-text-color: #49454e;= - --mdc-dialog-subhead-font: Roboto, sans-serif; --mdc-dialog-subhead-line-h= -eight: 2rem; --mdc-dialog-subhead-size: 1.5rem; --mdc-dialog-subhead-weight= -: 400; --mdc-dialog-subhead-tracking: 0; --mdc-dialog-supporting-text-font:= - Roboto, sans-serif; --mdc-dialog-supporting-text-line-height: 1.25rem; --m= -dc-dialog-supporting-text-size: .875rem; --mdc-dialog-supporting-text-weigh= -t: 400; --mdc-dialog-supporting-text-tracking: .016rem; --mdc-dialog-contai= -ner-shape: 28px; --mat-dialog-container-elevation-shadow: none; --mat-dialo= -g-container-max-width: 560px; --mat-dialog-container-small-max-width: calc(= -100vw - 32px); --mat-dialog-container-min-width: 280px; --mat-dialog-action= -s-alignment: flex-end; --mat-dialog-actions-padding: 16px 24px; --mat-dialo= -g-content-padding: 20px 24px; --mat-dialog-with-actions-content-padding: 20= -px 24px 0; --mat-dialog-headline-padding: 6px 24px 13px; --mdc-chip-outline= --color: #7b757f; --mdc-chip-disabled-outline-color: rgba(29, 27, 30, .12); = ---mdc-chip-focus-outline-color: #49454e; --mdc-chip-hover-state-layer-opaci= -ty: .08; --mdc-chip-selected-hover-state-layer-opacity: .08; --mdc-chip-dis= -abled-label-text-color: rgba(29, 27, 30, .38); --mdc-chip-elevated-selected= --container-color: #eadef7; --mdc-chip-flat-disabled-selected-container-colo= -r: rgba(29, 27, 30, .12); --mdc-chip-focus-state-layer-color: #49454e; --md= -c-chip-hover-state-layer-color: #49454e; --mdc-chip-selected-hover-state-la= -yer-color: #1f182a; --mdc-chip-focus-state-layer-opacity: .12; --mdc-chip-s= -elected-focus-state-layer-color: #1f182a; --mdc-chip-selected-focus-state-l= -ayer-opacity: .12; --mdc-chip-label-text-color: #49454e; --mdc-chip-selecte= -d-label-text-color: #1f182a; --mdc-chip-with-icon-icon-color: #49454e; --md= -c-chip-with-icon-disabled-icon-color: #1d1b1e; --mdc-chip-with-icon-selecte= -d-icon-color: #1f182a; --mdc-chip-with-trailing-icon-disabled-trailing-icon= --color: #1d1b1e; --mdc-chip-with-trailing-icon-trailing-icon-color: #49454e= -; --mdc-chip-label-text-font: Roboto, sans-serif; --mdc-chip-label-text-lin= -e-height: 1.25rem; --mdc-chip-label-text-size: .875rem; --mdc-chip-label-te= -xt-tracking: .006rem; --mdc-chip-label-text-weight: 500; --mdc-chip-contain= -er-height: 32px; --mdc-chip-container-shape-radius: 8px; --mdc-chip-with-av= -atar-avatar-shape-radius: 24px; --mdc-chip-with-avatar-avatar-size: 24px; -= --mdc-chip-with-icon-icon-size: 18px; --mdc-chip-outline-width: 1px; --mdc-c= -hip-with-avatar-disabled-avatar-opacity: .38; --mdc-chip-flat-selected-outl= -ine-width: 0; --mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity:= - .38; --mdc-chip-with-icon-disabled-icon-opacity: .38; --mdc-chip-elevated-= -container-color: transparent; --mat-chip-trailing-action-state-layer-color:= - #49454e; --mat-chip-selected-trailing-action-state-layer-color: #1f182a; -= --mat-chip-trailing-action-hover-state-layer-opacity: .08; --mat-chip-traili= -ng-action-focus-state-layer-opacity: .12; --mat-chip-selected-disabled-trai= -ling-icon-color: #1d1b1e; --mat-chip-selected-trailing-icon-color: #1f182a;= - --mat-chip-disabled-container-opacity: 1; --mat-chip-trailing-action-opaci= -ty: 1; --mat-chip-trailing-action-focus-opacity: 1; --mdc-switch-selected-f= -ocus-state-layer-opacity: .12; --mdc-switch-selected-hover-state-layer-opac= -ity: .08; --mdc-switch-selected-pressed-state-layer-opacity: .12; --mdc-swi= -tch-unselected-focus-state-layer-opacity: .12; --mdc-switch-unselected-hove= -r-state-layer-opacity: .08; --mdc-switch-unselected-pressed-state-layer-opa= -city: .12; --mdc-switch-selected-focus-state-layer-color: #7d00fa; --mdc-sw= -itch-selected-handle-color: #ffffff; --mdc-switch-selected-hover-state-laye= -r-color: #7d00fa; --mdc-switch-selected-pressed-state-layer-color: #7d00fa;= - --mdc-switch-selected-focus-handle-color: #ecdcff; --mdc-switch-selected-h= -over-handle-color: #ecdcff; --mdc-switch-selected-pressed-handle-color: #ec= -dcff; --mdc-switch-selected-focus-track-color: #7d00fa; --mdc-switch-select= -ed-hover-track-color: #7d00fa; --mdc-switch-selected-pressed-track-color: #= -7d00fa; --mdc-switch-selected-track-color: #7d00fa; --mdc-switch-disabled-s= -elected-handle-color: #fef8fc; --mdc-switch-disabled-selected-icon-color: #= -1d1b1e; --mdc-switch-disabled-selected-track-color: #1d1b1e; --mdc-switch-d= -isabled-unselected-handle-color: #1d1b1e; --mdc-switch-disabled-unselected-= -icon-color: #e8e0eb; --mdc-switch-disabled-unselected-track-color: #e8e0eb;= - --mdc-switch-selected-icon-color: #270057; --mdc-switch-unselected-focus-h= -andle-color: #49454e; --mdc-switch-unselected-focus-state-layer-color: #1d1= -b1e; --mdc-switch-unselected-focus-track-color: #e8e0eb; --mdc-switch-unsel= -ected-handle-color: #7b757f; --mdc-switch-unselected-hover-handle-color: #4= -9454e; --mdc-switch-unselected-hover-state-layer-color: #1d1b1e; --mdc-swit= -ch-unselected-hover-track-color: #e8e0eb; --mdc-switch-unselected-icon-colo= -r: #e8e0eb; --mdc-switch-unselected-pressed-handle-color: #49454e; --mdc-sw= -itch-unselected-pressed-state-layer-color: #1d1b1e; --mdc-switch-unselected= --pressed-track-color: #e8e0eb; --mdc-switch-unselected-track-color: #e8e0eb= -; --mdc-switch-disabled-selected-icon-opacity: .38; --mdc-switch-disabled-t= -rack-opacity: .12; --mdc-switch-disabled-unselected-icon-opacity: .38; --md= -c-switch-handle-shape: 9999px; --mdc-switch-selected-icon-size: 16px; --mdc= --switch-track-height: 32px; --mdc-switch-track-shape: 9999px; --mdc-switch-= -track-width: 52px; --mdc-switch-unselected-icon-size: 16px; --mdc-switch-st= -ate-layer-size: 40px; --mat-switch-track-outline-color: #7b757f; --mat-swit= -ch-disabled-unselected-track-outline-color: #1d1b1e; --mat-switch-label-tex= -t-color: #1d1b1e; --mat-switch-label-text-font: Roboto, sans-serif; --mat-s= -witch-label-text-line-height: 1.25rem; --mat-switch-label-text-size: .875re= -m; --mat-switch-label-text-tracking: .016rem; --mat-switch-label-text-weigh= -t: 400; --mat-switch-disabled-selected-handle-opacity: 1; --mat-switch-disa= -bled-unselected-handle-opacity: .38; --mat-switch-unselected-handle-size: 1= -6px; --mat-switch-selected-handle-size: 24px; --mat-switch-pressed-handle-s= -ize: 28px; --mat-switch-with-icon-handle-size: 24px; --mat-switch-selected-= -handle-horizontal-margin: 0 24px; --mat-switch-selected-with-icon-handle-ho= -rizontal-margin: 0 24px; --mat-switch-selected-pressed-handle-horizontal-ma= -rgin: 0 22px; --mat-switch-unselected-handle-horizontal-margin: 0 8px; --ma= -t-switch-unselected-with-icon-handle-horizontal-margin: 0 4px; --mat-switch= --unselected-pressed-handle-horizontal-margin: 0 2px; --mat-switch-visible-t= -rack-opacity: 1; --mat-switch-hidden-track-opacity: 0; --mat-switch-visible= --track-transition: opacity 75ms; --mat-switch-hidden-track-transition: opac= -ity 75ms; --mat-switch-track-outline-width: 2px; --mat-switch-selected-trac= -k-outline-width: 2px; --mat-switch-selected-track-outline-color: transparen= -t; --mat-switch-disabled-unselected-track-outline-width: 2px; --mdc-radio-d= -isabled-selected-icon-color: #1d1b1e; --mdc-radio-disabled-unselected-icon-= -color: #1d1b1e; --mdc-radio-unselected-hover-icon-color: #1d1b1e; --mdc-rad= -io-unselected-focus-icon-color: #1d1b1e; --mdc-radio-unselected-icon-color:= - #49454e; --mdc-radio-unselected-pressed-icon-color: #1d1b1e; --mdc-radio-s= -elected-focus-icon-color: #7d00fa; --mdc-radio-selected-hover-icon-color: #= -7d00fa; --mdc-radio-selected-icon-color: #7d00fa; --mdc-radio-selected-pres= -sed-icon-color: #7d00fa; --mdc-radio-state-layer-size: 40px; --mdc-radio-di= -sabled-selected-icon-opacity: .38; --mdc-radio-disabled-unselected-icon-opa= -city: .38; --mat-radio-ripple-color: #1d1b1e; --mat-radio-checked-ripple-co= -lor: #7d00fa; --mat-radio-disabled-label-color: rgba(29, 27, 30, .38); --ma= -t-radio-label-text-color: #1d1b1e; --mat-radio-label-text-font: Roboto, san= -s-serif; --mat-radio-label-text-line-height: 1.25rem; --mat-radio-label-tex= -t-size: .875rem; --mat-radio-label-text-tracking: .016rem; --mat-radio-labe= -l-text-weight: 400; --mat-radio-touch-target-display: block; --mdc-slider-h= -andle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0= -, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12); --mdc-slider-handle-color= -: #7d00fa; --mdc-slider-focus-handle-color: #7d00fa; --mdc-slider-hover-han= -dle-color: #7d00fa; --mdc-slider-active-track-color: #7d00fa; --mdc-slider-= -inactive-track-color: #e8e0eb; --mdc-slider-with-tick-marks-inactive-contai= -ner-color: #49454e; --mdc-slider-with-tick-marks-active-container-color: #f= -fffff; --mdc-slider-disabled-active-track-color: #1d1b1e; --mdc-slider-disa= -bled-handle-color: #1d1b1e; --mdc-slider-disabled-inactive-track-color: #1d= -1b1e; --mdc-slider-label-container-color: #7d00fa; --mdc-slider-label-label= --text-color: #ffffff; --mdc-slider-with-overlap-handle-outline-color: #ffff= -ff; --mdc-slider-with-tick-marks-disabled-container-color: #1d1b1e; --mdc-s= -lider-label-label-text-font: Roboto, sans-serif; --mdc-slider-label-label-t= -ext-size: .75rem; --mdc-slider-label-label-text-line-height: 1rem; --mdc-sl= -ider-label-label-text-tracking: .031rem; --mdc-slider-label-label-text-weig= -ht: 500; --mdc-slider-active-track-height: 4px; --mdc-slider-active-track-s= -hape: 9999px; --mdc-slider-handle-height: 20px; --mdc-slider-handle-shape: = -9999px; --mdc-slider-handle-width: 20px; --mdc-slider-inactive-track-height= -: 4px; --mdc-slider-inactive-track-shape: 9999px; --mdc-slider-with-overlap= --handle-outline-width: 1px; --mdc-slider-with-tick-marks-active-container-o= -pacity: .38; --mdc-slider-with-tick-marks-container-shape: 9999px; --mdc-sl= -ider-with-tick-marks-container-size: 2px; --mdc-slider-with-tick-marks-inac= -tive-container-opacity: .38; --mat-slider-ripple-color: #7d00fa; --mat-slid= -er-hover-state-layer-color: rgba(125, 0, 250, .05); --mat-slider-focus-stat= -e-layer-color: rgba(125, 0, 250, .2); --mat-slider-value-indicator-width: 2= -8px; --mat-slider-value-indicator-height: 28px; --mat-slider-value-indicato= -r-caret-display: none; --mat-slider-value-indicator-border-radius: 50% 50% = -50% 0; --mat-slider-value-indicator-padding: 0; --mat-slider-value-indicato= -r-text-transform: rotate(45deg); --mat-slider-value-indicator-container-tra= -nsform: translateX(-50%) rotate(-45deg); --mat-slider-value-indicator-opaci= -ty: 1; --mat-menu-item-label-text-color: #1d1b1e; --mat-menu-item-icon-colo= -r: #49454e; --mat-menu-item-hover-state-layer-color: rgba(29, 27, 30, .08);= - --mat-menu-item-focus-state-layer-color: rgba(29, 27, 30, .12); --mat-menu= --container-color: #f2ecf1; --mat-menu-divider-color: #e8e0eb; --mat-menu-it= -em-label-text-font: Roboto, sans-serif; --mat-menu-item-label-text-size: .8= -75rem; --mat-menu-item-label-text-tracking: .006rem; --mat-menu-item-label-= -text-line-height: 1.25rem; --mat-menu-item-label-text-weight: 500; --mat-me= -nu-container-shape: 4px; --mat-menu-divider-bottom-spacing: 8px; --mat-menu= --divider-top-spacing: 8px; --mat-menu-item-spacing: 12px; --mat-menu-item-i= -con-size: 24px; --mat-menu-item-leading-spacing: 12px; --mat-menu-item-trai= -ling-spacing: 12px; --mat-menu-item-with-icon-leading-spacing: 12px; --mat-= -menu-item-with-icon-trailing-spacing: 12px; --mat-menu-base-elevation-level= -: 2; --mdc-list-list-item-container-color: transparent; --mdc-list-list-ite= -m-leading-avatar-color: #ecdcff; --mdc-list-list-item-disabled-state-layer-= -color: #1d1b1e; --mdc-list-list-item-disabled-state-layer-opacity: .12; --m= -dc-list-list-item-label-text-color: #1d1b1e; --mdc-list-list-item-supportin= -g-text-color: #49454e; --mdc-list-list-item-leading-icon-color: #49454e; --= -mdc-list-list-item-trailing-supporting-text-color: #49454e; --mdc-list-list= --item-trailing-icon-color: #49454e; --mdc-list-list-item-selected-trailing-= -icon-color: #7d00fa; --mdc-list-list-item-disabled-label-text-color: #1d1b1= -e; --mdc-list-list-item-disabled-leading-icon-color: #1d1b1e; --mdc-list-li= -st-item-disabled-trailing-icon-color: #1d1b1e; --mdc-list-list-item-hover-l= -abel-text-color: #1d1b1e; --mdc-list-list-item-focus-label-text-color: #1d1= -b1e; --mdc-list-list-item-hover-state-layer-color: #1d1b1e; --mdc-list-list= --item-hover-state-layer-opacity: .08; --mdc-list-list-item-focus-state-laye= -r-color: #1d1b1e; --mdc-list-list-item-focus-state-layer-opacity: .12; --md= -c-list-list-item-label-text-font: Roboto, sans-serif; --mdc-list-list-item-= -label-text-line-height: 1.5rem; --mdc-list-list-item-label-text-size: 1rem;= - --mdc-list-list-item-label-text-tracking: .031rem; --mdc-list-list-item-la= -bel-text-weight: 400; --mdc-list-list-item-supporting-text-font: Roboto, sa= -ns-serif; --mdc-list-list-item-supporting-text-line-height: 1.25rem; --mdc-= -list-list-item-supporting-text-size: .875rem; --mdc-list-list-item-supporti= -ng-text-tracking: .016rem; --mdc-list-list-item-supporting-text-weight: 400= -; --mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif; -= --mdc-list-list-item-trailing-supporting-text-line-height: 1rem; --mdc-list-= -list-item-trailing-supporting-text-size: .688rem; --mdc-list-list-item-trai= -ling-supporting-text-tracking: .031rem; --mdc-list-list-item-trailing-suppo= -rting-text-weight: 500; --mdc-list-list-item-one-line-container-height: 48p= -x; --mdc-list-list-item-two-line-container-height: 64px; --mdc-list-list-it= -em-three-line-container-height: 88px; --mdc-list-list-item-container-shape:= - 0; --mdc-list-list-item-leading-avatar-shape: 9999px; --mdc-list-list-item= --leading-icon-size: 24px; --mdc-list-list-item-leading-avatar-size: 40px; -= --mdc-list-list-item-trailing-icon-size: 24px; --mdc-list-list-item-disabled= --label-text-opacity: .3; --mdc-list-list-item-disabled-leading-icon-opacity= -: .38; --mdc-list-list-item-disabled-trailing-icon-opacity: .38; --mat-list= --active-indicator-color: #eadef7; --mat-list-list-item-leading-icon-start-s= -pace: 16px; --mat-list-list-item-leading-icon-end-space: 16px; --mat-list-a= -ctive-indicator-shape: 9999px; --mat-paginator-container-text-color: #1d1b1= -e; --mat-paginator-container-background-color: #fef8fc; --mat-paginator-ena= -bled-icon-color: #49454e; --mat-paginator-disabled-icon-color: rgba(29, 27,= - 30, .38); --mat-paginator-container-text-font: Roboto, sans-serif; --mat-p= -aginator-container-text-line-height: 1rem; --mat-paginator-container-text-s= -ize: .75rem; --mat-paginator-container-text-tracking: .025rem; --mat-pagina= -tor-container-text-weight: 400; --mat-paginator-select-trigger-text-size: .= -75rem; --mat-paginator-container-size: 56px; --mat-paginator-form-field-con= -tainer-height: 40px; --mat-paginator-form-field-container-vertical-padding:= - 8px; --mat-paginator-touch-target-display: block; --mdc-secondary-navigati= -on-tab-container-height: 48px; --mdc-tab-indicator-active-indicator-color: = -#7d00fa; --mdc-tab-indicator-active-indicator-height: 2px; --mdc-tab-indica= -tor-active-indicator-shape: 0; --mat-tab-header-divider-color: #e8e0eb; --m= -at-tab-header-pagination-icon-color: #1d1b1e; --mat-tab-header-inactive-lab= -el-text-color: #1d1b1e; --mat-tab-header-active-label-text-color: #1d1b1e; = ---mat-tab-header-active-ripple-color: #1d1b1e; --mat-tab-header-inactive-ri= -pple-color: #1d1b1e; --mat-tab-header-inactive-focus-label-text-color: #1d1= -b1e; --mat-tab-header-inactive-hover-label-text-color: #1d1b1e; --mat-tab-h= -eader-active-focus-label-text-color: #1d1b1e; --mat-tab-header-active-hover= --label-text-color: #1d1b1e; --mat-tab-header-active-focus-indicator-color: = -#7d00fa; --mat-tab-header-active-hover-indicator-color: #7d00fa; --mat-tab-= -header-label-text-font: Roboto, sans-serif; --mat-tab-header-label-text-siz= -e: .875rem; --mat-tab-header-label-text-tracking: .006rem; --mat-tab-header= --label-text-line-height: 1.25rem; --mat-tab-header-label-text-weight: 500; = ---mat-tab-header-divider-height: 1px; --mdc-checkbox-disabled-selected-chec= -kmark-color: #fef8fc; --mdc-checkbox-selected-focus-state-layer-opacity: .1= -2; --mdc-checkbox-selected-hover-state-layer-opacity: .08; --mdc-checkbox-s= -elected-pressed-state-layer-opacity: .12; --mdc-checkbox-unselected-focus-s= -tate-layer-opacity: .12; --mdc-checkbox-unselected-hover-state-layer-opacit= -y: .08; --mdc-checkbox-unselected-pressed-state-layer-opacity: .12; --mdc-c= -heckbox-selected-pressed-icon-color: #7d00fa; --mdc-checkbox-disabled-selec= -ted-icon-color: rgba(29, 27, 30, .38); --mdc-checkbox-disabled-unselected-i= -con-color: rgba(29, 27, 30, .38); --mdc-checkbox-selected-checkmark-color: = -#ffffff; --mdc-checkbox-selected-focus-icon-color: #7d00fa; --mdc-checkbox-= -selected-hover-icon-color: #7d00fa; --mdc-checkbox-selected-icon-color: #7d= -00fa; --mdc-checkbox-unselected-focus-icon-color: #1d1b1e; --mdc-checkbox-u= -nselected-hover-icon-color: #1d1b1e; --mdc-checkbox-unselected-icon-color: = -#49454e; --mdc-checkbox-selected-focus-state-layer-color: #7d00fa; --mdc-ch= -eckbox-selected-hover-state-layer-color: #7d00fa; --mdc-checkbox-selected-p= -ressed-state-layer-color: #1d1b1e; --mdc-checkbox-unselected-focus-state-la= -yer-color: #1d1b1e; --mdc-checkbox-unselected-hover-state-layer-color: #1d1= -b1e; --mdc-checkbox-unselected-pressed-state-layer-color: #7d00fa; --mdc-ch= -eckbox-state-layer-size: 40px; --mat-checkbox-disabled-label-color: rgba(29= -, 27, 30, .38); --mat-checkbox-label-text-color: #1d1b1e; --mat-checkbox-la= -bel-text-font: Roboto, sans-serif; --mat-checkbox-label-text-line-height: 1= -.25rem; --mat-checkbox-label-text-size: .875rem; --mat-checkbox-label-text-= -tracking: .016rem; --mat-checkbox-label-text-weight: 400; --mat-checkbox-to= -uch-target-display: block; --mdc-text-button-label-text-color: #7d00fa; --m= -dc-text-button-disabled-label-text-color: rgba(29, 27, 30, .38); --mdc-text= --button-label-text-font: Roboto, sans-serif; --mdc-text-button-label-text-s= -ize: .875rem; --mdc-text-button-label-text-tracking: .006rem; --mdc-text-bu= -tton-label-text-weight: 500; --mdc-text-button-container-height: 40px; --md= -c-text-button-container-shape: 9999px; --mdc-protected-button-container-ele= -vation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, = -0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12); --mdc-protected-button-disa= -bled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px= - 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12); --mdc-prot= -ected-button-focus-container-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, = -0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .= -12); --mdc-protected-button-hover-container-elevation-shadow: 0px 3px 3px -= -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px = -rgba(0, 0, 0, .12); --mdc-protected-button-pressed-container-elevation-shad= -ow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14),= - 0px 1px 3px 0px rgba(0, 0, 0, .12); --mdc-protected-button-container-color= -: #fef8fc; --mdc-protected-button-label-text-color: #7d00fa; --mdc-protecte= -d-button-disabled-container-color: rgba(29, 27, 30, .12); --mdc-protected-b= -utton-disabled-label-text-color: rgba(29, 27, 30, .38); --mdc-protected-but= -ton-label-text-font: Roboto, sans-serif; --mdc-protected-button-label-text-= -size: .875rem; --mdc-protected-button-label-text-tracking: .006rem; --mdc-p= -rotected-button-label-text-weight: 500; --mdc-protected-button-container-he= -ight: 40px; --mdc-protected-button-container-shape: 9999px; --mdc-filled-bu= -tton-container-color: #7d00fa; --mdc-filled-button-label-text-color: #fffff= -f; --mdc-filled-button-disabled-container-color: rgba(29, 27, 30, .12); --m= -dc-filled-button-disabled-label-text-color: rgba(29, 27, 30, .38); --mdc-fi= -lled-button-label-text-font: Roboto, sans-serif; --mdc-filled-button-label-= -text-size: .875rem; --mdc-filled-button-label-text-tracking: .006rem; --mdc= --filled-button-label-text-weight: 500; --mdc-filled-button-container-height= -: 40px; --mdc-filled-button-container-shape: 9999px; --mdc-outlined-button-= -disabled-outline-color: rgba(29, 27, 30, .12); --mdc-outlined-button-disabl= -ed-label-text-color: rgba(29, 27, 30, .38); --mdc-outlined-button-label-tex= -t-color: #7d00fa; --mdc-outlined-button-outline-color: #7b757f; --mdc-outli= -ned-button-label-text-font: Roboto, sans-serif; --mdc-outlined-button-label= --text-size: .875rem; --mdc-outlined-button-label-text-tracking: .006rem; --= -mdc-outlined-button-label-text-weight: 500; --mdc-outlined-button-container= --height: 40px; --mdc-outlined-button-outline-width: 1px; --mdc-outlined-but= -ton-container-shape: 9999px; --mat-text-button-state-layer-color: #7d00fa; = ---mat-text-button-disabled-state-layer-color: #49454e; --mat-text-button-ri= -pple-color: rgba(125, 0, 250, .12); --mat-text-button-hover-state-layer-opa= -city: .08; --mat-text-button-focus-state-layer-opacity: .12; --mat-text-but= -ton-pressed-state-layer-opacity: .12; --mat-text-button-touch-target-displa= -y: block; --mat-text-button-horizontal-padding: 12px; --mat-text-button-wit= -h-icon-horizontal-padding: 16px; --mat-text-button-icon-spacing: 8px; --mat= --text-button-icon-offset: -4px; --mat-protected-button-state-layer-color: #= -7d00fa; --mat-protected-button-disabled-state-layer-color: #49454e; --mat-p= -rotected-button-ripple-color: rgba(125, 0, 250, .12); --mat-protected-butto= -n-hover-state-layer-opacity: .08; --mat-protected-button-focus-state-layer-= -opacity: .12; --mat-protected-button-pressed-state-layer-opacity: .12; --ma= -t-protected-button-touch-target-display: block; --mat-protected-button-hori= -zontal-padding: 24px; --mat-protected-button-icon-spacing: 8px; --mat-prote= -cted-button-icon-offset: -8px; --mat-filled-button-state-layer-color: #ffff= -ff; --mat-filled-button-disabled-state-layer-color: #49454e; --mat-filled-b= -utton-ripple-color: rgba(255, 255, 255, .12); --mat-filled-button-hover-sta= -te-layer-opacity: .08; --mat-filled-button-focus-state-layer-opacity: .12; = ---mat-filled-button-pressed-state-layer-opacity: .12; --mat-filled-button-t= -ouch-target-display: block; --mat-filled-button-horizontal-padding: 24px; -= --mat-filled-button-icon-spacing: 8px; --mat-filled-button-icon-offset: -8px= -; --mat-outlined-button-state-layer-color: #7d00fa; --mat-outlined-button-d= -isabled-state-layer-color: #49454e; --mat-outlined-button-ripple-color: rgb= -a(125, 0, 250, .12); --mat-outlined-button-hover-state-layer-opacity: .08; = ---mat-outlined-button-focus-state-layer-opacity: .12; --mat-outlined-button= --pressed-state-layer-opacity: .12; --mat-outlined-button-touch-target-displ= -ay: block; --mat-outlined-button-horizontal-padding: 24px; --mat-outlined-b= -utton-icon-spacing: 8px; --mat-outlined-button-icon-offset: -8px; --mdc-ico= -n-button-icon-color: #49454e; --mdc-icon-button-disabled-icon-color: rgba(2= -9, 27, 30, .38); --mdc-icon-button-state-layer-size: 40px; --mdc-icon-butto= -n-icon-size: 24px; --mat-icon-button-state-layer-color: #49454e; --mat-icon= --button-disabled-state-layer-color: #49454e; --mat-icon-button-ripple-color= -: rgba(73, 69, 78, .12); --mat-icon-button-hover-state-layer-opacity: .08; = ---mat-icon-button-focus-state-layer-opacity: .12; --mat-icon-button-pressed= --state-layer-opacity: .12; --mat-icon-button-touch-target-display: block; -= --mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0= -, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, = -.12); --mdc-extended-fab-focus-container-elevation-shadow: 0px 3px 5px -1px= - rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px r= -gba(0, 0, 0, .12); --mdc-extended-fab-hover-container-elevation-shadow: 0px= - 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3= -px 14px 2px rgba(0, 0, 0, .12); --mdc-extended-fab-pressed-container-elevat= -ion-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0,= - 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12); --mdc-extended-fab-label-tex= -t-font: Roboto, sans-serif; --mdc-extended-fab-label-text-size: .875rem; --= -mdc-extended-fab-label-text-tracking: .006rem; --mdc-extended-fab-label-tex= -t-weight: 500; --mdc-extended-fab-container-height: 56px; --mdc-extended-fa= -b-container-shape: 16px; --mdc-fab-container-elevation-shadow: 0px 3px 5px = --1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0= -px rgba(0, 0, 0, .12); --mdc-fab-focus-container-elevation-shadow: 0px 3px = -5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18= -px 0px rgba(0, 0, 0, .12); --mdc-fab-hover-container-elevation-shadow: 0px = -5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3p= -x 14px 2px rgba(0, 0, 0, .12); --mdc-fab-pressed-container-elevation-shadow= -: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), = -0px 1px 18px 0px rgba(0, 0, 0, .12); --mdc-fab-container-color: #ecdcff; --= -mdc-fab-container-shape: 16px; --mdc-fab-small-container-elevation-shadow: = -0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0p= -x 1px 18px 0px rgba(0, 0, 0, .12); --mdc-fab-small-focus-container-elevatio= -n-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0= -, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12); --mdc-fab-small-hover-containe= -r-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rg= -ba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12); --mdc-fab-small-pres= -sed-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px= - 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12); --mdc-fa= -b-small-container-color: #ecdcff; --mdc-fab-small-container-shape: 12px; --= -mat-fab-foreground-color: #270057; --mat-fab-state-layer-color: #270057; --= -mat-fab-ripple-color: rgba(39, 0, 87, .12); --mat-fab-hover-state-layer-opa= -city: .08; --mat-fab-focus-state-layer-opacity: .12; --mat-fab-pressed-stat= -e-layer-opacity: .12; --mat-fab-disabled-state-container-color: rgba(29, 27= -, 30, .12); --mat-fab-disabled-state-foreground-color: rgba(29, 27, 30, .38= -); --mat-fab-touch-target-display: block; --mat-fab-small-foreground-color:= - #270057; --mat-fab-small-state-layer-color: #270057; --mat-fab-small-rippl= -e-color: rgba(39, 0, 87, .12); --mat-fab-small-hover-state-layer-opacity: .= -08; --mat-fab-small-focus-state-layer-opacity: .12; --mat-fab-small-pressed= --state-layer-opacity: .12; --mat-fab-small-disabled-state-container-color: = -rgba(29, 27, 30, .12); --mat-fab-small-disabled-state-foreground-color: rgb= -a(29, 27, 30, .38); --mdc-snackbar-container-color: #323033; --mdc-snackbar= --supporting-text-color: #f5eff4; --mdc-snackbar-supporting-text-font: Robot= -o, sans-serif; --mdc-snackbar-supporting-text-line-height: 1.25rem; --mdc-s= -nackbar-supporting-text-size: .875rem; --mdc-snackbar-supporting-text-weigh= -t: 400; --mdc-snackbar-container-shape: 4px; --mat-snack-bar-button-color: = -#d5baff; --mat-table-background-color: #fef8fc; --mat-table-header-headline= --color: #1d1b1e; --mat-table-row-item-label-text-color: #1d1b1e; --mat-tabl= -e-row-item-outline-color: #7b757f; --mat-table-header-headline-font: Roboto= -, sans-serif; --mat-table-header-headline-line-height: 1.25rem; --mat-table= --header-headline-size: .875rem; --mat-table-header-headline-weight: 500; --= -mat-table-header-headline-tracking: .006rem; --mat-table-row-item-label-tex= -t-font: Roboto, sans-serif; --mat-table-row-item-label-text-line-height: 1.= -25rem; --mat-table-row-item-label-text-size: .875rem; --mat-table-row-item-= -label-text-weight: 400; --mat-table-row-item-label-text-tracking: .016rem; = ---mat-table-footer-supporting-text-font: Roboto, sans-serif; --mat-table-fo= -oter-supporting-text-line-height: 1.25rem; --mat-table-footer-supporting-te= -xt-size: .875rem; --mat-table-footer-supporting-text-weight: 400; --mat-tab= -le-footer-supporting-text-tracking: .016rem; --mat-table-header-container-h= -eight: 56px; --mat-table-footer-container-height: 52px; --mat-table-row-ite= -m-container-height: 52px; --mat-table-row-item-outline-width: 1px; --mdc-ci= -rcular-progress-active-indicator-color: #7d00fa; --mdc-circular-progress-ac= -tive-indicator-width: 4px; --mdc-circular-progress-size: 48px; --mat-badge-= -background-color: #ba1a1a; --mat-badge-text-color: #ffffff; --mat-badge-dis= -abled-state-background-color: rgba(186, 26, 26, .38); --mat-badge-disabled-= -state-text-color: #ffffff; --mat-badge-text-font: Roboto, sans-serif; --mat= --badge-text-size: .688rem; --mat-badge-text-weight: 500; --mat-badge-large-= -size-text-size: .688rem; --mat-badge-container-shape: 9999px; --mat-badge-c= -ontainer-size: 16px; --mat-badge-small-size-container-size: 6px; --mat-badg= -e-large-size-container-size: 16px; --mat-badge-legacy-container-size: unset= -; --mat-badge-legacy-small-size-container-size: unset; --mat-badge-legacy-l= -arge-size-container-size: unset; --mat-badge-container-offset: -12px 0; --m= -at-badge-small-size-container-offset: -6px 0; --mat-badge-large-size-contai= -ner-offset: -12px 0; --mat-badge-container-overlap-offset: -12px; --mat-bad= -ge-small-size-container-overlap-offset: -6px; --mat-badge-large-size-contai= -ner-overlap-offset: -12px; --mat-badge-container-padding: 0 4px; --mat-badg= -e-small-size-container-padding: 0; --mat-badge-large-size-container-padding= -: 0 4px; --mat-badge-line-height: 16px; --mat-badge-small-size-text-size: 0= -; --mat-badge-small-size-line-height: 6px; --mat-badge-large-size-line-heig= -ht: 16px; --mat-bottom-sheet-container-text-color: #1d1b1e; --mat-bottom-sh= -eet-container-background-color: #f8f2f6; --mat-bottom-sheet-container-text-= -font: Roboto, sans-serif; --mat-bottom-sheet-container-text-line-height: 1.= -5rem; --mat-bottom-sheet-container-text-size: 1rem; --mat-bottom-sheet-cont= -ainer-text-tracking: .031rem; --mat-bottom-sheet-container-text-weight: 400= -; --mat-bottom-sheet-container-shape: 28px; --mat-standard-button-toggle-ho= -ver-state-layer-opacity: .08; --mat-standard-button-toggle-focus-state-laye= -r-opacity: .12; --mat-standard-button-toggle-text-color: #1d1b1e; --mat-sta= -ndard-button-toggle-state-layer-color: #1d1b1e; --mat-standard-button-toggl= -e-selected-state-background-color: #eadef7; --mat-standard-button-toggle-se= -lected-state-text-color: #1f182a; --mat-standard-button-toggle-disabled-sta= -te-text-color: rgba(29, 27, 30, .38); --mat-standard-button-toggle-disabled= --selected-state-text-color: rgba(29, 27, 30, .38); --mat-standard-button-to= -ggle-disabled-selected-state-background-color: rgba(29, 27, 30, .12); --mat= --standard-button-toggle-divider-color: #7b757f; --mat-standard-button-toggl= -e-label-text-font: Roboto, sans-serif; --mat-standard-button-toggle-label-t= -ext-line-height: 1.25rem; --mat-standard-button-toggle-label-text-size: .87= -5rem; --mat-standard-button-toggle-label-text-tracking: .006rem; --mat-stan= -dard-button-toggle-label-text-weight: 500; --mat-standard-button-toggle-hei= -ght: 40px; --mat-standard-button-toggle-shape: 9999px; --mat-standard-butto= -n-toggle-background-color: transparent; --mat-standard-button-toggle-disabl= -ed-state-background-color: transparent; --mat-datepicker-calendar-date-sele= -cted-state-text-color: #ffffff; --mat-datepicker-calendar-date-selected-sta= -te-background-color: #7d00fa; --mat-datepicker-calendar-date-selected-disab= -led-state-background-color: rgba(29, 27, 30, .38); --mat-datepicker-calenda= -r-date-today-selected-state-outline-color: #7d00fa; --mat-datepicker-calend= -ar-date-focus-state-background-color: rgba(29, 27, 30, .12); --mat-datepick= -er-calendar-date-hover-state-background-color: rgba(29, 27, 30, .08); --mat= --datepicker-toggle-active-state-icon-color: #49454e; --mat-datepicker-calen= -dar-date-in-range-state-background-color: #ecdcff; --mat-datepicker-calenda= -r-date-in-comparison-range-state-background-color: #ecdcff; --mat-datepicke= -r-calendar-date-in-overlap-range-state-background-color: #eadef7; --mat-dat= -epicker-calendar-date-in-overlap-range-selected-state-background-color: #64= -5b70; --mat-datepicker-toggle-icon-color: #49454e; --mat-datepicker-calenda= -r-body-label-text-color: #1d1b1e; --mat-datepicker-calendar-period-button-t= -ext-color: #49454e; --mat-datepicker-calendar-period-button-icon-color: #49= -454e; --mat-datepicker-calendar-navigation-button-icon-color: #49454e; --ma= -t-datepicker-calendar-header-text-color: #49454e; --mat-datepicker-calendar= --date-today-outline-color: #7d00fa; --mat-datepicker-calendar-date-today-di= -sabled-state-outline-color: rgba(29, 27, 30, .38); --mat-datepicker-calenda= -r-date-text-color: #1d1b1e; --mat-datepicker-calendar-date-disabled-state-t= -ext-color: rgba(29, 27, 30, .38); --mat-datepicker-calendar-date-preview-st= -ate-outline-color: #7d00fa; --mat-datepicker-range-input-separator-color: #= -1d1b1e; --mat-datepicker-range-input-disabled-state-separator-color: rgba(2= -9, 27, 30, .38); --mat-datepicker-range-input-disabled-state-text-color: rg= -ba(29, 27, 30, .38); --mat-datepicker-calendar-container-background-color: = -#ede6eb; --mat-datepicker-calendar-container-text-color: #1d1b1e; --mat-dat= -epicker-calendar-text-font: Roboto, sans-serif; --mat-datepicker-calendar-t= -ext-size: .875rem; --mat-datepicker-calendar-body-label-text-size: .875rem;= - --mat-datepicker-calendar-body-label-text-weight: 500; --mat-datepicker-ca= -lendar-period-button-text-size: .875rem; --mat-datepicker-calendar-period-b= -utton-text-weight: 500; --mat-datepicker-calendar-header-text-size: .875rem= -; --mat-datepicker-calendar-header-text-weight: 500; --mat-datepicker-calen= -dar-container-shape: 16px; --mat-datepicker-calendar-container-touch-shape:= - 28px; --mat-datepicker-calendar-container-elevation-shadow: 0px 0px 0px 0p= -x rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rg= -ba(0, 0, 0, .12); --mat-datepicker-calendar-container-touch-elevation-shado= -w: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0= -px 0px 0px 0px rgba(0, 0, 0, .12); --mat-datepicker-calendar-header-divider= --color: transparent; --mat-datepicker-calendar-date-outline-color: transpar= -ent; --mat-divider-color: #7b757f; --mat-divider-width: 1px; --mat-expansio= -n-container-background-color: #fef8fc; --mat-expansion-container-text-color= -: #1d1b1e; --mat-expansion-actions-divider-color: #7b757f; --mat-expansion-= -header-hover-state-layer-color: rgba(29, 27, 30, .08); --mat-expansion-head= -er-focus-state-layer-color: rgba(29, 27, 30, .12); --mat-expansion-header-d= -isabled-state-text-color: rgba(29, 27, 30, .38); --mat-expansion-header-tex= -t-color: #1d1b1e; --mat-expansion-header-description-color: #49454e; --mat-= -expansion-header-indicator-color: #49454e; --mat-expansion-header-text-font= -: Roboto, sans-serif; --mat-expansion-header-text-size: 1rem; --mat-expansi= -on-header-text-weight: 500; --mat-expansion-header-text-line-height: 1.5rem= -; --mat-expansion-header-text-tracking: .009rem; --mat-expansion-container-= -text-font: Roboto, sans-serif; --mat-expansion-container-text-line-height: = -1.5rem; --mat-expansion-container-text-size: 1rem; --mat-expansion-containe= -r-text-tracking: .031rem; --mat-expansion-container-text-weight: 400; --mat= --expansion-header-collapsed-state-height: 48px; --mat-expansion-header-expa= -nded-state-height: 64px; --mat-expansion-container-shape: 12px; --mat-expan= -sion-legacy-header-indicator-display: none; --mat-expansion-header-indicato= -r-display: inline-block; --mat-grid-list-tile-header-primary-text-size: 400= - 1rem / 1.5rem Roboto, sans-serif; --mat-grid-list-tile-header-secondary-te= -xt-size: 400 .875rem / 1.25rem Roboto, sans-serif; --mat-grid-list-tile-foo= -ter-primary-text-size: 400 1rem / 1.5rem Roboto, sans-serif; --mat-grid-lis= -t-tile-footer-secondary-text-size: 400 .875rem / 1.25rem Roboto, sans-serif= -; --mat-icon-color: inherit; --mat-sidenav-container-background-color: #fef= -8fc; --mat-sidenav-container-text-color: #49454e; --mat-sidenav-content-bac= -kground-color: #fef8fc; --mat-sidenav-content-text-color: #1d1b1e; --mat-si= -denav-scrim-color: rgba(51, 47, 55, .4); --mat-sidenav-container-shape: 16p= -x; --mat-sidenav-container-elevation-shadow: none; --mat-sidenav-container-= -width: 360px; --mat-sidenav-container-divider-color: transparent; --mat-ste= -pper-header-icon-foreground-color: #fef8fc; --mat-stepper-header-selected-s= -tate-icon-background-color: #7d00fa; --mat-stepper-header-selected-state-ic= -on-foreground-color: #ffffff; --mat-stepper-header-edit-state-icon-backgrou= -nd-color: #7d00fa; --mat-stepper-header-edit-state-icon-foreground-color: #= -ffffff; --mat-stepper-container-color: #fef8fc; --mat-stepper-line-color: #= -7b757f; --mat-stepper-header-hover-state-layer-color: rgba(50, 48, 51, .08)= -; --mat-stepper-header-focus-state-layer-color: rgba(50, 48, 51, .12); --ma= -t-stepper-header-label-text-color: #49454e; --mat-stepper-header-optional-l= -abel-text-color: #49454e; --mat-stepper-header-selected-state-label-text-co= -lor: #49454e; --mat-stepper-header-error-state-label-text-color: #ba1a1a; -= --mat-stepper-header-icon-background-color: #49454e; --mat-stepper-header-er= -ror-state-icon-foreground-color: #ba1a1a; --mat-stepper-container-text-font= -: Roboto, sans-serif; --mat-stepper-header-label-text-font: Roboto, sans-se= -rif; --mat-stepper-header-label-text-size: .875rem; --mat-stepper-header-la= -bel-text-weight: 500; --mat-stepper-header-error-state-label-text-size: .87= -5rem; --mat-stepper-header-selected-state-label-text-size: .875rem; --mat-s= -tepper-header-selected-state-label-text-weight: 500; --mat-stepper-header-h= -eight: 72px; --mat-stepper-header-focus-state-layer-shape: 12px; --mat-step= -per-header-hover-state-layer-shape: 12px; --mat-stepper-header-error-state-= -icon-background-color: transparent; --mat-sort-arrow-color: #1d1b1e; --mat-= -toolbar-container-background-color: #fef8fc; --mat-toolbar-container-text-c= -olor: #1d1b1e; --mat-toolbar-title-text-font: Roboto, sans-serif; --mat-too= -lbar-title-text-line-height: 1.75rem; --mat-toolbar-title-text-size: 1.375r= -em; --mat-toolbar-title-text-tracking: 0; --mat-toolbar-title-text-weight: = -400; --mat-toolbar-standard-height: 64px; --mat-toolbar-mobile-height: 56px= -; --mat-tree-container-background-color: #fef8fc; --mat-tree-node-text-colo= -r: #1d1b1e; --mat-tree-node-text-font: Roboto, sans-serif; --mat-tree-node-= -text-size: 1rem; --mat-tree-node-text-weight: 400; --mat-tree-node-min-heig= -ht: 48px; } - -.mat-theme-loaded-marker { display: none; } - -[ispinput]:-webkit-autofill { animation: auto ease 0s 1 normal none running= - ispAutofill; } - -@keyframes ispAutofill {=20 -} - -:root { --isp-c-interstellar: #1a1a1a; --isp-c-black-cat: #262626; --isp-c-= -darth-vader: #333333; --isp-c-stranger-things: #404040; --isp-c-creepy-clou= -d: #595959; --isp-c-lovely-puddle: #727272; --isp-c-grey-weekdays: #999999;= - --isp-c-inconspicuous: #d9d9d9; --isp-c-gandalf-the-grey: #e6e6e6; --isp-c= --russian-north: #f2f2f2; --isp-c-jon-snow: #ffffff; --isp-c-devilman: #2e1f= -24; --isp-c-donor: #7d3641; --isp-c-nosferatu: #e50026; --isp-c-mabel-pines= -: #ff4c6a; --isp-c-mister-pink: #ff99aa; --isp-c-natasha-rostova-dress: #ff= -f0f2; --isp-c-dead-sun: #2e2c1f; --isp-c-hangover: #635c36; --isp-c-c-3po: = -#ffaa00; --isp-c-happy-bob: #ffdd33; --isp-c-honey-block: #ffee99; --isp-c-= -moon-prism-power: #fffbe5; --isp-c-gyokuro: #1f2e26; --isp-c-green-mile: #3= -6634c; --isp-c-grasshopper: #1fad66; --isp-c-shire: #26d97f; --isp-c-emeral= -d-splash: #a8f0cc; --isp-c-celery-juice: #e9fbf2; --isp-c-echo: #1f2b47; --= -isp-c-malewicz: #263659; --isp-c-silent-hill: #3d568f; --isp-c-deep: #3c6cd= -d; --isp-c-blue-velvet: #4778eb; --isp-c-mood: #80a6ff; --isp-c-fantomas: #= -b3c9ff; --isp-c-blue-frost: #ccdbff; --isp-c-crystal-castles: #e6edff; --is= -p-c-odysseus: #2eb8b8; --isp-c-desolation-of-smaug: #0000004d; --isp-c-wedd= -ing-dress: #ffffffb2; --isp-c-air: #4778eb1a; --isp-c-red-carrie: #cc0022; = ---isp-dc-brotherhood-of-steel: var(--isp-c-lovely-puddle); --isp-dc-charlie= --chaplin: var(--isp-c-inconspicuous); --isp-dc-reincarnation: var(--isp-c-g= -andalf-the-grey); --isp-dc-norilsk: var(--isp-c-russian-north); --isp-dc-mo= -nochrome: var(--isp-c-jon-snow); --isp-dc-highway-star: var(--isp-c-malewic= -z); --isp-dc-lapis-lazuli: var(--isp-c-deep); --isp-dc-fremen: var(--isp-c-= -blue-velvet); --isp-dc-the-institute: var(--isp-c-fantomas); --isp-dc-mass-= -relay: var(--isp-c-blue-frost); --isp-dc-made-in-heaven: var(--isp-c-crysta= -l-castles); --isp-dc-cult: var(--isp-c-crystal-castles); --isp-dc-sodalite:= - var(--isp-c-fantomas); --isp-dc-aurora-borealis: var(--isp-c-celery-juice)= -; --isp-dc-alexandrite: var(--isp-c-emerald-splash); --isp-dc-dirty-deeds-d= -one-dirt-cheap: var(--isp-c-natasha-rostova-dress); --isp-dc-rhodochrosite:= - var(--isp-c-mister-pink); --isp-dc-bright-emotions: var(--isp-c-nosferatu)= -; --isp-dc-new-vegas: var(--isp-c-moon-prism-power); --isp-dc-heliodor: var= -(--isp-c-honey-block); --isp-dc-mimic: var(--isp-c-russian-north); --isp-dc= --cow: var(--isp-c-jon-snow); --isp-dc-glass: var(--isp-c-wedding-dress); --= -isp-dc-zebra: var(--isp-c-russian-north); --isp-dc-red-sun: var(--isp-c-red= --carrie); --isp-dc-blue-1: var(--isp-c-blue-velvet); color-scheme: light; } - -[data-color-scheme=3D"dark"] { --isp-dc-brotherhood-of-steel: var(--isp-c-s= -tranger-things); --isp-dc-charlie-chaplin: var(--isp-c-stranger-things); --= -isp-dc-reincarnation: var(--isp-c-stranger-things); --isp-dc-norilsk: var(-= --isp-c-darth-vader); --isp-dc-monochrome: var(--isp-c-interstellar); --isp-= -dc-highway-star: var(--isp-c-gandalf-the-grey); --isp-dc-lapis-lazuli: var(= ---isp-c-blue-velvet); --isp-dc-fremen: var(--isp-c-mood); --isp-dc-the-inst= -itute: var(--isp-c-silent-hill); --isp-dc-mass-relay: var(--isp-c-malewicz)= -; --isp-dc-made-in-heaven: var(--isp-c-echo); --isp-dc-cult: var(--isp-c-ma= -lewicz); --isp-dc-sodalite: var(--isp-c-silent-hill); --isp-dc-aurora-borea= -lis: var(--isp-c-gyokuro); --isp-dc-alexandrite: var(--isp-c-green-mile); -= --isp-dc-dirty-deeds-done-dirt-cheap: var(--isp-c-devilman); --isp-dc-rhodoc= -hrosite: var(--isp-c-donor); --isp-dc-bright-emotions: var(--isp-c-mabel-pi= -nes); --isp-dc-new-vegas: var(--isp-c-dead-sun); --isp-dc-heliodor: var(--i= -sp-c-hangover); --isp-dc-mimic: var(--isp-c-black-cat); --isp-dc-cow: var(-= --isp-c-black-cat); --isp-dc-glass: var(--isp-c-desolation-of-smaug); --isp-= -dc-zebra: var(--isp-c-interstellar); --isp-dc-red-sun: var(--isp-c-nosferat= -u); --isp-dc-blue-1: var(--isp-c-silent-hill); color-scheme: dark; } - -:root { --isp-text-font-family: "Ubuntu", system-ui, sans-serif; --isp-text= --color-main: var(--isp-dc-highway-star); --isp-checkbox-checked-image: url(= -"data:image/svg+xml,%3Csvg xmlns=3D'http://www.w3.org/2000/svg' width=3D'12= -' height=3D'13'%3E%3Cpath d=3D'M1 6.435l3.385 4.936L11 1.5' stroke-width=3D= -'2' stroke=3D'%231A76E2' fill=3D'none' stroke-linecap=3D'round' stroke-line= -join=3D'round'/%3E%3C/svg%3E%0A"); --isp-checkbox-checked-image-disabled: u= -rl("data:image/svg+xml,%3Csvg width=3D'15' height=3D'15' fill=3D'none' xmln= -s=3D'http://www.w3.org/2000/svg'%3E%3Cpath d=3D'M3.24 6.54 6.78 12l6.04-9.8= -6' stroke=3D'%23797979' stroke-width=3D'2' stroke-linecap=3D'round' stroke-= -linejoin=3D'round'/%3E%3C/svg%3E"); --isp-font-weight-bold: 500; --isp-bord= -er-radius-main: 5px; --isp-box-shadow: 0px 1px 4px var(--isp-c-desolation-o= -f-smaug); --isp-d-filter-invert: none; --isp-full-sidebar-width: 275px; --i= -sp-collapsed-sidebar-width: 65px; --isp-topbar-top-line-height: 45px; --isp= --topbar-height: var(--isp-topbar-top-line-height); --isp-opened-narrow-bann= -er-height: 25px; } - -[data-color-scheme=3D"dark"] { --isp-d-filter-invert: invert(1) sepia(2%) s= -aturate(16%) hue-rotate(220deg) brightness(113%) contrast(80%); } - -:root { --isp-z-index-guide: 600; --isp-z-index-skeleton-loader: 500; --isp= --z-index-color-scheme-overlay: 400; --isp-z-index-confirm: 260; --isp-code-= -editor-select-popup-z-index: 255; --isp-z-index-form-code-editor: 250; --is= -p-tooltip-z-index: 230; --isp-menu-dropdown-z-index: 220; --isp-header-drop= -down-z-index: 210; --isp-global-search-z-index: var(--isp-header-dropdown-z= --index); --isp-notification-center-dropdown-z-index: var( --isp-header-drop= -down-z-index ); --isp-upload-center-dropdown-z-index: var(--isp-header-drop= -down-z-index); --isp-help-center-dropdown-z-index: var(--isp-header-dropdow= -n-z-index); --isp-session-tip-popup-z-index: 200; --isp-toast-z-index: 196;= - --isp-header-z-index: 195; --isp-form-validation-z-index: 190; --isp-progr= -ess-bar-z-index: 180; --isp-progress-modal-z-index: 170; --isp-progress-mod= -al-overlay-z-index: 160; --isp-context-menu-dropdown-z-index: var(--isp-lis= -t-header-dropdown-z-index); --isp-list-filter-z-index: var(--isp-list-heade= -r-dropdown-z-index); --isp-list-toolbar-popup-z-index: var(--isp-list-heade= -r-dropdown-z-index); --isp-list-header-dropdown-z-index: 155; --isp-notific= -ation-group-z-index: 150; --isp-useful-links-dropdown-z-index: 140; --isp-z= --index-form-close-button: 130; --isp-z-index-layout-skeleton: 129; --isp-fo= -rm-preloader-z-index: 125; --isp-dynamic-form-dropdown-z-index_place_drawer= -: 120; --isp-z-index-keepalive-frame: 115; --isp-z-index-fullpage-frame: 11= -0; --isp-z-index-drawer: 100; --isp-dynamic-form-header-and-footer-sticky-z= --index_place_drawer: 110; --isp-dynamic-form-tooltip-dropdown-z-index_place= -_standard: var( --isp-form-tooltip-z-index ); --isp-form-tooltip-z-index: 9= -5; --isp-dynamic-form-dropdown-z-index_place_standard: 90; --isp-dynamic-fo= -rm-dropdown-z-index_place_external: var( --isp-dynamic-form-dropdown-z-inde= -x_place_standard ); --isp-dynamic-form-header-and-footer-sticky-z-index_pla= -ce_standard: 80; --isp-form-summary-z-index: 50; --isp-list-dragdrop-target= --z-index: 45; --isp-dynamic-form-dropdown-z-index_place_filter: 30; --isp-d= -ropdown-z-index-default: 20; --isp-list-edit-cell-dropdown-popup-z-index: 1= -0; --isp-table-resizer__control-th_dragging-z-index: 10; --isp-narrow-banne= -r-danger-z-index: 4; --isp-narrow-banner-warning-z-index: 3; --isp-narrow-b= -anner-info-z-index: 2; --isp-table-th-z-index: 2; --isp-narrow-banner-succe= -ss-z-index: 1; --isp-table-z-index: 1; } - -:root { --isp-icons-main-color: var(--isp-dc-highway-star); --isp-icons-suc= -cess-color: var(--isp-c-grasshopper); --isp-icons-danger-color: var(--isp-d= -c-bright-emotions); --isp-icons-accent-color: var(--isp-c-c-3po); --isp-ico= -ns-yellow-color: var(--isp-c-happy-bob); --isp-icons-blue-color: var(--isp-= -c-blue-velvet); --isp-icons-fill-color: var(--isp-dc-monochrome); } - -.isp-main-panel-body .mat-calendar { --mat-datepicker-calendar-text-font: v= -ar(--isp-text-font-family); --mdc-icon-button-icon-color: var(--isp-c-blue-= -velvet); --mdc-icon-button-disabled-icon-color: var(--isp-c-grey-weekdays);= - --mat-icon-button-ripple-color: transparent; --mat-icon-button-state-layer= --color: var(--isp-dc-norilsk); --mat-icon-button-hover-state-layer-opacity:= - 1; --mat-icon-button-pressed-state-layer-opacity: 1; --mdc-text-button-lab= -el-text-weight: normal; --mat-text-button-ripple-color: transparent; --mat-= -text-button-state-layer-color: var(--isp-dc-norilsk); --mat-text-button-hov= -er-state-layer-opacity: 1; --mat-text-button-pressed-state-layer-opacity: 1= -; --mat-datepicker-calendar-period-button-text-color: var( --isp-text-color= --main ); --mat-datepicker-calendar-header-text-weight: bold; --mat-datepick= -er-calendar-header-text-color: var(--isp-text-color-main); --mat-datepicker= --calendar-date-text-color: var(--isp-text-color-main); --mat-datepicker-cal= -endar-date-disabled-state-text-color: var( --isp-c-grey-weekdays ); --mat-d= -atepicker-calendar-date-hover-state-background-color: var( --isp-dc-norilsk= - ); --mat-datepicker-calendar-date-selected-state-background-color: var( --= -isp-dc-fremen ); --mat-datepicker-calendar-date-selected-state-text-color: = -var( --isp-c-jon-snow ); --mat-datepicker-calendar-date-in-range-state-back= -ground-color: var( --isp-dc-cult ); --mat-datepicker-calendar-date-today-se= -lected-state-outline-color: transparent; } - -.isp-main-panel-body .mat-calendar .mat-mdc-button-persistent-ripple { bord= -er-radius: var(--isp-border-radius-main); } - -.isp-main-panel-body .mat-calendar .mat-calendar-header { padding: 15px 15p= -x 10px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-controls { justify-content= -: space-between; margin: 0px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-spacer { display: none; } - -.isp-main-panel-body .mat-calendar .mat-calendar-previous-button, .isp-main= --panel-body .mat-calendar .mat-calendar-next-button { width: 25px; height: = -25px; padding: 0px 0px 0px 7px; border-radius: var(--isp-border-radius-main= -); } - -.isp-main-panel-body .mat-calendar .mat-calendar-previous-button::after, .i= -sp-main-panel-body .mat-calendar .mat-calendar-next-button::after { positio= -n: relative; display: block; width: 8px; height: 8px; margin: 0px; border-t= -op-width: 1px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-previous-button { order: 0= -; border-left-width: 1px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-previous-button::after { b= -order-left-width: 1px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-period-button { order: 1; = -height: 25px; font-family: inherit; border-radius: var(--isp-border-radius-= -main); } - -.isp-main-panel-body .mat-calendar .mat-calendar-period-button .mat-calenda= -r-arrow { display: none; } - -.isp-main-panel-body .mat-calendar .mat-calendar-next-button { order: 2; bo= -rder-right-width: 1px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-next-button::after { borde= -r-right-width: 1px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-label { visibility: h= -idden; } - -.isp-main-panel-body .mat-calendar .mat-calendar-table { width: 250px; heig= -ht: 250px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-table-header th span { dis= -play: block; text-transform: capitalize; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body tr:not([role=3D"row"]= -) { display: none; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-cell { height: 25px; = -} - -.isp-main-panel-body .mat-calendar mat-month-view .mat-calendar-body-cell {= - margin-left: 4px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-cell-content { top: 0= -px; width: 100%; height: 25px; border: none; border-radius: var(--isp-borde= -r-radius-main); } - -.isp-main-panel-body .mat-calendar mat-month-view .mat-calendar-body-cell-c= -ontent { width: 25px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-cell::before, .isp-ma= -in-panel-body .mat-calendar .mat-calendar-body-cell::after { top: 0px; heig= -ht: 100%; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-range-end:not(.mat-ca= -lendar-body-in-comparison-range)::before { width: 50%; border-radius: 0px; = -} - -.isp-main-panel-body .mat-calendar .mat-calendar-body-in-preview .mat-calen= -dar-body-cell-preview { top: 0px; height: 25px; background-color: var(--isp= --dc-norilsk); border: none; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-in-preview .mat-calen= -dar-body-cell-preview, .isp-main-panel-body .mat-calendar .mat-calendar-bod= -y-preview-start .mat-calendar-body-cell-preview, .isp-main-panel-body .mat-= -calendar .mat-calendar-body-preview-end .mat-calendar-body-cell-preview { t= -op: 0px; left: 0px; width: 100%; height: 25px; background: var(--isp-dc-nor= -ilsk); border: none; border-radius: 0px; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-preview-start .mat-ca= -lendar-body-cell-preview { left: 50%; width: 50%; } - -.isp-main-panel-body .mat-calendar .mat-calendar-body-preview-end .mat-cale= -ndar-body-cell-preview { width: 50%; } - -body .tox .tox-dialog { max-width: 600px; } - -* { box-sizing: border-box; } - -:root { --isp-layout-min-width: 960px; --isp-fullscreen-min-width: 540px; i= -nterpolate-size: allow-keywords; } - -html { height: 100%; } - -@media (max-width: 960px) { - html { overflow-x: auto; } -} - -body { height: 100%; padding: 0px; margin: 0px; overflow: hidden; font-fami= -ly: var(--isp-text-font-family); font-size: 14px; color: var(--isp-text-col= -or-main); background-color: var(--isp-dc-monochrome); cursor: unset; } - -body.isp-main-panel-body { min-width: var(--isp-layout-min-width); } - -body.isp-fullscreen-body { min-width: var(--isp-fullscreen-min-width); heig= -ht: 100%; } - -body.dragging * { cursor: inherit !important; } - -a { font-size: 14px; color: var(--isp-dc-fremen); text-decoration: none; cu= -rsor: pointer; } - -a:hover { color: var(--isp-dc-lapis-lazuli); text-decoration: underline; } - -a:active { color: var(--isp-dc-fremen); text-decoration: underline; } - -.ispui-scrollbar_gray { scrollbar-color: var(--isp-scrollbar-thumb-bg, var(= ---isp-c-grey-weekdays)) var(--isp-scrollbar-track-bg, var(--isp-dc-charlie-= -chaplin)); scrollbar-width: thin; } - -.ispui-scrollbar_gray::-webkit-scrollbar, .ispui-scrollbar_gray::-webkit-sc= -rollbar-track, .ispui-scrollbar_gray::-webkit-scrollbar-thumb { width: 5px;= - border-radius: 10px; } - -.ispui-scrollbar_gray::-webkit-scrollbar, .ispui-scrollbar_gray::-webkit-sc= -rollbar-track { background-color: var(--isp-dc-charlie-chaplin); } - -.ispui-scrollbar_gray::-webkit-scrollbar-thumb { background-color: var(--is= -p-c-grey-weekdays); } - -.ispui-scrollbar_gray::-webkit-scrollbar-thumb:hover { background-color: va= -r(--isp-c-blue-velvet); } - -.ispui-scrollbar_gray::-webkit-scrollbar-button { display: none; } - -.isp-tooltip_ellipsis { overflow: hidden; text-overflow: ellipsis; white-sp= -ace: nowrap; } - -.isp-toolbar-button-hint a { display: block; width: fit-content; margin-top= -: 5px; color: var(--isp-c-happy-bob); text-decoration: none; } - -.isp-usefullink a { display: block; margin-bottom: 11px; color: var(--isp-d= -c-fremen); text-decoration: none; } - -.isp-usefullink a:hover { color: var(--isp-dc-lapis-lazuli); } - -.isp-usefullink a:active { color: var(--isp-dc-fremen); } - -.hidden-hydrated:not(.hydrated) { display: none; } - -.isp-button { display: inline-flex; align-items: center; justify-content: c= -enter; width: var(--isp-button-width, unset); min-width: 70px; height: 35px= -; padding: 0px 14px; font: 14px Ubuntu, sans-serif; white-space: nowrap; bo= -rder-style: solid; border-width: 1px; border-radius: var(--isp-border-radiu= -s-main, 5px); cursor: pointer; transition-property: background-color, borde= -r-color, color; transition-duration: 0.25s; } - -.isp-button:disabled { cursor: not-allowed; } - -.isp-button_theme_primary { --isp-icons-main-color: var(--isp-c-jon-snow); = ---isp-icons-success-color: var(--isp-c-jon-snow); --isp-icons-danger-color:= - var(--isp-c-jon-snow); --isp-icons-accent-color: var(--isp-c-jon-snow); co= -lor: var(--isp-c-jon-snow); background: var(--isp-c-blue-velvet); border-co= -lor: var(--isp-c-blue-velvet); } - -.isp-button_theme_primary:hover { background: var(--isp-c-deep); border-col= -or: var(--isp-c-deep); } - -.isp-button_theme_primary:disabled, .isp-button_theme_primary:disabled:hove= -r { --isp-icons-main-color: var(--isp-c-grey-weekdays); --isp-icons-success= --color: var(--isp-c-grey-weekdays); --isp-icons-danger-color: var(--isp-c-g= -rey-weekdays); --isp-icons-accent-color: var(--isp-c-grey-weekdays); color:= - var(--isp-c-grey-weekdays); background: var(--isp-dc-norilsk); border-colo= -r: var(--isp-dc-norilsk); } - -.isp-button_theme_secondary { --isp-icons-main-color: var(--isp-dc-fremen);= - --isp-icons-success-color: var(--isp-dc-fremen); --isp-icons-danger-color:= - var(--isp-dc-fremen); --isp-icons-accent-color: var(--isp-dc-fremen); colo= -r: var(--isp-dc-fremen); background: transparent; border-color: var(--isp-d= -c-fremen); } - -.isp-button_theme_secondary:hover { color: var(--isp-dc-lapis-lazuli); back= -ground: transparent; border-color: var(--isp-dc-lapis-lazuli); } - -.isp-button_theme_secondary:disabled, .isp-button_theme_secondary:disabled:= -hover { --isp-icons-main-color: var(--isp-c-grey-weekdays); --isp-icons-suc= -cess-color: var(--isp-c-grey-weekdays); --isp-icons-danger-color: var(--isp= --c-grey-weekdays); --isp-icons-accent-color: var(--isp-c-grey-weekdays); co= -lor: var(--isp-c-grey-weekdays); border-color: var(--isp-dc-charlie-chaplin= -); } - -.isp-button_theme_danger { --isp-icons-main-color: var(--isp-dc-bright-emot= -ions); --isp-icons-success-color: var(--isp-dc-bright-emotions); --isp-icon= -s-danger-color: var(--isp-dc-bright-emotions); --isp-icons-accent-color: va= -r(--isp-dc-bright-emotions); color: var(--isp-dc-bright-emotions); backgrou= -nd: transparent; border-color: var(--isp-dc-bright-emotions); } - -.isp-button_theme_accent { --isp-icons-main-color: var(--isp-c-malewicz); -= --isp-icons-success-color: var(--isp-c-malewicz); --isp-icons-danger-color: = -var(--isp-c-malewicz); --isp-icons-accent-color: var(--isp-c-malewicz); col= -or: var(--isp-c-malewicz); background: var(--isp-c-happy-bob); border-color= -: var(--isp-c-happy-bob); } - -.isp-button_theme_accent:not(.isp-button_no-hover):hover { border-color: va= -r(--isp-c-honey-block); } - -.isp-button_theme_accent:disabled, .isp-button_theme_accent:disabled:hover = -{ --isp-icons-main-color: var(--isp-c-grey-weekdays); --isp-icons-success-c= -olor: var(--isp-c-grey-weekdays); --isp-icons-danger-color: var(--isp-c-gre= -y-weekdays); --isp-icons-accent-color: var(--isp-c-grey-weekdays); color: v= -ar(--isp-c-grey-weekdays); background: var(--isp-dc-norilsk); border-color:= - var(--isp-dc-norilsk); } - -.isp-button_theme_icon { width: 25px; min-width: 25px; height: 25px; paddin= -g: 0px; background: none; border: none; border-radius: var(--isp-border-rad= -ius-main); transition: background-color 0.15s ease-in-out; } - -.isp-button_theme_icon:hover { background-color: var(--isp-dc-norilsk); } - -.isp-link { color: var(--isp-dc-fremen); cursor: pointer; } - -.isp-link:active { color: var(--isp-dc-fremen); } - -.isp-link:hover { color: var(--isp-dc-lapis-lazuli); text-decoration: under= -line; } - -.isp-link_underline { text-decoration: underline; } - -.isp-link_disabled { color: var(--isp-c-grey-weekdays); pointer-events: non= -e; } - -.isp-close { position: relative; display: block; width: var(--isp-close-siz= -e, 15px); height: var(--isp-close-size, 15px); background-color: var(--isp-= -close-bg, transparent); border: var(--isp-close-border, none); border-radiu= -s: 50%; cursor: pointer; transition: background-color 0.2s; } - -.isp-close:hover { background-color: var(--isp-close-hover-bg, --isp-dc-gla= -ss); } - -.isp-close::before, .isp-close::after { position: absolute; top: 50%; left:= - 50%; content: ""; width: calc(var(--isp-close-cross-size, 9px) / .71); hei= -ght: 1px; background-color: var(--isp-close-icon-color, var(--isp-text-colo= -r-main)); border-radius: 10px; transform: translate(-50%, -50%) rotate(45de= -g); transform-origin: center center; } - -.isp-close::after { transform: translate(-50%, -50%) rotate(-45deg); } - -.isp-table { position: relative; z-index: var(--isp-table-z-index, 1); widt= -h: 100%; font: 14px Ubuntu, sans-serif; background: var(--isp-dc-monochrome= -); border-top-color: ; border-top-style: ; border-top-width: ; border-right= --color: ; border-right-style: ; border-right-width: ; border-left-color: ; = -border-left-style: ; border-left-width: ; border-image-source: ; border-ima= -ge-slice: ; border-image-width: ; border-image-outset: ; border-image-repea= -t: ; border-bottom: none; border-radius: var(--isp-table__border-radius, 5p= -x) var(--isp-table__border-radius, 5px) 0 0; table-layout: fixed; border-sp= -acing: 0px; } - -.isp-table_no-footer { border-bottom: 1px solid var(--isp-dc-charlie-chapli= -n); border-radius: var(--isp-table__border-radius, 5px) var(--isp-table__bo= -rder-radius, 5px) var(--isp-table__border-radius, 5px) var(--isp-table__bor= -der-radius, 5px); } - -.isp-table_layout-auto { table-layout: auto; } - -.isp-table__row { --isp-table-row-bg: var(--isp-dc-mimic); height: 35px; ba= -ckground: var(--isp-table-row-bg); } - -.isp-table__row:nth-child(2n) { --isp-table-row-bg: var(--isp-dc-monochrome= -); } - -.isp-table__row:hover { background: var(--isp-dc-the-institute); } - -.isp-table__row_bg_red { background: var(--isp-c-natasha-rostova-dress); } - -.isp-table__row_bg_green { background: var(--isp-c-celery-juice); } - -.isp-table__row_bg_blue { background: var(--isp-c-crystal-castles); } - -.isp-table__row_bg_yellow { background: var(--isp-dc-new-vegas); } - -.isp-table__row_bg_cyan { background: var(--isp-c-celery-juice); } - -.isp-table_no-footer .isp-table__row:last-of-type { border-radius: 0 0 var(= ---isp-table__border-radius, 5px) var(--isp-table__border-radius, 5px); } - -.isp-table__row_chosen { background: var(--isp-dc-made-in-heaven); } - -.isp-table__td { padding: 0px 7.5px; } - -.isp-table__td:first-of-type { padding-left: 15px; } - -.isp-table__td:last-of-type { padding-right: 10px; } - -.isp-table__row_chosen .isp-table__td:first-of-type { position: relative; } - -.isp-table__row_chosen .isp-table__td:first-of-type::before { position: abs= -olute; top: 0px; left: 0px; content: ""; height: 100%; border-left: 4px sol= -id var(--isp-c-blue-velvet); } - -.isp-table_no-footer .isp-table__row:last-of-type .isp-table__td:first-of-t= -ype { border-bottom-left-radius: var(--isp-table__border-radius, 5px); } - -.isp-table_no-footer .isp-table__row:last-of-type .isp-table__td:last-of-ty= -pe { border-bottom-right-radius: var(--isp-table__border-radius, 5px); } - -.isp-table_no-footer .isp-table__row_chosen:last-of-type .isp-table__td:fir= -st-of-type::before { border-bottom-left-radius: var(--isp-table__border-rad= -ius, 5px); } - -.isp-table__td_align-right { text-align: right; } - -.isp-table__th_align-right .isp-table__text, .isp-table__td_align-right .is= -p-table__text { margin-left: auto; } - -.isp-table__row:hover .isp-table__text_arrow { position: relative; left: -1= -1px; } - -.isp-table__row:hover .isp-table__text_arrow::before { position: relative; = -bottom: 2px; box-sizing: content-box; display: inline-block; content: ""; w= -idth: 5px; height: 5px; margin-right: 5px; border-right: 1px solid currentc= -olor; border-bottom: 1px solid currentcolor; border-image: initial; border-= -top: none; border-left: none; transform: rotate(-45deg); } - -.isp-table__head { font-size: 12px; } - -.isp-table__th { position: relative; z-index: var(--isp-table-th-z-index, 2= -); height: 35px; padding: 0px 7.5px; font-weight: 400; vertical-align: midd= -le; color: var(--isp-c-grey-weekdays); text-align: left; background: var(--= -isp-dc-monochrome); border-bottom: 1px solid var(--isp-dc-charlie-chaplin);= - } - -.isp-table__th:first-of-type { padding-left: 15px; } - -.isp-table__th:last-of-type { padding-right: 12px; } - -.isp-table__head-row:first-of-type .isp-table__th:first-of-type { border-to= -p-left-radius: var(--isp-table__border-radius, 5px); } - -.isp-table__head-row:first-of-type .isp-table__th:last-of-type { border-top= --right-radius: var(--isp-table__border-radius, 5px); } - -.isp-table__th_align-right { text-align: right; } - -.isp-table__hidden-th { height: 0px; padding: 0px; } - -.isp-table-footer { position: relative; display: flex; align-items: center;= - height: 35px; padding: 0px 20px; font: 14px Ubuntu, sans-serif; color: var= -(--isp-text-color-main); background: var(--isp-dc-monochrome); border: 1px = -solid var(--isp-dc-charlie-chaplin); } - -.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0p= -x; margin: -1px; overflow: hidden; clip-path: inset(100%); white-space: now= -rap; border: 0px; clip: rect(0px, 0px, 0px, 0px); } - -.isp-h1 { font-size: 25px; font-weight: 500; color: var(--isp-text-color-ma= -in); } - -.isp-h2 { font-size: 22px; font-weight: 500; color: var(--isp-text-color-ma= -in); } - -.isp-h3 { font-size: 18px; font-weight: 500; color: var(--isp-text-color-ma= -in); } - -.isp-text { font-size: 14px; line-height: 1.4; color: var(--isp-text-color-= -main); } - -.isp-text_warn { color: var(--isp-dc-bright-emotions); } - -.isp-menu-new-label { display: flex; align-items: center; height: 14px; pad= -ding: 2px 5px 0px; font-size: 8px; line-height: 8px; color: var(--isp-c-mal= -ewicz); background: var(--isp-c-happy-bob); border-radius: 5px; } - -.add_database_s, .add_s { width: 15px; height: 15px; } - -.aps { width: 30px; height: 30px; } - -.arrow_double_left_s, .arrow_double_right_s, .arrow_down_s, .arrow_left_s, = -.arrow_right_s, .arrow_right, .arrow_up_s, .arrow-double-left_s { width: 15= -px; height: 15px; } - -.arrow-down_xs { width: 9px; height: 9px; } - -.arrow-down { width: 16px; height: 16px; } - -.b-about, .b-docs, .b-enhance, .b-forum, .b-logs, .b-videoinst { width: 60p= -x; height: 60px; } - -.back_set, .back_user_set, .back_user, .ban { width: 20px; height: 20px; } - -.banner2-icon { width: 24px; height: 24px; } - -.bascket { width: 20px; height: 20px; } - -.bell_s { width: 15px; height: 15px; } - -.bitrix { width: 30px; height: 30px; } - -.c-theme { width: 16px; height: 16px; } - -.check_s { width: 10px; height: 10px; } - -.check_xs { width: 5px; height: 5px; } - -.cleaning_s, .clip_s, .clock_s, .close_m { width: 15px; height: 15px; } - -.close_medium { width: 30px; height: 30px; } - -.close_s { width: 10px; height: 10px; } - -.close_xs { width: 5px; height: 5px; } - -.close { width: 20px; height: 20px; } - -.cloud-server { width: 16px; height: 14px; } - -.copy_fm { width: 15px; height: 15px; } - -.copy { width: 10px; height: 10px; } - -.country { width: 24px; height: 24px; } - -.cover_ui_kit { width: 1024px; height: 620px; } - -.d-backup, .d-cron, .d-db, .d-docker, .d-domain, .d-email, .d-execute, .d-f= -tp-user { width: 15px; height: 15px; } - -.d-help { width: 16px; height: 16px; } - -.d-mailanswer, .d-mailbox, .d-mailsorting, .d-phpmyadmin, .d-phppgadmin, .d= --restart, .d-roundcube, .d-shell, .d-site, .d-softaculous, .d-update, .d-us= -er-reseller, .d-user, .d-wordpress { width: 15px; height: 15px; } - -.danger_s { width: 16px; height: 15px; } - -.dedicated-server { width: 15px; height: 15px; } - -.deleteoldbacted { width: 16px; height: 16px; } - -.dns-hosting { width: 16px; height: 14px; } - -.down { width: 12px; height: 6px; } - -.download_s, .drag_s { width: 15px; height: 15px; } - -.drupal { width: 30px; height: 30px; } - -.error-warning_new, .eye_close { width: 15px; height: 15px; } - -.facebook { width: 35px; height: 35px; } - -.favorites-folder-crossed-out, .favorites-folder { width: 15px; height: 15p= -x; } - -.ff-calendar-a { width: 16px; height: 16px; } - -.ff-genpwd-a { width: 15px; height: 15px; } - -.ff-minus-a, .ff-openurl-a, .ff-plus-a { width: 16px; height: 16px; } - -.ff-unlimit-a, .ff-unzoom-a, .ff-zoom-a { width: 15px; height: 15px; } - -.filter_filled, .filter_table_multy_filled, .filter_table_multy, .filter { = -width: 10px; height: 10px; } - -.folder_upload_s { width: 15px; height: 15px; } - -.frame_1962 { width: 16px; height: 16px; } - -.frame_772 { width: 18px; height: 18px; } - -.functions { width: 20px; height: 20px; } - -.galka_down_dark-blue { width: 7px; height: 4px; } - -.galka_grey { width: 5px; height: 4px; } - -.gear_plus_s, .gear_s { width: 15px; height: 15px; } - -.go { width: 10px; height: 10px; } - -.google { width: 36px; height: 35px; } - -.hamburger_icon { width: 20px; height: 20px; } - -.handler_s { width: 15px; height: 15px; } - -.headset { width: 20px; height: 20px; } - -.helloworld { width: 15px; height: 15px; } - -.host_cms_1 { width: 72px; height: 13px; } - -.info_s { width: 15px; height: 15px; } - -.ispmanager-plugin-aiwordpress, .ispmanager-plugin-bitninja, .ispmanager-pl= -ugin-blackwall, .ispmanager-plugin-cloudflare, .ispmanager-plugin-cloudlinu= -x, .ispmanager-plugin-ddosguard, .ispmanager-plugin-drweb, .ispmanager-plug= -in-kernelcare, .ispmanager-plugin-litespeed, .ispmanager-plugin-oneclickssl= -, .ispmanager-plugin-revisium, .ispmanager-plugin-siteprobuilder, .ispmanag= -er-plugin-softaculous, .ispmanager-plugin-spamexperts, .ispmanager-plugin-s= -phere, .joomla { width: 30px; height: 30px; } - -.kebab_s { width: 15px; height: 15px; } - -.l-devel, .l-excel { width: 17px; height: 16px; } - -.l-table { width: 16px; height: 16px; } - -.license_s { width: 15px; height: 15px; } - -.license-slim-blue { width: 19px; height: 20px; } - -.like_s, .log { width: 15px; height: 15px; } - -.lv-16_light { width: 24px; height: 24px; } - -.lv-16, .lv-24, .lv-29, .lv-3 { width: 15px; height: 15px; } - -.lv-30_light { width: 24px; height: 24px; } - -.lv-30, .lv-4, .lv-8, .lv-9 { width: 15px; height: 15px; } - -.lv-server { width: 16px; height: 16px; } - -.m-about, .m-access, .m-account, .m-active-connections, .m-active-sessions,= - .m-administration { width: 15px; height: 15px; } - -.m-aid { width: 16px; height: 16px; } - -.m-alert, .m-all, .m-antispam, .m-antivirus, .m-apps, .m-background-tasks, = -.m-backup, .m-backup2-list-import, .m-backup2-list, .m-backup2-superlist, .= -m-bitninja, .m-blackwall, .m-brand-settings, .m-cleaning, .m-cloudflare, .m= --cloudlinux-lve, .m-cloudlinux-restrictions, .m-cloudlinux-statistics, .m-c= -loudlinux, .m-cluster { width: 15px; height: 15px; } - -.m-clustersettings { width: 16px; height: 16px; } - -.m-community, .m-csr, .m-customer, .m-dashboard, .m-db-server, .m-db, .m-dd= -osguard, .m-directory, .m-disk, .m-dns, .m-docker-container, .m-docker, .m-= -domain, .m-domains, .m-email { width: 15px; height: 15px; } - -.m-equipment { width: 24px; height: 24px; } - -.m-execute, .m-ext, .m-file { width: 15px; height: 15px; } - -.m-finance { width: 16px; height: 16px; } - -.m-firewall, .m-ftp-user, .m-gdpr, .m-hamburger, .m-help { width: 15px; hei= -ght: 15px; } - -.m-helpboard { width: 16px; height: 16px; } - -.m-import-mail, .m-import-user, .m-info-server, .m-integration, .m-ip-group= -, .m-ip, .m-kernelcare, .m-license, .m-list-black, .m-list-changes, .m-list= --dnsbl, .m-list-white, .m-log-activity, .m-log-setting, .m-log-visit, .m-lo= -g-www, .m-mail-autoresponder, .m-mail-domain, .m-mail-sorter, .m-mail, .m-m= -ain, .m-mainmenuaccount { width: 15px; height: 15px; } - -.m-mainmenuservice, .m-maintain { width: 16px; height: 16px; } - -.m-marketing { width: 15px; height: 15px; } - -.m-mgrhelp { width: 16px; height: 16px; } - -.m-monitoring_and_journal { width: 24px; height: 24px; } - -.m-monitoring, .m-network-service { width: 15px; height: 15px; } - -.m-nolicense { width: 16px; height: 16px; } - -.m-notifications, .m-offer, .m-panel, .m-phpmyadmin, .m-phppgadmin, .m-phpv= -ersions, .m-plugin, .m-policy { width: 15px; height: 15px; } - -.m-productnode { width: 16px; height: 16px; } - -.m-provider, .m-reserved-names, .m-resource_monitoring, .m-restart, .m-rest= -rictions, .m-revisium_antivirus_func, .m-root, .m-roundcube { width: 15px; = -height: 15px; } - -.m-scheduler-grey { width: 20px; height: 20px; } - -.m-scheduler, .m-server-resources, .m-servers { width: 15px; height: 15px; = -} - -.m-service { width: 16px; height: 16px; } - -.m-services, .m-set { width: 15px; height: 15px; } - -.m-set2 { width: 17px; height: 17px; } - -.m-setting { width: 16px; height: 16px; } - -.m-settings-server, .m-shell, .m-site, .m-slave-server, .m-soft-config, .m-= -softaculous, .m-srvset, .m-sslcert, .m-statistics { width: 15px; height: 15= -px; } - -.m-support { width: 16px; height: 16px; } - -.m-sysstat, .m-technical_domain, .m-tool { width: 15px; height: 15px; } - -.m-trigger { width: 17px; height: 17px; } - -.m-user-reseller, .m-user-traffic, .m-user, .m-usershell, .m-video, .m-vpn,= - .m-web-server, .m-webdisk-user, .m-webdomain, .m-webserver, .m-wordpress-t= -emplates, .m-wordpress { width: 15px; height: 15px; } - -.m-www { width: 16px; height: 16px; } - -.mail, .mb-account { width: 15px; height: 15px; } - -.mb-coupon { width: 24px; height: 24px; } - -.mb-cron, .mb-customer { width: 16px; height: 16px; } - -.mb-domains { width: 17px; height: 16px; } - -.mb-file, .mb-finance { width: 16px; height: 16px; } - -.mb-install { width: 17px; height: 16px; } - -.mb-integration, .mb-mail, .mb-mgrhelp { width: 16px; height: 16px; } - -.mb-phpmyadmin, .mb-phppgadmin { width: 30px; height: 30px; } - -.mb-productnode, .mb-provider { width: 16px; height: 16px; } - -.mb-roundcube { width: 30px; height: 30px; } - -.mb-service { width: 16px; height: 16px; } - -.mb-set { width: 17px; height: 16px; } - -.mb-site { width: 30px; height: 30px; } - -.mb-support, .mb-www { width: 16px; height: 16px; } - -.mbar-all { width: 15px; height: 15px; } - -.mbar-five, .mbar-hideall { width: 16px; height: 16px; } - -.mbar-pin, .mbar-popular { width: 15px; height: 15px; } - -.mbar-showall { width: 16px; height: 16px; } - -.meatballs_s { width: 15px; height: 15px; } - -.miniset-grey { width: 10px; height: 10px; } - -.minus_s { width: 15px; height: 15px; } - -.moon_m { width: 20px; height: 20px; } - -.moon_s { width: 15px; height: 15px; } - -.nat { width: 16px; height: 16px; } - -.new_tab_s { width: 10px; height: 10px; } - -.new_tab { width: 15px; height: 15px; } - -.new-filter-dark { width: 16px; height: 16px; } - -.o-basket { width: 20px; height: 20px; } - -.o-copy-small { width: 10px; height: 10px; } - -.o-tool, .o-update_off, .o-update { width: 15px; height: 15px; } - -.old_notifications { width: 16px; height: 16px; } - -.p-access-panel, .p-additional, .p-admdown, .p-admin, .p-aiwp { width: 15px= -; height: 15px; } - -.p-ansible, .p-aps, .p-attach { width: 16px; height: 16px; } - -.p-attention-orange, .p-attention { width: 15px; height: 15px; } - -.p-attr, .p-auto { width: 16px; height: 16px; } - -.p-backup { width: 15px; height: 15px; } - -.p-bill-databaselimit, .p-bill-disc, .p-bill-dns, .p-bill-domainlimit, .p-b= -ill-emaillimit, .p-bill-ip, .p-bill-ipv6, .p-bill-maildomainlimit, .p-bill-= -mem, .p-bill-ncpu, .p-bill-ns { width: 16px; height: 16px; } - -.p-bill-panel { width: 16px; height: 17px; } - -.p-bill-webdomainlimit { width: 16px; height: 16px; } - -.p-billa, .p-billc, .p-bills, .p-blackwall-monitoring, .p-blackwall-off, .p= --blackwall-on, .p-block, .p-bpftp, .p-bplocal-opened, .p-bplocal, .p-bprar,= - .p-bptar, .p-bptbz2, .p-bptgz, .p-bpzip { width: 15px; height: 15px; } - -.p-camera { width: 16px; height: 16px; } - -.p-catalog, .p-cgi { width: 15px; height: 15px; } - -.p-chat, .p-clamav, .p-cloudflare, .p-cpu-1, .p-cpu-2, .p-cpu-3 { width: 16= -px; height: 16px; } - -.p-danger-red { width: 16px; height: 15px; } - -.p-db, .p-dbak, .p-ddosguard-err, .p-ddosguard-gray, .p-ddosguard-ok, .p-dd= -osguard-set, .p-ddosguard-transparent, .p-ddosguard, .p-default, .p-delete,= - .p-deprecated, .p-diag, .p-diag1, .p-diag2 { width: 15px; height: 15px; } - -.p-dislike { width: 16px; height: 16px; } - -.p-dmarc, .p-dns { width: 15px; height: 15px; } - -.p-dnsprimary, .p-dnsslave { width: 16px; height: 16px; } - -.p-docker-set, .p-docker, .p-domain { width: 15px; height: 15px; } - -.p-edit, .p-editlist { width: 16px; height: 16px; } - -.p-email, .p-error, .p-excel, .p-fail, .p-file-0, .p-file-1, .p-file-10, .p= --file-100, .p-file-101, .p-file-102, .p-file-11, .p-file-110, .p-file-12, .= -p-file-120, .p-file-121, .p-file-122, .p-file-123, .p-file-124, .p-file-2, = -.p-file-200, .p-file-202, .p-file-203, .p-file-204, .p-file-205, .p-file-20= -6, .p-file-3, .p-file-300, .p-file-4, .p-file-5, .p-file-6, .p-file-7, .p-f= -ile-80, .p-file-81, .p-file-82, .p-file-96, .p-file-97, .p-file-98, .p-file= --99, .p-filter-orange { width: 15px; height: 15px; } - -.p-filter, .p-filtergroup, .p-frp { width: 16px; height: 16px; } - -.p-ftp { width: 15px; height: 15px; } - -.p-gc1, .p-gc2, .p-gc3, .p-gc4, .p-gc5 { width: 16px; height: 16px; } - -.p-go { width: 24px; height: 24px; } - -.p-group { width: 15px; height: 15px; } - -.p-hdd-1, .p-hdd-2, .p-hdd-3 { width: 16px; height: 16px; } - -.p-import-user { width: 15px; height: 15px; } - -.p-inetoff, .p-inetoff10, .p-inetoff100 { width: 16px; height: 16px; } - -.p-inetoff1000, .p-inetoffauto, .p-ineton { width: 16px; height: 14px; } - -.p-ineton10, .p-ineton100 { width: 16px; height: 16px; } - -.p-ineton1000, .p-inetonauto { width: 16px; height: 14px; } - -.p-inetonoff, .p-info { width: 16px; height: 16px; } - -.p-install, .p-ip_group { width: 15px; height: 15px; } - -.p-ipmi { width: 16px; height: 16px; } - -.p-ipno, .p-ipv4, .p-ipv6 { width: 15px; height: 15px; } - -.p-ispc, .p-ispl, .p-ispp, .p-jail, .p-kvm { width: 16px; height: 16px; } - -.p-letsencrypt-grey, .p-letsencrypt-set, .p-letsencrypt { width: 15px; heig= -ht: 15px; } - -.p-like { width: 16px; height: 16px; } - -.p-lock { width: 15px; height: 15px; } - -.p-love1, .p-love2 { width: 16px; height: 16px; } - -.p-lt1, .p-lt2, .p-lt3_grey, .p-lt3, .p-lt4, .p-lt5 { width: 15px; height: = -15px; } - -.p-mail-ar { width: 16px; height: 12px; } - -.p-mail, .p-mailserver, .p-manage, .p-mbak, .p-mcreate { width: 15px; heigh= -t: 15px; } - -.p-mon, .p-mread, .p-mwrite { width: 16px; height: 16px; } - -.p-mysql { width: 15px; height: 15px; } - -.p-network-bridge, .p-network-net, .p-network-route, .p-network-trunk, .p-n= -ewmsg, .p-nginx-proxy { width: 16px; height: 16px; } - -.p-ninjaoff, .p-ninjaon { width: 16px; height: 17px; } - -.p-no-grey, .p-nobak, .p-nodejs-bad, .p-nodejs-good, .p-nodejs-install, .p-= -noedit-orange { width: 15px; height: 15px; } - -.p-note { width: 16px; height: 16px; } - -.p-ns3 { width: 18px; height: 17px; } - -.p-off, .p-on, .p-onoff, .p-opendkim { width: 15px; height: 15px; } - -.p-ovz { width: 16px; height: 16px; } - -.p-package-installed, .p-package-uninstalled, .p-passclose, .p-passopen { w= -idth: 15px; height: 15px; } - -.p-pdf { width: 17px; height: 16px; } - -.p-percent, .p-perl { width: 16px; height: 16px; } - -.p-permalink, .p-php { width: 15px; height: 15px; } - -.p-popular, .p-postgresql, .p-pr1, .p-pr2, .p-pr3, .p-print { width: 16px; = -height: 16px; } - -.p-processing-blue, .p-procin, .p-procout, .p-protected, .p-python-bad, .p-= -python-good, .p-python-install { width: 15px; height: 15px; } - -.p-python, .p-ra-gsb, .p-ra-op, .p-ra-pt, .p-ra-sh, .p-ra-ysb, .p-ram-1, .p= --ram-2, .p-ram-3 { width: 16px; height: 16px; } - -.p-read { width: 15px; height: 15px; } - -.p-redirect { width: 16px; height: 16px; } - -.p-repair, .p-resell, .p-root, .p-rootwarn { width: 15px; height: 15px; } - -.p-ror { width: 16px; height: 16px; } - -.p-server-unit-more3, .p-server-unit2, .p-server-unit3, .p-server, .p-shell= -, .p-site, .p-spamexperts, .p-ssl_attention, .p-ssl, .p-sslgreen { width: 1= -5px; height: 15px; } - -.p-sslred { width: 20px; height: 20px; } - -.p-stop, .p-technical_domain, .p-tick-blue, .p-tick-green, .p-tick-grey, .p= --time, .p-truck { width: 15px; height: 15px; } - -.p-uefi { width: 16px; height: 16px; } - -.p-ulinks { width: 15px; height: 15px; } - -.p-umbrellaoff, .p-umbrellaon { width: 16px; height: 17px; } - -.p-update, .p-uplink { width: 16px; height: 16px; } - -.p-user { width: 15px; height: 15px; } - -.p-virusdie, .p-vnc { width: 16px; height: 16px; } - -.p-waf-monitoring, .p-waf, .p-warning, .p-wbak { width: 15px; height: 15px;= - } - -.p-webserver { width: 16px; height: 16px; } - -.p-write { width: 15px; height: 15px; } - -.p-wsgi, .p-www { width: 16px; height: 16px; } - -.pause_s, .pencil_s { width: 15px; height: 15px; } - -.pencil { width: 10px; height: 11px; } - -.phpbb { width: 30px; height: 30px; } - -.pin, .play_s, .plus_s { width: 15px; height: 15px; } - -.prestashop { width: 30px; height: 30px; } - -.processing_auto_s, .processing_s { width: 15px; height: 15px; } - -.purse-2 { width: 20px; height: 20px; } - -.purse { width: 22px; height: 22px; } - -.replacement_s { width: 15px; height: 15px; } - -.restore_user { width: 20px; height: 20px; } - -.s-danger { width: 16px; height: 15px; } - -.s-info, .s-success, .s-warning { width: 15px; height: 15px; } - -.sb-help, .sb-logout { width: 16px; height: 16px; } - -.sb-selectall { width: 15px; height: 15px; } - -.sb-set { width: 18px; height: 18px; } - -.search { width: 15px; height: 15px; } - -.server-hosting { width: 16px; height: 15px; } - -.shield_s { width: 15px; height: 15px; } - -.sorting_direct_s, .sorting_reverse_s { width: 10px; height: 10px; } - -.sound_off_s, .sound_on_s { width: 15px; height: 15px; } - -.ssl-blue, .sslinfo { width: 20px; height: 20px; } - -.stamp_tick_s, .star_crossed_out, .star_dark, .star-full, .success_s { widt= -h: 15px; height: 15px; } - -.sun_and_moon_m { width: 20px; height: 20px; } - -.sun_and_moon_s { width: 15px; height: 15px; } - -.sun_m { width: 20px; height: 20px; } - -.sun_s { width: 15px; height: 15px; } - -.t-add_backup, .t-add_users, .t-addon, .t-aid, .t-alias { width: 20px; heig= -ht: 20px; } - -.t-archive { width: 24px; height: 24px; } - -.t-archiver, .t-archiving, .t-attr { width: 20px; height: 20px; } - -.t-attr1, .t-attr2 { width: 24px; height: 24px; } - -.t-autocredit-i, .t-autocredit-q, .t-autocredit, .t-autorun_delete, .t-auto= -run_off, .t-autorun_on, .t-autorun_plus, .t-autorun, .t-back { width: 20px;= - height: 20px; } - -.t-backrow { width: 16px; height: 16px; } - -.t-backup_list { width: 20px; height: 20px; } - -.t-backup-setting, .t-backup-user { width: 24px; height: 24px; } - -.t-backup, .t-ban { width: 20px; height: 20px; } - -.t-bexport { width: 24px; height: 24px; } - -.t-blocklist, .t-brules, .t-busket, .t-catalog { width: 20px; height: 20px;= - } - -.t-certmanage { width: 24px; height: 24px; } - -.t-changeowner, .t-check, .t-cleaning, .t-clock { width: 20px; height: 20px= -; } - -.t-cloudflare-settings, .t-cloudflare { width: 24px; height: 24px; } - -.t-cms { width: 20px; height: 20px; } - -.t-company { width: 24px; height: 24px; } - -.t-connected, .t-contract, .t-control_panel, .t-copy, .t-countries, .t-cpu = -{ width: 20px; height: 20px; } - -.t-crate { width: 24px; height: 24px; } - -.t-create-docker-image, .t-credit, .t-cut, .t-db, .t-dbfile, .t-dbmanage, .= -t-dbunassigned, .t-ddosguard, .t-default_ip, .t-default, .t-delete, .t-diag= - { width: 20px; height: 20px; } - -.t-discount { width: 24px; height: 24px; } - -.t-disk_info, .t-dns, .t-dnsbl, .t-dnssec, .t-docker, .t-download, .t-edit,= - .t-editlist, .t-emaildomain { width: 20px; height: 20px; } - -.t-emailmanage { width: 24px; height: 24px; } - -.t-entrance, .t-errpage, .t-exit { width: 20px; height: 20px; } - -.t-expense { width: 15px; height: 15px; } - -.t-export { width: 24px; height: 24px; } - -.t-extended_settings, .t-extension, .t-files, .t-filter { width: 20px; heig= -ht: 20px; } - -.t-filterchange, .t-filterhappy, .t-filternoprofit { width: 24px; height: 2= -4px; } - -.t-folder_25, .t-folder_lock, .t-folder, .t-form_lock, .t-fromarchive { wid= -th: 20px; height: 20px; } - -.t-full_backup { width: 24px; height: 24px; } - -.t-getdinfo { width: 26px; height: 26px; } - -.t-go { width: 16px; height: 16px; } - -.t-goisp { width: 24px; height: 24px; } - -.t-greylist { width: 20px; height: 20px; } - -.t-group { width: 24px; height: 24px; } - -.t-hide, .t-history { width: 20px; height: 20px; } - -.t-httpreset, .t-insert, .t-install { width: 24px; height: 24px; } - -.t-installer_settings, .t-installer, .t-interface { width: 20px; height: 20= -px; } - -.t-invoice { width: 24px; height: 24px; } - -.t-ip_group, .t-ip_list { width: 20px; height: 20px; } - -.t-iplist, .t-item { width: 24px; height: 24px; } - -.t-kvm { width: 17px; height: 16px; } - -.t-letsencrypt_release, .t-letsencrypt { width: 20px; height: 20px; } - -.t-listauto, .t-liststart, .t-liststop { width: 24px; height: 24px; } - -.t-lock, .t-log, .t-mail_action, .t-mail_filter { width: 20px; height: 20px= -; } - -.t-mail-ar, .t-mail-box, .t-mail-clear, .t-mail-fwd, .t-mail-grp { width: 2= -4px; height: 24px; } - -.t-max, .t-message_limit { width: 20px; height: 20px; } - -.t-mime { width: 24px; height: 24px; } - -.t-mon, .t-monadd, .t-mondelete, .t-monedit, .t-monset, .t-movedown, .t-mov= -eup, .t-mysql_check, .t-mysql, .t-nat { width: 20px; height: 20px; } - -.t-net { width: 16px; height: 16px; } - -.t-new { width: 20px; height: 20px; } - -.t-nofilter { width: 24px; height: 24px; } - -.t-off, .t-ok, .t-on, .t-options_choice, .t-options { width: 20px; height: = -20px; } - -.t-outlook { width: 24px; height: 24px; } - -.t-paste, .t-paymethod { width: 20px; height: 20px; } - -.t-payorder { width: 24px; height: 24px; } - -.t-period { width: 25px; height: 25px; } - -.t-php, .t-phpmyadmin { width: 20px; height: 20px; } - -.t-phppgadmin, .t-plugins, .t-print, .t-printd, .t-printenvelope { width: 2= -4px; height: 24px; } - -.t-process_list { width: 20px; height: 20px; } - -.t-project { width: 24px; height: 24px; } - -.t-prolong, .t-qr, .t-redirect { width: 20px; height: 20px; } - -.t-redo, .t-remcfg { width: 24px; height: 24px; } - -.t-remove, .t-reset { width: 20px; height: 20px; } - -.t-restart, .t-restoreas { width: 24px; height: 24px; } - -.t-retry, .t-revisiumantivirus-s, .t-rights { width: 20px; height: 20px; } - -.t-rotate { width: 24px; height: 24px; } - -.t-roundcube { width: 20px; height: 20px; } - -.t-search_light, .t-search { width: 24px; height: 24px; } - -.t-searchfile { width: 20px; height: 20px; } - -.t-sender, .t-sendmsg, .t-server-storages { width: 24px; height: 24px; } - -.t-servers { width: 20px; height: 20px; } - -.t-set_delete { width: 24px; height: 28px; } - -.t-set { width: 20px; height: 20px; } - -.t-setpaid { width: 25px; height: 24px; } - -.t-sets, .t-share { width: 20px; height: 20px; } - -.t-shell { width: 24px; height: 24px; } - -.t-show, .t-sign, .t-sitepro, .t-slave_server, .t-snapshot, .t-snapshotdisk= -, .t-softaculous { width: 20px; height: 20px; } - -.t-spam-new { width: 17px; height: 17px; } - -.t-spam { width: 26px; height: 28px; } - -.t-spamexperts, .t-spamprotect, .t-ssl_25, .t-ssl_add, .t-ssl_edit, .t-ssl_= -released, .t-sslview, .t-start { width: 20px; height: 20px; } - -.t-stat { width: 24px; height: 24px; } - -.t-stop, .t-subnet { width: 20px; height: 20px; } - -.t-subscriber { width: 24px; height: 24px; } - -.t-sysstat, .t-templates { width: 20px; height: 20px; } - -.t-timetable { width: 24px; height: 24px; } - -.t-toarchive { width: 20px; height: 20px; } - -.t-trules { width: 24px; height: 24px; } - -.t-undo, .t-unlock, .t-upload_file, .t-upload, .t-user_backup, .t-users { w= -idth: 20px; height: 20px; } - -.t-video { width: 24px; height: 24px; } - -.t-virusdie-settings { width: 20px; height: 20px; } - -.t-vnc { width: 24px; height: 24px; } - -.t-waf, .t-whitelist { width: 20px; height: 20px; } - -.tab-pin { width: 11px; height: 11px; } - -.tag_s, .tel { width: 15px; height: 15px; } - -.third-party-licenses { width: 16px; height: 16px; } - -.tool_s { width: 15px; height: 15px; } - -.traffic-dedicated-servers { width: 16px; height: 16px; } - -.up { width: 12px; height: 6px; } - -.update_panel_s, .update_s { width: 15px; height: 15px; } - -.upload_error_xl, .upload_xl { width: 60px; height: 60px; } - -.user_backup, .user { width: 15px; height: 15px; } - -.virtual-data-center { width: 16px; height: 15px; } - -.vkontakte { width: 35px; height: 35px; } - -.wallet_s { width: 15px; height: 15px; } - -.wordpress { width: 30px; height: 30px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-44e807a9-19fe-4e8d-b3f8-c310c76439ab@mhtml.blink - -@charset "utf-8"; - -.ng2-pdf-viewer-container[_ngcontent-ng-c3799526204] { overflow-x: auto; po= -sition: absolute; height: 100%; width: 100%; } - -[_nghost-ng-c3799526204] { display: block; position: relative; } - -[_nghost-ng-c3799526204] { --pdfViewer-padding-bottom: 0; --page-margin: 1p= -x auto -8px; --page-border: 9px solid transparent; --spreadHorizontalWrappe= -d-margin-LR: -3.5px; --viewer-container-height: 0; --annotation-unfocused-f= -ield-background: url("data:image/svg+xml;charset=3DUTF-8,"); --xfa-unfo= -cused-field-background: var( --annotation-unfocused-field-background ); --p= -age-border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAA= -TCAYAAAByUDbMAAAA1ElEQVQ4jbWUWw6EIAxFy2NFs/8NzR4UJhpqLsdi5mOmSSMUOfYWqv3S0g= -Mr4XlYH/64gZa/gN3ANYA7KAXALt4ktoQ5MI9YxqaG8bWmsIysMuT6piSQCa4whZThCu8CM4zP9= -YJaKci9jicPq3NcBWYoPMGUlhG7ivtkB+gVyFY75wXghOvh8t5mto1Mdim6e+MBqH6XsY+YAwjp= -q3vGF7weTWQptLEDVCZvPTMl5JZZsdh47FHW6qFMyvLYqjcnmdFfY9Xk/KDOlzCusX2mi/ofM7M= -PkzBcSp4Q1/wAAAAASUVORK5CYII=3D) 9 9 repeat; --scale-factor: 1; --focus-out= -line: solid 2px blue; --hover-outline: dashed 2px blue; --freetext-line-hei= -ght: 1.35; --freetext-padding: 2px; --editorInk-editing-cursor: pointer; } - -@media screen and (forced-colors: active) { - [_nghost-ng-c3799526204] { --pdfViewer-padding-bottom: 9px; --page-margin= -: 8px auto -1px; --page-border: 1px solid CanvasText; --page-border-image: = -none; --spreadHorizontalWrapped-margin-LR: 3.5px; } -} - -@media (forced-colors: active) { - [_nghost-ng-c3799526204] { --focus-outline: solid 3px ButtonText; --hover= --outline: dashed 3px ButtonText; } -} - -[_nghost-ng-c3799526204] .textLayer { position: absolute; text-align: initi= -al; inset: 0px; overflow: hidden; opacity: 0.2; line-height: 1; text-size-a= -djust: none; forced-color-adjust: none; } - -[_nghost-ng-c3799526204] .textLayer span, [_nghost-ng-c3799526204] .textLay= -er br { color: transparent; position: absolute; white-space: pre; cursor: t= -ext; transform-origin: 0% 0%; } - -[_nghost-ng-c3799526204] .textLayer span.markedContent { top: 0px; height: = -0px; } - -[_nghost-ng-c3799526204] .textLayer .highlight { margin: -1px; padding: 1px= -; background-color: rgb(180, 0, 170); border-radius: 4px; } - -[_nghost-ng-c3799526204] .textLayer .highlight.appended { position: initial= -; } - -[_nghost-ng-c3799526204] .textLayer .highlight.begin { border-radius: 4px 0= -px 0px 4px; } - -[_nghost-ng-c3799526204] .textLayer .highlight.end { border-radius: 0px 4px= - 4px 0px; } - -[_nghost-ng-c3799526204] .textLayer .highlight.middle { border-radius: 0px;= - } - -[_nghost-ng-c3799526204] .textLayer .highlight.selected { background-color:= - rgb(0, 100, 0); } - -[_nghost-ng-c3799526204] .textLayer ::selection { background: rgb(0, 0, 255= -); } - -[_nghost-ng-c3799526204] .textLayer br::selection { background: transparent= -; } - -[_nghost-ng-c3799526204] .textLayer .endOfContent { display: block; positio= -n: absolute; inset: 100% 0px 0px; z-index: -1; cursor: default; user-select= -: none; } - -[_nghost-ng-c3799526204] .textLayer .endOfContent.active { top: 0px; } - -@media (forced-colors: active) { - [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input:req= -uired, [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation text= -area:required, [_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnot= -ation select:required, [_nghost-ng-c3799526204] .annotationLayer .buttonWid= -getAnnotation.checkBox input:required, [_nghost-ng-c3799526204] .annotation= -Layer .buttonWidgetAnnotation.radioButton input:required { outline: selecte= -ditem solid 1.5px; } -} - -[_nghost-ng-c3799526204] .annotationLayer { position: absolute; top: 0px; l= -eft: 0px; pointer-events: none; transform-origin: 0px 0px; } - -[_nghost-ng-c3799526204] .annotationLayer section { position: absolute; tex= -t-align: initial; pointer-events: auto; box-sizing: border-box; transform-o= -rigin: 0px 0px; } - -[_nghost-ng-c3799526204] .annotationLayer .linkAnnotation > a, [_nghost-ng-= -c3799526204] .annotationLayer .buttonWidgetAnnotation.pushButton > a { posi= -tion: absolute; font-size: 1em; top: 0px; left: 0px; width: 100%; height: 1= -00%; } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.pushButto= -n > canvas { width: 100%; height: 100%; } - -[_nghost-ng-c3799526204] .annotationLayer .linkAnnotation > a:hover, [_ngho= -st-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.pushButton > a:= -hover { opacity: 0.2; background: rgb(255, 255, 0); box-shadow: rgb(255, 25= -5, 0) 0px 2px 10px; } - -[_nghost-ng-c3799526204] .annotationLayer .textAnnotation img { position: a= -bsolute; cursor: pointer; width: 100%; height: 100%; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input, [_ng= -host-ng-c3799526204] .annotationLayer .textWidgetAnnotation textarea, [_ngh= -ost-ng-c3799526204] .annotationLayer .choiceWidgetAnnotation select, [_ngho= -st-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.checkBox input,= - [_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.radioBut= -ton input { background-image: var(--annotation-unfocused-field-background);= - border: 1px solid transparent; box-sizing: border-box; font: calc(9px * va= -r(--scale-factor)) sans-serif; height: 100%; margin: 0px; vertical-align: t= -op; width: 100%; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input:requi= -red, [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation textar= -ea:required, [_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnotat= -ion select:required, [_nghost-ng-c3799526204] .annotationLayer .buttonWidge= -tAnnotation.checkBox input:required, [_nghost-ng-c3799526204] .annotationLa= -yer .buttonWidgetAnnotation.radioButton input:required { outline: red solid= - 1.5px; } - -[_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnotation select op= -tion { padding: 0px; } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.radioButt= -on input { border-radius: 50%; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation textarea { = -resize: none; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input[disab= -led], [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation texta= -rea[disabled], [_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnot= -ation select[disabled], [_nghost-ng-c3799526204] .annotationLayer .buttonWi= -dgetAnnotation.checkBox input[disabled], [_nghost-ng-c3799526204] .annotati= -onLayer .buttonWidgetAnnotation.radioButton input[disabled] { background: n= -one; border: 1px solid transparent; cursor: not-allowed; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input:hover= -, [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation textarea:= -hover, [_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnotation se= -lect:hover, [_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotati= -on.checkBox input:hover, [_nghost-ng-c3799526204] .annotationLayer .buttonW= -idgetAnnotation.radioButton input:hover { border: 1px solid rgb(0, 0, 0); } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input:focus= -, [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation textarea:= -focus, [_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnotation se= -lect:focus { background: none; border: 1px solid transparent; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input :focu= -s, [_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation textarea= - :focus, [_nghost-ng-c3799526204] .annotationLayer .choiceWidgetAnnotation = -select :focus, [_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnot= -ation.checkBox :focus, [_nghost-ng-c3799526204] .annotationLayer .buttonWid= -getAnnotation.radioButton :focus { background-image: none; background-color= -: transparent; outline: auto; } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.checkBox = -input:checked::before, [_nghost-ng-c3799526204] .annotationLayer .buttonWid= -getAnnotation.checkBox input:checked::after, [_nghost-ng-c3799526204] .anno= -tationLayer .buttonWidgetAnnotation.radioButton input:checked::before { bac= -kground-color: canvastext; content: ""; display: block; position: absolute;= - } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.checkBox = -input:checked::before, [_nghost-ng-c3799526204] .annotationLayer .buttonWid= -getAnnotation.checkBox input:checked::after { height: 80%; left: 45%; width= -: 1px; } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.checkBox = -input:checked::before { transform: rotate(45deg); } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.checkBox = -input:checked::after { transform: rotate(-45deg); } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.radioButt= -on input:checked::before { border-radius: 50%; height: 50%; left: 30%; top:= - 20%; width: 50%; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input.comb = -{ font-family: monospace; padding-left: 2px; padding-right: 0px; } - -[_nghost-ng-c3799526204] .annotationLayer .textWidgetAnnotation input.comb:= -focus { width: 103%; } - -[_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.checkBox = -input, [_nghost-ng-c3799526204] .annotationLayer .buttonWidgetAnnotation.ra= -dioButton input { appearance: none; } - -[_nghost-ng-c3799526204] .annotationLayer .popupTriggerArea { height: 100%;= - width: 100%; } - -[_nghost-ng-c3799526204] .annotationLayer .popupWrapper { position: absolut= -e; font-size: calc(9px * var(--scale-factor)); width: 100%; min-width: calc= -(180px * var(--scale-factor)); pointer-events: none; } - -[_nghost-ng-c3799526204] .annotationLayer .popup { position: absolute; max-= -width: calc(180px * var(--scale-factor)); background-color: rgb(255, 255, 1= -53); box-shadow: 0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-f= -actor)) #888; border-radius: calc(2px * var(--scale-factor)); padding: calc= -(6px * var(--scale-factor)); margin-left: calc(5px * var(--scale-factor)); = -cursor: pointer; font: message-box; white-space: normal; overflow-wrap: bre= -ak-word; pointer-events: auto; } - -[_nghost-ng-c3799526204] .annotationLayer .popup > * { font-size: calc(9px = -* var(--scale-factor)); } - -[_nghost-ng-c3799526204] .annotationLayer .popup h1 { display: inline-block= -; } - -[_nghost-ng-c3799526204] .annotationLayer .popupDate { display: inline-bloc= -k; margin-left: calc(5px * var(--scale-factor)); } - -[_nghost-ng-c3799526204] .annotationLayer .popupContent { border-top: 1px s= -olid rgb(51, 51, 51); margin-top: calc(2px * var(--scale-factor)); padding-= -top: calc(2px * var(--scale-factor)); } - -[_nghost-ng-c3799526204] .annotationLayer .richText > * { white-space: pre-= -wrap; font-size: calc(9px * var(--scale-factor)); } - -[_nghost-ng-c3799526204] .annotationLayer .highlightAnnotation, [_nghost-ng= --c3799526204] .annotationLayer .underlineAnnotation, [_nghost-ng-c379952620= -4] .annotationLayer .squigglyAnnotation, [_nghost-ng-c3799526204] .annotati= -onLayer .strikeoutAnnotation, [_nghost-ng-c3799526204] .annotationLayer .fr= -eeTextAnnotation, [_nghost-ng-c3799526204] .annotationLayer .lineAnnotation= - svg line, [_nghost-ng-c3799526204] .annotationLayer .squareAnnotation svg = -rect, [_nghost-ng-c3799526204] .annotationLayer .circleAnnotation svg ellip= -se, [_nghost-ng-c3799526204] .annotationLayer .polylineAnnotation svg polyl= -ine, [_nghost-ng-c3799526204] .annotationLayer .polygonAnnotation svg polyg= -on, [_nghost-ng-c3799526204] .annotationLayer .caretAnnotation, [_nghost-ng= --c3799526204] .annotationLayer .inkAnnotation svg polyline, [_nghost-ng-c37= -99526204] .annotationLayer .stampAnnotation, [_nghost-ng-c3799526204] .anno= -tationLayer .fileAttachmentAnnotation { cursor: pointer; } - -[_nghost-ng-c3799526204] .annotationLayer section svg { position: absolute;= - width: 100%; height: 100%; } - -[_nghost-ng-c3799526204] .annotationLayer .annotationTextContent { position= -: absolute; width: 100%; height: 100%; opacity: 0; color: transparent; user= --select: none; pointer-events: none; } - -[_nghost-ng-c3799526204] .annotationLayer .annotationTextContent span { wid= -th: 100%; display: inline-block; } - -@media (forced-colors: active) { - [_nghost-ng-c3799526204] .xfaLayer :required { outline: selecteditem soli= -d 1.5px; } -} - -[_nghost-ng-c3799526204] .xfaLayer .highlight { margin: -1px; padding: 1px;= - background-color: rgb(239, 203, 237); border-radius: 4px; } - -[_nghost-ng-c3799526204] .xfaLayer .highlight.appended { position: initial;= - } - -[_nghost-ng-c3799526204] .xfaLayer .highlight.begin { border-radius: 4px 0p= -x 0px 4px; } - -[_nghost-ng-c3799526204] .xfaLayer .highlight.end { border-radius: 0px 4px = -4px 0px; } - -[_nghost-ng-c3799526204] .xfaLayer .highlight.middle { border-radius: 0px; = -} - -[_nghost-ng-c3799526204] .xfaLayer .highlight.selected { background-color: = -rgb(203, 223, 203); } - -[_nghost-ng-c3799526204] .xfaLayer ::selection { background: rgb(0, 0, 255)= -; } - -[_nghost-ng-c3799526204] .xfaPage { overflow: hidden; position: relative; } - -[_nghost-ng-c3799526204] .xfaContentarea { position: absolute; } - -[_nghost-ng-c3799526204] .xfaPrintOnly { display: none; } - -[_nghost-ng-c3799526204] .xfaLayer { position: absolute; text-align: initia= -l; top: 0px; left: 0px; transform-origin: 0px 0px; line-height: 1.2; } - -[_nghost-ng-c3799526204] .xfaLayer * { color: inherit; font: inherit; lette= -r-spacing: -0.01px; text-align: inherit; text-decoration: inherit; box-sizi= -ng: border-box; background-color: transparent; padding: 0px; margin: 0px; p= -ointer-events: auto; } - -[_nghost-ng-c3799526204] .xfaLayer :required { outline: red solid 1.5px; } - -[_nghost-ng-c3799526204] .xfaLayer div { pointer-events: none; } - -[_nghost-ng-c3799526204] .xfaLayer svg { pointer-events: none; } - -[_nghost-ng-c3799526204] .xfaLayer svg * { pointer-events: none; } - -[_nghost-ng-c3799526204] .xfaLayer a { color: rgb(0, 0, 255); } - -[_nghost-ng-c3799526204] .xfaRich li { margin-left: 3em; } - -[_nghost-ng-c3799526204] .xfaFont { color: rgb(0, 0, 0); font-weight: 400; = -font-kerning: none; font-size: 10px; font-style: normal; letter-spacing: 0p= -x; text-decoration: none; vertical-align: 0px; } - -[_nghost-ng-c3799526204] .xfaCaption { overflow: hidden; flex: 0 0 auto; } - -[_nghost-ng-c3799526204] .xfaCaptionForCheckButton { overflow: hidden; flex= -: 1 1 auto; } - -[_nghost-ng-c3799526204] .xfaLabel { height: 100%; width: 100%; } - -[_nghost-ng-c3799526204] .xfaLeft { display: flex; flex-direction: row; ali= -gn-items: center; } - -[_nghost-ng-c3799526204] .xfaRight { display: flex; flex-direction: row-rev= -erse; align-items: center; } - -[_nghost-ng-c3799526204] .xfaLeft > .xfaCaption, [_nghost-ng-c3799526204] .= -xfaLeft > .xfaCaptionForCheckButton, [_nghost-ng-c3799526204] .xfaRight > .= -xfaCaption, [_nghost-ng-c3799526204] .xfaRight > .xfaCaptionForCheckButton = -{ max-height: 100%; } - -[_nghost-ng-c3799526204] .xfaTop { display: flex; flex-direction: column; a= -lign-items: flex-start; } - -[_nghost-ng-c3799526204] .xfaBottom { display: flex; flex-direction: column= --reverse; align-items: flex-start; } - -[_nghost-ng-c3799526204] .xfaTop > .xfaCaption, [_nghost-ng-c3799526204] .x= -faTop > .xfaCaptionForCheckButton, [_nghost-ng-c3799526204] .xfaBottom > .x= -faCaption, [_nghost-ng-c3799526204] .xfaBottom > .xfaCaptionForCheckButton = -{ width: 100%; } - -[_nghost-ng-c3799526204] .xfaBorder { background-color: transparent; positi= -on: absolute; pointer-events: none; } - -[_nghost-ng-c3799526204] .xfaWrapped { width: 100%; height: 100%; } - -[_nghost-ng-c3799526204] .xfaTextfield:focus, [_nghost-ng-c3799526204] .xfa= -Select:focus { background-image: none; background-color: transparent; outli= -ne: auto; outline-offset: -1px; } - -[_nghost-ng-c3799526204] .xfaCheckbox:focus, [_nghost-ng-c3799526204] .xfaR= -adio:focus { outline: auto; } - -[_nghost-ng-c3799526204] .xfaTextfield, [_nghost-ng-c3799526204] .xfaSelect= - { height: 100%; width: 100%; flex: 1 1 auto; border: none; resize: none; b= -ackground-image: var(--xfa-unfocused-field-background); } - -[_nghost-ng-c3799526204] .xfaTop > .xfaTextfield, [_nghost-ng-c3799526204] = -.xfaTop > .xfaSelect, [_nghost-ng-c3799526204] .xfaBottom > .xfaTextfield, = -[_nghost-ng-c3799526204] .xfaBottom > .xfaSelect { flex: 0 1 auto; } - -[_nghost-ng-c3799526204] .xfaButton { cursor: pointer; width: 100%; height:= - 100%; border: none; text-align: center; } - -[_nghost-ng-c3799526204] .xfaLink { width: 100%; height: 100%; position: ab= -solute; top: 0px; left: 0px; } - -[_nghost-ng-c3799526204] .xfaCheckbox, [_nghost-ng-c3799526204] .xfaRadio {= - width: 100%; height: 100%; flex: 0 0 auto; border: none; } - -[_nghost-ng-c3799526204] .xfaRich { white-space: pre-wrap; width: 100%; hei= -ght: 100%; } - -[_nghost-ng-c3799526204] .xfaImage { object-position: left top; object-fit:= - contain; width: 100%; height: 100%; } - -[_nghost-ng-c3799526204] .xfaLrTb, [_nghost-ng-c3799526204] .xfaRlTb, [_ngh= -ost-ng-c3799526204] .xfaTb { display: flex; flex-direction: column; align-i= -tems: stretch; } - -[_nghost-ng-c3799526204] .xfaLr { display: flex; flex-direction: row; align= --items: stretch; } - -[_nghost-ng-c3799526204] .xfaRl { display: flex; flex-direction: row-revers= -e; align-items: stretch; } - -[_nghost-ng-c3799526204] .xfaTb > div { justify-content: left; } - -[_nghost-ng-c3799526204] .xfaPosition { position: relative; } - -[_nghost-ng-c3799526204] .xfaArea { position: relative; } - -[_nghost-ng-c3799526204] .xfaValignMiddle { display: flex; align-items: cen= -ter; } - -[_nghost-ng-c3799526204] .xfaTable { display: flex; flex-direction: column;= - align-items: stretch; } - -[_nghost-ng-c3799526204] .xfaTable .xfaRow { display: flex; flex-direction:= - row; align-items: stretch; } - -[_nghost-ng-c3799526204] .xfaTable .xfaRlRow { display: flex; flex-directio= -n: row-reverse; align-items: stretch; flex: 1 1 0%; } - -[_nghost-ng-c3799526204] .xfaTable .xfaRlRow > div { flex: 1 1 0%; } - -[_nghost-ng-c3799526204] .xfaNonInteractive input, [_nghost-ng-c3799526204]= - .xfaNonInteractive textarea, [_nghost-ng-c3799526204] .xfaDisabled input, = -[_nghost-ng-c3799526204] .xfaDisabled textarea, [_nghost-ng-c3799526204] .x= -faReadOnly input, [_nghost-ng-c3799526204] .xfaReadOnly textarea { backgrou= -nd: initial; } - -@media print { - [_nghost-ng-c3799526204] .xfaTextfield, [_nghost-ng-c3799526204] .xfaSele= -ct { background: transparent; } - [_nghost-ng-c3799526204] .xfaSelect { appearance: none; text-indent: 1px;= - } -} - -[_nghost-ng-c3799526204] [data-editor-rotation=3D"90"] { transform: rotate(= -90deg); } - -[_nghost-ng-c3799526204] [data-editor-rotation=3D"180"] { transform: rotate= -(180deg); } - -[_nghost-ng-c3799526204] [data-editor-rotation=3D"270"] { transform: rotate= -(270deg); } - -[_nghost-ng-c3799526204] .annotationEditorLayer { background: transparent; = -position: absolute; top: 0px; left: 0px; font-size: calc(100px * var(--scal= -e-factor)); transform-origin: 0px 0px; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .selectedEditor { outline: = -var(--focus-outline); resize: none; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor { position:= - absolute; background: transparent; border-radius: 3px; padding: calc(var(-= --freetext-padding) * var(--scale-factor)); resize: none; width: auto; heigh= -t: auto; z-index: 1; transform-origin: 0px 0px; touch-action: none; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor .internal {= - background: transparent; border: none; top: 0px; left: 0px; overflow: visi= -ble; white-space: nowrap; resize: none; font-style: normal; font-variant: n= -ormal; font-size-adjust: none; font-language-override: normal; font-kerning= -: auto; font-optical-sizing: auto; font-feature-settings: normal; font-vari= -ation-settings: normal; font-weight: normal; font-stretch: normal; font-siz= -e: 10px; font-family: sans-serif; line-height: var(--freetext-line-height);= - } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor .overlay { = -position: absolute; display: none; background: transparent; top: 0px; left:= - 0px; width: 100%; height: 100%; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor .overlay.en= -abled { display: block; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor .internal:e= -mpty::before { content: attr(default-content); color: gray; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor .internal:f= -ocus { outline: none; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .inkEditor.disabled { resiz= -e: none; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .inkEditor.disabled.selecte= -dEditor { resize: horizontal; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .freeTextEditor:hover:not(.= -selectedEditor), [_nghost-ng-c3799526204] .annotationEditorLayer .inkEditor= -:hover:not(.selectedEditor) { outline: var(--hover-outline); } - -[_nghost-ng-c3799526204] .annotationEditorLayer .inkEditor { position: abso= -lute; background: transparent; border-radius: 3px; overflow: auto; width: 1= -00%; height: 100%; z-index: 1; transform-origin: 0px 0px; cursor: auto; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .inkEditor.editing { resize= -: none; cursor: var(--editorInk-editing-cursor),pointer; } - -[_nghost-ng-c3799526204] .annotationEditorLayer .inkEditor .inkEditorCanvas= - { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; touc= -h-action: none; } - -[_nghost-ng-c3799526204] [data-main-rotation=3D"90"] { transform: rotate(90= -deg) translateY(-100%); } - -[_nghost-ng-c3799526204] [data-main-rotation=3D"180"] { transform: rotate(1= -80deg) translate(-100%, -100%); } - -[_nghost-ng-c3799526204] [data-main-rotation=3D"270"] { transform: rotate(2= -70deg) translate(-100%); } - -[_nghost-ng-c3799526204] .pdfViewer { padding-bottom: var(--pdfViewer-paddi= -ng-bottom); } - -[_nghost-ng-c3799526204] .pdfViewer .canvasWrapper { overflow: hidden; } - -[_nghost-ng-c3799526204] .pdfViewer .page { direction: ltr; width: 816px; h= -eight: 1056px; margin: var(--page-margin); position: relative; overflow: vi= -sible; border-top-color: ; border-top-style: ; border-top-width: ; border-r= -ight-color: ; border-right-style: ; border-right-width: ; border-bottom-col= -or: ; border-bottom-style: ; border-bottom-width: ; border-left-color: ; bo= -rder-left-style: ; border-left-width: ; border-image: var(--page-border-ima= -ge); background-clip: content-box; background-color: rgb(255, 255, 255); } - -[_nghost-ng-c3799526204] .pdfViewer .dummyPage { position: relative; width:= - 0px; height: var(--viewer-container-height); } - -[_nghost-ng-c3799526204] .pdfViewer.removePageBorders .page { margin: 0px a= -uto 10px; border: none; } - -[_nghost-ng-c3799526204] .pdfViewer.singlePageView { display: inline-block;= - } - -[_nghost-ng-c3799526204] .pdfViewer.singlePageView .page { margin: 0px; bor= -der: none; } - -[_nghost-ng-c3799526204] .pdfViewer.scrollHorizontal, [_nghost-ng-c37995262= -04] .pdfViewer.scrollWrapped, [_nghost-ng-c3799526204] .spread { margin-lef= -t: 3.5px; margin-right: 3.5px; text-align: center; } - -[_nghost-ng-c3799526204] .pdfViewer.scrollHorizontal, [_nghost-ng-c37995262= -04] .spread { white-space: nowrap; } - -[_nghost-ng-c3799526204] .pdfViewer.removePageBorders, [_nghost-ng-c3799526= -204] .pdfViewer.scrollHorizontal .spread, [_nghost-ng-c3799526204] .pdfView= -er.scrollWrapped .spread { margin-left: 0px; margin-right: 0px; } - -[_nghost-ng-c3799526204] .spread .page, [_nghost-ng-c3799526204] .spread .d= -ummyPage, [_nghost-ng-c3799526204] .pdfViewer.scrollHorizontal .page, [_ngh= -ost-ng-c3799526204] .pdfViewer.scrollWrapped .page, [_nghost-ng-c3799526204= -] .pdfViewer.scrollHorizontal .spread, [_nghost-ng-c3799526204] .pdfViewer.= -scrollWrapped .spread { display: inline-block; vertical-align: middle; } - -[_nghost-ng-c3799526204] .spread .page, [_nghost-ng-c3799526204] .pdfViewer= -.scrollHorizontal .page, [_nghost-ng-c3799526204] .pdfViewer.scrollWrapped = -.page { margin-left: var(--spreadHorizontalWrapped-margin-LR); margin-right= -: var(--spreadHorizontalWrapped-margin-LR); } - -[_nghost-ng-c3799526204] .pdfViewer.removePageBorders .spread .page, [_ngho= -st-ng-c3799526204] .pdfViewer.removePageBorders.scrollHorizontal .page, [_n= -ghost-ng-c3799526204] .pdfViewer.removePageBorders.scrollWrapped .page { ma= -rgin-left: 5px; margin-right: 5px; } - -[_nghost-ng-c3799526204] .pdfViewer .page canvas { margin: 0px; display: bl= -ock; } - -[_nghost-ng-c3799526204] .pdfViewer .page canvas[hidden] { display: none; } - -[_nghost-ng-c3799526204] .pdfViewer .page .loadingIcon { position: absolute= -; display: block; inset: 0px; background: url("data:image/gif;base64,R0lGOD= -lhGAAYAPQQAM7Ozvr6+uDg4LCwsOjo6I6OjsjIyJycnNjY2KioqMDAwPLy8nZ2doaGhri4uGhoa= -P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFND= -QVBFMi4wAwEAAAAh/ilPcHRpbWl6ZWQgd2l0aCBodHRwczovL2V6Z2lmLmNvbS9vcHRpbWl6ZQA= -h+QQJBwAQACwAAAAAGAAYAAAFmiAkjiTkOGVaBgjZNGSgkgKjjM8zLoI8iy+BKCdiCX8iBeMAhE= -EIPRXLxViYUE9CbCQoFAzFhHY3zkaT3oPvBz1zE4UBsr1eWZH4vAowOBwGAHk8AoQLfH6Agm0Ed= -3qOAXWOIgQKiWyFJQgDgJEpdG+WEACNEFNFmKVlVzJQk6qdkwqBoi1mebJ3ALNGeIZHtGSwNDS1= -RZKueCEAIfkECQcAEAAsAAAAABgAGAAABZcgJI4kpChlWgYCWRQkEKgjURgjw4zOg9CjVwuiEyE= -eO6CxkBC9nA+HiuUqLEyoBZI0Mx4SAFFgQCDZuguBoGv6Dtg0gvpqdhxQQDkBzuUr/4A1JwMKP3= -9pc2mDhYCIc4GQYn6QCwCMeY91l0p6dBAEJ0OfcFRimZ91Mwt0alxxAIZyRmuAsKxDLKKvZbM1t= -JxmvGKRpn8hACH5BAkHABAALAAAAAAYABgAAAWhICSOJGQYZVoGAnkcJBKoI3EAY1GMCtPSosSB= -INKJBIwGkHdwBGGQA0OhYpEGQxNqkYzNIITBACEKKBaxxNfBeOCO4vMy0Hg8nDHFeCktkKtfNAt= -oS4UqAicKBj9zBAKPC4iKi4aRkISGmWWBmjUIAIyHkCUEAKCVo2WmREecVqoCgZhgP4NHrGWCj7= -e3szSpuxAsoVWxnp6cVV4kyZW+KSEAIfkECQcAEAAsAAAAABgAGAAABZkgJI4kBABlWgYEOQykE= -KgjMSDjcYxG0dKi108nEhQKQN4rCIMkCgbawjWYnSCLY2yGVSgEooBhWqsGGwxc0RtNBgoMhmJ1= -QgETjANYFeBKyUmBKQQIdT9JDmgPDQ6EhoKJD4sOgpWWgiwChyqEBH5hmptSoSOZgJ4kLKWkYTF= -7C2SaqaM/hEWygay4mYG8t6uffFuzl1iANCEAIfkECQcAEAAsAAAAABgAGAAABZ0gJI4khCBlmh= -KkopBCoI6LIozDMAIHO4uuBVBnOiR+I4FrCDwAZsKdQnaCLIwwmRUA8JmioprWUCjcwlwUMnAoG= -0qL03k2KCS8cC0UjOzDCQKBfHQFDAwFU4CCfgqFhy9+kZJWgzSKSAcPZn+BfQENDw8OljGWJAFe= -DoZPYTBnC1GdSXqnsoBolSulX2GyP6hgvnG0KrS3NJNhuSQhACH5BAkHABAALAAAAAAYABgAAAW= -aICSOJCQIZZoupGGQRKCOC0CMijIiwz2LABtQZxoMfjQhxAXszWQ7gOwECRhh0MCJJRJARTUoIH= -FAgbfI6uBwAJS01J/i4PClVYHvfV8lbLlIBmwFbQt+aGmChG18jXeGT4dICQxlb4g/AQUMDER9X= -jR6BAdiDQwINDBmkAsPDVh4cX4imw53iLKuaVqAcUsPqEiidkt6j4AzIQAh+QQJBwAQACwAAAAA= -GAAYAAAFmSAkjiREEGWaBiSCtCoZCMsIAKOg1LEo0KKbaKFQ9EYLoOkFuQlirNxzCQkUW9GZ0hQ= -d4nyDAWr4G/esYSbyZFYZwu3jqiuvr8u8I2BwOAwASXh1e31/doeHC3klWnElfAlTd46MfQUGk2= -stCVEGBQWSdCciDg5VDAVYKoEiDQ0iBwxGcj9RDw8+qHIzebc2DJJQJK6qiKVyIQAh+QQJBwAQA= -CwAAAAAGAAYAAAFmSAkjiS0LGWaBiRBtCoZCKgoCCMB1DF0sz6cCQDo5W62l28XAyZFpyECBv3l= -nCbhUqHMIo0Qg4Jbmn1jRCa4iV27TzfXGjEecOFWMN1OdvvfPGUuXSoKBw6EXokrAwcHRVU0UAe= -EBANAAAmUI1gNDyhjJgUHLW0iDg8FIqOnBQZrDA9TELE2rEYIDw4jta2LMpCrqld/YQpgIQAh+Q= -QJBwAQACwAAAAAGAAYAAAFmyAkjiS0LGWaBiRBkKw6BgIqCsJcyyMe4yJajhcEml5H26o1PN2QQ= -d3uFiv2AADlAgflIbDdZLgkABOJgep5LfWty4p4zeU+w+XsvJWXliEKDwdEBgMKYQ4PDw1qK3ED= -CCMAiQ5BCV0LCj+FSDQkgCgGBiYHAy2MIgoMghAHqw4HAGsNDEMFBTekdgwKI7aRB2MwkL2rVHo= -QoWchACH5BAkHABAALAAAAAAYABgAAAWWICSOJLQsZZoGJEGQrDoGAioKwlzLIx7jIlqOFwSaXk= -fbqjU83ZBB3e4WK0qrCxyU55peid0qcUwuixyNx6PhILsAcAJazXYj4lvz2MkLiFsHDAlEcABKZ= -wwMBX8pBgoKQxAIigpBA1sLBj+PSDQkB4uSACYDlTMyBgWDEKVnl2QFBUigN61gBQYjtLV5JZ4j= -tlR6omMhACH5BAkHABAALAAAAAAYABgAAAWaICSOJLQsZZoGJEGQrDoGAioKwlzLIx7jIlqOFwS= -aXkdbidYanm7I4AjwYDh6saJuJ3JUG1mZi9srPA7EcRimJLrfJYWZUVC8TziXnEG3u/E+cIJaPA= -FrPQl1aQAIbRAGBZGHJQiMUQKRBkEKbQsAPZaEXQcslSYKmjMyAAdXj34ACkNEiUgDA5t+PAQHn= -6Ogjkuzry2DNwhuIQAh+QQFBwAQACwAAAAAGAAYAAAFnCAkjiS0LGVaBgBJEGSguo8zCsK4CPIs= -Mg+ECCcKEH0ix6MwhJl4KiOp8UCdmrEbo6EoHpxF8A6aBBZ6vhf5dmAkkGr0CoWs21WGQ2FvsI9= -xC3l7B311fy93iWGKJQQOhHCAJQB6A3IqcWwJLU90i2FkUiMKlhBELEI6MwgDXRAGhQgAYD6tTq= -RFAJxpA6mvrqazSKJJhUWMpjlIIQA7") center center no-repeat; } - -[_nghost-ng-c3799526204] .pdfViewer .page .loadingIcon.notVisible { backgro= -und: none; } - -[_nghost-ng-c3799526204] .pdfViewer.enablePermissions .textLayer span { cur= -sor: not-allowed; user-select: none !important; } - -[_nghost-ng-c3799526204] .pdfPresentationMode .pdfViewer { padding-bottom: = -0px; } - -[_nghost-ng-c3799526204] .pdfPresentationMode .spread { margin: 0px; } - -[_nghost-ng-c3799526204] .pdfPresentationMode .pdfViewer .page { margin: 0p= -x auto; border: 2px solid transparent; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-2d11b9d0-9e1f-4858-8208-ab5feb90d19a@mhtml.blink - -@charset "utf-8"; - -.isp-gallery-pdf-view__viewer[_ngcontent-ng-c3106145839] { max-width: 100%;= - height: 100%; } - -.ng2-pdf-viewer-container { scrollbar-color: var(--isp-scrollbar-thumb-bg, = -var(--isp-c-grey-weekdays)) var(--isp-scrollbar-track-bg, var(--isp-dc-char= -lie-chaplin)); scrollbar-width: thin; } - -.ng2-pdf-viewer-container::-webkit-scrollbar, .ng2-pdf-viewer-container::-w= -ebkit-scrollbar-track, .ng2-pdf-viewer-container::-webkit-scrollbar-thumb {= - width: 5px; border-radius: 10px; } - -.ng2-pdf-viewer-container::-webkit-scrollbar, .ng2-pdf-viewer-container::-w= -ebkit-scrollbar-track { background-color: var(--isp-dc-charlie-chaplin); } - -.ng2-pdf-viewer-container::-webkit-scrollbar-thumb { background-color: var(= ---isp-c-grey-weekdays); } - -.ng2-pdf-viewer-container::-webkit-scrollbar-thumb:hover { background-color= -: var(--isp-c-blue-velvet); } - -.ng2-pdf-viewer-container::-webkit-scrollbar-button { display: none; } - -.pdfViewer { padding-top: 1px; } - -.page { box-shadow: 0 0 0 1px var(--isp-dc-charlie-chaplin); } - -.isp-gallery-pdf-view__progress[_ngcontent-ng-c3106145839] { position: abso= -lute; top: calc(50% - 30px); left: 50%; transform: translate3d(-50%, -50%, = -0px); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-d74c4d60-77ef-4a22-a911-e6430150d5ba@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2506492] { position: relative; display: inline-flex; align-ite= -ms: center; justify-content: center; } - -.loader[_ngcontent-ng-c2506492] { display: flex; align-items: center; justi= -fy-content: center; } - -.loader_overlay[_ngcontent-ng-c2506492] { position: absolute; inset: 0px; z= --index: 1; background: var(--isp-loader__background, var(--isp-dc-glass)); = -border-radius: var(--isp-loader__border-radius, var(--isp-border-radius-mai= -n)); } - -.spinner__path[_ngcontent-ng-c2506492] { display: none; stroke-linecap: rou= -nd; transform-origin: center center; } - -.spinner__outer-path[_ngcontent-ng-c2506492] { stroke: var(--isp-loader__co= -lor, var(--isp-dc-the-institute)); animation-name: _ngcontent-ng-c2506492_r= -otate, _ngcontent-ng-c2506492_outerDashoffset; animation-duration: 3s, 1.5s= -; animation-iteration-count: infinite; animation-timing-function: linear; } - -.spinner__inner-path[_ngcontent-ng-c2506492] { stroke: var(--isp-loader__co= -lor, var(--isp-dc-fremen)); animation-name: _ngcontent-ng-c2506492_rotate, = -_ngcontent-ng-c2506492_innerDashoffset; animation-duration: 2s, 1.5s; anima= -tion-iteration-count: infinite; animation-timing-function: linear; } - -.loader_type_double-spinner[_ngcontent-ng-c2506492] .spinner[_ngcontent-ng-= -c2506492] { width: var(--isp-loader__size, 30px); height: var(--isp-loader_= -_size, 30px); } - -.loader_type_double-spinner[_ngcontent-ng-c2506492] .spinner__outer-path[_n= -gcontent-ng-c2506492], .loader_type_double-spinner[_ngcontent-ng-c2506492] = -.spinner__inner-path[_ngcontent-ng-c2506492] { display: unset; } - -.loader_type_spinner[_ngcontent-ng-c2506492] .spinner[_ngcontent-ng-c250649= -2] { width: var(--isp-loader__size, 15px); height: var(--isp-loader__size, = -15px); } - -.loader_type_spinner[_ngcontent-ng-c2506492] .spinner__outer-path[_ngconten= -t-ng-c2506492] { display: unset; } - -@keyframes _ngcontent-ng-c2506492_rotate {=20 - 100% { transform: rotate(360deg); } -} - -@keyframes _ngcontent-ng-c2506492_outerDashoffset {=20 - 0% { stroke-dasharray: 0, 150; stroke-dashoffset: 0; } - 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -15; } - 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -125; } -} - -@keyframes _ngcontent-ng-c2506492_innerDashoffset {=20 - 0% { stroke-dasharray: 0, 70; stroke-dashoffset: 0; } - 50% { stroke-dasharray: 50, 70; stroke-dashoffset: -10; } - 100% { stroke-dasharray: 50, 70; stroke-dashoffset: -70; } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-2f0ad0e4-f81f-489d-91b3-9ff2483f0624@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c57236006] { --isp-gallery-footer-height: 60px; position: relat= -ive; display: flex; flex-direction: column; height: 100%; } - -.isp-gallery__header[_ngcontent-ng-c57236006] { display: flex; flex-shrink:= - 0; align-items: center; padding: 20px 0px 15px; } - -.isp-gallery__title[_ngcontent-ng-c57236006] { margin-left: 15px; } - -.isp-gallery__action-bar[_ngcontent-ng-c57236006] { display: flex; margin-l= -eft: auto; } - -.isp-gallery-button[_ngcontent-ng-c57236006] { display: flex; align-items: = -center; justify-content: center; width: 25px; height: 25px; padding: 0px; b= -ackground: var(--isp-dc-norilsk); border: none; border-radius: 5px; user-se= -lect: none; cursor: pointer; } - -.isp-gallery-button[_ngcontent-ng-c57236006]:hover { background: var(--isp-= -dc-reincarnation); } - -.isp-gallery-button_round[_ngcontent-ng-c57236006] { border-radius: 50%; } - -.isp-gallery-button_wide[_ngcontent-ng-c57236006] { width: 35px; } - -.isp-gallery-button[_ngcontent-ng-c57236006]:disabled { --isp-icons-main-co= -lor: var(--isp-c-grey-weekdays); color: var(--isp-c-grey-weekdays); pointer= --events: none; } - -.isp-gallery__action-bar-button[_ngcontent-ng-c57236006] { margin-left: 5px= -; } - -.isp-gallery__body[_ngcontent-ng-c57236006] { position: relative; flex-grow= -: 1; } - -.isp-gallery__loader[_ngcontent-ng-c57236006] { --isp-loader__background: n= -one; --isp-loader__size: 60px; position: absolute; top: calc(50% - var(--is= -p-gallery-footer-height) / 2); left: 50%; z-index: 1; display: block; trans= -form: translate3d(-50%, -50%, 0px); } - -.isp-gallery__view[_ngcontent-ng-c57236006] { position: absolute; top: 0px;= - height: 100%; overflow: hidden; scroll-snap-align: center; } - -.isp-gallery__view_image[_ngcontent-ng-c57236006] { left: 40px; width: calc= -(100% - 80px); } - -.isp-gallery__view_pdf[_ngcontent-ng-c57236006] { left: calc(var(--isp-main= --page__padding-left) * -1); width: calc(100% + var(--isp-main-page__padding= --left) + var(--isp-main-page__padding-right)); } - -.isp-gallery__switch-button[_ngcontent-ng-c57236006] { position: absolute; = -top: calc(50% - var(--isp-gallery-footer-height) / 2); left: 0px; transform= -: translateY(-50%); } - -.isp-gallery__switch-button_right[_ngcontent-ng-c57236006] { right: 0px; le= -ft: auto; } - -.isp-gallery__footer[_ngcontent-ng-c57236006] { position: absolute; bottom:= - 0px; width: 100%; height: 0px; } - -.isp-gallery__scale[_ngcontent-ng-c57236006] { position: absolute; bottom: = -17.5px; left: 50%; display: flex; align-items: center; background: var(--is= -p-dc-norilsk); border-radius: 5px; user-select: none; transform: translate(= --50%); } - -.isp-gallery__scale-buttons-divider[_ngcontent-ng-c57236006] { width: 1px; = -height: 15px; background: var(--isp-dc-charlie-chaplin); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-c2db5a51-a7da-4ead-ba07-ec6aa450f68d@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c3993565658] { position: relative; display: flex; flex-flow: co= -lumn; justify-content: flex-start; height: 100%; padding: 0 var(--isp-main-= -page__padding-right) 0 var(--isp-main-page__padding-left); overflow-y: auto= -; } - -.list__title-wrapper[_ngcontent-ng-c3993565658] { display: flex; align-item= -s: center; margin-top: 25px; margin-bottom: 25px; white-space: nowrap; } - -.list__subheader[_ngcontent-ng-c3993565658] { display: flex; flex-flow: col= -umn; justify-content: flex-start; } - -.list__path-editor[_ngcontent-ng-c3993565658], .list__breadcrumbs[_ngconten= -t-ng-c3993565658] { margin-top: -7px; margin-bottom: 15px; } - -.list__search-bar[_ngcontent-ng-c3993565658] { margin-left: auto; } - -.list__toolbar[_ngcontent-ng-c3993565658] { display: none; margin-bottom: 2= -0px; } - -.list__toolbar_visible[_ngcontent-ng-c3993565658] { display: flex; } - -.list__table[_ngcontent-ng-c3993565658] { position: relative; display: flex= -; flex-direction: column; flex-grow: 1; } - -.list__banner-slider[_ngcontent-ng-c3993565658] { margin-top: -5px; margin-= -bottom: 20px; } - -.list__banner-slider_with-pagination[_ngcontent-ng-c3993565658] { margin-to= -p: -21px; } - -.list__dragdrop-target-hidden[_ngcontent-ng-c3993565658], .dragdrop-target_= -dragged-over.list__dragdrop-target-hidden[_ngcontent-ng-c3993565658] { disp= -lay: none; } - -.list__wrapper[_ngcontent-ng-c3993565658] { display: flex; align-items: cen= -ter; justify-content: space-between; max-width: 100%; white-space: nowrap; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-bd0c7778-23fc-43af-ba1a-c9a9962a6428@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2649840413] { position: relative; display: flex; width: 100%; = -} - -.menu-item[_ngcontent-ng-c2649840413] { display: flex; align-items: center;= - width: 100%; padding: var(--isp-sidebar-menu-item-padding, 0); margin: 0px= -; overflow: hidden; font-family: inherit; font-size: 14px; color: var(--isp= --text-color-main); text-overflow: ellipsis; white-space: nowrap; background= -: none; border: none; border-radius: var(--isp-sidebar-menu-item-br, var(--= -isp-border-radius-main)); cursor: pointer; } - -.menu-item[_ngcontent-ng-c2649840413]:hover { background-color: var(--isp-d= -c-reincarnation); } - -.menu-item[_ngcontent-ng-c2649840413]:focus-visible { outline: 2px solid va= -r(--isp-text-color-main); } - -.menu-item_active[_ngcontent-ng-c2649840413] { font-weight: var(--isp-font-= -weight-bold); color: var(--isp-sidebar-menu-item-active-color, inherit); } - -.menu-item_active[_ngcontent-ng-c2649840413]:not(.menu-item_child_collapse)= -:not(.menu-item_child_dropdown) .menu-item__icon-wrapper[_ngcontent-ng-c264= -9840413] { --isp-icons-main-color: var(--isp-c-jon-snow); background-color:= - var(--isp-c-blue-velvet); } - -.menu-item_child_dropdown[_ngcontent-ng-c2649840413] { gap: 5px; height: 30= -px; padding: 0px 10px 0px 15px; border-radius: 0px; } - -.menu-item_child_dropdown[_ngcontent-ng-c2649840413]:hover, .menu-item_chil= -d_dropdown[_ngcontent-ng-c2649840413]:focus-visible { background-color: var= -(--isp-dc-cult); } - -.menu-item_active[_ngcontent-ng-c2649840413]::before { position: absolute; = -top: 0px; left: 0px; content: ""; width: 4px; height: 100%; background-colo= -r: var(--isp-c-blue-velvet); opacity: var(--isp-sidebar-menu-item-active-ma= -rker-opacity, 1); } - -.menu-item_child_dropdown[_ngcontent-ng-c2649840413] .menu-item__icon-wrapp= -er[_ngcontent-ng-c2649840413] { display: none; } - -.menu-item_child_collapse[_ngcontent-ng-c2649840413] .menu-item__icon-wrapp= -er[_ngcontent-ng-c2649840413] { opacity: 0; } - -.menu-item__icon-wrapper[_ngcontent-ng-c2649840413] { position: relative; d= -isplay: flex; flex-shrink: 0; align-items: center; justify-content: center;= - width: 25px; height: 25px; margin-right: 10px; border-radius: var(--isp-bo= -rder-radius-main); } - -.menu-item__icon-wrapper[_ngcontent-ng-c2649840413] > [_ngcontent-ng-c26498= -40413] { z-index: 1; } - -.menu-item__icon-wrapper[_ngcontent-ng-c2649840413]::before { position: abs= -olute; top: 0px; left: 0px; content: ""; width: 100%; height: 100%; backgro= -und: transparent; border-radius: calc(var(--isp-border-radius-main) - 1px);= - transition: background-color 0.5s ease-out 0.4s; } - -.menu-item__icon-wrapper_highlight[_ngcontent-ng-c2649840413]::before { bac= -kground: var(--isp-dc-heliodor); } - -.menu-item__icon[_ngcontent-ng-c2649840413] { max-width: 15px; max-height: = -15px; overflow: hidden; } - -.menu-item_child_collapse[_ngcontent-ng-c2649840413] .menu-item__icon-wrapp= -er[_ngcontent-ng-c2649840413] .menu-item__icon[_ngcontent-ng-c2649840413] {= - display: none; } - -.menu-item_active.menu-item_child_collapse[_ngcontent-ng-c2649840413] .menu= --item__icon-wrapper[_ngcontent-ng-c2649840413]::before { content: ""; width= -: 5px; height: 5px; background-color: var(--isp-dc-fremen); border-radius: = -50%; } - -.menu-item__label-wrapper[_ngcontent-ng-c2649840413] { opacity: 0; transiti= -on: opacity 0.25s; } - -.isp-side-bar-menu-item_expanded[_nghost-ng-c2649840413] .menu-item__label-= -wrapper[_ngcontent-ng-c2649840413] { overflow: hidden; text-overflow: ellip= -sis; white-space: nowrap; opacity: 1; transition: opacity 0.25s; } - -.menu-item__label[_ngcontent-ng-c2649840413] { opacity: 1; transition: opac= -ity 0.25s ease-out; } - -.menu-item__label_link[_ngcontent-ng-c2649840413] { color: var(--isp-dc-fre= -men); text-decoration: underline; } - -.menu-item__new-label[_ngcontent-ng-c2649840413] { position: relative; top:= - 1px; margin-left: 5px; opacity: 0; transition: opacity 0.2s; } - -.isp-side-bar-menu-item_expanded[_nghost-ng-c2649840413] .menu-item__new-la= -bel[_ngcontent-ng-c2649840413] { opacity: 1; transition: opacity 0.2s; } - -.menu-item__new-tab-button[_ngcontent-ng-c2649840413] { --isp-icons-main-co= -lor: var(--isp-dc-highway-star); display: none; flex-shrink: 0; align-items= -: center; justify-content: center; width: 25px; height: 25px; padding: 0px;= - margin: 0px 0px 0px auto; background: none; border: none; border-radius: v= -ar(--isp-border-radius-main); cursor: pointer; } - -.menu-item__new-tab-button[_ngcontent-ng-c2649840413]:hover { background: v= -ar(--isp-dc-norilsk); } - -.menu-item[_ngcontent-ng-c2649840413]:hover .menu-item__new-tab-button[_ngc= -ontent-ng-c2649840413] { display: flex; } - -.menu-item.menu-item_child_dropdown[_ngcontent-ng-c2649840413] .menu-item__= -new-tab-button[_ngcontent-ng-c2649840413] { display: flex; visibility: hidd= -en; } - -.menu-item.menu-item_child_dropdown[_ngcontent-ng-c2649840413]:hover .menu-= -item__new-tab-button[_ngcontent-ng-c2649840413] { visibility: visible; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-faabb0e9-e1a9-4fa1-83e4-d0c422ae9cf2@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2826791773] { display: block; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-27bf0ad1-69bc-4cde-b784-89b7c61e865b@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2710868033]:hover { --isp-tabbar-tab-close-opacity: 1; } - -[_nghost-ng-c2710868033]:not(:first-child) { position: relative; margin-lef= -t: 20px; } - -[_nghost-ng-c2710868033]:not(:first-child)::before, [_nghost-ng-c2710868033= -]:not(:first-child)::after { position: absolute; top: 50%; left: -13px; dis= -play: block; content: ""; width: 5px; height: 1px; background-color: var(--= -isp-c-jon-snow); border-radius: 10px; } - -[_nghost-ng-c2710868033]:not(:first-child)::before { transform: translateY(= --2px) rotate(45deg); } - -[_nghost-ng-c2710868033]:not(:first-child)::after { transform: translateY(1= -px) rotate(-45deg); } - -.tab-item[_ngcontent-ng-c2710868033] { position: relative; display: flex; a= -lign-items: center; max-width: 150px; height: 25px; padding: 0px 10px; font= --size: 12px; color: var(--isp-c-jon-snow); background-color: var(--isp-c-st= -ranger-things); border-radius: var(--isp-border-radius-main); cursor: point= -er; transition: background-color 0.3s, color 0.3s; } - -.tab-item[_ngcontent-ng-c2710868033]:hover { background-color: var(--isp-c-= -creepy-cloud); } - -.tab-item[_ngcontent-ng-c2710868033]:active { background-color: var(--isp-c= --lovely-puddle); } - -.tab-item_has_close[_ngcontent-ng-c2710868033] { padding-right: 25px; } - -.tab-item_selected[_ngcontent-ng-c2710868033], .tab-item_selected[_ngconten= -t-ng-c2710868033]:hover { --isp-tabbar-tab-close-opacity: 1; color: var(--i= -sp-c-jon-snow); background-color: var(--isp-c-lovely-puddle); } - -.tab-item__tooltip-anchor[_ngcontent-ng-c2710868033] { height: 25px; line-h= -eight: 25px; } - -.tab-item__close-btn[_ngcontent-ng-c2710868033] { --isp-close-hover-bg: var= -(--isp-c-desolation-of-smaug); --isp-close-icon-color: var(--isp-c-jon-snow= -); position: absolute; top: 5px; right: 5px; display: flex; opacity: var(--= -isp-tabbar-tab-close-opacity, 0); transition: opacity, 0.3s; } - -.cdk-drag-preview .tab-item { background-color: var(--isp-c-grey-weekdays);= - } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-cf870dfa-f45c-449f-a7fa-4cdda55af379@mhtml.blink - -@charset "utf-8"; - -.button[_ngcontent-ng-c4090887856] { --isp-icons-main-color: var(--isp-c-ru= -ssian-north); display: flex; padding: 5px; margin: 0px; background: none; b= -order: none; border-radius: 5px; cursor: pointer; transition: background-co= -lor 0.1s ease-in-out; } - -.button_active[_ngcontent-ng-c4090887856], .button[_ngcontent-ng-c409088785= -6]:hover { background: var(--isp-c-creepy-cloud); } - -.button_marked[_ngcontent-ng-c4090887856] { position: relative; } - -.button_marked[_ngcontent-ng-c4090887856]::before { position: absolute; top= -: 7.5px; left: 13.5px; content: ""; width: 6px; height: 6px; background: va= -r(--isp-c-nosferatu); border-radius: 10px; } - -.upload-center[_ngcontent-ng-c4090887856] { display: flex; flex-direction: = -column; width: 400px; max-height: calc(100vh - var(--isp-topbar-top-line-he= -ight) - 120px); } - -.upload-center_empty[_ngcontent-ng-c4090887856] { min-height: 400px; } - -.header[_ngcontent-ng-c4090887856] { display: flex; flex-shrink: 0; align-i= -tems: center; justify-content: space-between; height: 69px; padding: 0px 20= -px; } - -.header__title[_ngcontent-ng-c4090887856] { font-size: 25px; font-weight: v= -ar(--isp-font-weight-bold); } - -.header__tool-icon[_ngcontent-ng-c4090887856] { display: flex; align-items:= - center; justify-content: center; width: 25px; height: 25px; margin-left: 5= -px; border-radius: 5px; cursor: pointer; } - -.header__tool-icon[_ngcontent-ng-c4090887856]:hover { background: var(--isp= --dc-norilsk); } - -.uploads-limits-banner[_ngcontent-ng-c4090887856] { margin: 0px 20px 25px; = -color: var(--isp-c-malewicz); } - -.uploads-list[_ngcontent-ng-c4090887856] { padding: 0px 20px; overflow: hid= -den auto; } - -.upload-path-group[_ngcontent-ng-c4090887856] { margin-bottom: 25px; border= --bottom: 1px solid var(--isp-dc-charlie-chaplin); } - -.upload-path-group[_ngcontent-ng-c4090887856] .ispui-tooltip-anchor[_ngcont= -ent-ng-c4090887856] { display: inline; } - -.upload-path-group-title[_ngcontent-ng-c4090887856] { display: inline-block= -; padding: 5px 10px; margin-bottom: 15px; color: var(--isp-dc-highway-star)= -; background-color: var(--isp-dc-norilsk); border-radius: var(--isp-border-= -radius-main); cursor: pointer; } - -.upload-path-group-title[_ngcontent-ng-c4090887856]:hover { background-colo= -r: var(--isp-dc-reincarnation); } - -.upload-card[_ngcontent-ng-c4090887856] { padding: 15px 0px 0px; border-top= -: 1px solid var(--isp-dc-charlie-chaplin); } - -.upload-card__upload-title[_ngcontent-ng-c4090887856] { display: flex; gap:= - 5px; align-items: center; justify-content: space-between; padding: 0px 0px= - 5px; color: var(--isp-dc-highway-star); } - -.upload-card__upload-icon[_ngcontent-ng-c4090887856] { flex-shrink: 0; back= -ground-color: var(--isp-dc-glass); } - -.upload-card__upload-name[_ngcontent-ng-c4090887856] { flex: 1 1 0%; max-wi= -dth: 330px; overflow-wrap: break-word; } - -.upload-card__upload-close[_ngcontent-ng-c4090887856] { flex-shrink: 0; } - -.upload-card__upload-close[_ngcontent-ng-c4090887856]:hover { background-co= -lor: var(--isp-dc-norilsk); } - -.upload-card__bar[_ngcontent-ng-c4090887856] { --isp-progress-bar__height: = -4px; --isp-progress-bar__border-radius: 4px; background-color: var(--isp-dc= --charlie-chaplin); border-radius: 4px; } - -.upload-card__bar_success[_ngcontent-ng-c4090887856] { --isp-progress-bar__= -background: var(--isp-c-grasshopper); } - -.upload-card__bar_confirm[_ngcontent-ng-c4090887856], .upload-card__bar_err= -or[_ngcontent-ng-c4090887856] { --isp-progress-bar__background: var(--isp-d= -c-bright-emotions); } - -.upload-card__stats[_ngcontent-ng-c4090887856] { display: flex; justify-con= -tent: space-between; padding: 5px 0px; } - -.upload-card__stats[_ngcontent-ng-c4090887856]:last-child { margin-bottom: = -10px; } - -.upload-card__size[_ngcontent-ng-c4090887856], .upload-card__percent[_ngcon= -tent-ng-c4090887856] { color: var(--isp-c-grey-weekdays); } - -.upload-card__upload-success[_ngcontent-ng-c4090887856] { color: var(--isp-= -c-grasshopper); } - -.upload-card__confirm[_ngcontent-ng-c4090887856] { margin-bottom: 15px; col= -or: var(--isp-dc-bright-emotions); } - -.upload-card__confirm_file-path[_ngcontent-ng-c4090887856] { margin-top: 5p= -x; } - -.upload-card__confirm_actions[_ngcontent-ng-c4090887856] { display: flex; g= -ap: 10px; margin-top: 5px; } - -.upload-card__confirm_actions[_ngcontent-ng-c4090887856] > a[_ngcontent-ng-= -c4090887856]:not(:first-child) { display: flex; align-items: center; } - -.upload-card__confirm_actions[_ngcontent-ng-c4090887856] > a[_ngcontent-ng-= -c4090887856]:not(:first-child)::before { content: ""; height: 10px; margin-= -right: 10px; border-left: var(--isp-c-grey-weekdays) 1px solid; } - -.upload-card__confirm_apply-to-all-cb[_ngcontent-ng-c4090887856] { display:= - flex; gap: 1px; align-items: center; margin-top: 7px; color: var(--isp-dc-= -highway-star); } - -.upload-card__confirm_apply-to-all-cb_hidden[_ngcontent-ng-c4090887856] { d= -isplay: none; } - -.empty[_ngcontent-ng-c4090887856] { display: flex; flex-direction: column; = -height: 300px; padding-top: 30px; margin: 0px 20px; text-align: center; } - -.empty[_ngcontent-ng-c4090887856] h3[_ngcontent-ng-c4090887856] { margin: 0= -px 0px 10px; font-size: 18px; font-weight: 400; } - -.empty[_ngcontent-ng-c4090887856] > img[_ngcontent-ng-c4090887856] { height= -: 161px; margin-bottom: 29px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-7da09db9-b789-4c74-b784-32974b4c46b1@mhtml.blink - -@charset "utf-8"; - -.searchbar[_ngcontent-ng-c739703107] { display: flex; align-items: center; = -width: 235px; height: 25px; padding: 5px; font: inherit; background-color: = -var(--isp-searchbar-bc, var(--isp-dc-charlie-chaplin)); border: none; borde= -r-radius: var(--isp-border-radius-main); transition: width 0.25s ease-out, = -background-color 0.25s ease-out; } - -.searchbar[_ngcontent-ng-c739703107]:focus-visible { outline: 2px solid var= -(--isp-text-color-main); } - -.searchbar_collapsed[_ngcontent-ng-c739703107] { width: 25px; background-co= -lor: transparent; cursor: pointer; } - -.searchbar_collapsed[_ngcontent-ng-c739703107]:hover { background-color: va= -r(--isp-searchbar-bc_collapsed-hover, var(--isp-c-creepy-cloud)); } - -.searchbar_collapsed[_ngcontent-ng-c739703107] .searchbar__input[_ngcontent= --ng-c739703107] { margin: 0px; outline: none; visibility: hidden; } - -.searchbar_collapsed[_ngcontent-ng-c739703107] .searchbar__clear[_ngcontent= --ng-c739703107] { visibility: hidden; } - -.searchbar__tooltip[_ngcontent-ng-c739703107] { display: block; } - -.searchbar__icon[_ngcontent-ng-c739703107] { --isp-icons-main-color: var(--= -isp-text-color-main); position: relative; display: flex; flex-shrink: 0; } - -.searchbar__input[_ngcontent-ng-c739703107] { width: 100%; margin: 0px 10px= -; font-family: inherit; color: var(--isp-text-color-main); background: none= -; border: none; outline: none; } - -.searchbar__input[_ngcontent-ng-c739703107]::placeholder { color: var(--isp= --c-grey-weekdays); opacity: 1; } - -.searchbar__clear[_ngcontent-ng-c739703107] { flex-shrink: 0; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-27738d37-f75d-4cc7-a911-06221e7eef63@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c4005645368] { --isp-searchbar-bc_collapsed-hover: var(--isp-dc= --charlie-chaplin); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-9e72d534-97ec-487e-9d9e-cfecca1772d3@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c825126261] { display: flex; width: 100%; padding: 27px 20px 10= -px; transition: padding-bottom 0.25s ease-out; } - -.isp-side-bar-toolbar_keep-search[_nghost-ng-c825126261]:not(.isp-side-bar-= -toolbar_expanded) { padding-bottom: 56px; transition: padding-bottom 0.25s = -ease-out; } - -.header[_ngcontent-ng-c825126261] { position: relative; display: flex; gap:= - 10px; align-items: center; justify-content: space-between; width: 235px; } - -.header__burger[_ngcontent-ng-c825126261] { flex: 0 1 0%; opacity: 1; trans= -ition: opacity 0.15s ease-out; } - -.header__burger_hidden[_ngcontent-ng-c825126261] { opacity: 0; } - -.header__burger-button[_ngcontent-ng-c825126261] { display: flex; align-ite= -ms: center; justify-content: center; width: 25px; height: 25px; padding: 0p= -x; margin: 0px; background: none; border: none; border-radius: var(--isp-bo= -rder-radius-main); cursor: pointer; } - -.header__burger-button[_ngcontent-ng-c825126261]:hover { background-color: = -var(--isp-dc-charlie-chaplin); } - -.header__burger-button[_ngcontent-ng-c825126261]:focus-visible { outline: 2= -px solid var(--isp-text-color-main); } - -.tab-bar[_ngcontent-ng-c825126261] { display: flex; flex: 1 1 0%; gap: 5px;= - justify-content: center; width: 165px; opacity: 1; transition: opacity 0.1= -5s ease-out; } - -.tab-bar_hidden[_ngcontent-ng-c825126261] { opacity: 0; } - -.header__collapsed[_ngcontent-ng-c825126261] .tab-bar[_ngcontent-ng-c825126= -261] { opacity: 0; visibility: hidden; } - -.tab-bar__tab-button[_ngcontent-ng-c825126261] { display: flex; align-items= -: center; justify-content: center; width: 25px; height: 25px; padding: 0px;= - margin: 0px; background: none; border: none; border-radius: var(--isp-bord= -er-radius-main); cursor: pointer; } - -.tab-bar__tab-button[_ngcontent-ng-c825126261]:not(.tab-bar__tab-button_act= -ive):hover { background-color: var(--isp-dc-charlie-chaplin); } - -.tab-bar__tab-button[_ngcontent-ng-c825126261]:focus-visible { outline: 2px= - solid var(--isp-text-color-main); } - -.tab-bar__tab-button_active[_ngcontent-ng-c825126261] { --isp-icons-main-co= -lor: var(--isp-c-jon-snow); background-color: var(--isp-c-blue-velvet); } - -.search-bar[_ngcontent-ng-c825126261] { position: absolute; top: 0px; right= -: 0px; flex: 0 1 0%; opacity: 1; transition: opacity 0.25s ease-out, right = -0.25s ease-out, top 0.25s ease-out; } - -.isp-side-bar-toolbar_keep-search[_nghost-ng-c825126261]:not(.isp-side-bar-= -toolbar_expanded) .search-bar[_ngcontent-ng-c825126261] { top: 35px; right:= - 210px; transition: right 0.25s ease-out, top 0.25s ease-out; } - -.fake-search-bar[_ngcontent-ng-c825126261] { width: 25px; height: 25px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-46001c25-4433-4582-9e4d-00776d982b2c@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c1448154062] { --isp-navboard-group-height: calc(var(--isp-has-= -navboard) * 62px); display: block; height: 100%; color: var(--isp-text-colo= -r-main); background-color: var(--isp-dc-mimic); } - -.toolbar[_ngcontent-ng-c1448154062] { padding: 20px; } - -.burger[_ngcontent-ng-c1448154062] { display: flex; align-items: center; ju= -stify-content: center; width: 25px; height: 25px; padding: 0px; background:= - none; border: none; border-radius: var(--isp-border-radius-main); cursor: = -pointer; } - -.burger[_ngcontent-ng-c1448154062]:hover { background-color: var(--isp-dc-c= -harlie-chaplin); } - -.burger[_ngcontent-ng-c1448154062]:focus-visible { outline: 2px solid var(-= --isp-text-color-main); } - -.groups[_ngcontent-ng-c1448154062] { --isp-scrollbar-track-bg: transparent;= - --isp-scrollbar-thumb-bg: transparent; max-height: calc(100% - 62px - var(= ---isp-navboard-group-height)); padding-bottom: calc(22px - 12px * var(--isp= --has-navboard, 0)); overflow: hidden auto; font-size: 14px; scroll-behavior= -: smooth; transition: scrollbar-color 0.3s, max-height 0.25s ease-out; } - -.groups[_ngcontent-ng-c1448154062]:hover { --isp-scrollbar-thumb-bg: unset;= - } - -[_nghost-ng-c1448154062]:not(.isp-lite-sidebar_expanded) .groups[_ngcontent= --ng-c1448154062] { max-height: calc(100% - 108px - var(--isp-navboard-group= --height)); } - -.group[_ngcontent-ng-c1448154062] { position: relative; overflow: hidden; } - -.group_separate[_ngcontent-ng-c1448154062] { padding: 21px 0px; transition:= - padding var(--isp-favorite-toggle-animation-duration) linear; } - -.group_separate[_ngcontent-ng-c1448154062]::before, .group_separate[_ngcont= -ent-ng-c1448154062]::after { position: absolute; left: 25px; content: ""; w= -idth: calc(var(--isp-sidebar-width, 100%) - 50px); height: 1px; background:= - var(--isp-dc-reincarnation); } - -.group_separate[_ngcontent-ng-c1448154062]::before { top: 10px; } - -.group_separate[_ngcontent-ng-c1448154062]::after { bottom: 10px; } - -.group_separate[_ngcontent-ng-c1448154062] + .group_separate[_ngcontent-ng-= -c1448154062] { padding-top: 0px; } - -.group_separate[_ngcontent-ng-c1448154062] + .group_separate[_ngcontent-ng-= -c1448154062]::before { display: none; } - -.group_separate[_ngcontent-ng-c1448154062]:last-of-type { padding-bottom: 0= -px; } - -.group_separate[_ngcontent-ng-c1448154062]:last-of-type::after { display: n= -one; } - -.group_deseparating[_ngcontent-ng-c1448154062] { padding: 0px; } - -.group_deseparating[_ngcontent-ng-c1448154062]::before, .group_deseparating= -[_ngcontent-ng-c1448154062]::after { display: none; } - -.group_deseparating[_ngcontent-ng-c1448154062] + .group_separate[_ngcontent= --ng-c1448154062] { padding-top: 21px; } - -.group_navboard[_ngcontent-ng-c1448154062] { padding-top: 11px; } - -.group_navboard[_ngcontent-ng-c1448154062]::before { top: 0px; position: ab= -solute; left: 25px; content: ""; width: calc(var(--isp-sidebar-width, 100%)= - - 50px); height: 1px; background: var(--isp-dc-reincarnation); } - -.item[_ngcontent-ng-c1448154062] { --isp-sidebar-menu-item-padding: 5px 20p= -x; --isp-sidebar-menu-item-br: 0; --isp-sidebar-menu-item-active-marker-opa= -city: 0; display: block; height: 35px; overflow: hidden; cursor: pointer; } - -.item_adding[_ngcontent-ng-c1448154062] { animation: _ngcontent-ng-c1448154= -062_item-adding var(--isp-favorite-toggle-animation-duration) linear; } - -.item_removing[_ngcontent-ng-c1448154062] { height: 0px; margin-bottom: 0px= -; opacity: 0; animation: _ngcontent-ng-c1448154062_item-adding var(--isp-fa= -vorite-toggle-animation-duration) linear reverse; } - -@keyframes _ngcontent-ng-c1448154062_item-adding {=20 - 0% { height: 0px; opacity: 0; } - 100% { height: 35px; opacity: 1; } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-131c679e-8c81-4166-91aa-fd551f14b3ae@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c587941482] { display: flex; } - -.progress-bar[_ngcontent-ng-c587941482] { display: flex; width: 100%; heigh= -t: var(--isp-progress-bar__height, 7px); background-image: ; background-pos= -ition-x: ; background-position-y: ; background-repeat: ; background-attachm= -ent: ; background-origin: ; background-clip: ; background-color: ; backgrou= -nd-size: 200% 100%; border-radius: var(--isp-progress-bar__border-radius, 0= -); transition: transform 0.2s linear; transform: scaleX(calc(var(--isp-prog= -ress-bar__value, 0) / 100)); transform-origin: left center; animation: 5s e= -ase-in-out 0s infinite normal forwards running _ngcontent-ng-c587941482_bac= -kground-slide; } - -.progress-bar_reset[_ngcontent-ng-c587941482] { transition: none; } - -@keyframes _ngcontent-ng-c587941482_background-slide {=20 - 0% { background-position-x: 0%; } - 50% { background-position-x: 100%; } - 100% { background-position-x: 0%; } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-dac07b53-f677-438c-8d56-07ad692f7f59@mhtml.blink - -@charset "utf-8"; - -.isp-session-tip__anchor[_ngcontent-ng-c3500327207] { width: 100%; height: = -100%; } - -.isp-session-tip-popup__close[_ngcontent-ng-c3500327207] { position: absolu= -te; top: 10px; right: 10px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-49e91709-7788-4c28-81aa-322746c48993@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c4105026868] { position: relative; } - -.user-menu[_ngcontent-ng-c4105026868] { --isp-icons-main-color: var(--isp-c= --jon-snow); display: inline-flex; align-items: center; padding: 5px; color:= - var(--isp-c-jon-snow); background: transparent; border: none; border-radiu= -s: 5px; cursor: pointer; transition: background-color 0.1s ease-in-out; } - -.user-menu[_ngcontent-ng-c4105026868]:hover { background-color: var(--isp-c= --creepy-cloud); } - -.user-menu__icon[_ngcontent-ng-c4105026868] { display: flex; } - -.user-menu__user-icon[_ngcontent-ng-c4105026868] { margin-right: 5px; } - -.user-menu__user-name[_ngcontent-ng-c4105026868] { display: flex; flex-wrap= -: nowrap; align-items: center; font-size: 12px; } - -.user-menu__arrow-down[_ngcontent-ng-c4105026868] { --isp-icons-main-color:= - currentColor; --isp-icons-fill-color: var(--isp-top-bar-icon-background); = -margin-left: 5px; } - -.user-menu__item[_ngcontent-ng-c4105026868] { display: flex; gap: 10px; ali= -gn-items: center; height: 30px; padding: 0px 15px; white-space: nowrap; cur= -sor: pointer; } - -.user-menu__item[_ngcontent-ng-c4105026868]:hover { background: var(--isp-d= -c-cult); } - -.user-menu__icon[_ngcontent-ng-c4105026868] { --isp-icons-fill-color: trans= -parent; } - -.user-menu__tip[_ngcontent-ng-c4105026868] { position: absolute; right: 25p= -x; bottom: 10px; width: 0px; height: 0px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-00e5fee0-7a6d-4493-b90e-4f8cc131a367@mhtml.blink - -@charset "utf-8"; - -.button[_ngcontent-ng-c832466591] { --isp-icons-main-color: var(--isp-c-rus= -sian-north); display: flex; align-items: center; justify-content: center; w= -idth: 25px; height: 25px; padding: 0px; background: transparent; border: no= -ne; border-radius: 5px; cursor: pointer; transition: background-color 0.1s = -ease-in-out; } - -.button_marked[_ngcontent-ng-c832466591] { position: relative; } - -.button_marked[_ngcontent-ng-c832466591]::before { position: absolute; top:= - 7.5px; left: 13.5px; content: ""; width: 6px; height: 6px; background: var= -(--isp-c-nosferatu); border-radius: 10px; } - -.button_active[_ngcontent-ng-c832466591], .button[_ngcontent-ng-c832466591]= -:hover { background: var(--isp-c-creepy-cloud); } - -.header[_ngcontent-ng-c832466591] { display: flex; flex-shrink: 0; align-it= -ems: center; height: 69px; padding: 0px 20px; } - -.header__title[_ngcontent-ng-c832466591] { font-size: 25px; font-weight: va= -r(--isp-font-weight-bold); } - -.header__counter[_ngcontent-ng-c832466591] { display: flex; align-items: ce= -nter; justify-content: center; width: 39px; height: 25px; margin-right: aut= -o; margin-left: 10px; font-size: 12px; background: var(--isp-dc-norilsk); b= -order-radius: 5px; transition-property: background-color, color; transition= --duration: 0.2s; } - -.header__counter_warning[_ngcontent-ng-c832466591] { background: var(--isp-= -dc-bright-emotions); transition-property: background-color, color; transiti= -on-duration: 0.2s; } - -.header__tool-icon[_ngcontent-ng-c832466591] { display: flex; align-items: = -center; justify-content: center; width: 25px; height: 25px; margin-left: 5p= -x; border-radius: 5px; cursor: pointer; } - -.header__tool-icon[_ngcontent-ng-c832466591]:hover { background: var(--isp-= -dc-norilsk); } - -.header__tool-icon_name_read[_ngcontent-ng-c832466591]:hover { --isp-icons-= -main-color: var(--isp-c-grasshopper); } - -.header__tool-icon_name_remove[_ngcontent-ng-c832466591]:hover { --isp-icon= -s-main-color: var(--isp-dc-bright-emotions); } - -.go-to-new[_ngcontent-ng-c832466591] { position: absolute; top: 69px; left:= - 0px; z-index: 1; display: flex; align-items: center; justify-content: cent= -er; width: 100%; height: 34px; color: var(--isp-c-jon-snow); background: va= -r(--isp-c-blue-velvet); cursor: pointer; } - -.go-to-new[_ngcontent-ng-c832466591]:hover { background: var(--isp-c-deep);= - } - -.go-to-new[_ngcontent-ng-c832466591]::before, .go-to-new[_ngcontent-ng-c832= -466591]::after { position: absolute; top: 15px; right: 20px; content: ""; w= -idth: 1px; height: 7px; background: var(--isp-c-jon-snow); transform: rotat= -e(42deg); transform-origin: 50% 0px 0px; } - -.go-to-new[_ngcontent-ng-c832466591]::after { transform: rotate(-42deg); } - -.notification-list[_ngcontent-ng-c832466591] { overflow: hidden auto; } - -.notification[_ngcontent-ng-c832466591] { position: relative; padding: 20px= - 20px 20px 45px; background: var(--isp-dc-norilsk); transition-property: ba= -ckground-color, opacity, transform; transition-duration: 0.5s, 0.2s, 0.2s; = -transition-timing-function: linear, ease-in, ease-in; } - -.notification[_ngcontent-ng-c832466591]::before { position: absolute; top: = -0px; left: 20px; content: ""; width: calc(100% - 40px); height: 1px; backgr= -ound-color: var(--isp-dc-charlie-chaplin); } - -.notification_fading-out[_ngcontent-ng-c832466591] { opacity: 0; transform:= - translate(100%); } - -.notification_read[_ngcontent-ng-c832466591] { background: var(--isp-dc-cow= -); } - -.notification_unread[_ngcontent-ng-c832466591] + .notification[_ngcontent-n= -g-c832466591]:not(.notification_unread)::before, .notification[_ngcontent-n= -g-c832466591]:not(.notification_unread) + .notification_unread[_ngcontent-n= -g-c832466591]::before { display: none; } - -.notification__icon[_ngcontent-ng-c832466591] { --isp-icons-fill-color: var= -(--isp-c-jon-snow); position: absolute; top: 20px; left: 20px; } - -.notification__date[_ngcontent-ng-c832466591] { width: fit-content; margin-= -bottom: 5px; font-size: 12px; color: var(--isp-c-grey-weekdays); } - -.notification__msg[_ngcontent-ng-c832466591] { font-size: 14px; word-break:= - break-word; white-space: pre-line; } - -.notification__link[_ngcontent-ng-c832466591] { width: fit-content; margin-= -top: 10px; color: var(--isp-dc-fremen); cursor: pointer; } - -.notification__link[_ngcontent-ng-c832466591]:hover { color: var(--isp-dc-l= -apis-lazuli); } - -.empty[_ngcontent-ng-c832466591] { height: 300px; overflow-x: hidden; font-= -size: 18px; text-align: center; } - -.empty__img[_ngcontent-ng-c832466591] { display: flex; align-items: center;= - justify-content: center; height: 220px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-14ac5b63-2051-4fd0-aa97-447e848ac806@mhtml.blink - -@charset "utf-8"; - -.color-scheme-button[_ngcontent-ng-c3804918142] { --isp-icons-main-color: v= -ar(--isp-c-jon-snow); display: block; padding: 5px; margin: 0px; color: var= -(--isp-c-jon-snow); background: none; border: none; border-radius: 5px; cur= -sor: pointer; transition: background-color 0.1s ease-in-out; } - -.color-scheme-button[_ngcontent-ng-c3804918142]:hover { background-color: v= -ar(--isp-c-creepy-cloud); } - -.color-scheme-button__icon[_ngcontent-ng-c3804918142] { display: flex; } - -.color-scheme-dropdown[_ngcontent-ng-c3804918142] { --isp-icons-main-color:= - var(--isp-text-color-main); display: flex; gap: 10px; align-items: center;= - width: 100%; height: 30px; padding: 0px 15px; margin: 0px; font-family: in= -herit; font-size: inherit; color: var(--isp-text-color-main); background: n= -one; border: none; cursor: pointer; } - -.color-scheme-dropdown[_ngcontent-ng-c3804918142]:hover { background-color:= - var(--isp-dc-cult); } - -.color-scheme-dropdown__icon[_ngcontent-ng-c3804918142] { display: flex; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-ff228077-44cd-42e8-9991-84f6d5583e6c@mhtml.blink - -@charset "utf-8"; - -.button[_ngcontent-ng-c1018226872] { --isp-icons-main-color: var(--isp-c-jo= -n-snow); position: relative; display: flex; align-items: center; justify-co= -ntent: center; width: 25px; height: 25px; padding: 0px; margin: 0px; backgr= -ound: var(--isp-c-creepy-cloud); border: 0px; border-radius: 50%; pointer-e= -vents: all; } - -.button[_ngcontent-ng-c1018226872]:hover { background: var(--isp-c-lovely-p= -uddle); } - -.button-wrapper_for_left[_ngcontent-ng-c1018226872] { left: 10px; } - -.button-wrapper_for_right[_ngcontent-ng-c1018226872] { right: 10px; } - -.button-wrapper[_ngcontent-ng-c1018226872] { position: absolute; top: 50%; = -z-index: 1; display: flex; width: 60px; height: 25px; opacity: 0; pointer-e= -vents: none; transition: opacity 0.3s; transform: translateY(-50%); } - -.button-wrapper_visible[_ngcontent-ng-c1018226872] { opacity: 1; } - -.button-wrapper_visible[_ngcontent-ng-c1018226872] .button[_ngcontent-ng-c1= -018226872] { cursor: pointer; } - -.dimmer[_ngcontent-ng-c1018226872] { width: 30px; height: 25px; background:= - linear-gradient(90deg,transparent,var(--isp-c-darth-vader) 100.34%); } - -.dimmer_for_left[_ngcontent-ng-c1018226872] { background: linear-gradient(9= -0deg,var(--isp-c-darth-vader) 0%,transparent); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-84c2ecd9-1dc3-4571-813f-59fb9a52c4e3@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c1018226872] { position: relative; display: block; flex-grow: 1= -; width: 0px; } - -.tabbar__group-wrapper[_ngcontent-ng-c1018226872] { display: flex; padding-= -left: 1px; margin: 0px 40px; overflow-x: auto; scrollbar-width: none; } - -.tabbar__group-wrapper[_ngcontent-ng-c1018226872]::-webkit-scrollbar { disp= -lay: none; } - -.tabbar__group[_ngcontent-ng-c1018226872] { --isp-icons-fill-color: transpa= -rent; display: flex; padding: 2px 0px; margin-right: 5px; border-radius: 10= -px; } - -.tabbar__group.cdk-drag-placeholder[_ngcontent-ng-c1018226872] { opacity: 0= -; } - -.tabbar__icon[_ngcontent-ng-c1018226872] { --isp-icons-main-color: var(--is= -p-c-jon-snow); display: block; margin-top: 5px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-dfcec745-446e-4863-af9c-5ddcc198c8ed@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2343147944], .link[_ngcontent-ng-c2343147944] { display: grid;= - } - -.brand-logo[_ngcontent-ng-c2343147944] { display: block; grid-area: 1 / 1; = -max-width: calc(var(--isp-full-sidebar-width) - 20px); max-height: calc(var= -(--isp-topbar-top-line-height, 50px) - 20px); } - -.brand-logo_large[_ngcontent-ng-c2343147944] { width: auto; opacity: 1; } - -.brand-logo_small[_ngcontent-ng-c2343147944] { width: 0px; max-width: 25px;= - max-height: 25px; opacity: 0; } - -.small[_nghost-ng-c2343147944] .brand-logo_large[_ngcontent-ng-c2343147944]= - { width: 0px; opacity: 0; } - -.small[_nghost-ng-c2343147944] .brand-logo_small[_ngcontent-ng-c2343147944]= - { width: auto; opacity: 1; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-329befa9-ea12-4619-b52f-717556cd1365@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c1128606124] { position: absolute; inset: 0px; z-index: var(--i= -sp-z-index-layout-skeleton); pointer-events: none; } - -.layout-skeleton[_ngcontent-ng-c1128606124] { position: absolute; inset: 0p= -x; background-color: var(--isp-dc-monochrome); pointer-events: auto; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-0a92fb51-554c-4d71-966e-1175e631e9aa@mhtml.blink - -@charset "utf-8"; - -.drawer_size_small[_ngcontent-ng-c132568176] { --isp-drawer-window-width: 4= -80px; } - -.drawer_size_medium[_ngcontent-ng-c132568176] { --isp-drawer-window-width: = -660px; } - -.drawer_size_large[_ngcontent-ng-c132568176] { --isp-drawer-window-width: m= -in(1010px, 100%); } - -isp-drawer[_ngcontent-ng-c132568176] .header-row__mode-switch_narrow-form {= - display: block; } - -isp-drawer[_ngcontent-ng-c132568176] .header-row__mode-switch_inline { disp= -lay: none; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-844d8cf0-09c1-4587-944a-ef1c5b83fae4@mhtml.blink - -@charset "utf-8"; - -.top-line[_ngcontent-ng-c3544066758] { --isp-top-bar-transition: opacity .3= -s ease; --isp-top-bar-hover-opacity: .7; --isp-top-bar-icon-background: var= -(--isp-c-darth-vader); --isp-top-bar-icon-main-color: currentColor; --isp-i= -cons-danger-color: var(--isp-c-c-3po); position: relative; display: flex; a= -lign-items: center; width: 100%; height: var(--isp-topbar-top-line-height, = -50px); padding-right: 20px; color: var(--isp-c-jon-snow); background: var(-= --isp-c-darth-vader); } - -.top-line__logo-container[_ngcontent-ng-c3544066758] { flex-shrink: 0; min-= -width: var(--isp-full-sidebar-width); padding-left: 20px; transition: min-w= -idth 0.25s ease-out; } - -.top-line__logo-container_collapsed[_ngcontent-ng-c3544066758] { min-width:= - 0px; } - -.top-line__toolbar[_ngcontent-ng-c3544066758] { display: flex; flex-grow: 1= -; column-gap: 30px; justify-content: space-between; max-height: var(--isp-t= -opbar-top-line-height, 50px); margin-left: -10px; } - -.top-line__toolbar__group[_ngcontent-ng-c3544066758] { display: flex; flex-= -wrap: nowrap; column-gap: 10px; align-items: center; } - -.topbar-progressbar-container[_ngcontent-ng-c3544066758] { position: absolu= -te; right: 0px; bottom: -7px; z-index: var(--isp-progress-bar-z-index); wid= -th: calc(100% - var(--isp-sidebar-width)); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-c9b8e32b-5394-422f-8451-fae1d59099e5@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c1429475937] { z-index: var(--isp-header-z-index); display: fle= -x; flex-direction: column; } - -.narrow-banner[_ngcontent-ng-c1429475937] { --isp-icons-main-color: var(--i= -sp-text-color-main); position: absolute; inset: 0px; display: flex; gap: 10= -px; align-items: center; justify-content: center; width: 100%; height: 25px= -; overflow: hidden; color: var(--isp-text-color-main); transform: translate= -Y(0px); } - -.narrow-banner[_ngcontent-ng-c1429475937]:first-child { position: relative;= - } - -.narrow-banner_state_close[_ngcontent-ng-c1429475937] { animation-name: _ng= -content-ng-c1429475937_slide-down; animation-duration: 0.2s; animation-dire= -ction: reverse; animation-timing-function: ease-in-out; animation-fill-mode= -: forwards; } - -.narrow-banner_state_close[_ngcontent-ng-c1429475937]:first-child { animati= -on-name: _ngcontent-ng-c1429475937_height-down; } - -.narrow-banner_state_open[_ngcontent-ng-c1429475937] { animation-name: _ngc= -ontent-ng-c1429475937_slide-down; animation-duration: 0.2s; animation-direc= -tion: normal; animation-timing-function: ease-in-out; animation-fill-mode: = -forwards; } - -.narrow-banner_state_open[_ngcontent-ng-c1429475937]:first-child { animatio= -n-name: _ngcontent-ng-c1429475937_height-down; } - -.narrow-banner_status_warning[_ngcontent-ng-c1429475937] { z-index: var(--i= -sp-narrow-banner-warning-z-index); background-color: var(--isp-dc-heliodor)= -; } - -.narrow-banner_status_info[_ngcontent-ng-c1429475937] { z-index: var(--isp-= -narrow-banner-info-z-index); background-color: var(--isp-dc-the-institute);= - } - -.narrow-banner_status_danger[_ngcontent-ng-c1429475937] { z-index: var(--is= -p-narrow-banner-danger-z-index); background-color: var(--isp-dc-rhodochrosi= -te); } - -.narrow-banner_status_success[_ngcontent-ng-c1429475937] { z-index: var(--i= -sp-narrow-banner-success-z-index); background-color: var(--isp-dc-alexandri= -te); } - -.narrow-banner__icon[_ngcontent-ng-c1429475937] { display: flex; } - -.narrow-banner__button[_ngcontent-ng-c1429475937], .narrow-banner__close-bu= -tton[_ngcontent-ng-c1429475937] { padding: 0px; margin: 0px; font-family: i= -nherit; color: inherit; text-decoration: underline; background: none; borde= -r: none; cursor: pointer; } - -.narrow-banner__close-button[_ngcontent-ng-c1429475937] { position: absolut= -e; right: 20px; display: flex; align-items: center; justify-content: center= -; width: 15px; height: 15px; border-radius: 50%; } - -.narrow-banner__close-button[_ngcontent-ng-c1429475937]:hover { background-= -color: var(--isp-dc-zebra); } - -.narrow-banner__close-icon[_ngcontent-ng-c1429475937] { display: flex; } - -.narrow-banner__link[_ngcontent-ng-c1429475937] { display: flex; align-item= -s: center; height: 19px; padding: 0px 10px; color: var(--isp-text-color-mai= -n); text-decoration: none; border: 1px solid var(--isp-text-color-main); bo= -rder-radius: 12px; } - -.narrow-banner__link[_ngcontent-ng-c1429475937]:visited { color: var(--isp-= -text-color-main); } - -@keyframes _ngcontent-ng-c1429475937_slide-down {=20 - 0% { transform: translateY(-25px); } - 100% { transform: translateY(0px); } -} - -@keyframes _ngcontent-ng-c1429475937_height-down {=20 - 0% { height: 0px; } - 100% { height: 25px; } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-459a38a5-935a-4c11-8cf1-4ec59c1aff34@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c1632974171] { position: fixed; inset: 0px; z-index: var(--isp-= -z-index-color-scheme-overlay); pointer-events: none; } - -.overlay[_ngcontent-ng-c1632974171] { position: absolute; inset: 0px; displ= -ay: flex; align-items: center; justify-content: center; width: 100%; height= -: 100%; background-color: transparent; opacity: 0; } - -.overlay.show[_ngcontent-ng-c1632974171] { pointer-events: auto; animation:= - _ngcontent-ng-c1632974171_fadeInOut var(--isp-color-scheme-overlay-animati= -on-time) ease-in-out; } - -.overlay.light[_ngcontent-ng-c1632974171] { background-color: var(--isp-c-r= -ussian-north); } - -.overlay.light[_ngcontent-ng-c1632974171] .inner-circle[_ngcontent-ng-c1632= -974171] { fill: var(--isp-c-silent-hill); stroke: var(--isp-c-silent-hill);= - } - -.overlay.light[_ngcontent-ng-c1632974171] .outer-circle[_ngcontent-ng-c1632= -974171] { fill: var(--isp-c-russian-north); stroke: var(--isp-c-russian-nor= -th); } - -.overlay.dark[_ngcontent-ng-c1632974171] { background-color: var(--isp-c-in= -terstellar); } - -.overlay.dark[_ngcontent-ng-c1632974171] .inner-circle[_ngcontent-ng-c16329= -74171] { fill: var(--isp-c-silent-hill); stroke: var(--isp-c-silent-hill); = -} - -.overlay.dark[_ngcontent-ng-c1632974171] .outer-circle[_ngcontent-ng-c16329= -74171] { fill: var(--isp-c-interstellar); stroke: var(--isp-c-interstellar)= -; } - -.overlay.show[_ngcontent-ng-c1632974171] .outer-circle[_ngcontent-ng-c16329= -74171] { animation: _ngcontent-ng-c1632974171_slideRight calc(var(--isp-col= -or-scheme-overlay-animation-time) * .7) ease-in-out forwards; } - -@keyframes _ngcontent-ng-c1632974171_fadeInOut {=20 - 0%, 100% { opacity: 0; } - 40%, 70% { opacity: 1; } -} - -@keyframes _ngcontent-ng-c1632974171_slideRight {=20 - 0% { cx: -30px; } - 100% { cx: 30px; } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-dd0b0f3e-f051-47a8-8cd2-bcf051a69958@mhtml.blink - -@charset "utf-8"; - -.anchor[_ngcontent-ng-c618741789] { position: absolute; z-index: var(--isp-= -z-index-guide); opacity: 0; pointer-events: none; } - -.close-btn[_ngcontent-ng-c618741789] { --isp-close-size: 35px; --isp-close-= -icon-color: var(--isp-dc-highway-star); --isp-close-hover-bg: var(--isp-dc-= -mass-relay); position: absolute; top: 5px; right: 5px; } - -.close-btn[_ngcontent-ng-c618741789]:active { --isp-close-border: 2px solid= - var(--isp-dc-highway-star); } - -.title[_ngcontent-ng-c618741789] { margin-bottom: 10px; font-size: 14px; fo= -nt-weight: 500; line-height: 18px; } - -.close-btn[_ngcontent-ng-c618741789] + .title[_ngcontent-ng-c618741789] { p= -adding-right: 20px; } - -.text[_ngcontent-ng-c618741789], .content[_ngcontent-ng-c618741789] { line-= -height: 18px; } - -.rating[_ngcontent-ng-c618741789] { display: flex; justify-content: center;= - margin-bottom: 15px; } - -.star-ball[_ngcontent-ng-c618741789] { --isp-icons-main-color: var(--isp-dc= --highway-star); display: flex; align-items: center; justify-content: center= -; width: 35px; height: 35px; border-radius: 50%; cursor: pointer; } - -.star-ball[_ngcontent-ng-c618741789]:hover { background: var(--isp-dc-monoc= -hrome); } - -.buttons[_ngcontent-ng-c618741789] { display: flex; gap: 10px; margin-top: = -10px; } - -.button[_ngcontent-ng-c618741789] { flex-grow: 1; height: 38px; font: inher= -it; color: var(--isp-dc-highway-star); background: var(--isp-dc-monochrome)= -; border: none; border-radius: 5px; cursor: pointer; } - -.button[_ngcontent-ng-c618741789]:hover { background: var(--isp-dc-mass-rel= -ay); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-8fa7d914-f809-47b8-be0a-d1ddbdae4c33@mhtml.blink - -@charset "utf-8"; - -.progress-box[_ngcontent-ng-c3834831935] { position: fixed; top: calc(50% += - var(--isp-topbar-height) / 2); left: calc(50% + var(--isp-sidebar-width) /= - 2); z-index: var(--isp-progress-modal-z-index); width: var(--isp-progress-= -modal-width, 680px); padding: var(--isp-progress-modal-padding, 40px 50px);= - margin-right: -50%; background-color: var(--isp-dc-cow); border: 1px solid= - var(--isp-dc-charlie-chaplin); border-radius: 5px; box-shadow: var(--isp-b= -ox-shadow); transform: translate(-50%, -50%); } - -.progress-box__message[_ngcontent-ng-c3834831935] { display: flex; justify-= -content: space-between; margin-bottom: 20px; font-weight: 700; } - -.progress-box__percent[_ngcontent-ng-c3834831935] { font-weight: 400; color= -: var(--isp-c-grey-weekdays); } - -.progress-box__bar[_ngcontent-ng-c3834831935] { --isp-progress-bar__border-= -radius: 10px; background-color: var(--isp-dc-norilsk); border-radius: 10px;= - } - -.overlay[_ngcontent-ng-c3834831935] { position: fixed; top: calc(var(--isp-= -topbar-height, 45px) + var(--isp-narrow-banner-height, 0px)); right: 0px; b= -ottom: 0px; left: var(--isp-sidebar-width); z-index: var(--isp-progress-mod= -al-overlay-z-index); background-color: var(--isp-dc-glass); transition: lef= -t 0.5s; } - -.overlay_is_global[_ngcontent-ng-c3834831935] { top: 0px; left: 0px; } - -.list__progress-modal_upload[_nghost-ng-c3834831935] .progress-box__message= -[_ngcontent-ng-c3834831935] { margin-bottom: 15px; } - -.list__progress-modal_upload[_nghost-ng-c3834831935] .progress-box__bar[_ng= -content-ng-c3834831935] { height: 5px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-6471f061-b12e-4014-a4b5-e27f9075c846@mhtml.blink - -@charset "utf-8"; - -.layout[_ngcontent-ng-c1898382889] { position: relative; display: flex; fle= -x-direction: column; width: 100vw; min-width: var(--isp-layout-min-width); = -height: 100%; overflow: hidden; transition: 0.25s ease-out; --isp-dynamic-f= -orm-row-gap: 25px; --isp-dynamic-form-summary-width: 350px; } - -.layout__topbar[_ngcontent-ng-c1898382889] { z-index: var(--isp-header-z-in= -dex); width: 100%; min-width: 0px; } - -.layout__content[_ngcontent-ng-c1898382889] { display: flex; flex: 1 1 0%; = -min-height: 0px; } - -.layout__sidebar[_ngcontent-ng-c1898382889] { grid-area: sidebar; width: va= -r(--isp-sidebar-width); min-width: var(--isp-sidebar-width); transition: wi= -dth 0.25s ease-out, min-width 0.25s ease-out; } - -.layout__main-page[_ngcontent-ng-c1898382889] { --isp-main-page__padding-le= -ft: 30px; --isp-main-page__padding-right: 30px; --isp-sidebar-current-width= -: var(--isp-sidebar-full-width); position: relative; display: block; flex: = -1 1 0%; width: calc(100vw - var(--isp-sidebar-width)); background-color: va= -r(--isp-dc-monochrome); transition: width 0.25s ease-out; } - -.layout__progress-modal[_ngcontent-ng-c1898382889] { height: 0px; } - -.layout__drawer-manager[_ngcontent-ng-c1898382889] { --isp-drawer-height: c= -alc( 100svh - var(--isp-topbar-top-line-height, 45px) - var( --isp-narrow-b= -anner-height ) ); position: relative; z-index: var(--isp-z-index-drawer, 10= -00); display: block; } - -.layout__guide[_ngcontent-ng-c1898382889] { position: absolute; top: 0px; l= -eft: 0px; display: block; width: 0px; height: 0px; } - -.form-summary[_ngcontent-ng-c1898382889] { position: absolute; top: 0px; ri= -ght: 0px; z-index: var(--isp-form-summary-z-index); width: var(--isp-dynami= -c-form-summary-width); height: 100%; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-f41ad0b1-05c0-46aa-8b73-e97a1aee617b@mhtml.blink - -@charset "utf-8"; - -@media (forced-colors: active) { - body { } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-4d078e22-a7a4-48ca-8f37-e99dc46d9d15@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c1610577559] { display: inline-block; overflow: hidden; line-he= -ight: 0; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-ab9d32e7-fc97-4d90-8d69-274cfce52111@mhtml.blink - -@charset "utf-8"; - -.icon_animated[_ngcontent-ng-c199522723] { animation: 1.2s ease-in 0s infin= -ite alternate none running _ngcontent-ng-c199522723_fadeInOut; } - -@keyframes _ngcontent-ng-c199522723_fadeInOut {=20 - 0% { opacity: 1; } - 100% { opacity: 0.2; } -} -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-f5b4041e-4c8f-4d08-aeb4-0632f6d9e6fa@mhtml.blink - -@charset "utf-8"; - -.isp-stack { position: relative; height: var(--isp-stack-height); } - -.isp-stack > * { position: absolute; bottom: var(--isp-stack-bottom-offset,= - 0); left: 100%; width: 100%; opacity: 0; transform: scaleX(1) translateY(0= -px); transition: left var(--isp-stack-transition-duration) cubic-bezier(.7,= --.4,.4,1.4),opacity var(--isp-stack-transition-duration),transform var(--is= -p-stack-transition-duration),clip-path var(--isp-stack-transition-duration)= -; } - -.isp-stack-card_in-stack { left: 0px; clip-path: inset(-1000px -1000px -5px= -); opacity: 1; transform: scaleX(1) translateY(0px); transition: left var(-= --isp-stack-transition-duration) cubic-bezier(.7,-.4,.4,1.4),opacity var(--i= -sp-stack-transition-duration),transform var(--isp-stack-transition-duration= -),clip-path var(--isp-stack-transition-duration); } - -.isp-stack-card_second { clip-path: inset(-1000px -1000px calc(100% - var(-= --isp-stack-height)) -1000px); transform: scaleX(.97) translateY(calc(100% -= - var(--isp-stack-height) - 5px)); } - -.isp-stack-card_third { clip-path: inset(-1000px -1000px calc(100% - var(--= -isp-stack-height)) -1000px); transform: scaleX(.94) translateY(calc(100% - = -var(--isp-stack-height) - 10px)); } - -.isp-stack-card_second.isp-stack-card_sped-up, .isp-stack-card_third.isp-st= -ack-card_sped-up { transition: transform var(--isp-stack-sped-up-transition= --duration) ease-in; } - -.isp-stack-card_overflown { opacity: 0; } - -.isp-stack-card_departing { transition: left var(--isp-stack-transition-dur= -ation) cubic-bezier(.7,-.4,.4,1.4),opacity var(--isp-stack-transition-durat= -ion) ease-in; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-43b02e0f-8cc2-4e4a-8412-004c76290416@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2934957597] { --isp-stack-bottom-offset: 0px; display: flex; f= -lex-direction: column; justify-content: flex-end; width: 370px; height: cal= -c(var(--notification-stack_current-transition-height) + var(--isp-notificat= -ion-stack-visible-cards-num) * 5px + 25px); padding-top: calc(var(--isp-not= -ification-stack-visible-cards-num) * 5px + 25px + var(--isp-stack-bottom-of= -fset)); padding-left: 20px; transition: padding-top 1s ease-in; } - -.notifications-stack_hidden[_nghost-ng-c2934957597] { display: none; } - -.notifications-stack_in-transition[_nghost-ng-c2934957597] .notification-st= -ack__buttons[_ngcontent-ng-c2934957597] { display: none; } - -.notification-stack__buttons[_ngcontent-ng-c2934957597] { position: absolut= -e; top: 0px; right: 20px; z-index: 1; display: flex; flex-direction: row; g= -ap: 5px; align-items: center; justify-content: flex-end; padding-bottom: 10= -px; opacity: 1; } - -.notification-stack__buttons[_ngcontent-ng-c2934957597] button[_ngcontent-n= -g-c2934957597] { position: relative; flex: 0 0 auto; order: 0; height: 30px= -; padding: 0px 8px; font-family: inherit; font-size: 14px; line-height: 16p= -x; color: var(--isp-c-jon-snow); background: var(--isp-c-lovely-puddle); bo= -rder: none; border-radius: var(--isp-border-radius-main); opacity: 0; curso= -r: pointer; transition: opacity 0.2s, top 0.2s; } - -.notification-stack__buttons[_ngcontent-ng-c2934957597] button[_ngcontent-n= -g-c2934957597]:hover { background: var(--isp-dc-fremen); } - -[_nghost-ng-c2934957597]:hover .notification-stack__buttons[_ngcontent-ng-c= -2934957597] button[_ngcontent-ng-c2934957597] { top: 0px; opacity: 1; } - -[_nghost-ng-c2934957597]:hover .notification-stack__buttons[_ngcontent-ng-c= -2934957597] button[_ngcontent-ng-c2934957597] .isp-close[_ngcontent-ng-c293= -4957597] { --isp-close-icon-color: var(--isp-c-jon-snow); margin-right: -3p= -x; margin-left: 2px; } - -[_nghost-ng-c2934957597]:hover .notification-stack__buttons[_ngcontent-ng-c= -2934957597] button[_ngcontent-ng-c2934957597] .isp-close[_ngcontent-ng-c293= -4957597]:hover { background: transparent; } - -.notification-stack__buttons[_ngcontent-ng-c2934957597] button.notification= --stack__close-all-button[_ngcontent-ng-c2934957597] { display: flex; flex-d= -irection: row; align-items: center; height: 25px; padding: 0px 10px; border= --radius: 5px; } - -.notification-stack__buttons[_ngcontent-ng-c2934957597] button.notification= --stack__hide-all-button[_ngcontent-ng-c2934957597], .notification-stack__bu= -ttons[_ngcontent-ng-c2934957597] button.notification-stack__opennc-button[_= -ngcontent-ng-c2934957597] { --isp-icons-main-color: var(--isp-c-russian-nor= -th); display: flex; width: 25px; height: 25px; padding: 5px; background-rep= -eat: no-repeat; background-position: center center; border-radius: 5px; } - -isp-stack[_ngcontent-ng-c2934957597] { display: block; width: 330px; } - -.notification[_ngcontent-ng-c2934957597] { box-sizing: border-box; padding:= - 20px 35px 20px 45px; font-size: 14px; line-height: 18px; border-style: sol= -id; border-width: 1px; border-radius: 5px; box-shadow: var(--isp-box-shadow= -); } - -.notification[data-notification-status=3D"danger"][_ngcontent-ng-c293495759= -7] { background-color: var(--isp-dc-dirty-deeds-done-dirt-cheap); border-co= -lor: var(--isp-dc-rhodochrosite); } - -.notification[data-notification-status=3D"info"][_ngcontent-ng-c2934957597]= -, .notification[data-notification-status=3D"success"][_ngcontent-ng-c293495= -7597] { background-color: var(--isp-dc-cow); border-color: var(--isp-dc-cha= -rlie-chaplin); } - -.notification[data-notification-status=3D"warning"][_ngcontent-ng-c29349575= -97] { background-color: var(--isp-dc-new-vegas); border-color: var(--isp-dc= --heliodor); } - -.notification__close[_ngcontent-ng-c2934957597] { position: absolute; top: = -7px; right: 7px; } - -.notification__icon[_ngcontent-ng-c2934957597] { position: absolute; top: 2= -0px; left: 19px; } - -.notification__collapse[_ngcontent-ng-c2934957597] { --isp-collapse_lines: = -7; } - -.notification__content[_ngcontent-ng-c2934957597] { line-height: 18px; word= --break: break-word; white-space: pre-line; } - -.notification__link[_ngcontent-ng-c2934957597] { display: inline-block; mar= -gin-top: 5px; line-height: 18px; } - -@keyframes _ngcontent-ng-c2934957597_progress {=20 - 0% { width: 0%; } - 100% { width: 100%; } -} - -.notification__progress-bar[_ngcontent-ng-c2934957597] { position: absolute= -; top: 0px; left: 0px; height: 4px; background: var(--isp-dc-fremen); borde= -r-radius: 4px; animation: var(--isp-notification__progress-bar-duration, 3s= -) linear 1 _ngcontent-ng-c2934957597_progress; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-02496633-4184-4f0b-b3f3-17d1e36dcc01@mhtml.blink - -@charset "utf-8"; - -:host { position: fixed; } - -.isp-list-item-menu { display: flex; flex-direction: column; padding: 7px 0= -px; } - -.notification-center-popup { display: flex; flex-direction: column; width: = -480px; background: var(--isp-dc-cow); } - -@media (min-width: 1440px) { - .notification-center-popup { max-height: calc(100vh - var(--isp-topbar-to= -p-line-height) - 120px); } -} - -.isp-session-tip-popup { width: 230px; padding: 10px 30px 10px 10px; color:= - var(--isp-text-color-main); background: var(--isp-dc-made-in-heaven); bord= -er: 1px solid var(--isp-dc-the-institute); border-radius: var(--isp-border-= -radius-main); } - -.isp-session-tip-popup + .isp-dropdown-arrow { --isp-dropdown-arrow-bg: var= -(--isp-dc-made-in-heaven); --isp-dropdown-arrow-border: 1px solid var(--isp= --dc-the-institute); --isp-dropdown-arrow-drown: 1px; } - -.isp-user-menu-session-tip-popup { --isp-dropdown-custom-offset: -30px; } - -.isp-breadcrumbs-collapsed-popup { min-width: 100px; max-width: 600px; padd= -ing: 7px 0px; } - -.isp-favorite-paths-popup { min-width: 200px; max-width: 600px; padding: 7p= -x 0px; } - -.isp-toolbar-list-button-popup { display: flex; flex-direction: column; min= --width: 200px; padding: 7px 0px; overflow-y: hidden; } - -.isp-toolbar-list-button-popup.isp-toolbar-list-button-popup_with-banners {= - min-width: 440px; } - -.isp-color-scheme-dropdown, .isp-top-bar-menu-dropdown { min-width: 200px; = -padding: 7px 0px; } - -.isp-edit-cell-popup { min-height: 30px; background-color: transparent; bor= -der: none; box-shadow: none; } - -.isp-column-filter-popup { display: flex; flex-direction: column; min-width= -: 200px; min-height: 100px; padding: 7px 0px; } - -.isp-column-filter-select-popup { display: flex; flex-direction: column; mi= -n-width: 200px; min-height: 30px; padding: 7px 0px; } - -.isp-edit-cell-select-popup { display: flex; flex-direction: column; width:= - var(--isp-edit-cell-select-popup-width); max-width: initial; padding: 7px = -0px; } - -.isp-edit-cell-select-popup .cdk-virtual-scroll-content-wrapper { width: ca= -lc(var(--isp-edit-cell-select-popup-width) - 2px); } - -.isp-filter-button-popup { --isp-dynamic-form-layout__bc: var(--isp-dc-cow)= -; --isp-field__background: var(--isp-dc-cow); display: flex; flex-direction= -: column; min-width: 620px; } - -.isp-useful-links-popup { display: flex; flex-direction: column; padding: 0= -px 0px 7px; overflow-y: hidden; } - -.isp-useful-links-popup .isp-usefullinks__title { width: 100%; height: 44px= -; padding: 15px; font-weight: 700; white-space: nowrap; border-bottom: 1px = -solid var(--isp-dc-charlie-chaplin); } - -.isp-useful-links-popup .isp-usefullinks { height: 100%; max-height: 321px;= - padding-top: 7px; overflow: auto; white-space: nowrap; } - -.isp-useful-links-popup a { display: flex; padding: 7px 15px; color: var(--= -isp-dc-fremen); text-decoration: none; } - -.isp-useful-links-popup a:hover { color: var(--isp-dc-lapis-lazuli); backgr= -ound: var(--isp-dc-cult); } - -.isp-useful-links-popup a:active { color: var(--isp-dc-fremen); } - -.isp-side-bar-popup { --isp-dropdown-custom-offset: -10px; display: flex; f= -lex-direction: column; justify-content: center; min-width: 25px; min-height= -: 45px; padding: 7px 0px; } - -.isp-side-bar-popup_lite { --isp-dropdown-custom-offset: -5px; } - -.isp-dynamic-form-select-popup { display: flex; flex-direction: column; wid= -th: var(--isp-dynamic-form-select-dropdown-width, 120px); padding: 7px 0px;= - } - -.isp-code-editor-select-popup { display: flex; flex-direction: column; widt= -h: 120px; padding: 7px 0px; } - -.isp-code-editor-select-popup_theme { width: 170px; } - -.isp-code-editor-select-popup_mode { max-height: 300px; } - -.isp-code-editor-select-popup_fz { width: 80px; min-width: 80px; } - -.isp-pagination-dropdown { min-width: 10px; padding: 7px 0px; } - -.isp-login-select-popup { display: flex; flex-direction: column; width: 400= -px; padding: 7px 0px; } - -.isp-quick-actions-more { padding: 7px 0px; } - -.isp-tooltip { min-width: 20px; background-color: var(--isp-c-lovely-puddle= -); border: none; } - -.isp-tooltip .tooltip { display: flex; flex-direction: column; gap: 5px; ma= -x-width: 260px; padding: 7px 10px; font-family: inherit; font-size: 12px; l= -ine-height: 14px; color: var(--isp-c-jon-snow); overflow-wrap: break-word; = -background-color: var(--isp-c-lovely-puddle); border-radius: var(--isp-bord= -er-radius-main); } - -.isp-tooltip .tooltip.tooltip_nohtml { white-space: pre-wrap; } - -.isp-tooltip + .isp-dropdown-arrow { --isp-dropdown-arrow-bg: var(--isp-c-l= -ovely-puddle); --isp-dropdown-arrow-border: none; --isp-dropdown-arrow-drow= -n: 1px; } - -.isp-dashboard-datepicker-popup { min-width: 265px; min-height: 335px; } - -.isp-datepicker-field-dropdown-popup { min-height: 300px; } - -.isp-toast-popup { min-width: auto; max-width: 260px; padding: 7px 10px; fo= -nt-size: 12px; } - -.isp-guide-popup { width: 260px; padding: 15px 18px 20px; background: var(-= --isp-dc-made-in-heaven); border: 1px solid var(--isp-dc-blue-1); } - -.isp-guide-popup + .isp-dropdown-arrow { --isp-dropdown-arrow-bg: var(--isp= --dc-made-in-heaven); --isp-dropdown-arrow-border: 1px solid var(--isp-dc-bl= -ue-1); --isp-dropdown-arrow-drown: 1px; } - -.isp-help-center-popup { display: grid; grid-template-rows: auto 1fr; width= -: 480px; max-width: 480px; max-height: 800px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-14482b67-755a-4030-b926-34ef5d5c76c8@mhtml.blink - -@charset "utf-8"; - -.isp-dropdown-rail { position: fixed; top: 0px; left: 0px; z-index: var(--i= -sp-dropdown-z-index, var(--isp-dropdown-z-index-default)); width: 0px; heig= -ht: 100%; clip-path: polygon(var(--isp-dropdown-viewport-left) var(--isp-dr= -opdown-viewport-top),var(--isp-dropdown-viewport-right) var(--isp-dropdown-= -viewport-top),var(--isp-dropdown-viewport-right) var(--isp-dropdown-viewpor= -t-bottom),var(--isp-dropdown-viewport-left) var(--isp-dropdown-viewport-bot= -tom)); } - -.isp-dropdown-rail_clip-popup { clip-path: none; } - -.isp-dropdown { --isp-dropdown-direction-offset: calc( var(--isp-dropdown-a= -nchor-offset) - var(--isp-dropdown-direction-shift) ); position: fixed; ins= -et: auto; min-width: 100px; max-width: 400px; background: var(--isp-dc-cow)= -; border: var(--isp-dropdown-border, 1px solid var(--isp-dc-charlie-chaplin= -)); border-radius: var(--isp-border-radius-main); box-shadow: var(--isp-box= --shadow); transition: opacity var(--isp-dropdown-show-duration, .2s); } - -.isp-dropdown-rail_clip-popup .isp-dropdown { clip-path: inset(calc(var(--i= -sp-dropdown-viewport-top) - var(--isp-dropdown-read-top)) calc(var(--isp-dr= -opdown-read-left) + var(--isp-dropdown-read-width) - var(--isp-dropdown-vie= -wport-right)) calc(var(--isp-dropdown-read-top) + var(--isp-dropdown-read-h= -eight) - var(--isp-dropdown-viewport-bottom)) calc(var(--isp-dropdown-viewp= -ort-left) - var(--isp-dropdown-read-left))); } - -.isp-dropdown_invisible { opacity: 0; transition: opacity var(--isp-dropdow= -n-hide-duration, .2s); } - -.isp-dropdown_direction_bottom { top: calc(var(--isp-dropdown-anchor-bottom= -) + var(--isp-dropdown-direction-offset)); } - -.isp-dropdown_direction_top { bottom: calc(100% - var(--isp-dropdown-anchor= --top) + var(--isp-dropdown-direction-offset)); } - -.isp-dropdown_direction_right { left: calc(var(--isp-dropdown-anchor-right)= - + var(--isp-dropdown-direction-offset)); } - -.isp-dropdown_direction_left { left: calc(var(--isp-dropdown-anchor-left) -= - var(--isp-dropdown-direction-offset) - var(--isp-dropdown-read-width)); } - -.isp-dropdown_align_start.isp-dropdown_direction_bottom, .isp-dropdown_alig= -n_start.isp-dropdown_direction_top { left: calc(var(--isp-dropdown-anchor-l= -eft) - var(--isp-dropdown-align-overflow, 0px) + var(--isp-dropdown-custom-= -offset, 0px)); } - -.isp-dropdown_align_start.isp-dropdown_direction_right, .isp-dropdown_align= -_start.isp-dropdown_direction_left { top: calc(var(--isp-dropdown-anchor-to= -p) - var(--isp-dropdown-align-overflow, 0px) + var(--isp-dropdown-custom-of= -fset, 0px)); } - -.isp-dropdown_align_end.isp-dropdown_direction_bottom, .isp-dropdown_align_= -end.isp-dropdown_direction_top { right: calc(100vw - var(--isp-dropdown-anc= -hor-right) - var(--isp-dropdown-align-overflow, 0px) + var(--isp-dropdown-c= -ustom-offset, 0px)); } - -.isp-dropdown_align_end.isp-dropdown_direction_right, .isp-dropdown_align_e= -nd.isp-dropdown_direction_left { bottom: calc(100% - var(--isp-dropdown-anc= -hor-bottom) - var(--isp-dropdown-align-overflow, 0px) + var(--isp-dropdown-= -custom-offset, 0px)); } - -.isp-dropdown_align_middle-closer-to-viewport-start.isp-dropdown_direction_= -bottom, .isp-dropdown_align_middle-closer-to-viewport-start.isp-dropdown_di= -rection_top, .isp-dropdown_align_middle-closer-to-viewport-end.isp-dropdown= -_direction_bottom, .isp-dropdown_align_middle-closer-to-viewport-end.isp-dr= -opdown_direction_top { left: calc(var(--isp-dropdown-anchor-left) + var(--i= -sp-dropdown-anchor-width) / 2 - var(--isp-dropdown-read-width) / 2 - var(--= -isp-dropdown-align-overflow, 0px) + var(--isp-dropdown-custom-offset, 0px))= -; } - -.isp-dropdown_align_middle-closer-to-viewport-start.isp-dropdown_direction_= -right, .isp-dropdown_align_middle-closer-to-viewport-start.isp-dropdown_dir= -ection_left, .isp-dropdown_align_middle-closer-to-viewport-end.isp-dropdown= -_direction_right, .isp-dropdown_align_middle-closer-to-viewport-end.isp-dro= -pdown_direction_left { top: calc(var(--isp-dropdown-anchor-top) + var(--isp= --dropdown-anchor-height) / 2 - var(--isp-dropdown-read-height) / 2 - var(--= -isp-dropdown-align-overflow, 0px) + var(--isp-dropdown-custom-offset, 0px))= -; } - -.isp-dropdown_limit-height.isp-dropdown_direction_bottom { max-height: calc= -(var(--isp-dropdown-viewport-bottom-initial) - var(--isp-dropdown-viewport-= -offset) - var(--isp-dropdown-anchor-bottom-initial) - var(--isp-dropdown-an= -chor-offset) + var(--isp-dropdown-direction-shift)); } - -.isp-dropdown_limit-height.isp-dropdown_direction_top { max-height: calc(va= -r(--isp-dropdown-anchor-top-initial) - var(--isp-dropdown-anchor-offset) - = -var(--isp-dropdown-viewport-top-initial) - var(--isp-dropdown-viewport-offs= -et) + var(--isp-dropdown-direction-shift)); } - -.isp-dropdown_limit-height.isp-dropdown_direction_right.isp-dropdown_align_= -start, .isp-dropdown_limit-height.isp-dropdown_direction_left.isp-dropdown_= -align_start { max-height: calc(var(--isp-dropdown-viewport-bottom-initial) = -- var(--isp-dropdown-viewport-offset) - var(--isp-dropdown-anchor-top-initi= -al) - var(--isp-dropdown-custom-offset, 0px)); } - -.isp-dropdown_limit-height.isp-dropdown_direction_right.isp-dropdown_align_= -end, .isp-dropdown_limit-height.isp-dropdown_direction_left.isp-dropdown_al= -ign_end { max-height: calc(var(--isp-dropdown-anchor-bottom-initial) - var(= ---isp-dropdown-viewport-top-initial) - var(--isp-dropdown-viewport-offset) = -- var(--isp-dropdown-custom-offset, 0px)); } - -.isp-dropdown_limit-height.isp-dropdown_direction_right.isp-dropdown_align_= -middle-closer-to-viewport-start, .isp-dropdown_limit-height.isp-dropdown_di= -rection_right.isp-dropdown_align_middle-closer-to-viewport-end, .isp-dropdo= -wn_limit-height.isp-dropdown_direction_right.isp-dropdown_correct-align, .i= -sp-dropdown_limit-height.isp-dropdown_direction_left.isp-dropdown_align_mid= -dle-closer-to-viewport-start, .isp-dropdown_limit-height.isp-dropdown_direc= -tion_left.isp-dropdown_align_middle-closer-to-viewport-end, .isp-dropdown_l= -imit-height.isp-dropdown_direction_left.isp-dropdown_correct-align { max-he= -ight: calc(var(--isp-dropdown-viewport-bottom-initial) - var(--isp-dropdown= --viewport-top-initial) - var(--isp-dropdown-viewport-offset) * 2); } - -.isp-dropdown { --isp-dropdown-align-overflow: 0px; } - -.isp-dropdown.isp-dropdown_correct-align { --isp-dropdown-align-overflow: c= -alc( var(--isp-dropdown-popup-actual-end) - var(--isp-dropdown-popup-correc= -t-end) ); --isp-dropdown-border-radius-plus-half-arrow: calc( var(--isp-bor= -der-radius-main) + var(--isp-dropdown-arrow-size, 13px) * 1.44 / 2 ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_right, .isp= --dropdown.isp-dropdown_correct-align.isp-dropdown_direction_left { --isp-dr= -opdown-anchor-center: calc( var(--isp-dropdown-anchor-top-initial) + var(--= -isp-dropdown-anchor-height) / 2 ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_right.isp-d= -ropdown_align_start, .isp-dropdown.isp-dropdown_correct-align.isp-dropdown_= -direction_left.isp-dropdown_align_start { --isp-dropdown-popup-actual-end: = -calc( ( var(--isp-dropdown-anchor-top-initial) + var(--isp-dropdown-read-he= -ight) ) ); --isp-dropdown-popup-correct-end: min( var(--isp-dropdown-popup-= -actual-end), max( calc( var(--isp-dropdown-viewport-bottom-initial) - var( = ---isp-dropdown-viewport-offset ) ), calc( var(--isp-dropdown-anchor-center)= - + var(--isp-dropdown-border-radius-plus-half-arrow) ) ) ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_right.isp-d= -ropdown_align_middle-closer-to-viewport-end, .isp-dropdown.isp-dropdown_cor= -rect-align.isp-dropdown_direction_left.isp-dropdown_align_middle-closer-to-= -viewport-end { --isp-dropdown-popup-actual-end: calc( ( var(--isp-dropdown-= -anchor-top-initial) + (var(--isp-dropdown-anchor-height) / 2) + (var(--isp-= -dropdown-read-height) / 2) ) ); --isp-dropdown-popup-correct-end: min( var(= ---isp-dropdown-popup-actual-end), max( calc( var(--isp-dropdown-viewport-bo= -ttom-initial) - var( --isp-dropdown-viewport-offset ) ), calc( var(--isp-dr= -opdown-anchor-center) + var(--isp-dropdown-border-radius-plus-half-arrow) )= - ) ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_right.isp-d= -ropdown_align_end, .isp-dropdown.isp-dropdown_correct-align.isp-dropdown_di= -rection_left.isp-dropdown_align_end { --isp-dropdown-popup-actual-end: calc= -( ( var(--isp-dropdown-anchor-bottom-initial) - var( --isp-dropdown-read-he= -ight ) ) ); --isp-dropdown-popup-correct-end: max( var(--isp-dropdown-popup= --actual-end), min( calc( var(--isp-dropdown-viewport-top-initial) + var(--i= -sp-dropdown-viewport-offset) ), calc( var(--isp-dropdown-anchor-center) - v= -ar( --isp-dropdown-border-radius-plus-half-arrow ) ) ) ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_right.isp-d= -ropdown_align_middle-closer-to-viewport-start, .isp-dropdown.isp-dropdown_c= -orrect-align.isp-dropdown_direction_left.isp-dropdown_align_middle-closer-t= -o-viewport-start { --isp-dropdown-popup-actual-end: calc( ( var(--isp-dropd= -own-anchor-bottom-initial) - (var(--isp-dropdown-anchor-height) / 2) - (var= -(--isp-dropdown-read-height) / 2) ) ); --isp-dropdown-popup-correct-end: ma= -x( var(--isp-dropdown-popup-actual-end), min( calc( var(--isp-dropdown-view= -port-top-initial) + var(--isp-dropdown-viewport-offset) ), calc( var(--isp-= -dropdown-anchor-center) - var( --isp-dropdown-border-radius-plus-half-arrow= - ) ) ) ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_top, .isp-d= -ropdown.isp-dropdown_correct-align.isp-dropdown_direction_bottom { --isp-dr= -opdown-anchor-center: calc( var(--isp-dropdown-anchor-left-initial) + var(-= --isp-dropdown-anchor-width) / 2 ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_top.isp-dro= -pdown_align_start, .isp-dropdown.isp-dropdown_correct-align.isp-dropdown_di= -rection_bottom.isp-dropdown_align_start { --isp-dropdown-popup-actual-end: = -calc( ( var(--isp-dropdown-anchor-left-initial) + var(--isp-dropdown-read-w= -idth) ) ); --isp-dropdown-popup-correct-end: min( var(--isp-dropdown-popup-= -actual-end), max( calc( var(--isp-dropdown-viewport-right-initial) - var( -= --isp-dropdown-viewport-offset ) ), calc( var(--isp-dropdown-anchor-center) = -+ var(--isp-dropdown-border-radius-plus-half-arrow) ) ) ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_top.isp-dro= -pdown_align_middle-closer-to-viewport-end, .isp-dropdown.isp-dropdown_corre= -ct-align.isp-dropdown_direction_bottom.isp-dropdown_align_middle-closer-to-= -viewport-end { --isp-dropdown-popup-actual-end: calc( ( var(--isp-dropdown-= -anchor-left-initial) + (var(--isp-dropdown-anchor-width) / 2) + (var(--isp-= -dropdown-read-width) / 2) ) ); --isp-dropdown-popup-correct-end: min( var(-= --isp-dropdown-popup-actual-end), max( calc( var(--isp-dropdown-viewport-rig= -ht-initial) - var( --isp-dropdown-viewport-offset ) ), calc( var(--isp-drop= -down-anchor-center) + var(--isp-dropdown-border-radius-plus-half-arrow) ) )= - ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_top.isp-dro= -pdown_align_end, .isp-dropdown.isp-dropdown_correct-align.isp-dropdown_dire= -ction_bottom.isp-dropdown_align_end { --isp-dropdown-popup-actual-end: calc= -( ( var(--isp-dropdown-anchor-right-initial) - var( --isp-dropdown-read-wid= -th ) ) ); --isp-dropdown-popup-correct-end: max( var(--isp-dropdown-popup-a= -ctual-end), min( calc( var(--isp-dropdown-viewport-left-initial) + var(--is= -p-dropdown-viewport-offset) ), calc( var(--isp-dropdown-anchor-center) - va= -r( --isp-dropdown-border-radius-plus-half-arrow ) ) ) ); } - -.isp-dropdown.isp-dropdown_correct-align.isp-dropdown_direction_top.isp-dro= -pdown_align_middle-closer-to-viewport-start, .isp-dropdown.isp-dropdown_cor= -rect-align.isp-dropdown_direction_bottom.isp-dropdown_align_middle-closer-t= -o-viewport-start { --isp-dropdown-popup-actual-end: calc( ( var(--isp-dropd= -own-anchor-right-initial) - (var(--isp-dropdown-anchor-width) / 2) - (var(-= --isp-dropdown-read-width) / 2) ) ); --isp-dropdown-popup-correct-end: max( = -var(--isp-dropdown-popup-actual-end), min( calc( var(--isp-dropdown-viewpor= -t-left-initial) + var(--isp-dropdown-viewport-offset) ), calc( var(--isp-dr= -opdown-anchor-center) - var( --isp-dropdown-border-radius-plus-half-arrow )= - ) ) ); } - -.isp-dropdown-arrow { position: fixed; width: 0px; height: 0px; clip-path: = -inset(-100px -100px -100px 0px); transition: opacity var(--isp-dropdown-sho= -w-duration, .2s); transform: var(--isp-dropdown-arrow-scale, scaleY(.8)) ro= -tate(var(--isp-dropdown-arrow-rotate, 0)); } - -.isp-dropdown-arrow::after { position: absolute; top: 50%; left: 0px; conte= -nt: ""; width: var(--isp-dropdown-arrow-size, 13px); height: var(--isp-drop= -down-arrow-size, 13px); background: var(--isp-dropdown-arrow-bg, var(--isp-= -dc-cow)); border: var(--isp-dropdown-arrow-border, none); box-shadow: var(-= --isp-dropdown-arrow-bs, var(--isp-box-shadow)); transform: translate3d(-50%= -, -50%, 0px) rotate(45deg); } - -.isp-dropdown_invisible + .isp-dropdown-arrow { opacity: 0; } - -.isp-dropdown_direction_bottom + .isp-dropdown-arrow, .isp-dropdown_directi= -on_top + .isp-dropdown-arrow { --isp-dropdown-arrow-scale: scaleX(.8); --_c= -enter: calc( (var(--isp-dropdown-anchor-right) + var(--isp-dropdown-anchor-= -left)) / 2 ); } - -.isp-dropdown_direction_bottom.isp-dropdown_align_start + .isp-dropdown-arr= -ow, .isp-dropdown_direction_top.isp-dropdown_align_start + .isp-dropdown-ar= -row { --_side: calc(var(--isp-dropdown-anchor-left) + 10px); left: calc(var= -(--isp-dropdown-arrow_is-center_w) * var(--_center) + var(--isp-dropdown-ar= -row_is-side_w) * var(--_side)); } - -.isp-dropdown_align_middle-closer-to-viewport-start.isp-dropdown_direction_= -top + .isp-dropdown-arrow, .isp-dropdown_align_middle-closer-to-viewport-st= -art.isp-dropdown_direction_bottom + .isp-dropdown-arrow, .isp-dropdown_alig= -n_middle-closer-to-viewport-end.isp-dropdown_direction_top + .isp-dropdown-= -arrow, .isp-dropdown_align_middle-closer-to-viewport-end.isp-dropdown_direc= -tion_bottom + .isp-dropdown-arrow { left: var(--_center); } - -.isp-dropdown_align_middle-closer-to-viewport-start.isp-dropdown_direction_= -left + .isp-dropdown-arrow, .isp-dropdown_align_middle-closer-to-viewport-s= -tart.isp-dropdown_direction_right + .isp-dropdown-arrow, .isp-dropdown_alig= -n_middle-closer-to-viewport-end.isp-dropdown_direction_left + .isp-dropdown= --arrow, .isp-dropdown_align_middle-closer-to-viewport-end.isp-dropdown_dire= -ction_right + .isp-dropdown-arrow { top: var(--_center); } - -.isp-dropdown_direction_bottom.isp-dropdown_align_end + .isp-dropdown-arrow= -, .isp-dropdown_direction_top.isp-dropdown_align_end + .isp-dropdown-arrow = -{ --_side: calc(var(--isp-dropdown-anchor-right) - 10px); left: calc(var(--= -isp-dropdown-arrow_is-center_w) * var(--_center) + var(--isp-dropdown-arrow= -_is-side_w) * var(--_side)); } - -.isp-dropdown_direction_bottom + .isp-dropdown-arrow { --isp-dropdown-arrow= --rotate: -90deg; top: calc(var(--isp-dropdown-anchor-bottom) + var(--isp-dr= -opdown-anchor-offset) + var(--isp-dropdown-arrow-drown, 0px)); } - -.isp-dropdown_direction_top + .isp-dropdown-arrow { --isp-dropdown-arrow-ro= -tate: 90deg; bottom: calc(100% - var(--isp-dropdown-anchor-top) + var(--isp= --dropdown-anchor-offset) + var(--isp-dropdown-arrow-drown, 0px)); } - -.isp-dropdown_direction_right + .isp-dropdown-arrow, .isp-dropdown_directio= -n_left + .isp-dropdown-arrow { --isp-dropdown-arrow-scale: scaleY(.8); --_c= -enter: calc( (var(--isp-dropdown-anchor-top) + var(--isp-dropdown-anchor-bo= -ttom)) / 2 ); } - -.isp-dropdown_direction_right.isp-dropdown_align_start + .isp-dropdown-arro= -w, .isp-dropdown_direction_left.isp-dropdown_align_start + .isp-dropdown-ar= -row { --_side: calc(var(--isp-dropdown-anchor-top) + 10px); top: calc(var(-= --isp-dropdown-arrow_is-center_h) * var(--_center) + var(--isp-dropdown-arro= -w_is-side_h) * var(--_side)); } - -.isp-dropdown_direction_right.isp-dropdown_align_end + .isp-dropdown-arrow,= - .isp-dropdown_direction_left.isp-dropdown_align_end + .isp-dropdown-arrow = -{ --_side: calc(var(--isp-dropdown-anchor-bottom) - 10px); top: calc(var(--= -isp-dropdown-arrow_is-center_h) * var(--_center) + var(--isp-dropdown-arrow= -_is-side_h) * var(--_side)); } - -.isp-dropdown_direction_right + .isp-dropdown-arrow { --isp-dropdown-arrow-= -rotate: 180deg; left: calc(var(--isp-dropdown-anchor-right) + var(--isp-dro= -pdown-anchor-offset) + var(--isp-dropdown-arrow-drown, 0px)); } - -.isp-dropdown_direction_left + .isp-dropdown-arrow { left: calc(var(--isp-d= -ropdown-anchor-left) - var(--isp-dropdown-anchor-offset) - var(--isp-dropdo= -wn-arrow-drown, 0px)); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-7dad2b26-123a-4250-a3c4-64230d1794f6@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2575676833] { position: absolute; width: 0px; height: 0px; } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-29822cb4-b88c-4659-ae1f-10920defd4cf@mhtml.blink - -@charset "utf-8"; - -[_nghost-ng-c2478636207] { position: relative; display: block; width: 0px; = -height: 0px; } - -.iframe[_ngcontent-ng-c2478636207] { position: absolute; z-index: -100; bor= -der-radius: var(--isp-border-radius-main); opacity: 0; } - -.iframe_active[_ngcontent-ng-c2478636207] { z-index: var(--isp-z-index-keep= -alive-frame); opacity: 1; transition: opacity 0.1s linear 0.4s; } - -.iframe_fullpage[_ngcontent-ng-c2478636207] { border-radius: 0px; position:= - fixed; top: calc(var(--isp-topbar-top-line-height, 45px) + var(--isp-narro= -w-banner-height, 0px)); right: 0px; bottom: 0px; left: var(--isp-sidebar-wi= -dth); width: calc(100% - var(--isp-sidebar-width)); height: calc(100vh - va= -r(--isp-topbar-top-line-height, 45px) - var(--isp-narrow-banner-height, 0px= -)); transition: left 0.25s ease-out, width 0.25s ease-out; } - -.iframe_forcetheme[_ngcontent-ng-c2478636207] { filter: var(--isp-d-filter-= -invert); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d---- -Content-Type: text/css -Content-Transfer-Encoding: quoted-printable -Content-Location: cid:css-6daaa2e5-e338-4cfe-90c2-065225359f71@mhtml.blink - -@charset "utf-8"; - -.confirm[_ngcontent-ng-c859909911] { z-index: var(--isp-z-index-confirm); } - -isp-notification-stack[_ngcontent-ng-c859909911] { position: absolute; righ= -t: 0px; bottom: 10px; z-index: var(--isp-notification-group-z-index); } -------MultipartBoundary--ovFoTuyAOZUxKhqVwrioz8CdABtGYkYqWqc0KrTe4d------ diff --git a/services/data-analytics/index.html b/services/data-analytics/index.html new file mode 100644 index 0000000..f7b376c --- /dev/null +++ b/services/data-analytics/index.html @@ -0,0 +1,28 @@ + + + + + + Data & Analytics | IQON + + + + + + + +
iqonBook Discovery Call
+
+

Service

Decision support leaders can trust.

IQON helps teams move from fragmented reporting to governed data products and executive visibility.

+
+

Business Problem

Reports conflict, ownership is unclear, and decisions slow down because business users do not trust the data.

+

What IQON Delivers

  • Information management assessment
  • Decision-support model
  • Customer intelligence roadmap
  • Data governance operating rhythm
+

Stakeholders

Executives, finance, operations, commercial teams, data owners, platform teams.

+

Outcome

A clearer data foundation for portfolio steering, customer insight, performance visibility, and operational control.

+
+

Improve decision visibility.

Start with an assessment
+
+ + + + diff --git a/services/enterprise-architecture/index.html b/services/enterprise-architecture/index.html new file mode 100644 index 0000000..04e97dc --- /dev/null +++ b/services/enterprise-architecture/index.html @@ -0,0 +1,28 @@ + + + + + + Enterprise Architecture | IQON + + + + + + + +
iqonBook Discovery Call
+
+

Service

Architecture that connects business and delivery.

IQON maps capabilities, platforms, dependencies, and constraints so transformation work can proceed with fewer surprises.

+
+

Business Problem

Systems evolve in fragments. Teams need a coherent architecture that supports change without blocking delivery.

+

What IQON Delivers

  • Current-state architecture assessment
  • Target architecture blueprint
  • Integration and migration sequencing
  • Architecture governance routines
+

Stakeholders

CIO, CTO, enterprise architects, product owners, delivery leads, operations teams.

+

Outcome

Clear architectural direction, practical migration steps, and a stronger link between business goals and platform decisions.

+
+

Make architecture actionable.

Talk to IQON
+
+ + + + diff --git a/services/index.html b/services/index.html new file mode 100644 index 0000000..a3d9c0a --- /dev/null +++ b/services/index.html @@ -0,0 +1,67 @@ + + + + + + Services | IQON + + + + + + + +
+ iqon + + Book Discovery Call +
+
+
+

Services

+

Technology advisory built around decisions.

+

IQON helps leadership teams turn unclear technology choices into governed roadmaps, resilient architectures, and measurable delivery plans.

+
+
+
+

Strategy & Governance

+

Clarify investment priorities, operating cadence, decision rights, and delivery accountability.

+ Open service +
+
+

Enterprise Architecture

+

Connect business capabilities, platforms, integrations, teams, and transformation sequencing.

+ Open service +
+
+

Data & Analytics

+

Build trusted reporting, decision support, customer intelligence, and portfolio visibility.

+ Open service +
+
+

Infrastructure & Cloud

+

Modernize infrastructure, service management, end-user computing, and operational resilience.

+ Open service +
+
+

Security & Continuity

+

Improve risk posture, compliance readiness, continuity planning, and recovery confidence.

+ Open service +
+
+
+

Need a sharper roadmap?

+

Start with a focused advisory sprint to define priorities, risks, and next decisions.

+ Talk to IQON +
+
+ + + + diff --git a/services/infrastructure-cloud/index.html b/services/infrastructure-cloud/index.html new file mode 100644 index 0000000..9a60539 --- /dev/null +++ b/services/infrastructure-cloud/index.html @@ -0,0 +1,28 @@ + + + + + + Infrastructure & Cloud | IQON + + + + + + + +
iqonBook Discovery Call
+
+

Service

Infrastructure built for resilience and control.

IQON assesses operating risk, modernization options, service models, and cloud decisions through a business lens.

+
+

Business Problem

Infrastructure cost, reliability, and service quality are difficult to steer when ownership and priorities are fragmented.

+

What IQON Delivers

  • Infrastructure maturity assessment
  • Cloud and platform roadmap
  • Managed services model
  • End-user computing strategy
+

Stakeholders

CIO, infrastructure leads, service owners, procurement, security, finance, operations.

+

Outcome

A modernization plan that balances resilience, cost, service quality, and execution risk.

+
+

Modernize without losing control.

Discuss infrastructure priorities
+
+ + + + diff --git a/services/security-continuity/index.html b/services/security-continuity/index.html new file mode 100644 index 0000000..2e78e69 --- /dev/null +++ b/services/security-continuity/index.html @@ -0,0 +1,28 @@ + + + + + + Security & Continuity | IQON + + + + + + + +
iqonBook Discovery Call
+
+

Service

Risk readiness that fits the business.

IQON helps organizations improve security posture, regulatory confidence, continuity planning, and recovery capability.

+
+

Business Problem

Security and continuity programs often sit apart from business priorities, making investment and accountability unclear.

+

What IQON Delivers

  • Security services assessment
  • Compliance readiness roadmap
  • Business continuity planning
  • Disaster recovery operating model
+

Stakeholders

CIO, CISO, risk, compliance, operations, legal, business continuity owners.

+

Outcome

A practical risk roadmap tied to business priorities, regulatory expectations, and operational recovery needs.

+
+

Make risk decisions explicit.

Talk to IQON
+
+ + + + diff --git a/services/strategy-governance/index.html b/services/strategy-governance/index.html new file mode 100644 index 0000000..e519728 --- /dev/null +++ b/services/strategy-governance/index.html @@ -0,0 +1,28 @@ + + + + + + Strategy & Governance | IQON + + + + + + + +
iqonBook Discovery Call
+
+

Service

Strategy and governance for technology decisions.

When priorities compete and delivery confidence is low, IQON structures decision rights, investment logic, and execution governance.

+
+

Business Problem

Leadership needs a way to compare initiatives, fund the right work, and see risk before execution cost compounds.

+

What IQON Delivers

  • IT strategy assessment
  • Governance model and decision cadence
  • Portfolio prioritization framework
  • Transformation roadmap
+

Stakeholders

CEO, CIO, CFO, transformation leads, enterprise architects, risk and compliance owners.

+

Outcome

A roadmap that makes tradeoffs explicit and gives leadership a repeatable way to steer technology investment.

+
+

Clarify the next decision.

Start an advisory sprint
+
+ + + + diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..0c4c288 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,13 @@ + + + https://iqon.com/ + https://iqon.com/services/ + https://iqon.com/services/strategy-governance/ + https://iqon.com/services/enterprise-architecture/ + https://iqon.com/services/data-analytics/ + https://iqon.com/services/infrastructure-cloud/ + https://iqon.com/services/security-continuity/ + https://iqon.com/industries/ + https://iqon.com/case-studies/ + https://iqon.com/contact/ + diff --git a/styles.css b/styles.css index daa2220..55b6a4b 100644 --- a/styles.css +++ b/styles.css @@ -15,6 +15,7 @@ html, body { margin: 0; padding: 0; + overflow-x: hidden; } body { @@ -80,7 +81,8 @@ body { } .main-nav a:hover, -.main-nav a.active { +.main-nav a.active, +.main-nav a[aria-current="page"] { border-bottom-color: var(--accent); } @@ -118,7 +120,7 @@ body { h1 { margin: 0 0 1.3rem; - max-width: 16ch; + max-width: min(16ch, 100%); font-family: "Sora", sans-serif; font-size: clamp(2rem, 3.2vw, 3.8rem); line-height: 1.03; @@ -218,6 +220,110 @@ h1 { font-size: 0.9rem; } +.service-tile a { + display: inline-block; + margin-top: 1rem; + color: var(--ink); + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + text-decoration: none; +} + +.page-hero { + padding: 5rem 2rem 4rem; + background: var(--surface); + border-bottom: 2px solid var(--accent); +} + +.page-hero h1 { + max-width: min(18ch, 100%); +} + +.page-hero .lead { + max-width: 68ch; +} + +.content-grid, +.detail-grid { + display: grid; + gap: 1px; + background: var(--line); + border-top: 1px solid var(--line); + border-bottom: 1px solid var(--line); +} + +.content-grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.detail-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.content-card, +.detail-panel { + background: var(--surface); + padding: 1.5rem; +} + +.content-card h2, +.detail-panel h2 { + margin: 0 0 0.7rem; + font-family: "Sora", sans-serif; + font-size: 1.2rem; + line-height: 1.15; +} + +.content-card p, +.detail-panel p, +.detail-panel li { + color: var(--muted); +} + +.content-card a { + display: inline-block; + margin-top: 0.8rem; + color: var(--ink); + font-weight: 700; + text-decoration: none; +} + +.page-section { + padding: 4rem 2rem; +} + +.page-section h2 { + margin: 0 0 1rem; + font-family: "Sora", sans-serif; + font-size: clamp(1.5rem, 2.4vw, 2.5rem); +} + +.page-section p { + max-width: 72ch; + color: var(--muted); +} + +.contact-list { + margin: 0; + padding: 0; + list-style: none; +} + +.contact-list li { + margin-bottom: 0.7rem; +} + +a:focus-visible, +button:focus-visible, +input:focus-visible, +textarea:focus-visible, +select:focus-visible { + outline: 3px solid var(--accent); + outline-offset: 3px; +} + .method, .cases { padding: 4.6rem 2rem; @@ -386,6 +492,10 @@ footer p { margin: 0.25rem 0; } +footer a { + color: inherit; +} + .footer-bottom { padding-top: 0.9rem; display: flex; @@ -428,6 +538,11 @@ footer p { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .content-grid, + .detail-grid { + grid-template-columns: 1fr; + } + .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } @@ -439,7 +554,61 @@ footer p { @media (max-width: 720px) { .topbar { + grid-template-columns: 1fr; + gap: 0.7rem; padding: 0.8rem 1rem; + width: 100vw; + max-width: 100vw; + } + + .main-nav { + justify-content: flex-start; + width: calc(100vw - 2rem); + max-width: calc(100vw - 2rem); + overflow: visible; + flex-wrap: wrap; + gap: 0; + padding-bottom: 0.2rem; + } + + .main-nav a { + flex: 0 0 auto; + font-size: 0.65rem; + padding: 0.4rem 0.42rem; + } + + h1 { + font-size: 1.65rem; + line-height: 1.08; + max-width: 100%; + } + + .section-head h3, + .cta-band h3 { + font-size: 1.55rem; + } + + .cta-band h3 { + max-width: 11ch; + line-height: 1.08; + } + + .lead, + .page-hero .lead, + .content-card p, + .detail-panel p, + .detail-panel li { + font-size: 0.95rem; + } + + .hero-actions { + flex-direction: column; + align-items: stretch; + } + + .btn { + width: 100%; + text-align: center; } .hero-copy, @@ -448,7 +617,36 @@ footer p { .cta-band, footer { padding-left: 1rem; - padding-right: 1rem; + padding-right: 1.5rem; + } + + .hero, + .hero-copy, + .hero-cloud, + .service-strip, + .method, + .cases, + .cta-band, + footer, + .page-hero, + .page-section, + .content-grid, + .detail-grid, + .content-card, + .detail-panel, + .case-copy { + width: 100%; + min-width: 0; + max-width: 100vw; + } + + h1, + h2, + h3, + h4, + p, + li { + overflow-wrap: anywhere; } .hero-copy { @@ -460,6 +658,39 @@ footer p { grid-template-columns: 1fr; } + .page-hero, + .page-section { + padding-left: 1rem; + padding-right: 1.5rem; + } + + .content-card, + .detail-panel, + .service-tile { + padding-right: 1.8rem; + } + + .hero-copy > *, + .page-hero > *, + .cta-band > *, + .content-card > *, + .detail-panel > *, + .service-tile > *, + .case-copy > * { + width: calc(100vw - 3.5rem); + max-width: 310px; + } + + .hero-copy h1, + .page-hero h1 { + max-width: 330px; + } + + .hero-copy .lead, + .page-hero .lead { + max-width: 270px; + } + .service-tile { border-right: none; border-bottom: 1px solid #d6d6d2; diff --git a/wp-snippets/README.md b/wp-snippets/README.md new file mode 100644 index 0000000..617ef57 --- /dev/null +++ b/wp-snippets/README.md @@ -0,0 +1,123 @@ +# IQON Phase 1 Hardening Package + +Purpose: локальный пакет временного hardening для live WordPress `iqon.com` до полноценного редизайна или статической замены. + +## Contents + +- [Scope](#scope) +- [Files](#files) +- [Install Draft](#install-draft) +- [Hosting Rule Draft](#hosting-rule-draft) +- [Automated Verification Script](#automated-verification-script) +- [Verification](#verification) +- [Rollback](#rollback) +- [Limits](#limits) + +## Scope + +Пакет не был установлен на live-сайт. Он подготовлен как reversible snippet для Code Snippets и должен применяться только после отдельного подтверждения на запись во внешний WordPress. + +## Files + +| File | Role | +|------|------| +| `wp-snippets/iqon-phase1-hardening.php` | PHP snippet for Code Snippets, "Run snippet everywhere" | +| `wp-snippets/hosting-rules.md` | nginx/Apache/file-level drafts for install docs and XML-RPC | +| `scripts/iqon-phase1-verify.sh` | Post-activation verification script | + +## Install Draft + +1. Открыть WordPress admin через текущий безопасный маршрут доступа. +2. Создать новый snippet с названием `IQON Phase 1 hardening`. +3. Вставить содержимое `wp-snippets/iqon-phase1-hardening.php`. +4. Выбрать режим `Run snippet everywhere`. +5. Сохранить snippet как inactive draft. +6. Сделать свежий backup файлов и базы перед активацией. +7. Активировать snippet. +8. Сразу выполнить проверки из раздела Verification. + +## Hosting Rule Draft + +PHP snippet не гарантирует блокировку физических файлов, которые веб-сервер отдаёт до WordPress. Для `readme.html` и `license.html` нужен server-level блок или удаление файлов. + +nginx draft: + +```nginx +location ~* ^/(readme|license)\.html$ { + return 404; +} +``` + +Если на reg.ru shared hosting нет доступа к nginx-конфигу, проверить доступные механизмы: панель хостинга, `.htaccess`, файловый менеджер или удаление публичных install-doc файлов после backup. + +Detailed drafts are in `wp-snippets/hosting-rules.md`. + +## Automated Verification Script + +After activation: + +```bash +scripts/iqon-phase1-verify.sh https://iqon.com +``` + +Expected signal: final line is `[OK] iqon Phase 1 verification passed for https://iqon.com`. + +## Verification + +Run after activation: + +```bash +curl -I -L https://iqon.com/ +``` + +Expected signal: response includes `X-Content-Type-Options`, `X-Frame-Options`, `Referrer-Policy`, `Permissions-Policy`, and `Content-Security-Policy`. + +```bash +curl -sS https://iqon.com/wp-json/wp/v2/users +``` + +Expected signal: no public list of usernames is returned. + +```bash +curl -sS https://iqon.com/ | rg 'http://www\.iqon\.com|http://iqon\.com|http://maps\.google\.com' +``` + +Expected signal: no output. + +```bash +curl -sS https://iqon.com/ | rg 'name="viewport"|iqon-skip-link|og:site_name' +``` + +Expected signal: viewport exists, skip link exists, site metadata no longer shows `- IQON`. + +```bash +curl -I -L https://iqon.com/readme.html +``` + +Expected signal after hosting rule: `403` or `404`. If it still returns `200`, WordPress snippet is bypassed by static file serving and hosting-level action is still required. + +```bash +curl -I --http1.1 https://iqon.com/xmlrpc.php +``` + +Expected signal: no usable XML-RPC behavior. A stronger check is a safe XML-RPC POST from a test client after confirming no production integrations depend on it. + +## Rollback + +1. Disable the `IQON Phase 1 hardening` snippet. +2. Clear any page/cache layer if present. +3. Re-run the same curl checks and compare before/after. +4. Remove hosting rule only if it caused a confirmed false positive. + +## Limits + +- This package does not replace the contact form or legacy CAPTCHA. +- This package does not fix duplicate sitemap URLs. +- This package does not modernize the WordPress theme. +- This package does not verify canonical contact data. +- This package does not confirm the exact WordPress core version. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/wp-snippets/hosting-rules.md b/wp-snippets/hosting-rules.md new file mode 100644 index 0000000..f7e003e --- /dev/null +++ b/wp-snippets/hosting-rules.md @@ -0,0 +1,77 @@ +# IQON Phase 1 Hosting Rules + +Purpose: зафиксировать server-level правила для рисков, которые WordPress snippet не может гарантированно закрыть. + +## Contents + +- [Scope](#scope) +- [nginx Draft](#nginx-draft) +- [Apache htaccess Draft](#apache-htaccess-draft) +- [reg.ru Shared Hosting Path](#regru-shared-hosting-path) +- [Verification](#verification) +- [Rollback](#rollback) + +## Scope + +Эти правила не применены на live-сайте. Они являются draft-артефактом для внедрения после backup и явного подтверждения на remote write. + +## nginx Draft + +```nginx +location ~* ^/(readme|license)\.html$ { + return 404; +} + +location = /xmlrpc.php { + return 403; +} +``` + +## Apache htaccess Draft + +Use only if the hosting route confirms Apache or `.htaccess` processing for this site. + +```apache + +RewriteEngine On +RewriteRule ^(readme|license)\.html$ - [R=404,L,NC] +RewriteRule ^xmlrpc\.php$ - [F,L,NC] + +``` + +## reg.ru Shared Hosting Path + +If neither nginx config nor `.htaccess` is available, use a file-level fallback after backup: + +1. Confirm that `/readme.html` and `/license.html` are physical public files. +2. Download or copy those files into the dated backup bundle. +3. Remove the public files or replace them with non-sensitive 404 placeholders. +4. Re-run verification commands below. + +Do not overwrite server files without reading the destination first. + +## Verification + +```bash +curl -I -L https://iqon.com/readme.html +curl -I -L https://iqon.com/license.html +curl -I --http1.1 https://iqon.com/xmlrpc.php +``` + +Expected signal: + +- `readme.html` returns `403` or `404`. +- `license.html` returns `403` or `404`. +- `xmlrpc.php` returns `403`, `404`, `405`, or another intentionally blocked status after confirming no integration depends on XML-RPC. + +## Rollback + +1. Remove only the rule that caused the confirmed regression. +2. Restore public files only from the dated backup if file-level fallback was used. +3. Re-run the same verification commands. +4. Document the before/after status in the deployment notes. + +--- + +*Created: 20 May 2026* +*Updated: 20 May 2026* diff --git a/wp-snippets/iqon-phase1-hardening.php b/wp-snippets/iqon-phase1-hardening.php new file mode 100644 index 0000000..d4310cf --- /dev/null +++ b/wp-snippets/iqon-phase1-hardening.php @@ -0,0 +1,223 @@ + +html { -webkit-text-size-adjust: 100%; } +body { overflow-x: hidden; } +a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { + outline: 3px solid #fbc100; + outline-offset: 3px; +} +.iqon-skip-link { + position: absolute; + left: -999px; + top: 8px; + z-index: 9999; + padding: 8px 12px; + background: #000; + color: #fff; +} +.iqon-skip-link:focus { left: 8px; } +img, iframe { max-width: 100%; } +@media (max-width: 980px) { + #wrapper, #header, #menu, #header-image-home, #header-image, #breadcrumb, .download_case_file { + width: auto !important; + max-width: 960px; + } + #wrapper { margin-left: 12px !important; margin-right: 12px !important; } + #menu { height: auto !important; min-height: 40px; background-repeat: repeat !important; } + #menu a { float: none !important; display: block !important; padding: 0 16px !important; } + .contentleft, .contentright, .homeleft, .homeright { + float: none !important; + width: auto !important; + } + .rowInput, .rowTextarea textarea, .rowInput input { + width: 100% !important; + box-sizing: border-box; + } +} +' . "\n"; +} + +function iqon_phase1_restrict_rest_users($endpoints) +{ + if (!is_array($endpoints)) { + return $endpoints; + } + + foreach (array('/wp/v2/users', '/wp/v2/users/(?P[\d]+)') as $route) { + if (isset($endpoints[$route])) { + unset($endpoints[$route]); + } + } + + return $endpoints; +} + +function iqon_phase1_install_doc_fallback_block() +{ + $request_uri = isset($_SERVER['REQUEST_URI']) ? (string) $_SERVER['REQUEST_URI'] : ''; + $path = parse_url($request_uri, PHP_URL_PATH); + + if (!is_string($path)) { + return; + } + + if (preg_match('~/(readme|license)\.html$~i', $path)) { + status_header(404); + nocache_headers(); + exit; + } +} + +function iqon_phase1_start_output_buffer() +{ + $doing_ajax = function_exists('wp_doing_ajax') ? wp_doing_ajax() : (defined('DOING_AJAX') && DOING_AJAX); + + if (is_admin() || $doing_ajax || (defined('REST_REQUEST') && REST_REQUEST)) { + return; + } + + ob_start('iqon_phase1_rewrite_html'); +} + +function iqon_phase1_rewrite_html($html) +{ + if (!is_string($html) || $html === '') { + return $html; + } + + $html = iqon_phase1_rewrite_url_string($html); + + if (stripos($html, 'name="viewport"') === false && stripos($html, "name='viewport'") === false) { + $html = preg_replace( + '~~i', + '' . "\n" . '', + $html, + 1 + ); + } + + if (stripos($html, 'class="iqon-skip-link"') === false) { + $html = preg_replace( + '~]*)>~i', + 'Skip to content', + $html, + 1 + ); + } + + $html = preg_replace( + '~(]*\balt=)(?=[^>]*\b(?:homepage|header|logo|case)[^>]*)[^>]*)>~i', + '$1 alt="">', + $html + ); + + return $html; +} + +function iqon_phase1_site_name() +{ + return 'IQON'; +} + +function iqon_phase1_rewrite_recursive_urls($value) +{ + if (is_array($value)) { + foreach ($value as $key => $item) { + $value[$key] = iqon_phase1_rewrite_recursive_urls($item); + } + + return $value; + } + + if (is_object($value)) { + foreach ($value as $key => $item) { + $value->{$key} = iqon_phase1_rewrite_recursive_urls($item); + } + + return $value; + } + + if (is_string($value)) { + return iqon_phase1_rewrite_url_string($value); + } + + return $value; +} + +function iqon_phase1_rewrite_url_string($value) +{ + if (!is_string($value) || $value === '') { + return $value; + } + + return str_replace( + array( + 'http://www.iqon.com', + 'http://iqon.com', + 'http://maps.google.com', + 'http://maps.googleapis.com', + ), + array( + 'https://iqon.com', + 'https://iqon.com', + 'https://maps.google.com', + 'https://maps.googleapis.com', + ), + $value + ); +}