@ofidj/generator-fidj 1.0.0 → 1.0.1

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 (150) hide show
  1. package/README.md +93 -58
  2. package/bin/create-fidj.cjs +54 -0
  3. package/generators/app/index.js +58 -189
  4. package/generators/app/templates/typescript/README.md +73 -0
  5. package/generators/app/templates/typescript/app.config.json +10 -0
  6. package/generators/app/templates/typescript/gitignore +5 -0
  7. package/generators/app/templates/typescript/package.json +25 -0
  8. package/generators/app/templates/typescript/public/fidj-logo.png +0 -0
  9. package/generators/app/templates/typescript/public/index.html +16 -0
  10. package/generators/app/templates/typescript/scripts/build.mjs +46 -0
  11. package/generators/app/templates/typescript/scripts/privacy-check.mjs +21 -0
  12. package/generators/app/templates/typescript/scripts/render-content.mjs +14 -0
  13. package/generators/app/templates/typescript/server/data-store.ts +123 -0
  14. package/generators/app/templates/typescript/server/index.ts +329 -0
  15. package/generators/app/templates/typescript/server/privacy-adapter.ts +21 -0
  16. package/generators/app/templates/typescript/src/content.ts +416 -0
  17. package/generators/app/templates/typescript/src/main.ts +243 -0
  18. package/generators/app/templates/typescript/src/style.css +639 -0
  19. package/generators/app/templates/typescript/test/server.test.mjs +287 -0
  20. package/generators/app/templates/typescript/tsconfig.json +15 -0
  21. package/lib/app-module.cjs +59 -0
  22. package/lib/scaffold.cjs +145 -0
  23. package/package.json +18 -12
  24. package/generators/app/templates/app2018/.travis.yml +0 -35
  25. package/generators/app/templates/app2018/LICENSE +0 -21
  26. package/generators/app/templates/app2018/Procfile +0 -1
  27. package/generators/app/templates/app2018/README.md +0 -49
  28. package/generators/app/templates/app2018/config.xml +0 -91
  29. package/generators/app/templates/app2018/gulpfile.js +0 -63
  30. package/generators/app/templates/app2018/ionic.config.json +0 -9
  31. package/generators/app/templates/app2018/package.json +0 -90
  32. package/generators/app/templates/app2018/platforms/README.md +0 -1
  33. package/generators/app/templates/app2018/resources/README.md +0 -6
  34. package/generators/app/templates/app2018/resources/icon.png +0 -0
  35. package/generators/app/templates/app2018/resources/marketing-01-ipad.png +0 -0
  36. package/generators/app/templates/app2018/resources/marketing-01-iphone.png +0 -0
  37. package/generators/app/templates/app2018/resources/marketing-02-ipad.png +0 -0
  38. package/generators/app/templates/app2018/resources/marketing-02-iphone.png +0 -0
  39. package/generators/app/templates/app2018/resources/marketing-03-ipad.png +0 -0
  40. package/generators/app/templates/app2018/resources/marketing-03-iphone.png +0 -0
  41. package/generators/app/templates/app2018/resources/marketing.json +0 -19
  42. package/generators/app/templates/app2018/resources/splash.png +0 -0
  43. package/generators/app/templates/app2018/src/app/app.component.ts +0 -88
  44. package/generators/app/templates/app2018/src/app/app.html +0 -19
  45. package/generators/app/templates/app2018/src/app/app.module.ts +0 -40
  46. package/generators/app/templates/app2018/src/app/app.scss +0 -16
  47. package/generators/app/templates/app2018/src/app/main.ts +0 -5
  48. package/generators/app/templates/app2018/src/app/shared/card.model.ts +0 -10
  49. package/generators/app/templates/app2018/src/app/shared/profile.service.ts +0 -46
  50. package/generators/app/templates/app2018/src/app/shared/shared.module.ts +0 -35
  51. package/generators/app/templates/app2018/src/app/shared/storage.service.ts +0 -11
  52. package/generators/app/templates/app2018/src/app/shared/version.const.ts +0 -5
  53. package/generators/app/templates/app2018/src/assets/icon/favicon.ico +0 -0
  54. package/generators/app/templates/app2018/src/assets/imgs/gg.png +0 -0
  55. package/generators/app/templates/app2018/src/assets/imgs/github.png +0 -0
  56. package/generators/app/templates/app2018/src/assets/imgs/login.svg +0 -5668
  57. package/generators/app/templates/app2018/src/assets/imgs/logo.png +0 -0
  58. package/generators/app/templates/app2018/src/index.html +0 -49
  59. package/generators/app/templates/app2018/src/manifest.json +0 -13
  60. package/generators/app/templates/app2018/src/pages/home/home.html +0 -56
  61. package/generators/app/templates/app2018/src/pages/home/home.scss +0 -3
  62. package/generators/app/templates/app2018/src/pages/home/home.ts +0 -126
  63. package/generators/app/templates/app2018/src/pages/login/login.html +0 -56
  64. package/generators/app/templates/app2018/src/pages/login/login.scss +0 -44
  65. package/generators/app/templates/app2018/src/pages/login/login.ts +0 -59
  66. package/generators/app/templates/app2018/src/pages/profile/profile.html +0 -33
  67. package/generators/app/templates/app2018/src/pages/profile/profile.scss +0 -3
  68. package/generators/app/templates/app2018/src/pages/profile/profile.ts +0 -36
  69. package/generators/app/templates/app2018/src/service-worker.js +0 -31
  70. package/generators/app/templates/app2018/src/theme/variables.scss +0 -88
  71. package/generators/app/templates/app2018/tests/karma.unit-tests.conf.js +0 -84
  72. package/generators/app/templates/app2018/tests/unit/app.test.js +0 -10
  73. package/generators/app/templates/app2018/tsconfig.json +0 -28
  74. package/generators/app/templates/app2018/tslint.json +0 -8
  75. package/generators/app/templates/app2018/web.js +0 -21
  76. package/generators/app/templates/app2021/.travis.yml +0 -32
  77. package/generators/app/templates/app2021/LICENSE +0 -21
  78. package/generators/app/templates/app2021/Procfile +0 -1
  79. package/generators/app/templates/app2021/README.md +0 -45
  80. package/generators/app/templates/app2021/angular.json +0 -188
  81. package/generators/app/templates/app2021/browserslist +0 -12
  82. package/generators/app/templates/app2021/ionic.config.json +0 -9
  83. package/generators/app/templates/app2021/karma.conf.js +0 -31
  84. package/generators/app/templates/app2021/package-lock.json +0 -5
  85. package/generators/app/templates/app2021/package.json +0 -77
  86. package/generators/app/templates/app2021/platforms/README.md +0 -1
  87. package/generators/app/templates/app2021/resources/README.md +0 -6
  88. package/generators/app/templates/app2021/resources/icon.png +0 -0
  89. package/generators/app/templates/app2021/resources/marketing-01-ipad.png +0 -0
  90. package/generators/app/templates/app2021/resources/marketing-01-iphone.png +0 -0
  91. package/generators/app/templates/app2021/resources/marketing-02-ipad.png +0 -0
  92. package/generators/app/templates/app2021/resources/marketing-02-iphone.png +0 -0
  93. package/generators/app/templates/app2021/resources/marketing-03-ipad.png +0 -0
  94. package/generators/app/templates/app2021/resources/marketing-03-iphone.png +0 -0
  95. package/generators/app/templates/app2021/resources/marketing.json +0 -19
  96. package/generators/app/templates/app2021/resources/splash.png +0 -0
  97. package/generators/app/templates/app2021/src/app/app-routing.module.ts +0 -25
  98. package/generators/app/templates/app2021/src/app/app.component.html +0 -3
  99. package/generators/app/templates/app2021/src/app/app.component.scss +0 -0
  100. package/generators/app/templates/app2021/src/app/app.component.spec.ts +0 -50
  101. package/generators/app/templates/app2021/src/app/app.component.ts +0 -28
  102. package/generators/app/templates/app2021/src/app/app.module.ts +0 -24
  103. package/generators/app/templates/app2021/src/app/content/content-routing.module.ts +0 -16
  104. package/generators/app/templates/app2021/src/app/content/content.module.ts +0 -20
  105. package/generators/app/templates/app2021/src/app/content/content.page.html +0 -31
  106. package/generators/app/templates/app2021/src/app/content/content.page.scss +0 -0
  107. package/generators/app/templates/app2021/src/app/content/content.page.ts +0 -26
  108. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.html +0 -4
  109. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.scss +0 -4
  110. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.spec.ts +0 -24
  111. package/generators/app/templates/app2021/src/app/explore-container/explore-container.component.ts +0 -16
  112. package/generators/app/templates/app2021/src/app/explore-container/explore-container.module.ts +0 -14
  113. package/generators/app/templates/app2021/src/app/my/my-routing.module.ts +0 -36
  114. package/generators/app/templates/app2021/src/app/my/my.module.ts +0 -19
  115. package/generators/app/templates/app2021/src/app/my/my.page.html +0 -15
  116. package/generators/app/templates/app2021/src/app/my/my.page.scss +0 -1
  117. package/generators/app/templates/app2021/src/app/my/my.page.spec.ts +0 -26
  118. package/generators/app/templates/app2021/src/app/my/my.page.ts +0 -25
  119. package/generators/app/templates/app2021/src/app/profile/profile-routing.module.ts +0 -16
  120. package/generators/app/templates/app2021/src/app/profile/profile.module.ts +0 -20
  121. package/generators/app/templates/app2021/src/app/profile/profile.page.html +0 -49
  122. package/generators/app/templates/app2021/src/app/profile/profile.page.scss +0 -0
  123. package/generators/app/templates/app2021/src/app/profile/profile.page.spec.ts +0 -25
  124. package/generators/app/templates/app2021/src/app/profile/profile.page.ts +0 -44
  125. package/generators/app/templates/app2021/src/app/shared/const.ts +0 -3
  126. package/generators/app/templates/app2021/src/app/signin/signin-routing.module.ts +0 -16
  127. package/generators/app/templates/app2021/src/app/signin/signin.module.ts +0 -18
  128. package/generators/app/templates/app2021/src/app/signin/signin.page.html +0 -53
  129. package/generators/app/templates/app2021/src/app/signin/signin.page.scss +0 -36
  130. package/generators/app/templates/app2021/src/app/signin/signin.page.ts +0 -69
  131. package/generators/app/templates/app2021/src/assets/icon/favicon.png +0 -0
  132. package/generators/app/templates/app2021/src/assets/shapes.svg +0 -1
  133. package/generators/app/templates/app2021/src/environments/environment.prod.ts +0 -3
  134. package/generators/app/templates/app2021/src/environments/environment.ts +0 -16
  135. package/generators/app/templates/app2021/src/global.scss +0 -26
  136. package/generators/app/templates/app2021/src/index.html +0 -26
  137. package/generators/app/templates/app2021/src/main.ts +0 -12
  138. package/generators/app/templates/app2021/src/polyfills.ts +0 -67
  139. package/generators/app/templates/app2021/src/test.ts +0 -20
  140. package/generators/app/templates/app2021/src/theme/variables.scss +0 -232
  141. package/generators/app/templates/app2021/src/zone-flags.ts +0 -5
  142. package/generators/app/templates/app2021/tests/protractor.conf.js +0 -36
  143. package/generators/app/templates/app2021/tests/src/app.e2e-spec.ts +0 -14
  144. package/generators/app/templates/app2021/tests/src/app.po.ts +0 -11
  145. package/generators/app/templates/app2021/tests/tsconfig.json +0 -13
  146. package/generators/app/templates/app2021/tsconfig.app.json +0 -18
  147. package/generators/app/templates/app2021/tsconfig.json +0 -23
  148. package/generators/app/templates/app2021/tsconfig.spec.json +0 -18
  149. package/generators/app/templates/app2021/tslint.json +0 -149
  150. package/generators/app/templates/app2021/web.js +0 -21
