index.css 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. /* ... Header styles keep same ... */
  2. body {
  3. background-color: #fff;
  4. font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  5. }
  6. .custom-header {
  7. position: fixed;
  8. top: 0;
  9. left: 0;
  10. width: 100%;
  11. height: 2.75rem;
  12. padding-top: var(--status-bar-height);
  13. background-color: #fff;
  14. display: flex;
  15. align-items: center;
  16. justify-content: space-between;
  17. padding-left: 0.9375rem;
  18. padding-right: 0.9375rem;
  19. box-sizing: border-box;
  20. z-index: 100;
  21. }
  22. .header-placeholder {
  23. height: calc(2.75rem + var(--status-bar-height));
  24. }
  25. .back-icon {
  26. width: 1.25rem;
  27. height: 1.25rem;
  28. }
  29. .header-title {
  30. font-size: 1rem;
  31. font-weight: bold;
  32. color: #333;
  33. }
  34. .header-right {
  35. width: 1.25rem;
  36. }
  37. .swiper-container {
  38. position: relative;
  39. padding-bottom: 0.9375rem;
  40. }
  41. .level-swiper {
  42. height: 11.25rem;
  43. margin-top: 0.625rem;
  44. }
  45. .level-card {
  46. height: 10rem;
  47. border-radius: 0.9375rem;
  48. margin: 0 0.3125rem;
  49. transition: transform 0.3s;
  50. overflow: hidden;
  51. position: relative;
  52. box-shadow: 0 0.3125rem 0.625rem rgba(0,0,0,0.1);
  53. }
  54. /* Gradients */
  55. .level-card-1 { background: linear-gradient(135deg, #E0E0E0 0%, #BDBDBD 100%);
  56. }
  57. .level-card-2 { background: linear-gradient(135deg, #CFD8DC 0%, #B0BEC5 100%);
  58. }
  59. .level-card-3 { background: linear-gradient(135deg, #FFC107 0%, #FF9800 100%);
  60. }
  61. .level-card-4 { background: linear-gradient(135deg, #4FC3F7 0%, #039BE5 100%);
  62. }
  63. .card-content {
  64. padding: 0.9375rem;
  65. position: relative;
  66. z-index: 2;
  67. height: 100%;
  68. box-sizing: border-box;
  69. display: flex;
  70. flex-direction: column;
  71. }
  72. .card-header {
  73. display: flex;
  74. justify-content: space-between;
  75. align-items: flex-start;
  76. margin-bottom: auto; /* Push content down */
  77. }
  78. .level-badge {
  79. border: 1px solid rgba(255,255,255,0.6);
  80. padding: 0.0625rem 0.375rem;
  81. border-radius: 0.3125rem;
  82. font-size: 0.75rem;
  83. color: #fff;
  84. }
  85. .current-badge {
  86. background-color: rgba(255,255,255,0.9);
  87. color: #333;
  88. font-size: 0.625rem;
  89. padding: 0.125rem 0.375rem;
  90. border-radius: 0.625rem;
  91. font-weight: bold;
  92. }
  93. .level-name {
  94. font-size: 1.375rem;
  95. font-weight: bold;
  96. color: #fff;
  97. margin-bottom: 0.3125rem;
  98. text-shadow: 0 0.0625rem 0.125rem rgba(0,0,0,0.1);
  99. }
  100. .level-score {
  101. font-size: 0.75rem;
  102. color: rgba(255,255,255,0.8);
  103. margin-bottom: 0.625rem;
  104. }
  105. .crown-overlay {
  106. position: absolute;
  107. bottom: -0.9375rem;
  108. right: -0.9375rem;
  109. width: 8.125rem;
  110. height: 8.125rem;
  111. opacity: 0.1;
  112. z-index: 1;
  113. }
  114. /* Dots */
  115. .swiper-dots {
  116. display: flex;
  117. justify-content: center;
  118. margin-top: 0.3125rem;
  119. }
  120. .dot {
  121. width: 0.375rem;
  122. height: 0.375rem;
  123. background-color: #E0E0E0;
  124. border-radius: 50%;
  125. margin: 0 0.1875rem;
  126. transition: all 0.3s;
  127. }
  128. .dot.active {
  129. width: 0.75rem;
  130. background-color: #333;
  131. border-radius: 0.1875rem;
  132. }
  133. .benefits-title-row {
  134. padding: 0.625rem 0.9375rem;
  135. display: flex;
  136. align-items: baseline;
  137. }
  138. .benefits-title {
  139. font-size: 1rem;
  140. font-weight: bold;
  141. color: #333;
  142. }
  143. .benefits-count {
  144. font-size: 0.875rem;
  145. color: #999;
  146. margin-left: 0.3125rem;
  147. }
  148. .benefits-grid {
  149. display: flex;
  150. flex-wrap: wrap;
  151. padding: 0 0.625rem;
  152. }
  153. .benefit-item {
  154. width: 25%; /* 4 items per row */
  155. display: flex;
  156. flex-direction: column;
  157. align-items: center;
  158. margin-bottom: 0.9375rem;
  159. }
  160. .benefit-icon-wrapper {
  161. width: 2.75rem;
  162. height: 2.75rem;
  163. background-color: #F8F8F8; /* Or very light color based on current level? Keep simple for now */
  164. border-radius: 0.75rem;
  165. display: flex;
  166. align-items: center;
  167. justify-content: center;
  168. margin-bottom: 0.375rem;
  169. }
  170. .benefit-icon {
  171. width: 1.375rem;
  172. height: 1.375rem;
  173. }
  174. .benefit-icon-placeholder {
  175. font-size: 1.125rem;
  176. font-weight: bold;
  177. color: #FFB300;
  178. }
  179. .benefit-name {
  180. font-size: 0.6875rem; /* Smaller font as requested matching image roughly */
  181. color: #666;
  182. text-align: center;
  183. }
  184. /* Modal */
  185. .popup-mask {
  186. position: fixed;
  187. top: 0;
  188. left: 0;
  189. right: 0;
  190. bottom: 0;
  191. background-color: rgba(0,0,0,0.5); /* Semi-transparent black */
  192. z-index: 999;
  193. display: none; /* Hidden by default */
  194. align-items: center;
  195. justify-content: center;
  196. }
  197. .popup-mask.show {
  198. display: flex; /* Show when active */
  199. }
  200. .popup-modal {
  201. width: 15rem; /* Narrower width */
  202. background-color: #fff;
  203. border-radius: 0.9375rem;
  204. padding: 1.5625rem 1.25rem;
  205. display: flex;
  206. flex-direction: column;
  207. align-items: center;
  208. box-shadow: 0 0.3125rem 1.25rem rgba(0,0,0,0.2); /* Drop shadow */
  209. }
  210. .popup-icon-wrapper {
  211. width: 3.75rem;
  212. height: 3.75rem;
  213. background-color: #FFF8E1;
  214. border-radius: 50%;
  215. display: flex;
  216. align-items: center;
  217. justify-content: center;
  218. margin-bottom: 0.9375rem;
  219. }
  220. .benefit-icon-large {
  221. width: 1.875rem;
  222. height: 1.875rem;
  223. }
  224. .benefit-icon-placeholder-large {
  225. font-size: 1.5625rem;
  226. font-weight: bold;
  227. color: #FFB300;
  228. }
  229. .popup-title {
  230. font-size: 1rem;
  231. font-weight: bold;
  232. color: #333;
  233. margin-bottom: 0.625rem;
  234. }
  235. .popup-desc {
  236. font-size: 0.8125rem;
  237. color: #666;
  238. text-align: center;
  239. line-height: 1.5;
  240. margin-bottom: 1.25rem;
  241. }
  242. .popup-btn {
  243. width: 80%;
  244. height: 2.25rem;
  245. line-height: 2.25rem;
  246. background-color: #212121;
  247. color: #fff;
  248. font-size: 0.875rem;
  249. border-radius: 1.125rem;
  250. }