@opengovsg/mockpass 2.7.9

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 (85) hide show
  1. package/.eslintrc.json +13 -0
  2. package/.gitattributes +2 -0
  3. package/.github/dependabot.yml +14 -0
  4. package/.github/mergify.yml +12 -0
  5. package/.github/workflows/ci.yml +27 -0
  6. package/.github/workflows/npmpublish.yml +22 -0
  7. package/.gitpod.yml +5 -0
  8. package/.husky/pre-commit +4 -0
  9. package/.husky/pre-push +4 -0
  10. package/.prettierrc.js +5 -0
  11. package/Dockerfile +11 -0
  12. package/LICENSE +21 -0
  13. package/README.md +99 -0
  14. package/commitlint.config.js +7 -0
  15. package/index.js +87 -0
  16. package/lib/assertions.js +319 -0
  17. package/lib/crypto/index.js +61 -0
  18. package/lib/crypto/myinfo-signature.js +153 -0
  19. package/lib/express/index.js +6 -0
  20. package/lib/express/myinfo/consent.js +160 -0
  21. package/lib/express/myinfo/controllers.js +179 -0
  22. package/lib/express/myinfo/index.js +10 -0
  23. package/lib/express/oidc.js +131 -0
  24. package/lib/express/saml.js +171 -0
  25. package/lib/express/sgid.js +168 -0
  26. package/lib/saml-artifact.js +32 -0
  27. package/package.json +81 -0
  28. package/public/mockpass/resources/css/animate.css +43 -0
  29. package/public/mockpass/resources/css/common.css +121 -0
  30. package/public/mockpass/resources/css/reset.css +95 -0
  31. package/public/mockpass/resources/css/style-baseline-small-media.css +567 -0
  32. package/public/mockpass/resources/css/style-baseline.css +1006 -0
  33. package/public/mockpass/resources/css/style-common-small-media.css +156 -0
  34. package/public/mockpass/resources/css/style-common.css +510 -0
  35. package/public/mockpass/resources/css/style-homepage-small-media.css +588 -0
  36. package/public/mockpass/resources/css/style-homepage.css +674 -0
  37. package/public/mockpass/resources/css/style-main.css +9 -0
  38. package/public/mockpass/resources/img/ajax-loader.gif +0 -0
  39. package/public/mockpass/resources/img/ask_cheryl_tab.png +0 -0
  40. package/public/mockpass/resources/img/background/large-device/sp_bg.jpg +0 -0
  41. package/public/mockpass/resources/img/background/medium-device/ipad-bg.jpg +0 -0
  42. package/public/mockpass/resources/img/background/medium-device/ipad-landscape-sp-bg.jpg +0 -0
  43. package/public/mockpass/resources/img/background/small-device/mobile-sp-bg.jpg +0 -0
  44. package/public/mockpass/resources/img/carousel/large-device/how-to-setup-2fa-icon.png +0 -0
  45. package/public/mockpass/resources/img/carousel/large-device/register-icon.png +0 -0
  46. package/public/mockpass/resources/img/carousel/large-device/reset-password-icon.png +0 -0
  47. package/public/mockpass/resources/img/carousel/large-device/setup-2fa-icon.png +0 -0
  48. package/public/mockpass/resources/img/carousel/large-device/update-acct-icon.png +0 -0
  49. package/public/mockpass/resources/img/carousel/medium-device/ipad-register-icon.png +0 -0
  50. package/public/mockpass/resources/img/carousel/medium-device/ipad-reset-password-icon.png +0 -0
  51. package/public/mockpass/resources/img/carousel/medium-device/ipad-setup-2fa-icon.png +0 -0
  52. package/public/mockpass/resources/img/carousel/medium-device/ipad-update-acct-icon.png +0 -0
  53. package/public/mockpass/resources/img/carousel/small-device/mobile-register.png +0 -0
  54. package/public/mockpass/resources/img/carousel/small-device/mobile-reset-password-icon.png +0 -0
  55. package/public/mockpass/resources/img/carousel/small-device/mobile-update-acct-icon.png +0 -0
  56. package/public/mockpass/resources/img/close.png +0 -0
  57. package/public/mockpass/resources/img/id-pw-icon.png +0 -0
  58. package/public/mockpass/resources/img/logo/mockpass-logo.png +0 -0
  59. package/public/mockpass/resources/img/logo/mockpass-placeholder-logo.png +0 -0
  60. package/public/mockpass/resources/img/logo/mockpass_watermark.png +0 -0
  61. package/public/mockpass/resources/img/qr-icon.png +0 -0
  62. package/public/mockpass/resources/img/qr-shadow.png +0 -0
  63. package/public/mockpass/resources/img/refresh.jpg +0 -0
  64. package/public/mockpass/resources/img/sidebar-icons.png +0 -0
  65. package/public/mockpass/resources/img/sp-qr-unavailable.png +0 -0
  66. package/public/mockpass/resources/img/utility-icon-black.png +0 -0
  67. package/public/mockpass/resources/js/bootstrap.min.js +7 -0
  68. package/public/mockpass/resources/js/jquery-3.5.1.js +10872 -0
  69. package/public/mockpass/resources/js/login-common.js +849 -0
  70. package/public/mockpass/resources/plugins/bootstrap-3.3.6/css/bootstrap.min.css +6 -0
  71. package/public/mockpass/resources/plugins/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 +0 -0
  72. package/static/certs/csr.pem +17 -0
  73. package/static/certs/key.pem +28 -0
  74. package/static/certs/key.pub +9 -0
  75. package/static/certs/server.crt +21 -0
  76. package/static/certs/spcp-csr.pem +17 -0
  77. package/static/certs/spcp-key.pem +28 -0
  78. package/static/certs/spcp.crt +20 -0
  79. package/static/html/consent.html +40 -0
  80. package/static/html/login-page.html +271 -0
  81. package/static/myinfo/v2.json +6154 -0
  82. package/static/myinfo/v3.json +29386 -0
  83. package/static/saml/corppass.xml +21 -0
  84. package/static/saml/unsigned-assertion.xml +24 -0
  85. package/static/saml/unsigned-response.xml +19 -0
