dsh-desktop-kit 0.0.0-stage → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -2
  3. package/client.js +4101 -0
  4. package/cordis.patch.yml +5 -0
  5. package/docs/ARCHITECTURE.md +114 -0
  6. package/docs/COMPATIBILITY.md +61 -0
  7. package/docs/INSTALL.md +84 -0
  8. package/docs/PRIVACY.md +50 -0
  9. package/docs/ROADMAP.md +57 -0
  10. package/docs/TOKENS.md +118 -0
  11. package/docs/TROUBLESHOOTING.md +68 -0
  12. package/docs/images/hero.png +0 -0
  13. package/index.js +84 -0
  14. package/package.json +70 -4
  15. package/plugins/dsh-gkb-ru-ui/cordis.patch.yml +6 -0
  16. package/plugins/dsh-gkb-ru-ui/lib/client.js +1331 -0
  17. package/plugins/dsh-gkb-ru-ui/lib/index.js +186 -0
  18. package/plugins/dsh-gkb-ru-ui/lib/skills.js +570 -0
  19. package/plugins/dsh-gkb-ru-ui/package.json +28 -0
  20. package/plugins/dsh-gkb-ru-ui/screenshots/01-home-tiles-1440-light.png +0 -0
  21. package/plugins/dsh-gkb-ru-ui/screenshots/02-skills-1440-light.png +0 -0
  22. package/plugins/dsh-gkb-ru-ui/screenshots/03-skills-editor-1440-light.png +0 -0
  23. package/plugins/dsh-gkb-ru-ui/screenshots/04-skills-1440-dark.png +0 -0
  24. package/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png +0 -0
  25. package/plugins/dsh-gkb-ru-ui/screenshots/06-home-tiles-1440-dark.png +0 -0
  26. package/plugins/dsh-peak-guard/README.md +70 -0
  27. package/plugins/dsh-peak-guard/client.js +741 -0
  28. package/plugins/dsh-peak-guard/cordis.patch.yml +5 -0
  29. package/plugins/dsh-peak-guard/icon.svg +12 -0
  30. package/plugins/dsh-peak-guard/index.js +2 -0
  31. package/plugins/dsh-peak-guard/locale/en.json +6 -0
  32. package/plugins/dsh-peak-guard/locale/ru.json +6 -0
  33. package/plugins/dsh-peak-guard/locale/zh.json +6 -0
  34. package/plugins/dsh-peak-guard/package.json +33 -0
  35. package/plugins/dsh-peak-guard/screenshots/01-real-time-peak-start.png +0 -0
  36. package/plugins/dsh-peak-guard/screenshots/02-real-time-peak-end.png +0 -0
  37. package/plugins/dsh-peak-guard/screenshots/03-peak-card-1440-light.png +0 -0
  38. package/plugins/dsh-peak-guard/screenshots/04-peak-card-1440-dark.png +0 -0
  39. package/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png +0 -0
  40. package/plugins/dsh-peak-guard/screenshots/05-peak-card-768-light.png +0 -0
  41. package/plugins/dsh-peak-guard/screenshots/06-peak-card-390-light.png +0 -0
  42. package/plugins/dsh-peak-guard/screenshots/07-live-preview-check.png +0 -0
  43. package/plugins/dsh-peak-guard/screenshots/07-pre-peak-1440-light.png +0 -0
  44. package/plugins/dsh-peak-guard/screenshots/08-peak-start-1440-light.png +0 -0
  45. package/plugins/dsh-peak-guard/screenshots/09-peak-end-1440-light.png +0 -0
  46. package/plugins/dsh-peak-guard/screenshots/10-pre-peak-card-1440-light.png +0 -0
  47. package/plugins/dsh-peak-guard/screenshots/11-pre-peak-card-1440-dark.png +0 -0
  48. package/plugins/dsh-peak-guard/screenshots/12-pre-peak-card-390-light.png +0 -0
  49. package/plugins/dsh-peak-guard/screenshots/qa-report.json +74 -0
  50. package/plugins/dsh-profile-transfer/README.md +62 -0
  51. package/plugins/dsh-profile-transfer/bootstrap/01-INSTALL.cmd +7 -0
  52. package/plugins/dsh-profile-transfer/bootstrap/README-ARCHIVE.md +54 -0
  53. package/plugins/dsh-profile-transfer/bootstrap/README-/320/243/320/241/320/242/320/220/320/235/320/236/320/222/320/232/320/220.md +42 -0
  54. package/plugins/dsh-profile-transfer/bootstrap/install-on-clean-machine.ps1 +119 -0
  55. package/plugins/dsh-profile-transfer/bootstrap//320/243/320/241/320/242/320/220/320/235/320/236/320/222/320/230/320/242/320/254.cmd +5 -0
  56. package/plugins/dsh-profile-transfer/client.js +806 -0
  57. package/plugins/dsh-profile-transfer/cordis.patch.yml +3 -0
  58. package/plugins/dsh-profile-transfer/icon.svg +13 -0
  59. package/plugins/dsh-profile-transfer/index.js +375 -0
  60. package/plugins/dsh-profile-transfer/locale/en.json +6 -0
  61. package/plugins/dsh-profile-transfer/locale/ru.json +6 -0
  62. package/plugins/dsh-profile-transfer/locale/zh.json +6 -0
  63. package/plugins/dsh-profile-transfer/package.json +36 -0
  64. package/plugins/dsh-profile-transfer/screenshots/01-settings-transfer-1440-light.png +0 -0
  65. package/plugins/dsh-profile-transfer/screenshots/02-settings-transfer-preview-1440-light.png +0 -0
  66. package/plugins/dsh-profile-transfer/screenshots/03-settings-transfer-1440-dark.png +0 -0
  67. package/plugins/dsh-profile-transfer/screenshots/04-settings-transfer-390-light.png +0 -0
  68. package/plugins/dsh-profile-transfer/screenshots/05-settings-transfer-768-light.png +0 -0
  69. package/plugins/dsh-profile-transfer/screenshots/06-settings-transfer-390-dark.png +0 -0
  70. package/plugins/dsh-profile-transfer/screenshots/07-settings-transfer-export-result.png +0 -0
  71. package/plugins/dsh-profile-transfer/screenshots/08-settings-transfer-workspaces-1440-light.png +0 -0
  72. package/plugins/dsh-profile-transfer/screenshots/09-settings-transfer-workspaces-1440-dark.png +0 -0
  73. package/plugins/dsh-profile-transfer/screenshots/10-settings-transfer-workspaces-390-light.png +0 -0
  74. package/plugins/dsh-profile-transfer/transfer.js +1004 -0
  75. package/plugins/dsh-project-memory/README.md +71 -0
  76. package/plugins/dsh-project-memory/cordis.patch.yml +4 -0
  77. package/plugins/dsh-project-memory/icon.svg +12 -0
  78. package/plugins/dsh-project-memory/index.js +1240 -0
  79. package/plugins/dsh-project-memory/locale/en.json +6 -0
  80. package/plugins/dsh-project-memory/locale/ru.json +6 -0
  81. package/plugins/dsh-project-memory/locale/zh.json +6 -0
  82. package/plugins/dsh-project-memory/package.json +26 -0
  83. package/plugins/dsh-session-move/README.md +67 -0
  84. package/plugins/dsh-session-move/client.js +719 -0
  85. package/plugins/dsh-session-move/cordis.patch.yml +5 -0
  86. package/plugins/dsh-session-move/icon.svg +14 -0
  87. package/plugins/dsh-session-move/index.js +497 -0
  88. package/plugins/dsh-session-move/locale/en.json +6 -0
  89. package/plugins/dsh-session-move/locale/ru.json +6 -0
  90. package/plugins/dsh-session-move/locale/zh.json +6 -0
  91. package/plugins/dsh-session-move/package.json +31 -0
  92. package/plugins/dsh-session-move/screenshots/01-row-menu-1440-light.png +0 -0
  93. package/plugins/dsh-session-move/screenshots/02-dialog-1440-light.png +0 -0
  94. package/plugins/dsh-session-move/screenshots/03-dialog-390-light.png +0 -0
  95. package/plugins/dsh-session-move/screenshots/04-dialog-1440-dark.png +0 -0
  96. package/plugins/dsh-session-move/screenshots/05-drag-highlight-1440-light.png +0 -0
  97. package/plugins/dsh-session-move/screenshots/06-drop-ungrouped-highlight.png +0 -0
  98. package/plugins/dsh-session-move/screenshots/07-after-drop-ungrouped.png +0 -0
  99. package/plugins/dsh-session-move/screenshots/08-move-dialog.png +0 -0
  100. package/plugins/dsh-session-move/screenshots/09-moved-to-second-workspace.png +0 -0
  101. package/plugins/dsh-session-move/screenshots/qa-report.json +62 -0
  102. package/plugins/dsh-skill-autopilot/cordis.patch.yml +3 -0
  103. package/plugins/dsh-skill-autopilot/index.js +444 -0
  104. package/plugins/dsh-skill-autopilot/package.json +19 -0
  105. package/plugins/dsh-token-lab/cordis.patch.yml +3 -0
  106. package/plugins/dsh-token-lab/lib/client.js +504 -0
  107. package/plugins/dsh-token-lab/lib/index.js +275 -0
  108. package/plugins/dsh-token-lab/package.json +26 -0
  109. package/plugins/dsh-token-lab/screenshots/01-token-lab-1440-light.png +0 -0
  110. package/plugins/dsh-token-lab/screenshots/02-token-lab-1440-dark.png +0 -0
  111. package/skills/code-review-checklist/SKILL.md +55 -0
  112. package/skills/content-writing/README.md +87 -0
  113. package/skills/content-writing/SKILL.md +85 -0
  114. package/skills/content-writing/assets/checklists/fact-check.md +53 -0
  115. package/skills/content-writing/assets/checklists/publish.md +65 -0
  116. package/skills/content-writing/assets/checklists/social.md +40 -0
  117. package/skills/content-writing/assets/templates/article.md +47 -0
  118. package/skills/content-writing/assets/templates/brief.md +44 -0
  119. package/skills/content-writing/assets/templates/doctor-card.md +41 -0
  120. package/skills/content-writing/assets/templates/image-prompts.md +128 -0
  121. package/skills/content-writing/assets/templates/post-telegram.md +36 -0
  122. package/skills/content-writing/assets/templates/post-vk.md +42 -0
  123. package/skills/content-writing/assets/templates/press-release.md +56 -0
  124. package/skills/content-writing/assets/templates/science-pop-note.md +55 -0
  125. package/skills/content-writing/assets/templates/service-card.md +46 -0
  126. package/skills/content-writing/references/anti-ai-style.md +248 -0
  127. package/skills/content-writing/references/editing.md +185 -0
  128. package/skills/content-writing/references/fact-checking.md +205 -0
  129. package/skills/content-writing/references/government-medical.md +246 -0
  130. package/skills/content-writing/references/images.md +212 -0
  131. package/skills/content-writing/references/journalism.md +252 -0
  132. package/skills/content-writing/references/process.md +123 -0
  133. package/skills/content-writing/references/quick-recipes.md +99 -0
  134. package/skills/content-writing/references/rules.md +85 -0
  135. package/skills/content-writing/references/science-popular.md +218 -0
  136. package/skills/content-writing/references/seo-content.md +172 -0
  137. package/skills/content-writing/references/social-media.md +253 -0
  138. package/skills/content-writing/references/sources.md +49 -0
  139. package/skills/content-writing/references/templates.md +291 -0
  140. package/skills/context-economy/SKILL.md +60 -0
  141. package/skills/context-economy/references/long-session.md +35 -0
  142. package/skills/context-economy/references/token-math.md +42 -0
  143. package/skills/context-economy/references/tool-recipes.md +34 -0
  144. package/skills/database-safety/SKILL.md +47 -0
  145. package/skills/debugging-playbook/SKILL.md +42 -0
  146. package/skills/design-critique/SKILL.md +65 -0
  147. package/skills/design-critique/references/a11y.md +25 -0
  148. package/skills/design-critique/references/diagnoses.md +33 -0
  149. package/skills/design-critique/references/quick-tests.md +30 -0
  150. package/skills/design-critique/references/report-template.md +63 -0
  151. package/skills/design-critique/references/rubric-fast.md +73 -0
  152. package/skills/dev-workflow/SKILL.md +48 -0
  153. package/skills/dev-workflow/references/definition-of-done.md +44 -0
  154. package/skills/dev-workflow/references/memory-and-boundaries.md +31 -0
  155. package/skills/dev-workflow/references/stages.md +67 -0
  156. package/skills/git-and-ci/SKILL.md +60 -0
  157. package/skills/pg-upgrade-verify/SKILL.md +67 -0
  158. package/skills/project-deep-dive/SKILL.md +45 -0
  159. package/skills/project-deep-dive/references/recon-commands.md +90 -0
  160. package/skills/project-deep-dive/references/section-templates.md +104 -0
  161. package/skills/project-deep-dive/references/tool-and-process.md +86 -0
  162. package/skills/project-memory-maintenance/SKILL.md +55 -0
  163. package/skills/project-memory-maintenance/references/api-and-checklist.md +99 -0
  164. package/skills/project-memory-maintenance/references/journal-template.md +50 -0
  165. package/skills/project-memory-maintenance/references/section-rules.md +59 -0
  166. package/skills/release-and-deploy/SKILL.md +53 -0
  167. package/skills/requirements-and-planning/SKILL.md +49 -0
  168. package/skills/requirements-and-planning/references/antipatterns-and-checklist.md +20 -0
  169. package/skills/requirements-and-planning/references/process-steps.md +52 -0
  170. package/skills/requirements-and-planning/references/templates-and-estimates.md +29 -0
  171. package/skills/security-review/SKILL.md +40 -0
  172. package/skills/seo/README.md +60 -0
  173. package/skills/seo/SKILL.md +77 -0
  174. package/skills/seo/assets/README.md +66 -0
  175. package/skills/seo/assets/scripts/LICENSE-playwright-core.txt +202 -0
  176. package/skills/seo/assets/scripts/README.md +179 -0
  177. package/skills/seo/assets/scripts/lib/args.mjs +105 -0
  178. package/skills/seo/assets/scripts/lib/browser.mjs +620 -0
  179. package/skills/seo/assets/scripts/lib/zip.mjs +191 -0
  180. package/skills/seo/assets/scripts/seo-audit.mjs +1675 -0
  181. package/skills/seo/assets/snippets/jsonld-breadcrumb.json +30 -0
  182. package/skills/seo/assets/snippets/jsonld-faq.json +39 -0
  183. package/skills/seo/assets/snippets/jsonld-medical-clinic.json +49 -0
  184. package/skills/seo/assets/snippets/jsonld-medical-webpage.json +33 -0
  185. package/skills/seo/assets/snippets/jsonld-organization.json +74 -0
  186. package/skills/seo/assets/snippets/jsonld-physician.json +46 -0
  187. package/skills/seo/assets/snippets/meta.blade.php +61 -0
  188. package/skills/seo/assets/snippets/robots.txt +61 -0
  189. package/skills/seo/assets/snippets/sitemap-urlset-example.xml +72 -0
  190. package/skills/seo/assets/snippets/sitemap.xml +36 -0
  191. package/skills/seo/references/antipatterns.md +66 -0
  192. package/skills/seo/references/audit-checklist.md +319 -0
  193. package/skills/seo/references/content-seo.md +204 -0
  194. package/skills/seo/references/eeat-medical.md +219 -0
  195. package/skills/seo/references/measurement.md +250 -0
  196. package/skills/seo/references/on-page.md +214 -0
  197. package/skills/seo/references/page-templates.md +56 -0
  198. package/skills/seo/references/stack-recipes.md +695 -0
  199. package/skills/seo/references/structured-data.md +487 -0
  200. package/skills/seo/references/technical-seo.md +296 -0
  201. package/skills/service-desk-conventions/SKILL.md +52 -0
  202. package/skills/service-desk-db-safety/SKILL.md +63 -0
  203. package/skills/service-desk-release/SKILL.md +61 -0
  204. package/skills/service-desk-testing/SKILL.md +61 -0
  205. package/skills/service-desk-ui/SKILL.md +52 -0
  206. package/skills/skills-router/SKILL.md +53 -0
  207. package/skills/skills-router/references/applying-skills.md +25 -0
  208. package/skills/skills-router/references/routing-matrix.md +52 -0
  209. package/skills/testing-strategy/SKILL.md +52 -0
  210. package/skills/ui-design-system/SKILL.md +50 -0
  211. package/skills/ui-design-system/references/accessibility-and-responsive.md +50 -0
  212. package/skills/ui-design-system/references/tokens-and-components.md +67 -0
  213. package/skills/ui-design-system/references/visual-qa.md +44 -0
  214. package/skills/web-research/SKILL.md +47 -0
  215. package/skills/web-research/references/answer-and-citations.md +60 -0
  216. package/skills/web-research/references/query-recipes.md +44 -0
  217. package/skills/wow-design/SKILL.md +89 -0
  218. package/skills/wow-design/assets/kit/README.md +195 -0
  219. package/skills/wow-design/assets/kit/assets/css/base.css +158 -0
  220. package/skills/wow-design/assets/kit/assets/css/components.css +1001 -0
  221. package/skills/wow-design/assets/kit/assets/css/fonts.css +73 -0
  222. package/skills/wow-design/assets/kit/assets/css/pages.css +737 -0
  223. package/skills/wow-design/assets/kit/assets/css/tokens.css +218 -0
  224. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-golos-text.txt +93 -0
  225. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-lora.txt +93 -0
  226. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-unbounded.txt +93 -0
  227. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-400-normal.woff2 +0 -0
  228. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-500-normal.woff2 +0 -0
  229. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-600-normal.woff2 +0 -0
  230. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-700-normal.woff2 +0 -0
  231. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-400-normal.woff2 +0 -0
  232. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-500-normal.woff2 +0 -0
  233. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-600-normal.woff2 +0 -0
  234. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-700-normal.woff2 +0 -0
  235. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-italic.woff2 +0 -0
  236. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-normal.woff2 +0 -0
  237. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-500-normal.woff2 +0 -0
  238. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-600-normal.woff2 +0 -0
  239. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-400-normal.woff2 +0 -0
  240. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-500-normal.woff2 +0 -0
  241. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-600-normal.woff2 +0 -0
  242. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-400-normal.woff2 +0 -0
  243. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-500-normal.woff2 +0 -0
  244. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-600-normal.woff2 +0 -0
  245. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-400-normal.woff2 +0 -0
  246. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-500-normal.woff2 +0 -0
  247. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-600-normal.woff2 +0 -0
  248. package/skills/wow-design/assets/kit/assets/js/kit.js +550 -0
  249. package/skills/wow-design/assets/kit/pages/dashboard.html +539 -0
  250. package/skills/wow-design/assets/kit/pages/hospital.html +430 -0
  251. package/skills/wow-design/assets/kit/showcase.html +1164 -0
  252. package/skills/wow-design/assets/scripts/LICENSE-axe-core.txt +362 -0
  253. package/skills/wow-design/assets/scripts/LICENSE-playwright-core.txt +202 -0
  254. package/skills/wow-design/assets/scripts/README.md +312 -0
  255. package/skills/wow-design/assets/scripts/audit.mjs +1200 -0
  256. package/skills/wow-design/assets/scripts/capture.mjs +337 -0
  257. package/skills/wow-design/assets/scripts/package.json +30 -0
  258. package/skills/wow-design/references/anti-patterns.md +252 -0
  259. package/skills/wow-design/references/critique-rubric.md +262 -0
  260. package/skills/wow-design/references/design-brief-template.md +48 -0
  261. package/skills/wow-design/references/inspiration.md +203 -0
  262. package/skills/wow-design/references/presets.md +99 -0
  263. package/skills/wow-design/references/principles.md +371 -0
  264. package/skills/wow-design/references/quick-presets.md +50 -0
  265. package/skills/wow-design/references/report-template.md +21 -0
  266. package/skills/wow-design/references/stack-recipes.md +96 -0
  267. package/skills/wow-design/references/visual-qa.md +82 -0
  268. package/skills/wow-design/references/wow-levers.md +43 -0
  269. package/tools/skill-cost.mjs +76 -0
