@stacksjs/defaults 0.70.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +2 -0
  3. package/package.json +20 -0
  4. package/resources/assets/fonts/013717e9.woff +0 -0
  5. package/resources/assets/fonts/03355817.woff2 +0 -0
  6. package/resources/assets/fonts/0380de7e.woff2 +0 -0
  7. package/resources/assets/fonts/0ba5d32a.woff +0 -0
  8. package/resources/assets/fonts/0bd57ddf.woff2 +0 -0
  9. package/resources/assets/fonts/19de0a60.woff2 +0 -0
  10. package/resources/assets/fonts/20b87e84.woff +0 -0
  11. package/resources/assets/fonts/4bbc67e1.woff +0 -0
  12. package/resources/assets/fonts/576fb0d7.woff +0 -0
  13. package/resources/assets/fonts/5ea10ee5.woff2 +0 -0
  14. package/resources/assets/fonts/6413fc0a.woff +0 -0
  15. package/resources/assets/fonts/72c114cf.woff +0 -0
  16. package/resources/assets/fonts/73c57e73.woff2 +0 -0
  17. package/resources/assets/fonts/813dca6c.woff +0 -0
  18. package/resources/assets/fonts/8a9b0995.woff2 +0 -0
  19. package/resources/assets/fonts/90b4832f.woff +0 -0
  20. package/resources/assets/fonts/9394ab85.woff2 +0 -0
  21. package/resources/assets/fonts/9b3c7d7f.woff2 +0 -0
  22. package/resources/assets/fonts/Monaco.ttf +0 -0
  23. package/resources/assets/fonts/b1b36d74.woff +0 -0
  24. package/resources/assets/fonts/b5d74798.woff2 +0 -0
  25. package/resources/assets/fonts/b9f81a4d.woff +0 -0
  26. package/resources/assets/fonts/c9784008.woff2 +0 -0
  27. package/resources/assets/fonts/cf692227.woff +0 -0
  28. package/resources/assets/fonts/d1c6ab51.woff2 +0 -0
  29. package/resources/assets/fonts/e2eb62fc.woff +0 -0
  30. package/resources/assets/fonts/fe21f8d8.woff2 +0 -0
  31. package/resources/assets/fonts/nps/CampmateScript-Regular.woff2 +0 -0
  32. package/resources/assets/fonts/nps/NPS_2026-variable.woff2 +0 -0
  33. package/resources/assets/fonts/nps/RedwoodSerif-Regular.woff2 +0 -0
  34. package/resources/assets/fonts/nps/SequoiaSans-Regular.woff2 +0 -0
  35. package/resources/assets/fonts/nps/Switchback-Regular.woff2 +0 -0
  36. package/resources/assets/images/app-icon.png +0 -0
  37. package/resources/assets/images/bg-img.png +0 -0
  38. package/resources/assets/images/park-ridge.svg +15 -0
  39. package/resources/assets/images/topography.svg +1 -0
  40. package/resources/assets/scripts/main.ts +2153 -0
  41. package/resources/assets/styles/README.md +19 -0
  42. package/resources/assets/styles/docs/main.css +1 -0
  43. package/resources/assets/styles/docs/overrides.css +1 -0
  44. package/resources/assets/styles/docs/vars.css +8 -0
  45. package/resources/assets/styles/main.css +1419 -0
  46. package/resources/components/Button.stx +70 -0
  47. package/resources/components/Buttons/BaseButton.stx +39 -0
  48. package/resources/components/Buttons/Counter.stx +28 -0
  49. package/resources/components/Buttons/ToggleDark.stx +11 -0
  50. package/resources/components/Container.stx +10 -0
  51. package/resources/components/Dashboard/.gitkeep +0 -0
  52. package/resources/components/Dashboard/Auth/ForgotPassword.stx +127 -0
  53. package/resources/components/Dashboard/Auth/Login.stx +212 -0
  54. package/resources/components/Dashboard/Auth/Register.stx +306 -0
  55. package/resources/components/Dashboard/Avatar.stx +123 -0
  56. package/resources/components/Dashboard/Billing/ActivePlan.stx +57 -0
  57. package/resources/components/Dashboard/Billing/CardBrands.stx +32 -0
  58. package/resources/components/Dashboard/Billing/CardForm.stx +34 -0
  59. package/resources/components/Dashboard/Billing/OneTimePayment.stx +28 -0
  60. package/resources/components/Dashboard/Billing/PaymentForm.stx +33 -0
  61. package/resources/components/Dashboard/Billing/PaymentMethod.stx +66 -0
  62. package/resources/components/Dashboard/Billing/PaymentMethodList.stx +52 -0
  63. package/resources/components/Dashboard/Billing/Plans.stx +136 -0
  64. package/resources/components/Dashboard/Buttons/AppButton.stx +48 -0
  65. package/resources/components/Dashboard/Buttons/IconButton.stx +20 -0
  66. package/resources/components/Dashboard/Card.stx +78 -0
  67. package/resources/components/Dashboard/Chart.stx +75 -0
  68. package/resources/components/Dashboard/CodeEditor.stx +41 -0
  69. package/resources/components/Dashboard/Commerce/BulkActionBar.stx +70 -0
  70. package/resources/components/Dashboard/Commerce/CategoriesTable.stx +133 -0
  71. package/resources/components/Dashboard/Commerce/CouponsTable.stx +161 -0
  72. package/resources/components/Dashboard/Commerce/CustomersTable.stx +142 -0
  73. package/resources/components/Dashboard/Commerce/Delivery/DeliveryRoutesTable.stx +80 -0
  74. package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveryTable.stx +85 -0
  75. package/resources/components/Dashboard/Commerce/Delivery/DriversTable.stx +99 -0
  76. package/resources/components/Dashboard/Commerce/Delivery/LicenseKeysTable.stx +92 -0
  77. package/resources/components/Dashboard/Commerce/Delivery/LicenseTemplatesTable.stx +88 -0
  78. package/resources/components/Dashboard/Commerce/Delivery/Pagination.stx +122 -0
  79. package/resources/components/Dashboard/Commerce/Delivery/SearchFilter.stx +23 -0
  80. package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodsTable.stx +80 -0
  81. package/resources/components/Dashboard/Commerce/Delivery/ShippingRatesTable.stx +59 -0
  82. package/resources/components/Dashboard/Commerce/Delivery/ShippingZonesTable.stx +71 -0
  83. package/resources/components/Dashboard/Commerce/Delivery/TabNavigation.stx +36 -0
  84. package/resources/components/Dashboard/Commerce/Forms/CouponsForm.stx +191 -0
  85. package/resources/components/Dashboard/Commerce/OrdersTable.stx +131 -0
  86. package/resources/components/Dashboard/Commerce/ProductsTable.stx +170 -0
  87. package/resources/components/Dashboard/CreateRecordModal.stx +363 -0
  88. package/resources/components/Dashboard/DashboardLayout.stx +155 -0
  89. package/resources/components/Dashboard/Deployments/ActivityFeed.stx +54 -0
  90. package/resources/components/Dashboard/Deployments/DeployScript.stx +23 -0
  91. package/resources/components/Dashboard/Deployments/DeploymentHistory.stx +97 -0
  92. package/resources/components/Dashboard/Deployments/DeploymentList.stx +94 -0
  93. package/resources/components/Dashboard/Deployments/LiveTerminalOutput.stx +18 -0
  94. package/resources/components/Dashboard/Elements/Dropdown.stx +57 -0
  95. package/resources/components/Dashboard/Email/EmailActivityChart.stx +111 -0
  96. package/resources/components/Dashboard/Email/EmailCompose.stx +72 -0
  97. package/resources/components/Dashboard/Email/EmailDetail.stx +105 -0
  98. package/resources/components/Dashboard/Email/EmailList.stx +117 -0
  99. package/resources/components/Dashboard/Email/EmailSearch.stx +40 -0
  100. package/resources/components/Dashboard/Email/EmailSidebar.stx +133 -0
  101. package/resources/components/Dashboard/GlobalSearch.stx +124 -0
  102. package/resources/components/Dashboard/MobileSidebar.stx +47 -0
  103. package/resources/components/Dashboard/Modals/BaseModal.stx +50 -0
  104. package/resources/components/Dashboard/Modals/Popups/Alert.stx +112 -0
  105. package/resources/components/Dashboard/Modals/Popups/Toast.stx +70 -0
  106. package/resources/components/Dashboard/Modals/ToastWrapper.stx +35 -0
  107. package/resources/components/Dashboard/Monitoring/ErrorDetailModal.stx +228 -0
  108. package/resources/components/Dashboard/Monitoring/ErrorsTable.stx +184 -0
  109. package/resources/components/Dashboard/Navbar.stx +194 -0
  110. package/resources/components/Dashboard/NavbarModern.stx +188 -0
  111. package/resources/components/Dashboard/NotificationErrorModal.stx +105 -0
  112. package/resources/components/Dashboard/NotificationStatusBadge.stx +20 -0
  113. package/resources/components/Dashboard/Pagination.stx +90 -0
  114. package/resources/components/Dashboard/Queue/QueueTable.stx +127 -0
  115. package/resources/components/Dashboard/Settings/Forms/AIForm.stx +126 -0
  116. package/resources/components/Dashboard/Settings/Forms/AnalyticsForm.stx +52 -0
  117. package/resources/components/Dashboard/Settings/Forms/AppForm.stx +157 -0
  118. package/resources/components/Dashboard/Settings/Forms/CLIForm.stx +66 -0
  119. package/resources/components/Dashboard/Settings/Forms/CacheForm.stx +253 -0
  120. package/resources/components/Dashboard/Settings/Forms/CloudForm.stx +441 -0
  121. package/resources/components/Dashboard/Settings/Forms/DNSForm.stx +307 -0
  122. package/resources/components/Dashboard/Settings/Forms/DatabaseForm.stx +168 -0
  123. package/resources/components/Dashboard/Settings/Forms/EmailForm.stx +100 -0
  124. package/resources/components/Dashboard/Settings/Forms/FileSystemForm.stx +259 -0
  125. package/resources/components/Dashboard/Settings/Forms/HashingForm.stx +119 -0
  126. package/resources/components/Dashboard/Settings/Forms/LibraryForm.stx +389 -0
  127. package/resources/components/Dashboard/Settings/Forms/QueueForm.stx +219 -0
  128. package/resources/components/Dashboard/Settings/Forms/SearchEngineForm.stx +48 -0
  129. package/resources/components/Dashboard/Settings/Forms/SecurityForm.stx +143 -0
  130. package/resources/components/Dashboard/Settings/Forms/ServicesForm.stx +194 -0
  131. package/resources/components/Dashboard/Settings/Forms/StorageForm.stx +191 -0
  132. package/resources/components/Dashboard/Settings/Forms/TeamsForm.stx +33 -0
  133. package/resources/components/Dashboard/Settings/SettingsFormManager.stx +181 -0
  134. package/resources/components/Dashboard/SettingsHeader.stx +88 -0
  135. package/resources/components/Dashboard/SettingsSidebar.stx +234 -0
  136. package/resources/components/Dashboard/Sidebar.stx +23 -0
  137. package/resources/components/Dashboard/SidebarModern.stx +249 -0
  138. package/resources/components/Dashboard/Skeleton/LoadingCard.stx +15 -0
  139. package/resources/components/Dashboard/Skeleton/LoadingDetails.stx +26 -0
  140. package/resources/components/Dashboard/Table.stx +82 -0
  141. package/resources/components/Dashboard/TerminalContainer.stx +97 -0
  142. package/resources/components/Dashboard/Tooltip.stx +166 -0
  143. package/resources/components/Dashboard/Transaction/index.stx +88 -0
  144. package/resources/components/Dashboard/UI/ActivityTable.stx +54 -0
  145. package/resources/components/Dashboard/UI/Avatar.stx +102 -0
  146. package/resources/components/Dashboard/UI/Badge.stx +66 -0
  147. package/resources/components/Dashboard/UI/Button.stx +73 -0
  148. package/resources/components/Dashboard/UI/Card.stx +51 -0
  149. package/resources/components/Dashboard/UI/ChartCard.stx +36 -0
  150. package/resources/components/Dashboard/UI/Checkbox.stx +74 -0
  151. package/resources/components/Dashboard/UI/ConfirmDialog.stx +74 -0
  152. package/resources/components/Dashboard/UI/DataTable.stx +45 -0
  153. package/resources/components/Dashboard/UI/Dropdown.stx +72 -0
  154. package/resources/components/Dashboard/UI/DropdownItem.stx +80 -0
  155. package/resources/components/Dashboard/UI/EmptyState.stx +50 -0
  156. package/resources/components/Dashboard/UI/FilterBar.stx +48 -0
  157. package/resources/components/Dashboard/UI/Input.stx +77 -0
  158. package/resources/components/Dashboard/UI/Modal.stx +75 -0
  159. package/resources/components/Dashboard/UI/PageHeader.stx +69 -0
  160. package/resources/components/Dashboard/UI/PageLayout.stx +84 -0
  161. package/resources/components/Dashboard/UI/Pagination.stx +126 -0
  162. package/resources/components/Dashboard/UI/QuickLinks.stx +31 -0
  163. package/resources/components/Dashboard/UI/RouterLink.stx +31 -0
  164. package/resources/components/Dashboard/UI/Select.stx +84 -0
  165. package/resources/components/Dashboard/UI/ServiceHealth.stx +38 -0
  166. package/resources/components/Dashboard/UI/StatsCard.stx +79 -0
  167. package/resources/components/Dashboard/UI/Table.stx +143 -0
  168. package/resources/components/Dashboard/UI/Tabs.stx +45 -0
  169. package/resources/components/Dashboard/UI/Textarea.stx +93 -0
  170. package/resources/components/Dashboard/UI/Toggle.stx +84 -0
  171. package/resources/components/Dashboard/UI/WindowControls.stx +135 -0
  172. package/resources/components/Dashboard/Widget.stx +89 -0
  173. package/resources/components/Dashboard/WindowControls.stx +119 -0
  174. package/resources/components/Dashboard/index.ts +106 -0
  175. package/resources/components/Docs/Demo/ComboboxCode.md +114 -0
  176. package/resources/components/Docs/Demo/ComboboxDemo.stx +91 -0
  177. package/resources/components/Docs/Demo/DialogCode.md +42 -0
  178. package/resources/components/Docs/Demo/DialogDemo.stx +76 -0
  179. package/resources/components/Docs/Demo/DocsPlayground.stx +39 -0
  180. package/resources/components/Docs/Demo/DropdownCode.md +109 -0
  181. package/resources/components/Docs/Demo/DropdownDemo.stx +82 -0
  182. package/resources/components/Docs/Demo/Hero.stx +100 -0
  183. package/resources/components/Docs/Demo/ListboxCode.md +87 -0
  184. package/resources/components/Docs/Demo/ListboxDemo.stx +59 -0
  185. package/resources/components/Docs/Demo/NotificationCode.md +173 -0
  186. package/resources/components/Docs/Demo/NotificationDemo.stx +99 -0
  187. package/resources/components/Docs/Demo/PopoverCode.md +161 -0
  188. package/resources/components/Docs/Demo/PopoverDemo.stx +96 -0
  189. package/resources/components/Docs/Demo/RadioGroupCode.md +98 -0
  190. package/resources/components/Docs/Demo/RadioGroupDemo.stx +53 -0
  191. package/resources/components/Docs/Demo/StepperCode.md +216 -0
  192. package/resources/components/Docs/Demo/StepperDemo.stx +137 -0
  193. package/resources/components/Docs/Demo/SwitchCode.md +24 -0
  194. package/resources/components/Docs/Demo/SwitchDemo.stx +28 -0
  195. package/resources/components/Docs/Home.stx +7 -0
  196. package/resources/components/Docs/HomeContributors.stx +23 -0
  197. package/resources/components/Docs/HomeSponsors.stx +17 -0
  198. package/resources/components/Docs/HomeTeam.stx +18 -0
  199. package/resources/components/Docs/TeamMember.stx +79 -0
  200. package/resources/components/Email/EmailButton.stx +32 -0
  201. package/resources/components/Email/EmailDivider.stx +20 -0
  202. package/resources/components/Email/EmailImage.stx +24 -0
  203. package/resources/components/Email/EmailLayout.stx +55 -0
  204. package/resources/components/Email/EmailLink.stx +22 -0
  205. package/resources/components/Email/EmailSection.stx +20 -0
  206. package/resources/components/Email/EmailText.stx +30 -0
  207. package/resources/components/Forum/ForumBreadcrumb.stx +38 -0
  208. package/resources/components/Forum/ForumCategory.stx +16 -0
  209. package/resources/components/Forum/ForumCategoryItem.stx +46 -0
  210. package/resources/components/Forum/ForumLayout.stx +36 -0
  211. package/resources/components/Forum/ForumPagination.stx +39 -0
  212. package/resources/components/Forum/ForumPost.stx +71 -0
  213. package/resources/components/Forum/ForumReplyForm.stx +76 -0
  214. package/resources/components/Forum/ForumSidebar.stx +86 -0
  215. package/resources/components/Forum/ForumTopicItem.stx +77 -0
  216. package/resources/components/Forum/ForumTopicList.stx +23 -0
  217. package/resources/components/HelloWorld.stx +253 -0
  218. package/resources/components/Logo.stx +10 -0
  219. package/resources/components/Marketing/CallToAction.stx +30 -0
  220. package/resources/components/Marketing/ComingSoon.stx +155 -0
  221. package/resources/components/Marketing/Faqs.stx +99 -0
  222. package/resources/components/Marketing/Feature.stx +32 -0
  223. package/resources/components/Marketing/Fields.stx +28 -0
  224. package/resources/components/Marketing/Footer.stx +33 -0
  225. package/resources/components/Marketing/Header.stx +51 -0
  226. package/resources/components/Marketing/Hero.stx +46 -0
  227. package/resources/components/Marketing/Layout.stx +26 -0
  228. package/resources/components/Marketing/NavLink.stx +13 -0
  229. package/resources/components/Marketing/Plan.stx +43 -0
  230. package/resources/components/Marketing/Pricing.stx +120 -0
  231. package/resources/components/Marketing/PrimaryFeatures.stx +80 -0
  232. package/resources/components/Marketing/PrimaryFeatures2.stx +98 -0
  233. package/resources/components/Marketing/SecondaryFeatures.stx +80 -0
  234. package/resources/components/Marketing/Testimonials.stx +120 -0
  235. package/resources/components/Pagination.stx +149 -0
  236. package/resources/components/Playground.stx +9 -0
  237. package/resources/components/README.md +87 -0
  238. package/resources/components/Storefront/AnnouncementBar.stx +17 -0
  239. package/resources/components/Storefront/CartDrawer.stx +227 -0
  240. package/resources/components/Storefront/CheckoutSteps.stx +50 -0
  241. package/resources/components/Storefront/Footer.stx +81 -0
  242. package/resources/components/Storefront/Header.stx +66 -0
  243. package/resources/components/Storefront/OrderSummary.stx +79 -0
  244. package/resources/components/Storefront/ProductCard.stx +63 -0
  245. package/resources/components/Storefront/ProductGallery.stx +88 -0
  246. package/resources/components/Storefront/QuantitySelector.stx +97 -0
  247. package/resources/components/index.ts +13 -0
  248. package/resources/emails/email-verification.stx +46 -0
  249. package/resources/emails/layouts/base.html +113 -0
  250. package/resources/emails/password-changed.stx +55 -0
  251. package/resources/emails/password-reset.stx +43 -0
  252. package/resources/emails/subscription-confirmation.stx +99 -0
  253. package/resources/emails/welcome.stx +48 -0
  254. package/resources/functions/README.md +28 -0
  255. package/resources/functions/counter.ts +13 -0
  256. package/resources/functions/dark.ts +4 -0
  257. package/resources/functions/dashboard/analytics.ts +238 -0
  258. package/resources/functions/dashboard/config-io.ts +316 -0
  259. package/resources/functions/dashboard/data.ts +375 -0
  260. package/resources/functions/dashboard/library.ts +250 -0
  261. package/resources/functions/dashboard/sidebar.ts +537 -0
  262. package/resources/functions/dashboard/system.ts +150 -0
  263. package/resources/layouts/403.stx +188 -0
  264. package/resources/layouts/404.stx +34 -0
  265. package/resources/layouts/README.md +14 -0
  266. package/resources/layouts/dashboard/default.stx +20 -0
  267. package/resources/layouts/dashboard/guest.stx +10 -0
  268. package/resources/layouts/default.stx +3 -0
  269. package/resources/layouts/maintenance.stx +11 -0
  270. package/resources/layouts/storefront.stx +73 -0
  271. package/resources/layouts/system-tray/default.stx +3 -0
  272. package/resources/modules/.gitkeep +0 -0
  273. package/resources/plugins/.gitkeep +0 -0
  274. package/resources/plugins/preloader.ts +308 -0
  275. package/resources/types/README.md +3 -0
  276. package/resources/views/cart.stx +149 -0
  277. package/resources/views/checkout/contact.stx +101 -0
  278. package/resources/views/checkout/payment.stx +114 -0
  279. package/resources/views/checkout/shipping.stx +120 -0
  280. package/resources/views/coming-soon.stx +9 -0
  281. package/resources/views/dashboard/custom-page.stx +45 -0
  282. package/resources/views/dashboard/index.stx +24 -0
  283. package/resources/views/emails/welcome.stx +0 -0
  284. package/resources/views/errors/tester.stx +26 -0
  285. package/resources/views/index.stx +2865 -0
  286. package/resources/views/orders/[id].stx +130 -0
