@darkclaw921/umgt 0.1.0 → 0.2.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 (55) hide show
  1. package/README.md +6 -0
  2. package/dist/server/app.js +2 -1
  3. package/dist/server/app.js.map +1 -1
  4. package/dist/server/reports.d.ts +4 -0
  5. package/dist/server/reports.js +40 -0
  6. package/dist/server/reports.js.map +1 -0
  7. package/dist/server/routes.js +4 -0
  8. package/dist/server/routes.js.map +1 -1
  9. package/dist/server/updates.d.ts +28 -0
  10. package/dist/server/updates.js +99 -0
  11. package/dist/server/updates.js.map +1 -0
  12. package/dist/web/assets/AgentActivity-sYJeY5Yf.js +9 -0
  13. package/dist/web/assets/{ArrowRight.es-rFSWI60-.js → ArrowRight.es-9w41WqD8.js} +1 -1
  14. package/dist/web/assets/{ArrowUpRight.es-9AGQAwc-.js → ArrowUpRight.es-BmIrpjWN.js} +1 -1
  15. package/dist/web/assets/{AssetMediaPreview-Cqs-ltSx.js → AssetMediaPreview-D2cd6oQO.js} +1 -1
  16. package/dist/web/assets/AssetSelectionWizard-a43_6NO7.js +1 -0
  17. package/dist/web/assets/{CaretDown.es-BF-GEzW4.js → CaretDown.es-Cq33NYip.js} +1 -1
  18. package/dist/web/assets/{CheckCircle.es-CAQfdit1.js → CheckCircle.es-D5B3hdvz.js} +1 -1
  19. package/dist/web/assets/{CoreAccount-Dkpl4Rzw.js → CoreAccount-D4ZC8CWv.js} +1 -1
  20. package/dist/web/assets/{DownloadSimple.es-CwuHLlwX.js → DownloadSimple.es-DwOWFbs2.js} +1 -1
  21. package/dist/web/assets/{FileText.es-C7Qe_oPL.js → FileText.es-D83IIiOG.js} +1 -1
  22. package/dist/web/assets/{ImageSquare.es-DXp8f5Py.js → ImageSquare.es-DxCFt99_.js} +1 -1
  23. package/dist/web/assets/KidsApp-D-8t3HPy.js +2 -0
  24. package/dist/web/assets/{MagnifyingGlass.es-DAAoXLM5.js → MagnifyingGlass.es-rkdOU2rH.js} +1 -1
  25. package/dist/web/assets/PaperPlaneRight.es-U0twumpP.js +1 -0
  26. package/dist/web/assets/{PencilSimple.es-B8ERAsFN.js → PencilSimple.es-JVHwRvGx.js} +1 -1
  27. package/dist/web/assets/PlainChat-CMxYwKko.js +1 -0
  28. package/dist/web/assets/{Sparkle.es-B2bpSK_D.js → Sparkle.es-CmGpvnNm.js} +1 -1
  29. package/dist/web/assets/{Square.es-POdDsCpj.js → Square.es-BjNN9Ypc.js} +1 -1
  30. package/dist/web/assets/{UploadSimple.es-DIzZ2Med.js → UploadSimple.es-DxIuxpCC.js} +1 -1
  31. package/dist/web/assets/{WarningCircle.es-DeosDn7W.js → WarningCircle.es-D63H8cL9.js} +1 -1
  32. package/dist/web/assets/WorkflowJournal-Did0sRta.js +1 -0
  33. package/dist/web/assets/{YandexConfigFields-B4ZNwcRp.js → YandexConfigFields-DDL22Bfw.js} +1 -1
  34. package/dist/web/assets/{YandexGamesView-JIfZE9xK.js → YandexGamesView-R64RSJRL.js} +2 -2
  35. package/dist/web/assets/{dist-BmzcNjGQ.js → dist-7vx7MTaJ.js} +1 -1
  36. package/dist/web/assets/index-Izzbh11U.css +1 -0
  37. package/dist/web/assets/index-sNciOZYG.js +13 -0
  38. package/dist/web/assets/{IconBase.es-Bvh5HoVq.js → jsx-runtime-CdVFa8IP.js} +1 -1
  39. package/dist/web/assets/resources-DppXCagL.js +1 -0
  40. package/dist/web/assets/ui-wHE_yBK0.js +41 -0
  41. package/dist/web/assets/workflow-BrIKN5ER.js +34 -0
  42. package/dist/web/index.html +4 -4
  43. package/package.json +11 -1
  44. package/dist/web/assets/AgentActivity-BmfJK4y-.js +0 -9
  45. package/dist/web/assets/AssetSelectionWizard-BB3qGs0g.js +0 -1
  46. package/dist/web/assets/Check.es-C6V98Gx8.js +0 -1
  47. package/dist/web/assets/KidsApp-BRwDKhZO.js +0 -2
  48. package/dist/web/assets/PlainChat-DT-l2KJ-.js +0 -1
  49. package/dist/web/assets/Plus.es-xuvXKifF.js +0 -1
  50. package/dist/web/assets/WorkflowJournal-CnLiVdGb.js +0 -1
  51. package/dist/web/assets/index-IRbQKmkO.js +0 -13
  52. package/dist/web/assets/index-aj0ikA52.css +0 -1
  53. package/dist/web/assets/resources-CT9ITJ8m.js +0 -1
  54. package/dist/web/assets/ui-CVc6Nw0y.js +0 -41
  55. package/dist/web/assets/workflow-o5sZ-osd.js +0 -34