@@ -0,0 +1,539 @@
1
+ <!doctype html>
2
+ <html lang="ru" data-preset="graphite">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Service Desk — обзор · организация</title>
7
+ <meta name="description" content="Дашборд Service Desk организация: KPI, SLA, очередь заявок и активность команды.">
8
+ <script>
9
+ (function(){try{var d=document.documentElement;var t=localStorage.getItem('aurora-theme');if(t!=='light'&&t!=='dark'){t=window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light'}d.setAttribute('data-theme',t)}catch(e){}})();
10
+ </script>
11
+ <link rel="stylesheet" href="../assets/css/tokens.css">
12
+ <link rel="stylesheet" href="../assets/css/fonts.css">
13
+ <link rel="stylesheet" href="../assets/css/base.css">
14
+ <link rel="stylesheet" href="../assets/css/components.css">
15
+ <link rel="stylesheet" href="../assets/css/pages.css">
16
+ </head>
17
+ <body class="page-shell">
18
+ <a class="skip-link" href="#main">Перейти к содержимому</a>
19
+
20
+ <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="position:absolute;width:0;height:0;overflow:hidden">
21
+ <symbol id="i-grid" viewBox="0 0 24 24"><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></symbol>
22
+ <symbol id="i-ticket" viewBox="0 0 24 24"><path d="M3 9V6a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v3a3 3 0 0 0 0 6v3a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-3a3 3 0 0 0 0-6Z"/><path d="M12 5v2M12 11v2M12 17v2"/></symbol>
23
+ <symbol id="i-users" viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.5"/><path d="M3 20a6 6 0 0 1 12 0"/><path d="M16 4.5a3.5 3.5 0 0 1 0 7"/><path d="M18 14.5a6 6 0 0 1 3 5.5"/></symbol>
24
+ <symbol id="i-chart" viewBox="0 0 24 24"><path d="M4 20V10M10 20V5M16 20v-7M22 20H2"/></symbol>
25
+ <symbol id="i-book" viewBox="0 0 24 24"><path d="M4 4h6a4 4 0 0 1 4 4v13a3 3 0 0 0-3-3H4V4Z"/><path d="M20 4h-6a4 4 0 0 0-4 4v13a3 3 0 0 1 3-3h7V4Z"/></symbol>
26
+ <symbol id="i-settings" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.9.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.9l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.9.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.9-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.9V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z"/></symbol>
27
+ <symbol id="i-search" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2"/></symbol>
28
+ <symbol id="i-bell" viewBox="0 0 24 24"><path d="M18 8a6 6 0 1 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9"/><path d="M10 21h4"/></symbol>
29
+ <symbol id="i-menu" viewBox="0 0 24 24"><path d="M4 7h16M4 12h16M4 17h16"/></symbol>
30
+ <symbol id="i-x" viewBox="0 0 24 24"><path d="m6 6 12 12M18 6 6 18"/></symbol>
31
+ <symbol id="i-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></symbol>
32
+ <symbol id="i-moon" viewBox="0 0 24 24"><path d="M20 14.5A8.5 8.5 0 0 1 9.5 4 8.5 8.5 0 1 0 20 14.5Z"/></symbol>
33
+ <symbol id="i-arrow-right" viewBox="0 0 24 24"><path d="M4 12h16"/><path d="m14 6 6 6-6 6"/></symbol>
34
+ <symbol id="i-arrow-up-right" viewBox="0 0 24 24"><path d="M7 17 17 7"/><path d="M8 7h9v9"/></symbol>
35
+ <symbol id="i-chevron-right" viewBox="0 0 24 24"><path d="m9 6 6 6-6 6"/></symbol>
36
+ <symbol id="i-chevron-left" viewBox="0 0 24 24"><path d="m15 6-6 6 6 6"/></symbol>
37
+ <symbol id="i-filter" viewBox="0 0 24 24"><path d="M4 6h16l-6 7v6l-4-2v-4L4 6Z"/></symbol>
38
+ <symbol id="i-download" viewBox="0 0 24 24"><path d="M12 4v11"/><path d="m7 10 5 5 5-5"/><path d="M5 20h14"/></symbol>
39
+ <symbol id="i-plus" viewBox="0 0 24 24"><path d="M12 5v14M5 12h14"/></symbol>
40
+ <symbol id="i-more" viewBox="0 0 24 24"><circle cx="5" cy="12" r="1.4"/><circle cx="12" cy="12" r="1.4"/><circle cx="19" cy="12" r="1.4"/></symbol>
41
+ <symbol id="i-clock" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></symbol>
42
+ <symbol id="i-calendar" viewBox="0 0 24 24"><rect x="4" y="5" width="16" height="16" rx="2"/><path d="M8 3v4M16 3v4M4 10h16"/></symbol>
43
+ <symbol id="i-check-circle" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="m8 12 2.5 2.5L16 9"/></symbol>
44
+ <symbol id="i-activity" viewBox="0 0 24 24"><path d="M3 12h4l2-6 4 12 2-6h6"/></symbol>
45
+ <symbol id="i-trend-up" viewBox="0 0 24 24"><path d="m3 17 6-6 4 4 8-8"/><path d="M15 7h6v6"/></symbol>
46
+ <symbol id="i-trend-down" viewBox="0 0 24 24"><path d="m3 7 6 6 4-4 8 8"/><path d="M21 17h-6v-6"/></symbol>
47
+ <symbol id="i-logout" viewBox="0 0 24 24"><path d="M9 4H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h4"/><path d="M15 8l4 4-4 4"/><path d="M19 12H9"/></symbol>
48
+ <symbol id="i-command" viewBox="0 0 24 24"><path d="M9 6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6Z"/></symbol>
49
+ <symbol id="i-external" viewBox="0 0 24 24"><path d="M14 4h6v6"/><path d="M20 4 11 13"/><path d="M20 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5"/></symbol>
50
+ <symbol id="i-user" viewBox="0 0 24 24"><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></symbol>
51
+ <symbol id="i-shield" viewBox="0 0 24 24"><path d="m12 3 8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6l8-3Z"/><path d="m9 12 2 2 4-4"/></symbol>
52
+ </svg>
53
+
54
+ <div class="app app--dash">
55
+ <!-- Сайдбар -->
56
+ <aside class="sidebar" id="app-sidebar" aria-label="Боковая навигация">
57
+ <a class="sidebar__brand" href="dashboard.html">
58
+ <span class="sidebar__logo" aria-hidden="true">SD</span>
59
+ <span>
60
+ <span class="sidebar__name">Service Desk</span>
61
+ <span class="sidebar__sub" style="display:block">организация</span>
62
+ </span>
63
+ </a>
64
+
65
+ <nav class="sidebar__nav" aria-label="Разделы">
66
+ <p class="sidebar__label">Рабочее пространство</p>
67
+ <a class="side-nav__item" href="dashboard.html" aria-current="page">
68
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-grid"/></svg>
69
+ Рабочий стол
70
+ </a>
71
+ <a class="side-nav__item" href="#tickets">
72
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-ticket"/></svg>
73
+ Заявки
74
+ <span class="side-nav__badge">128</span>
75
+ </a>
76
+ <a class="side-nav__item" href="#team">
77
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-users"/></svg>
78
+ Пользователи
79
+ </a>
80
+ <a class="side-nav__item" href="#tickets">
81
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-shield"/></svg>
82
+ Активы и доступы
83
+ </a>
84
+ <p class="sidebar__label" style="margin-top:var(--sp-4)">Управление</p>
85
+ <a class="side-nav__item" href="#sla">
86
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-chart"/></svg>
87
+ Отчёты
88
+ </a>
89
+ <a class="side-nav__item" href="#tickets">
90
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-book"/></svg>
91
+ База знаний
92
+ </a>
93
+ <a class="side-nav__item" href="#team">
94
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-settings"/></svg>
95
+ Настройки
96
+ </a>
97
+ </nav>
98
+
99
+ <div class="sidebar__foot">
100
+ <div class="sidebar__user">
101
+ <span class="avatar avatar--sm avatar--accent" aria-hidden="true">МК</span>
102
+ <span>
103
+ <span class="sidebar__user-name" style="display:block">Марина Ковалёва</span>
104
+ <span class="sidebar__user-role" style="display:block">Администратор</span>
105
+ </span>
106
+ <button class="icon-btn" type="button" aria-label="Выйти из системы">
107
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-logout"/></svg>
108
+ </button>
109
+ </div>
110
+ </div>
111
+ </aside>
112
+ <div class="nav-scrim" data-nav-scrim></div>
113
+
114
+ <div class="app__main">
115
+ <!-- Топбар -->
116
+ <header class="topbar">
117
+ <button class="icon-btn topbar__burger" type="button" data-nav-toggle="#app-sidebar" aria-expanded="false" aria-controls="app-sidebar" aria-label="Открыть навигацию">
118
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-menu"/></svg>
119
+ </button>
120
+ <nav class="crumbs" aria-label="Хлебные крошки">
121
+ <a href="dashboard.html">Service Desk</a>
122
+ <span class="crumbs__sep" aria-hidden="true"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-chevron-right"/></svg></span>
123
+ <span aria-current="page">Обзор</span>
124
+ </nav>
125
+ <div class="topbar__search">
126
+ <div class="input-group input-group--trailing">
127
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-search"/></svg>
128
+ <input class="input" type="search" placeholder="Поиск по заявкам и людям" aria-label="Поиск по заявкам и людям (⌘K)">
129
+ <span class="input-group__trailing"><kbd class="kbd">⌘</kbd><kbd class="kbd">K</kbd></span>
130
+ </div>
131
+ </div>
132
+ <div class="topbar__actions">
133
+ <button class="icon-btn theme-toggle" type="button" data-theme-toggle aria-pressed="false" aria-label="Включить тёмную тему">
134
+ <svg class="icon icon--sm icon-moon" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-moon"/></svg>
135
+ <svg class="icon icon--sm icon-sun" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-sun"/></svg>
136
+ </button>
137
+ <button class="icon-btn" type="button" aria-label="Уведомления, 3 новых">
138
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-bell"/></svg>
139
+ <span style="position:absolute;top:9px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--danger);border:1.5px solid var(--bg)"></span>
140
+ </button>
141
+ <div class="topbar__divider" aria-hidden="true"></div>
142
+ <div class="dropdown" data-dropdown>
143
+ <button class="icon-btn" type="button" data-dropdown-toggle aria-expanded="false" aria-haspopup="true" aria-label="МК — профиль: Марина Ковалёва">
144
+ <span class="avatar avatar--sm avatar--accent" aria-hidden="true">МК</span>
145
+ </button>
146
+ <div class="menu" role="menu" aria-label="Профиль">
147
+ <span class="menu__label">Марина Ковалёва</span>
148
+ <button class="menu__item" type="button" role="menuitem"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-user"/></svg>Профиль</button>
149
+ <button class="menu__item" type="button" role="menuitem"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-settings"/></svg>Настройки<span class="menu__shortcut">⌘,</span></button>
150
+ <div class="menu__sep"></div>
151
+ <button class="menu__item menu__item--danger" type="button" role="menuitem"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-logout"/></svg>Выйти</button>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </header>
156
+
157
+ <main class="app__content" id="main">
158
+ <div class="dash-main">
159
+ <!-- Заголовок -->
160
+ <div class="dash-head">
161
+ <div class="dash-head__text">
162
+ <h1>Обзор</h1>
163
+ <div class="dash-head__meta">
164
+ <span>Среда, 4 ноября 2026</span>
165
+ <span class="status status--done">Все системы в норме</span>
166
+ <span>Обновлено 2 минуты назад</span>
167
+ </div>
168
+ </div>
169
+ <div class="dash-head__actions">
170
+ <span class="dash-range"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-calendar"/></svg>Последние 30 дней</span>
171
+ <button class="btn btn--secondary btn--sm" type="button"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-download"/></svg>Экспорт</button>
172
+ <button class="btn btn--primary btn--sm" type="button"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-plus"/></svg>Новая заявка</button>
173
+ </div>
174
+ </div>
175
+
176
+ <!-- KPI -->
177
+ <section class="kpi-grid" aria-label="Ключевые показатели">
178
+ <article class="kpi kpi--accent">
179
+ <div class="kpi__head">
180
+ <span class="kpi__label">Открытые заявки</span>
181
+ <span class="kpi__icon"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-ticket"/></svg></span>
182
+ </div>
183
+ <span class="kpi__value">128</span>
184
+ <div class="kpi__foot">
185
+ <span class="kpi__delta kpi__delta--up"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-trend-up"/></svg>12</span>
186
+ <svg class="kpi__spark" viewBox="0 0 96 34" preserveAspectRatio="none" aria-hidden="true">
187
+ <path class="spark__area" d="M0 26 L12 24 L24 27 L36 20 L48 22 L60 15 L72 18 L84 10 L96 12 L96 34 L0 34 Z"/>
188
+ <path class="spark__line" d="M0 26 L12 24 L24 27 L36 20 L48 22 L60 15 L72 18 L84 10 L96 12"/>
189
+ <circle class="spark__dot" cx="96" cy="12" r="2.4"/>
190
+ </svg>
191
+ </div>
192
+ </article>
193
+ <article class="kpi">
194
+ <div class="kpi__head">
195
+ <span class="kpi__label">Средняя реакция</span>
196
+ <span class="kpi__icon"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-clock"/></svg></span>
197
+ </div>
198
+ <span class="kpi__value">14<span class="kpi__unit">мин</span></span>
199
+ <div class="kpi__foot">
200
+ <span class="kpi__delta kpi__delta--down"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-trend-down"/></svg>3 мин</span>
201
+ <svg class="kpi__spark spark--copper" viewBox="0 0 96 34" preserveAspectRatio="none" aria-hidden="true">
202
+ <path class="spark__area" d="M0 10 L12 14 L24 11 L36 18 L48 15 L60 21 L72 19 L84 24 L96 22 L96 34 L0 34 Z"/>
203
+ <path class="spark__line" d="M0 10 L12 14 L24 11 L36 18 L48 15 L60 21 L72 19 L84 24 L96 22"/>
204
+ <circle class="spark__dot" cx="96" cy="22" r="2.4"/>
205
+ </svg>
206
+ </div>
207
+ </article>
208
+ <article class="kpi">
209
+ <div class="kpi__head">
210
+ <span class="kpi__label">SLA за 30 дней</span>
211
+ <span class="kpi__icon"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-activity"/></svg></span>
212
+ </div>
213
+ <span class="kpi__value">94,2<span class="kpi__unit">%</span></span>
214
+ <div class="kpi__foot">
215
+ <span class="kpi__delta kpi__delta--up"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-trend-up"/></svg>1,8 п.п.</span>
216
+ <svg class="kpi__spark" viewBox="0 0 96 34" preserveAspectRatio="none" aria-hidden="true">
217
+ <path class="spark__area" d="M0 24 L12 22 L24 25 L36 19 L48 21 L60 14 L72 16 L84 12 L96 13 L96 34 L0 34 Z"/>
218
+ <path class="spark__line" d="M0 24 L12 22 L24 25 L36 19 L48 21 L60 14 L72 16 L84 12 L96 13"/>
219
+ <circle class="spark__dot" cx="96" cy="13" r="2.4"/>
220
+ </svg>
221
+ </div>
222
+ </article>
223
+ <article class="kpi">
224
+ <div class="kpi__head">
225
+ <span class="kpi__label">Решено за неделю</span>
226
+ <span class="kpi__icon"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-check-circle"/></svg></span>
227
+ </div>
228
+ <span class="kpi__value">342</span>
229
+ <div class="kpi__foot">
230
+ <span class="kpi__delta kpi__delta--up"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-trend-up"/></svg>7,4 %</span>
231
+ <svg class="kpi__spark spark--copper" viewBox="0 0 96 34" preserveAspectRatio="none" aria-hidden="true">
232
+ <path class="spark__area" d="M0 28 L12 26 L24 22 L36 24 L48 18 L60 20 L72 14 L84 16 L96 9 L96 34 L0 34 Z"/>
233
+ <path class="spark__line" d="M0 28 L12 26 L24 22 L36 24 L48 18 L60 20 L72 14 L84 16 L96 9"/>
234
+ <circle class="spark__dot" cx="96" cy="9" r="2.4"/>
235
+ </svg>
236
+ </div>
237
+ </article>
238
+ </section>
239
+
240
+ <!-- Графики -->
241
+ <section class="dash-grid-main" id="sla" aria-label="Показатели SLA">
242
+ <article class="dash-card">
243
+ <div class="dash-card__head">
244
+ <div>
245
+ <h2 class="dash-card__title">SLA за последние 30 дней</h2>
246
+ <p class="dash-card__sub">Доля заявок, закрытых в пределах срока</p>
247
+ </div>
248
+ <div class="chart-meta" style="margin:0">
249
+ <span class="chart-meta__value">94,2 %</span>
250
+ <span class="chart-meta__delta"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-trend-up"/></svg>1,8 п.п.</span>
251
+ </div>
252
+ </div>
253
+ <div class="dash-card__body">
254
+ <svg class="chart" viewBox="0 0 640 248" role="img" aria-label="График SLA с 1 по 30 октября: рост с 91 до 94,2 процента, цель 95 процентов">
255
+ <g class="chart__grid" aria-hidden="true">
256
+ <line x1="36" y1="20" x2="620" y2="20"/>
257
+ <line x1="36" y1="65" x2="620" y2="65"/>
258
+ <line x1="36" y1="110" x2="620" y2="110"/>
259
+ <line x1="36" y1="155" x2="620" y2="155"/>
260
+ <line x1="36" y1="200" x2="620" y2="200"/>
261
+ </g>
262
+ <g class="chart__axis" aria-hidden="true">
263
+ <text x="0" y="24">100</text>
264
+ <text x="6" y="69">95</text>
265
+ <text x="6" y="114">90</text>
266
+ <text x="6" y="159">85</text>
267
+ <text x="6" y="204">80</text>
268
+ <text x="36" y="234">01.10</text>
269
+ <text x="328" y="234" text-anchor="middle">15.10</text>
270
+ <text x="620" y="234" text-anchor="end">30.10</text>
271
+ </g>
272
+ <line class="chart__target" x1="36" y1="65" x2="620" y2="65" aria-hidden="true"/>
273
+ <text class="chart__target-label" x="620" y="59" text-anchor="end" aria-hidden="true">цель 95 %</text>
274
+ <path class="chart__area" d="M36 101 L77.7 92 L119.4 110 L161.1 83 L202.9 74 L244.6 92 L286.3 65 L328 83 L369.7 74 L411.4 56 L453.1 74 L494.9 83 L536.6 65 L578.3 74 L620 72 L620 200 L36 200 Z"/>
275
+ <path class="chart__line" d="M36 101 L77.7 92 L119.4 110 L161.1 83 L202.9 74 L244.6 92 L286.3 65 L328 83 L369.7 74 L411.4 56 L453.1 74 L494.9 83 L536.6 65 L578.3 74 L620 72"/>
276
+ <circle class="chart__dot" cx="620" cy="72" r="3.2"/>
277
+ </svg>
278
+ <div class="chart-legend">
279
+ <span><i class="legend-key" aria-hidden="true"></i>SLA, %</span>
280
+ <span><i class="legend-key legend-key--target" aria-hidden="true"></i>Целевой уровень 95 %</span>
281
+ </div>
282
+ </div>
283
+ <div class="dash-card__foot">
284
+ <span>Минимум периода — 90,1 % (07.10)</span>
285
+ <a class="link" href="#tickets">Все отчёты<svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-right"/></svg></a>
286
+ </div>
287
+ </article>
288
+
289
+ <article class="dash-card">
290
+ <div class="dash-card__head">
291
+ <div>
292
+ <h2 class="dash-card__title">SLA сегодня</h2>
293
+ <p class="dash-card__sub">128 открытых заявок</p>
294
+ </div>
295
+ <button class="icon-btn" type="button" aria-label="Обновить показатели"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-activity"/></svg></button>
296
+ </div>
297
+ <div class="dash-card__body">
298
+ <div class="donut-wrap">
299
+ <svg class="donut" viewBox="0 0 160 160" role="img" aria-label="94,2 процента заявок в пределах SLA, 5,8 процента просрочено">
300
+ <circle class="donut__track" cx="80" cy="80" r="62"/>
301
+ <circle class="donut__arc" cx="80" cy="80" r="62" stroke-dasharray="367 390"/>
302
+ <text class="donut__value" x="80" y="82" text-anchor="middle">94,2%</text>
303
+ <text class="donut__label" x="80" y="100" text-anchor="middle">SLA</text>
304
+ </svg>
305
+ <ul class="donut-legend">
306
+ <li><i class="donut-legend__key" aria-hidden="true"></i>В норме<span class="donut-legend__num">121</span></li>
307
+ <li><i class="donut-legend__key donut-legend__key--muted" aria-hidden="true"></i>Просрочено<span class="donut-legend__num">7</span></li>
308
+ </ul>
309
+ </div>
310
+ </div>
311
+ <div class="dash-card__foot">
312
+ <span class="status status--work">6 заявок требуют внимания</span>
313
+ <a class="link" href="#tickets">Разобрать<svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-right"/></svg></a>
314
+ </div>
315
+ </article>
316
+ </section>
317
+
318
+ <!-- Таблица заявок -->
319
+ <section class="dash-card table-card" id="tickets" aria-label="Очередь заявок">
320
+ <div class="dash-card__head">
321
+ <div>
322
+ <h2 class="dash-card__title">Заявки</h2>
323
+ <p class="dash-card__sub">128 открытых · 6 просрочено · обновлено 09:42</p>
324
+ </div>
325
+ <div class="dash-card__head-actions">
326
+ <div class="input-group" style="width:220px">
327
+ <svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-search"/></svg>
328
+ <input class="input" type="search" placeholder="Поиск заявки" aria-label="Поиск заявки" style="height:38px">
329
+ </div>
330
+ <button class="btn btn--secondary btn--sm" type="button"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-filter"/></svg>Фильтры</button>
331
+ </div>
332
+ </div>
333
+ <div class="table-card__toolbar">
334
+ <button class="chip chip--active" type="button" aria-pressed="true">Все <span class="chip__count">128</span></button>
335
+ <button class="chip" type="button" aria-pressed="false">Мои <span class="chip__count">14</span></button>
336
+ <button class="chip" type="button" aria-pressed="false">Просроченные <span class="chip__count">6</span></button>
337
+ <button class="chip" type="button" aria-pressed="false">Без исполнителя <span class="chip__count">3</span></button>
338
+ <span class="table-search-reset"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-clock"/></svg>Сортировка: по SLA</span>
339
+ </div>
340
+ <div class="table-wrap" style="border:0;border-radius:0">
341
+ <table class="table table--compact">
342
+ <thead>
343
+ <tr>
344
+ <th scope="col">ID</th>
345
+ <th scope="col">Тема</th>
346
+ <th scope="col">Статус</th>
347
+ <th scope="col">Приоритет</th>
348
+ <th scope="col">Исполнитель</th>
349
+ <th scope="col">Создана</th>
350
+ <th scope="col">SLA</th>
351
+ <th scope="col"><span class="sr-only">Действия</span></th>
352
+ </tr>
353
+ </thead>
354
+ <tbody>
355
+ <tr>
356
+ <td class="mono">SD-1043</td>
357
+ <td><span class="table__title">Нет доступа к корпоративной почте</span><span class="table__sub">Почта · обновление</span></td>
358
+ <td><span class="status status--work">В работе</span></td>
359
+ <td><span class="badge badge--copper badge--dot">Высокий</span></td>
360
+ <td><span class="table__person"><span class="avatar avatar--sm avatar--accent">МК</span>М. Ковалёва</span></td>
361
+ <td class="mono">04.11 · 09:14</td>
362
+ <td><span class="sla"><span class="sla__time sla__time--warn">2 ч 14 мин</span><span class="sla__track"><span class="sla__fill sla__fill--warn" style="width:62%"></span></span></span></td>
363
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1043"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1043"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
364
+ </tr>
365
+ <tr>
366
+ <td class="mono">SD-1042</td>
367
+ <td><span class="table__title">Печать на принтере в 412 кабинете</span><span class="table__sub">Оборудование · заявка</span></td>
368
+ <td><span class="status status--open">Открыта</span></td>
369
+ <td><span class="badge badge--neutral badge--dot">Средний</span></td>
370
+ <td><span class="table__person"><span class="avatar avatar--sm">АП</span>А. Павлов</span></td>
371
+ <td class="mono">04.11 · 08:41</td>
372
+ <td><span class="sla"><span class="sla__time sla__time--ok">4 ч 02 мин</span><span class="sla__track"><span class="sla__fill" style="width:31%"></span></span></span></td>
373
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1042"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1042"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
374
+ </tr>
375
+ <tr>
376
+ <td class="mono">SD-1041</td>
377
+ <td><span class="table__title">Восстановление доступа в 1С</span><span class="table__sub">Доступы · инцидент</span></td>
378
+ <td><span class="status status--late">Просрочена</span></td>
379
+ <td><span class="badge badge--danger badge--dot">Критический</span></td>
380
+ <td><span class="table__person"><span class="avatar avatar--sm avatar--dark">ДБ</span>Д. Белов</span></td>
381
+ <td class="mono">03.11 · 14:05</td>
382
+ <td><span class="sla"><span class="sla__time sla__time--late">−1 ч 12 мин</span><span class="sla__track"><span class="sla__fill sla__fill--late" style="width:100%"></span></span></span></td>
383
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1041"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1041"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
384
+ </tr>
385
+ <tr>
386
+ <td class="mono">SD-1040</td>
387
+ <td><span class="table__title">Замена картриджа в отделении лучевой диагностики</span><span class="table__sub">Оборудование · заявка</span></td>
388
+ <td><span class="status status--work">В работе</span></td>
389
+ <td><span class="badge badge--neutral badge--dot">Низкий</span></td>
390
+ <td><span class="table__person"><span class="avatar avatar--sm avatar--copper">ЕС</span>Е. Сорокина</span></td>
391
+ <td class="mono">04.11 · 08:12</td>
392
+ <td><span class="sla"><span class="sla__time sla__time--ok">6 ч 40 мин</span><span class="sla__track"><span class="sla__fill" style="width:18%"></span></span></span></td>
393
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1040"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1040"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
394
+ </tr>
395
+ <tr>
396
+ <td class="mono">SD-1039</td>
397
+ <td><span class="table__title">Медленная работа АРМ в регистратуре</span><span class="table__sub">Рабочее место · проблема</span></td>
398
+ <td><span class="status status--open">Открыта</span></td>
399
+ <td><span class="badge badge--copper badge--dot">Высокий</span></td>
400
+ <td><span class="table__person"><span class="avatar avatar--sm avatar--accent">МК</span>М. Ковалёва</span></td>
401
+ <td class="mono">03.11 · 17:20</td>
402
+ <td><span class="sla"><span class="sla__time sla__time--warn">3 ч 15 мин</span><span class="sla__track"><span class="sla__fill sla__fill--warn" style="width:48%"></span></span></span></td>
403
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1039"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1039"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
404
+ </tr>
405
+ <tr>
406
+ <td class="mono">SD-1038</td>
407
+ <td><span class="table__title">Продление лицензии на АРМ врача</span><span class="table__sub">Лицензии · заявка</span></td>
408
+ <td><span class="status status--done">Решена</span></td>
409
+ <td><span class="badge badge--neutral badge--dot">Низкий</span></td>
410
+ <td><span class="table__person"><span class="avatar avatar--sm avatar--copper">ЕС</span>Е. Сорокина</span></td>
411
+ <td class="mono">03.11 · 15:02</td>
412
+ <td><span class="sla"><span class="sla__time sla__time--muted">в срок</span><span class="sla__track"><span class="sla__fill sla__fill--muted" style="width:100%"></span></span></span></td>
413
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1038"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1038"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
414
+ </tr>
415
+ <tr>
416
+ <td class="mono">SD-1037</td>
417
+ <td><span class="table__title">Настройка печати на МФУ в приёмном отделении</span><span class="table__sub">Оборудование · заявка</span></td>
418
+ <td><span class="status status--done">Решена</span></td>
419
+ <td><span class="badge badge--neutral badge--dot">Средний</span></td>
420
+ <td><span class="table__person"><span class="avatar avatar--sm">АП</span>А. Павлов</span></td>
421
+ <td class="mono">03.11 · 12:48</td>
422
+ <td><span class="sla"><span class="sla__time sla__time--muted">в срок</span><span class="sla__track"><span class="sla__fill sla__fill--muted" style="width:100%"></span></span></span></td>
423
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1037"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1037"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
424
+ </tr>
425
+ <tr>
426
+ <td class="mono">SD-1036</td>
427
+ <td><span class="table__title">Проблема с микрофоном на приёме</span><span class="table__sub">Оборудование · инцидент</span></td>
428
+ <td><span class="status status--wait">Ожидает</span></td>
429
+ <td><span class="badge badge--neutral badge--dot">Низкий</span></td>
430
+ <td><span class="table__person"><span class="avatar avatar--sm avatar--dark">ДБ</span>Д. Белов</span></td>
431
+ <td class="mono">03.11 · 11:36</td>
432
+ <td><span class="sla"><span class="sla__time sla__time--muted">8 ч 30 мин</span><span class="sla__track"><span class="sla__fill sla__fill--muted" style="width:12%"></span></span></span></td>
433
+ <td><div class="table__actions row-actions"><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Открыть SD-1036"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-up-right"/></svg></button><button class="icon-btn" style="width:32px;height:32px" type="button" aria-label="Ещё действия SD-1036"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-more"/></svg></button></div></td>
434
+ </tr>
435
+ </tbody>
436
+ </table>
437
+ </div>
438
+ <p class="table-note"><svg class="icon icon--xs" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-right"/></svg>Прокрутите таблицу вправо — страница не сместится</p>
439
+ <div class="table-card__foot">
440
+ <span>Показано 1–8 из 128</span>
441
+ <nav class="pager" aria-label="Пагинация заявок">
442
+ <button class="pager__btn" type="button" aria-label="Предыдущая страница" disabled><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-chevron-left"/></svg></button>
443
+ <button class="pager__btn" type="button" aria-current="page">1</button>
444
+ <button class="pager__btn" type="button">2</button>
445
+ <button class="pager__btn" type="button">3</button>
446
+ <span class="pager__gap">…</span>
447
+ <button class="pager__btn" type="button">16</button>
448
+ <button class="pager__btn" type="button" aria-label="Следующая страница"><svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-chevron-right"/></svg></button>
449
+ </nav>
450
+ </div>
451
+ </section>
452
+
453
+ <!-- Активность и команда -->
454
+ <section class="dash-grid-bottom" id="team" aria-label="Активность и нагрузка команды">
455
+ <article class="dash-card">
456
+ <div class="dash-card__head">
457
+ <div>
458
+ <h2 class="dash-card__title">Лента активности</h2>
459
+ <p class="dash-card__sub">События за последние 2 часа</p>
460
+ </div>
461
+ <a class="link" href="#tickets">Все события<svg class="icon icon--sm" viewBox="0 0 24 24" aria-hidden="true"><use href="#i-arrow-right"/></svg></a>
462
+ </div>
463
+ <div class="dash-card__body" style="padding-top:var(--sp-4)">
464
+ <div class="activity-item">
465
+ <span class="avatar avatar--sm avatar--accent">МК</span>
466
+ <div class="activity-item__body"><p class="activity-item__text"><b>Марина Ковалёва</b> закрыла SD-1038 «Продление лицензии»</p><p class="activity-item__time">12 минут назад · SLA соблюдён</p></div>
467
+ </div>
468
+ <div class="activity-item">
469
+ <span class="avatar avatar--sm avatar--copper">ЕС</span>
470
+ <div class="activity-item__body"><p class="activity-item__text"><b>Елена Сорокина</b> оставила комментарий к SD-1043</p><p class="activity-item__time">24 минуты назад · «Доступ восстановлен, проверьте почту»</p></div>
471
+ </div>
472
+ <div class="activity-item">
473
+ <span class="avatar avatar--sm avatar--dark">ДБ</span>
474
+ <div class="activity-item__body"><p class="activity-item__text"><b>Дмитрий Белов</b> эскалировал SD-1041 руководителю</p><p class="activity-item__time">38 минут назад · причина: просрочен SLA</p></div>
475
+ </div>
476
+ <div class="activity-item">
477
+ <span class="avatar avatar--sm">АП</span>
478
+ <div class="activity-item__body"><p class="activity-item__text"><b>Артём Павлов</b> взял в работу SD-1042</p><p class="activity-item__time">51 минута назад · выезд в 412 кабинет</p></div>
479
+ </div>
480
+ <div class="activity-item">
481
+ <span class="avatar avatar--sm avatar--accent">МК</span>
482
+ <div class="activity-item__body"><p class="activity-item__text"><b>Марина Ковалёва</b> создала заявку SD-1043 из портала</p><p class="activity-item__time">2 часа назад · канал «Портал пациента»</p></div>
483
+ </div>
484
+ </div>
485
+ </article>
486
+
487
+ <article class="dash-card">
488
+ <div class="dash-card__head">
489
+ <div>
490
+ <h2 class="dash-card__title">Загрузка смены</h2>
491
+ <p class="dash-card__sub">4 из 6 на линии</p>
492
+ </div>
493
+ <span class="badge badge--success badge--dot">Норма</span>
494
+ </div>
495
+ <div class="dash-card__body">
496
+ <div class="team-row">
497
+ <span class="avatar avatar--sm avatar--accent">МК</span>
498
+ <div><p class="team-row__name">Марина Ковалёва</p><p class="team-row__role">Администратор</p></div>
499
+ <span class="team-row__value">68 %</span>
500
+ <div class="team-row__track"><div class="progress" style="--progress:68%"><div class="progress__bar" style="width:68%"></div></div></div>
501
+ </div>
502
+ <div class="team-row" style="margin-top:var(--sp-4)">
503
+ <span class="avatar avatar--sm">АП</span>
504
+ <div><p class="team-row__name">Артём Павлов</p><p class="team-row__role">Техник</p></div>
505
+ <span class="team-row__value">82 %</span>
506
+ <div class="team-row__track"><div class="progress progress--warning" style="--progress:82%"><div class="progress__bar" style="width:82%"></div></div></div>
507
+ </div>
508
+ <div class="team-row" style="margin-top:var(--sp-4)">
509
+ <span class="avatar avatar--sm avatar--copper">ЕС</span>
510
+ <div><p class="team-row__name">Елена Сорокина</p><p class="team-row__role">Техник</p></div>
511
+ <span class="team-row__value">54 %</span>
512
+ <div class="team-row__track"><div class="progress" style="--progress:54%"><div class="progress__bar" style="width:54%"></div></div></div>
513
+ </div>
514
+ <div class="team-row" style="margin-top:var(--sp-4)">
515
+ <span class="avatar avatar--sm avatar--dark">ДБ</span>
516
+ <div><p class="team-row__name">Дмитрий Белов</p><p class="team-row__role">Сисадмин</p></div>
517
+ <span class="team-row__value">91 %</span>
518
+ <div class="team-row__track"><div class="progress progress--danger" style="--progress:91%"><div class="progress__bar" style="width:91%"></div></div></div>
519
+ </div>
520
+ </div>
521
+ <div class="dash-card__foot">
522
+ <span>Средняя загрузка 74 %</span>
523
+ <span class="status status--work">12 заявок в работе</span>
524
+ </div>
525
+ </article>
526
+ </section>
527
+
528
+ <div class="dash-footnote">
529
+ <span>Service Desk 1.39.0 · PostgreSQL 18 · обновлено 04.11.2026, 09:42</span>
530
+ <span class="status status--done">Все системы в норме</span>
531
+ </div>
532
+ </div>
533
+ </main>
534
+ </div>
535
+ </div>
536
+
537
+ <script src="../assets/js/kit.js" defer></script>
538
+ </body>
539
+ </html>