@@ -0,0 +1,1419 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+
7
+ body {
8
+ font-family: 'Tahoma', sans-serif;
9
+ overflow: hidden;
10
+ width: 100vw;
11
+ height: 100vh;
12
+ position: relative;
13
+ }
14
+
15
+ /* Login Screen */
16
+ .login-screen {
17
+ position: fixed;
18
+ top: 0;
19
+ left: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ z-index: 10000;
23
+ background: linear-gradient(to bottom, #5a7fbe 0%, #305ca8 50%, #1e4a8a 100%);
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ }
28
+
29
+ .login-screen.hidden {
30
+ display: none;
31
+ }
32
+
33
+ .login-background {
34
+ width: 100%;
35
+ height: 100%;
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ }
40
+
41
+ .login-container {
42
+ background: rgba(255, 255, 255, 0.95);
43
+ border-radius: 8px;
44
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
45
+ padding: 40px;
46
+ min-width: 400px;
47
+ text-align: center;
48
+ position: relative;
49
+ }
50
+
51
+ .login-close-btn {
52
+ position: absolute;
53
+ top: 10px;
54
+ right: 10px;
55
+ width: 30px;
56
+ height: 30px;
57
+ border: 1px solid #999;
58
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
59
+ border-radius: 3px;
60
+ cursor: pointer;
61
+ font-size: 24px;
62
+ line-height: 1;
63
+ color: #333;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ font-family: Arial, sans-serif;
68
+ transition: all 0.2s;
69
+ padding: 0;
70
+ }
71
+
72
+ .login-close-btn:hover {
73
+ background: linear-gradient(to bottom, #e74c3c 0%, #c0392b 100%);
74
+ color: white;
75
+ border-color: #c0392b;
76
+ }
77
+
78
+ .login-header {
79
+ margin-bottom: 30px;
80
+ }
81
+
82
+ .login-logo {
83
+ font-size: 36px;
84
+ font-weight: bold;
85
+ color: #0831d9;
86
+ margin-bottom: 10px;
87
+ font-family: 'Segoe UI', Tahoma, sans-serif;
88
+ letter-spacing: 2px;
89
+ }
90
+
91
+ .login-subtitle {
92
+ font-size: 14px;
93
+ color: #374151;
94
+ }
95
+
96
+ .login-users {
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: 15px;
100
+ margin-bottom: 30px;
101
+ }
102
+
103
+ .login-user-button {
104
+ display: flex;
105
+ align-items: center;
106
+ gap: 15px;
107
+ padding: 15px 20px;
108
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
109
+ border: 2px solid #003c74;
110
+ border-radius: 4px;
111
+ cursor: pointer;
112
+ transition: all 0.2s;
113
+ font-family: 'Tahoma', sans-serif;
114
+ font-size: 14px;
115
+ }
116
+
117
+ .login-user-button:hover {
118
+ background: linear-gradient(to bottom, #e3f2fd 0%, #bbdefb 100%);
119
+ border-color: #0066cc;
120
+ box-shadow: 0 2px 8px rgba(0, 102, 204, 0.3);
121
+ }
122
+
123
+ .login-user-button:active {
124
+ background: linear-gradient(to bottom, #bbdefb 0%, #90caf9 100%);
125
+ }
126
+
127
+ .login-user-icon {
128
+ font-size: 32px;
129
+ }
130
+
131
+ .login-user-name {
132
+ font-size: 16px;
133
+ font-weight: bold;
134
+ color: #1e293b;
135
+ }
136
+
137
+ .login-footer {
138
+ padding-top: 20px;
139
+ border-top: 1px solid #cbd5e1;
140
+ }
141
+
142
+ .login-footer-text {
143
+ font-size: 12px;
144
+ color: #64748b;
145
+ }
146
+
147
+ /* Login Forms */
148
+ .login-form {
149
+ position: fixed;
150
+ top: 0;
151
+ left: 0;
152
+ width: 100%;
153
+ height: 100%;
154
+ z-index: 10001;
155
+ background: linear-gradient(to bottom, #5a7fbe 0%, #305ca8 50%, #1e4a8a 100%);
156
+ display: flex;
157
+ align-items: center;
158
+ justify-content: center;
159
+ }
160
+
161
+ .login-form.hidden {
162
+ display: none;
163
+ }
164
+
165
+ .login-form-background {
166
+ width: 100%;
167
+ height: 100%;
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ }
172
+
173
+ .login-form-container {
174
+ background: rgba(255, 255, 255, 0.95);
175
+ border-radius: 8px;
176
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
177
+ padding: 30px;
178
+ min-width: 450px;
179
+ max-width: 500px;
180
+ position: relative;
181
+ }
182
+
183
+ .login-form-header {
184
+ margin-bottom: 25px;
185
+ }
186
+
187
+ .login-back-button {
188
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
189
+ border: 1px solid #003c74;
190
+ padding: 6px 12px;
191
+ border-radius: 3px;
192
+ cursor: pointer;
193
+ font-family: 'Tahoma', sans-serif;
194
+ font-size: 12px;
195
+ margin-bottom: 15px;
196
+ transition: all 0.2s;
197
+ }
198
+
199
+ .login-back-button:hover {
200
+ background: linear-gradient(to bottom, #e3f2fd 0%, #bbdefb 100%);
201
+ border-color: #0066cc;
202
+ }
203
+
204
+ .login-form-title {
205
+ display: flex;
206
+ align-items: center;
207
+ gap: 12px;
208
+ justify-content: center;
209
+ }
210
+
211
+ .login-form-icon {
212
+ font-size: 32px;
213
+ }
214
+
215
+ .login-form-title h2 {
216
+ font-size: 24px;
217
+ color: #0831d9;
218
+ font-family: 'Segoe UI', Tahoma, sans-serif;
219
+ }
220
+
221
+ .login-form-content {
222
+ text-align: left;
223
+ }
224
+
225
+ .login-form-prompt {
226
+ font-size: 13px;
227
+ color: #374151;
228
+ margin-bottom: 20px;
229
+ text-align: center;
230
+ }
231
+
232
+ .login-input-group {
233
+ margin-bottom: 15px;
234
+ }
235
+
236
+ .login-input-group label {
237
+ display: block;
238
+ font-size: 13px;
239
+ font-weight: bold;
240
+ color: #1e293b;
241
+ margin-bottom: 6px;
242
+ }
243
+
244
+ .login-input {
245
+ width: 100%;
246
+ padding: 8px 12px;
247
+ border: 2px solid #cbd5e1;
248
+ border-radius: 3px;
249
+ font-family: 'Tahoma', sans-serif;
250
+ font-size: 13px;
251
+ transition: all 0.2s;
252
+ }
253
+
254
+ .login-input:focus {
255
+ outline: none;
256
+ border-color: #0066cc;
257
+ box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
258
+ }
259
+
260
+ .login-actions {
261
+ margin-top: 25px;
262
+ display: flex;
263
+ justify-content: flex-end;
264
+ }
265
+
266
+ .login-submit-btn {
267
+ display: flex;
268
+ align-items: center;
269
+ gap: 8px;
270
+ padding: 10px 20px;
271
+ background: linear-gradient(to bottom, #3b82f6 0%, #2563eb 100%);
272
+ border: 1px solid #1e40af;
273
+ border-radius: 4px;
274
+ color: white;
275
+ font-family: 'Tahoma', sans-serif;
276
+ font-size: 14px;
277
+ font-weight: bold;
278
+ cursor: pointer;
279
+ transition: all 0.2s;
280
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
281
+ }
282
+
283
+ .login-submit-btn:hover {
284
+ background: linear-gradient(to bottom, #2563eb 0%, #1d4ed8 100%);
285
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
286
+ }
287
+
288
+ .login-submit-btn:active {
289
+ background: linear-gradient(to bottom, #1d4ed8 0%, #1e40af 100%);
290
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
291
+ transform: translateY(1px);
292
+ }
293
+
294
+ .login-btn-icon {
295
+ font-size: 16px;
296
+ }
297
+
298
+ /* Desktop Background */
299
+ .desktop {
300
+ width: 100%;
301
+ height: 100%;
302
+ background-image: url('/assets/images/bg-img.png');
303
+ background-size: cover;
304
+ background-position: center;
305
+ background-repeat: no-repeat;
306
+ position: relative;
307
+ display: flex;
308
+ flex-direction: column;
309
+ }
310
+
311
+ /* Desktop Icons Grid */
312
+ .desktop-icons {
313
+ flex: 1;
314
+ padding: 20px;
315
+ position: relative;
316
+ overflow-y: auto;
317
+ }
318
+
319
+ .desktop-icon {
320
+ position: absolute;
321
+ width: 120px !important;
322
+ display: flex !important;
323
+ flex-direction: column !important;
324
+ align-items: center !important;
325
+ gap: 8px !important;
326
+ cursor: pointer !important;
327
+ padding: 8px !important;
328
+ border: 2px solid transparent !important;
329
+ background: transparent !important;
330
+ transition: background 0.15s !important;
331
+ user-select: none !important;
332
+ margin: 0 !important;
333
+ float: none !important;
334
+ transform: none !important;
335
+ }
336
+
337
+ #trash-icon {
338
+ bottom: 60px !important;
339
+ right: 20px !important;
340
+ left: auto !important;
341
+ top: auto !important;
342
+ z-index: 100 !important;
343
+ }
344
+
345
+ #sponsor-icon {
346
+ top: 20px !important;
347
+ right: 20px !important;
348
+ left: auto !important;
349
+ bottom: auto !important;
350
+ z-index: 100 !important;
351
+ }
352
+
353
+ .desktop-icon:hover {
354
+ background: rgba(51, 153, 255, 0.2);
355
+ border: 2px dotted rgba(51, 153, 255, 0.6);
356
+ }
357
+
358
+ .desktop-icon.selected {
359
+ background: rgba(51, 153, 255, 0.35) !important;
360
+ border: 1px dotted rgba(51, 153, 255, 0.9) !important;
361
+ outline: 1px dotted rgba(255, 255, 255, 0.6);
362
+ outline-offset: -2px;
363
+ }
364
+
365
+ .desktop-icon-image {
366
+ font-size: 48px;
367
+ text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
368
+ position: relative;
369
+ display: inline-block;
370
+ }
371
+
372
+ /* Shortcut arrow overlay for link icons */
373
+ .desktop-icon[data-icon-type="link"] .desktop-icon-image::after {
374
+ content: '';
375
+ position: absolute;
376
+ bottom: 0;
377
+ left: 0;
378
+ width: 18px;
379
+ height: 18px;
380
+ background: linear-gradient(135deg, transparent 0%, transparent 45%, white 45%, white 100%);
381
+ border: 1px solid rgba(0, 0, 0, 0.3);
382
+ border-radius: 2px;
383
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
384
+ }
385
+
386
+ .desktop-icon[data-icon-type="link"] .desktop-icon-image::before {
387
+ content: '→';
388
+ position: absolute;
389
+ bottom: 1px;
390
+ left: 3px;
391
+ font-size: 12px;
392
+ color: #0831d9;
393
+ font-weight: bold;
394
+ z-index: 1;
395
+ text-shadow: 0 0 1px white;
396
+ transform: rotate(-45deg);
397
+ }
398
+
399
+ .desktop-icon-label {
400
+ font-size: 12px;
401
+ color: white;
402
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
403
+ text-align: center;
404
+ word-wrap: break-word;
405
+ width: 100%;
406
+ padding: 2px 4px;
407
+ border-radius: 2px;
408
+ }
409
+
410
+ .desktop-icon.selected .desktop-icon-label {
411
+ background: rgba(8, 49, 217, 0.85);
412
+ color: white;
413
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
414
+ }
415
+
416
+ .desktop-icon-label-input {
417
+ font-size: 12px;
418
+ color: white;
419
+ background: #0831d9;
420
+ border: 1px solid white;
421
+ text-align: center;
422
+ width: 100%;
423
+ padding: 2px 4px;
424
+ font-family: 'Tahoma', sans-serif;
425
+ outline: none;
426
+ }
427
+
428
+ /* taskbar */
429
+ .taskbar {
430
+ height: 40px;
431
+ background: linear-gradient(to bottom, #245edb 0%, #3f8cf3 9%, #245edb 18%, #245edb 92%, #1941a5 100%);
432
+ border-top: 1px solid #0831d9;
433
+ display: flex;
434
+ align-items: center;
435
+ padding: 0 8px;
436
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
437
+ position: relative;
438
+ z-index: 10000;
439
+ }
440
+
441
+ .start-button {
442
+ height: 32px;
443
+ background: linear-gradient(to bottom, #5eac56 0%, #3c873c 100%);
444
+ border: 1px solid #16591e;
445
+ border-radius: 4px;
446
+ padding: 0 12px;
447
+ display: flex;
448
+ align-items: center;
449
+ gap: 6px;
450
+ cursor: pointer;
451
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
452
+ font-weight: bold;
453
+ color: white;
454
+ font-size: 14px;
455
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
456
+ transition: all 0.1s;
457
+ }
458
+
459
+ .start-button:hover {
460
+ background: linear-gradient(to bottom, #6ec165 0%, #4a9d4a 100%);
461
+ }
462
+
463
+ .start-button:active {
464
+ box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
465
+ }
466
+
467
+ .start-logo {
468
+ font-size: 20px;
469
+ }
470
+
471
+ .taskbar-tasks {
472
+ flex: 1;
473
+ display: flex;
474
+ gap: 4px;
475
+ margin-left: 12px;
476
+ overflow-x: auto;
477
+ }
478
+
479
+ .taskbar-task {
480
+ height: 32px;
481
+ min-width: 160px;
482
+ max-width: 200px;
483
+ background: linear-gradient(to bottom, #3f8cf3 0%, #245edb 100%);
484
+ border: 1px solid #0831d9;
485
+ border-radius: 3px;
486
+ padding: 0 12px;
487
+ display: flex;
488
+ align-items: center;
489
+ gap: 8px;
490
+ cursor: pointer;
491
+ color: white;
492
+ font-size: 12px;
493
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
494
+ transition: all 0.1s;
495
+ }
496
+
497
+ .taskbar-task:hover {
498
+ background: linear-gradient(to bottom, #4a9dff 0%, #2968e8 100%);
499
+ }
500
+
501
+ .taskbar-task.active {
502
+ background: linear-gradient(to bottom, #245edb 0%, #1941a5 100%);
503
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
504
+ }
505
+
506
+ .taskbar-task-icon {
507
+ font-size: 16px;
508
+ }
509
+
510
+ .taskbar-task-label {
511
+ flex: 1;
512
+ overflow: hidden;
513
+ text-overflow: ellipsis;
514
+ white-space: nowrap;
515
+ }
516
+
517
+ .taskbar-clock {
518
+ height: 32px;
519
+ background: rgba(0, 0, 0, 0.1);
520
+ border: 1px solid rgba(0, 0, 0, 0.2);
521
+ border-radius: 3px;
522
+ padding: 0 12px;
523
+ display: flex;
524
+ align-items: center;
525
+ color: white;
526
+ font-size: 11px;
527
+ margin-left: auto;
528
+ white-space: nowrap;
529
+ }
530
+
531
+ /* window */
532
+ .window {
533
+ position: absolute;
534
+ background: white;
535
+ border: 1px solid #0831d9;
536
+ border-radius: 8px 8px 0 0;
537
+ box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
538
+ min-width: 400px;
539
+ min-height: 300px;
540
+ display: none;
541
+ flex-direction: column;
542
+ z-index: 100;
543
+ resize: both;
544
+ overflow: hidden;
545
+ }
546
+
547
+ /* Resize cursors for window edges */
548
+ .window:not(.maximized) {
549
+ cursor: default;
550
+ }
551
+
552
+ .window:not(.maximized):hover {
553
+ cursor: default;
554
+ }
555
+
556
+ .window.active {
557
+ display: flex !important;
558
+ }
559
+
560
+ .window.minimizing {
561
+ display: flex !important;
562
+ transition: opacity 0.2s ease, transform 0.2s ease;
563
+ }
564
+
565
+ .window.restoring {
566
+ display: flex !important;
567
+ transition: opacity 0.2s ease, transform 0.2s ease;
568
+ }
569
+
570
+ .window.minimized {
571
+ display: none !important;
572
+ pointer-events: none;
573
+ }
574
+
575
+ .window.maximized {
576
+ transition: all 0.2s ease !important;
577
+ left: 0 !important;
578
+ top: 0 !important;
579
+ width: 100% !important;
580
+ height: calc(100% - 40px) !important;
581
+ border-radius: 0 !important;
582
+ }
583
+
584
+ .window:not(.maximized) {
585
+ transition: all 0.2s ease;
586
+ }
587
+
588
+ .window.maximized .window-titlebar {
589
+ border-radius: 0 !important;
590
+ }
591
+
592
+ .window-titlebar {
593
+ height: 32px;
594
+ background: linear-gradient(to bottom, #0997ff 0%, #0053ee 100%);
595
+ border-radius: 8px 8px 0 0;
596
+ padding: 0 8px;
597
+ display: flex;
598
+ align-items: center;
599
+ gap: 8px;
600
+ cursor: move;
601
+ user-select: none;
602
+ }
603
+
604
+ .window-icon {
605
+ font-size: 16px;
606
+ }
607
+
608
+ .window-title {
609
+ flex: 1;
610
+ color: white;
611
+ font-size: 13px;
612
+ font-weight: bold;
613
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
614
+ }
615
+
616
+ .window-controls {
617
+ display: flex;
618
+ gap: 4px;
619
+ }
620
+
621
+ .window-control {
622
+ width: 21px;
623
+ height: 21px;
624
+ border: 1px solid #003c74;
625
+ border-radius: 3px;
626
+ display: flex;
627
+ align-items: center;
628
+ justify-content: center;
629
+ cursor: pointer;
630
+ font-size: 14px;
631
+ font-weight: bold;
632
+ transition: all 0.1s;
633
+ background: linear-gradient(to bottom, #0997ff 0%, #0053ee 100%);
634
+ color: white;
635
+ }
636
+
637
+ .window-control:hover {
638
+ background: linear-gradient(to bottom, #1ba1ff 0%, #0d65ff 100%);
639
+ }
640
+
641
+ .window-control.close {
642
+ background: linear-gradient(to bottom, #ff5f57 0%, #e81123 100%);
643
+ border-color: #c0392b;
644
+ }
645
+
646
+ .window-control.close:hover {
647
+ background: linear-gradient(to bottom, #ff6f67 0%, #f82133 100%);
648
+ }
649
+
650
+ .window-content {
651
+ flex: 1;
652
+ padding: 20px;
653
+ overflow-y: auto;
654
+ background: white;
655
+ color: #000;
656
+ }
657
+
658
+ .window-content h2 {
659
+ font-size: 24px;
660
+ margin-bottom: 16px;
661
+ color: #0831d9;
662
+ }
663
+
664
+ .window-content h3 {
665
+ font-size: 18px;
666
+ margin: 16px 0 8px;
667
+ color: #245edb;
668
+ }
669
+
670
+ .window-content p {
671
+ margin-bottom: 12px;
672
+ line-height: 1.6;
673
+ color: #333;
674
+ }
675
+
676
+ /* Package Grid */
677
+ .package-grid {
678
+ display: grid;
679
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
680
+ gap: 12px;
681
+ margin-top: 16px;
682
+ }
683
+
684
+ .package-item {
685
+ border: 2px solid #0831d9;
686
+ padding: 12px;
687
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
688
+ cursor: pointer;
689
+ transition: all 0.2s;
690
+ }
691
+
692
+ .package-item:hover {
693
+ background: linear-gradient(to bottom, #fff7e6 0%, #f0ead0 100%);
694
+ border-color: #245edb;
695
+ transform: translateY(-2px);
696
+ box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
697
+ }
698
+
699
+ .package-emoji {
700
+ font-size: 32px;
701
+ margin-bottom: 8px;
702
+ }
703
+
704
+ .package-title {
705
+ font-weight: bold;
706
+ font-size: 14px;
707
+ margin-bottom: 4px;
708
+ color: #0831d9;
709
+ }
710
+
711
+ .package-desc {
712
+ font-size: 12px;
713
+ color: #333;
714
+ line-height: 1.4;
715
+ }
716
+
717
+ /* Feature Buttons */
718
+ .feature-buttons {
719
+ display: flex;
720
+ flex-wrap: wrap;
721
+ gap: 8px;
722
+ margin-bottom: 20px;
723
+ }
724
+
725
+ .feature-btn {
726
+ padding: 8px 16px;
727
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
728
+ border: 2px solid #0831d9;
729
+ cursor: pointer;
730
+ font-size: 13px;
731
+ transition: all 0.2s;
732
+ font-family: 'Tahoma', sans-serif;
733
+ }
734
+
735
+ .feature-btn:hover {
736
+ background: linear-gradient(to bottom, #fff7e6 0%, #f0ead0 100%);
737
+ border-color: #245edb;
738
+ }
739
+
740
+ .feature-btn.active {
741
+ background: linear-gradient(to bottom, #0997ff 0%, #0053ee 100%);
742
+ color: white;
743
+ font-weight: bold;
744
+ }
745
+
746
+ .code-display {
747
+ background: #000;
748
+ color: #0f0;
749
+ padding: 16px;
750
+ font-family: 'Courier New', monospace;
751
+ font-size: 12px;
752
+ overflow-x: auto;
753
+ border: 2px solid #0831d9;
754
+ margin-top: 12px;
755
+ }
756
+
757
+ /* Draggable */
758
+ .dragging {
759
+ opacity: 0.8;
760
+ z-index: 10000;
761
+ }
762
+
763
+ /* Start Menu */
764
+ .start-menu {
765
+ position: absolute;
766
+ bottom: 40px;
767
+ left: 0;
768
+ width: 350px;
769
+ max-height: calc(100vh - 60px);
770
+ background: linear-gradient(to right, #245edb 0px, #245edb 40px, #ece9d8 40px, #ece9d8 100%);
771
+ border: 2px solid #0831d9;
772
+ box-shadow: 2px -2px 8px rgba(0, 0, 0, 0.3);
773
+ display: none;
774
+ flex-direction: column;
775
+ z-index: 9999;
776
+ overflow: visible;
777
+ }
778
+
779
+ .start-menu.active {
780
+ display: flex;
781
+ }
782
+
783
+ .start-menu-header {
784
+ background: linear-gradient(to bottom, #0997ff 0%, #0053ee 100%);
785
+ padding: 8px 12px;
786
+ color: white;
787
+ font-weight: bold;
788
+ font-size: 14px;
789
+ border-bottom: 1px solid #0831d9;
790
+ }
791
+
792
+ .start-menu-user {
793
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
794
+ padding: 12px 50px 12px 12px;
795
+ border-bottom: 1px solid #b0b0b0;
796
+ display: flex;
797
+ align-items: center;
798
+ gap: 8px;
799
+ }
800
+
801
+ .start-menu-user-icon {
802
+ font-size: 32px;
803
+ }
804
+
805
+ .start-menu-items {
806
+ flex: 1;
807
+ overflow: visible;
808
+ background: #ece9d8;
809
+ padding: 8px 0;
810
+ }
811
+
812
+ .start-menu-item {
813
+ padding: 8px 50px 8px 12px;
814
+ display: flex;
815
+ align-items: center;
816
+ gap: 12px;
817
+ cursor: pointer;
818
+ background: transparent;
819
+ border: none;
820
+ width: 100%;
821
+ text-align: left;
822
+ font-family: 'Tahoma', sans-serif;
823
+ font-size: 13px;
824
+ transition: background 0.15s;
825
+ position: relative;
826
+ }
827
+
828
+ .start-menu-item:hover {
829
+ background: linear-gradient(to right, #0997ff 0%, #0053ee 100%);
830
+ color: white;
831
+ }
832
+
833
+ .start-menu-item.has-submenu {
834
+ position: relative;
835
+ }
836
+
837
+ .start-menu-item.has-submenu::after {
838
+ content: '▶';
839
+ position: absolute;
840
+ right: 12px;
841
+ font-size: 10px;
842
+ }
843
+
844
+ .start-submenu {
845
+ position: absolute;
846
+ left: calc(100% - 4px);
847
+ bottom: -2px;
848
+ min-width: 280px;
849
+ max-height: 460px;
850
+ background: #ece9d8;
851
+ border: 2px solid #0831d9;
852
+ box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
853
+ display: none;
854
+ flex-direction: column;
855
+ z-index: 10001;
856
+ padding: 4px 0;
857
+ overflow-y: auto;
858
+ white-space: nowrap;
859
+ }
860
+
861
+ .start-menu-item.has-submenu:hover > .start-submenu {
862
+ display: flex;
863
+ }
864
+
865
+ .start-submenu .start-menu-item {
866
+ padding: 6px 12px 6px 8px;
867
+ color: #000;
868
+ }
869
+
870
+ .start-submenu .start-menu-item:hover {
871
+ background: linear-gradient(to right, #0997ff 0%, #0053ee 100%);
872
+ color: white;
873
+ }
874
+
875
+ .start-menu-item-icon {
876
+ font-size: 24px;
877
+ width: 32px;
878
+ text-align: center;
879
+ position: relative;
880
+ }
881
+
882
+ /* Shortcut indicator for external links in start menu */
883
+ .start-menu-item[onclick*="window.open"] .start-menu-item-icon::after {
884
+ content: '↗';
885
+ position: absolute;
886
+ bottom: -2px;
887
+ right: 0;
888
+ font-size: 10px;
889
+ color: #0831d9;
890
+ font-weight: bold;
891
+ background: white;
892
+ border-radius: 2px;
893
+ padding: 1px 2px;
894
+ border: 1px solid #999;
895
+ }
896
+
897
+ .start-menu-separator {
898
+ height: 1px;
899
+ background: #b0b0b0;
900
+ margin: 4px 50px 4px 12px;
901
+ }
902
+
903
+ .start-menu-footer {
904
+ background: linear-gradient(to bottom, #0997ff 0%, #0053ee 100%);
905
+ padding: 8px 12px;
906
+ display: flex;
907
+ gap: 8px;
908
+ border-top: 1px solid #0831d9;
909
+ }
910
+
911
+ .start-menu-footer-btn {
912
+ flex: 1;
913
+ padding: 6px;
914
+ background: rgba(255, 255, 255, 0.2);
915
+ border: 1px solid rgba(255, 255, 255, 0.3);
916
+ border-radius: 3px;
917
+ color: white;
918
+ font-size: 11px;
919
+ cursor: pointer;
920
+ transition: all 0.15s;
921
+ font-family: 'Tahoma', sans-serif;
922
+ }
923
+
924
+ .start-menu-footer-btn:hover {
925
+ background: rgba(255, 255, 255, 0.3);
926
+ }
927
+
928
+ /* Notification Popup */
929
+ .notification-popup {
930
+ position: fixed;
931
+ bottom: 50px;
932
+ right: 20px;
933
+ width: 320px;
934
+ background: linear-gradient(to bottom, #ffffff 0%, #f5f5f5 100%);
935
+ border: 2px solid #0831d9;
936
+ border-radius: 8px;
937
+ box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.3);
938
+ padding: 14px 16px;
939
+ z-index: 10002;
940
+ animation: slideIn 0.5s ease-out;
941
+ }
942
+
943
+ @keyframes slideIn {
944
+ from {
945
+ transform: translateX(360px);
946
+ opacity: 0;
947
+ }
948
+ to {
949
+ transform: translateX(0);
950
+ opacity: 1;
951
+ }
952
+ }
953
+
954
+ .notification-header {
955
+ display: flex;
956
+ align-items: center;
957
+ gap: 8px;
958
+ margin-bottom: 12px;
959
+ padding-bottom: 8px;
960
+ border-bottom: 1px solid #c0c0c0;
961
+ }
962
+
963
+ .notification-icon {
964
+ font-size: 22px;
965
+ width: 28px;
966
+ height: 28px;
967
+ display: flex;
968
+ align-items: center;
969
+ justify-content: center;
970
+ }
971
+
972
+ .notification-title {
973
+ font-weight: bold;
974
+ font-size: 14px;
975
+ color: #0831d9;
976
+ flex: 1;
977
+ }
978
+
979
+ .notification-count {
980
+ background: #e8e8e8;
981
+ color: #2a2a2a;
982
+ font-size: 12px;
983
+ font-weight: bold;
984
+ padding: 2px 7px;
985
+ border-radius: 4px;
986
+ border: 1px solid #c0c0c0;
987
+ min-width: 22px;
988
+ text-align: center;
989
+ margin-right: 8px;
990
+ }
991
+
992
+ .notification-body {
993
+ font-size: 14px;
994
+ line-height: 1.6;
995
+ color: #333;
996
+ margin-bottom: 12px;
997
+ }
998
+
999
+ .notification-features {
1000
+ display: flex;
1001
+ flex-direction: column;
1002
+ gap: 6px;
1003
+ }
1004
+
1005
+ .notification-feature {
1006
+ display: flex;
1007
+ align-items: center;
1008
+ gap: 8px;
1009
+ font-size: 12px;
1010
+ color: #333;
1011
+ }
1012
+
1013
+ .notification-feature-icon {
1014
+ width: 16px;
1015
+ height: 16px;
1016
+ border-radius: 2px;
1017
+ border: 2px solid #999;
1018
+ flex-shrink: 0;
1019
+ background: white;
1020
+ }
1021
+
1022
+ .notification-close {
1023
+ width: 18px;
1024
+ height: 18px;
1025
+ background: linear-gradient(to bottom, #ff5f57 0%, #e81123 100%);
1026
+ border: 1px solid #c0392b;
1027
+ border-radius: 3px;
1028
+ color: white;
1029
+ font-size: 12px;
1030
+ font-weight: bold;
1031
+ cursor: pointer;
1032
+ display: flex;
1033
+ align-items: center;
1034
+ justify-content: center;
1035
+ transition: all 0.1s;
1036
+ flex-shrink: 0;
1037
+ }
1038
+
1039
+ .notification-close:hover {
1040
+ background: linear-gradient(to bottom, #ff6f67 0%, #f82133 100%);
1041
+ }
1042
+
1043
+ .notification-popup.hidden {
1044
+ display: none;
1045
+ }
1046
+
1047
+ .notification-separator {
1048
+ height: 1px;
1049
+ background: #c0c0c0;
1050
+ margin: 12px 0;
1051
+ }
1052
+
1053
+ .notification-signup {
1054
+ margin-top: 8px;
1055
+ }
1056
+
1057
+ .notification-signup-text {
1058
+ font-size: 12px;
1059
+ color: #333;
1060
+ margin-bottom: 8px;
1061
+ font-weight: 600;
1062
+ }
1063
+
1064
+ .notification-signup-form {
1065
+ display: flex;
1066
+ gap: 6px;
1067
+ }
1068
+
1069
+ .notification-email-input {
1070
+ flex: 1;
1071
+ padding: 6px 8px;
1072
+ font-size: 12px;
1073
+ font-family: 'Tahoma', sans-serif;
1074
+ border: 1px solid #7f9db9;
1075
+ background: white;
1076
+ border-radius: 2px;
1077
+ outline: none;
1078
+ }
1079
+
1080
+ .notification-email-input:focus {
1081
+ border-color: #0831d9;
1082
+ box-shadow: inset 0 0 0 1px #0831d9;
1083
+ }
1084
+
1085
+ .notification-signup-btn {
1086
+ padding: 6px 16px;
1087
+ background: linear-gradient(to bottom, #ffffff 0%, #ece9d8 100%);
1088
+ border: 1px solid #0831d9;
1089
+ border-radius: 2px;
1090
+ font-size: 12px;
1091
+ font-weight: bold;
1092
+ font-family: 'Tahoma', sans-serif;
1093
+ cursor: pointer;
1094
+ color: #000;
1095
+ transition: all 0.1s;
1096
+ white-space: nowrap;
1097
+ }
1098
+
1099
+ .notification-signup-btn:hover {
1100
+ background: linear-gradient(to bottom, #fff7e6 0%, #f0ead0 100%);
1101
+ border-color: #245edb;
1102
+ }
1103
+
1104
+ .notification-signup-btn:active {
1105
+ background: linear-gradient(to bottom, #ece9d8 0%, #ddd 100%);
1106
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
1107
+ }
1108
+
1109
+ .notification-success-content {
1110
+ display: flex;
1111
+ align-items: center;
1112
+ gap: 12px;
1113
+ padding: 8px 0;
1114
+ }
1115
+
1116
+ .notification-success-icon {
1117
+ width: 32px;
1118
+ height: 32px;
1119
+ background: linear-gradient(to bottom, #5eac56 0%, #3c873c 100%);
1120
+ border: 2px solid #16591e;
1121
+ border-radius: 16px;
1122
+ display: flex;
1123
+ align-items: center;
1124
+ justify-content: center;
1125
+ color: white;
1126
+ font-size: 20px;
1127
+ font-weight: bold;
1128
+ flex-shrink: 0;
1129
+ }
1130
+
1131
+ .notification-success-text {
1132
+ flex: 1;
1133
+ }
1134
+
1135
+ .notification-success-title {
1136
+ font-size: 13px;
1137
+ font-weight: bold;
1138
+ color: #0831d9;
1139
+ margin-bottom: 2px;
1140
+ }
1141
+
1142
+ .notification-success-subtitle {
1143
+ font-size: 12px;
1144
+ color: #333;
1145
+ }
1146
+
1147
+ /* Context Menu */
1148
+ .context-menu,
1149
+ .taskbar-context-menu {
1150
+ position: fixed;
1151
+ background: #ece9d8;
1152
+ border: 2px outset #fff;
1153
+ box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.4);
1154
+ display: flex;
1155
+ flex-direction: column;
1156
+ z-index: 10003;
1157
+ min-width: 200px;
1158
+ max-width: 280px;
1159
+ padding: 2px;
1160
+ }
1161
+
1162
+ .taskbar-context-menu {
1163
+ min-width: 180px;
1164
+ }
1165
+
1166
+ .context-menu[hidden] {
1167
+ display: none !important;
1168
+ }
1169
+
1170
+ /* Scrollbar styling for context menu */
1171
+ .context-menu::-webkit-scrollbar {
1172
+ width: 16px;
1173
+ }
1174
+
1175
+ .context-menu::-webkit-scrollbar-track {
1176
+ background: #d4d0c8;
1177
+ }
1178
+
1179
+ .context-menu::-webkit-scrollbar-thumb {
1180
+ background: #888;
1181
+ border: 1px solid #666;
1182
+ }
1183
+
1184
+ .context-menu::-webkit-scrollbar-thumb:hover {
1185
+ background: #555;
1186
+ }
1187
+
1188
+ .context-menu-item {
1189
+ padding: 4px 24px 4px 28px;
1190
+ display: flex;
1191
+ align-items: center;
1192
+ gap: 8px;
1193
+ cursor: pointer;
1194
+ background: transparent;
1195
+ border: none;
1196
+ width: 100%;
1197
+ text-align: left;
1198
+ font-family: 'Tahoma', sans-serif;
1199
+ font-size: 11px;
1200
+ transition: background 0.1s;
1201
+ position: relative;
1202
+ color: #000;
1203
+ white-space: nowrap;
1204
+ }
1205
+
1206
+ .context-menu-item:hover {
1207
+ background: #316ac5;
1208
+ color: white;
1209
+ }
1210
+
1211
+ .context-menu-item:disabled {
1212
+ color: #808080;
1213
+ cursor: default;
1214
+ }
1215
+
1216
+ .context-menu-item:disabled:hover {
1217
+ background: transparent;
1218
+ color: #808080;
1219
+ }
1220
+
1221
+ .context-menu-item-icon {
1222
+ position: absolute;
1223
+ left: 4px;
1224
+ font-size: 14px;
1225
+ width: 20px;
1226
+ text-align: center;
1227
+ }
1228
+
1229
+ .context-menu-separator {
1230
+ height: 1px;
1231
+ background: #808080;
1232
+ margin: 2px 2px;
1233
+ border-top: 1px solid #fff;
1234
+ }
1235
+
1236
+ .context-menu-item.has-submenu {
1237
+ position: relative;
1238
+ }
1239
+
1240
+ .context-menu-item.has-submenu::after {
1241
+ content: '▶';
1242
+ position: absolute;
1243
+ right: 8px;
1244
+ font-size: 8px;
1245
+ }
1246
+
1247
+ .context-submenu {
1248
+ position: absolute;
1249
+ left: calc(100% - 2px);
1250
+ top: -2px;
1251
+ background: #ece9d8;
1252
+ border: 2px outset #fff;
1253
+ box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.4);
1254
+ display: none;
1255
+ flex-direction: column;
1256
+ min-width: 180px;
1257
+ padding: 2px;
1258
+ z-index: 10004;
1259
+ }
1260
+
1261
+ .context-menu-item.has-submenu:hover > .context-submenu {
1262
+ display: flex;
1263
+ }
1264
+
1265
+ .context-submenu .context-menu-item {
1266
+ padding: 4px 24px 4px 28px;
1267
+ display: flex;
1268
+ align-items: center;
1269
+ gap: 8px;
1270
+ cursor: pointer;
1271
+ background: transparent;
1272
+ border: none;
1273
+ width: 100%;
1274
+ text-align: left;
1275
+ font-family: 'Tahoma', sans-serif;
1276
+ font-size: 11px;
1277
+ transition: background 0.1s;
1278
+ position: relative;
1279
+ color: #000;
1280
+ white-space: nowrap;
1281
+ }
1282
+
1283
+ .context-submenu .context-menu-item:hover {
1284
+ background: #316ac5;
1285
+ color: white;
1286
+ }
1287
+
1288
+ .context-menu-item:disabled {
1289
+ color: #808080;
1290
+ cursor: default;
1291
+ }
1292
+
1293
+ .context-menu-item:disabled:hover {
1294
+ background: transparent;
1295
+ color: #808080;
1296
+ }
1297
+
1298
+ .context-submenu .context-menu-item-icon {
1299
+ position: absolute;
1300
+ left: 4px;
1301
+ font-size: 14px;
1302
+ width: 20px;
1303
+ text-align: center;
1304
+ }
1305
+
1306
+ /* Folder Contents */
1307
+ .folder-list {
1308
+ display: flex;
1309
+ flex-direction: column;
1310
+ gap: 4px;
1311
+ }
1312
+
1313
+ .folder-item {
1314
+ display: flex;
1315
+ align-items: flex-start;
1316
+ gap: 12px;
1317
+ padding: 8px 12px;
1318
+ background: white;
1319
+ border: 1px solid transparent;
1320
+ transition: all 0.15s;
1321
+ text-decoration: none;
1322
+ color: inherit;
1323
+ }
1324
+
1325
+ .folder-item:hover {
1326
+ background: linear-gradient(to bottom, #fff7e6 0%, #f0ead0 100%);
1327
+ border: 1px solid #0831d9;
1328
+ }
1329
+
1330
+ .folder-item-icon {
1331
+ font-size: 16px;
1332
+ min-width: 20px;
1333
+ margin-top: 2px;
1334
+ }
1335
+
1336
+ .folder-item-content {
1337
+ flex: 1;
1338
+ }
1339
+
1340
+ .folder-item-name {
1341
+ font-weight: bold;
1342
+ font-size: 13px;
1343
+ color: #0831d9;
1344
+ margin-bottom: 2px;
1345
+ }
1346
+
1347
+ .folder-item-desc {
1348
+ font-size: 11px;
1349
+ color: #333;
1350
+ line-height: 1.4;
1351
+ }
1352
+
1353
+ /* Zoom controls */
1354
+ #zoom-level {
1355
+ -moz-appearance: textfield;
1356
+ }
1357
+
1358
+ #zoom-level::-webkit-outer-spin-button,
1359
+ #zoom-level::-webkit-inner-spin-button {
1360
+ -webkit-appearance: none;
1361
+ margin: 0;
1362
+ }
1363
+
1364
+ #zoom-level:focus {
1365
+ outline: 1px solid #777;
1366
+ background: #2c2f31;
1367
+ }
1368
+
1369
+ /* Selection rectangle */
1370
+ .selection-rectangle {
1371
+ position: absolute;
1372
+ border: 1px solid #0831d9;
1373
+ background: rgba(8, 49, 217, 0.15);
1374
+ pointer-events: none;
1375
+ z-index: 1000;
1376
+ display: none;
1377
+ }
1378
+
1379
+ /* Quick Launch */
1380
+ .taskbar-divider {
1381
+ width: 1px;
1382
+ height: 32px;
1383
+ background: linear-gradient(to bottom,
1384
+ rgba(255, 255, 255, 0.2) 0%,
1385
+ rgba(0, 0, 0, 0.2) 50%,
1386
+ rgba(255, 255, 255, 0.2) 100%);
1387
+ margin: 0 4px;
1388
+ }
1389
+
1390
+ .quick-launch {
1391
+ display: flex;
1392
+ gap: 4px;
1393
+ align-items: center;
1394
+ padding: 0 4px;
1395
+ }
1396
+
1397
+ .quick-launch-icon {
1398
+ width: 32px;
1399
+ height: 32px;
1400
+ display: flex;
1401
+ align-items: center;
1402
+ justify-content: center;
1403
+ border: 1px solid transparent;
1404
+ border-radius: 3px;
1405
+ cursor: pointer;
1406
+ transition: all 0.1s;
1407
+ color: white;
1408
+ text-decoration: none;
1409
+ }
1410
+
1411
+ .quick-launch-icon:hover {
1412
+ background: rgba(255, 255, 255, 0.1);
1413
+ border: 1px solid rgba(255, 255, 255, 0.2);
1414
+ }
1415
+
1416
+ .quick-launch-icon:active {
1417
+ background: rgba(0, 0, 0, 0.2);
1418
+ border: 1px solid rgba(0, 0, 0, 0.3);
1419
+ }