@@ -1 +1 @@
1
- import{o as e,r as t,t as n}from"./IconBase.es-Bvh5HoVq.js";var r=e(t(),1),i=new Map([[`bold`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-12-80V80a12,12,0,0,1,24,0v52a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,172Z`}))],[`duotone`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z`,opacity:`0.2`}),r.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z`}))],[`fill`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z`}))],[`light`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Zm-6-82V80a6,6,0,0,1,12,0v56a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,172Z`}))],[`regular`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z`}))],[`thin`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Zm-4-84V80a4,4,0,0,1,8,0v56a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,172Z`}))]]),a=r.forwardRef((e,t)=>r.createElement(n,{ref:t,...e,weights:i}));a.displayName=`WarningCircleIcon`;var o=a;export{o as t};
1
+ import{n as e,o as t,r as n}from"./jsx-runtime-CdVFa8IP.js";var r=t(n(),1),i=new Map([[`bold`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-12-80V80a12,12,0,0,1,24,0v52a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,172Z`}))],[`duotone`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z`,opacity:`0.2`}),r.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z`}))],[`fill`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z`}))],[`light`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Zm-6-82V80a6,6,0,0,1,12,0v56a6,6,0,0,1-12,0Zm16,36a10,10,0,1,1-10-10A10,10,0,0,1,138,172Z`}))],[`regular`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z`}))],[`thin`,r.createElement(r.Fragment,null,r.createElement(`path`,{d:`M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Zm-4-84V80a4,4,0,0,1,8,0v56a4,4,0,0,1-8,0Zm12,36a8,8,0,1,1-8-8A8,8,0,0,1,136,172Z`}))]]),a=r.forwardRef((t,n)=>r.createElement(e,{ref:n,...t,weights:i}));a.displayName=`WarningCircleIcon`;var o=a;export{o as t};
@@ -0,0 +1 @@
1
+ import{o as e,r as t,t as n}from"./jsx-runtime-CdVFa8IP.js";import{t as r}from"./ArrowRight.es-9w41WqD8.js";import{t as i}from"./CaretDown.es-Cq33NYip.js";import{n as a}from"./ui-wHE_yBK0.js";import{n as o,t as s}from"./Square.es-BjNN9Ypc.js";import{t as c}from"./WarningCircle.es-D63H8cL9.js";import{U as l,b as u,d}from"./index-sNciOZYG.js";var f=e(t(),1),p=n();function m({workspace:e,request:t,activity:n,connected:m,onPermission:h,events:g=[],onAssets:_}){let v=d(e,t),[y,b]=(0,f.useState)(!0);if((0,f.useEffect)(()=>b(!0),[e.project.id,t?.startedAt,v.decomposition?.id]),!v.visible)return null;let x=[...new Map(g.filter(t=>t.type===`permission.auto_approved`&&t.projectId===e.project.id).filter(e=>{let t=e.payload;return t.runId===v.run?.id||t.runId===v.decomposition?.id}).map(e=>[e.id,e])).values()],S=n.run?.id===v.run?.id?u(n,e.permissions.length,m):void 0,C=m&&(v.pending||v.working||v.status===`assets-search`||v.status===`assets-import`)&&!v.waiting&&v.status!==`assets-choice`,w=v.stages.length?v.stages:v.accepted?[{id:`accepted`,label:`План принят`,status:`completed`,counts:void 0,createdAt:v.decomposition?.startedAt??t?.startedAt}]:[];return(0,p.jsxs)(`section`,{className:`workflow-journal ${C?`is-live`:``}`,"data-testid":`workflow-journal`,"data-state":v.status,"aria-label":`Журнал разработки`,children:[(0,p.jsxs)(`button`,{type:`button`,className:`workflow-journal-toggle`,"aria-expanded":y,onClick:()=>b(e=>!e),"data-testid":`workflow-journal-toggle`,children:[(0,p.jsx)(`span`,{className:`workflow-journal-mark`,"aria-hidden":`true`,children:v.waiting||v.failed?(0,p.jsx)(c,{size:18}):v.status===`paused`?(0,p.jsx)(o,{size:18}):v.status===`stopped`?(0,p.jsx)(s,{size:16}):C?(0,p.jsxs)(`span`,{className:`journal-bars`,children:[(0,p.jsx)(`i`,{}),(0,p.jsx)(`i`,{}),(0,p.jsx)(`i`,{})]}):(0,p.jsx)(l,{size:18})}),(0,p.jsxs)(`span`,{className:`workflow-journal-heading`,children:[(0,p.jsx)(`strong`,{role:`status`,"data-testid":`workflow-journal-title`,children:v.title}),(0,p.jsx)(`small`,{children:!m&&(v.pending||v.working)?`Связь прервана · восстанавливаем состояние`:v.waiting?`Действие продолжится после вашего ответа`:v.pending?`Запрос отправлен. Ждём подтверждения сервера.`:v.working?S?.detail?`${S.label} · ${S.detail}`:S?.label??`Выполняем текущий этап`:v.tasks.length?`Завершено задач: ${v.done} из ${v.tasks.length}`:`Ход подготовки и разработки`})]}),(0,p.jsxs)(`span`,{className:`journal-toggle-label`,children:[`Журнал `,(0,p.jsx)(i,{size:15})]})]}),y&&(0,p.jsxs)(`div`,{className:`workflow-journal-body`,children:[(0,p.jsxs)(`ol`,{className:`workflow-journal-rows`,"data-testid":`workflow-journal-rows`,children:[v.pending&&(0,p.jsxs)(`li`,{"data-status":`running`,children:[(0,p.jsx)(`span`,{className:`journal-node`}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`strong`,{children:`Отправлено утверждение плана`}),(0,p.jsx)(`small`,{children:`Подготовка начнётся после подтверждения.`})]})]}),w.map(e=>(0,p.jsxs)(`li`,{"data-status":e.status,children:[(0,p.jsx)(`span`,{className:`journal-node`,children:e.status===`completed`?(0,p.jsx)(l,{size:12}):e.status===`failed`?(0,p.jsx)(c,{size:12}):null}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`strong`,{children:`kind`in e&&e.kind===`approval`&&e.status===`completed`?`План принят`:e.label}),e.counts&&(0,p.jsx)(`small`,{children:e.counts.tasks===void 0?e.counts.skills===void 0?``:`Подключено: ${e.counts.skills}`:`Сохранено эпиков: ${e.counts.epics} · задач: ${e.counts.tasks}`})]}),(0,p.jsx)(`span`,{className:`journal-row-status`,children:e.status===`completed`?`Готово`:e.status===`failed`?`Ошибка`:e.status===`cancelled`?`Остановлено`:v.waiting?`Ждёт ответа`:`В работе`})]},e.id)),x.length>0&&(0,p.jsxs)(`li`,{"data-status":`completed`,"data-testid":`journal-auto-approved`,children:[(0,p.jsx)(`span`,{className:`journal-node`,children:(0,p.jsx)(l,{size:12})}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`strong`,{children:`Действия разрешены автоматически`}),(0,p.jsxs)(`small`,{children:[`Подтверждено запросов: `,x.length,`. Агент продолжил работу.`]})]})]}),!!v.tasks.length&&(0,p.jsxs)(`li`,{"data-status":v.done===v.tasks.length?`completed`:v.working?`running`:`idle`,children:[(0,p.jsx)(`span`,{className:`journal-node`,children:v.done===v.tasks.length?(0,p.jsx)(l,{size:12}):null}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`strong`,{children:v.done===v.tasks.length?`Реализация завершена`:`Реализация задач`}),(0,p.jsx)(`small`,{children:v.tasks.find(e=>e.status===`running`)?.title??`Выполнено ${v.done} из ${v.tasks.length}`}),(0,p.jsx)(`progress`,{"aria-label":`Выполнение задач плана`,value:v.done,max:v.tasks.length})]}),(0,p.jsxs)(`span`,{className:`journal-row-status`,children:[v.done,` / `,v.tasks.length]})]})]}),v.selection&&(0,p.jsxs)(`div`,{className:`journal-asset-stage`,"data-testid":`journal-asset-selection`,children:[(0,p.jsx)(`span`,{children:v.selection.status===`confirmed`?`Набор ассетов подтверждён`:v.selection.status===`discovering`?`Ищем варианты по утверждённому плану`:v.selection.status===`importing`?`Импортируем подтверждённый набор`:`Подбор ассетов сохранён`}),_&&(0,p.jsxs)(a,{onClick:_,"data-testid":`journal-open-assets`,children:[v.selection.status===`confirmed`?`Посмотреть набор`:`Открыть подбор`,` `,(0,p.jsx)(r,{size:15})]})]}),v.error&&(0,p.jsx)(`p`,{className:`journal-error`,role:`alert`,children:v.error}),v.waiting&&(0,p.jsxs)(a,{onClick:h,"data-testid":`journal-open-permission`,children:[`Ответить агенту `,(0,p.jsx)(r,{size:15})]}),!v.pending&&!v.failed&&!v.stages.length&&v.working&&(0,p.jsx)(`p`,{className:`journal-legacy-note`,children:v.run?.kind===`decomposition`?`Агент создаёт эпики и задачи.`:`Состояние задач обновляется по событиям агента.`})]})]})}export{m as WorkflowJournal};
@@ -1 +1 @@
1
- import{n as e,o as t,r as n,t as r}from"./IconBase.es-Bvh5HoVq.js";import{n as i}from"./ui-CVc6Nw0y.js";var a=t(n(),1),o=new Map([[`bold`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M234.49,111.07,90.41,22.94A20,20,0,0,0,60,39.87V216.13a20,20,0,0,0,30.41,16.93l144.08-88.13a19.82,19.82,0,0,0,0-33.86ZM84,208.85V47.15L216.16,128Z`}))],[`duotone`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M228.23,134.69,84.15,222.81A8,8,0,0,1,72,216.12V39.88a8,8,0,0,1,12.15-6.69l144.08,88.12A7.82,7.82,0,0,1,228.23,134.69Z`,opacity:`0.2`}),a.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))],[`fill`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z`}))],[`light`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M231.36,116.19,87.28,28.06a14,14,0,0,0-14.18-.27A13.69,13.69,0,0,0,66,39.87V216.13a13.69,13.69,0,0,0,7.1,12.08,14,14,0,0,0,14.18-.27l144.08-88.13a13.82,13.82,0,0,0,0-23.62Zm-6.26,13.38L81,217.7a2,2,0,0,1-2.06,0,1.78,1.78,0,0,1-1-1.61V39.87a1.78,1.78,0,0,1,1-1.61A2.06,2.06,0,0,1,80,38a2,2,0,0,1,1,.31L225.1,126.43a1.82,1.82,0,0,1,0,3.14Z`}))],[`regular`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))],[`thin`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M230.32,117.9,86.24,29.79a11.91,11.91,0,0,0-12.17-.23A11.71,11.71,0,0,0,68,39.89V216.11a11.71,11.71,0,0,0,6.07,10.33,11.91,11.91,0,0,0,12.17-.23L230.32,138.1a11.82,11.82,0,0,0,0-20.2Zm-4.18,13.37L82.06,219.39a4,4,0,0,1-4.07.07,3.77,3.77,0,0,1-2-3.35V39.89a3.77,3.77,0,0,1,2-3.35,4,4,0,0,1,4.07.07l144.08,88.12a3.8,3.8,0,0,1,0,6.54Z`}))]]),s=a.forwardRef((e,t)=>a.createElement(r,{ref:t,...e,weights:o}));s.displayName=`PlayIcon`;var c=s,l=e(),u=()=>({devices:[`desktop`,`mobile`],orientation:`any`,languages:[`ru`,`en`],ads:{interstitial:!1,rewarded:!1},cloudSaves:!0,authorization:!1,payments:{enabled:!1,products:[]},leaderboards:[]});function d(e){return{...e,languages:[...new Set(e.languages.map(e=>e.trim()).filter(Boolean))],leaderboards:[...new Set(e.leaderboards.map(e=>e.trim()).filter(Boolean))]}}function f({value:e,onChange:t,disabled:n=!1}){let r=n=>t({...e,...n});return(0,l.jsxs)(`fieldset`,{className:`yandex-config`,disabled:n,children:[(0,l.jsx)(`legend`,{children:`Игра на Яндекс Играх`}),(0,l.jsxs)(`div`,{className:`form-columns`,children:[(0,l.jsxs)(`fieldset`,{children:[(0,l.jsx)(`legend`,{children:`Устройства игроков`}),(0,l.jsx)(`div`,{className:`checkbox-options`,children:[`desktop`,`mobile`].map(t=>(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.devices.includes(t),onChange:n=>r({devices:n.target.checked?[...e.devices,t]:e.devices.filter(e=>e!==t)})}),t===`desktop`?`Компьютер`:`Телефон`]},t))})]}),(0,l.jsxs)(`label`,{children:[`Ориентация`,(0,l.jsxs)(`select`,{"aria-label":`Ориентация игры`,value:e.orientation,onChange:e=>r({orientation:e.target.value}),children:[(0,l.jsx)(`option`,{value:`any`,children:`Любая`}),(0,l.jsx)(`option`,{value:`landscape`,children:`Горизонтальная`}),(0,l.jsx)(`option`,{value:`portrait`,children:`Вертикальная`})]})]})]}),(0,l.jsxs)(`div`,{className:`form-columns`,children:[(0,l.jsxs)(`label`,{children:[`Языки`,(0,l.jsx)(`input`,{"aria-label":`Языки игры`,placeholder:`ru, en`,value:e.languages.join(`, `),onChange:e=>r({languages:e.target.value.split(`,`).map(e=>e.trim())})}),(0,l.jsx)(`small`,{children:`Коды языков через запятую.`})]}),(0,l.jsxs)(`label`,{children:[`App ID `,(0,l.jsx)(`span`,{className:`muted`,children:`· после создания черновика`}),(0,l.jsx)(`input`,{"aria-label":`Yandex App ID`,value:e.appId??``,onChange:e=>r({appId:e.target.value.trim()||void 0})})]})]}),(0,l.jsxs)(`div`,{className:`yandex-features`,children:[(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.cloudSaves,onChange:e=>r({cloudSaves:e.target.checked})}),`Облачные сохранения`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.authorization,onChange:e=>r({authorization:e.target.checked})}),`Авторизация игрока`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.ads.interstitial,onChange:t=>r({ads:{...e.ads,interstitial:t.target.checked}})}),`Межстраничная реклама`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.ads.rewarded,onChange:t=>r({ads:{...e.ads,rewarded:t.target.checked}})}),`Реклама с наградой`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.payments.enabled,onChange:t=>r({payments:{...e.payments,enabled:t.target.checked}})}),`Внутриигровые покупки`]})]}),e.payments.enabled&&(0,l.jsxs)(`div`,{className:`yandex-products`,children:[(0,l.jsx)(`p`,{className:`muted`,children:`Товары должны совпадать с каталогом в консоли Яндекс Игр.`}),e.payments.products.map((t,n)=>(0,l.jsxs)(`div`,{className:`yandex-product`,children:[(0,l.jsxs)(`label`,{children:[`ID товара`,(0,l.jsx)(`input`,{"aria-label":`ID товара ${n+1}`,required:!0,value:t.id,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,id:t.target.value}:e)}})})]}),(0,l.jsxs)(`label`,{children:[`Ресурс награды`,(0,l.jsx)(`input`,{"aria-label":`Ресурс товара ${n+1}`,value:Object.keys(t.grant)[0]??``,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,grant:{[t.target.value]:Object.values(e.grant)[0]??1}}:e)}})})]}),(0,l.jsxs)(`label`,{children:[`Количество`,(0,l.jsx)(`input`,{"aria-label":`Количество товара ${n+1}`,type:`number`,min:`1`,step:`1`,value:Object.values(t.grant)[0]??1,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,grant:{[Object.keys(e.grant)[0]??`coins`]:Number(t.target.value)}}:e)}})})]}),(0,l.jsxs)(`label`,{className:`checkbox-options`,children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:t.consumable,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,consumable:t.target.checked}:e)}})}),`Расходуемый`]}),(0,l.jsx)(i,{type:`button`,tone:`ghost`,"aria-label":`Удалить товар ${n+1}`,onClick:()=>r({payments:{...e.payments,products:e.payments.products.filter((e,t)=>t!==n)}}),children:`Удалить`})]},n)),(0,l.jsx)(i,{type:`button`,onClick:()=>r({payments:{...e.payments,products:[...e.payments.products,{id:``,consumable:!0,grant:{coins:1}}]}}),children:`Добавить товар`})]}),(0,l.jsxs)(`label`,{children:[`Таблицы лидеров`,(0,l.jsx)(`input`,{"aria-label":`Таблицы лидеров`,placeholder:`Например, bestScore`,value:e.leaderboards.join(`, `),onChange:e=>r({leaderboards:e.target.value.split(`,`).map(e=>e.trim())})}),(0,l.jsx)(`small`,{children:`Идентификаторы через запятую. Оставьте пустым, если рейтинги не нужны.`})]}),(0,l.jsx)(`small`,{children:`SDK, полноэкранный режим и жизненный цикл игры входят в интеграцию. Реклама и покупки включаются только по вашему выбору.`})]})}export{c as i,u as n,d as r,f as t};
1
+ import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CdVFa8IP.js";import{n as i}from"./ui-wHE_yBK0.js";var a=t(n(),1),o=new Map([[`bold`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M234.49,111.07,90.41,22.94A20,20,0,0,0,60,39.87V216.13a20,20,0,0,0,30.41,16.93l144.08-88.13a19.82,19.82,0,0,0,0-33.86ZM84,208.85V47.15L216.16,128Z`}))],[`duotone`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M228.23,134.69,84.15,222.81A8,8,0,0,1,72,216.12V39.88a8,8,0,0,1,12.15-6.69l144.08,88.12A7.82,7.82,0,0,1,228.23,134.69Z`,opacity:`0.2`}),a.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))],[`fill`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z`}))],[`light`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M231.36,116.19,87.28,28.06a14,14,0,0,0-14.18-.27A13.69,13.69,0,0,0,66,39.87V216.13a13.69,13.69,0,0,0,7.1,12.08,14,14,0,0,0,14.18-.27l144.08-88.13a13.82,13.82,0,0,0,0-23.62Zm-6.26,13.38L81,217.7a2,2,0,0,1-2.06,0,1.78,1.78,0,0,1-1-1.61V39.87a1.78,1.78,0,0,1,1-1.61A2.06,2.06,0,0,1,80,38a2,2,0,0,1,1,.31L225.1,126.43a1.82,1.82,0,0,1,0,3.14Z`}))],[`regular`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))],[`thin`,a.createElement(a.Fragment,null,a.createElement(`path`,{d:`M230.32,117.9,86.24,29.79a11.91,11.91,0,0,0-12.17-.23A11.71,11.71,0,0,0,68,39.89V216.11a11.71,11.71,0,0,0,6.07,10.33,11.91,11.91,0,0,0,12.17-.23L230.32,138.1a11.82,11.82,0,0,0,0-20.2Zm-4.18,13.37L82.06,219.39a4,4,0,0,1-4.07.07,3.77,3.77,0,0,1-2-3.35V39.89a3.77,3.77,0,0,1,2-3.35,4,4,0,0,1,4.07.07l144.08,88.12a3.8,3.8,0,0,1,0,6.54Z`}))]]),s=a.forwardRef((t,n)=>a.createElement(e,{ref:n,...t,weights:o}));s.displayName=`PlayIcon`;var c=s,l=r(),u=()=>({devices:[`desktop`,`mobile`],orientation:`any`,languages:[`ru`,`en`],ads:{interstitial:!1,rewarded:!1},cloudSaves:!0,authorization:!1,payments:{enabled:!1,products:[]},leaderboards:[]});function d(e){return{...e,languages:[...new Set(e.languages.map(e=>e.trim()).filter(Boolean))],leaderboards:[...new Set(e.leaderboards.map(e=>e.trim()).filter(Boolean))]}}function f({value:e,onChange:t,disabled:n=!1}){let r=n=>t({...e,...n});return(0,l.jsxs)(`fieldset`,{className:`yandex-config`,disabled:n,children:[(0,l.jsx)(`legend`,{children:`Игра на Яндекс Играх`}),(0,l.jsxs)(`div`,{className:`form-columns`,children:[(0,l.jsxs)(`fieldset`,{children:[(0,l.jsx)(`legend`,{children:`Устройства игроков`}),(0,l.jsx)(`div`,{className:`checkbox-options`,children:[`desktop`,`mobile`].map(t=>(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.devices.includes(t),onChange:n=>r({devices:n.target.checked?[...e.devices,t]:e.devices.filter(e=>e!==t)})}),t===`desktop`?`Компьютер`:`Телефон`]},t))})]}),(0,l.jsxs)(`label`,{children:[`Ориентация`,(0,l.jsxs)(`select`,{"aria-label":`Ориентация игры`,value:e.orientation,onChange:e=>r({orientation:e.target.value}),children:[(0,l.jsx)(`option`,{value:`any`,children:`Любая`}),(0,l.jsx)(`option`,{value:`landscape`,children:`Горизонтальная`}),(0,l.jsx)(`option`,{value:`portrait`,children:`Вертикальная`})]})]})]}),(0,l.jsxs)(`div`,{className:`form-columns`,children:[(0,l.jsxs)(`label`,{children:[`Языки`,(0,l.jsx)(`input`,{"aria-label":`Языки игры`,placeholder:`ru, en`,value:e.languages.join(`, `),onChange:e=>r({languages:e.target.value.split(`,`).map(e=>e.trim())})}),(0,l.jsx)(`small`,{children:`Коды языков через запятую.`})]}),(0,l.jsxs)(`label`,{children:[`App ID `,(0,l.jsx)(`span`,{className:`muted`,children:`· после создания черновика`}),(0,l.jsx)(`input`,{"aria-label":`Yandex App ID`,value:e.appId??``,onChange:e=>r({appId:e.target.value.trim()||void 0})})]})]}),(0,l.jsxs)(`div`,{className:`yandex-features`,children:[(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.cloudSaves,onChange:e=>r({cloudSaves:e.target.checked})}),`Облачные сохранения`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.authorization,onChange:e=>r({authorization:e.target.checked})}),`Авторизация игрока`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.ads.interstitial,onChange:t=>r({ads:{...e.ads,interstitial:t.target.checked}})}),`Межстраничная реклама`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.ads.rewarded,onChange:t=>r({ads:{...e.ads,rewarded:t.target.checked}})}),`Реклама с наградой`]}),(0,l.jsxs)(`label`,{children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:e.payments.enabled,onChange:t=>r({payments:{...e.payments,enabled:t.target.checked}})}),`Внутриигровые покупки`]})]}),e.payments.enabled&&(0,l.jsxs)(`div`,{className:`yandex-products`,children:[(0,l.jsx)(`p`,{className:`muted`,children:`Товары должны совпадать с каталогом в консоли Яндекс Игр.`}),e.payments.products.map((t,n)=>(0,l.jsxs)(`div`,{className:`yandex-product`,children:[(0,l.jsxs)(`label`,{children:[`ID товара`,(0,l.jsx)(`input`,{"aria-label":`ID товара ${n+1}`,required:!0,value:t.id,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,id:t.target.value}:e)}})})]}),(0,l.jsxs)(`label`,{children:[`Ресурс награды`,(0,l.jsx)(`input`,{"aria-label":`Ресурс товара ${n+1}`,value:Object.keys(t.grant)[0]??``,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,grant:{[t.target.value]:Object.values(e.grant)[0]??1}}:e)}})})]}),(0,l.jsxs)(`label`,{children:[`Количество`,(0,l.jsx)(`input`,{"aria-label":`Количество товара ${n+1}`,type:`number`,min:`1`,step:`1`,value:Object.values(t.grant)[0]??1,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,grant:{[Object.keys(e.grant)[0]??`coins`]:Number(t.target.value)}}:e)}})})]}),(0,l.jsxs)(`label`,{className:`checkbox-options`,children:[(0,l.jsx)(`input`,{type:`checkbox`,checked:t.consumable,onChange:t=>r({payments:{...e.payments,products:e.payments.products.map((e,r)=>r===n?{...e,consumable:t.target.checked}:e)}})}),`Расходуемый`]}),(0,l.jsx)(i,{type:`button`,tone:`ghost`,"aria-label":`Удалить товар ${n+1}`,onClick:()=>r({payments:{...e.payments,products:e.payments.products.filter((e,t)=>t!==n)}}),children:`Удалить`})]},n)),(0,l.jsx)(i,{type:`button`,onClick:()=>r({payments:{...e.payments,products:[...e.payments.products,{id:``,consumable:!0,grant:{coins:1}}]}}),children:`Добавить товар`})]}),(0,l.jsxs)(`label`,{children:[`Таблицы лидеров`,(0,l.jsx)(`input`,{"aria-label":`Таблицы лидеров`,placeholder:`Например, bestScore`,value:e.leaderboards.join(`, `),onChange:e=>r({leaderboards:e.target.value.split(`,`).map(e=>e.trim())})}),(0,l.jsx)(`small`,{children:`Идентификаторы через запятую. Оставьте пустым, если рейтинги не нужны.`})]}),(0,l.jsx)(`small`,{children:`SDK, полноэкранный режим и жизненный цикл игры входят в интеграцию. Реклама и покупки включаются только по вашему выбору.`})]})}export{c as i,u as n,d as r,f as t};
@@ -1,2 +1,2 @@
1
- import{n as e,o as t,r as n,t as r}from"./IconBase.es-Bvh5HoVq.js";import{a as i,n as a,o,t as s}from"./ui-CVc6Nw0y.js";import{t as c}from"./CheckCircle.es-CAQfdit1.js";import{t as ee}from"./DownloadSimple.es-CwuHLlwX.js";import{t as l}from"./ImageSquare.es-DXp8f5Py.js";import{n as u,t as d}from"./Square.es-POdDsCpj.js";import{i as f,n as te,r as p,t as m}from"./YandexConfigFields-B4ZNwcRp.js";import{t as h}from"./UploadSimple.es-DIzZ2Med.js";import{t as g}from"./WarningCircle.es-DeosDn7W.js";import{O as _,S as v,k as y}from"./index-IRbQKmkO.js";var b=t(n(),1),x=new Map([[`bold`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z`}))],[`duotone`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M184,80V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H176A8,8,0,0,1,184,80Z`,opacity:`0.2`}),b.createElement(`path`,{d:`M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z`}))],[`fill`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M192,136v72a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64h72a8,8,0,0,1,0,16H48V208H176V136a8,8,0,0,1,16,0Zm32-96a8,8,0,0,0-8-8H152a8,8,0,0,0-5.66,13.66L172.69,72l-42.35,42.34a8,8,0,0,0,11.32,11.32L184,83.31l26.34,26.35A8,8,0,0,0,224,104Z`}))],[`light`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M222,104a6,6,0,0,1-12,0V54.49l-69.75,69.75a6,6,0,0,1-8.48-8.48L201.51,46H152a6,6,0,0,1,0-12h64a6,6,0,0,1,6,6Zm-38,26a6,6,0,0,0-6,6v72a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V80a2,2,0,0,1,2-2h72a6,6,0,0,0,0-12H48A14,14,0,0,0,34,80V208a14,14,0,0,0,14,14H176a14,14,0,0,0,14-14V136A6,6,0,0,0,184,130Z`}))],[`regular`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z`}))],[`thin`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M220,104a4,4,0,0,1-8,0V49.66l-73.16,73.17a4,4,0,0,1-5.66-5.66L206.34,44H152a4,4,0,0,1,0-8h64a4,4,0,0,1,4,4Zm-36,28a4,4,0,0,0-4,4v72a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4h72a4,4,0,0,0,0-8H48A12,12,0,0,0,36,80V208a12,12,0,0,0,12,12H176a12,12,0,0,0,12-12V136A4,4,0,0,0,184,132Z`}))]]),S=new Map([[`bold`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,52H182.42L170,33.34A12,12,0,0,0,160,28H96a12,12,0,0,0-10,5.34L73.57,52H48A28,28,0,0,0,20,80V192a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V80A28,28,0,0,0,208,52Zm4,140a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4H80a12,12,0,0,0,10-5.34L102.42,52h51.15L166,70.66A12,12,0,0,0,176,76h32a4,4,0,0,1,4,4ZM128,84a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,84Zm0,72a24,24,0,1,1,24-24A24,24,0,0,1,128,156Z`}))],[`duotone`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,64H176L160,40H96L80,64H48A16,16,0,0,0,32,80V192a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V80A16,16,0,0,0,208,64ZM128,168a36,36,0,1,1,36-36A36,36,0,0,1,128,168Z`,opacity:`0.2`}),b.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z`}))],[`fill`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm-44,76a36,36,0,1,1-36-36A36,36,0,0,1,164,132Z`}))],[`light`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,58H179.21L165,36.67A6,6,0,0,0,160,34H96a6,6,0,0,0-5,2.67L76.78,58H48A22,22,0,0,0,26,80V192a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V80A22,22,0,0,0,208,58Zm10,134a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V80A10,10,0,0,1,48,70H80a6,6,0,0,0,5-2.67L99.21,46h57.57L171,67.33A6,6,0,0,0,176,70h32a10,10,0,0,1,10,10ZM128,90a42,42,0,1,0,42,42A42,42,0,0,0,128,90Zm0,72a30,30,0,1,1,30-30A30,30,0,0,1,128,162Z`}))],[`regular`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z`}))],[`thin`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,60H178.13L163.32,37.78A4,4,0,0,0,160,36H96a4,4,0,0,0-3.32,1.78L77.85,60H48A20,20,0,0,0,28,80V192a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V80A20,20,0,0,0,208,60Zm12,132a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V80A12,12,0,0,1,48,68H80a4,4,0,0,0,3.33-1.78L98.13,44h59.72l14.82,22.22A4,4,0,0,0,176,68h32a12,12,0,0,1,12,12ZM128,92a40,40,0,1,0,40,40A40,40,0,0,0,128,92Zm0,72a32,32,0,1,1,32-32A32,32,0,0,1,128,164Z`}))]]),C=b.forwardRef((e,t)=>b.createElement(r,{ref:t,...e,weights:x}));C.displayName=`ArrowSquareOutIcon`;var w=C,T=b.forwardRef((e,t)=>b.createElement(r,{ref:t,...e,weights:S}));T.displayName=`CameraIcon`;var E=T,D=e();function O(e){if(e.size>10485760)return`Изображение должно быть не больше 10 МБ.`;if(![`image/png`,`image/jpeg`,`image/webp`].includes(e.type))return`Выберите PNG, JPEG или WebP.`;if(!e.size)return`Выбран пустой файл.`}function k(e,t){return`/api/v1/projects/${encodeURIComponent(e)}/publication/materials/${encodeURIComponent(t)}/file`}function ne({projectId:e,buildId:t,disabled:n,reviewed:r,refreshToken:i,onBusyChange:c}){let[u,d]=(0,b.useState)([]),[f,te]=(0,b.useState)(`icon`),[p,m]=(0,b.useState)(null),[g,v]=(0,b.useState)(``),[x,S]=(0,b.useState)(),[C,w]=(0,b.useState)(``),[T,ne]=(0,b.useState)(!0),[A,j]=(0,b.useState)(new Set),M=(0,b.useRef)(null),N=(0,b.useRef)(null),P=(0,b.useRef)(!0),F=`/projects/${e}/publication/materials`;(0,b.useEffect)(()=>(c(!!g),()=>c(!1)),[g,c]),(0,b.useEffect)(()=>(P.current=!0,()=>{P.current=!1,M.current?.abort()}),[]),(0,b.useEffect)(()=>{let e=!1;return _(F).then(t=>{e||d(t.materials)}).catch(t=>{e||w(y(t))}).finally(()=>{e||ne(!1)}),()=>{e=!0}},[F,i]);let I=e=>d(t=>[e,...t.filter(t=>t.id!==e.id)]),L=e=>{if(e.preventDefault(),!p||g||n||r)return;let i=O(p);if(i){w(i);return}w(``),v(`Загружаем изображение`),S(void 0);let a=new FormData;a.append(`kind`,f),t&&a.append(`buildId`,t),a.append(`file`,p);let o=new XMLHttpRequest;M.current=o,o.open(`POST`,`/api/v1${F}`),o.upload.onprogress=e=>{P.current&&e.lengthComputable&&S(e.loaded/e.total*100)},o.upload.onload=()=>{P.current&&(v(`Проверяем изображение`),S(void 0))};let s=()=>{M.current=null,P.current&&(v(``),S(void 0))};o.onabort=()=>s(),o.onerror=()=>{P.current&&w(`Не удалось загрузить изображение. Файл сохранён в форме — попробуйте ещё раз.`),s()},o.onload=()=>{try{let e=JSON.parse(o.responseText);if(o.status<200||o.status>=300)throw Error(e.message??`Не удалось принять изображение`);P.current&&(I(e),m(null),N.current&&(N.current.value=``))}catch(e){P.current&&w(y(e))}finally{s()}},o.send(a)},R=async(e,t)=>{if(!(g||n||r)){w(``),v(e);try{await t()}catch(e){P.current&&w(y(e))}finally{P.current&&v(``)}}};return(0,D.jsxs)(`section`,{className:`panel publication-materials`,"data-testid":`publication-materials`,children:[(0,D.jsxs)(`div`,{className:`row-between`,children:[(0,D.jsx)(`h2`,{children:`Иконка и скриншоты`}),(0,D.jsxs)(`span`,{className:`muted`,children:[u.length,` / 10`]})]}),(0,D.jsx)(`p`,{className:`muted`,children:`Загрузите собственную иконку и кадры игры. Скриншот из превью снимается в отдельной фоновой вкладке Chrome.`}),r&&(0,D.jsx)(s,{type:`info`,children:`Черновик уже подготовлен к проверке. Остановите публикацию, чтобы изменить материалы и проверить их заново.`}),C&&(0,D.jsx)(s,{children:C}),T&&(0,D.jsx)(o,{label:`Загружаем материалы`}),g&&(0,D.jsxs)(`div`,{className:`publication-material-progress`,children:[(0,D.jsx)(o,{label:g,value:x}),M.current&&(0,D.jsx)(a,{tone:`ghost`,onClick:()=>M.current?.abort(),children:`Отменить загрузку`})]}),(0,D.jsxs)(`form`,{onSubmit:L,className:`publication-material-form`,children:[(0,D.jsxs)(`div`,{className:`form-columns`,children:[(0,D.jsxs)(`label`,{children:[`Назначение`,(0,D.jsxs)(`select`,{"data-testid":`publication-material-kind`,value:f,disabled:n||r||!!g,onChange:e=>te(e.target.value),children:[(0,D.jsx)(`option`,{value:`icon`,children:`Иконка`}),(0,D.jsx)(`option`,{value:`screenshot`,children:`Скриншот`})]})]}),(0,D.jsxs)(`label`,{children:[`Изображение`,(0,D.jsx)(`input`,{ref:N,"data-testid":`publication-material-file`,type:`file`,accept:`image/png,image/jpeg,image/webp`,disabled:n||r||!!g,onChange:e=>{m(e.target.files?.[0]??null),w(``)}})]})]}),(0,D.jsx)(`small`,{children:`PNG, JPEG или WebP · до 10 МБ · до 4096 × 4096. Итоговые требования иконки и скриншотов проверяются в консоли платформы.`}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[(0,D.jsxs)(a,{type:`submit`,"data-testid":`publication-material-upload`,disabled:!p||n||r||!!g||u.length>=10,children:[(0,D.jsx)(h,{size:16}),`Загрузить изображение`]}),(0,D.jsxs)(a,{type:`button`,"data-testid":`publication-material-capture`,disabled:!t||n||r||!!g||u.length>=10,onClick:()=>void R(`Снимаем кадр из игры в Chrome`,async()=>{let e=await _(`${F}/capture`,`POST`,{buildId:t});P.current&&I(e)}),children:[(0,D.jsx)(E,{size:16}),`Кадр из игры`]})]}),!t&&(0,D.jsx)(`small`,{children:`Для снимка из игры сначала выберите готовую сборку.`})]}),(0,D.jsx)(`div`,{className:`publication-material-grid`,children:u.map(i=>(0,D.jsxs)(`article`,{"data-testid":`publication-material-card`,"data-kind":i.kind,"data-source":i.source,children:[A.has(i.id)?(0,D.jsxs)(`div`,{className:`publication-material-fallback`,children:[(0,D.jsx)(l,{size:28}),(0,D.jsx)(`span`,{children:`Не удалось открыть изображение`})]}):(0,D.jsx)(`a`,{href:k(e,i.id),target:`_blank`,rel:`noopener noreferrer`,"aria-label":`Открыть ${i.filename}`,children:(0,D.jsx)(`img`,{"data-testid":`publication-material-image`,src:k(e,i.id),alt:i.kind===`icon`?`Иконка игры`:`Скриншот: ${i.filename}`,loading:`lazy`,onError:()=>j(e=>new Set(e).add(i.id))})}),(0,D.jsxs)(`div`,{className:`publication-material-info`,children:[(0,D.jsx)(`strong`,{children:i.kind===`icon`?`Иконка`:`Скриншот`}),(0,D.jsx)(`span`,{title:i.filename,children:i.filename}),(0,D.jsxs)(`small`,{children:[i.width,` × `,i.height,` · `,(i.bytes/1024).toFixed(0),` КБ`]}),(0,D.jsxs)(`small`,{children:[i.source===`preview`?`Снято из превью игры`:`Загружено вами`,i.buildId&&i.buildId!==t?` · другая сборка`:``]}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[(0,D.jsxs)(`a`,{href:k(e,i.id),className:`button button-ghost`,download:i.filename,children:[(0,D.jsx)(ee,{size:14}),`Скачать`]}),(0,D.jsx)(a,{tone:`ghost`,disabled:n||r||!!g,"aria-label":`Удалить ${i.filename}`,onClick:()=>void R(`Удаляем материал`,async()=>{await _(`${F}/${encodeURIComponent(i.id)}`,`DELETE`),P.current&&d(e=>e.filter(e=>e.id!==i.id))}),children:`Удалить`})]})]})]},i.id))}),!T&&!u.length&&(0,D.jsx)(`p`,{className:`muted`,children:`Материалов пока нет. Здесь появятся только ваши файлы и реальные кадры игры.`})]})}var A={preparing:`Подготовка`,draft:`Черновик`,materials:`Материалы`,upload:`Загрузка сборки`,testing:`Проверка игры`,review:`Готово к проверке`,moderation:`Модерация`},j={running:`Помощник работает`,paused:`Приостановлено`,stopped:`Остановлено`,interrupted:`Нужно возобновить`,waiting_user:`Нужно ваше действие`,ready_for_review:`Проверьте черновик`,submitted:`Отправлено на модерацию`,failed:`Не удалось завершить`};function M(e){try{let t=new URL(e??``);return t.protocol===`https:`&&!t.username&&!t.password?t.href:void 0}catch{return}}var N={open:`Открыта страница`,read:`Проверено содержимое страницы`,click:`Выполнено действие в консоли`,fill:`Заполнены данные`,upload:`Сборка загружена`,upload_confirmation:`Загрузка подтверждена`,console_validation:`Проверка консоли`,moderation_click:`Запрошена модерация`,moderation_confirmation:`Модерация подтверждена`,agent_report:`Результат работы`};function P(e){if(e.action!==`agent_report`)return e.detail;try{let t=JSON.parse(e.detail);return typeof t.summary==`string`?[t.summary,...Array.isArray(t.checks)?t.checks.map(e=>`${e.passed?`✓`:`!`} ${e.name}: ${e.evidence}`):[]].join(`
2
- `):e.detail}catch{return e.detail}}function F(e){return e?.status===`ready_for_review`}function I({project:e,events:t,onRefresh:n,onEngine:r,engineBusy:l}){let[h,x]=(0,b.useState)(e.yandexGames??te()),[S,C]=(0,b.useState)([]),[T,E]=(0,b.useState)(``),[O,k]=(0,b.useState)(),[I,L]=(0,b.useState)([]),[R,z]=(0,b.useState)({id:`chrome-mcp`,endpoint:`http://127.0.0.1:12306/mcp`,enabled:!0}),[B,re]=(0,b.useState)(),[V,H]=(0,b.useState)({title:e.name,description:e.description,instructions:``,locales:e.yandexGames?.languages??[`ru`,`en`]}),[U,ie]=(0,b.useState)(``),[W,ae]=(0,b.useState)(!1),[oe,G]=(0,b.useState)(``),[se,ce]=(0,b.useState)(``),[K,le]=(0,b.useState)(!1),[ue,de]=(0,b.useState)(),[fe,pe]=(0,b.useState)(!0),me=(0,b.useRef)(Date.now()),q=(0,b.useRef)(!0),J=t.filter(t=>t.projectId===e.id&&[`publication.updated`,`publication.materials`,`engine.completed`].includes(t.type)).at(-1),Y=J?.id;(0,b.useEffect)(()=>(q.current=!0,()=>{q.current=!1}),[]),(0,b.useEffect)(()=>{let t=!1;return pe(!0),Promise.all([_(`/projects/${e.id}/builds`),_(`/projects/${e.id}/publication`),_(`/browser/config`),_(`/projects/${e.id}/yandex-games/config`)]).then(([e,n,r,i])=>{t||(C(e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))),E(t=>t||e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))[0]?.id||``),k(n.run),L(n.runs),z(r),x(i.config),de(i.configHash),n.run&&H({...n.run.metadata,draftUrl:n.run.draftUrl??n.run.metadata.draftUrl}))}).catch(e=>{t||G(y(e))}).finally(()=>{t||pe(!1)}),()=>{t=!0}},[e.id]),(0,b.useEffect)(()=>{if(!Y)return;let t=!1;return Promise.all([_(`/projects/${e.id}/builds`),_(`/projects/${e.id}/publication`)]).then(([e,n])=>{if(t)return;C(e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));let r=J?.type===`engine.completed`&&Date.parse(J.createdAt)>=me.current?J.payload:void 0;E(t=>r?.ok&&e.some(e=>e.id===r.buildId)?r.buildId:t||e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))[0]?.id||``),k(n.run),L(n.runs)}).catch(e=>{t||G(y(e))}),()=>{t=!0}},[Y,e.id]);let X=async()=>{let t=await _(`/projects/${e.id}/publication`);q.current&&(k(t.run),L(t.runs))},Z=async(e,t)=>{if(!U){ie(e),G(``),ce(``);try{await t()}catch(e){q.current&&G(y(e))}finally{q.current&&ie(``)}}},he=async t=>{t.preventDefault(),await Z(`Сохраняем настройки SDK`,async()=>{await _(`/projects/${e.id}/yandex-games/config`,`PUT`,p(h));let t=await _(`/projects/${e.id}/yandex-games/config`);await n(),q.current&&(de(t.configHash),le(!1),ce(`Настройки игры сохранены. Соберите новый ZIP, чтобы применить их.`))})},Q=O?.status===`running`,ge=O&&[`paused`,`stopped`,`interrupted`,`waiting_user`,`failed`].includes(O.status),$=S.find(e=>e.id===T),_e=!!$&&!!ue&&$.configHash!==ue,ve=t=>Z(t===`resume`?`Продолжаем публикацию`:t===`pause`?`Приостанавливаем публикацию`:`Останавливаем публикацию`,async()=>{await _(`/projects/${e.id}/publication/control`,`POST`,{action:t,...t===`resume`&&V.draftUrl?{draftUrl:V.draftUrl}:{}}),await X()});return fe?(0,D.jsx)(o,{label:`Загружаем настройки публикации`}):(0,D.jsxs)(`div`,{className:`yandex-view`,"data-testid":`yandex-games-view`,children:[(0,D.jsx)(i,{title:`Яндекс Игры`,description:`SDK, проверенная Web-сборка и публикация через ваш Chrome.`,action:(0,D.jsxs)(`span`,{className:`badge`,children:[e.engine===`html5`?`HTML5`:`Godot`,` · Web`]})}),oe&&(0,D.jsx)(s,{children:oe}),se&&(0,D.jsx)(s,{type:`success`,children:se}),U&&(0,D.jsx)(o,{label:U}),(0,D.jsxs)(`div`,{className:`yandex-layout`,children:[(0,D.jsxs)(`div`,{className:`yandex-main`,children:[(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsxs)(`div`,{className:`row-between`,children:[(0,D.jsx)(`h2`,{children:`Настройки игры`}),(0,D.jsx)(`span`,{className:`muted`,children:`SDK`})]}),(0,D.jsxs)(`form`,{onSubmit:he,children:[(0,D.jsx)(m,{value:h,onChange:e=>{x(e),le(!0)},disabled:!!U||Q}),(0,D.jsx)(`div`,{className:`modal-actions`,children:(0,D.jsx)(a,{type:`submit`,tone:`primary`,"data-testid":`yandex-save-config`,disabled:!!U||W||Q||!h.devices.length||!h.languages.some(Boolean),children:`Сохранить настройки`})})]})]}),(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsxs)(`div`,{className:`row-between`,children:[(0,D.jsx)(`h2`,{children:`Сборка для загрузки`}),(0,D.jsx)(a,{"data-testid":`yandex-build`,busy:!!l,disabled:!!U||W||Q||K,onClick:()=>void r(`export`,`yandex-games`),children:`Собрать ZIP`})]}),l&&(0,D.jsx)(o,{label:l}),S.length?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{children:[`Сборка`,(0,D.jsx)(`select`,{"data-testid":`yandex-build-select`,value:T,onChange:e=>E(e.target.value),children:S.map(e=>(0,D.jsxs)(`option`,{value:e.id,children:[new Date(e.createdAt).toLocaleString(`ru-RU`),` · `,e.validation.ok?`Проверена`:`Есть замечания`]},e.id))})]}),$&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:`yandex-build-result`,"data-testid":`yandex-build-result`,children:[$.validation.ok?(0,D.jsx)(c,{size:20}):(0,D.jsx)(g,{size:20}),(0,D.jsx)(`strong`,{children:$.validation.ok?`Сборка прошла проверку`:`Исправьте ошибки сборки`}),(0,D.jsxs)(`span`,{children:[$.validation.files,` файлов · `,($.validation.bytes/1024/1024).toFixed(1),` МБ`]})]}),(0,D.jsx)(`ul`,{className:`yandex-issues`,children:$.validation.issues.map((e,t)=>(0,D.jsxs)(`li`,{"data-severity":e.severity,children:[e.message,e.file&&(0,D.jsx)(`small`,{children:e.file})]},t))}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[(0,D.jsxs)(`a`,{className:`button button-default`,"data-testid":`yandex-download`,href:`/api/v1/projects/${e.id}/builds/${$.id}/download`,download:!0,children:[(0,D.jsx)(ee,{size:17}),`Скачать ZIP`]}),(0,D.jsx)(a,{"data-testid":`yandex-validate`,disabled:!!U,onClick:()=>void Z(`Проверяем ZIP`,async()=>{let t=await _(`/projects/${e.id}/builds/${$.id}/validate`,`POST`,{});q.current&&C(e=>e.map(e=>e.id===$.id?{...e,validation:t}:e))}),children:`Проверить ещё раз`})]})]})]}):(0,D.jsx)(`p`,{className:`muted`,children:`Соберите игру. Здесь появятся ZIP и результаты проверки файлов.`})]}),(0,D.jsx)(ne,{projectId:e.id,buildId:$?.validation.ok&&!_e?$.id:void 0,disabled:Q||!!U,reviewed:O?.status===`ready_for_review`,refreshToken:Y,onBusyChange:ae}),(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsx)(`h2`,{children:`Карточка игры`}),(K||_e)&&(0,D.jsx)(s,{type:`info`,children:`Настройки изменились. Сохраните их и соберите новый ZIP перед публикацией.`}),(0,D.jsx)(`form`,{onSubmit:t=>{t.preventDefault(),Z(`Запускаем помощника публикации`,async()=>{await _(`/projects/${e.id}/publication/start`,`POST`,{buildId:T,metadata:{...V,locales:V.locales.map(e=>e.trim()).filter(Boolean),tags:V.tags?.map(e=>e.trim()).filter(Boolean)}}),await X()})},children:(0,D.jsxs)(`div`,{className:`project-form`,children:[(0,D.jsxs)(`label`,{children:[`Название игры`,(0,D.jsx)(`input`,{required:!0,maxLength:100,value:V.title,onChange:e=>H({...V,title:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Описание`,(0,D.jsx)(`textarea`,{required:!0,rows:3,value:V.description,onChange:e=>H({...V,description:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Как играть`,(0,D.jsx)(`textarea`,{required:!0,rows:3,"data-testid":`publication-instructions`,value:V.instructions,onChange:e=>H({...V,instructions:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Языки карточки`,(0,D.jsx)(`input`,{value:V.locales.join(`, `),onChange:e=>H({...V,locales:e.target.value.split(`,`).map(e=>e.trim())})})]}),(0,D.jsxs)(`label`,{children:[`Существующий черновик `,(0,D.jsx)(`span`,{className:`muted`,children:`· необязательно`}),(0,D.jsx)(`input`,{type:`url`,placeholder:`https://games.yandex.ru/console/…`,value:V.draftUrl??``,onChange:e=>H({...V,draftUrl:e.target.value||void 0})})]}),(0,D.jsxs)(`div`,{className:`form-columns`,children:[(0,D.jsxs)(`label`,{children:[`Жанр`,(0,D.jsx)(`input`,{value:V.genre??``,onChange:e=>H({...V,genre:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Возрастной рейтинг`,(0,D.jsx)(`input`,{value:V.ageRating??``,onChange:e=>H({...V,ageRating:e.target.value})})]})]}),(0,D.jsxs)(`label`,{children:[`Теги`,(0,D.jsx)(`input`,{value:V.tags?.join(`, `)??``,onChange:e=>H({...V,tags:e.target.value.split(`,`).map(e=>e.trim())})})]}),(0,D.jsxs)(a,{type:`submit`,"data-testid":`publication-start`,tone:`primary`,disabled:!!U||Q||!!ge||O?.status===`ready_for_review`||W||K||_e||!$?.validation.ok,children:[(0,D.jsx)(f,{size:16}),`Подготовить публикацию`]}),(0,D.jsx)(`small`,{children:`Помощник подготовит черновик, загрузит сборку и проверит игру. Отправку на модерацию вы запускаете отдельно.`})]})})]})]}),(0,D.jsxs)(`aside`,{className:`yandex-side`,children:[(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsx)(`h2`,{children:`Подключение Chrome`}),(0,D.jsx)(`p`,{className:`muted`,children:`Помощник использует Chrome MCP Bridge и расширение в вашем браузере.`}),(0,D.jsxs)(`label`,{children:[`Адрес локального bridge`,(0,D.jsx)(`input`,{"data-testid":`chrome-bridge-endpoint`,value:R.endpoint,onChange:e=>z({...R,endpoint:e.target.value})})]}),(0,D.jsxs)(`label`,{className:`checkbox-options`,children:[(0,D.jsx)(`input`,{type:`checkbox`,checked:R.enabled,onChange:e=>z({...R,enabled:e.target.checked})}),`Использовать Chrome MCP`]}),(0,D.jsx)(a,{"data-testid":`chrome-connect`,disabled:!!U||Q,onClick:()=>void Z(`Подключаем Chrome и проверяем расширение`,async()=>{await _(`/browser/config`,`PUT`,R);let e=await _(`/browser/diagnostics`,`POST`,{});q.current&&re(e)}),children:`Сохранить и проверить`}),B&&(0,D.jsxs)(`div`,{className:`yandex-diagnostic`,"data-testid":`chrome-diagnostic`,"data-ready":B.available,children:[(0,D.jsx)(`strong`,{children:B.available?`Chrome подключён`:`Подключение требует внимания`}),(0,D.jsx)(`p`,{children:B.message}),(0,D.jsxs)(`ul`,{children:[(0,D.jsxs)(`li`,{children:[`Bridge: `,B.bridgeConnected?`доступен`:`не подключён`]}),(0,D.jsxs)(`li`,{children:[`Расширение: `,B.extensionReady?`готово`:`не готово`]})]}),M(B.setupUrl)&&(0,D.jsxs)(`a`,{href:M(B.setupUrl),target:`_blank`,rel:`noopener noreferrer`,children:[`Настроить расширение `,(0,D.jsx)(w,{size:14})]})]})]}),(0,D.jsxs)(`section`,{className:`panel publication-journal`,"data-testid":`publication-journal`,"data-status":O?.status??`idle`,children:[(0,D.jsx)(`div`,{className:`eyebrow`,children:`ПУБЛИКАЦИЯ`}),(0,D.jsx)(`h2`,{"aria-live":`polite`,children:O?j[O.status]:`Готовы к первому черновику`}),O?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`p`,{children:A[O.stage]}),Q&&(0,D.jsx)(o,{label:A[O.stage]}),` `,O.userAction&&[`waiting_user`,`interrupted`].includes(O.status)&&(0,D.jsx)(s,{children:(0,D.jsx)(v,{id:`publication:${O.id}:user`,children:O.userAction})}),O.error&&(0,D.jsx)(s,{children:O.error}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[Q&&(0,D.jsxs)(a,{"data-testid":`publication-pause`,disabled:!!U,onClick:()=>void ve(`pause`),children:[(0,D.jsx)(u,{size:15}),`Пауза`]}),ge&&(0,D.jsxs)(a,{"data-testid":`publication-resume`,disabled:!!U,onClick:()=>void ve(`resume`),children:[(0,D.jsx)(f,{size:15}),O.status===`waiting_user`?`Я выполнил действие`:`Продолжить`]}),(Q||ge||O.status===`ready_for_review`)&&(0,D.jsxs)(a,{"data-testid":`publication-stop`,disabled:!!U,onClick:()=>void ve(`stop`),children:[(0,D.jsx)(d,{size:15}),`Остановить`]})]}),M(O.draftUrl)&&(0,D.jsxs)(`a`,{href:M(O.draftUrl),target:`_blank`,rel:`noopener noreferrer`,children:[`Открыть черновик `,(0,D.jsx)(w,{size:14})]}),(0,D.jsx)(`ol`,{className:`publication-evidence`,children:O.evidence.map((e,t)=>(0,D.jsxs)(`li`,{children:[(0,D.jsx)(`span`,{className:`publication-dot`}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`strong`,{children:N[e.action]??e.action}),(0,D.jsx)(`p`,{children:(0,D.jsx)(v,{id:`publication:${O.id}:${t}`,children:P(e)})}),(0,D.jsx)(`small`,{children:new Date(e.at).toLocaleTimeString(`ru-RU`)})]})]},`${e.at}:${t}`))}),F(O)&&(0,D.jsxs)(`div`,{className:`publication-submit`,children:[(0,D.jsx)(`p`,{children:`Проверьте карточку, материалы и игру в консоли. Это отдельное действие отправит текущий черновик на модерацию.`}),(0,D.jsx)(a,{"data-testid":`publication-submit`,tone:`primary`,disabled:!!U||W,onClick:()=>void Z(`Отправляем на модерацию`,async()=>{await _(`/projects/${e.id}/publication/submit`,`POST`,{runId:O.id}),await X()}),children:`Отправить на модерацию`})]})]}):(0,D.jsx)(`p`,{className:`muted`,children:`Сначала проверьте сборку и подключите Chrome. Вход в аккаунт и CAPTCHA выполняются вами в браузере.`}),I.length>1&&(0,D.jsxs)(`details`,{children:[(0,D.jsxs)(`summary`,{children:[`Предыдущие попытки · `,I.length-1]}),I.filter(e=>e.id!==O?.id).map(e=>(0,D.jsxs)(`p`,{children:[new Date(e.createdAt).toLocaleString(`ru-RU`),` · `,j[e.status]]},e.id))]})]})]})]})]})}export{I as YandexGamesView};
1
+ import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CdVFa8IP.js";import{t as i}from"./CheckCircle.es-D5B3hdvz.js";import{a,n as o,o as s,t as c}from"./ui-wHE_yBK0.js";import{t as ee}from"./DownloadSimple.es-DwOWFbs2.js";import{t as l}from"./ImageSquare.es-DxCFt99_.js";import{n as u,t as d}from"./Square.es-BjNN9Ypc.js";import{i as f,n as te,r as p,t as m}from"./YandexConfigFields-DDL22Bfw.js";import{t as h}from"./UploadSimple.es-DxIuxpCC.js";import{t as g}from"./WarningCircle.es-D63H8cL9.js";import{M as _,S as v,j as y}from"./index-sNciOZYG.js";var b=t(n(),1),x=new Map([[`bold`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M228,104a12,12,0,0,1-24,0V69l-59.51,59.51a12,12,0,0,1-17-17L187,52H152a12,12,0,0,1,0-24h64a12,12,0,0,1,12,12Zm-44,24a12,12,0,0,0-12,12v64H52V84h64a12,12,0,0,0,0-24H48A20,20,0,0,0,28,80V208a20,20,0,0,0,20,20H176a20,20,0,0,0,20-20V140A12,12,0,0,0,184,128Z`}))],[`duotone`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M184,80V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H176A8,8,0,0,1,184,80Z`,opacity:`0.2`}),b.createElement(`path`,{d:`M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z`}))],[`fill`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M192,136v72a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64h72a8,8,0,0,1,0,16H48V208H176V136a8,8,0,0,1,16,0Zm32-96a8,8,0,0,0-8-8H152a8,8,0,0,0-5.66,13.66L172.69,72l-42.35,42.34a8,8,0,0,0,11.32,11.32L184,83.31l26.34,26.35A8,8,0,0,0,224,104Z`}))],[`light`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M222,104a6,6,0,0,1-12,0V54.49l-69.75,69.75a6,6,0,0,1-8.48-8.48L201.51,46H152a6,6,0,0,1,0-12h64a6,6,0,0,1,6,6Zm-38,26a6,6,0,0,0-6,6v72a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V80a2,2,0,0,1,2-2h72a6,6,0,0,0,0-12H48A14,14,0,0,0,34,80V208a14,14,0,0,0,14,14H176a14,14,0,0,0,14-14V136A6,6,0,0,0,184,130Z`}))],[`regular`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z`}))],[`thin`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M220,104a4,4,0,0,1-8,0V49.66l-73.16,73.17a4,4,0,0,1-5.66-5.66L206.34,44H152a4,4,0,0,1,0-8h64a4,4,0,0,1,4,4Zm-36,28a4,4,0,0,0-4,4v72a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4h72a4,4,0,0,0,0-8H48A12,12,0,0,0,36,80V208a12,12,0,0,0,12,12H176a12,12,0,0,0,12-12V136A4,4,0,0,0,184,132Z`}))]]),S=new Map([[`bold`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,52H182.42L170,33.34A12,12,0,0,0,160,28H96a12,12,0,0,0-10,5.34L73.57,52H48A28,28,0,0,0,20,80V192a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V80A28,28,0,0,0,208,52Zm4,140a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4H80a12,12,0,0,0,10-5.34L102.42,52h51.15L166,70.66A12,12,0,0,0,176,76h32a4,4,0,0,1,4,4ZM128,84a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,84Zm0,72a24,24,0,1,1,24-24A24,24,0,0,1,128,156Z`}))],[`duotone`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,64H176L160,40H96L80,64H48A16,16,0,0,0,32,80V192a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V80A16,16,0,0,0,208,64ZM128,168a36,36,0,1,1,36-36A36,36,0,0,1,128,168Z`,opacity:`0.2`}),b.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z`}))],[`fill`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm-44,76a36,36,0,1,1-36-36A36,36,0,0,1,164,132Z`}))],[`light`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,58H179.21L165,36.67A6,6,0,0,0,160,34H96a6,6,0,0,0-5,2.67L76.78,58H48A22,22,0,0,0,26,80V192a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V80A22,22,0,0,0,208,58Zm10,134a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V80A10,10,0,0,1,48,70H80a6,6,0,0,0,5-2.67L99.21,46h57.57L171,67.33A6,6,0,0,0,176,70h32a10,10,0,0,1,10,10ZM128,90a42,42,0,1,0,42,42A42,42,0,0,0,128,90Zm0,72a30,30,0,1,1,30-30A30,30,0,0,1,128,162Z`}))],[`regular`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z`}))],[`thin`,b.createElement(b.Fragment,null,b.createElement(`path`,{d:`M208,60H178.13L163.32,37.78A4,4,0,0,0,160,36H96a4,4,0,0,0-3.32,1.78L77.85,60H48A20,20,0,0,0,28,80V192a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V80A20,20,0,0,0,208,60Zm12,132a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V80A12,12,0,0,1,48,68H80a4,4,0,0,0,3.33-1.78L98.13,44h59.72l14.82,22.22A4,4,0,0,0,176,68h32a12,12,0,0,1,12,12ZM128,92a40,40,0,1,0,40,40A40,40,0,0,0,128,92Zm0,72a32,32,0,1,1,32-32A32,32,0,0,1,128,164Z`}))]]),C=b.forwardRef((t,n)=>b.createElement(e,{ref:n,...t,weights:x}));C.displayName=`ArrowSquareOutIcon`;var w=C,T=b.forwardRef((t,n)=>b.createElement(e,{ref:n,...t,weights:S}));T.displayName=`CameraIcon`;var E=T,D=r();function O(e){if(e.size>10485760)return`Изображение должно быть не больше 10 МБ.`;if(![`image/png`,`image/jpeg`,`image/webp`].includes(e.type))return`Выберите PNG, JPEG или WebP.`;if(!e.size)return`Выбран пустой файл.`}function k(e,t){return`/api/v1/projects/${encodeURIComponent(e)}/publication/materials/${encodeURIComponent(t)}/file`}function ne({projectId:e,buildId:t,disabled:n,reviewed:r,refreshToken:i,onBusyChange:a}){let[u,d]=(0,b.useState)([]),[f,te]=(0,b.useState)(`icon`),[p,m]=(0,b.useState)(null),[g,v]=(0,b.useState)(``),[x,S]=(0,b.useState)(),[C,w]=(0,b.useState)(``),[T,ne]=(0,b.useState)(!0),[A,j]=(0,b.useState)(new Set),M=(0,b.useRef)(null),N=(0,b.useRef)(null),P=(0,b.useRef)(!0),F=`/projects/${e}/publication/materials`;(0,b.useEffect)(()=>(a(!!g),()=>a(!1)),[g,a]),(0,b.useEffect)(()=>(P.current=!0,()=>{P.current=!1,M.current?.abort()}),[]),(0,b.useEffect)(()=>{let e=!1;return y(F).then(t=>{e||d(t.materials)}).catch(t=>{e||w(_(t))}).finally(()=>{e||ne(!1)}),()=>{e=!0}},[F,i]);let I=e=>d(t=>[e,...t.filter(t=>t.id!==e.id)]),L=e=>{if(e.preventDefault(),!p||g||n||r)return;let i=O(p);if(i){w(i);return}w(``),v(`Загружаем изображение`),S(void 0);let a=new FormData;a.append(`kind`,f),t&&a.append(`buildId`,t),a.append(`file`,p);let o=new XMLHttpRequest;M.current=o,o.open(`POST`,`/api/v1${F}`),o.upload.onprogress=e=>{P.current&&e.lengthComputable&&S(e.loaded/e.total*100)},o.upload.onload=()=>{P.current&&(v(`Проверяем изображение`),S(void 0))};let s=()=>{M.current=null,P.current&&(v(``),S(void 0))};o.onabort=()=>s(),o.onerror=()=>{P.current&&w(`Не удалось загрузить изображение. Файл сохранён в форме — попробуйте ещё раз.`),s()},o.onload=()=>{try{let e=JSON.parse(o.responseText);if(o.status<200||o.status>=300)throw Error(e.message??`Не удалось принять изображение`);P.current&&(I(e),m(null),N.current&&(N.current.value=``))}catch(e){P.current&&w(_(e))}finally{s()}},o.send(a)},R=async(e,t)=>{if(!(g||n||r)){w(``),v(e);try{await t()}catch(e){P.current&&w(_(e))}finally{P.current&&v(``)}}};return(0,D.jsxs)(`section`,{className:`panel publication-materials`,"data-testid":`publication-materials`,children:[(0,D.jsxs)(`div`,{className:`row-between`,children:[(0,D.jsx)(`h2`,{children:`Иконка и скриншоты`}),(0,D.jsxs)(`span`,{className:`muted`,children:[u.length,` / 10`]})]}),(0,D.jsx)(`p`,{className:`muted`,children:`Загрузите собственную иконку и кадры игры. Скриншот из превью снимается в отдельной фоновой вкладке Chrome.`}),r&&(0,D.jsx)(c,{type:`info`,children:`Черновик уже подготовлен к проверке. Остановите публикацию, чтобы изменить материалы и проверить их заново.`}),C&&(0,D.jsx)(c,{children:C}),T&&(0,D.jsx)(s,{label:`Загружаем материалы`}),g&&(0,D.jsxs)(`div`,{className:`publication-material-progress`,children:[(0,D.jsx)(s,{label:g,value:x}),M.current&&(0,D.jsx)(o,{tone:`ghost`,onClick:()=>M.current?.abort(),children:`Отменить загрузку`})]}),(0,D.jsxs)(`form`,{onSubmit:L,className:`publication-material-form`,children:[(0,D.jsxs)(`div`,{className:`form-columns`,children:[(0,D.jsxs)(`label`,{children:[`Назначение`,(0,D.jsxs)(`select`,{"data-testid":`publication-material-kind`,value:f,disabled:n||r||!!g,onChange:e=>te(e.target.value),children:[(0,D.jsx)(`option`,{value:`icon`,children:`Иконка`}),(0,D.jsx)(`option`,{value:`screenshot`,children:`Скриншот`})]})]}),(0,D.jsxs)(`label`,{children:[`Изображение`,(0,D.jsx)(`input`,{ref:N,"data-testid":`publication-material-file`,type:`file`,accept:`image/png,image/jpeg,image/webp`,disabled:n||r||!!g,onChange:e=>{m(e.target.files?.[0]??null),w(``)}})]})]}),(0,D.jsx)(`small`,{children:`PNG, JPEG или WebP · до 10 МБ · до 4096 × 4096. Итоговые требования иконки и скриншотов проверяются в консоли платформы.`}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[(0,D.jsxs)(o,{type:`submit`,"data-testid":`publication-material-upload`,disabled:!p||n||r||!!g||u.length>=10,children:[(0,D.jsx)(h,{size:16}),`Загрузить изображение`]}),(0,D.jsxs)(o,{type:`button`,"data-testid":`publication-material-capture`,disabled:!t||n||r||!!g||u.length>=10,onClick:()=>void R(`Снимаем кадр из игры в Chrome`,async()=>{let e=await y(`${F}/capture`,`POST`,{buildId:t});P.current&&I(e)}),children:[(0,D.jsx)(E,{size:16}),`Кадр из игры`]})]}),!t&&(0,D.jsx)(`small`,{children:`Для снимка из игры сначала выберите готовую сборку.`})]}),(0,D.jsx)(`div`,{className:`publication-material-grid`,children:u.map(i=>(0,D.jsxs)(`article`,{"data-testid":`publication-material-card`,"data-kind":i.kind,"data-source":i.source,children:[A.has(i.id)?(0,D.jsxs)(`div`,{className:`publication-material-fallback`,children:[(0,D.jsx)(l,{size:28}),(0,D.jsx)(`span`,{children:`Не удалось открыть изображение`})]}):(0,D.jsx)(`a`,{href:k(e,i.id),target:`_blank`,rel:`noopener noreferrer`,"aria-label":`Открыть ${i.filename}`,children:(0,D.jsx)(`img`,{"data-testid":`publication-material-image`,src:k(e,i.id),alt:i.kind===`icon`?`Иконка игры`:`Скриншот: ${i.filename}`,loading:`lazy`,onError:()=>j(e=>new Set(e).add(i.id))})}),(0,D.jsxs)(`div`,{className:`publication-material-info`,children:[(0,D.jsx)(`strong`,{children:i.kind===`icon`?`Иконка`:`Скриншот`}),(0,D.jsx)(`span`,{title:i.filename,children:i.filename}),(0,D.jsxs)(`small`,{children:[i.width,` × `,i.height,` · `,(i.bytes/1024).toFixed(0),` КБ`]}),(0,D.jsxs)(`small`,{children:[i.source===`preview`?`Снято из превью игры`:`Загружено вами`,i.buildId&&i.buildId!==t?` · другая сборка`:``]}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[(0,D.jsxs)(`a`,{href:k(e,i.id),className:`button button-ghost`,download:i.filename,children:[(0,D.jsx)(ee,{size:14}),`Скачать`]}),(0,D.jsx)(o,{tone:`ghost`,disabled:n||r||!!g,"aria-label":`Удалить ${i.filename}`,onClick:()=>void R(`Удаляем материал`,async()=>{await y(`${F}/${encodeURIComponent(i.id)}`,`DELETE`),P.current&&d(e=>e.filter(e=>e.id!==i.id))}),children:`Удалить`})]})]})]},i.id))}),!T&&!u.length&&(0,D.jsx)(`p`,{className:`muted`,children:`Материалов пока нет. Здесь появятся только ваши файлы и реальные кадры игры.`})]})}var A={preparing:`Подготовка`,draft:`Черновик`,materials:`Материалы`,upload:`Загрузка сборки`,testing:`Проверка игры`,review:`Готово к проверке`,moderation:`Модерация`},j={running:`Помощник работает`,paused:`Приостановлено`,stopped:`Остановлено`,interrupted:`Нужно возобновить`,waiting_user:`Нужно ваше действие`,ready_for_review:`Проверьте черновик`,submitted:`Отправлено на модерацию`,failed:`Не удалось завершить`};function M(e){try{let t=new URL(e??``);return t.protocol===`https:`&&!t.username&&!t.password?t.href:void 0}catch{return}}var N={open:`Открыта страница`,read:`Проверено содержимое страницы`,click:`Выполнено действие в консоли`,fill:`Заполнены данные`,upload:`Сборка загружена`,upload_confirmation:`Загрузка подтверждена`,console_validation:`Проверка консоли`,moderation_click:`Запрошена модерация`,moderation_confirmation:`Модерация подтверждена`,agent_report:`Результат работы`};function P(e){if(e.action!==`agent_report`)return e.detail;try{let t=JSON.parse(e.detail);return typeof t.summary==`string`?[t.summary,...Array.isArray(t.checks)?t.checks.map(e=>`${e.passed?`✓`:`!`} ${e.name}: ${e.evidence}`):[]].join(`
2
+ `):e.detail}catch{return e.detail}}function F(e){return e?.status===`ready_for_review`}function I({project:e,events:t,onRefresh:n,onEngine:r,engineBusy:l}){let[h,x]=(0,b.useState)(e.yandexGames??te()),[S,C]=(0,b.useState)([]),[T,E]=(0,b.useState)(``),[O,k]=(0,b.useState)(),[I,L]=(0,b.useState)([]),[R,z]=(0,b.useState)({id:`chrome-mcp`,endpoint:`http://127.0.0.1:12306/mcp`,enabled:!0}),[B,re]=(0,b.useState)(),[V,H]=(0,b.useState)({title:e.name,description:e.description,instructions:``,locales:e.yandexGames?.languages??[`ru`,`en`]}),[U,ie]=(0,b.useState)(``),[W,ae]=(0,b.useState)(!1),[oe,G]=(0,b.useState)(``),[se,ce]=(0,b.useState)(``),[K,le]=(0,b.useState)(!1),[ue,de]=(0,b.useState)(),[fe,pe]=(0,b.useState)(!0),me=(0,b.useRef)(Date.now()),q=(0,b.useRef)(!0),J=t.filter(t=>t.projectId===e.id&&[`publication.updated`,`publication.materials`,`engine.completed`].includes(t.type)).at(-1),Y=J?.id;(0,b.useEffect)(()=>(q.current=!0,()=>{q.current=!1}),[]),(0,b.useEffect)(()=>{let t=!1;return pe(!0),Promise.all([y(`/projects/${e.id}/builds`),y(`/projects/${e.id}/publication`),y(`/browser/config`),y(`/projects/${e.id}/yandex-games/config`)]).then(([e,n,r,i])=>{t||(C(e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))),E(t=>t||e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))[0]?.id||``),k(n.run),L(n.runs),z(r),x(i.config),de(i.configHash),n.run&&H({...n.run.metadata,draftUrl:n.run.draftUrl??n.run.metadata.draftUrl}))}).catch(e=>{t||G(_(e))}).finally(()=>{t||pe(!1)}),()=>{t=!0}},[e.id]),(0,b.useEffect)(()=>{if(!Y)return;let t=!1;return Promise.all([y(`/projects/${e.id}/builds`),y(`/projects/${e.id}/publication`)]).then(([e,n])=>{if(t)return;C(e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));let r=J?.type===`engine.completed`&&Date.parse(J.createdAt)>=me.current?J.payload:void 0;E(t=>r?.ok&&e.some(e=>e.id===r.buildId)?r.buildId:t||e.filter(e=>e.platform===`yandex-games`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt))[0]?.id||``),k(n.run),L(n.runs)}).catch(e=>{t||G(_(e))}),()=>{t=!0}},[Y,e.id]);let he=async()=>{let t=await y(`/projects/${e.id}/publication`);q.current&&(k(t.run),L(t.runs))},X=async(e,t)=>{if(!U){ie(e),G(``),ce(``);try{await t()}catch(e){q.current&&G(_(e))}finally{q.current&&ie(``)}}},ge=async t=>{t.preventDefault(),await X(`Сохраняем настройки SDK`,async()=>{await y(`/projects/${e.id}/yandex-games/config`,`PUT`,p(h));let t=await y(`/projects/${e.id}/yandex-games/config`);await n(),q.current&&(de(t.configHash),le(!1),ce(`Настройки игры сохранены. Соберите новый ZIP, чтобы применить их.`))})},Z=O?.status===`running`,_e=O&&[`paused`,`stopped`,`interrupted`,`waiting_user`,`failed`].includes(O.status),Q=S.find(e=>e.id===T),ve=!!Q&&!!ue&&Q.configHash!==ue,$=t=>X(t===`resume`?`Продолжаем публикацию`:t===`pause`?`Приостанавливаем публикацию`:`Останавливаем публикацию`,async()=>{await y(`/projects/${e.id}/publication/control`,`POST`,{action:t,...t===`resume`&&V.draftUrl?{draftUrl:V.draftUrl}:{}}),await he()});return fe?(0,D.jsx)(s,{label:`Загружаем настройки публикации`}):(0,D.jsxs)(`div`,{className:`yandex-view`,"data-testid":`yandex-games-view`,children:[(0,D.jsx)(a,{title:`Яндекс Игры`,description:`SDK, проверенная Web-сборка и публикация через ваш Chrome.`,action:(0,D.jsxs)(`span`,{className:`badge`,children:[e.engine===`html5`?`HTML5`:`Godot`,` · Web`]})}),oe&&(0,D.jsx)(c,{children:oe}),se&&(0,D.jsx)(c,{type:`success`,children:se}),U&&(0,D.jsx)(s,{label:U}),(0,D.jsxs)(`div`,{className:`yandex-layout`,children:[(0,D.jsxs)(`div`,{className:`yandex-main`,children:[(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsxs)(`div`,{className:`row-between`,children:[(0,D.jsx)(`h2`,{children:`Настройки игры`}),(0,D.jsx)(`span`,{className:`muted`,children:`SDK`})]}),(0,D.jsxs)(`form`,{onSubmit:ge,children:[(0,D.jsx)(m,{value:h,onChange:e=>{x(e),le(!0)},disabled:!!U||Z}),(0,D.jsx)(`div`,{className:`modal-actions`,children:(0,D.jsx)(o,{type:`submit`,tone:`primary`,"data-testid":`yandex-save-config`,disabled:!!U||W||Z||!h.devices.length||!h.languages.some(Boolean),children:`Сохранить настройки`})})]})]}),(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsxs)(`div`,{className:`row-between`,children:[(0,D.jsx)(`h2`,{children:`Сборка для загрузки`}),(0,D.jsx)(o,{"data-testid":`yandex-build`,busy:!!l,disabled:!!U||W||Z||K,onClick:()=>void r(`export`,`yandex-games`),children:`Собрать ZIP`})]}),l&&(0,D.jsx)(s,{label:l}),S.length?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{children:[`Сборка`,(0,D.jsx)(`select`,{"data-testid":`yandex-build-select`,value:T,onChange:e=>E(e.target.value),children:S.map(e=>(0,D.jsxs)(`option`,{value:e.id,children:[new Date(e.createdAt).toLocaleString(`ru-RU`),` · `,e.validation.ok?`Проверена`:`Есть замечания`]},e.id))})]}),Q&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:`yandex-build-result`,"data-testid":`yandex-build-result`,children:[Q.validation.ok?(0,D.jsx)(i,{size:20}):(0,D.jsx)(g,{size:20}),(0,D.jsx)(`strong`,{children:Q.validation.ok?`Сборка прошла проверку`:`Исправьте ошибки сборки`}),(0,D.jsxs)(`span`,{children:[Q.validation.files,` файлов · `,(Q.validation.bytes/1024/1024).toFixed(1),` МБ`]})]}),(0,D.jsx)(`ul`,{className:`yandex-issues`,children:Q.validation.issues.map((e,t)=>(0,D.jsxs)(`li`,{"data-severity":e.severity,children:[e.message,e.file&&(0,D.jsx)(`small`,{children:e.file})]},t))}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[(0,D.jsxs)(`a`,{className:`button button-default`,"data-testid":`yandex-download`,href:`/api/v1/projects/${e.id}/builds/${Q.id}/download`,download:!0,children:[(0,D.jsx)(ee,{size:17}),`Скачать ZIP`]}),(0,D.jsx)(o,{"data-testid":`yandex-validate`,disabled:!!U,onClick:()=>void X(`Проверяем ZIP`,async()=>{let t=await y(`/projects/${e.id}/builds/${Q.id}/validate`,`POST`,{});q.current&&C(e=>e.map(e=>e.id===Q.id?{...e,validation:t}:e))}),children:`Проверить ещё раз`})]})]})]}):(0,D.jsx)(`p`,{className:`muted`,children:`Соберите игру. Здесь появятся ZIP и результаты проверки файлов.`})]}),(0,D.jsx)(ne,{projectId:e.id,buildId:Q?.validation.ok&&!ve?Q.id:void 0,disabled:Z||!!U,reviewed:O?.status===`ready_for_review`,refreshToken:Y,onBusyChange:ae}),(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsx)(`h2`,{children:`Карточка игры`}),(K||ve)&&(0,D.jsx)(c,{type:`info`,children:`Настройки изменились. Сохраните их и соберите новый ZIP перед публикацией.`}),(0,D.jsx)(`form`,{onSubmit:t=>{t.preventDefault(),X(`Запускаем помощника публикации`,async()=>{await y(`/projects/${e.id}/publication/start`,`POST`,{buildId:T,metadata:{...V,locales:V.locales.map(e=>e.trim()).filter(Boolean),tags:V.tags?.map(e=>e.trim()).filter(Boolean)}}),await he()})},children:(0,D.jsxs)(`div`,{className:`project-form`,children:[(0,D.jsxs)(`label`,{children:[`Название игры`,(0,D.jsx)(`input`,{required:!0,maxLength:100,value:V.title,onChange:e=>H({...V,title:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Описание`,(0,D.jsx)(`textarea`,{required:!0,rows:3,value:V.description,onChange:e=>H({...V,description:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Как играть`,(0,D.jsx)(`textarea`,{required:!0,rows:3,"data-testid":`publication-instructions`,value:V.instructions,onChange:e=>H({...V,instructions:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Языки карточки`,(0,D.jsx)(`input`,{value:V.locales.join(`, `),onChange:e=>H({...V,locales:e.target.value.split(`,`).map(e=>e.trim())})})]}),(0,D.jsxs)(`label`,{children:[`Существующий черновик `,(0,D.jsx)(`span`,{className:`muted`,children:`· необязательно`}),(0,D.jsx)(`input`,{type:`url`,placeholder:`https://games.yandex.ru/console/…`,value:V.draftUrl??``,onChange:e=>H({...V,draftUrl:e.target.value||void 0})})]}),(0,D.jsxs)(`div`,{className:`form-columns`,children:[(0,D.jsxs)(`label`,{children:[`Жанр`,(0,D.jsx)(`input`,{value:V.genre??``,onChange:e=>H({...V,genre:e.target.value})})]}),(0,D.jsxs)(`label`,{children:[`Возрастной рейтинг`,(0,D.jsx)(`input`,{value:V.ageRating??``,onChange:e=>H({...V,ageRating:e.target.value})})]})]}),(0,D.jsxs)(`label`,{children:[`Теги`,(0,D.jsx)(`input`,{value:V.tags?.join(`, `)??``,onChange:e=>H({...V,tags:e.target.value.split(`,`).map(e=>e.trim())})})]}),(0,D.jsxs)(o,{type:`submit`,"data-testid":`publication-start`,tone:`primary`,disabled:!!U||Z||!!_e||O?.status===`ready_for_review`||W||K||ve||!Q?.validation.ok,children:[(0,D.jsx)(f,{size:16}),`Подготовить публикацию`]}),(0,D.jsx)(`small`,{children:`Помощник подготовит черновик, загрузит сборку и проверит игру. Отправку на модерацию вы запускаете отдельно.`})]})})]})]}),(0,D.jsxs)(`aside`,{className:`yandex-side`,children:[(0,D.jsxs)(`section`,{className:`panel`,children:[(0,D.jsx)(`h2`,{children:`Подключение Chrome`}),(0,D.jsx)(`p`,{className:`muted`,children:`Помощник использует Chrome MCP Bridge и расширение в вашем браузере.`}),(0,D.jsxs)(`label`,{children:[`Адрес локального bridge`,(0,D.jsx)(`input`,{"data-testid":`chrome-bridge-endpoint`,value:R.endpoint,onChange:e=>z({...R,endpoint:e.target.value})})]}),(0,D.jsxs)(`label`,{className:`checkbox-options`,children:[(0,D.jsx)(`input`,{type:`checkbox`,checked:R.enabled,onChange:e=>z({...R,enabled:e.target.checked})}),`Использовать Chrome MCP`]}),(0,D.jsx)(o,{"data-testid":`chrome-connect`,disabled:!!U||Z,onClick:()=>void X(`Подключаем Chrome и проверяем расширение`,async()=>{await y(`/browser/config`,`PUT`,R);let e=await y(`/browser/diagnostics`,`POST`,{});q.current&&re(e)}),children:`Сохранить и проверить`}),B&&(0,D.jsxs)(`div`,{className:`yandex-diagnostic`,"data-testid":`chrome-diagnostic`,"data-ready":B.available,children:[(0,D.jsx)(`strong`,{children:B.available?`Chrome подключён`:`Подключение требует внимания`}),(0,D.jsx)(`p`,{children:B.message}),(0,D.jsxs)(`ul`,{children:[(0,D.jsxs)(`li`,{children:[`Bridge: `,B.bridgeConnected?`доступен`:`не подключён`]}),(0,D.jsxs)(`li`,{children:[`Расширение: `,B.extensionReady?`готово`:`не готово`]})]}),M(B.setupUrl)&&(0,D.jsxs)(`a`,{href:M(B.setupUrl),target:`_blank`,rel:`noopener noreferrer`,children:[`Настроить расширение `,(0,D.jsx)(w,{size:14})]})]})]}),(0,D.jsxs)(`section`,{className:`panel publication-journal`,"data-testid":`publication-journal`,"data-status":O?.status??`idle`,children:[(0,D.jsx)(`div`,{className:`eyebrow`,children:`ПУБЛИКАЦИЯ`}),(0,D.jsx)(`h2`,{"aria-live":`polite`,children:O?j[O.status]:`Готовы к первому черновику`}),O?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`p`,{children:A[O.stage]}),Z&&(0,D.jsx)(s,{label:A[O.stage]}),` `,O.userAction&&[`waiting_user`,`interrupted`].includes(O.status)&&(0,D.jsx)(c,{children:(0,D.jsx)(v,{id:`publication:${O.id}:user`,children:O.userAction})}),O.error&&(0,D.jsx)(c,{children:O.error}),(0,D.jsxs)(`div`,{className:`row-actions`,children:[Z&&(0,D.jsxs)(o,{"data-testid":`publication-pause`,disabled:!!U,onClick:()=>void $(`pause`),children:[(0,D.jsx)(u,{size:15}),`Пауза`]}),_e&&(0,D.jsxs)(o,{"data-testid":`publication-resume`,disabled:!!U,onClick:()=>void $(`resume`),children:[(0,D.jsx)(f,{size:15}),O.status===`waiting_user`?`Я выполнил действие`:`Продолжить`]}),(Z||_e||O.status===`ready_for_review`)&&(0,D.jsxs)(o,{"data-testid":`publication-stop`,disabled:!!U,onClick:()=>void $(`stop`),children:[(0,D.jsx)(d,{size:15}),`Остановить`]})]}),M(O.draftUrl)&&(0,D.jsxs)(`a`,{href:M(O.draftUrl),target:`_blank`,rel:`noopener noreferrer`,children:[`Открыть черновик `,(0,D.jsx)(w,{size:14})]}),(0,D.jsx)(`ol`,{className:`publication-evidence`,children:O.evidence.map((e,t)=>(0,D.jsxs)(`li`,{children:[(0,D.jsx)(`span`,{className:`publication-dot`}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`strong`,{children:N[e.action]??e.action}),(0,D.jsx)(`p`,{children:(0,D.jsx)(v,{id:`publication:${O.id}:${t}`,children:P(e)})}),(0,D.jsx)(`small`,{children:new Date(e.at).toLocaleTimeString(`ru-RU`)})]})]},`${e.at}:${t}`))}),F(O)&&(0,D.jsxs)(`div`,{className:`publication-submit`,children:[(0,D.jsx)(`p`,{children:`Проверьте карточку, материалы и игру в консоли. Это отдельное действие отправит текущий черновик на модерацию.`}),(0,D.jsx)(o,{"data-testid":`publication-submit`,tone:`primary`,disabled:!!U||W,onClick:()=>void X(`Отправляем на модерацию`,async()=>{await y(`/projects/${e.id}/publication/submit`,`POST`,{runId:O.id}),await he()}),children:`Отправить на модерацию`})]})]}):(0,D.jsx)(`p`,{className:`muted`,children:`Сначала проверьте сборку и подключите Chrome. Вход в аккаунт и CAPTCHA выполняются вами в браузере.`}),I.length>1&&(0,D.jsxs)(`details`,{children:[(0,D.jsxs)(`summary`,{children:[`Предыдущие попытки · `,I.length-1]}),I.filter(e=>e.id!==O?.id).map(e=>(0,D.jsxs)(`p`,{children:[new Date(e.createdAt).toLocaleString(`ru-RU`),` · `,j[e.status]]},e.id))]})]})]})]})]})}export{I as YandexGamesView};
@@ -1 +1 @@
1
- import{n as e,o as t,r as n,t as r}from"./IconBase.es-Bvh5HoVq.js";import{c as i,d as a,f as o,g as s,h as c,l,m as u,p as d,s as f,u as p}from"./ui-CVc6Nw0y.js";var m=t(n(),1),h=new Map([[`bold`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M248.23,112.31A20,20,0,0,0,232,104H220V88a20,20,0,0,0-20-20H132L105.34,48a20.12,20.12,0,0,0-12-4H40A20,20,0,0,0,20,64V208a12,12,0,0,0,12,12H211.1a12,12,0,0,0,11.33-8l28.49-81.47.06-.17A20,20,0,0,0,248.23,112.31ZM92,68l28.8,21.6A12,12,0,0,0,128,92h68v12H69.77a20,20,0,0,0-18.94,13.58L44,137.15V68ZM202.59,196H48.89l23.72-68H226.37Z`}))],[`duotone`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M208,88v24H69.77a8,8,0,0,0-7.59,5.47L32,208V64a8,8,0,0,1,8-8H93.33a8,8,0,0,1,4.8,1.6L128,80h72A8,8,0,0,1,208,88Z`,opacity:`0.2`}),m.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`fill`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z`}))],[`light`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M243.36,111.81A14,14,0,0,0,232,106H214V88a14,14,0,0,0-14-14H130L101.74,52.8a14.06,14.06,0,0,0-8.4-2.8H40A14,14,0,0,0,26,64V208a6,6,0,0,0,6,6H211.1a6,6,0,0,0,5.69-4.1l28.49-85.47A14,14,0,0,0,243.36,111.81ZM40,62H93.34a2,2,0,0,1,1.2.4L124.4,84.8A6,6,0,0,0,128,86h72a2,2,0,0,1,2,2v18H69.77a14,14,0,0,0-13.28,9.57L38,171V64A2,2,0,0,1,40,62Zm193.9,58.63L206.78,202H40.33l27.54-82.63a2,2,0,0,1,1.9-1.37H232a2,2,0,0,1,1.9,2.63Z`}))],[`regular`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`thin`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M241.72,113a11.88,11.88,0,0,0-9.73-5H212V88a12,12,0,0,0-12-12H129.33l-28.8-21.6a12.05,12.05,0,0,0-7.2-2.4H40A12,12,0,0,0,28,64V208a4,4,0,0,0,4,4H211.09a4,4,0,0,0,3.79-2.74l28.49-85.47A11.86,11.86,0,0,0,241.72,113ZM40,60H93.33a4,4,0,0,1,2.4.8L125.6,83.2a4,4,0,0,0,2.4.8h72a4,4,0,0,1,4,4v20H69.76a12,12,0,0,0-11.38,8.21L36,183.35V64A4,4,0,0,1,40,60Zm195.78,61.26L208.2,204H37.55L66,118.74A4,4,0,0,1,69.76,116H232a4,4,0,0,1,3.79,5.26Z`}))]]),g=m.forwardRef((e,t)=>m.createElement(r,{ref:t,...e,weights:h}));g.displayName=`FolderOpenIcon`;var _=g,v=e(),y=Object.defineProperty,b=(e,t)=>y(e,`name`,{value:t,configurable:!0});function x(e){let t=e+`CollectionProvider`,[n,r]=u(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=b(e=>{let{scope:t,children:n}=e,r=m.useRef(null),a=m.useRef(new Map).current;return(0,v.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,l=p(s),d=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=a(s,n),o=c(t,i.collectionRef);return(0,v.jsx)(l,{ref:o,children:r})});d.displayName=s;let f=e+`CollectionItemSlot`,h=`data-radix-collection-item`,g=p(f),_=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),s=c(t,o),l=a(f,n);return m.useEffect(()=>(l.itemMap.set(o,{ref:o,...i}),()=>void l.itemMap.delete(o))),(0,v.jsx)(g,{[h]:``,ref:s,children:r})});_.displayName=f;function y(t){let n=a(e+`CollectionConsumer`,t);return m.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${h}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return b(y,`useCollection`),[{Provider:o,Slot:d,ItemSlot:_},y,r]}b(x,`createCollection`);var S=new WeakMap,C=class e extends Map{static{b(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],S.set(this,!0)}set(e,t){return S.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=E(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=w(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=w(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return w(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function w(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=T(e,t);return n===-1?void 0:e[n]}b(w,`at`);function T(e,t){let n=e.length,r=E(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}b(T,`toSafeIndex`);function E(e){return e!==e||e===0?0:Math.trunc(e)}b(E,`toSafeInteger`);function D(e){let t=e+`CollectionProvider`,[n,r]=u(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new C,setItemMap:b(()=>void 0,`setItemMap`)}),o=b(({state:e,...t})=>e?(0,v.jsx)(l,{...t,state:e}):(0,v.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=b(e=>{let t=x();return(0,v.jsx)(l,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let l=b(e=>{let{scope:t,children:n,state:r}=e,a=m.useRef(null),[o,s]=m.useState(null),l=c(a,s),[u,d]=r;return m.useEffect(()=>{if(!o)return;let e=j(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,v.jsx)(i,{scope:t,itemMap:u,setItemMap:d,collectionRef:l,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);l.displayName=t+`Impl`;let d=e+`CollectionSlot`,f=p(d),h=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=a(d,n),o=c(t,i.collectionRef);return(0,v.jsx)(f,{ref:o,children:r})});h.displayName=d;let g=e+`CollectionItemSlot`,_=p(g),y=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),[s,l]=m.useState(null),u=c(t,o,l),{setItemMap:d}=a(g,n),f=m.useRef(i);O(f.current,i)||(f.current=i);let p=f.current;return m.useEffect(()=>{let e=p;return d(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(A):(t.set(s,{...e,element:s}),t.toSorted(A)):t),()=>{d(e=>!s||!e.has(s)?e:(e.delete(s),new C(e)))}},[s,p,d]),(0,v.jsx)(_,{"data-radix-collection-item":``,ref:u,children:r})});y.displayName=g;function x(){return m.useState(new C)}b(x,`useInitCollection`);function S(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return b(S,`useCollection`),[{Provider:o,Slot:h,ItemSlot:y},{createCollectionScope:r,useCollection:S,useInitCollection:x}]}b(D,`createCollection`);function O(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}b(O,`shallowEqual`);function k(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}b(k,`isElementPreceding`);function A(e,t){return!e[1].element||!t[1].element?0:k(e[1].element,t[1].element)?-1:1}b(A,`sortByDocumentPosition`);function j(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}b(j,`getChildListObserver`);var ee=Object.defineProperty,te=(e,t)=>ee(e,`name`,{value:t,configurable:!0}),ne={LTR:`ltr`,RTL:`rtl`},re=m.createContext(void 0);function M(e){let t=m.useContext(re);return e||t||ne.LTR}te(M,`useDirection`);var ie=Object.defineProperty,N=(e,t)=>ie(e,`name`,{value:t,configurable:!0}),P=!1;function F(){let[e,t]=m.useState(P);return m.useEffect(()=>{P||(P=!0,t(!0))},[]),e}N(F,`useIsHydrated`);var ae=m.useSyncExternalStore;function oe(){return()=>{}}N(oe,`subscribe`);function I(){return ae(oe,()=>!0,()=>!1)}N(I,`useIsHydratedModern`);var se=typeof ae==`function`?I:F,ce=Object.defineProperty,L=(e,t)=>ce(e,`name`,{value:t,configurable:!0}),R=`rovingFocusGroup.onEntryFocus`,le={bubbles:!1,cancelable:!0},z=`RovingFocusGroup`,[B,V,ue]=x(z),[de,H]=u(z,[ue]),U={Vertical:`vertical`,Horizontal:`horizontal`},fe={LTR:`ltr`,RTL:`rtl`},[pe,me]=de(z),he=m.forwardRef(L(function(e,t){return(0,v.jsx)(B.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,v.jsx)(B.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,v.jsx)(ge,{...e,ref:t})})})},`RovingFocusGroup`)),ge=m.forwardRef(L(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:f,onCurrentTabStopIdChange:p,onEntryFocus:h,preventScrollOnEntryFocus:g=!1,..._}=e,y=m.useRef(null),b=c(t,y),x=M(u),[S,C]=a({prop:d,defaultProp:f??null,onChange:p,caller:z}),[w,T]=m.useState(!1),E=i(h),D=V(n),O=m.useRef(!1),[k,A]=m.useState(0);return m.useEffect(()=>{let e=y.current;if(e)return e.addEventListener(R,E),()=>e.removeEventListener(R,E)},[E]),(0,v.jsx)(pe,{scope:n,orientation:r,dir:x,loop:o,currentTabStopId:S,onItemFocus:m.useCallback(e=>C(e),[C]),onItemShiftTab:m.useCallback(()=>T(!0),[]),onFocusableItemAdd:m.useCallback(()=>A(e=>e+1),[]),onFocusableItemRemove:m.useCallback(()=>A(e=>e-1),[]),children:(0,v.jsx)(l.div,{tabIndex:w||k===0?-1:0,"data-orientation":r,..._,ref:b,style:{outline:`none`,...e.style},onMouseDown:s(e.onMouseDown,()=>{O.current=!0}),onFocus:s(e.onFocus,e=>{let t=!O.current;if(e.target===e.currentTarget&&t&&!w){let t=new CustomEvent(R,le);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=D().filter(e=>e.focusable);K([e.find(e=>e.active),e.find(e=>e.id===S),...e].filter(Boolean).map(e=>e.ref.current),g)}}O.current=!1}),onBlur:s(e.onBlur,()=>T(!1))})})},`RovingFocusGroupImpl`)),_e=`RovingFocusGroupItem`,ve=m.forwardRef(L(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:c,...u}=e,f=o(),p=a||f,h=me(_e,n),g=h.currentTabStopId===p,_=V(n),{onFocusableItemAdd:y,onFocusableItemRemove:b,currentTabStopId:x}=h,S=se();return d(()=>{if(S&&r)return y(),()=>b()},[S,r,y,b]),m.useEffect(()=>{if(!S&&r)return y(),()=>b()},[S,r,y,b]),(0,v.jsx)(B.ItemSlot,{scope:n,id:p,focusable:r,active:i,children:(0,v.jsx)(l.span,{tabIndex:g?0:-1,"data-orientation":h.orientation,...u,ref:t,onMouseDown:s(e.onMouseDown,e=>{r?h.onItemFocus(p):e.preventDefault()}),onFocus:s(e.onFocus,()=>h.onItemFocus(p)),onKeyDown:s(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){h.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=G(e,h.orientation,h.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=_().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=h.loop?q(n,r+1):n.slice(r+1)}setTimeout(()=>K(n))}}),children:typeof c==`function`?c({isCurrentTabStop:g,hasTabStop:x!=null}):c})})},`RovingFocusGroupItem`)),ye={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function W(e,t){return t===fe.RTL?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}L(W,`getDirectionAwareKey`);function G(e,t,n){let r=W(e.key,n);if(!(t===U.Vertical&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===U.Horizontal&&[`ArrowUp`,`ArrowDown`].includes(r)))return ye[r]}L(G,`getFocusIntent`);function K(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}L(K,`focusFirst`);function q(e,t){return e.map((n,r)=>e[(t+r)%e.length])}L(q,`wrapArray`);var be=Object.defineProperty,J=(e,t)=>be(e,`name`,{value:t,configurable:!0}),Y={Automatic:`automatic`,Manual:`manual`},X=`Tabs`,[xe,Se]=u(X,[H]),Ce=H(),[we,Z]=xe(X),Te=m.forwardRef(J(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:s,orientation:c=`horizontal`,dir:u,activationMode:d=Y.Automatic,...f}=e,p=M(u),[m,h]=a({prop:r,onChange:i,defaultProp:s??``,caller:X});return(0,v.jsx)(we,{scope:n,baseId:o(),value:m,onValueChange:h,orientation:c,dir:p,activationMode:d,children:(0,v.jsx)(l.div,{dir:p,"data-orientation":c,...f,ref:t})})},`Tabs`)),Ee=`TabsList`,De=m.forwardRef(J(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=Z(Ee,n),o=Ce(n);return(0,v.jsx)(he,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,v.jsx)(l.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),Oe=`TabsTrigger`,ke=m.forwardRef(J(function(e,t){let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=Z(Oe,n),c=Ce(n),u=Q(o.baseId,r),d=$(o.baseId,r),f=r===o.value;return(0,v.jsx)(ve,{asChild:!0,...c,focusable:!i,active:f,children:(0,v.jsx)(l.button,{type:`button`,role:`tab`,"aria-selected":f,"aria-controls":d,"data-state":f?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:u,...a,ref:t,onMouseDown:s(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?(e.currentTarget.focus(),o.onValueChange(r)):e.preventDefault()}),onKeyDown:s(e.onKeyDown,e=>{i||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:s(e.onFocus,()=>{let e=o.activationMode!==Y.Manual;!f&&!i&&e&&o.onValueChange(r)})})})},`TabsTrigger`)),Ae=`TabsContent`,je=m.forwardRef(J(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=Z(Ae,n),c=Q(s.baseId,r),u=$(s.baseId,r),d=r===s.value,p=m.useRef(d);return m.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,v.jsx)(f,{present:i||d,children:({present:n})=>(0,v.jsx)(l.div,{"data-state":d?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:u,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:p.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function Q(e,t){return`${e}-trigger-${t}`}J(Q,`makeTriggerId`);function $(e,t){return`${e}-content-${t}`}J($,`makeContentId`);export{_ as a,ke as i,je as n,De as r,Te as t};
1
+ import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CdVFa8IP.js";import{_ as i,c as a,f as o,g as s,h as c,l,m as u,p as d,s as f,u as p}from"./ui-wHE_yBK0.js";var m=t(n(),1),h=new Map([[`bold`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M248.23,112.31A20,20,0,0,0,232,104H220V88a20,20,0,0,0-20-20H132L105.34,48a20.12,20.12,0,0,0-12-4H40A20,20,0,0,0,20,64V208a12,12,0,0,0,12,12H211.1a12,12,0,0,0,11.33-8l28.49-81.47.06-.17A20,20,0,0,0,248.23,112.31ZM92,68l28.8,21.6A12,12,0,0,0,128,92h68v12H69.77a20,20,0,0,0-18.94,13.58L44,137.15V68ZM202.59,196H48.89l23.72-68H226.37Z`}))],[`duotone`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M208,88v24H69.77a8,8,0,0,0-7.59,5.47L32,208V64a8,8,0,0,1,8-8H93.33a8,8,0,0,1,4.8,1.6L128,80h72A8,8,0,0,1,208,88Z`,opacity:`0.2`}),m.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`fill`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z`}))],[`light`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M243.36,111.81A14,14,0,0,0,232,106H214V88a14,14,0,0,0-14-14H130L101.74,52.8a14.06,14.06,0,0,0-8.4-2.8H40A14,14,0,0,0,26,64V208a6,6,0,0,0,6,6H211.1a6,6,0,0,0,5.69-4.1l28.49-85.47A14,14,0,0,0,243.36,111.81ZM40,62H93.34a2,2,0,0,1,1.2.4L124.4,84.8A6,6,0,0,0,128,86h72a2,2,0,0,1,2,2v18H69.77a14,14,0,0,0-13.28,9.57L38,171V64A2,2,0,0,1,40,62Zm193.9,58.63L206.78,202H40.33l27.54-82.63a2,2,0,0,1,1.9-1.37H232a2,2,0,0,1,1.9,2.63Z`}))],[`regular`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`thin`,m.createElement(m.Fragment,null,m.createElement(`path`,{d:`M241.72,113a11.88,11.88,0,0,0-9.73-5H212V88a12,12,0,0,0-12-12H129.33l-28.8-21.6a12.05,12.05,0,0,0-7.2-2.4H40A12,12,0,0,0,28,64V208a4,4,0,0,0,4,4H211.09a4,4,0,0,0,3.79-2.74l28.49-85.47A11.86,11.86,0,0,0,241.72,113ZM40,60H93.33a4,4,0,0,1,2.4.8L125.6,83.2a4,4,0,0,0,2.4.8h72a4,4,0,0,1,4,4v20H69.76a12,12,0,0,0-11.38,8.21L36,183.35V64A4,4,0,0,1,40,60Zm195.78,61.26L208.2,204H37.55L66,118.74A4,4,0,0,1,69.76,116H232a4,4,0,0,1,3.79,5.26Z`}))]]),g=m.forwardRef((t,n)=>m.createElement(e,{ref:n,...t,weights:h}));g.displayName=`FolderOpenIcon`;var _=g,v=r(),y=Object.defineProperty,b=(e,t)=>y(e,`name`,{value:t,configurable:!0});function x(e){let t=e+`CollectionProvider`,[n,r]=c(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=b(e=>{let{scope:t,children:n}=e,r=m.useRef(null),a=m.useRef(new Map).current;return(0,v.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let l=e+`CollectionSlot`,u=p(l),d=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=a(l,n),o=s(t,i.collectionRef);return(0,v.jsx)(u,{ref:o,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,h=`data-radix-collection-item`,g=p(f),_=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),c=s(t,o),l=a(f,n);return m.useEffect(()=>(l.itemMap.set(o,{ref:o,...i}),()=>void l.itemMap.delete(o))),(0,v.jsx)(g,{[h]:``,ref:c,children:r})});_.displayName=f;function y(t){let n=a(e+`CollectionConsumer`,t);return m.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${h}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return b(y,`useCollection`),[{Provider:o,Slot:d,ItemSlot:_},y,r]}b(x,`createCollection`);var S=new WeakMap,C=class e extends Map{static{b(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],S.set(this,!0)}set(e,t){return S.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=E(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=w(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=w(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return w(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function w(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=T(e,t);return n===-1?void 0:e[n]}b(w,`at`);function T(e,t){let n=e.length,r=E(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}b(T,`toSafeIndex`);function E(e){return e!==e||e===0?0:Math.trunc(e)}b(E,`toSafeInteger`);function D(e){let t=e+`CollectionProvider`,[n,r]=c(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new C,setItemMap:b(()=>void 0,`setItemMap`)}),o=b(({state:e,...t})=>e?(0,v.jsx)(u,{...t,state:e}):(0,v.jsx)(l,{...t}),`CollectionProvider`);o.displayName=t;let l=b(e=>{let t=x();return(0,v.jsx)(u,{...e,state:t})},`CollectionInit`);l.displayName=t+`Init`;let u=b(e=>{let{scope:t,children:n,state:r}=e,a=m.useRef(null),[o,c]=m.useState(null),l=s(a,c),[u,d]=r;return m.useEffect(()=>{if(!o)return;let e=j(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,v.jsx)(i,{scope:t,itemMap:u,setItemMap:d,collectionRef:l,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);u.displayName=t+`Impl`;let d=e+`CollectionSlot`,f=p(d),h=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=a(d,n),o=s(t,i.collectionRef);return(0,v.jsx)(f,{ref:o,children:r})});h.displayName=d;let g=e+`CollectionItemSlot`,_=p(g),y=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),[c,l]=m.useState(null),u=s(t,o,l),{setItemMap:d}=a(g,n),f=m.useRef(i);O(f.current,i)||(f.current=i);let p=f.current;return m.useEffect(()=>{let e=p;return d(t=>c?t.has(c)?t.set(c,{...e,element:c}).toSorted(A):(t.set(c,{...e,element:c}),t.toSorted(A)):t),()=>{d(e=>!c||!e.has(c)?e:(e.delete(c),new C(e)))}},[c,p,d]),(0,v.jsx)(_,{"data-radix-collection-item":``,ref:u,children:r})});y.displayName=g;function x(){return m.useState(new C)}b(x,`useInitCollection`);function S(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return b(S,`useCollection`),[{Provider:o,Slot:h,ItemSlot:y},{createCollectionScope:r,useCollection:S,useInitCollection:x}]}b(D,`createCollection`);function O(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}b(O,`shallowEqual`);function k(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}b(k,`isElementPreceding`);function A(e,t){return!e[1].element||!t[1].element?0:k(e[1].element,t[1].element)?-1:1}b(A,`sortByDocumentPosition`);function j(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}b(j,`getChildListObserver`);var ee=Object.defineProperty,te=(e,t)=>ee(e,`name`,{value:t,configurable:!0}),ne={LTR:`ltr`,RTL:`rtl`},re=m.createContext(void 0);function M(e){let t=m.useContext(re);return e||t||ne.LTR}te(M,`useDirection`);var ie=Object.defineProperty,N=(e,t)=>ie(e,`name`,{value:t,configurable:!0}),P=!1;function F(){let[e,t]=m.useState(P);return m.useEffect(()=>{P||(P=!0,t(!0))},[]),e}N(F,`useIsHydrated`);var ae=m.useSyncExternalStore;function oe(){return()=>{}}N(oe,`subscribe`);function I(){return ae(oe,()=>!0,()=>!1)}N(I,`useIsHydratedModern`);var se=typeof ae==`function`?I:F,ce=Object.defineProperty,L=(e,t)=>ce(e,`name`,{value:t,configurable:!0}),R=`rovingFocusGroup.onEntryFocus`,le={bubbles:!1,cancelable:!0},z=`RovingFocusGroup`,[B,V,ue]=x(z),[de,H]=c(z,[ue]),U={Vertical:`vertical`,Horizontal:`horizontal`},fe={LTR:`ltr`,RTL:`rtl`},[pe,me]=de(z),he=m.forwardRef(L(function(e,t){return(0,v.jsx)(B.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,v.jsx)(B.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,v.jsx)(ge,{...e,ref:t})})})},`RovingFocusGroup`)),ge=m.forwardRef(L(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:c=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:f,onCurrentTabStopIdChange:p,onEntryFocus:h,preventScrollOnEntryFocus:g=!1,..._}=e,y=m.useRef(null),b=s(t,y),x=M(u),[S,C]=o({prop:d,defaultProp:f??null,onChange:p,caller:z}),[w,T]=m.useState(!1),E=a(h),D=V(n),O=m.useRef(!1),[k,A]=m.useState(0);return m.useEffect(()=>{let e=y.current;if(e)return e.addEventListener(R,E),()=>e.removeEventListener(R,E)},[E]),(0,v.jsx)(pe,{scope:n,orientation:r,dir:x,loop:c,currentTabStopId:S,onItemFocus:m.useCallback(e=>C(e),[C]),onItemShiftTab:m.useCallback(()=>T(!0),[]),onFocusableItemAdd:m.useCallback(()=>A(e=>e+1),[]),onFocusableItemRemove:m.useCallback(()=>A(e=>e-1),[]),children:(0,v.jsx)(l.div,{tabIndex:w||k===0?-1:0,"data-orientation":r,..._,ref:b,style:{outline:`none`,...e.style},onMouseDown:i(e.onMouseDown,()=>{O.current=!0}),onFocus:i(e.onFocus,e=>{let t=!O.current;if(e.target===e.currentTarget&&t&&!w){let t=new CustomEvent(R,le);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=D().filter(e=>e.focusable);K([e.find(e=>e.active),e.find(e=>e.id===S),...e].filter(Boolean).map(e=>e.ref.current),g)}}O.current=!1}),onBlur:i(e.onBlur,()=>T(!1))})})},`RovingFocusGroupImpl`)),_e=`RovingFocusGroupItem`,ve=m.forwardRef(L(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:s,...c}=e,f=d(),p=o||f,h=me(_e,n),g=h.currentTabStopId===p,_=V(n),{onFocusableItemAdd:y,onFocusableItemRemove:b,currentTabStopId:x}=h,S=se();return u(()=>{if(S&&r)return y(),()=>b()},[S,r,y,b]),m.useEffect(()=>{if(!S&&r)return y(),()=>b()},[S,r,y,b]),(0,v.jsx)(B.ItemSlot,{scope:n,id:p,focusable:r,active:a,children:(0,v.jsx)(l.span,{tabIndex:g?0:-1,"data-orientation":h.orientation,...c,ref:t,onMouseDown:i(e.onMouseDown,e=>{r?h.onItemFocus(p):e.preventDefault()}),onFocus:i(e.onFocus,()=>h.onItemFocus(p)),onKeyDown:i(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){h.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=G(e,h.orientation,h.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=_().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=h.loop?q(n,r+1):n.slice(r+1)}setTimeout(()=>K(n))}}),children:typeof s==`function`?s({isCurrentTabStop:g,hasTabStop:x!=null}):s})})},`RovingFocusGroupItem`)),ye={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function W(e,t){return t===fe.RTL?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}L(W,`getDirectionAwareKey`);function G(e,t,n){let r=W(e.key,n);if(!(t===U.Vertical&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===U.Horizontal&&[`ArrowUp`,`ArrowDown`].includes(r)))return ye[r]}L(G,`getFocusIntent`);function K(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}L(K,`focusFirst`);function q(e,t){return e.map((n,r)=>e[(t+r)%e.length])}L(q,`wrapArray`);var be=Object.defineProperty,J=(e,t)=>be(e,`name`,{value:t,configurable:!0}),Y={Automatic:`automatic`,Manual:`manual`},X=`Tabs`,[xe,Se]=c(X,[H]),Ce=H(),[we,Z]=xe(X),Te=m.forwardRef(J(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:s=`horizontal`,dir:c,activationMode:u=Y.Automatic,...f}=e,p=M(c),[m,h]=o({prop:r,onChange:i,defaultProp:a??``,caller:X});return(0,v.jsx)(we,{scope:n,baseId:d(),value:m,onValueChange:h,orientation:s,dir:p,activationMode:u,children:(0,v.jsx)(l.div,{dir:p,"data-orientation":s,...f,ref:t})})},`Tabs`)),Ee=`TabsList`,De=m.forwardRef(J(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=Z(Ee,n),o=Ce(n);return(0,v.jsx)(he,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,v.jsx)(l.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),Oe=`TabsTrigger`,ke=m.forwardRef(J(function(e,t){let{__scopeTabs:n,value:r,disabled:a=!1,...o}=e,s=Z(Oe,n),c=Ce(n),u=Q(s.baseId,r),d=$(s.baseId,r),f=r===s.value;return(0,v.jsx)(ve,{asChild:!0,...c,focusable:!a,active:f,children:(0,v.jsx)(l.button,{type:`button`,role:`tab`,"aria-selected":f,"aria-controls":d,"data-state":f?`active`:`inactive`,"data-disabled":a?``:void 0,disabled:a,id:u,...o,ref:t,onMouseDown:i(e.onMouseDown,e=>{!a&&e.button===0&&e.ctrlKey===!1?(e.currentTarget.focus(),s.onValueChange(r)):e.preventDefault()}),onKeyDown:i(e.onKeyDown,e=>{a||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&s.onValueChange(r)}),onFocus:i(e.onFocus,()=>{let e=s.activationMode!==Y.Manual;!f&&!a&&e&&s.onValueChange(r)})})})},`TabsTrigger`)),Ae=`TabsContent`,je=m.forwardRef(J(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=Z(Ae,n),c=Q(s.baseId,r),u=$(s.baseId,r),d=r===s.value,p=m.useRef(d);return m.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,v.jsx)(f,{present:i||d,children:({present:n})=>(0,v.jsx)(l.div,{"data-state":d?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:u,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:p.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function Q(e,t){return`${e}-trigger-${t}`}J(Q,`makeTriggerId`);function $(e,t){return`${e}-content-${t}`}J($,`makeContentId`);export{_ as a,ke as i,je as n,De as r,Te as t};
@@ -0,0 +1 @@
1
+ .studio-update-banner{z-index:40;border:1px solid var(--border);background:var(--surface);max-width:min(440px,100vw - 100px);color:var(--text);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:12px;padding:16px;display:flex;position:fixed;bottom:24px;left:24px}.studio-update-banner>div{gap:4px;display:grid}.studio-update-banner strong{font-size:14px}.studio-update-banner>svg{flex-shrink:0}.studio-update-banner div button{color:var(--accent,var(--text));text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.studio-update-modal ul{padding-left:20px}.studio-update-modal li{margin:10px 0}.studio-update-modal label{gap:8px;margin:12px 0;display:grid}.studio-update-modal input{font-family:monospace;font-size:12px}.studio-update-modal details{margin:18px 0}.studio-update-modal p{margin:14px 0;line-height:1.6}.studio-update-modal summary{cursor:pointer}@media (width<=600px){.studio-update-banner{gap:8px;max-width:calc(100vw - 82px);padding:12px;bottom:12px;left:12px}}.report-trigger{right:24px;bottom:max(24px, env(safe-area-inset-bottom));z-index:40;border:1px solid var(--border,#ddd);background:var(--surface,#fff);width:52px;height:52px;color:var(--text,#222);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:fixed;box-shadow:0 4px 18px #0002}.report-trigger:focus-visible{outline-offset:3px;outline:3px solid #6c80d8}.report-dot{background:#d64a44;border-radius:50%;width:11px;height:11px;position:absolute;top:3px;right:3px}.reports-modal{max-height:85dvh;overflow-y:auto}.reports-modal label{gap:7px;margin:14px 0;display:grid}.reports-modal textarea{resize:vertical;min-height:100px}.reports-modal form>small{margin:6px 0 12px;display:block}.report-error{color:#c53838}.report-list{gap:10px;margin-top:18px;display:grid}.report-list>button{text-align:left;color:inherit;border:1px solid var(--border,#ccc);cursor:pointer;background:0 0;border-radius:12px;gap:6px;padding:14px;display:grid}.report-list strong{overflow-wrap:anywhere}.report-list small,.report-list span,.report-message small{opacity:.7}.report-status{font-size:13px}.report-thread{gap:12px;margin:16px 0;display:grid}.report-message{border:1px solid var(--border,#ccc);border-radius:12px;padding:14px}.report-team{background:color-mix(in srgb, currentColor 5%, transparent)}.report-message p{white-space:pre-wrap;overflow-wrap:anywhere}.report-images{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.report-images>div{position:relative}.report-images img{object-fit:contain;border:1px solid var(--border,#ccc);border-radius:6px;width:100px;height:76px}.report-images button{background:var(--surface,#fff);color:inherit;border:1px solid var(--border,#ccc);cursor:pointer;border-radius:4px;position:absolute;top:0;right:0}@media (width<=600px){.report-trigger{right:14px;bottom:max(14px, env(safe-area-inset-bottom));width:46px;height:46px}}.report-trigger[hidden]{display:none}.voice-reply-toggle{border:2px solid var(--border);background:var(--surface);width:48px;height:52px;color:var(--muted);cursor:pointer;border-radius:16px;flex:none;justify-content:center;align-self:flex-end;align-items:center;transition:background .18s,color .18s;display:inline-flex}.voice-reply-toggle.enabled{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.voice-reply-toggle.speaking{box-shadow:0 0 0 4px var(--accent-soft)}.voice-reply-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.voice-reply-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.composer-input-row{align-items:flex-end;gap:12px;display:flex}.composer-input-row textarea{flex:1;min-width:0}.k-dock-row .voice-reply-toggle{align-self:stretch;min-width:48px;height:auto}.plain-chat-compose .voice-reply-toggle{margin-bottom:0}@media (width<=640px){.voice-reply-toggle{border-radius:13px;width:40px;height:44px}.plain-chat-compose{gap:7px}.plain-chat-compose textarea{font-size:14px}.k-dock-row .voice-reply-toggle{min-width:40px}}@media (prefers-reduced-motion:reduce){.voice-reply-toggle{transition:none}}.voice-reply-status{color:var(--muted);flex-wrap:wrap;flex:none;align-items:center;gap:8px 14px;font-size:12px;display:flex}.voice-reply-status.has-error{color:var(--danger)}.voice-reply-status button{border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer;font:inherit;border-radius:10px;padding:6px 10px}.voice-reply-status button:disabled{opacity:.55;cursor:default}.voice-reply-status button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.k-dock>.voice-reply-status{margin-bottom:8px}.modal.account-modal-modern{border:2px solid var(--k-line);background:radial-gradient(circle, var(--k-stud) 1.5px, transparent 2px) 0 0 / 22px 22px, var(--k-bg);width:min(1040px,100vw - 48px);color:var(--k-fg);font:500 17px/1.5 var(--k-body);border-radius:32px;padding:32px}.account-modal-modern .modal-heading{align-items:center;margin-bottom:26px}.account-modal-modern .modal-heading h2{font:700 30px/1.2 var(--k-display);letter-spacing:-.02em}.account-modal-modern .modal-heading p{color:var(--k-muted);margin-top:10px;font-size:17px}.account-modal-modern .modal-heading .icon-button{border:2px solid var(--k-line);background:var(--k-surface);width:48px;height:48px;color:var(--k-fg);border-radius:16px;flex:none;margin:0}.core-account.core-account-modern{border:0;margin:0;padding:0}.core-account-modern .settings-description{display:none}.core-account-modern .settings-fields{flex-direction:column;gap:20px;display:flex}.core-account-modern h3{font:800 19px/1.3 var(--k-body);margin:0}.core-account-modern p{max-width:none;margin:0}.core-membership{border:2px solid var(--k-line);background:var(--k-surface);border-radius:24px;align-items:center;gap:18px;padding:22px;display:flex}.core-membership.active{border-color:var(--k-mint)}.core-membership .core-card-icon{background:var(--k-bg2);width:60px;height:60px;color:var(--k-mint);border-radius:18px;flex:none;place-items:center;display:grid}.core-membership p{color:var(--k-muted);margin-top:6px;font-size:15px}.core-membership-badge{background:var(--k-bg2);color:var(--k-muted);white-space:nowrap;border-radius:999px;margin-left:auto;padding:7px 14px;font-size:14px;font-weight:800}.core-membership.active .core-membership-badge{color:var(--k-mint)}.core-metrics,.core-account-modern .core-account-periods{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;display:grid}.core-metric{background:var(--k-surface);border:2px solid var(--k-line);border-radius:24px;min-width:0;padding:24px}.core-metric dt{color:var(--k-muted);align-items:center;gap:10px;font-weight:700;display:flex}.core-account-modern .core-metrics{grid-template-columns:1fr}.core-account-modern .core-account-periods-three{grid-template-columns:repeat(3,minmax(0,1fr))}.core-account-modern .core-budget-description{color:var(--k-muted);font-size:14px}.core-metric-balance dt svg{color:var(--k-blue)}.core-metric dd{font:800 clamp(28px, 3.2vw, 40px)/1.2 var(--k-body);letter-spacing:-.03em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:12px 0 8px}.core-metric dd span{font-size:.7em}.core-metric small,.core-limit small{color:var(--k-muted);font-size:14px}.core-limit{--core-limit-color:var(--k-fg);--core-limit-fill:var(--k-grad);border:2px solid var(--k-line);background:var(--k-surface);border-radius:24px;min-width:0;padding:22px}.core-limit[data-level=warning]{--core-limit-color:#806000;--core-limit-fill:#e3b21b;border-color:var(--core-limit-fill)}.core-limit[data-level=critical]{--core-limit-color:#c6283d;--core-limit-fill:#c6283d;border-color:var(--core-limit-fill)}:root[data-theme=dark] .core-limit[data-level=warning]{--core-limit-color:#ffcf55;--core-limit-fill:#ffcf55}:root[data-theme=dark] .core-limit[data-level=critical]{--core-limit-color:#ff6b7f;--core-limit-fill:#ff6b7f}.core-limit-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.core-limit-heading>span{color:var(--k-muted);font-size:14px}.core-limit .core-limit-count{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:10px;margin:15px 0;display:flex}.core-limit-count b{color:var(--core-limit-color);font-size:27px;font-weight:800}.core-limit-count span{color:var(--k-muted);font-size:14px}.core-limit .core-limit-used{color:var(--k-muted);margin:-4px 0 12px;font-size:14px}.core-limit progress{background:var(--k-bg2);width:100%;height:12px;accent-color:var(--k-mint);border:0;border-radius:999px;margin-bottom:14px;display:block;overflow:hidden}.core-limit progress::-webkit-progress-bar{background:var(--k-bg2)}.core-limit progress::-webkit-progress-value{background:var(--core-limit-fill);border-radius:999px}.core-limit progress::-moz-progress-bar{background:var(--core-limit-fill);border-radius:999px}.core-limit[data-level=warning] progress,.core-limit[data-level=critical] progress{accent-color:var(--core-limit-fill)}.core-limit .core-limit-notice{color:var(--core-limit-color);margin-bottom:8px;font-weight:800;display:block}.core-account-modern details,.core-account-modern .core-connect-form{border:2px solid var(--k-line);background:var(--k-surface);border-radius:24px;padding:22px}.core-account-modern .settings-fields select,.core-account-modern .settings-fields input{border:2px solid var(--k-line);min-height:56px;color:var(--k-fg);background:var(--k-bg);font:600 16px/1.4 var(--k-body);border-radius:16px;padding:12px 16px}.core-account-modern .button,.core-account-modern .core-account-links a{border:2px solid var(--k-line);background:var(--k-surface);min-height:52px;color:var(--k-fg);font:800 16px/1.3 var(--k-body);border-radius:18px;padding:12px 20px}.core-account-modern .button-primary{background:var(--k-grad);color:var(--k-on);border-color:#0000}.core-account-modern .button-primary:hover{filter:brightness(1.04)}.core-account-modern .core-account-links,.core-account-modern .core-account-actions{gap:12px;margin:0}.core-account-modern .core-account-links a{align-items:center;text-decoration:none;display:inline-flex}.core-account-modern .core-account-links a:hover,.core-account-modern .button:not(.button-primary):hover{border-color:var(--k-mint)}.core-account-modern .core-services{flex-wrap:wrap;gap:10px;display:flex}.core-account-modern .core-services p{background:var(--k-bg2);color:var(--k-muted);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:700}.core-account-modern summary{cursor:pointer;font-weight:800}.core-account-modern details ul,.core-account-modern .core-operation-history{overflow-wrap:anywhere;font-size:14px}.core-account-modern .core-operation-history{border:2px solid var(--k-line);background:var(--k-surface);border-radius:20px;max-height:280px;margin:0;padding:18px 18px 18px 36px;overflow-y:auto}.core-account-modern .core-connect-form{gap:16px}.core-account-modern .core-connect-form label{gap:8px;font-size:15px;font-weight:800;display:grid}.core-account-modern .core-connect-form p{color:var(--k-muted);font-size:14px}.core-account-modern .core-account-logout{color:var(--k-muted);background:0 0;align-self:flex-start}.account-modal-modern :is(button,a,input,select):focus-visible{outline:3px solid var(--k-blue);outline-offset:3px}@media (width<=640px){.modal.account-modal-modern{border-radius:24px;width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:20px 16px}.account-modal-modern .modal-heading h2{font-size:22px}.account-modal-modern .modal-heading p{font-size:15px}.core-account-modern .settings-fields{gap:14px}.core-membership{flex-wrap:wrap;gap:12px;padding:18px}.core-membership h3{font-size:18px}.core-membership-badge{margin-left:0}.core-metrics,.core-account-modern .core-account-periods{grid-template-columns:1fr;gap:14px}.core-metric,.core-limit{padding:20px}.core-metric dd{font-size:34px}.core-account-modern .core-account-links{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.core-account-modern .core-account-links a{padding:12px;font-size:14px}}.umgt-account-avatar{object-fit:cover;background:var(--surface);border-radius:50%;flex:none;width:36px;height:36px}.umgt-account-avatar-fallback{flex:none}.umgt-account-button>span{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.k-header-account{flex-shrink:0}.umgt-account-button.avatar-only{border-radius:50%;justify-content:center;align-items:center;width:56px;min-width:56px;height:56px;padding:8px;display:inline-flex}@media (width<=640px){.k-top .umgt-account-button.avatar-only{width:44px;min-width:44px;height:44px;min-height:44px;padding:6px}}.core-account-profile{align-items:center;gap:16px;padding-bottom:8px;display:flex}.core-account-profile .umgt-account-avatar,.core-account-profile .umgt-account-avatar-fallback{width:60px;height:60px}.core-account-profile h3{overflow-wrap:anywhere;margin:0}.core-account-profile p{color:var(--muted);margin:4px 0 0;font-size:14px}@media (width<=640px){.k-top .umgt-account-avatar{width:28px;height:28px}}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAn4ABMAAAAAEwQAAAmOAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjQbgnQcLj9IVkFSgQEGYD9TVEFUgQIAgQovahEICok0h0ULIAAwhzoBNgIkAzwEIAWHJgeBDgwHG6QQUdRKTmoBFD8K42bniObKrG3LZFcMWZzFmrjTFhQ6TVTqPJcInrfrvzq3b2PGn1wwMiNYGTy9ViREYARlL1zAGcPdPqBt3gNWrfKthv4xnM+b9caw+wmjgEUVRjHXhS6jgCK6zf5HiWQacJpGdAgdrbV6g/Rf1BfxRqZVQnrxRVWSJb6RLFnyu0elilmjeoSQCKnxsmwLaddUMjnksriSYuuPl06EAl7KfAiWQjCUETz0zNZ3EII94CDQtzkMfZ/9IkkY8tZRZTDky5ZVwBAM+GYpdd4ZVAWYImnLkiTg48l79gGx3D+VBtLeyg8u7bJAd4uo0pFuQBFysE9C95l0W4Fkiao6GfrDbu77lVU7wk9cV3uqOsXmQiMkhVKl1ugjzUAJBSIkkVWHijkpkVSyUFsgVBuJMA0N+ZnXtyUv5yMigGdfQRmwL1AAjQ3YXG6iIFNSUdPQo8+AISPGAltBMDQRAtyf4ZspLlZkpyOVoMZPvFGWzvk8p5SUC/NWPMj6T2/Yas2EdlON5GkfdkeFwVGjta825H89NIenlLWAPAp5h1KDtRhCaAQWMsFKtEvOKpIhgLHlXPARokkgEGEOAkqxJRQpKYq4ezahIiLHP6hZpqMbV0pUF2vdvEimLEQ/iIUYLgYWs0VXGVlLTOPdaPmFfCC/XrtzqVo1ez7vz6+Kd2+7o11ZJ+4MreLbB5BKVGxobAq4jZYalZ5aX2CKJiwUuc9GNJyi4M8bGyKcdjSRrG4JohdF8buJfmQefbYYREnMFsOoiNliFDVxmRgL0XUmUMLqzW0A4gCQAhWGYCQpFNukwXhIkPMsbRI19ewtw8Cp2Wj/Ro5cM2OTAbJAvZ/L4opBXb9+UHscYuOKM/W8isgwN26Exexjizmfnlp9dE3hOSqdZ/F5QqbckIlPb+oKfXxd6hftJ7Sm/uyPYpONza84CRlMNk/uhOrLpyf53982++zRkXNu3g3VF8qFbx1+7fbHZ9DrB3VXWNSmhnT2vrwS1+1Z+kHGBaZIhnnvuLBTNDeA340D1DWu5/jEa9pVfl6+Jij+yo3EELNixXCLjr173Q5eDP7Y7/L4iQFHbjpaJLFoP4cCsYP6sAPL7gMHNg53yYjqxqTDrYqLDl5DzW/eTLjYxCvucprjI3yl2ykKowKUC2Ox2FJLFo6Fa1HBWLC2jMCIIBEmklkYhmkpmBhTm/LCvJAH5oGcMKcgFEP1xUdho8ANPa6RFD99/PN60fjj9eXy2Eex4B5MpmRapXidzFk1p4uLk3+hn6jAP9ovJcXPPwk8o/0ltizbdbnTprvx4PSxT0VZ3Xc772aN7RflgbXRYwc3hLNO+k878nxGwfuVM8m8Gs7WEoVGWLHwSpx4vNSHBCMNqJ4m15Kp/TfHHVkQd++eY7PGN4W5byTs+6Ft8Ozvb/D60btv37de8ER0mS3P/0sLW84qGjEVkwztPzz06eGUWwKLwPb0D/WFd3vltl2aP276KpM0JNz6AfnAnZ5ADlF2zVyZ2OkxHSMxWPMnSZLbbDR3F1UjPVqp4d68da13F1YZujdWw7271iecO2l9+/4p47Oztjck355/75wFOI+VdGDqbNGs+ISgxg3iB2jb2r+b0CWsNLHIM4sdv8SDSFBP/Oromz6FNCWw2iMTxV0R8QLyBTkpe0j5+pSSJOOTB5Mck/gh3IopuNQnhKj02t3FL80gGbEh89SZcwTxcYt5cZT/nMnB3uXfPy8BSpVMBuRx+ZhACGzDBmwHsJRAjhotOnzuj2wDz3ug2wOUAY2NgZln9/TK/enG/oE4rO1wxvGUFMAxsZ0qNjRC7hl9d17e7imbgDt6uJXhUobDg7v3RX/yRCKxgMhfyiKcZfbpk0wmCcdQlIAOHeakXLvCNt++WfKiozNqSZxxJotn+c0a7DdPsx7DPYgKIDxwwYUZDg9aJbxocTjcwovr9WAsVV32mQoiiIOCHc60Oltst9qCQYuCqN1yHo0Kj60OgI2OqmiuBUWrNA0NDhYCDcdpmMrs1fZZ0xdTzMr1HdPtIHstYhqaPDDA5YxUDx7J4fJiisBSDI/L6G/bn34GNy8Q2g044ZTulAdFLb0tI6NNxfj3DzLjWiNGxje1pz7aXOcNV68lDPEd2SXl6VfBuwmHzdf1gxFy1HvA7pD8I2BnnmyGw852Cg5XbgIdEEGE5UCzen5jTlG6JCU5iajlxVcsXvbcS0SAcg1dcesWJLVK8+hYHOYQ+Pjy+EyVGXP0aPTFagrV9E03hCQvYx+g47KGq+1GsLj8uBIyihNw33YUe8PNC4BOJ3Lm1AglLV3nCuvUdIP+v15tVGbWIwgxLVpPkfpthCGpTKG+oA/DQfsKKvxhScqaN6FuElAUtTKv2UYgOmQegsN/n7njHUju8wM4VTcm+Q8xfX9SFwjTzdVqu95UOWSIGOabH8OGBEba//8Yxl3GcPdP/dMBOoSX/0z5SZmBoLbaPs+9asaMpb36yknKaw6FqWZa6A5vDa02mhkOba1q6KtLV208xrkwmW5C4VD6n2fvRjADy2qDYYnNy+H10Fq0LMbNzS863gkO7iQ8eC48/Ny5m59tOcEso3u7Qg3yrqDL6eKXwJAuWnhylfbWrRObe66rzX59+XDtzusnL66dI/86ArmtLlzED860Ef3bFPV78OX/zFTA11fcBn2Vntb7qiGBSgLBHyuv/uEaqqoTgSpOyjlzh86me1Vriv7i9rLPLvtghWmSnblRbAsBJL/4dScSQTBxOivHMO5QvBBY0iheJvfwWLxLOGzYKZyM4zVc2Cll46zEpeUV4MqGEWZj22SdOxhGAjgs9AEnfT+RoiMfcDb0GS5NncKVxju4Nt/mRk13O9Gz3FLct5oCD6wkwUNrCfHIUg6SMf8LwQGyVaBUqpLPW5BaMpRshEpl8nS1qw5dgnzlik8QBXmdy5UrIH74heTKZKMSilQso4hsRiGraQZRzxpNGqlEJMsXuAU7GlcR8mWSykUpVkWGyIf0a8v4qEQp5CtGsMiZa+4ESYQy+WilCiguHzxMXO54ogShooTV2bj2z1zL6DYSoImoQ8lFUWxMLBNQQgLkV2tHYgUoIbkuREz+fJHKxxWBcnvu3KQppFCxLkguB1NyVSp/TknRvNwYlCdbblWu3ze6owHdWluhE5tgQ6ej2SV65CijijoaRfSiH4Nqz1OpfEW+WeI/oU0ly60zkV9YzOQSYtZVEGYmrysTZAJkY4qZtIBD9/LYTIK7Nww3vMiYBwA=)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAcwABUAAAAADVQAAAbBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkQbgR4cLj9IVkFSYD9NVkFSRgZgP1NUQVSBECcqAFwvZBEICoMkgnELFAAwhH4BNgIkAyIEIAWGEAdnDAcboAsonoWxMy2MW9VSU/H2d24ggnj6P7/qdF8kHtj4XCsDah+E/KT39YIFcHcr5mdFZwLNDw9CeW4KlnBLVwQRet6nWJGSNRWvjZZM5AF9/V+YzdmiNbWZhBUUSOGWSLhW2RoXvEtYlxCEfCMrFAA6BuFam7oKRUZVCFWhRR/qJMlMiCgVZ/4ca0sETSHYgDJIJKezg6AEeH4/UIDkWQgqQABAB41AABe1VKK6dOsdhehnpalC9DfR1iEaDRCEADJ7qqmDPyCAYODEgeBAUIADRQ2tgB4qkWgAgOBp5BnH2tUEgA3ErCKtimIziMYx+tZRkDo+B2CcYroAUAMQQMOC/DExNOyf1AIEqIEEKgEKoAEFyK2JYdUjqxX9gAAwZpyto8zKVlMAICtmCHZvvscvU9uhetlltjPXxFCpcgAT1C41AqC3NxEZR3GGgPFsQPEn9Dv9AAEV1gUdEnSDES/lADn+6DGoZioeqIBCEBwIUIQ/UAa5fLpoEwZQQLIclVoNmiUiAMTkNhAAsaQOgAYUSg6A+hsQAHFIasTfqUaMdhH93bqCn0dv0Y1Mxwz/rMEkngeFGyecLPOg2jTgjVHHlnFn1ePPoBCvIU0PgI97z1hU0OQ8V6Iq/BwEUU8EQ4OB4FQdyadBEOByAhRAIhThj4OXDnAXcgDG2hAxxIQMtyzUgY0DcCA1wwnPy+biZg5xg64AiKelqxEkCD8ATgAKAdzAdMBJoAx4e5naGUU9jSAGahwNjTq+8W7DtfwYMsuPz6g1XPyMe4OHcM9wzZ544OVL2fjTo1fDhz95JRtfunY9r+B6JRd3737xgg3f338+ZMjD5wE2vLjmvqrsfi7KpklBNhwDNs4hLtfZB1nVo/LtXbteDo7bGL+x9LnOu7gSi0s45CJc/mquZ+53Had/3dvtr8Ybttd9ifzjnXq4Zb+pTblf584tP9A9sdAIX89W9cqWOy8urXS6243Og4UTLSdNOtqi74T6Wi+zp5Xr6RpTqLOrX2Wp2FTquoyMtjObjK4jpZMt84p3bd218fcnDp+IoMbXTl0+vgP56caMH6fVqeP+OKNQ34WDI8PmIJDVIAAbW7oRW9vBIzQAYINeo695N38DAQQF1BAAQB1AaXV6TEEMP0RLzQ5ctUHhwY/gB6cDpZRWWNvhvV7xtTdCTx62RTr+t9EROf52+4hqwKoHM4/P3FgXpe6yLMD76VNExDcBX1jIH3Yp7lSX+fKlzCapUmWPbtYsN7eRA47ZYTVbbEp/xcTqp40a3d8kgcC2lmDn2kCI59VnWx1NAZbGgyDNV1vAFJu5FO3miyhkCFmswIrSVn+m4cGofr9T0gtXmTw09dO1a16PkZUSH/IBkrx9G5qSFfLgxvTvUt01arz+FBpnGCEhx00R2RZKkZ2alp0fzE1LDbpKNhShcYSQv0hQG1qZDr/fmZca/ghYVGJxlLKSkix/drZ/c6tCgVkxImp4WHxugc/XJo8s3HRlyqfYLHfRckwVJGlsXycqqOGwidPXFPr25z/Nmxau/p9Rr57aFGS1RW4u7iIFAw1tFS5Mxb/8VkR5k5cXVEauSXY2pXVWSkRkklGk1rBYI0tr8nLTSpb8G+5yhXMADzyTaevXgL1Zp6VZlh0QM3fsx6LChf9nUFEe5Rfxel+//BCekJby74034cm1Sj0pKdGfMTg6JQXHolu80R26VNVeFRGjTGrML/a3KLdYsfRSwdIdF/wS97oFBJCflu4t3XhyfFibNIfWkQCf9r4tAJ9v5YH5D/L/t64YRwELBYDAz9xlvaUoc/8UQJDdHboro2Mz9jFInPDh9H5qASpKQgBOzmMzgG87VkOtVdB9GjGcwLdyIEJCoawjhU8WkKZZWpFBpZQgk2Guk0Ul58N9NCPHEwMP48ikiG6ycNGBbHyygBx4aEJOCsggFw7KkJtCAo/uwQV0olqyQtFmHZtpSTNMxXktRyAaKYo+cK9zaHpJBCK7ld6ZnAkoolP/ZzYvSzUPD8sKk8TLZmFYJCoGZhJ4DGjXa4xuGebQcRBOoWGIwKFaYhqHmCwSTJeiCKMCq0gNAc+GYSrLDBajCqNYJQYHcZXJJ0A4xapUqMKZ6z2NlL69lfVr0u8Nccx9YwPV6tkC81rPZI+nqPdmFSuWYpQISRkjH5QNMRmyUjejicO9FXMknCLnOWQIJNp0jmWMFZiWYyRwhQrhmdU9JWEPp+eCXCSYbnA0cgpOoIp7UWjRYogpltVxkolc5Ld0nsQ2aGrgvbG4QXMT38TJjo3+3UW3hhd38NKijMZseaj+FQn2vbEXAA==)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/unbounded-cyrillic-wght-normal-C627f1f8.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/unbounded-vietnamese-wght-normal-rat7GD3o.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/unbounded-latin-ext-wght-normal-D6H-S6MW.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/unbounded-latin-wght-normal-D5afBTBx.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--tracking-tighter:-.05em;--leading-relaxed:1.625;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mb-1{margin-bottom:var(--spacing)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-28{height:calc(var(--spacing) * 28)}.h-48{height:calc(var(--spacing) * 48)}.h-52{height:calc(var(--spacing) * 52)}.h-74{height:calc(var(--spacing) * 74)}.h-80{height:calc(var(--spacing) * 80)}.h-\[100dvh\]{height:100dvh}.h-screen{height:100vh}.min-h-\[100dvh\]{min-height:100dvh}.w-\[calc\(33\%-1rem\)\]{width:calc(33% - 1rem)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[65ch\]{max-width:65ch}.max-w-\[1400px\]{max-width:1400px}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-y-\[1px\]{--tw-translate-y:calc(1px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-\[0\.98\]{scale:.98}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-white{background-color:var(--color-white)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-zinc-950{background-color:var(--color-zinc-950)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-32{padding-block:calc(var(--spacing) * 32)}.py-48{padding-block:calc(var(--spacing) * 48)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-1{padding-bottom:var(--spacing)}.font-mono{font-family:var(--font-mono)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-\[10\.5px\]{font-size:10.5px}.text-\[11px\]{font-size:11px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\],.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.1\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff1a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (width>=48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (width>=64rem){.lg\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}@media (prefers-color-scheme:dark){.dark\:bg-zinc-950{background-color:var(--color-zinc-950)}.dark\:text-gray-100{color:var(--color-gray-100)}}}:root{color:#12142b;font-synthesis:none;--bg:#f5f6fb;--surface:#fff;--sidebar:#eaecf6;--inset:#eef0f8;--text:#12142b;--muted:#5d628a;--border:#d9dcec;--accent:#0c8c6c;--accent-hover:#097558;--accent-soft:#dcf3ec;--shadow:0 30px 70px -35px #1e285a59;--danger:#b84c40;--danger-bg:#fff0ed;--warning:#c46a00;--radius:14px;--brand-gradient:linear-gradient(100deg, #7fc21a 0%, #16b58c 55%, #2f6fe8 100%);--display-font:"Unbounded Variable", "Arial Black", system-ui, sans-serif;background:#f5f6fb;font-family:Manrope Variable,Avenir Next,Segoe UI,sans-serif;font-weight:500}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1024;--surface:#1b1f40;--sidebar:#12142b;--inset:#151834;--text:#f2f3fa;--muted:#a6aacb;--border:#2c3160;--accent:#3fe0b5;--accent-hover:#6bebc9;--accent-soft:#1d3a4a;--danger:#f59b8b;--danger-bg:#3b2723;--warning:#ffb347;--shadow:0 30px 80px -30px #0009;--brand-gradient:linear-gradient(100deg, #b8f33a 0%, #3fe0b5 55%, #4c8dff 100%)}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button,a,input,textarea,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent)}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{letter-spacing:-.025em;font-weight:600}h1{font-size:28px;line-height:1.3}h2{font-size:21px;line-height:1.35}h3{font-size:15px;line-height:1.4}p{line-height:1.7}small{font-size:12px}svg{flex-shrink:0}input,select,textarea{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);border-radius:7px;padding:10px 12px;transition:border-color .15s}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}textarea{resize:vertical;line-height:1.65}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}input[type=file]{font-size:13px}label{flex-direction:column;gap:7px;font-size:13px;font-weight:550;display:flex}label small{color:var(--muted);font-weight:400;line-height:1.5}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:8px;font-size:13px;font-weight:550}.muted{color:var(--muted)}.mono,code,pre{font-family:SFMono-Regular,Consolas,monospace}.full-width{width:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.success-text{color:var(--accent)}.warning-text{color:var(--warning)}.button{border:1px solid var(--border);white-space:nowrap;background:var(--surface);border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 13px;font-size:12px;font-weight:550;line-height:1.4;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.button:hover:not(:disabled){background:var(--inset);border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.button:hover:not(:disabled){border-color:color-mix(in srgb, var(--border), var(--muted) 25%)}}.button:active:not(:disabled){transform:translateY(1px)}.button-primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}:root[data-theme=dark] .button-primary{color:#152b20}.button-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button-ghost{background:0 0;border-color:#0000}.button-danger{color:var(--danger);background:var(--danger-bg);border-color:#0000}.icon-button{width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--inset);color:var(--text)}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge{white-space:nowrap;color:var(--muted);background:var(--inset);border-radius:5px;align-items:center;gap:5px;padding:4px 8px;font-size:11px;font-weight:550;display:inline-flex}.badge-success{color:var(--accent);background:var(--accent-soft)}.status-dot{background:var(--muted);border-radius:50%;width:6px;min-width:6px;height:6px;display:inline-block}.status-dot.online{background:var(--accent)}.row-between{justify-content:space-between;align-items:center;gap:18px;display:flex}.banner{overflow-wrap:anywhere;border-radius:7px;margin-bottom:12px;padding:12px 14px;font-size:13px;line-height:1.6}.banner-error{background:var(--danger-bg);color:var(--danger)}.banner-info{background:var(--inset);color:var(--muted);border:1px solid var(--border)}.banner-success{background:var(--accent-soft);color:var(--accent)}.message-line{align-items:flex-start;gap:5px;display:flex}.message-line .banner{flex:1}.progress-wrap{width:100%;padding:5px 0}.progress-label{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;font-size:12px;display:flex}.progress-label>span:first-child{align-items:center;gap:8px;display:flex}.progress-label svg{color:var(--accent)}.progress-track{background:var(--border);border-radius:5px;height:4px;overflow:hidden}.progress-track>div{background:var(--accent);border-radius:5px;height:100%;transition:width .3s}.progress-track.indeterminate>div{width:28%;animation:1.8s ease-in-out infinite indeterminate}.progress-wrap>small{color:var(--muted);margin-top:7px;display:block}.spin{animation:1.1s linear infinite spin}.pulse{animation:1.8s ease-in-out infinite pulse}.operation-progress{margin:0 0 18px}.loading-panel{max-width:380px;margin:auto;padding:60px 0}.boot{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;max-width:500px;min-height:100dvh;margin:auto;padding:30px;display:flex}.boot p{color:var(--muted)}.boot .progress-wrap{max-width:260px}.app-shell{min-height:100dvh;display:flex}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex-shrink:0;width:238px;padding:28px 17px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:-.7px;align-items:center;gap:11px;margin:0 10px 40px;font-size:17px;display:flex}.brand>span:last-child{white-space:nowrap}.brand strong{font-weight:650}.brand small{color:var(--muted);letter-spacing:.15px;margin-top:4px;font-size:10px;display:block}.brand-mark{background:var(--accent);width:37px;height:37px;color:var(--surface);border-radius:10px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 3px 7px #19756015}.workspace-label{color:var(--muted);letter-spacing:1.2px;margin-bottom:11px;padding:0 11px;font-size:9px;font-weight:650}.project-switch{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;margin:0 3px;padding:0 11px;display:flex;position:relative}.project-switch>svg{color:var(--muted)}.project-switch select{background:0 0;border:0;min-width:0;padding:11px 5px 11px 8px;font-size:12px;font-weight:550}.new-project-link{color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:13px;font-size:12px;display:flex}.new-project-link:hover{color:var(--accent)}.sidebar nav{flex-direction:column;gap:5px;margin-top:24px;display:flex}.nav-item{width:100%;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:12px;padding:11px 13px;font-size:12px;font-weight:500;display:flex}.nav-item:hover{color:var(--text);background:var(--border)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.nav-count{background:var(--surface);border-radius:4px;margin-left:auto;padding:1px 5px;font-size:10px}.nav-item>.status-dot{margin-left:auto}.sidebar-bottom{margin-top:auto;padding:24px 10px 0}.local-note{color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.sidebar-caption{color:var(--muted);opacity:.7;margin-top:8px;font-size:9px;line-height:1.6;display:block}.workspace-shell{flex-direction:column;flex:1;min-width:0;min-height:100dvh;margin-left:238px;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:20px;min-height:67px;padding:14px 30px;display:flex}.breadcrumb{align-items:center;gap:10px;min-width:0;font-size:11px;display:flex}.breadcrumb>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:550;overflow:hidden}.breadcrumb>svg{color:var(--muted)}.slash{color:var(--border);font-size:16px}.topbar-actions{align-items:center;gap:10px;display:flex}.agent-pill{color:var(--muted);align-items:center;gap:6px;margin-right:5px;font-size:10px;display:flex}.mobile-menu{display:none}.main-content{flex:1;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:38px 48px 46px}.view{width:100%;min-width:0}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;display:flex}.page-heading h1{letter-spacing:-.9px;font-size:27px}.page-heading p{color:var(--muted);max-width:680px;margin-top:9px;font-size:12px}.page-heading>div{min-width:0}.page-heading h1{overflow-wrap:anywhere}.log-drawer{border-top:1px solid var(--border);background:var(--surface)}.log-toggle{width:100%;color:var(--muted);background:0 0;border:0;justify-content:space-between;align-items:center;padding:12px 25px;font-size:10px;display:flex}.log-toggle>span{align-items:center;gap:8px;display:flex}.log-toggle small{background:var(--inset);border-radius:4px;padding:1px 5px;font-size:9px}.log-content{background:var(--inset);height:215px;padding:10px 25px;overflow:auto}.log-line{align-items:flex-start;gap:15px;padding:3px 0;font-size:10px;line-height:1.7;display:flex}.log-line time{color:var(--muted);flex-shrink:0}.log-type{width:115px;color:var(--accent);flex-shrink:0}.log-line pre{white-space:pre-wrap;overflow-wrap:anywhere;flex:1;min-width:0;margin:0}.statusbar{color:var(--muted);border-top:1px solid var(--border);background:var(--sidebar);justify-content:space-between;align-items:center;gap:15px;padding:7px 24px;font-size:9px;display:flex}.statusbar>span{align-items:center;gap:7px;display:flex}.status-divider{background:var(--border);width:1px;height:10px;margin:0 5px}.welcome{max-width:950px;padding:22px 4px 0}.welcome-kicker{letter-spacing:1.4px;color:var(--accent);align-items:center;gap:10px;margin-bottom:26px;font-size:9px;font-weight:600;display:flex}.welcome h1{letter-spacing:-2px;font-size:clamp(34px,3.5vw,53px);font-weight:550;line-height:1.16}.welcome h1 span{color:var(--muted)}.welcome-copy{color:var(--muted);margin:23px 0 25px;font-size:14px;line-height:1.8}.welcome-cta{min-height:43px;padding:10px 17px;font-size:12px}.welcome-cta>svg:last-child{margin-left:13px}.welcome-workflow{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:30px;margin-top:52px;padding:30px 0 32px;display:grid}.welcome-workflow>div{padding:0 12px 0 0;position:relative}.workflow-number{color:var(--muted);font-family:monospace;font-size:10px;position:absolute;top:3px;right:14px}.welcome-workflow svg{color:var(--accent);margin-bottom:16px}.welcome-workflow h3{margin-bottom:8px;font-size:13px}.welcome-workflow p{color:var(--muted);max-width:230px;font-size:11px;line-height:1.8}.welcome-bottom{grid-template-columns:1fr 1fr;gap:45px;padding-top:26px;display:grid}.welcome-bottom button{text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:12px 0;display:flex}.welcome-bottom button>svg:first-child{color:var(--muted)}.welcome-bottom button>svg:last-child{color:var(--muted);margin-left:auto}.welcome-bottom button:hover>svg{color:var(--accent)}.welcome-bottom span{font-size:12px;font-weight:550}.welcome-bottom small{color:var(--muted);margin-top:5px;font-size:10px;font-weight:400;display:block}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:25px}.project-journey{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:30px;padding:0 0 25px;display:flex}.journey-step{color:var(--muted);flex:1;align-items:center;gap:10px;font-size:11px;display:flex}.journey-step:last-child{flex:none}.journey-step>span{background:var(--inset);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;font-family:monospace;font-size:9px;display:flex}.journey-step.current{color:var(--accent)}.journey-step.current>span{background:var(--accent);color:var(--surface)}.journey-step.complete{color:var(--accent)}.journey-step.complete>span{background:0 0}.journey-line{background:var(--border);flex:1;height:1px;margin-left:6px}.overview-grid{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:20px;display:grid}.next-step{background:var(--accent-soft);border-color:#0000;padding:28px}.eyebrow{color:var(--accent);letter-spacing:1.1px;align-items:center;gap:8px;margin-bottom:22px;font-size:9px;font-weight:650;display:flex}.next-step h2{letter-spacing:-.8px;font-size:25px}.next-step p{color:var(--muted);max-width:425px;margin:13px 0 24px;font-size:12px;line-height:1.85}.project-info h3{margin-bottom:20px;font-size:13px}.project-info dl,.asset-detail dl{flex-direction:column;gap:15px;margin:0 0 20px;font-size:11px;display:flex}.project-info dl>div,.asset-detail dl>div{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.project-info dt,.asset-detail dt{color:var(--muted);flex-shrink:0}.project-info dd,.asset-detail dd{align-items:center;gap:5px;min-width:0;margin:0;display:flex}.project-path{overflow-wrap:anywhere;text-align:right;font-family:monospace;font-size:9px}.progress-panel{margin-top:22px}.progress-panel .row-between{margin-bottom:18px;font-size:12px}.workspace-tools{margin-top:35px}.workspace-tools>h3{margin-bottom:17px;font-size:13px}.workspace-tools>div{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.next-link{text-align:left;color:var(--text);background:0 0;border:0;align-items:center;gap:12px;padding:12px 0;display:flex}.next-link>svg:first-child{color:var(--muted)}.next-link>span{flex:1;font-size:11px;font-weight:550}.next-link>svg:last-child{color:var(--muted);width:15px}.next-link small{color:var(--muted);margin-top:6px;font-size:9px;font-weight:400;display:block}.next-link:hover{color:var(--accent)}.export-row{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:30px;padding-top:20px;display:flex}.export-row>span{color:var(--muted);align-items:center;gap:8px;margin-right:auto;font-size:11px;display:flex}.empty-state{text-align:center;max-width:530px;margin:0 auto;padding:70px 20px 60px}.empty-icon{background:var(--accent-soft);width:62px;height:62px;color:var(--accent);border-radius:17px;justify-content:center;align-items:center;margin:0 auto 24px;display:flex}.empty-state h2{margin-bottom:12px;font-size:22px}.empty-state p{color:var(--muted);margin-bottom:22px;font-size:13px;line-height:1.85}.modal-overlay{z-index:50;background:#0c1b1366;animation:.15s fade-in;position:fixed;inset:0}.modal{z-index:51;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;width:min(560px,100vw - 32px);max-height:calc(100dvh - 40px);padding:27px;animation:.18s modal-in;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.modal-wide{width:min(880px,100vw - 32px)}.umgt-account-button small{color:var(--muted);font-size:11px;font-weight:500;line-height:1.5;display:block}.umgt-account-button>span{text-align:left;min-width:0}.core-account-dialog .settings-section{display:block}.core-account-dialog .settings-description{margin-bottom:20px}@media (width<=640px){.k-top .umgt-account-button>span,.k-top .k-plain-chat-link>span{display:none}.k-top .umgt-account-button,.k-top .k-plain-chat-link{justify-content:center;min-width:44px;padding:8px}}.modal-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:26px;display:flex}.modal-heading h2{font-size:23px}.modal-heading p{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.65}.modal-heading .icon-button{margin:-5px -6px 0 0}.project-form{flex-direction:column;gap:18px;display:flex}.form-columns{grid-template-columns:1fr 1fr;gap:15px;display:grid}.engine-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.option-card{background:var(--inset);border:1px solid var(--border);border-radius:7px;align-items:center;gap:8px;padding:14px 10px;font-size:11px;display:flex}.option-card.selected{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.option-card>small{margin-left:auto;font-size:9px}.option-card>svg:last-child:not(:first-child){margin-left:auto}.segmented{background:var(--inset);border:1px solid var(--border);border-radius:7px;padding:3px;display:flex}.segmented button{width:50%;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:7px;font-size:12px}.segmented button.selected{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0001}.checkbox-options{align-items:center;gap:20px;min-height:40px;display:flex}.checkbox-options>label{flex-direction:row;align-items:center;gap:7px;font-size:12px}.form-hint{color:var(--muted);background:var(--inset);border-radius:7px;align-items:center;gap:8px;padding:12px;font-size:11px;display:flex}.form-hint>svg{color:var(--accent)}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;margin-top:9px;padding-top:20px;display:flex}.modal-actions>div{gap:8px;display:flex}.plan-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.plan-toolbar select{width:auto;font-size:11px}.tabs-list{border-bottom:1px solid var(--border);align-items:center;gap:22px;margin-bottom:24px;display:flex;overflow-x:auto}.tabs-list button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:13px 0;font-size:12px;display:flex}.tabs-list button[data-state=active]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tabs-list button>span{background:var(--inset);border-radius:4px;padding:1px 5px;font-size:9px}.plan-body{min-height:290px;max-height:48dvh;padding:3px 12px 15px 0;overflow:auto}.plan-body .empty-state{padding:25px 20px}.plan-editor{background:var(--inset);resize:vertical;height:43dvh;min-height:320px;font-family:SFMono-Regular,monospace;font-size:12px}.markdown{overflow-wrap:anywhere;font-size:13px;line-height:1.8}.markdown h1{margin:14px 0;font-size:25px}.markdown h2{margin:18px 0 10px;font-size:20px}.markdown h3{margin:14px 0 8px;font-size:16px}.markdown h4,.markdown h5,.markdown h6{margin:14px 0 8px;font-size:13px}.markdown p{margin:9px 0;line-height:1.75}.markdown strong{font-weight:650}.markdown a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.markdown ul,.markdown ol{margin:10px 0;padding-left:23px}.markdown ul{list-style:outside}.markdown ol{list-style:decimal}.markdown li{margin:5px 0}.markdown li::marker{color:var(--muted)}.markdown li>p{margin:4px 0}.markdown .contains-task-list{padding-left:0;list-style:none}.markdown .task-list-item>input{vertical-align:middle;width:13px;height:13px;margin-right:7px}.markdown blockquote{border-left:3px solid var(--border);color:var(--muted);margin:16px 0;padding-left:16px}.markdown :not(pre)>code{border:1px solid var(--border);background:var(--inset);border-radius:4px;padding:2px 5px;font-size:.9em}.markdown pre{border:1px solid var(--border);background:var(--inset);white-space:pre;overflow-wrap:normal;border-radius:7px;margin:16px 0;padding:15px 17px;font-size:11px;line-height:1.75;overflow:auto}.markdown pre code{font:inherit}.markdown-table-scroll{border:1px solid var(--border);border-radius:7px;width:100%;margin:16px 0;overflow:auto}.markdown-table-scroll:focus-visible,.markdown pre:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.markdown table{border-collapse:collapse;width:100%;font-size:12px}.markdown th,.markdown td{border-bottom:1px solid var(--border);vertical-align:top;text-align:left;min-width:110px;padding:10px 13px}.markdown th{background:var(--inset);font-weight:600}.markdown tbody tr:last-child td{border-bottom:0}.markdown hr{border:0;border-top:1px solid var(--border);margin:20px 0}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown .markdown-table-scroll table{overflow-wrap:normal}.plan-note{color:var(--muted);align-items:flex-start;gap:8px;padding:15px 0 4px;font-size:11px;line-height:1.65;display:flex}.plan-note svg{margin-top:1px}.plan-actions{justify-content:space-between;gap:15px}.main-chat{flex-direction:column;min-height:0;padding-top:30px;padding-bottom:20px;display:flex;overflow:hidden}.chat-workspace{height:100dvh;min-height:0}.chat-workspace>:not(.main-chat){flex-shrink:0}.main-chat>.view{flex-direction:column;flex:1;min-height:0;display:flex}.chat-view{flex-direction:column;flex:1;width:100%;max-width:1000px;min-height:0;margin:0 auto;display:flex}.chat-view>:not(.chat-messages){flex-shrink:0}.chat-view .page-heading{margin-bottom:20px}.chat-messages{scrollbar-width:thin;flex:1;min-height:0;padding:10px 2px 30px;overflow:auto}.chat-intro{text-align:center;max-width:680px;margin:auto;padding:30px 20px 40px}.assistant-avatar{background:var(--accent-soft);color:var(--accent);justify-content:center;align-items:center;display:flex}.chat-intro>.assistant-avatar{border-radius:14px;width:52px;height:52px;margin:0 auto 20px}.chat-intro h2{margin-bottom:12px;font-size:27px}.chat-intro>p{max-width:430px;color:var(--muted);margin:auto;font-size:12px;line-height:1.9}.chat-suggestions{grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;display:grid}.chat-suggestions button{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:8px;align-items:center;gap:11px;padding:17px 13px;font-size:11px;font-weight:550;display:flex}.chat-suggestions button>svg:first-child{color:var(--accent)}.chat-suggestions button>svg:last-child{color:var(--muted);margin-left:auto}.chat-suggestions button small{color:var(--muted);margin-top:5px;font-size:9px;font-weight:400;display:block}.chat-suggestions button:hover{border-color:var(--accent)}.chat-message{align-items:flex-start;gap:14px;margin:0 0 26px;padding:0 8px;display:flex}.message-avatar{background:var(--inset);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:31px;height:31px;font-size:10px;display:flex}.message-avatar.assistant-avatar{background:var(--accent-soft)}.message-body{flex:1;min-width:0}.message-meta{align-items:center;gap:12px;margin:6px 0 10px;font-size:11px;display:flex}.message-meta time,.streaming-label{color:var(--muted);font-size:9px}.chat-message .markdown{font-size:12px}.chat-message.user .message-body{background:var(--inset);border-radius:8px;padding:10px 15px}.chat-message.user .message-meta{margin-top:0}.chat-progress{flex-shrink:0;align-items:center;gap:15px;margin-bottom:7px;padding:5px 8px;display:flex}.chat-progress>.progress-wrap{flex:1}.composer{border:1px solid var(--border);background:var(--surface);border-radius:11px;padding:12px 14px;box-shadow:0 3px 12px #15251b04}.composer:focus-within{border-color:var(--accent)}.composer textarea{resize:none;background:0 0;border:0;outline:none;min-height:65px;padding:1px 2px;font-size:12px}.composer-bottom{align-items:center;gap:12px;display:flex}.composer-bottom select{background:var(--inset);border:0;width:auto;max-width:150px;padding:5px 9px;font-size:10px}.composer-hint{color:var(--muted);margin-left:auto;font-size:9px}.composer-bottom .button{width:31px;min-height:30px;padding:5px}.composer-caption{text-align:center;color:var(--muted);margin-top:10px;font-size:9px}.permission-card{border:1px solid var(--warning)}@supports (color:color-mix(in lab, red, red)){.permission-card{border:1px solid color-mix(in srgb, var(--warning), transparent 50%)}}.permission-card{border-radius:9px;margin:18px 8px;padding:20px}.permission-card h3{color:var(--warning);align-items:center;gap:9px;margin-bottom:10px;font-size:14px;display:flex}.permission-card label{margin:15px 0}.permission-card pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--inset);border-radius:5px;max-height:220px;margin:13px 0;padding:12px;font-size:10px;overflow:auto}.task-progress{margin-bottom:25px}.task-progress .row-between{margin-bottom:23px}.task-progress h3{font-size:16px}.task-progress p{color:var(--muted);margin-top:6px;font-size:11px}.epics{flex-direction:column;gap:25px;display:flex}.epic{border:1px solid var(--border);background:var(--surface);border-radius:9px;overflow:hidden}.epic-heading{background:var(--inset);align-items:center;gap:12px;padding:19px 20px;display:flex}.phase-number{background:var(--surface);width:29px;height:29px;color:var(--accent);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-family:monospace;font-size:11px;display:flex}.epic-heading>div{flex:1}.epic-heading h3{font-size:13px}.epic-heading p{color:var(--muted);margin-top:4px;font-size:10px}.epic-heading>span:last-child{font-size:10px}.task-row{border-top:1px solid var(--border)}.task-row summary{cursor:pointer;align-items:center;gap:12px;padding:16px 20px;font-size:12px;list-style:none;display:flex}.task-row summary::-webkit-details-marker{display:none}.task-row summary>span:first-of-type{flex:1}.task-row summary>svg{color:var(--muted)}.task-done summary>svg,.task-running summary>svg{color:var(--accent)}.task-failed summary>svg{color:var(--danger)}.task-detail{color:var(--muted);padding:0 22px 20px 52px;font-size:12px}.task-detail h4{color:var(--text);margin-top:15px;font-size:11px}.task-detail ul{margin:10px 0;padding-left:15px}.task-detail li{margin:6px 0}.task-detail pre{white-space:pre-wrap;background:var(--inset);border-radius:5px;margin:10px 0;padding:10px;font-size:10px}.filtered-empty{color:var(--muted);padding:17px 20px;font-size:11px}.asset-catalog-intro{background:var(--accent-soft);border-radius:9px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;padding:24px 25px;display:flex}.asset-catalog-intro>div:first-child{color:var(--accent);align-items:center;gap:15px;display:flex}.asset-catalog-intro>div>span{font-size:14px;font-weight:550}.asset-catalog-intro small{color:var(--muted);margin-top:6px;font-size:10px;font-weight:400;display:block}.source-list{color:var(--accent);opacity:.75;align-items:center;gap:22px;display:flex}.source-list span{letter-spacing:-.4px;font-size:12px!important}.asset-search{align-items:center;gap:10px;display:flex}.search-input{flex:1;align-items:center;display:flex;position:relative}.search-input>svg{color:var(--muted);position:absolute;left:13px}.search-input input{padding-left:41px;font-size:12px}.asset-search select{width:165px;min-height:39px;font-size:11px}.asset-search>.button{min-height:39px}.asset-types{flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 24px;display:flex}.asset-types button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:5px;padding:6px 10px;font-size:10px}.asset-types button.selected{border-color:var(--border);background:var(--surface);color:var(--text)}.asset-types button:hover{color:var(--accent)}.asset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.asset-card{background:var(--surface);border:1px solid var(--border);border-radius:9px;transition:box-shadow .2s,transform .2s;overflow:hidden}.asset-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #15291d0c}.asset-preview{background:var(--inset);border:0;justify-content:center;align-items:center;width:100%;height:165px;padding:0;display:flex;overflow:hidden}.asset-preview img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.asset-preview:hover img{transform:scale(1.035)}.asset-preview-fallback{color:var(--muted);flex-direction:column;align-items:center;gap:12px;display:flex}.asset-preview-fallback span{font-size:10px}.asset-card-info{justify-content:space-between;align-items:center;gap:5px;padding:15px 13px 12px;display:flex}.asset-card-info>div{min-width:0}.asset-card-info h3{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.asset-card-info h3 button{text-align:left;background:0 0;border:0;padding:0}.asset-card-info p{color:var(--muted);margin-top:4px;font-size:9px}.asset-card-info p>span{margin:0 4px}.asset-card-info .icon-button{flex-shrink:0;width:26px}.is-favourite{color:var(--accent)}.asset-card-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;padding:9px 13px;font-size:8px;display:flex}.asset-card-footer>span:last-child{align-items:center;gap:4px;display:flex}.asset-skeleton{border:1px solid var(--border);background:var(--surface);border-radius:9px;padding-bottom:18px;overflow:hidden}.asset-skeleton>div{background:var(--inset);height:165px}.asset-skeleton>span{background:var(--inset);border-radius:5px;width:65%;height:9px;margin:17px 15px 0;display:block}.asset-skeleton>span:last-child{width:40%;margin-top:10px}.asset-skeleton{animation:1.5s ease-in-out infinite pulse}.provider-warnings{color:var(--warning);margin-bottom:15px;font-size:11px}.provider-warnings summary{cursor:pointer;align-items:center;gap:6px;display:flex}.provider-warnings p{margin:8px 0;font-size:10px}.more-sources{border-top:1px solid var(--border);margin-top:32px;padding-top:25px}.more-sources h3{font-size:13px}.more-sources>p{color:var(--muted);margin-top:7px;font-size:11px}.more-sources>div{gap:30px;margin-top:17px;display:flex}.more-sources a{color:var(--accent);align-items:center;gap:10px;font-size:11px;display:flex}.asset-detail-preview{object-fit:contain;background:var(--inset);border-radius:8px;width:100%;max-height:270px;margin-bottom:23px}.asset-tags{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.extension-intro{background:var(--accent-soft);color:var(--accent);border-radius:9px;align-items:center;gap:17px;margin-bottom:33px;padding:22px 24px;display:flex}.extension-intro h3{font-size:14px}.extension-intro p{color:var(--muted);margin-top:5px;font-size:11px}.extension-section{margin:27px 0}.section-label{align-items:center;gap:10px;margin-bottom:15px;display:flex}.section-label h2{font-size:15px}.section-label>span{color:var(--muted);font-size:10px}.extension-list{border:1px solid var(--border);background:var(--surface);border-radius:9px;overflow:hidden}.extension-row{border-bottom:1px solid var(--border);align-items:center;gap:15px;padding:21px;display:flex}.extension-row:last-child{border-bottom:0}.extension-icon{background:var(--inset);width:40px;height:40px;color:var(--accent);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.extension-row>div:nth-child(2){flex:1;min-width:0}.extension-title{align-items:center;gap:10px;display:flex}.extension-title h3{font-size:12px}.extension-title span{font-size:9px}.extension-row p{color:var(--muted);margin:5px 0;font-size:10px}.extension-row a{color:var(--accent);align-items:center;gap:3px;font-size:9px;display:inline-flex}.license-text{color:var(--muted);margin-left:10px;font-size:9px}.section-empty{color:var(--muted);background:var(--inset);border-radius:7px;padding:19px;font-size:11px}.settings-section{border-bottom:1px solid var(--border);grid-template-columns:1fr 1.9fr;gap:45px;padding:28px 0;display:grid}.settings-section:first-child{padding-top:0}.settings-description h2{font-size:15px}.settings-description p{color:var(--muted);max-width:240px;margin-top:8px;font-size:11px}.settings-fields{flex-direction:column;gap:20px;display:flex}.settings-fields>label>select{max-width:290px}.settings-fields label{font-size:11px}.settings-fields input,.settings-fields select{font-size:12px}.agent-setting h3{align-items:center;gap:8px;margin-bottom:13px;font-size:12px;display:flex}.agent-setting h3 svg{color:var(--muted)}.agent-setting{border-bottom:1px solid var(--border);padding-bottom:22px}.agent-setting:last-of-type{border-bottom:0;padding-bottom:0}.settings-actions{justify-content:flex-end;padding:25px 0;display:flex}.diagnostics-section{margin-top:20px}.diagnostics-section h2{font-size:17px}.diagnostics-section p{color:var(--muted);margin-top:7px;font-size:11px}.diagnostics-section>.row-between{margin-bottom:22px}.diagnostics-list{border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:0 19px}.diagnostic-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:17px 0;display:flex}.diagnostic-row:last-child{border-bottom:0}.diagnostic-row>div{flex:1;min-width:0}.diagnostic-row strong{font-size:12px}.diagnostic-row small{color:var(--muted);overflow-wrap:anywhere;margin-top:5px;font-size:10px;line-height:1.5;display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(460%)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}@media (width>=1600px){.main-content{padding-left:70px;padding-right:70px}.welcome{padding-top:40px}.welcome-workflow{margin-top:65px;padding-top:37px;padding-bottom:37px}.welcome h1{font-size:58px}.welcome-copy{font-size:16px}}@media (width<=1200px){.sidebar{width:210px;padding-left:12px;padding-right:12px}.workspace-shell{margin-left:210px}.main-content{padding:30px}.topbar{padding:14px 25px}.source-list{gap:13px}.asset-catalog-intro{padding:20px}.asset-grid{gap:14px}.workspace-tools>div{gap:12px}.next-link{gap:8px}.next-link small{font-size:8px}.settings-section{grid-template-columns:1fr 1.8fr;gap:25px}.welcome h1{font-size:43px}}@media (width<=980px){.sidebar{width:190px;padding-left:9px;padding-right:9px}.workspace-shell{margin-left:190px}.brand{gap:8px;margin-left:7px;font-size:15px}.brand-mark{width:33px;height:33px}.brand small{font-size:8px}.main-content{padding:27px 25px}.topbar{gap:10px;padding:12px 20px}.topbar-actions{gap:7px}.agent-pill{display:none}.overview-grid{grid-template-columns:1fr}.project-info dl{grid-template-columns:1fr 1fr;display:grid}.project-info .button{width:auto}.workspace-tools>div{grid-template-columns:1fr}.next-link{padding:10px 0}.next-link small{font-size:10px}.welcome h1{font-size:38px}.welcome-workflow,.welcome-bottom{gap:20px}.source-list{display:none}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.page-heading .button{font-size:10px}.settings-section{grid-template-columns:1fr;gap:20px}.settings-description p{max-width:none}.chat-suggestions{grid-template-columns:1fr}.chat-intro{padding:15px 10px 25px}.chat-intro h2{font-size:24px}}@media (width<=760px){.sidebar{z-index:41;width:240px;transition:transform .2s;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-backdrop{z-index:40;background:#0004;border:0;position:fixed;inset:0}.workspace-shell{margin-left:0}.mobile-menu{margin-left:-6px;display:flex}.topbar{gap:10px;min-height:62px;padding:10px 18px}.breadcrumb{gap:7px}.breadcrumb>svg,.breadcrumb .slash,.breadcrumb>.muted{display:none}.breadcrumb>span:first-of-type{max-width:150px}.topbar-actions{gap:6px}.topbar-actions .button{padding:7px 9px;font-size:11px}.topbar-actions .desktop-text{display:none}.main-content{padding:25px 22px 35px}.welcome{padding-top:18px}.welcome h1{font-size:41px}.welcome-copy{font-size:13px}.welcome-workflow{gap:20px;margin-top:35px;padding:25px 0}.welcome-workflow h3{font-size:12px}.welcome-workflow p{font-size:10px}.welcome-bottom small{font-size:9px}.page-heading{gap:13px;margin-bottom:25px}.page-heading h1{font-size:23px}.page-heading p{font-size:11px}.page-heading>.button{white-space:normal;max-width:180px;font-size:10px}.modal{padding:22px}.statusbar{padding:7px 17px}.statusbar>span:last-child{font-size:8px}.log-toggle{padding:12px 18px}.chat-message{gap:10px;padding:0}.chat-intro{padding-top:8px}.chat-suggestions{grid-template-columns:1fr 1fr}.chat-suggestions button{padding:13px 10px;font-size:10px}.chat-suggestions button>svg:first-child{display:none}.chat-suggestions small{line-height:1.5}.composer-caption{font-size:8px}.extension-row{gap:11px;padding:16px}.extension-row>.badge{font-size:9px}.extension-icon{width:33px;height:33px}.plan-actions{flex-wrap:wrap}.plan-actions>div{margin-left:auto}.plan-body{max-height:46dvh}.task-progress>.row-between{flex-direction:column;align-items:flex-start}.task-progress>.row-between>.button-row{align-self:flex-end}.task-row summary{gap:9px;padding:14px;font-size:11px}.task-detail{padding-left:42px}.epic-heading{padding:16px}.asset-detail-preview{max-height:190px}}@media (width<=480px){.main-content{padding:23px 18px 30px}.welcome h1{letter-spacing:-1.4px;font-size:34px}.welcome-kicker{letter-spacing:.8px;font-size:7px}.welcome-copy br{display:none}.welcome-workflow{grid-template-columns:1fr;gap:20px}.welcome-workflow>div{min-height:55px;padding-left:40px}.welcome-workflow svg{width:22px;position:absolute;top:0;left:0}.welcome-workflow h3{margin-bottom:5px}.welcome-workflow p{max-width:260px}.workflow-number{font-size:8px;top:0;right:0}.welcome-bottom{grid-template-columns:1fr;gap:0;padding-top:12px}.page-heading{flex-direction:column;align-items:flex-start}.page-heading .button{max-width:none;min-height:34px}.project-journey{gap:7px}.journey-step{gap:5px;font-size:9px}.journey-step>span{width:22px;height:22px;font-size:8px}.journey-line{margin-left:0}.project-info dl{grid-template-columns:1fr}.next-step{padding:22px}.next-step h2{font-size:23px}.engine-options{gap:5px}.option-card{flex-wrap:wrap;gap:5px;padding:10px 7px;font-size:10px}.option-card small{font-size:8px}.form-columns{gap:10px}.modal{width:calc(100vw - 20px);padding:20px}.modal-heading h2{font-size:21px}.plan-actions>.button{padding-left:0}.plan-actions>div{justify-content:flex-end;width:100%}.chat-view .page-heading{flex-direction:row}.chat-view .page-heading h1{font-size:20px}.chat-view .page-heading p{font-size:10px}.chat-view .page-heading>.badge{font-size:9px}.chat-suggestions{grid-template-columns:1fr}.chat-intro>p{font-size:11px}.chat-intro h2{font-size:22px}.chat-intro>.assistant-avatar{width:42px;height:42px;margin-bottom:15px}.chat-suggestions{margin-top:19px}.chat-suggestions button>svg:first-child{display:block}.asset-search{flex-wrap:wrap}.search-input{flex:1 0 100%}.asset-search select{flex:1}.asset-search .button{flex-shrink:0}.asset-grid{gap:10px}.asset-preview{height:135px}.asset-card-info{padding:12px 9px 10px}.asset-card-info h3{font-size:11px}.asset-card-info p{font-size:8px}.asset-card-info p>span{margin:0 2px}.asset-card-footer{padding:8px 9px;font-size:7px}.asset-card-footer>span:last-child{max-width:75px;line-height:1.4}.asset-catalog-intro{padding:19px}.asset-catalog-intro small{font-size:9px}.asset-types{gap:3px}.asset-types button{padding:6px 8px}.extension-row{align-items:flex-start}.extension-row>.badge{white-space:normal;max-width:80px;font-size:8px}.extension-icon{display:none}.extension-title{flex-wrap:wrap;gap:4px}.extension-row p{font-size:10px}.diagnostics-section>.row-between{align-items:flex-start;gap:12px}.diagnostics-section h2{font-size:15px}.diagnostics-section p,.diagnostics-section .button{font-size:10px}.statusbar>span:last-child{white-space:nowrap;max-width:190px;overflow:hidden}.log-type{width:95px;font-size:9px}.log-line{gap:8px}.tabs-list{gap:18px}.tabs-list button{font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.progress-track.indeterminate>div{width:40%;transform:translate(70%)}.asset-card:hover,.asset-preview:hover img{transform:none}}.permission-card fieldset{margin:18px 0}.permission-options>label{border:1px solid var(--border);border-radius:6px;flex-direction:row;align-items:flex-start;gap:10px;margin:8px 0;padding:10px}.permission-options input[type=radio]{width:15px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.permission-options small{color:var(--muted);margin-top:4px;font-size:10px;font-weight:400;display:block}.permission-options .permission-freeform{border:0;flex-direction:column;padding:8px 0;display:flex}.preview-link{color:var(--accent);margin-bottom:15px}.extension-reference{margin-left:10px}.modal-loading{z-index:60;background:var(--surface);min-width:270px;box-shadow:var(--shadow);border-radius:10px;padding:20px;position:fixed;bottom:60px;right:25px}.attach-asset{background:var(--inset);border-radius:8px;margin:16px 0;padding:17px}.attach-asset>small{color:var(--muted);margin:9px 0 13px;font-size:11px;line-height:1.6;display:block}.task-assets li{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.task-assets li strong{color:var(--text);font-weight:500}.task-assets li span,.task-assets li small{color:var(--muted);font-size:10px}.directory-picker-field{gap:8px;min-width:0;display:grid}.directory-picker-row{align-items:center;gap:10px;min-width:0;display:flex}.directory-picker-row input{text-overflow:ellipsis;cursor:default;flex:1;min-width:0}.directory-picker-row .button{flex-shrink:0}.directory-picker-field>small{color:var(--muted);font-size:12px;line-height:1.5}@media (width<=560px){.directory-picker-row{flex-direction:column;align-items:stretch}}.pending-request-notice{z-index:25;border-bottom:1px solid var(--warning);justify-content:space-between;align-items:center;gap:18px;padding:14px 30px;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.pending-request-notice{border-bottom:1px solid color-mix(in srgb, var(--warning), transparent 60%)}}.pending-request-notice{background:var(--surface);box-shadow:0 3px 12px #15251b06}.pending-request-notice>div{color:var(--warning);align-items:center;gap:10px;display:flex}.pending-request-notice strong{font-size:12px;font-weight:600}.pending-request-notice small{color:var(--muted);margin-top:3px;font-size:10px;display:block}.pending-count{color:var(--warning);background:var(--surface)}.status-dot.waiting{background:var(--warning)}.permission-waiting{color:var(--warning);flex:1;font-size:12px}.permission-card{scroll-margin-top:90px}.permission-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.permission-reason{overflow-wrap:anywhere;font-size:12px;line-height:1.8}.permission-summary{margin:17px 0}.permission-summary>div{margin-top:13px}.permission-summary dt{color:var(--muted);margin-bottom:6px;font-size:10px}.permission-summary dd{overflow-wrap:anywhere;margin:0;font-size:11px}.permission-card .permission-summary pre{white-space:pre-wrap;max-height:none;margin:0;line-height:1.7}.permission-technical{margin:17px 0}.permission-technical summary{color:var(--muted);cursor:pointer;padding:5px 0;font-size:11px}.permission-technical summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (width<=760px){.pending-request-notice{gap:10px;padding:12px 18px}.pending-request-notice strong{font-size:11px}.pending-request-notice .button{padding:7px 9px;font-size:10px}.pending-request-notice .button svg{display:none}}@media (width<=480px){.pending-request-notice{align-items:flex-start}.pending-request-notice small{font-size:9px}.pending-request-notice>div>svg{display:none}}.agent-activity-strip{border-bottom:1px solid var(--border);background:var(--surface);min-height:51px;color:var(--muted);z-index:24;justify-content:space-between;align-items:center;gap:16px;padding:10px 30px;display:flex;position:relative}.agent-activity-current{align-items:center;gap:10px;min-width:0;display:flex}.agent-activity-icon{flex-shrink:0;place-items:center;display:grid}.agent-activity-strip.is-live .agent-activity-icon{color:var(--accent);animation:2s ease-in-out infinite activity-breathe}.agent-activity-strip.is-waiting .agent-activity-icon{color:var(--warning)}.agent-activity-copy{min-width:0}.agent-activity-title{align-items:baseline;gap:9px;min-height:17px;display:flex}.agent-activity-title strong{color:var(--text);font-size:11px;font-weight:550}.activity-parallel{white-space:nowrap;font-size:9px}.agent-activity-detail{white-space:nowrap;text-overflow:ellipsis;max-width:58vw;margin-top:2px;font-size:10px;display:block;overflow:hidden}.activity-history{flex-shrink:0}.activity-history>summary{cursor:pointer;align-items:center;gap:7px;padding:5px 0 5px 8px;font-size:10px;list-style:none;display:flex}.activity-history>summary::-webkit-details-marker{display:none}.activity-history>summary>span{font-variant-numeric:tabular-nums;color:var(--muted)}.activity-history[open]>summary>svg{transform:rotate(180deg)}.activity-history>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}.activity-history-panel{border:1px solid var(--border);background:var(--surface);border-radius:0 0 9px 9px;width:min(430px,100% - 40px);position:absolute;top:calc(100% - 1px);right:20px;box-shadow:0 12px 30px #15251b14}.activity-history-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.activity-history-heading strong{color:var(--text);font-size:11px;font-weight:550}.activity-history-heading span{font-size:9px}.activity-history ol{overscroll-behavior:contain;max-height:min(340px,40dvh);margin:0;padding:3px 16px;list-style:none;overflow:auto}.activity-history li{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:11px 0;font-size:10px;display:flex}.activity-history li:last-child{border-bottom:0}.activity-history li>svg{flex-shrink:0;margin-top:2px}.activity-history li>div{flex:1;min-width:0}.activity-history li strong{color:var(--text);font-weight:500}.activity-history li p{overflow-wrap:anywhere;margin:4px 0;font-size:10px;line-height:1.5}.activity-history li small{margin-top:3px;font-size:9px;display:block}.activity-history li time{font-variant-numeric:tabular-nums;font-size:9px}.activity-history li[data-status=failed] small{color:var(--danger)}.activity-history li[data-status=waiting_permission] small{color:var(--warning)}.chat-activity-label{color:var(--muted);flex:1;font-size:11px}@keyframes activity-breathe{0%,to{opacity:.55}50%{opacity:1}}@media (width<=760px){.agent-activity-strip{gap:8px;padding:9px 18px}.agent-activity-title{gap:6px}.agent-activity-title strong{font-size:10px}.agent-activity-detail{max-width:56vw;font-size:9px}.activity-parallel{display:none}.activity-history>summary{gap:5px;font-size:9px}.activity-history-panel{width:calc(100% - 24px);right:12px}}@media (prefers-reduced-motion:reduce){.agent-activity-strip.is-live .agent-activity-icon{animation:none}}.plan-activity-state{color:var(--muted);align-items:center;gap:9px;padding:12px 0;font-size:11px;display:flex}.plan-activity-state.is-live>svg{color:var(--accent);animation:2s ease-in-out infinite activity-breathe}@media (prefers-reduced-motion:reduce){.plan-activity-state.is-live>svg{animation:none}}.interview-round{border:1px solid var(--border);background:var(--surface);border-radius:12px;max-width:760px;margin:4px 0 12px;padding:21px 23px}.interview-heading{color:var(--accent);align-items:center;gap:11px;display:flex}.interview-heading strong{color:var(--text);font-size:13px;font-weight:600;display:block}.interview-heading span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.interview-introduction{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;margin:15px 0 0;font-size:12px;line-height:1.7}.interview-question{border:0;border-top:1px solid var(--border);min-width:0;margin:22px 0 0;padding:19px 0 0}.interview-question legend{overflow-wrap:anywhere;width:100%;padding:0 0 2px;font-size:12px;font-weight:600;line-height:1.6}.interview-number{background:var(--inset);width:20px;height:20px;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:5px;place-items:center;margin-right:9px;font-size:10px;display:inline-grid}.interview-question legend small{color:var(--muted);margin-left:8px;font-size:9px;font-weight:400}.interview-description,.interview-instruction{color:var(--muted);margin:3px 0 11px;font-size:10px;line-height:1.6}.interview-choices{flex-wrap:wrap;gap:8px;display:flex}.interview-choice{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:row;align-items:flex-start;gap:9px;max-width:100%;padding:11px 13px;font-size:11px;line-height:1.5;transition:border-color .14s,background .14s;display:flex}.interview-choice:hover{border-color:var(--accent);background:var(--inset)}.interview-choice.selected{border-color:var(--accent);background:var(--accent-soft)}.interview-choice:focus-within{outline:2px solid var(--accent);outline-offset:2px}.interview-choice input{width:14px;height:14px;accent-color:var(--accent);box-shadow:none;flex-shrink:0;margin:1px 0 0;padding:0}.interview-choice span{overflow-wrap:anywhere;min-width:0}.interview-choice:has(input:disabled){opacity:.6;cursor:default}.interview-custom{color:var(--muted);margin-top:13px;font-size:10px;display:block}.interview-question textarea{resize:vertical;background:var(--surface);width:100%;min-width:0;margin-top:7px;padding:11px 12px;font-size:12px;line-height:1.6}.interview-range-readout{justify-content:space-between;align-items:baseline;gap:10px;margin:10px 0 13px;display:flex}.interview-range-readout output{color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.interview-range-readout span{color:var(--muted);font-size:10px}.interview-range-controls{align-items:center;gap:18px;display:flex}.interview-range-controls input[type=range]{min-width:0;height:30px;accent-color:var(--accent);box-shadow:none;background:0 0;border:0;flex:1;margin:0;padding:0}.interview-range-controls input[type=number]{flex-shrink:0;width:86px;padding:9px;font-size:12px}.interview-field-error{color:var(--danger);margin:8px 0 0;font-size:10px;line-height:1.5}.interview-submit{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:23px;padding-top:17px;display:flex}.interview-submit>span{color:var(--muted);font-size:10px}.interview-round>.banner,.interview-round>.progress-wrap{margin-top:16px}.interview-answered{border:1px solid var(--border);background:var(--surface);border-radius:9px;max-width:760px}.interview-answered summary{cursor:pointer;align-items:center;gap:10px;padding:13px 15px;list-style:none;display:flex}.interview-answered summary::-webkit-details-marker{display:none}.interview-answered summary>svg:first-child{color:var(--accent);flex-shrink:0}.interview-answered summary strong{font-size:11px;font-weight:550}.interview-answered summary span{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:10px}.interview-answered summary>svg:last-child{color:var(--muted);flex-shrink:0}.interview-answered[open] summary>svg:last-child{transform:rotate(180deg)}.interview-answered dl{margin:0;padding:0 15px 14px}.interview-answered dl>div{border-top:1px solid var(--border);padding:12px 0}.interview-answered dt{color:var(--muted);font-size:10px}.interview-answered dd{overflow-wrap:anywhere;white-space:pre-wrap;margin:5px 0 0;font-size:12px;line-height:1.6}.interview-complete{align-items:flex-start;gap:12px;padding:17px 0;display:flex}.interview-complete>svg{color:var(--accent);flex-shrink:0}.interview-complete strong{font-size:13px}.interview-complete p{white-space:pre-line;font-size:12px;line-height:1.7}.interview-complete .button{margin-top:8px}@media (width<=760px){.interview-round{padding:16px 14px}.interview-choice{flex:100%;padding:11px}.interview-range-controls{gap:12px}.interview-submit{flex-wrap:wrap}.interview-submit .button{margin-left:auto}}@media (prefers-reduced-motion:reduce){.interview-choice{transition:none}}.generated-fragment{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px}.interview-introduction .markdown>:last-child,.interview-complete .markdown>:last-child{margin-bottom:0}.task-verification .markdown:empty{display:none}@media (prefers-reduced-motion:reduce){.generated-fragment{opacity:1!important;filter:none!important;color:inherit!important;text-shadow:none!important;background:0 0!important}}.workflow-journal{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex:none;width:100%;min-width:0;margin:0 0 18px;overflow:hidden}.workflow-journal-toggle{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:14px 18px;display:flex}.workflow-journal-mark{width:32px;height:32px;color:var(--accent);background:var(--accent-soft);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.workflow-journal-heading{flex:1;gap:3px;min-width:0;display:grid}.workflow-journal-heading strong{font-size:14px;font-weight:600}.workflow-journal-heading small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.journal-toggle-label{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.workflow-journal-toggle[aria-expanded=true] .journal-toggle-label svg{transform:rotate(180deg)}.workflow-journal-body{max-height:240px;padding:0 18px 14px 22px;animation:.22s ease-out journal-enter;overflow:auto}.workflow-journal-rows{margin:0;padding:0;list-style:none}.workflow-journal-rows li{align-items:flex-start;gap:12px;padding:9px 0;font-size:12px;display:flex;position:relative}.workflow-journal-rows li:not(:last-child):after{content:"";background:var(--border);width:1px;position:absolute;top:28px;bottom:-8px;left:11px}.journal-node{border:1px solid var(--border);width:23px;height:23px;color:var(--accent);background:var(--surface);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.workflow-journal-rows li>div{flex:1;min-width:0;padding-top:3px}.workflow-journal-rows strong{overflow-wrap:anywhere;font-weight:500}.workflow-journal-rows small{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;display:block}.workflow-journal-rows [data-status=completed] .journal-node{background:var(--accent-soft);border-color:#0000}.workflow-journal.is-live [data-status=running] .journal-node{box-shadow:0 0 0 4px var(--accent-soft);animation:1.6s ease-in-out infinite journal-pulse}.journal-row-status{color:var(--muted);flex-shrink:0;padding-top:3px}.workflow-journal progress{width:100%;height:4px;accent-color:var(--accent);margin-top:10px;display:block}.journal-bars{align-items:center;gap:3px;height:20px;display:flex}.journal-bars i{background:currentColor;border-radius:2px;width:3px;height:13px;animation:1.1s ease-in-out infinite alternate journal-bar}.journal-bars i:nth-child(2){animation-delay:-.4s}.journal-bars i:nth-child(3){animation-delay:-.7s}.journal-error{color:var(--danger);overflow-wrap:anywhere;margin:10px 0;font-size:12px}.journal-legacy-note{color:var(--muted);margin:8px 0 0;font-size:12px}.workflow-journal[data-state=permission] .workflow-journal-mark,.workflow-journal[data-state=failed] .workflow-journal-mark{color:var(--danger)}@keyframes journal-bar{0%{opacity:.5;transform:scaleY(.35)}to{opacity:1;transform:scaleY(1)}}@keyframes journal-pulse{50%{box-shadow:0 0 0 1px var(--accent-soft)}}@keyframes journal-enter{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.workflow-journal *,.workflow-journal-body{transition:none!important;animation:none!important}}.agent-permission-setting{align-items:center;gap:10px;display:flex!important}.agent-permission-setting input{flex:none}.settings-permission-hint{color:var(--muted);max-width:560px;margin:0;font-size:12px;line-height:1.6}.asset-selection-wizard{min-width:0}.modal:has(.asset-selection-wizard){width:min(1180px,100vw - 64px);max-width:1180px}.asset-selection-wizard .workflow-journal-body{max-height:115px}.selection-status-line{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;margin:16px 0;font-size:12px;display:flex}.selection-layout{border:1px solid var(--border);border-radius:12px;grid-template-columns:230px minmax(0,1fr);min-height:365px;display:grid;overflow:hidden}.selection-needs{background:var(--surface-secondary,var(--bg));border-right:1px solid var(--border);flex-direction:column;gap:5px;padding:10px;display:flex}.selection-needs button{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;padding:12px 10px;display:flex}.selection-needs button.active{background:var(--surface);border-color:var(--border);box-shadow:0 2px 8px #00000004}.selection-needs button:hover{background:var(--accent-soft)}.selection-needs button>span:last-child{min-width:0}.selection-needs strong{overflow-wrap:anywhere;font-size:12px;font-weight:550;display:block}.selection-needs small{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.4;display:block}.selection-need-number{font:11px var(--font-mono,monospace);color:var(--accent);flex-shrink:0;width:20px}.selection-content{min-width:0;max-height:440px;padding:22px;overflow:auto}.selection-need-heading{align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.selection-need-heading>div{flex:1;min-width:0}.selection-need-heading h3,.selection-summary-panel h3{margin:9px 0;font-size:20px;font-weight:550;line-height:1.25}.selection-need-heading p,.selection-summary-panel p{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.selection-query{border:1px solid var(--border);background:var(--surface);border-radius:9px;align-items:center;gap:9px;margin:16px 0;padding:7px 8px 7px 12px;display:flex}.selection-query>svg{color:var(--muted);flex-shrink:0}.selection-query input{box-shadow:none;background:0 0;border:0;flex:1;min-width:0;padding:4px}.selection-query .button{padding:8px 11px;font-size:11px}.selection-candidates{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px;display:grid}.selection-option{border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:0;transition:border-color .16s,box-shadow .16s;overflow:hidden}.selection-option.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.selection-option-preview{background:var(--bg);place-items:center;height:123px;display:grid;position:relative;overflow:hidden}.selection-option-preview img{object-fit:contain;width:100%;height:100%}.selection-preview-unavailable{color:var(--muted);place-items:center;gap:9px;font-size:10px;display:grid}.selection-chosen{background:var(--accent);color:#fff;border-radius:5px;align-items:center;gap:4px;padding:4px 7px;font-size:10px;display:flex;position:absolute;top:7px;left:7px}.selection-option-copy{min-width:0;padding:12px}.selection-option-copy>small{color:var(--muted);overflow-wrap:anywhere;font-size:10px;display:block}.selection-option-copy h4{overflow-wrap:anywhere;margin:5px 0 7px;font-size:13px;font-weight:550;line-height:1.5}.selection-option-copy p{color:var(--muted);overflow-wrap:anywhere;margin:0 0 10px;font-size:11px;line-height:1.65}.selection-asset-meta{flex-wrap:wrap;gap:5px;margin-bottom:8px;font-size:9px;display:flex}.selection-asset-meta span{background:var(--bg);border-radius:4px;padding:3px 5px}.selection-option-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.selection-option-actions a,.selection-license-link{color:var(--accent);align-items:center;gap:3px;font-size:10px;display:inline-flex}.selection-option-actions .button{padding:6px 9px;font-size:10px}.selection-option audio{width:100%;height:32px;margin-top:10px;display:block}.selection-provider-warning{color:var(--muted);align-items:flex-start;gap:8px;font-size:11px;line-height:1.6;display:flex}.selection-provider-warning svg{flex-shrink:0;margin-top:2px}.selection-manual-note{background:var(--accent-soft);border-radius:8px;gap:10px;margin-top:14px;padding:12px;font-size:11px;line-height:1.7;display:flex}.selection-manual-note svg{flex-shrink:0;margin-top:2px}.selection-upload-toggle{margin-top:15px}.selection-upload-form{border:1px solid var(--border);border-radius:10px;gap:13px;margin-top:12px;padding:15px;display:grid}.selection-upload-form label{gap:7px;font-size:11px;display:grid}.selection-upload-form input{width:100%;min-width:0}.selection-footer{justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.selection-footer>div{align-items:center;gap:10px;display:flex}.selection-footer small{max-width:210px;color:var(--muted);font-size:10px;line-height:1.6}.selection-footer .button{white-space:normal}.selection-summary-panel ul{margin:20px 0;padding:0;list-style:none}.selection-summary-panel li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.selection-summary-panel li strong{font-size:13px;display:block}.selection-summary-panel li small{color:var(--muted);margin-top:5px;font-size:11px;display:block}.selection-summary-note{margin-top:16px!important}.selection-recovery,.selection-reopen-panel,.journal-asset-stage{background:var(--accent-soft);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin:12px 0;padding:14px;font-size:12px;display:flex}.selection-reopen-panel{margin:0 0 18px;padding:18px}.selection-reopen-panel p{color:var(--muted);margin:5px 0 0;font-size:12px}.journal-asset-stage{padding:10px 12px}.selection-pending{padding:20px 0}.asset-media-preview{background:var(--surface);border-radius:10px;width:100%;min-width:0;overflow:hidden}.asset-media-item{background:var(--bg);min-width:0;position:relative}.asset-media-item.media-image{background-color:var(--bg);background-image:linear-gradient(45deg,#88998e0c 25%,#0000 25%),linear-gradient(-45deg,#88998e0c 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#88998e0c 75%),linear-gradient(-45deg,#0000 75%,#88998e0c 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;place-items:center;min-height:220px;display:grid}.asset-media-item img{object-fit:contain;width:100%;height:300px;display:block}.asset-media-item img.media-failed{display:none}.asset-media-item audio{width:100%;height:40px;display:block;margin:0!important}.asset-media-item video{background:#17221d;width:100%;min-height:170px;max-height:350px;display:block}.asset-audio-art{min-height:140px;color:var(--accent);flex-direction:column;justify-content:center;align-items:center;gap:13px;padding:16px;display:flex}.asset-audio-art span{overflow-wrap:anywhere;text-align:center;font-size:12px;line-height:1.5}.asset-video-hint{color:var(--muted);align-items:center;gap:7px;padding:8px 12px;font-size:11px;display:flex}.asset-media-unavailable{min-height:140px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px 16px;display:flex}.asset-media-unavailable strong{overflow-wrap:anywhere;font-size:12px;font-weight:500;line-height:1.5}.asset-media-unavailable small{font-size:11px;line-height:1.6}.asset-media-navigation{border-top:1px solid var(--border);align-items:center;gap:5px;padding:7px;display:flex}.asset-media-navigation label{flex:1;min-width:0}.asset-media-navigation select{width:100%;min-width:0;padding:6px;font-size:11px}.asset-media-navigation .button{flex-shrink:0;min-height:28px;padding:6px}.asset-media-count{color:var(--muted);padding:0 10px 7px;font-size:10px;display:block}.asset-media-more{white-space:normal;width:100%;font-size:11px;display:flex}.asset-media-error{color:var(--danger);margin:0;padding:8px 12px;font-size:11px;line-height:1.6}.asset-media-loading{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px;position:absolute;inset:auto 10px 10px}.asset-media-loading .progress-wrap{margin:0}.asset-media-loading .progress-label{font-size:10px}.asset-media-preview.is-compact{border-radius:0}.asset-media-preview.is-compact .media-image{min-height:145px}.asset-media-preview.is-compact .asset-media-item img{height:156px}.asset-media-preview.is-compact .asset-audio-art{min-height:105px}.asset-media-preview.is-compact .asset-media-item video{min-height:145px;max-height:175px}.asset-media-preview.is-compact .asset-media-unavailable{min-height:145px;padding:12px}.asset-card>.asset-media-preview{border-bottom:1px solid var(--border)}.selection-media-wrap{min-width:0;position:relative}.selection-staged-preview{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-top:16px;padding:14px}.selection-staged-preview>.asset-media-preview{margin-top:12px}.yandex-platform{text-align:left;width:100%;margin-bottom:12px}.yandex-platform small{margin-left:auto}.yandex-config{border:0;gap:18px;margin:18px 0;padding:0;display:grid}.yandex-config>legend{margin-bottom:12px;font-weight:600}.yandex-config fieldset{border:0;min-width:0;padding:0}.yandex-features{grid-template-columns:1fr 1fr;gap:12px;display:grid}.yandex-features label{align-items:center;gap:8px;display:flex}.yandex-products{gap:12px;display:grid}.yandex-product{border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr 1fr 80px;gap:10px;padding:12px;display:grid}.yandex-product>label{min-width:0}.yandex-product input{max-width:100%}.yandex-view{max-width:1500px;margin:0 auto}.yandex-layout{grid-template-columns:minmax(420px,1.45fr) minmax(290px,1fr);align-items:start;gap:22px;display:grid}.yandex-main,.yandex-side{gap:22px;min-width:0;display:grid}.yandex-view .panel{min-width:0;padding:24px}.yandex-view label:not(.checkbox-options){gap:7px;margin:10px 0;display:grid}.yandex-view input,.yandex-view select,.yandex-view textarea{width:100%;min-width:0}.yandex-view input[type=checkbox]{width:auto}.yandex-view .checkbox-options,.yandex-features label{flex-direction:row;align-items:center;display:flex}.yandex-view h2{margin:0 0 16px;font-size:17px}.yandex-view small,.yandex-view .muted{color:var(--muted)}.yandex-view .row-actions{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.yandex-build-result{flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0;display:flex}.yandex-build-result>span{color:var(--muted);font-size:12px}.yandex-issues{overflow-wrap:anywhere;padding-left:18px}.yandex-issues small{display:block}.yandex-issues li{margin:9px 0}.yandex-diagnostic{border-top:1px solid var(--border);overflow-wrap:anywhere;margin-top:18px;padding-top:16px}.yandex-diagnostic ul{padding-left:18px}.publication-evidence{max-height:520px;margin:20px 0;padding:0;list-style:none;overflow:auto}.publication-evidence li{overflow-wrap:anywhere;gap:12px;padding:0 0 20px;display:flex;position:relative}.publication-evidence li:not(:last-child):before{content:"";border-left:1px solid var(--border);position:absolute;top:10px;bottom:0;left:4px}.publication-dot{background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px;margin-top:5px}.publication-evidence p{margin:5px 0;font-size:13px}.publication-evidence small{font-size:11px}.publication-submit{border-top:1px solid var(--border);padding-top:16px}.publication-journal[data-status=running]{border-color:var(--accent)}.publication-journal .progress-wrap{margin:14px 0}.yandex-view a{color:var(--accent);overflow-wrap:anywhere}.yandex-view .yandex-features label,.yandex-view .checkbox-options label{flex-direction:row;align-items:center;gap:8px;margin:0;display:flex}.yandex-view .yandex-features{gap:18px 14px}.yandex-layout{grid-template-columns:minmax(360px,1.45fr) minmax(260px,1fr)}.publication-material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.publication-material-grid article{border:1px solid var(--border);border-radius:9px;min-width:0;overflow:hidden}.publication-material-grid article>a{background:var(--inset);display:block}.publication-material-grid img{object-fit:contain;width:100%;height:160px;display:block}.publication-material-info{gap:5px;padding:12px;display:grid}.publication-material-info>span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.publication-material-info .row-actions{gap:4px;margin:6px 0 0}.publication-material-info .button{padding:6px;font-size:11px}.publication-material-fallback{background:var(--inset);height:160px;color:var(--muted);place-content:center;justify-items:center;gap:10px;font-size:12px;display:grid}.publication-material-progress{margin:16px 0}.publication-material-form input[type=file]{padding:9px;font-size:12px;overflow:hidden}.publication-material-form small{display:block}.roblox-setup-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0 0 20px;padding:18px 20px}.roblox-setup-panel p{color:var(--muted);margin:8px 0;font-size:13px;line-height:1.6}.roblox-setup-panel .settings-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.roblox-setup-panel a{font-size:13px}.voice-input{align-items:center;gap:8px;min-width:0;display:inline-flex}.voice-button{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text);border-radius:10px;place-items:center;display:grid}.voice-button.voice-recording{color:#ff5c7a;border-color:#ff5c7a}.voice-live{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;max-width:320px;font-size:12px;display:inline-flex;overflow:hidden}.voice-live i{background:#ff5c7a;border-radius:50%;flex:none;width:8px;height:8px}.voice-error{color:var(--warning)}.orchestrator-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:10px;padding:10px 14px}.orchestrator-panel summary{cursor:pointer;align-items:baseline;gap:10px;display:flex}.orchestrator-panel summary span{color:var(--muted);font-size:13px}.orchestrator-panel ul{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 14px;margin:10px 0 0;padding:0;list-style:none;display:grid}.orchestrator-panel li{align-items:flex-start;gap:8px;display:flex}.orchestrator-panel li i{border:1.5px solid var(--border);border-radius:6px;flex:none;place-items:center;width:18px;height:18px;margin-top:2px;display:grid}.orchestrator-covered i{background:var(--accent);border-color:var(--accent);color:var(--bg)}.orchestrator-partial i{border-color:var(--warning)}.orchestrator-panel li b{font-size:13px;display:block}.orchestrator-panel li small{color:var(--muted);font-size:12px;display:block}h1,h2{font-family:var(--display-font);letter-spacing:-.01em}.brand-mark-logo{background:0 0;padding:0;overflow:hidden}.brand-mark-logo img{width:100%;height:100%;display:block}.design-switch{z-index:30;background:var(--brand-gradient);color:#0e1024;box-shadow:var(--shadow);border:0;border-radius:999px;padding:10px 16px;font-weight:800;position:fixed;bottom:44px;right:16px}.core-account{margin-bottom:32px}.core-account-summary{grid-template-columns:minmax(140px,1fr) 2fr;gap:8px;display:grid}.core-account-summary dd{margin:0}.core-account-links,.core-account-actions{flex-wrap:wrap;gap:14px;margin:16px 0;display:flex}.core-account form{gap:12px;display:grid}.core-account p{max-width:70ch}.core-account input,.core-account select{width:100%}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}