django-cfg 1.4.82__py3-none-any.whl → 1.4.83__py3-none-any.whl

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.

Potentially problematic release.


This version of django-cfg might be problematic. Click here for more details.

Files changed (56) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/centrifugo/serializers/channels.py +3 -0
  3. django_cfg/apps/centrifugo/serializers/publishes.py +2 -0
  4. django_cfg/apps/centrifugo/views/admin_api.py +1 -1
  5. django_cfg/apps/centrifugo/views/monitoring.py +116 -6
  6. django_cfg/apps/centrifugo/views/testing_api.py +1 -1
  7. django_cfg/apps/frontend/JWT_AUTO_INJECTION.md +224 -0
  8. django_cfg/apps/frontend/views.py +116 -7
  9. django_cfg/apps/tasks/api/serializers.py +82 -0
  10. django_cfg/apps/tasks/api/views.py +571 -0
  11. django_cfg/middleware/README.md +12 -0
  12. django_cfg/modules/django_client/core/generator/typescript/templates/fetchers/function.ts.jinja +1 -1
  13. django_cfg/modules/django_client/core/generator/typescript/templates/main_index.ts.jinja +7 -10
  14. django_cfg/modules/django_client/core/parser/openapi30.py +19 -1
  15. django_cfg/modules/django_client/core/parser/openapi31.py +19 -1
  16. django_cfg/pyproject.toml +1 -1
  17. django_cfg/static/frontend/admin/404.html +1 -1
  18. django_cfg/static/frontend/admin/500.html +1 -1
  19. django_cfg/static/frontend/admin/_next/static/chunks/pages/404-c283223d1afd02a2.js +1 -0
  20. django_cfg/static/frontend/admin/_next/static/chunks/pages/500-389d6d3e1f2f7fda.js +1 -0
  21. django_cfg/static/frontend/admin/_next/static/chunks/pages/{_app-9c5ca2471de6b000.js → _app-16701a4e1bc3e6ac.js} +81 -81
  22. django_cfg/static/frontend/admin/_next/static/chunks/pages/_error-5291033275c26d09.js +1 -0
  23. django_cfg/static/frontend/admin/_next/static/chunks/pages/index-88751d9f44a32105.js +1 -0
  24. django_cfg/static/frontend/admin/_next/static/chunks/pages/legal/{cookies-24588bf5551f30df.js → cookies-bb5507a122775f30.js} +1 -1
  25. django_cfg/static/frontend/admin/_next/static/chunks/pages/legal/{privacy-354dae34a4c4da59.js → privacy-f8a3d8db1a197be3.js} +1 -1
  26. django_cfg/static/frontend/admin/_next/static/chunks/pages/legal/{security-0a5d7fa591ebb1ae.js → security-aba50addd2179f8f.js} +1 -1
  27. django_cfg/static/frontend/admin/_next/static/chunks/pages/legal/{terms-c3d80322f52dc112.js → terms-4aa35cd30b5c08ad.js} +1 -1
  28. django_cfg/static/frontend/admin/_next/static/chunks/pages/private/centrifugo-1c5f00c26c77a47b.js +1 -0
  29. django_cfg/static/frontend/admin/_next/static/chunks/pages/private/profile-e93a65e8e7d9022b.js +1 -0
  30. django_cfg/static/frontend/admin/_next/static/chunks/pages/ui-0e6c0e35862789ec.js +1 -0
  31. django_cfg/static/frontend/admin/_next/static/css/806300fb98c42afb.css +3 -0
  32. django_cfg/static/frontend/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js +1 -0
  33. django_cfg/static/frontend/admin/auth.html +1 -1
  34. django_cfg/static/frontend/admin/index.html +1 -1
  35. django_cfg/static/frontend/admin/legal/cookies.html +1 -1
  36. django_cfg/static/frontend/admin/legal/privacy.html +1 -1
  37. django_cfg/static/frontend/admin/legal/security.html +1 -1
  38. django_cfg/static/frontend/admin/legal/terms.html +1 -1
  39. django_cfg/static/frontend/admin/private/centrifugo.html +1 -0
  40. django_cfg/static/frontend/admin/private/profile.html +1 -0
  41. django_cfg/static/frontend/admin/private.html +1 -1
  42. django_cfg/static/frontend/admin/ui.html +2 -2
  43. django_cfg/templatetags/django_cfg.py +57 -10
  44. {django_cfg-1.4.82.dist-info → django_cfg-1.4.83.dist-info}/METADATA +1 -1
  45. {django_cfg-1.4.82.dist-info → django_cfg-1.4.83.dist-info}/RECORD +49 -42
  46. django_cfg/static/frontend/admin/_next/static/chunks/pages/404-7cdad2942c3fb179.js +0 -1
  47. django_cfg/static/frontend/admin/_next/static/chunks/pages/500-6cdb27b00678364f.js +0 -1
  48. django_cfg/static/frontend/admin/_next/static/chunks/pages/_error-b8071a05cabe1c2d.js +0 -1
  49. django_cfg/static/frontend/admin/_next/static/chunks/pages/index-bf88192a30e013a9.js +0 -1
  50. django_cfg/static/frontend/admin/_next/static/chunks/pages/ui-73632f2d9c6b11ab.js +0 -1
  51. django_cfg/static/frontend/admin/_next/static/css/e201974f9a4d64e6.css +0 -3
  52. django_cfg/static/frontend/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_buildManifest.js +0 -1
  53. /django_cfg/static/frontend/admin/_next/static/{qEBrQJUidlI_maQ4xQnI0 → ibMHm1p66p0UGKsKnDWxn}/_ssgManifest.js +0 -0
  54. {django_cfg-1.4.82.dist-info → django_cfg-1.4.83.dist-info}/WHEEL +0 -0
  55. {django_cfg-1.4.82.dist-info → django_cfg-1.4.83.dist-info}/entry_points.txt +0 -0
  56. {django_cfg-1.4.82.dist-info → django_cfg-1.4.83.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-9c5ca2471de6b000.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/legal/privacy-354dae34a4c4da59.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="container mx-auto max-w-4xl py-16 px-4"><div class="flex flex-col gap-8"><div class="flex flex-col gap-4"><h1 class="text-4xl font-bold">Privacy Policy</h1><p class="text-lg text-muted-foreground">Last updated: <!-- -->10/27/2025</p></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Information We Collect</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We collect information that you provide directly to us, including when you create an account, use our services, or communicate with us.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">How We Use Your Information</div></div><div class="p-6 pt-0 text-muted-foreground flex flex-col gap-2"><p>We use the information we collect to:</p><ul class="list-disc list-inside flex flex-col gap-1 ml-4"><li>Provide, maintain, and improve our services</li><li>Process transactions and send related information</li><li>Send technical notices and support messages</li><li>Respond to your comments and questions</li></ul></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Information Sharing</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We do not share your personal information with third parties except as described in this privacy policy or with your consent.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Data Security</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We take reasonable measures to help protect your personal information from loss, theft, misuse, unauthorized access, disclosure, alteration, and destruction.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Your Rights</div></div><div class="p-6 pt-0 text-muted-foreground"><p>You have the right to access, update, or delete your personal information at any time. Contact us if you wish to exercise these rights.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Changes to This Policy</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We may update this privacy policy from time to time. We will notify you of any changes by posting the new policy on this page.</p></div></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/legal/privacy","query":{},"buildId":"qEBrQJUidlI_maQ4xQnI0","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-16701a4e1bc3e6ac.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/legal/privacy-f8a3d8db1a197be3.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="container mx-auto max-w-4xl py-16 px-4"><div class="flex flex-col gap-8"><div class="flex flex-col gap-4"><h1 class="text-4xl font-bold">Privacy Policy</h1><p class="text-lg text-muted-foreground">Last updated: <!-- -->10/27/2025</p></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Information We Collect</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We collect information that you provide directly to us, including when you create an account, use our services, or communicate with us.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">How We Use Your Information</div></div><div class="p-6 pt-0 text-muted-foreground flex flex-col gap-2"><p>We use the information we collect to:</p><ul class="list-disc list-inside flex flex-col gap-1 ml-4"><li>Provide, maintain, and improve our services</li><li>Process transactions and send related information</li><li>Send technical notices and support messages</li><li>Respond to your comments and questions</li></ul></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Information Sharing</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We do not share your personal information with third parties except as described in this privacy policy or with your consent.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Data Security</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We take reasonable measures to help protect your personal information from loss, theft, misuse, unauthorized access, disclosure, alteration, and destruction.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Your Rights</div></div><div class="p-6 pt-0 text-muted-foreground"><p>You have the right to access, update, or delete your personal information at any time. Contact us if you wish to exercise these rights.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Changes to This Policy</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We may update this privacy policy from time to time. We will notify you of any changes by posting the new policy on this page.</p></div></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/legal/privacy","query":{},"buildId":"ibMHm1p66p0UGKsKnDWxn","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-9c5ca2471de6b000.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/legal/security-0a5d7fa591ebb1ae.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="container mx-auto max-w-4xl py-16 px-4"><div class="flex flex-col gap-8"><div class="flex flex-col gap-4"><h1 class="text-4xl font-bold">Security Policy</h1><p class="text-lg text-muted-foreground">Last updated: <!-- -->10/27/2025</p></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Our Commitment to Security</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We take the security of your data seriously. We implement industry-standard security measures to protect your personal information from unauthorized access, disclosure, alteration, and destruction.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Data Encryption</div></div><div class="p-6 pt-0 text-muted-foreground"><p>All data transmitted between your device and our servers is encrypted using industry-standard SSL/TLS protocols. Sensitive data stored in our databases is encrypted at rest using advanced encryption standards.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Access Controls</div></div><div class="p-6 pt-0 text-muted-foreground"><p>Access to user data is strictly limited to authorized personnel who require it to perform their job functions. We employ multi-factor authentication and regular access reviews to ensure that only authorized individuals can access sensitive information.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Security Monitoring</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We continuously monitor our systems for potential security threats and vulnerabilities. Our security team actively tracks and responds to any suspicious activity or potential security incidents.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Reporting Security Issues</div></div><div class="p-6 pt-0 text-muted-foreground"><p>If you discover a security vulnerability or have concerns about our security practices, please report it to us immediately. We appreciate responsible disclosure and will work with you to address any legitimate security concerns.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Regular Security Updates</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We regularly update our systems and software to ensure that known security vulnerabilities are patched promptly. Our infrastructure undergoes periodic security audits and penetration testing to identify and address potential weaknesses.</p></div></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/legal/security","query":{},"buildId":"qEBrQJUidlI_maQ4xQnI0","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-16701a4e1bc3e6ac.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/legal/security-aba50addd2179f8f.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="container mx-auto max-w-4xl py-16 px-4"><div class="flex flex-col gap-8"><div class="flex flex-col gap-4"><h1 class="text-4xl font-bold">Security Policy</h1><p class="text-lg text-muted-foreground">Last updated: <!-- -->10/27/2025</p></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Our Commitment to Security</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We take the security of your data seriously. We implement industry-standard security measures to protect your personal information from unauthorized access, disclosure, alteration, and destruction.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Data Encryption</div></div><div class="p-6 pt-0 text-muted-foreground"><p>All data transmitted between your device and our servers is encrypted using industry-standard SSL/TLS protocols. Sensitive data stored in our databases is encrypted at rest using advanced encryption standards.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Access Controls</div></div><div class="p-6 pt-0 text-muted-foreground"><p>Access to user data is strictly limited to authorized personnel who require it to perform their job functions. We employ multi-factor authentication and regular access reviews to ensure that only authorized individuals can access sensitive information.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Security Monitoring</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We continuously monitor our systems for potential security threats and vulnerabilities. Our security team actively tracks and responds to any suspicious activity or potential security incidents.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Reporting Security Issues</div></div><div class="p-6 pt-0 text-muted-foreground"><p>If you discover a security vulnerability or have concerns about our security practices, please report it to us immediately. We appreciate responsible disclosure and will work with you to address any legitimate security concerns.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">Regular Security Updates</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We regularly update our systems and software to ensure that known security vulnerabilities are patched promptly. Our infrastructure undergoes periodic security audits and penetration testing to identify and address potential weaknesses.</p></div></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/legal/security","query":{},"buildId":"ibMHm1p66p0UGKsKnDWxn","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-9c5ca2471de6b000.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/legal/terms-c3d80322f52dc112.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="container mx-auto max-w-4xl py-16 px-4"><div class="flex flex-col gap-8"><div class="flex flex-col gap-4"><h1 class="text-4xl font-bold">Terms of Service</h1><p class="text-lg text-muted-foreground">Last updated: <!-- -->10/27/2025</p></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">1. Acceptance of Terms</div></div><div class="p-6 pt-0 text-muted-foreground"><p>By accessing and using this service, you accept and agree to be bound by the terms and provision of this agreement.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">2. Use License</div></div><div class="p-6 pt-0 text-muted-foreground"><p>Permission is granted to temporarily download one copy of the materials on our service for personal, non-commercial transitory viewing only.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">3. Disclaimer</div></div><div class="p-6 pt-0 text-muted-foreground"><p>The materials on our service are provided on an &#x27;as is&#x27; basis. We make no warranties, expressed or implied, and hereby disclaim and negate all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">4. Limitations</div></div><div class="p-6 pt-0 text-muted-foreground"><p>In no event shall we or our suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on our service.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">5. Revisions</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We may revise these terms of service at any time without notice. By using this service you are agreeing to be bound by the then current version of these terms of service.</p></div></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/legal/terms","query":{},"buildId":"qEBrQJUidlI_maQ4xQnI0","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-16701a4e1bc3e6ac.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/legal/terms-4aa35cd30b5c08ad.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="container mx-auto max-w-4xl py-16 px-4"><div class="flex flex-col gap-8"><div class="flex flex-col gap-4"><h1 class="text-4xl font-bold">Terms of Service</h1><p class="text-lg text-muted-foreground">Last updated: <!-- -->10/27/2025</p></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">1. Acceptance of Terms</div></div><div class="p-6 pt-0 text-muted-foreground"><p>By accessing and using this service, you accept and agree to be bound by the terms and provision of this agreement.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">2. Use License</div></div><div class="p-6 pt-0 text-muted-foreground"><p>Permission is granted to temporarily download one copy of the materials on our service for personal, non-commercial transitory viewing only.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">3. Disclaimer</div></div><div class="p-6 pt-0 text-muted-foreground"><p>The materials on our service are provided on an &#x27;as is&#x27; basis. We make no warranties, expressed or implied, and hereby disclaim and negate all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">4. Limitations</div></div><div class="p-6 pt-0 text-muted-foreground"><p>In no event shall we or our suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on our service.</p></div></div><div class="rounded-xl border bg-card text-card-foreground shadow"><div class="flex flex-col space-y-1.5 p-6"><div class="font-semibold leading-none tracking-tight">5. Revisions</div></div><div class="p-6 pt-0 text-muted-foreground"><p>We may revise these terms of service at any time without notice. By using this service you are agreeing to be bound by the then current version of these terms of service.</p></div></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/legal/terms","query":{},"buildId":"ibMHm1p66p0UGKsKnDWxn","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-16701a4e1bc3e6ac.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/private/centrifugo-1c5f00c26c77a47b.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col items-center justify-center bg-background py-6 px-4 sm:py-12 sm:px-6 lg:px-8 "><div class="w-full sm:max-w-md space-y-8"><div><div class="rounded-xl text-card-foreground w-full max-w-md mx-auto shadow-lg border border-border bg-card/50 backdrop-blur-sm"><div class="flex flex-col space-y-1.5 p-6 text-center pb-6"><div class="mx-auto w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-6 h-6 text-primary"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><div class="tracking-tight text-xl font-semibold">Sign In</div><div class="text-sm text-muted-foreground">Enter your email address to receive a verification code</div></div><div class="p-6 pt-0 space-y-6"><form class="space-y-6 mt-6"><div class="space-y-3"><label class="peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-foreground flex items-center gap-2" for="email-only"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg>Email Address</label><input type="email" class="flex w-full rounded-md border border-input bg-transparent px-3 py-2 shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm h-11 text-base" id="email-only" placeholder="Enter your email address" required="" value=""/></div><div class="flex items-start gap-3"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground mt-1" id="terms-email"></button><input type="checkbox" aria-hidden="true" tabindex="-1" style="position:absolute;pointer-events:none;opacity:0;margin:0;transform:translateX(-100%)" value="on"/><div class="text-sm text-muted-foreground leading-5"><label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer" for="terms-email">I agree to the<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Terms of Service</a> <!-- -->and<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Privacy Policy</a></label></div></div><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 px-4 py-2 w-full h-11 text-base font-medium" type="submit" disabled=""><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-send w-4 h-4"><path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"></path><path d="m21.854 2.147-10.94 10.939"></path></svg>Send verification code</div></button></form><div class="flex flex-col gap-3 p-3 bg-muted/30 rounded-sm border border-border "><div class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4 text-muted-foreground"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg><div class="flex flex-col gap-1"><h4 class="text-sm font-medium text-foreground">Didn&#x27;t receive the email?</h4><div class="flex flex-col gap-0.5 text-xs text-muted-foreground"><p>• Check your spam or junk folder</p><p>• Make sure you entered the correct email address</p><p>• Wait a few minutes for the email to arrive</p></div></div></div></div></div></div></div></div></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/private/centrifugo","query":{},"buildId":"ibMHm1p66p0UGKsKnDWxn","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-16701a4e1bc3e6ac.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/private/profile-e93a65e8e7d9022b.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col items-center justify-center bg-background py-6 px-4 sm:py-12 sm:px-6 lg:px-8 "><div class="w-full sm:max-w-md space-y-8"><div><div class="rounded-xl text-card-foreground w-full max-w-md mx-auto shadow-lg border border-border bg-card/50 backdrop-blur-sm"><div class="flex flex-col space-y-1.5 p-6 text-center pb-6"><div class="mx-auto w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-6 h-6 text-primary"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><div class="tracking-tight text-xl font-semibold">Sign In</div><div class="text-sm text-muted-foreground">Enter your email address to receive a verification code</div></div><div class="p-6 pt-0 space-y-6"><form class="space-y-6 mt-6"><div class="space-y-3"><label class="peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-foreground flex items-center gap-2" for="email-only"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg>Email Address</label><input type="email" class="flex w-full rounded-md border border-input bg-transparent px-3 py-2 shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm h-11 text-base" id="email-only" placeholder="Enter your email address" required="" value=""/></div><div class="flex items-start gap-3"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground mt-1" id="terms-email"></button><input type="checkbox" aria-hidden="true" tabindex="-1" style="position:absolute;pointer-events:none;opacity:0;margin:0;transform:translateX(-100%)" value="on"/><div class="text-sm text-muted-foreground leading-5"><label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer" for="terms-email">I agree to the<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Terms of Service</a> <!-- -->and<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Privacy Policy</a></label></div></div><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 px-4 py-2 w-full h-11 text-base font-medium" type="submit" disabled=""><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-send w-4 h-4"><path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"></path><path d="m21.854 2.147-10.94 10.939"></path></svg>Send verification code</div></button></form><div class="flex flex-col gap-3 p-3 bg-muted/30 rounded-sm border border-border "><div class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4 text-muted-foreground"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg><div class="flex flex-col gap-1"><h4 class="text-sm font-medium text-foreground">Didn&#x27;t receive the email?</h4><div class="flex flex-col gap-0.5 text-xs text-muted-foreground"><p>• Check your spam or junk folder</p><p>• Make sure you entered the correct email address</p><p>• Wait a few minutes for the email to arrive</p></div></div></div></div></div></div></div></div></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/private/profile","query":{},"buildId":"ibMHm1p66p0UGKsKnDWxn","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/e201974f9a4d64e6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-9c5ca2471de6b000.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/private-2f58633ddf63a5bc.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/qEBrQJUidlI_maQ4xQnI0/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col items-center justify-center bg-background py-6 px-4 sm:py-12 sm:px-6 lg:px-8 "><div class="w-full sm:max-w-md space-y-8"><div><div class="rounded-xl text-card-foreground w-full max-w-md mx-auto shadow-lg border border-border bg-card/50 backdrop-blur-sm"><div class="flex flex-col space-y-1.5 p-6 text-center pb-6"><div class="mx-auto w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-6 h-6 text-primary"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><div class="tracking-tight text-xl font-semibold">Sign In</div><div class="text-sm text-muted-foreground">Enter your email address to receive a verification code</div></div><div class="p-6 pt-0 space-y-6"><form class="space-y-6 mt-6"><div class="space-y-3"><label class="peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-foreground flex items-center gap-2" for="email-only"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg>Email Address</label><input type="email" class="flex w-full rounded-md border border-input bg-transparent px-3 py-2 shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm h-11 text-base" id="email-only" placeholder="Enter your email address" required="" value=""/></div><div class="flex items-start gap-3"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground mt-1" id="terms-email"></button><input type="checkbox" aria-hidden="true" tabindex="-1" style="position:absolute;pointer-events:none;opacity:0;margin:0;transform:translateX(-100%)" value="on"/><div class="text-sm text-muted-foreground leading-5"><label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer" for="terms-email">I agree to the<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Terms of Service</a> <!-- -->and<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Privacy Policy</a></label></div></div><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 px-4 py-2 w-full h-11 text-base font-medium" type="submit" disabled=""><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-send w-4 h-4"><path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"></path><path d="m21.854 2.147-10.94 10.939"></path></svg>Send verification code</div></button></form><div class="flex flex-col gap-3 p-3 bg-muted/30 rounded-sm border border-border "><div class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4 text-muted-foreground"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg><div class="flex flex-col gap-1"><h4 class="text-sm font-medium text-foreground">Didn&#x27;t receive the email?</h4><div class="flex flex-col gap-0.5 text-xs text-muted-foreground"><p>• Check your spam or junk folder</p><p>• Make sure you entered the correct email address</p><p>• Wait a few minutes for the email to arrive</p></div></div></div></div></div></div></div></div></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/private","query":{},"buildId":"qEBrQJUidlI_maQ4xQnI0","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/806300fb98c42afb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-905bba30877f6490.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-16701a4e1bc3e6ac.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/private-2f58633ddf63a5bc.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/ibMHm1p66p0UGKsKnDWxn/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col items-center justify-center bg-background py-6 px-4 sm:py-12 sm:px-6 lg:px-8 "><div class="w-full sm:max-w-md space-y-8"><div><div class="rounded-xl text-card-foreground w-full max-w-md mx-auto shadow-lg border border-border bg-card/50 backdrop-blur-sm"><div class="flex flex-col space-y-1.5 p-6 text-center pb-6"><div class="mx-auto w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-6 h-6 text-primary"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><div class="tracking-tight text-xl font-semibold">Sign In</div><div class="text-sm text-muted-foreground">Enter your email address to receive a verification code</div></div><div class="p-6 pt-0 space-y-6"><form class="space-y-6 mt-6"><div class="space-y-3"><label class="peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm font-medium text-foreground flex items-center gap-2" for="email-only"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg>Email Address</label><input type="email" class="flex w-full rounded-md border border-input bg-transparent px-3 py-2 shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm h-11 text-base" id="email-only" placeholder="Enter your email address" required="" value=""/></div><div class="flex items-start gap-3"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground mt-1" id="terms-email"></button><input type="checkbox" aria-hidden="true" tabindex="-1" style="position:absolute;pointer-events:none;opacity:0;margin:0;transform:translateX(-100%)" value="on"/><div class="text-sm text-muted-foreground leading-5"><label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer" for="terms-email">I agree to the<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Terms of Service</a> <!-- -->and<!-- --> <a target="_blank" rel="noopener noreferrer" class="text-primary hover:underline font-medium">Privacy Policy</a></label></div></div><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 px-4 py-2 w-full h-11 text-base font-medium" type="submit" disabled=""><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-send w-4 h-4"><path d="M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"></path><path d="m21.854 2.147-10.94 10.939"></path></svg>Send verification code</div></button></form><div class="flex flex-col gap-3 p-3 bg-muted/30 rounded-sm border border-border "><div class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail w-4 h-4 text-muted-foreground"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg><div class="flex flex-col gap-1"><h4 class="text-sm font-medium text-foreground">Didn&#x27;t receive the email?</h4><div class="flex flex-col gap-0.5 text-xs text-muted-foreground"><p>• Check your spam or junk folder</p><p>• Make sure you entered the correct email address</p><p>• Wait a few minutes for the email to arrive</p></div></div></div></div></div></div></div></div></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/private","query":{},"buildId":"ibMHm1p66p0UGKsKnDWxn","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>