@@ -0,0 +1,95 @@
1
+ html, body, div, span, object, iframe,
2
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3
+ abbr, address, cite, code,
4
+ del, dfn, em, img, ins, kbd, q, samp,
5
+ small, strong, sub, sup, var,
6
+ b, i,
7
+ dl, dt, dd, ol, ul, li,
8
+ fieldset, form, label, legend,
9
+ table, caption, tbody, tfoot, thead, tr, th, td,
10
+ article, aside, canvas, details, figcaption, figure,
11
+ footer, header, hgroup, menu, nav, section, summary,
12
+ time, mark, audio, video {
13
+ margin:0;
14
+ padding:0;
15
+ border:0;
16
+ outline:0;
17
+ font-size:100%;
18
+ vertical-align:baseline;
19
+ background:transparent;
20
+ }
21
+
22
+ body {
23
+ line-height:1;
24
+ }
25
+
26
+ article,aside,details,figcaption,figure,
27
+ footer,header,hgroup,menu,nav,section {
28
+ display:block;
29
+ }
30
+
31
+ nav ul {
32
+ list-style:none;
33
+ }
34
+
35
+ blockquote, q {
36
+ quotes:none;
37
+ }
38
+
39
+ blockquote:before, blockquote:after,
40
+ q:before, q:after {
41
+ content:'';
42
+ content:none;
43
+ }
44
+
45
+ a {
46
+ margin:0;
47
+ padding:0;
48
+ font-size:100%;
49
+ vertical-align:baseline;
50
+ background:transparent;
51
+ }
52
+
53
+ /* change colours to suit your needs */
54
+ ins {
55
+ background-color:#ff9;
56
+ color:#000;
57
+ text-decoration:none;
58
+ }
59
+
60
+ /* change colours to suit your needs */
61
+ mark {
62
+ background-color:#ff9;
63
+ color:#000;
64
+ font-style:italic;
65
+ font-weight:bold;
66
+ }
67
+
68
+
69
+ del {
70
+ text-decoration: line-through;
71
+ }
72
+
73
+ abbr[title], dfn[title] {
74
+ border-bottom:1px dotted;
75
+ cursor:help;
76
+ }
77
+
78
+ table {
79
+ border-collapse:collapse;
80
+ border-spacing:0;
81
+ }
82
+
83
+ /* change border colour to suit your needs */
84
+ hr {
85
+ display:block;
86
+ height:1px;
87
+ border:0;
88
+ border-top:1px solid #cccccc;
89
+ margin:1em 0;
90
+ padding:0;
91
+ }
92
+
93
+ input, select {
94
+ vertical-align:middle;
95
+ }
@@ -0,0 +1,567 @@
1
+ /*------------------------------------------------
2
+ Base Build Small Devices Common START
3
+ ------------------------------------------------ */
4
+ @media only screen and (min-width: 320px) and (max-width: 767px) {
5
+ /* --- Mobile Header Start --- */
6
+ #mobile-header {
7
+ transition: margin-left .5s;
8
+ padding: 16px 20px;
9
+ height: 66px;
10
+ width: 100%;
11
+ border-bottom: 2px solid #E11F26;
12
+ background-color: #fff;
13
+ }
14
+ .mobile-mockpass-logo {
15
+ position: relative;
16
+ top: -5px;
17
+ height: 49px;
18
+ padding: 0;
19
+ width: 122px;
20
+ background-size: contain!important;
21
+ background: url("../../resources/img/logo/mockpass-logo.png");
22
+ background-repeat: no-repeat;
23
+ margin: 0 auto;
24
+ }
25
+ /* --- Mobile Header End --- */
26
+
27
+ /* --- Main Navigation Start --- */
28
+ .mNavigation_container {
29
+ width: 100%;
30
+ }
31
+ .mNavigation_body p {
32
+ padding: 18px 5px;
33
+ margin: 0px;
34
+ }
35
+ .mNavigation_title {
36
+ background-color: #111;
37
+ margin: 0 0 1px 0;
38
+ text-decoration: none;
39
+ color: #fff;
40
+ display: block;
41
+ border-bottom: 1px solid #17202A;
42
+ }
43
+ .mNavigation_title.mDropdown {
44
+ padding: 8px 8px 8px 32px;
45
+ font-size: 1.3em;
46
+ }
47
+ .mNavigation_body {
48
+ background: lightgray;
49
+ padding: 0px 8px 0px 5px;
50
+ text-decoration: none;
51
+ font-size: .85em;
52
+ color: #fff;
53
+ display: block;
54
+ transition: .5s;
55
+ background-color: #17202A;
56
+ }
57
+ .mNavigation_body>a {
58
+ border-bottom: 1px solid #212F3D;
59
+ font-size: 1.1em;
60
+ }
61
+ .plusminus {
62
+ float: right;
63
+ position: relative;
64
+ }
65
+ .mDropbtn {
66
+ color: #fff;
67
+ padding: 0;
68
+ font-size: 1.5em;
69
+ border: none;
70
+ cursor: pointer;
71
+ width: 100%;
72
+ text-align: left;
73
+ text-indent: 32px;
74
+ background-color: #111;
75
+ height: 40px;
76
+ }
77
+ .mDropdown-container {
78
+ position: relative;
79
+ display: inline-block;
80
+ width: 100%;
81
+ }
82
+ .mDropdown-content {
83
+ display: none;
84
+ position: relative;
85
+ background-color: #17202A;
86
+ min-width: 160px;
87
+ box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
88
+ z-index: 1;
89
+ font-size: .7em;
90
+ text-indent: 7px;
91
+ line-height: 20px;
92
+ }
93
+ .mDropdown-content a {
94
+ color: black;
95
+ padding: 12px 16px;
96
+ text-decoration: none;
97
+ display: block;
98
+ }
99
+ .mDropdown-content a:hover {
100
+ background-color: #212F3D;
101
+ }
102
+ .mDropdown-container:hover .mDropdown-content {
103
+ display: block;
104
+ }
105
+ .mDropdown-container:hover .mDropbtn {
106
+ background-color: none;
107
+ }
108
+ /* --- Main Navigation End --- */
109
+
110
+ /* --- Side Navigation Start --- */
111
+ .sidenav {
112
+ height: 100%;
113
+ width: 0;
114
+ position: fixed;
115
+ z-index: 100;
116
+ top: 0;
117
+ left: 0;
118
+ background-color: #111;
119
+ overflow-x: hidden;
120
+ transition: .5s;
121
+ padding-top: 15px;
122
+ line-height: 30px;
123
+ }
124
+ .sidenav a {
125
+ padding: 8px 8px 8px 32px;
126
+ text-decoration: none;
127
+ font-size: 1.3em;
128
+ color: #fff;
129
+ display: block;
130
+ transition: .3s;
131
+ }
132
+ .sidenav a:hover {
133
+ color: #f1f1f1;
134
+ }
135
+ .sidenav .closebtn {
136
+ position: absolute;
137
+ top: 10px;
138
+ right: 25px;
139
+ font-size: 2.57em;
140
+ margin-left: 50px;
141
+ color: #c0c0c0;
142
+ }
143
+ /* --- Side Navigation End --- */
144
+
145
+ /* --- Main Footer --- */
146
+ .container-wrapper-footer {
147
+ color: #fff;
148
+ background-color: #e2dedf;
149
+ text-align: center;
150
+ padding: 10px 0 10px;
151
+ margin: auto;
152
+ position: absolute;
153
+ height: 69px;
154
+ }
155
+ .footer-terms-condition {
156
+ text-align: center !important;
157
+ font-size: 0.75em;
158
+ color: #000; }
159
+ .footer-terms-condition a {
160
+ color: #000; }
161
+ .footer-copyright {
162
+ text-align: center !important;
163
+ padding: 5px 0 0 0;
164
+ font-size: 0.75em;
165
+ color: #000;
166
+ font-weight: normal;
167
+ color: #000; }
168
+ /* --- Main Footer End --- */
169
+
170
+ .commonbody-container {
171
+ width: 100%;
172
+ margin: 0 auto 25px auto;
173
+ padding: 0 20px;
174
+ }
175
+ .inner-body-wrapper {
176
+ padding-bottom: 69px;
177
+ position: relative;
178
+ }
179
+ button.btn-cancel {
180
+ position: relative;
181
+ width: 100%;
182
+ top: 55px;
183
+ padding: 10px 0px;
184
+ font-size: 1em;
185
+ }
186
+ button.btn-primary {
187
+ position:relative;
188
+ width: 100%;
189
+ top: -50px;
190
+ padding: 10px 0px;
191
+ font-size: 1em;
192
+ }
193
+ button.single-btn {
194
+ top: 0px;
195
+ }
196
+ .nav-pills>li, .nav-tabs>li {
197
+ float: left;
198
+ display: inline-block;
199
+ zoom: 1;
200
+ width: 50%;
201
+ }
202
+ .modal-open {
203
+ padding-right: 0px !important;
204
+ }
205
+ }
206
+ /*------------------------------------------------
207
+ Base Build Small Devices Common END
208
+ ------------------------------------------------ */
209
+
210
+ /*------------------------------------------------
211
+ Base Build for Small devices Portrait START
212
+ ------------------------------------------------ */
213
+ @media only screen and (min-width: 320px) and (max-width: 767px) and (orientation: portrait) {
214
+ body {
215
+ font-size: 14px;
216
+ height: initial !important;
217
+ }
218
+ .mainbody-wrapper {
219
+ min-height: 100vh;
220
+ height: initial;
221
+ position: relative;
222
+ }
223
+ .homepagebody-wrapper {
224
+ min-height: 792px;
225
+ height: 100vh;
226
+ position: relative;
227
+ }
228
+ .modal-dialog {
229
+ width: 100%;
230
+ }
231
+ }
232
+ /*------------------------------------------------
233
+ Base Build for Small devices Portrait END
234
+ ------------------------------------------------ */
235
+
236
+
237
+ /*------------------------------------------------
238
+ Base Build for Small devices Landscape START
239
+ ------------------------------------------------ */
240
+ @media only screen and (min-width: 320px) and (max-width: 767px) and (orientation: landscape) {
241
+ body {
242
+ font-size: 14px;
243
+ height: initial !important;
244
+ }
245
+ .mainbody-wrapper {
246
+ min-height: 680px;
247
+ height: initial;
248
+ position: relative;
249
+ }
250
+ .homepagebody-wrapper {
251
+ min-height: 650px;
252
+ height: 100vh;
253
+ position: relative;
254
+ }
255
+ }
256
+ /*------------------------------------------------
257
+ Base Build for Small devices Landscape END
258
+ ------------------------------------------------ */
259
+
260
+
261
+ /*------------------------------------------------
262
+ Common Large Tablet START
263
+ ------------------------------------------------ */
264
+ @media only screen and (min-width: 768px) and (max-width: 1199px) {
265
+ .homepagebody-wrapper {
266
+ min-height: 694px;
267
+ height: 100vh;
268
+ position: relative;
269
+ }
270
+ .mainbody-wrapper {
271
+ min-height: inherit;
272
+ height: initial;
273
+ position: relative;
274
+ }
275
+ .landingpagebody-wrapper {
276
+ min-height: 100vh;
277
+ height: 100vh;
278
+ position: relative;
279
+ }
280
+ .commonbody-container {
281
+ width: 100%;
282
+ margin: 0 auto 25px auto;
283
+ padding: 0 50px;
284
+ }
285
+ .mainHeaderContainer.container.hidden-xs {
286
+ padding-left: 0px;
287
+ padding-right: 0px;
288
+ display: none;
289
+ }
290
+
291
+ /* --- Side Navigation Start --- */
292
+ .sidenav {
293
+ height: 100%;
294
+ width: 0;
295
+ position: fixed;
296
+ z-index: 100;
297
+ top: 0;
298
+ left: 0;
299
+ background-color: #111;
300
+ overflow-x: hidden;
301
+ transition: .5s;
302
+ padding-top: 15px;
303
+ line-height: 30px;
304
+ }
305
+ .sidenav a {
306
+ padding: 8px 8px 8px 32px;
307
+ text-decoration: none;
308
+ font-size: 1.3em;
309
+ color: #fff;
310
+ display: block;
311
+ transition: .3s;
312
+ }
313
+ .sidenav a:hover {
314
+ color: #f1f1f1;
315
+ }
316
+ .sidenav .closebtn {
317
+ position: absolute;
318
+ top: 10px;
319
+ right: 25px;
320
+ font-size: 2.57em;
321
+ margin-left: 50px;
322
+ color: #c0c0c0;
323
+ }
324
+ .navbar-collapse.collapse {
325
+ display: none !important;
326
+ }
327
+
328
+ /* --- Mobile Header Start --- */
329
+ #mobile-header {
330
+ transition: margin-left .5s;
331
+ padding: 16px;
332
+ height: 66px;
333
+ width: 100%;
334
+ border-bottom: 2px solid #E11F26;
335
+ background-color: #fff;
336
+ }
337
+ .mobile-mockpass-logo {
338
+ position: relative;
339
+ top: -5px;
340
+ height: 49px;
341
+ padding: 0;
342
+ width: 122px;
343
+ background: url("../../resources/img/logo/mockpass-logo.png");
344
+ background-size: contain;
345
+ background-repeat: no-repeat;
346
+ margin: 0 auto;
347
+ }
348
+ .mNavigation_body p {
349
+ padding: 18px 5px;
350
+ margin: 0px;
351
+ }
352
+ .plusminus {
353
+ float: right;
354
+ position: relative;
355
+ }
356
+ .mNavigation_title {
357
+ background-color: #111;
358
+ margin: 0 0 1px 0;
359
+ text-decoration: none;
360
+ color: #fff;
361
+ display: block;
362
+ border-bottom: 1px solid #17202A;
363
+ }
364
+ .mNavigation_title.mDropdown {
365
+ padding: 8px 8px 8px 32px;
366
+ font-size: 1.3em;
367
+ }
368
+ .mNavigation_body {
369
+ background: lightgray;
370
+ padding: 0px 8px 0px 5px;
371
+ text-decoration: none;
372
+ font-size: .85em;
373
+ color: #fff;
374
+ display: block;
375
+ transition: .5s;
376
+ background-color: #17202A;
377
+ }
378
+ .mNavigation_body>a {
379
+ border-bottom: 1px solid #212F3D;
380
+ font-size: 1.1em;
381
+ }
382
+ /* --- Mobile Header END --- */
383
+ }
384
+ /*------------------------------------------------
385
+ Common Large Tablet END
386
+ ------------------------------------------------ */
387
+
388
+
389
+ /*------------------------------------------------
390
+ Large Tablet (SIZE: SM) START
391
+ ------------------------------------------------ */
392
+ @media only screen and (min-width: 768px) and (max-width: 991px) {
393
+ .inner-body-wrapper {
394
+ min-height: 650px;
395
+ padding-bottom: 75px;
396
+ position: relative;
397
+ }
398
+ /* --- Main Footer --- */
399
+ .container-wrapper-footer {
400
+ color: #fff;
401
+ background-color: #e2dedf;
402
+ text-align: center;
403
+ padding: 10px 0 10px;
404
+ margin: auto;
405
+ position: absolute;
406
+ }
407
+ .footer-terms-condition {
408
+ text-align: center !important;
409
+ padding: 0 0 0 0 !important;
410
+ width: 100% !important;
411
+ font-size: 0.75em;
412
+ color: #000;
413
+ }
414
+ .footer-terms-condition a {
415
+ color: #000;
416
+ }
417
+ .footer-copyright {
418
+ text-align: center !important;
419
+ padding: 5px 25px 0 0;
420
+ font-size: 0.75em;
421
+ color: #000;
422
+ font-weight: normal;
423
+ }
424
+ /* --- Main Footer End --- */
425
+ }
426
+ /*------------------------------------------------
427
+ Large Tablet (SIZE: SM) END
428
+ ------------------------------------------------ */
429
+
430
+
431
+ /*------------------------------------------------
432
+ Large Tablet (SIZE: MD) START
433
+ ------------------------------------------------ */
434
+ @media only screen and (min-width: 992px) and (max-width: 1199px) {
435
+ .inner-body-wrapper {
436
+ padding-bottom: 55px;
437
+ position: relative;
438
+ }
439
+ /* --- Main Footer --- */
440
+ .container-wrapper-footer {
441
+ color: #fff;
442
+ background-color: #e2dedf;
443
+ text-align: center;
444
+ padding: 20px 0 20px;
445
+ margin: auto;
446
+ position: absolute;
447
+ }
448
+ .footer-terms-condition {
449
+ text-align: left;
450
+ padding: 0;
451
+ width: 100% !important;
452
+ font-size: 0.75em;
453
+ color: #000;
454
+ }
455
+ .footer-terms-condition a {
456
+ color: #000;
457
+ }
458
+ .footer-copyright {
459
+ text-align: right;
460
+ padding: 0;
461
+ font-size: 0.75em;
462
+ color: #000;
463
+ font-weight: normal;
464
+ }
465
+ /* --- Main Footer End --- */
466
+ }
467
+ /*------------------------------------------------
468
+ Large Tablet (SIZE: MD) END
469
+ ------------------------------------------------ */
470
+
471
+
472
+ /*------------------------------------------------
473
+ IPad Portrait
474
+ ------------------------------------------------ */
475
+ @media only screen and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) {
476
+ .inner-body-wrapper {
477
+ min-height: 0px;
478
+ padding-bottom: 75px;
479
+ position: relative;
480
+ }
481
+ button.btn.btn-primary.btn-lg.eailogout-btn.logoutBtn {
482
+ position: absolute;
483
+ left: 87%;
484
+ top: 29px;
485
+ }
486
+ /* --- Main Footer --- */
487
+ .container-wrapper-footer {
488
+ color: #fff;
489
+ background-color: #e2dedf;
490
+ text-align: center;
491
+ padding: 10px 0 10px;
492
+ margin: auto;
493
+ position: absolute;
494
+ }
495
+ .footer-terms-condition {
496
+ text-align: center !important;
497
+ padding: 0 0 0 0 !important;
498
+ width: 100% !important;
499
+ font-size: 0.75em;
500
+ color: #000;
501
+ }
502
+ .footer-terms-condition a {
503
+ color: #000;
504
+ }
505
+ .footer-copyright {
506
+ text-align: center !important;
507
+ padding: 5px 25px 0 0;
508
+ font-size: 0.75em;
509
+ color: #000;
510
+ font-weight: normal;
511
+ }
512
+ /* --- Main Footer End --- */
513
+ }
514
+ /*------------------------------------------------
515
+ IPad Portrait END
516
+ ------------------------------------------------ */
517
+
518
+ /*------------------------------------------------
519
+ IPad Landscape
520
+ ------------------------------------------------ */
521
+ @media only screen and (device-width: 768px) and (device-height: 1024px) and (orientation: landscape) {
522
+ .inner-body-wrapper {
523
+ min-height: 0px;
524
+ padding-bottom: 55px;
525
+ position: relative;
526
+ }
527
+ button.btn.btn-primary.btn-lg.logoutBtn {
528
+ position: absolute;
529
+ width: 229px;
530
+ font-weight: bold;
531
+ font-size: 1.2em;
532
+ border-top-left-radius: 0px !important;
533
+ border-top-right-radius: 0px !important;
534
+ top: 1px;
535
+ left: unset !important;
536
+ }
537
+ /* --- Main Footer --- */
538
+ .container-wrapper-footer {
539
+ color: #fff;
540
+ background-color: #e2dedf;
541
+ text-align: center;
542
+ padding: 20px 0 20px;
543
+ margin: auto;
544
+ position: absolute;
545
+ }
546
+ .footer-terms-condition {
547
+ text-align: left;
548
+ padding: 0;
549
+ width: 100% !important;
550
+ font-size: 0.75em;
551
+ color: #000;
552
+ }
553
+ .footer-terms-condition a {
554
+ color: #000;
555
+ }
556
+ .footer-copyright {
557
+ text-align: right;
558
+ padding: 0;
559
+ font-size: 0.75em;
560
+ color: #000;
561
+ font-weight: normal;
562
+ }
563
+ /* --- Main Footer End --- */
564
+ }
565
+ /*------------------------------------------------
566
+ IPad Landscape END
567
+ ------------------------------------------------ */