@@ -0,0 +1,639 @@
1
+ :root {
2
+ font-family:
3
+ Inter,
4
+ ui-sans-serif,
5
+ system-ui,
6
+ -apple-system,
7
+ sans-serif;
8
+ color: #1e4037;
9
+ background: #f3f6f0;
10
+ font-synthesis: none;
11
+ line-height: 1.5;
12
+ }
13
+ * {
14
+ box-sizing: border-box;
15
+ }
16
+ body {
17
+ margin: 0;
18
+ }
19
+ button,
20
+ input,
21
+ textarea {
22
+ font: inherit;
23
+ }
24
+ a {
25
+ color: inherit;
26
+ }
27
+ .topbar {
28
+ max-width: 1180px;
29
+ margin: auto;
30
+ padding: 25px 32px;
31
+ display: flex;
32
+ justify-content: space-between;
33
+ align-items: center;
34
+ gap: 20px;
35
+ border-bottom: 1px solid #dce4d9;
36
+ }
37
+ .brand {
38
+ display: flex;
39
+ align-items: center;
40
+ gap: 12px;
41
+ font-weight: 700;
42
+ text-decoration: none;
43
+ font-size: 19px;
44
+ }
45
+ .app-symbol {
46
+ background: #dce8d4;
47
+ border-radius: 12px;
48
+ padding: 4px 13px;
49
+ font-size: 30px;
50
+ }
51
+ .fidj-brand {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 10px;
55
+ font-size: 12px;
56
+ text-decoration: none;
57
+ }
58
+ .fidj-brand img {
59
+ width: 28px;
60
+ height: 28px;
61
+ image-rendering: pixelated;
62
+ }
63
+ main {
64
+ max-width: 1180px;
65
+ margin: auto;
66
+ padding: 38px 32px;
67
+ }
68
+ h1 {
69
+ font-size: 48px;
70
+ line-height: 1.13;
71
+ letter-spacing: -0.045em;
72
+ margin: 10px 0 24px;
73
+ font-weight: 650;
74
+ }
75
+ h2 {
76
+ font-size: 22px;
77
+ letter-spacing: -0.025em;
78
+ margin: 0 0 12px;
79
+ }
80
+ h3 {
81
+ margin: 12px 0 8px;
82
+ font-size: 19px;
83
+ }
84
+ p {
85
+ color: #5d7166;
86
+ }
87
+ .eyebrow {
88
+ font-size: 11px;
89
+ letter-spacing: 0.14em;
90
+ font-weight: 700;
91
+ color: #527864;
92
+ }
93
+ .welcome {
94
+ display: grid;
95
+ grid-template-columns: 1.1fr 1fr;
96
+ align-items: center;
97
+ gap: 90px;
98
+ margin: 35px 0;
99
+ }
100
+ .welcome h1 {
101
+ font-size: 68px;
102
+ }
103
+ .welcome > div > p {
104
+ max-width: 390px;
105
+ }
106
+ .card {
107
+ background: white;
108
+ border: 1px solid #dce5da;
109
+ border-radius: 20px;
110
+ padding: 30px;
111
+ box-shadow: 0 6px 20px #233b2904;
112
+ }
113
+ .promise {
114
+ display: flex;
115
+ gap: 14px;
116
+ align-items: center;
117
+ font-size: 13px;
118
+ color: #617268;
119
+ margin-top: 35px;
120
+ }
121
+ .promise img {
122
+ width: 38px;
123
+ height: 38px;
124
+ image-rendering: pixelated;
125
+ }
126
+ label {
127
+ display: block;
128
+ font-size: 13px;
129
+ font-weight: 600;
130
+ margin: 18px 0 8px;
131
+ }
132
+ input,
133
+ textarea {
134
+ display: block;
135
+ width: 100%;
136
+ padding: 12px;
137
+ border: 1px solid #cfdbd0;
138
+ border-radius: 8px;
139
+ background: #fcfdfb;
140
+ color: #173c30;
141
+ }
142
+ input:focus,
143
+ textarea:focus,
144
+ button:focus-visible {
145
+ outline: 2px solid #567d65;
146
+ outline-offset: 3px;
147
+ }
148
+ button {
149
+ border: 1px solid #c8d7c8;
150
+ color: #245344;
151
+ background: white;
152
+ padding: 10px 15px;
153
+ border-radius: 8px;
154
+ cursor: pointer;
155
+ font-size: 13px;
156
+ font-weight: 600;
157
+ }
158
+ button:hover {
159
+ background: #edf4e8;
160
+ }
161
+ button:disabled {
162
+ opacity: 0.5;
163
+ cursor: not-allowed;
164
+ }
165
+ .primary {
166
+ background: #245d49;
167
+ color: white;
168
+ border-color: #245d49;
169
+ display: block;
170
+ width: 100%;
171
+ margin: 22px 0 12px;
172
+ }
173
+ .primary:hover {
174
+ background: #194b3a;
175
+ }
176
+ .demo {
177
+ background: #f0f4eb;
178
+ border-radius: 12px;
179
+ padding: 15px;
180
+ margin-top: 24px;
181
+ font-size: 12px;
182
+ }
183
+ .demo button {
184
+ margin: 4px 5px 0 0;
185
+ font-size: 11px;
186
+ padding: 8px;
187
+ }
188
+ .demo p {
189
+ margin: 6px 0 12px;
190
+ }
191
+ .page-heading,
192
+ .section-heading {
193
+ display: flex;
194
+ justify-content: space-between;
195
+ align-items: center;
196
+ gap: 20px;
197
+ }
198
+ .roles {
199
+ font-size: 11px;
200
+ border: 1px solid #cbd8c9;
201
+ border-radius: 20px;
202
+ padding: 5px 10px;
203
+ margin-left: 8px;
204
+ }
205
+ nav {
206
+ display: flex;
207
+ gap: 8px;
208
+ border-bottom: 1px solid #dce4d9;
209
+ margin: 10px 0 30px;
210
+ padding-bottom: 15px;
211
+ }
212
+ nav button {
213
+ border-color: transparent;
214
+ background: transparent;
215
+ }
216
+ nav button.selected {
217
+ background: #dfeada;
218
+ }
219
+ nav button:last-child {
220
+ margin-left: auto;
221
+ }
222
+ .workspace {
223
+ display: grid;
224
+ grid-template-columns: 1.2fr 1fr;
225
+ gap: 28px;
226
+ align-items: start;
227
+ }
228
+ .privacy-grid {
229
+ display: grid;
230
+ grid-template-columns: 1fr 1fr;
231
+ gap: 28px;
232
+ align-items: start;
233
+ }
234
+ .section-heading span {
235
+ font-size: 12px;
236
+ color: #647867;
237
+ }
238
+ .note {
239
+ margin-top: 16px;
240
+ }
241
+ .note p {
242
+ white-space: pre-wrap;
243
+ overflow-wrap: anywhere;
244
+ }
245
+ .empty {
246
+ text-align: center;
247
+ padding: 60px 28px;
248
+ }
249
+ .empty > span {
250
+ font-size: 45px;
251
+ color: #9ab696;
252
+ }
253
+ small {
254
+ font-size: 12px;
255
+ color: #6b7d70;
256
+ }
257
+ .notice,
258
+ .error {
259
+ border-radius: 10px;
260
+ padding: 15px 20px;
261
+ margin-bottom: 24px;
262
+ }
263
+ .notice {
264
+ background: #e0edd8;
265
+ }
266
+ .error {
267
+ background: #fdebe7;
268
+ color: #99362d;
269
+ }
270
+ .agreement {
271
+ background: #f0f5ec;
272
+ border-radius: 10px;
273
+ padding: 16px;
274
+ font-size: 13px;
275
+ margin: 24px 0;
276
+ }
277
+ .agreement span {
278
+ float: right;
279
+ }
280
+ .agreement p {
281
+ font-size: 12px;
282
+ }
283
+ .toggle {
284
+ display: flex;
285
+ align-items: center;
286
+ justify-content: space-between;
287
+ gap: 20px;
288
+ padding: 18px 0;
289
+ border-bottom: 1px solid #e9eee5;
290
+ }
291
+ .toggle small {
292
+ display: block;
293
+ font-weight: 400;
294
+ margin-top: 5px;
295
+ }
296
+ .toggle input {
297
+ width: 20px;
298
+ height: 20px;
299
+ accent-color: #245d49;
300
+ }
301
+ .privacy-grid button {
302
+ margin-top: 15px;
303
+ }
304
+ .danger {
305
+ color: #a2392d;
306
+ border-color: #d7b2a9;
307
+ }
308
+ .fineprint {
309
+ font-size: 12px;
310
+ margin-top: 24px;
311
+ }
312
+ hr {
313
+ border: 0;
314
+ border-top: 1px solid #e3eade;
315
+ margin: 28px 0;
316
+ }
317
+ footer {
318
+ text-align: center;
319
+ font-size: 11px;
320
+ color: #7c8b7f;
321
+ padding: 40px 0 10px;
322
+ }
323
+ @media (max-width: 760px) {
324
+ main {
325
+ padding: 25px 18px;
326
+ }
327
+ .topbar {
328
+ padding: 18px;
329
+ }
330
+ .welcome,
331
+ .workspace,
332
+ .privacy-grid {
333
+ grid-template-columns: 1fr;
334
+ gap: 24px;
335
+ }
336
+ .welcome {
337
+ margin-top: 10px;
338
+ }
339
+ .welcome h1 {
340
+ font-size: 48px;
341
+ }
342
+ .welcome > div {
343
+ padding: 10px;
344
+ }
345
+ .card {
346
+ padding: 22px;
347
+ }
348
+ .page-heading h1 {
349
+ font-size: 36px;
350
+ }
351
+ .fidj-brand {
352
+ font-size: 0;
353
+ }
354
+ .roles {
355
+ display: inline-block;
356
+ margin: 8px 0;
357
+ }
358
+ .page-heading {
359
+ align-items: flex-start;
360
+ }
361
+ }
362
+
363
+ .site-nav {
364
+ border: 0;
365
+ margin: 0;
366
+ padding: 0;
367
+ align-items: center;
368
+ gap: 24px;
369
+ font-size: 13px;
370
+ }
371
+ .site-nav a {
372
+ text-decoration: none;
373
+ }
374
+ .workspace-link {
375
+ border: 1px solid #cad8c8;
376
+ padding: 9px 14px;
377
+ border-radius: 8px;
378
+ }
379
+ .personal-hero {
380
+ display: grid;
381
+ grid-template-columns: 1.1fr 1fr;
382
+ gap: 36px;
383
+ align-items: center;
384
+ min-height: 590px;
385
+ }
386
+ .mario-scene {
387
+ text-align: center;
388
+ }
389
+ .mario-scene img {
390
+ width: 100%;
391
+ max-width: 570px;
392
+ height: auto;
393
+ object-fit: contain;
394
+ image-rendering: pixelated;
395
+ }
396
+ .personal-intro h1 {
397
+ font-size: 66px;
398
+ line-height: 1.08;
399
+ max-width: 480px;
400
+ }
401
+ .personal-tagline {
402
+ font-size: 21px;
403
+ color: #274b3b;
404
+ font-weight: 600;
405
+ }
406
+ .personal-intro > p {
407
+ max-width: 440px;
408
+ }
409
+ .site-links {
410
+ display: flex;
411
+ align-items: center;
412
+ gap: 24px;
413
+ margin: 28px 0;
414
+ }
415
+ .site-primary {
416
+ display: inline-block;
417
+ padding: 12px 19px;
418
+ border-radius: 9px;
419
+ background: #9d302b;
420
+ color: white;
421
+ text-decoration: none;
422
+ font-weight: 600;
423
+ font-size: 14px;
424
+ }
425
+ .personal-contact {
426
+ font-size: 13px;
427
+ line-height: 2;
428
+ }
429
+ .resume-section {
430
+ scroll-margin-top: 30px;
431
+ display: grid;
432
+ grid-template-columns: 0.7fr 1.3fr;
433
+ gap: 70px;
434
+ border-top: 1px solid #dce4d9;
435
+ padding: 60px 0;
436
+ }
437
+ .resume-intro h2 {
438
+ font-size: 34px;
439
+ }
440
+ .resume-timeline article {
441
+ padding: 0 0 26px 24px;
442
+ border-left: 2px solid #d6e0d2;
443
+ }
444
+ .resume-timeline h3 {
445
+ margin: 4px 0 8px;
446
+ }
447
+ .resume-timeline h3 span {
448
+ font-weight: 400;
449
+ }
450
+ .resume-period {
451
+ font-size: 12px;
452
+ margin: 0;
453
+ color: #7e6252;
454
+ font-weight: 600;
455
+ }
456
+ .resume-timeline article > p:last-child {
457
+ margin-bottom: 0;
458
+ }
459
+ .personal-footer {
460
+ display: flex;
461
+ justify-content: space-between;
462
+ align-items: center;
463
+ gap: 25px;
464
+ }
465
+ .personal-footer p {
466
+ margin-bottom: 0;
467
+ }
468
+
469
+ .public-content {
470
+ text-align: center;
471
+ margin: 2rem 0;
472
+ }
473
+ .public-content img {
474
+ display: inline-block;
475
+ width: min(100%, 520px);
476
+ height: auto;
477
+ }
478
+ .public-content h1 {
479
+ font-size: clamp(2rem, 5vw, 3.5rem);
480
+ }
481
+ .content-account {
482
+ max-width: 680px;
483
+ margin: 2rem auto;
484
+ }
485
+ .content-account button {
486
+ margin: 0.4rem 0.4rem 0.4rem 0;
487
+ }
488
+ .content-account input:not([type="checkbox"]) {
489
+ width: 100%;
490
+ }
491
+
492
+ .signin-logo {
493
+ width: 56px;
494
+ height: 56px;
495
+ image-rendering: pixelated;
496
+ }
497
+
498
+ .signin-shell {
499
+ display: grid;
500
+ grid-template-columns: 1fr 1fr;
501
+ background: white;
502
+ border: 1px solid #dce5da;
503
+ border-radius: 24px;
504
+ overflow: hidden;
505
+ margin: 34px auto;
506
+ box-shadow: 0 18px 70px #23413208;
507
+ }
508
+ .signin-shell > [role="alert"],
509
+ .signin-shell > [role="status"] {
510
+ grid-column: 1 / -1;
511
+ margin: 16px 24px 0;
512
+ }
513
+ .signin-intro {
514
+ padding: 64px 52px;
515
+ background: #eaf0e5;
516
+ display: flex;
517
+ flex-direction: column;
518
+ align-items: flex-start;
519
+ }
520
+ .signin-intro h1 {
521
+ max-width: 390px;
522
+ font-size: clamp(36px, 4.3vw, 58px);
523
+ margin: 24px 0;
524
+ }
525
+ .signin-description {
526
+ font-size: 17px;
527
+ max-width: 330px;
528
+ margin: 0 0 64px;
529
+ }
530
+ .signin-trust {
531
+ display: flex;
532
+ gap: 16px;
533
+ align-items: center;
534
+ margin-top: auto;
535
+ }
536
+ .signin-trust .signin-logo {
537
+ width: 36px;
538
+ height: 36px;
539
+ }
540
+ .signin-trust strong {
541
+ font-size: 13px;
542
+ }
543
+ .signin-trust p {
544
+ font-size: 12px;
545
+ margin: 4px 0 0;
546
+ }
547
+ .signin-form {
548
+ padding: 56px 52px;
549
+ }
550
+ .signin-form h2 {
551
+ font-size: 28px;
552
+ margin-bottom: 8px;
553
+ }
554
+ .signin-form > p {
555
+ margin: 0 0 28px;
556
+ }
557
+ .signin-form input {
558
+ width: 100%;
559
+ min-height: 48px;
560
+ }
561
+ .signin-form form button {
562
+ width: 100%;
563
+ min-height: 48px;
564
+ margin-top: 12px;
565
+ }
566
+ .signin-form .secondary {
567
+ background: white;
568
+ }
569
+ .signin-divider {
570
+ display: flex;
571
+ align-items: center;
572
+ gap: 12px;
573
+ color: #738277;
574
+ font-size: 12px;
575
+ margin: 24px 0 18px;
576
+ }
577
+ .signin-divider::before,
578
+ .signin-divider::after {
579
+ content: "";
580
+ height: 1px;
581
+ flex: 1;
582
+ background: #e1e7de;
583
+ }
584
+ .anonymous-entry {
585
+ display: flex;
586
+ justify-content: space-between;
587
+ align-items: center;
588
+ width: 100%;
589
+ min-height: 46px;
590
+ background: #f5f7f2;
591
+ }
592
+ .signin-form .signin-footnote {
593
+ font-size: 12px;
594
+ text-align: center;
595
+ margin: 12px 0 0;
596
+ }
597
+ .content-nav {
598
+ display: flex;
599
+ align-items: center;
600
+ gap: 10px;
601
+ }
602
+ .content-nav #exit {
603
+ margin-left: auto;
604
+ }
605
+ button:focus-visible,
606
+ a:focus-visible,
607
+ input:focus-visible,
608
+ summary:focus-visible {
609
+ outline: 3px solid #4b7e68;
610
+ outline-offset: 4px;
611
+ }
612
+ @media (max-width: 720px) {
613
+ .signin-shell {
614
+ grid-template-columns: 1fr;
615
+ margin: 0;
616
+ }
617
+ .signin-intro {
618
+ padding: 28px;
619
+ }
620
+ .signin-intro h1 {
621
+ margin: 12px 0;
622
+ }
623
+ .signin-description {
624
+ font-size: 15px;
625
+ margin-bottom: 24px;
626
+ }
627
+ .signin-form {
628
+ padding: 28px;
629
+ }
630
+ .content-nav {
631
+ flex-wrap: wrap;
632
+ }
633
+ main {
634
+ padding: 24px 16px;
635
+ }
636
+ .topbar {
637
+ padding: 18px 16px;
638
+ }
639
+ }