tina4ruby 3.11.13 → 3.11.15

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +80 -80
  3. data/LICENSE.txt +21 -21
  4. data/README.md +137 -137
  5. data/exe/tina4ruby +5 -5
  6. data/lib/tina4/ai.rb +696 -696
  7. data/lib/tina4/api.rb +189 -189
  8. data/lib/tina4/auth.rb +305 -305
  9. data/lib/tina4/auto_crud.rb +244 -244
  10. data/lib/tina4/cache.rb +154 -154
  11. data/lib/tina4/cli.rb +1449 -1449
  12. data/lib/tina4/constants.rb +46 -46
  13. data/lib/tina4/container.rb +74 -74
  14. data/lib/tina4/cors.rb +74 -74
  15. data/lib/tina4/crud.rb +692 -692
  16. data/lib/tina4/database/sqlite3_adapter.rb +165 -165
  17. data/lib/tina4/database.rb +625 -625
  18. data/lib/tina4/database_result.rb +208 -208
  19. data/lib/tina4/debug.rb +8 -8
  20. data/lib/tina4/dev.rb +14 -14
  21. data/lib/tina4/dev_admin.rb +935 -935
  22. data/lib/tina4/dev_mailbox.rb +191 -191
  23. data/lib/tina4/drivers/firebird_driver.rb +124 -110
  24. data/lib/tina4/drivers/mongodb_driver.rb +561 -561
  25. data/lib/tina4/drivers/mssql_driver.rb +112 -112
  26. data/lib/tina4/drivers/mysql_driver.rb +90 -90
  27. data/lib/tina4/drivers/odbc_driver.rb +191 -191
  28. data/lib/tina4/drivers/postgres_driver.rb +116 -106
  29. data/lib/tina4/drivers/sqlite_driver.rb +122 -122
  30. data/lib/tina4/env.rb +95 -95
  31. data/lib/tina4/error_overlay.rb +252 -252
  32. data/lib/tina4/events.rb +109 -109
  33. data/lib/tina4/field_types.rb +154 -154
  34. data/lib/tina4/frond.rb +2025 -2025
  35. data/lib/tina4/gallery/auth/meta.json +1 -1
  36. data/lib/tina4/gallery/auth/src/routes/api/gallery_auth.rb +114 -114
  37. data/lib/tina4/gallery/database/meta.json +1 -1
  38. data/lib/tina4/gallery/database/src/routes/api/gallery_db.rb +43 -43
  39. data/lib/tina4/gallery/error-overlay/meta.json +1 -1
  40. data/lib/tina4/gallery/error-overlay/src/routes/api/gallery_crash.rb +17 -17
  41. data/lib/tina4/gallery/orm/meta.json +1 -1
  42. data/lib/tina4/gallery/orm/src/routes/api/gallery_products.rb +16 -16
  43. data/lib/tina4/gallery/queue/meta.json +1 -1
  44. data/lib/tina4/gallery/queue/src/routes/api/gallery_queue.rb +325 -325
  45. data/lib/tina4/gallery/rest-api/meta.json +1 -1
  46. data/lib/tina4/gallery/rest-api/src/routes/api/gallery_hello.rb +14 -14
  47. data/lib/tina4/gallery/templates/meta.json +1 -1
  48. data/lib/tina4/gallery/templates/src/routes/gallery_page.rb +12 -12
  49. data/lib/tina4/gallery/templates/src/templates/gallery_page.twig +257 -257
  50. data/lib/tina4/graphql.rb +966 -966
  51. data/lib/tina4/health.rb +39 -39
  52. data/lib/tina4/html_element.rb +170 -170
  53. data/lib/tina4/job.rb +80 -80
  54. data/lib/tina4/localization.rb +168 -168
  55. data/lib/tina4/log.rb +203 -203
  56. data/lib/tina4/mcp.rb +696 -696
  57. data/lib/tina4/messenger.rb +587 -587
  58. data/lib/tina4/metrics.rb +793 -793
  59. data/lib/tina4/middleware.rb +445 -445
  60. data/lib/tina4/migration.rb +451 -451
  61. data/lib/tina4/orm.rb +790 -790
  62. data/lib/tina4/public/css/tina4.css +2463 -2463
  63. data/lib/tina4/public/css/tina4.min.css +1 -1
  64. data/lib/tina4/public/images/logo.svg +5 -5
  65. data/lib/tina4/public/js/frond.min.js +2 -2
  66. data/lib/tina4/public/js/tina4-dev-admin.js +565 -565
  67. data/lib/tina4/public/js/tina4-dev-admin.min.js +480 -480
  68. data/lib/tina4/public/js/tina4.min.js +92 -92
  69. data/lib/tina4/public/js/tina4js.min.js +48 -48
  70. data/lib/tina4/public/swagger/index.html +90 -90
  71. data/lib/tina4/public/swagger/oauth2-redirect.html +63 -63
  72. data/lib/tina4/query_builder.rb +380 -380
  73. data/lib/tina4/queue.rb +366 -366
  74. data/lib/tina4/queue_backends/kafka_backend.rb +80 -80
  75. data/lib/tina4/queue_backends/lite_backend.rb +298 -298
  76. data/lib/tina4/queue_backends/mongo_backend.rb +126 -126
  77. data/lib/tina4/queue_backends/rabbitmq_backend.rb +73 -73
  78. data/lib/tina4/rack_app.rb +817 -817
  79. data/lib/tina4/rate_limiter.rb +130 -130
  80. data/lib/tina4/request.rb +268 -255
  81. data/lib/tina4/response.rb +346 -346
  82. data/lib/tina4/response_cache.rb +551 -551
  83. data/lib/tina4/router.rb +406 -406
  84. data/lib/tina4/scss/tina4css/_alerts.scss +34 -34
  85. data/lib/tina4/scss/tina4css/_badges.scss +22 -22
  86. data/lib/tina4/scss/tina4css/_buttons.scss +69 -69
  87. data/lib/tina4/scss/tina4css/_cards.scss +49 -49
  88. data/lib/tina4/scss/tina4css/_forms.scss +156 -156
  89. data/lib/tina4/scss/tina4css/_grid.scss +81 -81
  90. data/lib/tina4/scss/tina4css/_modals.scss +84 -84
  91. data/lib/tina4/scss/tina4css/_nav.scss +149 -149
  92. data/lib/tina4/scss/tina4css/_reset.scss +94 -94
  93. data/lib/tina4/scss/tina4css/_tables.scss +54 -54
  94. data/lib/tina4/scss/tina4css/_typography.scss +55 -55
  95. data/lib/tina4/scss/tina4css/_utilities.scss +197 -197
  96. data/lib/tina4/scss/tina4css/_variables.scss +117 -117
  97. data/lib/tina4/scss/tina4css/base.scss +1 -1
  98. data/lib/tina4/scss/tina4css/colors.scss +48 -48
  99. data/lib/tina4/scss/tina4css/tina4.scss +17 -17
  100. data/lib/tina4/scss_compiler.rb +178 -178
  101. data/lib/tina4/seeder.rb +567 -567
  102. data/lib/tina4/service_runner.rb +303 -303
  103. data/lib/tina4/session.rb +297 -297
  104. data/lib/tina4/session_handlers/database_handler.rb +72 -72
  105. data/lib/tina4/session_handlers/file_handler.rb +67 -67
  106. data/lib/tina4/session_handlers/mongo_handler.rb +49 -49
  107. data/lib/tina4/session_handlers/redis_handler.rb +43 -43
  108. data/lib/tina4/session_handlers/valkey_handler.rb +43 -43
  109. data/lib/tina4/shutdown.rb +84 -84
  110. data/lib/tina4/sql_translation.rb +158 -158
  111. data/lib/tina4/swagger.rb +124 -124
  112. data/lib/tina4/template.rb +894 -894
  113. data/lib/tina4/templates/base.twig +26 -26
  114. data/lib/tina4/templates/errors/302.twig +14 -14
  115. data/lib/tina4/templates/errors/401.twig +9 -9
  116. data/lib/tina4/templates/errors/403.twig +29 -29
  117. data/lib/tina4/templates/errors/404.twig +29 -29
  118. data/lib/tina4/templates/errors/500.twig +38 -38
  119. data/lib/tina4/templates/errors/502.twig +9 -9
  120. data/lib/tina4/templates/errors/503.twig +12 -12
  121. data/lib/tina4/templates/errors/base.twig +37 -37
  122. data/lib/tina4/test_client.rb +159 -159
  123. data/lib/tina4/testing.rb +340 -340
  124. data/lib/tina4/validator.rb +174 -174
  125. data/lib/tina4/version.rb +1 -1
  126. data/lib/tina4/webserver.rb +312 -312
  127. data/lib/tina4/websocket.rb +343 -343
  128. data/lib/tina4/websocket_backplane.rb +190 -190
  129. data/lib/tina4/wsdl.rb +564 -564
  130. data/lib/tina4.rb +458 -458
  131. data/lib/tina4ruby.rb +4 -4
  132. metadata +3 -3
@@ -1,2463 +1,2463 @@
1
- *,
2
- *::before,
3
- *::after {
4
- box-sizing: border-box;
5
- }
6
-
7
- html {
8
- line-height: 1.5;
9
- -webkit-text-size-adjust: 100%;
10
- -moz-tab-size: 4;
11
- tab-size: 4;
12
- scroll-behavior: smooth;
13
- }
14
-
15
- body {
16
- margin: 0;
17
- font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
18
- font-size: 1rem;
19
- font-weight: 400;
20
- line-height: 1.5;
21
- color: #212529;
22
- background-color: #fff;
23
- -webkit-font-smoothing: antialiased;
24
- -moz-osx-font-smoothing: grayscale;
25
- }
26
-
27
- h1, h2, h3, h4, h5, h6 {
28
- margin-top: 0;
29
- margin-bottom: 0.5rem;
30
- font-weight: 500;
31
- line-height: 1.25;
32
- }
33
-
34
- p {
35
- margin-top: 0;
36
- margin-bottom: 1rem;
37
- }
38
-
39
- ol, ul {
40
- padding-left: 2rem;
41
- margin-top: 0;
42
- margin-bottom: 1rem;
43
- }
44
-
45
- a {
46
- color: #4a90d9;
47
- text-decoration: none;
48
- }
49
-
50
- a:hover {
51
- color: #256ab1;
52
- text-decoration: underline;
53
- }
54
-
55
- img, svg {
56
- max-width: 100%;
57
- height: auto;
58
- vertical-align: middle;
59
- }
60
-
61
- table {
62
- border-collapse: collapse;
63
- caption-side: bottom;
64
- }
65
-
66
- button, input, optgroup, select, textarea {
67
- margin: 0;
68
- font-family: inherit;
69
- font-size: inherit;
70
- line-height: inherit;
71
- }
72
-
73
- button, select {
74
- text-transform: none;
75
- }
76
-
77
- button, [type="button"], [type="reset"], [type="submit"] {
78
- -webkit-appearance: button;
79
- cursor: pointer;
80
- }
81
-
82
- hr {
83
- margin: 1rem 0;
84
- color: inherit;
85
- border: 0;
86
- border-top: 1px solid rgba(0, 0, 0, 0.1);
87
- opacity: 0.25;
88
- }
89
-
90
- pre, code, kbd, samp {
91
- font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
92
- font-size: 1em;
93
- }
94
-
95
- pre {
96
- margin-top: 0;
97
- margin-bottom: 1rem;
98
- overflow: auto;
99
- }
100
-
101
- [hidden] {
102
- display: none !important;
103
- }
104
-
105
- h1 {
106
- font-size: 2.25rem;
107
- }
108
-
109
- h2 {
110
- font-size: 1.875rem;
111
- }
112
-
113
- h3 {
114
- font-size: 1.5rem;
115
- }
116
-
117
- h4 {
118
- font-size: 1.25rem;
119
- }
120
-
121
- h5 {
122
- font-size: 1.125rem;
123
- }
124
-
125
- h6 {
126
- font-size: 1rem;
127
- }
128
-
129
- small, .small {
130
- font-size: 0.875em;
131
- }
132
-
133
- mark, .mark {
134
- padding: 0.2em;
135
- background-color: rgba(255, 193, 7, 0.3);
136
- }
137
-
138
- blockquote {
139
- margin: 0 0 1rem;
140
- padding: 0.5rem 1rem;
141
- border-left: 0.25rem solid rgba(0, 0, 0, 0.1);
142
- font-size: 1.125rem;
143
- }
144
-
145
- code {
146
- font-size: 0.875em;
147
- color: #dc3545;
148
- word-wrap: break-word;
149
- }
150
-
151
- pre {
152
- display: block;
153
- padding: 1rem;
154
- font-size: 0.875em;
155
- color: #212529;
156
- background-color: #f8f9fa;
157
- border-radius: 0.25rem;
158
- }
159
-
160
- .list-unstyled {
161
- padding-left: 0;
162
- list-style: none;
163
- }
164
-
165
- .list-inline {
166
- padding-left: 0;
167
- list-style: none;
168
- }
169
-
170
- .list-inline-item {
171
- display: inline-block;
172
- }
173
-
174
- .list-inline-item:not(:last-child) {
175
- margin-right: 0.5rem;
176
- }
177
-
178
- .container,
179
- .container-fluid {
180
- width: 100%;
181
- padding-right: calc($grid-gutter / 2);
182
- padding-left: calc($grid-gutter / 2);
183
- margin-right: auto;
184
- margin-left: auto;
185
- }
186
-
187
- @media (min-width: 576px) {
188
- .container {
189
- max-width: 540px;
190
- }
191
- }
192
-
193
- @media (min-width: 768px) {
194
- .container {
195
- max-width: 720px;
196
- }
197
- }
198
-
199
- @media (min-width: 992px) {
200
- .container {
201
- max-width: 960px;
202
- }
203
- }
204
-
205
- @media (min-width: 1200px) {
206
- .container {
207
- max-width: 1140px;
208
- }
209
- }
210
-
211
- @media (min-width: 1400px) {
212
- .container {
213
- max-width: 1320px;
214
- }
215
- }
216
-
217
- .row {
218
- display: flex;
219
- flex-wrap: wrap;
220
- margin-right: calc($grid-gutter / -2);
221
- margin-left: calc($grid-gutter / -2);
222
- }
223
-
224
- .row > * {
225
- flex-shrink: 0;
226
- width: 100%;
227
- max-width: 100%;
228
- padding-right: calc($grid-gutter / 2);
229
- padding-left: calc($grid-gutter / 2);
230
- }
231
-
232
- .col {
233
- flex: 1 0 0%;
234
- }
235
-
236
- .col-1 {
237
- flex: 0 0 auto;
238
- width: 8.33333%;
239
- }
240
-
241
- .col-2 {
242
- flex: 0 0 auto;
243
- width: 16.66667%;
244
- }
245
-
246
- .col-3 {
247
- flex: 0 0 auto;
248
- width: 25%;
249
- }
250
-
251
- .col-4 {
252
- flex: 0 0 auto;
253
- width: 33.33333%;
254
- }
255
-
256
- .col-5 {
257
- flex: 0 0 auto;
258
- width: 41.66667%;
259
- }
260
-
261
- .col-6 {
262
- flex: 0 0 auto;
263
- width: 50%;
264
- }
265
-
266
- .col-7 {
267
- flex: 0 0 auto;
268
- width: 58.33333%;
269
- }
270
-
271
- .col-8 {
272
- flex: 0 0 auto;
273
- width: 66.66667%;
274
- }
275
-
276
- .col-9 {
277
- flex: 0 0 auto;
278
- width: 75%;
279
- }
280
-
281
- .col-10 {
282
- flex: 0 0 auto;
283
- width: 83.33333%;
284
- }
285
-
286
- .col-11 {
287
- flex: 0 0 auto;
288
- width: 91.66667%;
289
- }
290
-
291
- .col-12 {
292
- flex: 0 0 auto;
293
- width: 100%;
294
- }
295
-
296
- .offset-1 {
297
- margin-left: 8.33333%;
298
- }
299
-
300
- .offset-2 {
301
- margin-left: 16.66667%;
302
- }
303
-
304
- .offset-3 {
305
- margin-left: 25%;
306
- }
307
-
308
- .offset-4 {
309
- margin-left: 33.33333%;
310
- }
311
-
312
- .offset-0 {
313
- margin-left: 0;
314
- }
315
-
316
- @media (min-width: 576px) {
317
- .col-sm {
318
- flex: 1 0 0%;
319
- }
320
- .col-sm-1 {
321
- flex: 0 0 auto;
322
- width: 8.33333%;
323
- }
324
- .col-sm-2 {
325
- flex: 0 0 auto;
326
- width: 16.66667%;
327
- }
328
- .col-sm-3 {
329
- flex: 0 0 auto;
330
- width: 25%;
331
- }
332
- .col-sm-4 {
333
- flex: 0 0 auto;
334
- width: 33.33333%;
335
- }
336
- .col-sm-5 {
337
- flex: 0 0 auto;
338
- width: 41.66667%;
339
- }
340
- .col-sm-6 {
341
- flex: 0 0 auto;
342
- width: 50%;
343
- }
344
- .col-sm-7 {
345
- flex: 0 0 auto;
346
- width: 58.33333%;
347
- }
348
- .col-sm-8 {
349
- flex: 0 0 auto;
350
- width: 66.66667%;
351
- }
352
- .col-sm-9 {
353
- flex: 0 0 auto;
354
- width: 75%;
355
- }
356
- .col-sm-10 {
357
- flex: 0 0 auto;
358
- width: 83.33333%;
359
- }
360
- .col-sm-11 {
361
- flex: 0 0 auto;
362
- width: 91.66667%;
363
- }
364
- .col-sm-12 {
365
- flex: 0 0 auto;
366
- width: 100%;
367
- }
368
- .offset-sm-0 {
369
- margin-left: 0;
370
- }
371
- }
372
-
373
- @media (min-width: 768px) {
374
- .col-md {
375
- flex: 1 0 0%;
376
- }
377
- .col-md-1 {
378
- flex: 0 0 auto;
379
- width: 8.33333%;
380
- }
381
- .col-md-2 {
382
- flex: 0 0 auto;
383
- width: 16.66667%;
384
- }
385
- .col-md-3 {
386
- flex: 0 0 auto;
387
- width: 25%;
388
- }
389
- .col-md-4 {
390
- flex: 0 0 auto;
391
- width: 33.33333%;
392
- }
393
- .col-md-5 {
394
- flex: 0 0 auto;
395
- width: 41.66667%;
396
- }
397
- .col-md-6 {
398
- flex: 0 0 auto;
399
- width: 50%;
400
- }
401
- .col-md-7 {
402
- flex: 0 0 auto;
403
- width: 58.33333%;
404
- }
405
- .col-md-8 {
406
- flex: 0 0 auto;
407
- width: 66.66667%;
408
- }
409
- .col-md-9 {
410
- flex: 0 0 auto;
411
- width: 75%;
412
- }
413
- .col-md-10 {
414
- flex: 0 0 auto;
415
- width: 83.33333%;
416
- }
417
- .col-md-11 {
418
- flex: 0 0 auto;
419
- width: 91.66667%;
420
- }
421
- .col-md-12 {
422
- flex: 0 0 auto;
423
- width: 100%;
424
- }
425
- .offset-md-0 {
426
- margin-left: 0;
427
- }
428
- }
429
-
430
- @media (min-width: 992px) {
431
- .col-lg {
432
- flex: 1 0 0%;
433
- }
434
- .col-lg-1 {
435
- flex: 0 0 auto;
436
- width: 8.33333%;
437
- }
438
- .col-lg-2 {
439
- flex: 0 0 auto;
440
- width: 16.66667%;
441
- }
442
- .col-lg-3 {
443
- flex: 0 0 auto;
444
- width: 25%;
445
- }
446
- .col-lg-4 {
447
- flex: 0 0 auto;
448
- width: 33.33333%;
449
- }
450
- .col-lg-5 {
451
- flex: 0 0 auto;
452
- width: 41.66667%;
453
- }
454
- .col-lg-6 {
455
- flex: 0 0 auto;
456
- width: 50%;
457
- }
458
- .col-lg-7 {
459
- flex: 0 0 auto;
460
- width: 58.33333%;
461
- }
462
- .col-lg-8 {
463
- flex: 0 0 auto;
464
- width: 66.66667%;
465
- }
466
- .col-lg-9 {
467
- flex: 0 0 auto;
468
- width: 75%;
469
- }
470
- .col-lg-10 {
471
- flex: 0 0 auto;
472
- width: 83.33333%;
473
- }
474
- .col-lg-11 {
475
- flex: 0 0 auto;
476
- width: 91.66667%;
477
- }
478
- .col-lg-12 {
479
- flex: 0 0 auto;
480
- width: 100%;
481
- }
482
- .offset-lg-0 {
483
- margin-left: 0;
484
- }
485
- }
486
-
487
- @media (min-width: 1200px) {
488
- .col-xl {
489
- flex: 1 0 0%;
490
- }
491
- .col-xl-1 {
492
- flex: 0 0 auto;
493
- width: 8.33333%;
494
- }
495
- .col-xl-2 {
496
- flex: 0 0 auto;
497
- width: 16.66667%;
498
- }
499
- .col-xl-3 {
500
- flex: 0 0 auto;
501
- width: 25%;
502
- }
503
- .col-xl-4 {
504
- flex: 0 0 auto;
505
- width: 33.33333%;
506
- }
507
- .col-xl-5 {
508
- flex: 0 0 auto;
509
- width: 41.66667%;
510
- }
511
- .col-xl-6 {
512
- flex: 0 0 auto;
513
- width: 50%;
514
- }
515
- .col-xl-7 {
516
- flex: 0 0 auto;
517
- width: 58.33333%;
518
- }
519
- .col-xl-8 {
520
- flex: 0 0 auto;
521
- width: 66.66667%;
522
- }
523
- .col-xl-9 {
524
- flex: 0 0 auto;
525
- width: 75%;
526
- }
527
- .col-xl-10 {
528
- flex: 0 0 auto;
529
- width: 83.33333%;
530
- }
531
- .col-xl-11 {
532
- flex: 0 0 auto;
533
- width: 91.66667%;
534
- }
535
- .col-xl-12 {
536
- flex: 0 0 auto;
537
- width: 100%;
538
- }
539
- .offset-xl-0 {
540
- margin-left: 0;
541
- }
542
- }
543
-
544
- .justify-start {
545
- justify-content: flex-start;
546
- }
547
-
548
- .justify-center {
549
- justify-content: center;
550
- }
551
-
552
- .justify-end {
553
- justify-content: flex-end;
554
- }
555
-
556
- .justify-between {
557
- justify-content: space-between;
558
- }
559
-
560
- .justify-around {
561
- justify-content: space-around;
562
- }
563
-
564
- .align-start {
565
- align-items: flex-start;
566
- }
567
-
568
- .align-center {
569
- align-items: center;
570
- }
571
-
572
- .align-end {
573
- align-items: flex-end;
574
- }
575
-
576
- .btn {
577
- display: inline-block;
578
- font-weight: 400;
579
- line-height: 1.5;
580
- color: #212529;
581
- text-align: center;
582
- vertical-align: middle;
583
- cursor: pointer;
584
- user-select: none;
585
- background-color: transparent;
586
- border: 1px solid transparent;
587
- padding: 0.375rem 0.75rem;
588
- font-size: 1rem;
589
- border-radius: 0.25rem;
590
- transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
591
- text-decoration: none;
592
- }
593
-
594
- .btn:disabled, .btn.disabled {
595
- pointer-events: none;
596
- opacity: 0.65;
597
- }
598
-
599
- .btn-primary {
600
- color: #fff;
601
- background-color: #4a90d9;
602
- border-color: #4a90d9;
603
- }
604
-
605
- .btn-primary:hover {
606
- background-color: #2b7bcf;
607
- border-color: #2a76c6;
608
- }
609
-
610
- .btn-secondary {
611
- color: #fff;
612
- background-color: #6c757d;
613
- border-color: #6c757d;
614
- }
615
-
616
- .btn-secondary:hover {
617
- background-color: #596167;
618
- border-color: #545b62;
619
- }
620
-
621
- .btn-success {
622
- color: #fff;
623
- background-color: #28a745;
624
- border-color: #28a745;
625
- }
626
-
627
- .btn-success:hover {
628
- background-color: #208637;
629
- border-color: #1e7e34;
630
- }
631
-
632
- .btn-danger {
633
- color: #fff;
634
- background-color: #dc3545;
635
- border-color: #dc3545;
636
- }
637
-
638
- .btn-danger:hover {
639
- background-color: #c62232;
640
- border-color: #bd2130;
641
- }
642
-
643
- .btn-warning {
644
- color: #212529;
645
- background-color: #ffc107;
646
- border-color: #ffc107;
647
- }
648
-
649
- .btn-warning:hover {
650
- background-color: #dda600;
651
- border-color: #d39e00;
652
- }
653
-
654
- .btn-info {
655
- color: #fff;
656
- background-color: #17a2b8;
657
- border-color: #17a2b8;
658
- }
659
-
660
- .btn-info:hover {
661
- background-color: #128294;
662
- border-color: #117a8b;
663
- }
664
-
665
- .btn-light {
666
- color: #212529;
667
- background-color: #f8f9fa;
668
- border-color: #f8f9fa;
669
- }
670
-
671
- .btn-light:hover {
672
- background-color: #e0e5e9;
673
- border-color: #dae0e5;
674
- }
675
-
676
- .btn-dark {
677
- color: #fff;
678
- background-color: #212529;
679
- border-color: #212529;
680
- }
681
-
682
- .btn-dark:hover {
683
- background-color: #0f1112;
684
- border-color: #0a0c0d;
685
- }
686
-
687
- .btn-outline-primary {
688
- color: #4a90d9;
689
- border-color: #4a90d9;
690
- background-color: transparent;
691
- }
692
-
693
- .btn-outline-primary:hover {
694
- color: #fff;
695
- background-color: #4a90d9;
696
- }
697
-
698
- .btn-outline-secondary {
699
- color: #6c757d;
700
- border-color: #6c757d;
701
- background-color: transparent;
702
- }
703
-
704
- .btn-outline-secondary:hover {
705
- color: #fff;
706
- background-color: #6c757d;
707
- }
708
-
709
- .btn-outline-success {
710
- color: #28a745;
711
- border-color: #28a745;
712
- background-color: transparent;
713
- }
714
-
715
- .btn-outline-success:hover {
716
- color: #fff;
717
- background-color: #28a745;
718
- }
719
-
720
- .btn-outline-danger {
721
- color: #dc3545;
722
- border-color: #dc3545;
723
- background-color: transparent;
724
- }
725
-
726
- .btn-outline-danger:hover {
727
- color: #fff;
728
- background-color: #dc3545;
729
- }
730
-
731
- .btn-outline-warning {
732
- color: #ffc107;
733
- border-color: #ffc107;
734
- background-color: transparent;
735
- }
736
-
737
- .btn-outline-warning:hover {
738
- color: #212529;
739
- background-color: #ffc107;
740
- }
741
-
742
- .btn-outline-info {
743
- color: #17a2b8;
744
- border-color: #17a2b8;
745
- background-color: transparent;
746
- }
747
-
748
- .btn-outline-info:hover {
749
- color: #fff;
750
- background-color: #17a2b8;
751
- }
752
-
753
- .btn-outline-light {
754
- color: #f8f9fa;
755
- border-color: #f8f9fa;
756
- background-color: transparent;
757
- }
758
-
759
- .btn-outline-light:hover {
760
- color: #212529;
761
- background-color: #f8f9fa;
762
- }
763
-
764
- .btn-outline-dark {
765
- color: #212529;
766
- border-color: #212529;
767
- background-color: transparent;
768
- }
769
-
770
- .btn-outline-dark:hover {
771
- color: #fff;
772
- background-color: #212529;
773
- }
774
-
775
- .btn-sm {
776
- padding: 0.25rem 0.5rem;
777
- font-size: 0.875rem;
778
- border-radius: 0.25rem;
779
- }
780
-
781
- .btn-lg {
782
- padding: 0.5rem 1rem;
783
- font-size: 1.125rem;
784
- border-radius: 0.5rem;
785
- }
786
-
787
- .btn-block {
788
- display: block;
789
- width: 100%;
790
- }
791
-
792
- .form-group {
793
- margin-bottom: 1rem;
794
- }
795
-
796
- .form-label {
797
- display: inline-block;
798
- margin-bottom: 0.5rem;
799
- font-weight: 700;
800
- }
801
-
802
- .form-control {
803
- display: block;
804
- width: 100%;
805
- padding: 0.375rem 0.75rem;
806
- font-size: 1rem;
807
- font-weight: 400;
808
- line-height: 1.5;
809
- color: #212529;
810
- background-color: #fff;
811
- background-clip: padding-box;
812
- border: 1px solid #ced4da;
813
- border-radius: 0.25rem;
814
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
815
- appearance: none;
816
- }
817
-
818
- .form-control:focus {
819
- color: #212529;
820
- background-color: #fff;
821
- border-color: #b3d1ef;
822
- outline: 0;
823
- box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
824
- }
825
-
826
- .form-control::placeholder {
827
- color: #6c757d;
828
- opacity: 1;
829
- }
830
-
831
- .form-control:disabled {
832
- background-color: #f8f9fa;
833
- opacity: 1;
834
- }
835
-
836
- textarea.form-control {
837
- min-height: calc(1.5em + 0.75rem + 2px);
838
- }
839
-
840
- .form-select {
841
- display: block;
842
- width: 100%;
843
- padding: 0.375rem 2.25rem 0.375rem 0.75rem;
844
- font-size: 1rem;
845
- font-weight: 400;
846
- line-height: 1.5;
847
- color: #212529;
848
- background-color: #fff;
849
- border: 1px solid #ced4da;
850
- border-radius: 0.25rem;
851
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
852
- appearance: none;
853
- }
854
-
855
- .form-select:focus {
856
- border-color: #b3d1ef;
857
- outline: 0;
858
- box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
859
- }
860
-
861
- .form-check {
862
- display: block;
863
- min-height: 1.5rem;
864
- padding-left: 1.5em;
865
- margin-bottom: 0.125rem;
866
- }
867
-
868
- .form-check-input {
869
- float: left;
870
- width: 1em;
871
- height: 1em;
872
- margin-left: -1.5em;
873
- margin-top: 0.25em;
874
- appearance: none;
875
- background-color: #fff;
876
- border: 1px solid rgba(0, 0, 0, 0.25);
877
- }
878
-
879
- .form-check-input[type="checkbox"] {
880
- border-radius: 0.25em;
881
- }
882
-
883
- .form-check-input[type="radio"] {
884
- border-radius: 50%;
885
- }
886
-
887
- .form-check-input:checked {
888
- background-color: #4a90d9;
889
- border-color: #4a90d9;
890
- }
891
-
892
- .form-check-input:focus {
893
- border-color: #b3d1ef;
894
- outline: 0;
895
- box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
896
- }
897
-
898
- .form-check-label {
899
- cursor: pointer;
900
- }
901
-
902
- .is-valid {
903
- border-color: #28a745 !important;
904
- }
905
-
906
- .is-valid:focus {
907
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25) !important;
908
- }
909
-
910
- .is-invalid {
911
- border-color: #dc3545 !important;
912
- }
913
-
914
- .is-invalid:focus {
915
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
916
- }
917
-
918
- .valid-feedback,
919
- .invalid-feedback {
920
- display: none;
921
- width: 100%;
922
- margin-top: 0.25rem;
923
- font-size: 0.875em;
924
- }
925
-
926
- .valid-feedback {
927
- color: #28a745;
928
- }
929
-
930
- .invalid-feedback {
931
- color: #dc3545;
932
- }
933
-
934
- .is-valid ~ .valid-feedback,
935
- .is-invalid ~ .invalid-feedback {
936
- display: block;
937
- }
938
-
939
- .input-group {
940
- position: relative;
941
- display: flex;
942
- flex-wrap: wrap;
943
- align-items: stretch;
944
- width: 100%;
945
- }
946
-
947
- .input-group > .form-control,
948
- .input-group > .form-select {
949
- position: relative;
950
- flex: 1 1 auto;
951
- width: 1%;
952
- min-width: 0;
953
- }
954
-
955
- .input-group-text {
956
- display: flex;
957
- align-items: center;
958
- padding: 0.375rem 0.75rem;
959
- font-size: 1rem;
960
- line-height: 1.5;
961
- color: #212529;
962
- text-align: center;
963
- white-space: nowrap;
964
- background-color: #f8f9fa;
965
- border: 1px solid #ced4da;
966
- border-radius: 0.25rem;
967
- }
968
-
969
- .card {
970
- position: relative;
971
- display: flex;
972
- flex-direction: column;
973
- min-width: 0;
974
- word-wrap: break-word;
975
- background-color: #fff;
976
- background-clip: border-box;
977
- border: 1px solid rgba(0, 0, 0, 0.125);
978
- border-radius: 0.5rem;
979
- }
980
-
981
- .card-header {
982
- padding: 0.75rem 1rem;
983
- margin-bottom: 0;
984
- background-color: rgba(0, 0, 0, 0.03);
985
- border-bottom: 1px solid rgba(0, 0, 0, 0.125);
986
- }
987
-
988
- .card-header:first-child {
989
- border-radius: calc($border-radius-lg - 1px) calc($border-radius-lg - 1px) 0 0;
990
- }
991
-
992
- .card-body {
993
- flex: 1 1 auto;
994
- padding: 1rem;
995
- }
996
-
997
- .card-footer {
998
- padding: 0.75rem 1rem;
999
- background-color: rgba(0, 0, 0, 0.03);
1000
- border-top: 1px solid rgba(0, 0, 0, 0.125);
1001
- }
1002
-
1003
- .card-footer:last-child {
1004
- border-radius: 0 0 calc($border-radius-lg - 1px) calc($border-radius-lg - 1px);
1005
- }
1006
-
1007
- .card-title {
1008
- margin-bottom: 0.5rem;
1009
- font-weight: 700;
1010
- }
1011
-
1012
- .card-text:last-child {
1013
- margin-bottom: 0;
1014
- }
1015
-
1016
- .card-img-top {
1017
- width: 100%;
1018
- border-top-left-radius: calc($border-radius-lg - 1px);
1019
- border-top-right-radius: calc($border-radius-lg - 1px);
1020
- }
1021
-
1022
- .nav {
1023
- display: flex;
1024
- flex-wrap: wrap;
1025
- padding-left: 0;
1026
- margin-bottom: 0;
1027
- list-style: none;
1028
- }
1029
-
1030
- .nav-link {
1031
- display: block;
1032
- padding: 0.5rem 1rem;
1033
- color: #4a90d9;
1034
- text-decoration: none;
1035
- transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
1036
- }
1037
-
1038
- .nav-link:hover, .nav-link:focus {
1039
- color: #256ab1;
1040
- }
1041
-
1042
- .nav-link.disabled {
1043
- color: #6c757d;
1044
- pointer-events: none;
1045
- cursor: default;
1046
- }
1047
-
1048
- .nav-link.active {
1049
- color: #4a90d9;
1050
- font-weight: 700;
1051
- }
1052
-
1053
- .navbar {
1054
- position: relative;
1055
- display: flex;
1056
- flex-wrap: wrap;
1057
- align-items: center;
1058
- justify-content: space-between;
1059
- padding: 0.5rem 1rem;
1060
- }
1061
-
1062
- .navbar-brand {
1063
- padding-top: 0.3125rem;
1064
- padding-bottom: 0.3125rem;
1065
- margin-right: 1rem;
1066
- font-size: 1.25rem;
1067
- font-weight: 700;
1068
- color: inherit;
1069
- text-decoration: none;
1070
- white-space: nowrap;
1071
- }
1072
-
1073
- .navbar-brand:hover {
1074
- color: inherit;
1075
- opacity: 0.8;
1076
- }
1077
-
1078
- .navbar-nav {
1079
- display: flex;
1080
- flex-direction: column;
1081
- padding-left: 0;
1082
- margin-bottom: 0;
1083
- list-style: none;
1084
- }
1085
-
1086
- .navbar-nav .nav-link {
1087
- padding-right: 0.5rem;
1088
- padding-left: 0.5rem;
1089
- }
1090
-
1091
- .navbar-toggler {
1092
- padding: 0.25rem 0.75rem;
1093
- font-size: 1.125rem;
1094
- line-height: 1;
1095
- background-color: transparent;
1096
- border: 1px solid rgba(0, 0, 0, 0.1);
1097
- border-radius: 0.25rem;
1098
- cursor: pointer;
1099
- }
1100
-
1101
- .navbar-toggler:focus {
1102
- outline: 0;
1103
- box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
1104
- }
1105
-
1106
- .navbar-collapse {
1107
- flex-basis: 100%;
1108
- flex-grow: 1;
1109
- align-items: center;
1110
- display: none;
1111
- }
1112
-
1113
- .navbar-collapse.show {
1114
- display: flex;
1115
- }
1116
-
1117
- @media (min-width: 576px) {
1118
- .navbar-expand-sm .navbar-nav {
1119
- flex-direction: row;
1120
- }
1121
- .navbar-expand-sm .navbar-collapse {
1122
- display: flex;
1123
- flex-basis: auto;
1124
- }
1125
- .navbar-expand-sm .navbar-toggler {
1126
- display: none;
1127
- }
1128
- }
1129
-
1130
- @media (min-width: 768px) {
1131
- .navbar-expand-md .navbar-nav {
1132
- flex-direction: row;
1133
- }
1134
- .navbar-expand-md .navbar-collapse {
1135
- display: flex;
1136
- flex-basis: auto;
1137
- }
1138
- .navbar-expand-md .navbar-toggler {
1139
- display: none;
1140
- }
1141
- }
1142
-
1143
- @media (min-width: 992px) {
1144
- .navbar-expand-lg .navbar-nav {
1145
- flex-direction: row;
1146
- }
1147
- .navbar-expand-lg .navbar-collapse {
1148
- display: flex;
1149
- flex-basis: auto;
1150
- }
1151
- .navbar-expand-lg .navbar-toggler {
1152
- display: none;
1153
- }
1154
- }
1155
-
1156
- @media (min-width: 1200px) {
1157
- .navbar-expand-xl .navbar-nav {
1158
- flex-direction: row;
1159
- }
1160
- .navbar-expand-xl .navbar-collapse {
1161
- display: flex;
1162
- flex-basis: auto;
1163
- }
1164
- .navbar-expand-xl .navbar-toggler {
1165
- display: none;
1166
- }
1167
- }
1168
-
1169
- @media (min-width: 1400px) {
1170
- .navbar-expand-xxl .navbar-nav {
1171
- flex-direction: row;
1172
- }
1173
- .navbar-expand-xxl .navbar-collapse {
1174
- display: flex;
1175
- flex-basis: auto;
1176
- }
1177
- .navbar-expand-xxl .navbar-toggler {
1178
- display: none;
1179
- }
1180
- }
1181
-
1182
- @media (min-width: 992px) {
1183
- .navbar-nav {
1184
- flex-direction: row;
1185
- }
1186
- .navbar-collapse {
1187
- display: flex;
1188
- flex-basis: auto;
1189
- }
1190
- .navbar-toggler {
1191
- display: none;
1192
- }
1193
- }
1194
-
1195
- .navbar-dark {
1196
- color: #fff;
1197
- background-color: #212529;
1198
- }
1199
-
1200
- .navbar-dark .navbar-brand {
1201
- color: #fff;
1202
- }
1203
-
1204
- .navbar-dark .nav-link {
1205
- color: rgba(255, 255, 255, 0.75);
1206
- }
1207
-
1208
- .navbar-dark .nav-link:hover, .navbar-dark .nav-link.active {
1209
- color: #fff;
1210
- }
1211
-
1212
- .navbar-light {
1213
- background-color: #f8f9fa;
1214
- }
1215
-
1216
- .navbar-light .nav-link {
1217
- color: rgba(0, 0, 0, 0.55);
1218
- }
1219
-
1220
- .navbar-light .nav-link:hover, .navbar-light .nav-link.active {
1221
- color: rgba(0, 0, 0, 0.9);
1222
- }
1223
-
1224
- .breadcrumb {
1225
- display: flex;
1226
- flex-wrap: wrap;
1227
- padding: 0.5rem 1rem;
1228
- margin-bottom: 1rem;
1229
- list-style: none;
1230
- background-color: #f8f9fa;
1231
- border-radius: 0.25rem;
1232
- }
1233
-
1234
- .breadcrumb-item + .breadcrumb-item::before {
1235
- display: inline-block;
1236
- padding-right: 0.5rem;
1237
- padding-left: 0.5rem;
1238
- color: #6c757d;
1239
- content: "/";
1240
- }
1241
-
1242
- .breadcrumb-item.active {
1243
- color: #6c757d;
1244
- }
1245
-
1246
- .modal {
1247
- position: fixed;
1248
- top: 0;
1249
- left: 0;
1250
- z-index: 1050;
1251
- display: none;
1252
- width: 100%;
1253
- height: 100%;
1254
- overflow-x: hidden;
1255
- overflow-y: auto;
1256
- outline: 0;
1257
- }
1258
-
1259
- .modal.show {
1260
- display: block;
1261
- }
1262
-
1263
- .modal-dialog {
1264
- position: relative;
1265
- width: auto;
1266
- margin: 1.75rem auto;
1267
- max-width: 500px;
1268
- }
1269
-
1270
- .modal-sm {
1271
- max-width: 300px;
1272
- }
1273
-
1274
- .modal-lg {
1275
- max-width: 800px;
1276
- }
1277
-
1278
- .modal-content {
1279
- position: relative;
1280
- display: flex;
1281
- flex-direction: column;
1282
- width: 100%;
1283
- pointer-events: auto;
1284
- background-color: #fff;
1285
- background-clip: padding-box;
1286
- border: 1px solid rgba(0, 0, 0, 0.2);
1287
- border-radius: 0.5rem;
1288
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
1289
- outline: 0;
1290
- }
1291
-
1292
- .modal-header {
1293
- display: flex;
1294
- flex-shrink: 0;
1295
- align-items: center;
1296
- justify-content: space-between;
1297
- padding: 1rem;
1298
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1299
- }
1300
-
1301
- .modal-title {
1302
- margin-bottom: 0;
1303
- font-weight: 700;
1304
- }
1305
-
1306
- .modal-body {
1307
- position: relative;
1308
- flex: 1 1 auto;
1309
- padding: 1rem;
1310
- }
1311
-
1312
- .modal-footer {
1313
- display: flex;
1314
- flex-shrink: 0;
1315
- flex-wrap: wrap;
1316
- align-items: center;
1317
- justify-content: flex-end;
1318
- padding: 0.75rem;
1319
- border-top: 1px solid rgba(0, 0, 0, 0.1);
1320
- gap: 0.5rem;
1321
- }
1322
-
1323
- .modal-backdrop {
1324
- position: fixed;
1325
- top: 0;
1326
- left: 0;
1327
- z-index: 1040;
1328
- width: 100vw;
1329
- height: 100vh;
1330
- background-color: rgba(0, 0, 0, 0.5);
1331
- display: none;
1332
- }
1333
-
1334
- .modal-backdrop.show {
1335
- display: block;
1336
- }
1337
-
1338
- .alert {
1339
- position: relative;
1340
- padding: 0.75rem 1rem;
1341
- margin-bottom: 1rem;
1342
- border: 1px solid transparent;
1343
- border-radius: 0.25rem;
1344
- }
1345
-
1346
- .alert-primary {
1347
- color: #1c5187;
1348
- background-color: #deeaf8;
1349
- border-color: #b3d1ef;
1350
- }
1351
-
1352
- .alert-secondary {
1353
- color: #313539;
1354
- background-color: #caced1;
1355
- border-color: #afb5ba;
1356
- }
1357
-
1358
- .alert-success {
1359
- color: #0f401b;
1360
- background-color: #9be7ac;
1361
- border-color: #71dd8a;
1362
- }
1363
-
1364
- .alert-danger {
1365
- color: #7c151f;
1366
- background-color: #f6cdd1;
1367
- border-color: #efa2a9;
1368
- }
1369
-
1370
- .alert-warning {
1371
- color: #876500;
1372
- background-color: #ffeeba;
1373
- border-color: #ffe187;
1374
- }
1375
-
1376
- .alert-info {
1377
- color: #093e47;
1378
- background-color: #90e4f1;
1379
- border-color: #63d9ec;
1380
- }
1381
-
1382
- .alert-light {
1383
- color: #aeb9c5;
1384
- background-color: white;
1385
- border-color: white;
1386
- }
1387
-
1388
- .alert-dark {
1389
- color: black;
1390
- background-color: #717e8c;
1391
- border-color: #5a6570;
1392
- }
1393
-
1394
- .alert-dismissible {
1395
- padding-right: 3rem;
1396
- }
1397
-
1398
- .alert-dismissible .btn-close {
1399
- position: absolute;
1400
- top: 0;
1401
- right: 0;
1402
- padding: 0.9375rem 1rem;
1403
- background: transparent;
1404
- border: 0;
1405
- cursor: pointer;
1406
- color: inherit;
1407
- opacity: 0.5;
1408
- }
1409
-
1410
- .alert-dismissible .btn-close:hover {
1411
- opacity: 0.75;
1412
- }
1413
-
1414
- .table {
1415
- width: 100%;
1416
- margin-bottom: 1rem;
1417
- vertical-align: top;
1418
- border-color: rgba(0, 0, 0, 0.1);
1419
- }
1420
-
1421
- .table > :not(caption) > * > * {
1422
- padding: 0.5rem;
1423
- border-bottom-width: 1px;
1424
- border-bottom-style: solid;
1425
- border-bottom-color: inherit;
1426
- }
1427
-
1428
- .table > thead {
1429
- vertical-align: bottom;
1430
- border-bottom: 2px solid currentColor;
1431
- }
1432
-
1433
- .table > tbody > tr:last-child > * {
1434
- border-bottom-color: transparent;
1435
- }
1436
-
1437
- .table-sm > :not(caption) > * > * {
1438
- padding: 0.25rem;
1439
- }
1440
-
1441
- .table-bordered {
1442
- border: 1px solid rgba(0, 0, 0, 0.1);
1443
- }
1444
-
1445
- .table-bordered > :not(caption) > * > * {
1446
- border-width: 1px;
1447
- border-style: solid;
1448
- border-color: inherit;
1449
- }
1450
-
1451
- .table-striped > tbody > tr:nth-of-type(odd) > * {
1452
- background-color: rgba(0, 0, 0, 0.02);
1453
- }
1454
-
1455
- .table-hover > tbody > tr:hover > * {
1456
- background-color: rgba(0, 0, 0, 0.04);
1457
- }
1458
-
1459
- .table-responsive {
1460
- overflow-x: auto;
1461
- -webkit-overflow-scrolling: touch;
1462
- }
1463
-
1464
- .badge {
1465
- display: inline-block;
1466
- padding: 0.25em 0.65em;
1467
- font-size: 0.75em;
1468
- font-weight: 700;
1469
- line-height: 1;
1470
- color: #fff;
1471
- text-align: center;
1472
- white-space: nowrap;
1473
- vertical-align: baseline;
1474
- border-radius: 50rem;
1475
- }
1476
-
1477
- .badge-primary {
1478
- color: #fff;
1479
- background-color: #4a90d9;
1480
- }
1481
-
1482
- .badge-secondary {
1483
- color: #fff;
1484
- background-color: #6c757d;
1485
- }
1486
-
1487
- .badge-success {
1488
- color: #fff;
1489
- background-color: #28a745;
1490
- }
1491
-
1492
- .badge-danger {
1493
- color: #fff;
1494
- background-color: #dc3545;
1495
- }
1496
-
1497
- .badge-warning {
1498
- color: #212529;
1499
- background-color: #ffc107;
1500
- }
1501
-
1502
- .badge-info {
1503
- color: #fff;
1504
- background-color: #17a2b8;
1505
- }
1506
-
1507
- .badge-light {
1508
- color: #212529;
1509
- background-color: #f8f9fa;
1510
- }
1511
-
1512
- .badge-dark {
1513
- color: #fff;
1514
- background-color: #212529;
1515
- }
1516
-
1517
- .pagination {
1518
- display: flex;
1519
- flex-wrap: wrap;
1520
- padding-left: 0;
1521
- list-style: none;
1522
- gap: 0.25rem;
1523
- }
1524
-
1525
- .page-item.disabled .page-link {
1526
- color: #6c757d;
1527
- pointer-events: none;
1528
- background-color: #fff;
1529
- border-color: rgba(0, 0, 0, 0.1);
1530
- }
1531
-
1532
- .page-item.active .page-link {
1533
- color: #fff;
1534
- background-color: #4a90d9;
1535
- border-color: #4a90d9;
1536
- }
1537
-
1538
- .page-link {
1539
- display: block;
1540
- padding: 0.375rem 0.75rem;
1541
- color: #4a90d9;
1542
- background-color: #fff;
1543
- border: 1px solid rgba(0, 0, 0, 0.15);
1544
- border-radius: 0.25rem;
1545
- text-decoration: none;
1546
- line-height: 1.25;
1547
- transition: color 0.15s, background-color 0.15s, border-color 0.15s;
1548
- }
1549
-
1550
- .page-link:hover {
1551
- color: #2a76c6;
1552
- background-color: rgba(74, 144, 217, 0.08);
1553
- border-color: rgba(0, 0, 0, 0.2);
1554
- }
1555
-
1556
- .page-link:focus {
1557
- outline: 0;
1558
- box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
1559
- }
1560
-
1561
- .crud-img-preview {
1562
- max-height: 200px;
1563
- max-width: 100%;
1564
- border-radius: 0.25rem;
1565
- object-fit: cover;
1566
- }
1567
-
1568
- .crud-img-preview-sm {
1569
- max-height: 180px;
1570
- max-width: 100%;
1571
- border-radius: 0.25rem;
1572
- object-fit: cover;
1573
- }
1574
-
1575
- .d-none {
1576
- display: none !important;
1577
- }
1578
-
1579
- .d-block {
1580
- display: block !important;
1581
- }
1582
-
1583
- .d-flex {
1584
- display: flex !important;
1585
- }
1586
-
1587
- .d-inline {
1588
- display: inline !important;
1589
- }
1590
-
1591
- .d-inline-block {
1592
- display: inline-block !important;
1593
- }
1594
-
1595
- .d-grid {
1596
- display: grid !important;
1597
- }
1598
-
1599
- @media (min-width: 576px) {
1600
- .d-sm-none {
1601
- display: none !important;
1602
- }
1603
- .d-sm-block {
1604
- display: block !important;
1605
- }
1606
- .d-sm-flex {
1607
- display: flex !important;
1608
- }
1609
- .d-sm-inline {
1610
- display: inline !important;
1611
- }
1612
- .d-sm-inline-block {
1613
- display: inline-block !important;
1614
- }
1615
- }
1616
-
1617
- @media (min-width: 768px) {
1618
- .d-md-none {
1619
- display: none !important;
1620
- }
1621
- .d-md-block {
1622
- display: block !important;
1623
- }
1624
- .d-md-flex {
1625
- display: flex !important;
1626
- }
1627
- .d-md-inline {
1628
- display: inline !important;
1629
- }
1630
- .d-md-inline-block {
1631
- display: inline-block !important;
1632
- }
1633
- }
1634
-
1635
- @media (min-width: 992px) {
1636
- .d-lg-none {
1637
- display: none !important;
1638
- }
1639
- .d-lg-block {
1640
- display: block !important;
1641
- }
1642
- .d-lg-flex {
1643
- display: flex !important;
1644
- }
1645
- .d-lg-inline {
1646
- display: inline !important;
1647
- }
1648
- .d-lg-inline-block {
1649
- display: inline-block !important;
1650
- }
1651
- }
1652
-
1653
- .flex-row {
1654
- flex-direction: row !important;
1655
- }
1656
-
1657
- .flex-column {
1658
- flex-direction: column !important;
1659
- }
1660
-
1661
- .flex-wrap {
1662
- flex-wrap: wrap !important;
1663
- }
1664
-
1665
- .flex-nowrap {
1666
- flex-wrap: nowrap !important;
1667
- }
1668
-
1669
- .flex-grow-0 {
1670
- flex-grow: 0 !important;
1671
- }
1672
-
1673
- .flex-grow-1 {
1674
- flex-grow: 1 !important;
1675
- }
1676
-
1677
- .justify-content-start {
1678
- justify-content: flex-start !important;
1679
- }
1680
-
1681
- .justify-content-end {
1682
- justify-content: flex-end !important;
1683
- }
1684
-
1685
- .justify-content-center {
1686
- justify-content: center !important;
1687
- }
1688
-
1689
- .justify-content-between {
1690
- justify-content: space-between !important;
1691
- }
1692
-
1693
- .justify-content-around {
1694
- justify-content: space-around !important;
1695
- }
1696
-
1697
- .align-items-start {
1698
- align-items: flex-start !important;
1699
- }
1700
-
1701
- .align-items-end {
1702
- align-items: flex-end !important;
1703
- }
1704
-
1705
- .align-items-center {
1706
- align-items: center !important;
1707
- }
1708
-
1709
- .gap-0 {
1710
- gap: 0 !important;
1711
- }
1712
-
1713
- .gap-1 {
1714
- gap: 0.25rem !important;
1715
- }
1716
-
1717
- .gap-2 {
1718
- gap: 0.5rem !important;
1719
- }
1720
-
1721
- .gap-3 {
1722
- gap: 1rem !important;
1723
- }
1724
-
1725
- .gap-4 {
1726
- gap: 1.5rem !important;
1727
- }
1728
-
1729
- .gap-5 {
1730
- gap: 3rem !important;
1731
- }
1732
-
1733
- .m-0 {
1734
- margin: 0 !important;
1735
- }
1736
-
1737
- .m-1 {
1738
- margin: 0.25rem !important;
1739
- }
1740
-
1741
- .m-2 {
1742
- margin: 0.5rem !important;
1743
- }
1744
-
1745
- .m-3 {
1746
- margin: 1rem !important;
1747
- }
1748
-
1749
- .m-4 {
1750
- margin: 1.5rem !important;
1751
- }
1752
-
1753
- .m-5 {
1754
- margin: 3rem !important;
1755
- }
1756
-
1757
- .mt-0 {
1758
- margin-top: 0 !important;
1759
- }
1760
-
1761
- .mt-1 {
1762
- margin-top: 0.25rem !important;
1763
- }
1764
-
1765
- .mt-2 {
1766
- margin-top: 0.5rem !important;
1767
- }
1768
-
1769
- .mt-3 {
1770
- margin-top: 1rem !important;
1771
- }
1772
-
1773
- .mt-4 {
1774
- margin-top: 1.5rem !important;
1775
- }
1776
-
1777
- .mt-5 {
1778
- margin-top: 3rem !important;
1779
- }
1780
-
1781
- .mb-0 {
1782
- margin-bottom: 0 !important;
1783
- }
1784
-
1785
- .mb-1 {
1786
- margin-bottom: 0.25rem !important;
1787
- }
1788
-
1789
- .mb-2 {
1790
- margin-bottom: 0.5rem !important;
1791
- }
1792
-
1793
- .mb-3 {
1794
- margin-bottom: 1rem !important;
1795
- }
1796
-
1797
- .mb-4 {
1798
- margin-bottom: 1.5rem !important;
1799
- }
1800
-
1801
- .mb-5 {
1802
- margin-bottom: 3rem !important;
1803
- }
1804
-
1805
- .ms-0 {
1806
- margin-left: 0 !important;
1807
- }
1808
-
1809
- .ms-1 {
1810
- margin-left: 0.25rem !important;
1811
- }
1812
-
1813
- .ms-2 {
1814
- margin-left: 0.5rem !important;
1815
- }
1816
-
1817
- .ms-3 {
1818
- margin-left: 1rem !important;
1819
- }
1820
-
1821
- .ms-4 {
1822
- margin-left: 1.5rem !important;
1823
- }
1824
-
1825
- .ms-5 {
1826
- margin-left: 3rem !important;
1827
- }
1828
-
1829
- .me-0 {
1830
- margin-right: 0 !important;
1831
- }
1832
-
1833
- .me-1 {
1834
- margin-right: 0.25rem !important;
1835
- }
1836
-
1837
- .me-2 {
1838
- margin-right: 0.5rem !important;
1839
- }
1840
-
1841
- .me-3 {
1842
- margin-right: 1rem !important;
1843
- }
1844
-
1845
- .me-4 {
1846
- margin-right: 1.5rem !important;
1847
- }
1848
-
1849
- .me-5 {
1850
- margin-right: 3rem !important;
1851
- }
1852
-
1853
- .my-0 {
1854
- margin-top: 0 !important;
1855
- margin-bottom: 0 !important;
1856
- }
1857
-
1858
- .mx-0 {
1859
- margin-left: 0 !important;
1860
- margin-right: 0 !important;
1861
- }
1862
-
1863
- .my-1 {
1864
- margin-top: 0.25rem !important;
1865
- margin-bottom: 0.25rem !important;
1866
- }
1867
-
1868
- .mx-1 {
1869
- margin-left: 0.25rem !important;
1870
- margin-right: 0.25rem !important;
1871
- }
1872
-
1873
- .my-2 {
1874
- margin-top: 0.5rem !important;
1875
- margin-bottom: 0.5rem !important;
1876
- }
1877
-
1878
- .mx-2 {
1879
- margin-left: 0.5rem !important;
1880
- margin-right: 0.5rem !important;
1881
- }
1882
-
1883
- .my-3 {
1884
- margin-top: 1rem !important;
1885
- margin-bottom: 1rem !important;
1886
- }
1887
-
1888
- .mx-3 {
1889
- margin-left: 1rem !important;
1890
- margin-right: 1rem !important;
1891
- }
1892
-
1893
- .my-4 {
1894
- margin-top: 1.5rem !important;
1895
- margin-bottom: 1.5rem !important;
1896
- }
1897
-
1898
- .mx-4 {
1899
- margin-left: 1.5rem !important;
1900
- margin-right: 1.5rem !important;
1901
- }
1902
-
1903
- .my-5 {
1904
- margin-top: 3rem !important;
1905
- margin-bottom: 3rem !important;
1906
- }
1907
-
1908
- .mx-5 {
1909
- margin-left: 3rem !important;
1910
- margin-right: 3rem !important;
1911
- }
1912
-
1913
- .p-0 {
1914
- padding: 0 !important;
1915
- }
1916
-
1917
- .p-1 {
1918
- padding: 0.25rem !important;
1919
- }
1920
-
1921
- .p-2 {
1922
- padding: 0.5rem !important;
1923
- }
1924
-
1925
- .p-3 {
1926
- padding: 1rem !important;
1927
- }
1928
-
1929
- .p-4 {
1930
- padding: 1.5rem !important;
1931
- }
1932
-
1933
- .p-5 {
1934
- padding: 3rem !important;
1935
- }
1936
-
1937
- .pt-0 {
1938
- padding-top: 0 !important;
1939
- }
1940
-
1941
- .pt-1 {
1942
- padding-top: 0.25rem !important;
1943
- }
1944
-
1945
- .pt-2 {
1946
- padding-top: 0.5rem !important;
1947
- }
1948
-
1949
- .pt-3 {
1950
- padding-top: 1rem !important;
1951
- }
1952
-
1953
- .pt-4 {
1954
- padding-top: 1.5rem !important;
1955
- }
1956
-
1957
- .pt-5 {
1958
- padding-top: 3rem !important;
1959
- }
1960
-
1961
- .pb-0 {
1962
- padding-bottom: 0 !important;
1963
- }
1964
-
1965
- .pb-1 {
1966
- padding-bottom: 0.25rem !important;
1967
- }
1968
-
1969
- .pb-2 {
1970
- padding-bottom: 0.5rem !important;
1971
- }
1972
-
1973
- .pb-3 {
1974
- padding-bottom: 1rem !important;
1975
- }
1976
-
1977
- .pb-4 {
1978
- padding-bottom: 1.5rem !important;
1979
- }
1980
-
1981
- .pb-5 {
1982
- padding-bottom: 3rem !important;
1983
- }
1984
-
1985
- .ps-0 {
1986
- padding-left: 0 !important;
1987
- }
1988
-
1989
- .ps-1 {
1990
- padding-left: 0.25rem !important;
1991
- }
1992
-
1993
- .ps-2 {
1994
- padding-left: 0.5rem !important;
1995
- }
1996
-
1997
- .ps-3 {
1998
- padding-left: 1rem !important;
1999
- }
2000
-
2001
- .ps-4 {
2002
- padding-left: 1.5rem !important;
2003
- }
2004
-
2005
- .ps-5 {
2006
- padding-left: 3rem !important;
2007
- }
2008
-
2009
- .pe-0 {
2010
- padding-right: 0 !important;
2011
- }
2012
-
2013
- .pe-1 {
2014
- padding-right: 0.25rem !important;
2015
- }
2016
-
2017
- .pe-2 {
2018
- padding-right: 0.5rem !important;
2019
- }
2020
-
2021
- .pe-3 {
2022
- padding-right: 1rem !important;
2023
- }
2024
-
2025
- .pe-4 {
2026
- padding-right: 1.5rem !important;
2027
- }
2028
-
2029
- .pe-5 {
2030
- padding-right: 3rem !important;
2031
- }
2032
-
2033
- .py-0 {
2034
- padding-top: 0 !important;
2035
- padding-bottom: 0 !important;
2036
- }
2037
-
2038
- .px-0 {
2039
- padding-left: 0 !important;
2040
- padding-right: 0 !important;
2041
- }
2042
-
2043
- .py-1 {
2044
- padding-top: 0.25rem !important;
2045
- padding-bottom: 0.25rem !important;
2046
- }
2047
-
2048
- .px-1 {
2049
- padding-left: 0.25rem !important;
2050
- padding-right: 0.25rem !important;
2051
- }
2052
-
2053
- .py-2 {
2054
- padding-top: 0.5rem !important;
2055
- padding-bottom: 0.5rem !important;
2056
- }
2057
-
2058
- .px-2 {
2059
- padding-left: 0.5rem !important;
2060
- padding-right: 0.5rem !important;
2061
- }
2062
-
2063
- .py-3 {
2064
- padding-top: 1rem !important;
2065
- padding-bottom: 1rem !important;
2066
- }
2067
-
2068
- .px-3 {
2069
- padding-left: 1rem !important;
2070
- padding-right: 1rem !important;
2071
- }
2072
-
2073
- .py-4 {
2074
- padding-top: 1.5rem !important;
2075
- padding-bottom: 1.5rem !important;
2076
- }
2077
-
2078
- .px-4 {
2079
- padding-left: 1.5rem !important;
2080
- padding-right: 1.5rem !important;
2081
- }
2082
-
2083
- .py-5 {
2084
- padding-top: 3rem !important;
2085
- padding-bottom: 3rem !important;
2086
- }
2087
-
2088
- .px-5 {
2089
- padding-left: 3rem !important;
2090
- padding-right: 3rem !important;
2091
- }
2092
-
2093
- .mx-auto {
2094
- margin-left: auto !important;
2095
- margin-right: auto !important;
2096
- }
2097
-
2098
- .text-start {
2099
- text-align: left !important;
2100
- }
2101
-
2102
- .text-center {
2103
- text-align: center !important;
2104
- }
2105
-
2106
- .text-end {
2107
- text-align: right !important;
2108
- }
2109
-
2110
- .text-uppercase {
2111
- text-transform: uppercase !important;
2112
- }
2113
-
2114
- .text-capitalize {
2115
- text-transform: capitalize !important;
2116
- }
2117
-
2118
- .text-nowrap {
2119
- white-space: nowrap !important;
2120
- }
2121
-
2122
- .text-truncate {
2123
- overflow: hidden;
2124
- text-overflow: ellipsis;
2125
- white-space: nowrap;
2126
- }
2127
-
2128
- .fw-bold {
2129
- font-weight: 700 !important;
2130
- }
2131
-
2132
- .fw-normal {
2133
- font-weight: 400 !important;
2134
- }
2135
-
2136
- .fw-light {
2137
- font-weight: 300 !important;
2138
- }
2139
-
2140
- .fs-1 {
2141
- font-size: 2.25rem !important;
2142
- }
2143
-
2144
- .fs-2 {
2145
- font-size: 1.875rem !important;
2146
- }
2147
-
2148
- .fs-3 {
2149
- font-size: 1.5rem !important;
2150
- }
2151
-
2152
- .fs-4 {
2153
- font-size: 1.25rem !important;
2154
- }
2155
-
2156
- .fs-5 {
2157
- font-size: 1rem !important;
2158
- }
2159
-
2160
- .fs-6 {
2161
- font-size: 0.875rem !important;
2162
- }
2163
-
2164
- .text-primary {
2165
- color: #4a90d9 !important;
2166
- }
2167
-
2168
- .text-secondary {
2169
- color: #6c757d !important;
2170
- }
2171
-
2172
- .text-success {
2173
- color: #28a745 !important;
2174
- }
2175
-
2176
- .text-danger {
2177
- color: #dc3545 !important;
2178
- }
2179
-
2180
- .text-warning {
2181
- color: #ffc107 !important;
2182
- }
2183
-
2184
- .text-info {
2185
- color: #17a2b8 !important;
2186
- }
2187
-
2188
- .text-light {
2189
- color: #f8f9fa !important;
2190
- }
2191
-
2192
- .text-dark {
2193
- color: #212529 !important;
2194
- }
2195
-
2196
- .text-muted {
2197
- color: #6c757d !important;
2198
- }
2199
-
2200
- .text-white {
2201
- color: #fff !important;
2202
- }
2203
-
2204
- .bg-primary {
2205
- background-color: #4a90d9 !important;
2206
- }
2207
-
2208
- .bg-secondary {
2209
- background-color: #6c757d !important;
2210
- }
2211
-
2212
- .bg-success {
2213
- background-color: #28a745 !important;
2214
- }
2215
-
2216
- .bg-danger {
2217
- background-color: #dc3545 !important;
2218
- }
2219
-
2220
- .bg-warning {
2221
- background-color: #ffc107 !important;
2222
- }
2223
-
2224
- .bg-info {
2225
- background-color: #17a2b8 !important;
2226
- }
2227
-
2228
- .bg-light {
2229
- background-color: #f8f9fa !important;
2230
- }
2231
-
2232
- .bg-dark {
2233
- background-color: #212529 !important;
2234
- }
2235
-
2236
- .bg-white {
2237
- background-color: #fff !important;
2238
- }
2239
-
2240
- .border {
2241
- border: 1px solid rgba(0, 0, 0, 0.1) !important;
2242
- }
2243
-
2244
- .border-0 {
2245
- border: 0 !important;
2246
- }
2247
-
2248
- .rounded {
2249
- border-radius: 0.25rem !important;
2250
- }
2251
-
2252
- .rounded-0 {
2253
- border-radius: 0 !important;
2254
- }
2255
-
2256
- .rounded-circle {
2257
- border-radius: 50% !important;
2258
- }
2259
-
2260
- .rounded-pill {
2261
- border-radius: 50rem !important;
2262
- }
2263
-
2264
- .w-25 {
2265
- width: 25% !important;
2266
- }
2267
-
2268
- .h-25 {
2269
- height: 25% !important;
2270
- }
2271
-
2272
- .w-50 {
2273
- width: 50% !important;
2274
- }
2275
-
2276
- .h-50 {
2277
- height: 50% !important;
2278
- }
2279
-
2280
- .w-75 {
2281
- width: 75% !important;
2282
- }
2283
-
2284
- .h-75 {
2285
- height: 75% !important;
2286
- }
2287
-
2288
- .w-100 {
2289
- width: 100% !important;
2290
- }
2291
-
2292
- .h-100 {
2293
- height: 100% !important;
2294
- }
2295
-
2296
- .mw-100 {
2297
- max-width: 100% !important;
2298
- }
2299
-
2300
- .mh-100 {
2301
- max-height: 100% !important;
2302
- }
2303
-
2304
- .position-relative {
2305
- position: relative !important;
2306
- }
2307
-
2308
- .position-absolute {
2309
- position: absolute !important;
2310
- }
2311
-
2312
- .position-fixed {
2313
- position: fixed !important;
2314
- }
2315
-
2316
- .position-sticky {
2317
- position: sticky !important;
2318
- }
2319
-
2320
- .position-static {
2321
- position: static !important;
2322
- }
2323
-
2324
- .visible {
2325
- visibility: visible !important;
2326
- }
2327
-
2328
- .invisible {
2329
- visibility: hidden !important;
2330
- }
2331
-
2332
- .overflow-hidden {
2333
- overflow: hidden !important;
2334
- }
2335
-
2336
- .overflow-auto {
2337
- overflow: auto !important;
2338
- }
2339
-
2340
- .shadow {
2341
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
2342
- }
2343
-
2344
- .shadow-sm {
2345
- box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
2346
- }
2347
-
2348
- .shadow-lg {
2349
- box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
2350
- }
2351
-
2352
- .shadow-none {
2353
- box-shadow: none !important;
2354
- }
2355
-
2356
- .collapse {
2357
- display: none;
2358
- }
2359
-
2360
- .collapse.show {
2361
- display: block;
2362
- }
2363
-
2364
- .fade {
2365
- opacity: 0;
2366
- transition: opacity 0.15s linear;
2367
- }
2368
-
2369
- .fade.show {
2370
- opacity: 1;
2371
- }
2372
-
2373
- .clearfix::after {
2374
- display: block;
2375
- clear: both;
2376
- content: "";
2377
- }
2378
-
2379
- .cursor-pointer {
2380
- cursor: pointer !important;
2381
- }
2382
-
2383
- .btn-close {
2384
- box-sizing: content-box;
2385
- width: 1em;
2386
- height: 1em;
2387
- padding: 0.25em;
2388
- color: #000;
2389
- background: transparent;
2390
- border: 0;
2391
- opacity: 0.5;
2392
- cursor: pointer;
2393
- font-size: 1.25rem;
2394
- line-height: 1;
2395
- }
2396
-
2397
- .btn-close:hover {
2398
- opacity: 0.75;
2399
- }
2400
-
2401
- .btn-close:focus {
2402
- opacity: 1;
2403
- outline: 0;
2404
- box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
2405
- }
2406
-
2407
- .img-fluid {
2408
- max-width: 100%;
2409
- height: auto;
2410
- }
2411
-
2412
- .img-thumbnail {
2413
- padding: 0.25rem;
2414
- background-color: #fff;
2415
- border: 1px solid rgba(0, 0, 0, 0.1);
2416
- border-radius: 0.25rem;
2417
- max-width: 100%;
2418
- height: auto;
2419
- }
2420
-
2421
- .border-top {
2422
- border-top: 1px solid rgba(0, 0, 0, 0.1) !important;
2423
- }
2424
-
2425
- .border-bottom {
2426
- border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
2427
- }
2428
-
2429
- .align-middle {
2430
- vertical-align: middle !important;
2431
- }
2432
-
2433
- .align-top {
2434
- vertical-align: top !important;
2435
- }
2436
-
2437
- .align-bottom {
2438
- vertical-align: bottom !important;
2439
- }
2440
-
2441
- .float-start {
2442
- float: left !important;
2443
- }
2444
-
2445
- .float-end {
2446
- float: right !important;
2447
- }
2448
-
2449
- .float-none {
2450
- float: none !important;
2451
- }
2452
-
2453
- .visually-hidden {
2454
- position: absolute !important;
2455
- width: 1px !important;
2456
- height: 1px !important;
2457
- padding: 0 !important;
2458
- margin: -1px !important;
2459
- overflow: hidden !important;
2460
- clip: rect(0, 0, 0, 0) !important;
2461
- white-space: nowrap !important;
2462
- border: 0 !important;
2463
- }
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ html {
8
+ line-height: 1.5;
9
+ -webkit-text-size-adjust: 100%;
10
+ -moz-tab-size: 4;
11
+ tab-size: 4;
12
+ scroll-behavior: smooth;
13
+ }
14
+
15
+ body {
16
+ margin: 0;
17
+ font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
18
+ font-size: 1rem;
19
+ font-weight: 400;
20
+ line-height: 1.5;
21
+ color: #212529;
22
+ background-color: #fff;
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ }
26
+
27
+ h1, h2, h3, h4, h5, h6 {
28
+ margin-top: 0;
29
+ margin-bottom: 0.5rem;
30
+ font-weight: 500;
31
+ line-height: 1.25;
32
+ }
33
+
34
+ p {
35
+ margin-top: 0;
36
+ margin-bottom: 1rem;
37
+ }
38
+
39
+ ol, ul {
40
+ padding-left: 2rem;
41
+ margin-top: 0;
42
+ margin-bottom: 1rem;
43
+ }
44
+
45
+ a {
46
+ color: #4a90d9;
47
+ text-decoration: none;
48
+ }
49
+
50
+ a:hover {
51
+ color: #256ab1;
52
+ text-decoration: underline;
53
+ }
54
+
55
+ img, svg {
56
+ max-width: 100%;
57
+ height: auto;
58
+ vertical-align: middle;
59
+ }
60
+
61
+ table {
62
+ border-collapse: collapse;
63
+ caption-side: bottom;
64
+ }
65
+
66
+ button, input, optgroup, select, textarea {
67
+ margin: 0;
68
+ font-family: inherit;
69
+ font-size: inherit;
70
+ line-height: inherit;
71
+ }
72
+
73
+ button, select {
74
+ text-transform: none;
75
+ }
76
+
77
+ button, [type="button"], [type="reset"], [type="submit"] {
78
+ -webkit-appearance: button;
79
+ cursor: pointer;
80
+ }
81
+
82
+ hr {
83
+ margin: 1rem 0;
84
+ color: inherit;
85
+ border: 0;
86
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
87
+ opacity: 0.25;
88
+ }
89
+
90
+ pre, code, kbd, samp {
91
+ font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
92
+ font-size: 1em;
93
+ }
94
+
95
+ pre {
96
+ margin-top: 0;
97
+ margin-bottom: 1rem;
98
+ overflow: auto;
99
+ }
100
+
101
+ [hidden] {
102
+ display: none !important;
103
+ }
104
+
105
+ h1 {
106
+ font-size: 2.25rem;
107
+ }
108
+
109
+ h2 {
110
+ font-size: 1.875rem;
111
+ }
112
+
113
+ h3 {
114
+ font-size: 1.5rem;
115
+ }
116
+
117
+ h4 {
118
+ font-size: 1.25rem;
119
+ }
120
+
121
+ h5 {
122
+ font-size: 1.125rem;
123
+ }
124
+
125
+ h6 {
126
+ font-size: 1rem;
127
+ }
128
+
129
+ small, .small {
130
+ font-size: 0.875em;
131
+ }
132
+
133
+ mark, .mark {
134
+ padding: 0.2em;
135
+ background-color: rgba(255, 193, 7, 0.3);
136
+ }
137
+
138
+ blockquote {
139
+ margin: 0 0 1rem;
140
+ padding: 0.5rem 1rem;
141
+ border-left: 0.25rem solid rgba(0, 0, 0, 0.1);
142
+ font-size: 1.125rem;
143
+ }
144
+
145
+ code {
146
+ font-size: 0.875em;
147
+ color: #dc3545;
148
+ word-wrap: break-word;
149
+ }
150
+
151
+ pre {
152
+ display: block;
153
+ padding: 1rem;
154
+ font-size: 0.875em;
155
+ color: #212529;
156
+ background-color: #f8f9fa;
157
+ border-radius: 0.25rem;
158
+ }
159
+
160
+ .list-unstyled {
161
+ padding-left: 0;
162
+ list-style: none;
163
+ }
164
+
165
+ .list-inline {
166
+ padding-left: 0;
167
+ list-style: none;
168
+ }
169
+
170
+ .list-inline-item {
171
+ display: inline-block;
172
+ }
173
+
174
+ .list-inline-item:not(:last-child) {
175
+ margin-right: 0.5rem;
176
+ }
177
+
178
+ .container,
179
+ .container-fluid {
180
+ width: 100%;
181
+ padding-right: calc($grid-gutter / 2);
182
+ padding-left: calc($grid-gutter / 2);
183
+ margin-right: auto;
184
+ margin-left: auto;
185
+ }
186
+
187
+ @media (min-width: 576px) {
188
+ .container {
189
+ max-width: 540px;
190
+ }
191
+ }
192
+
193
+ @media (min-width: 768px) {
194
+ .container {
195
+ max-width: 720px;
196
+ }
197
+ }
198
+
199
+ @media (min-width: 992px) {
200
+ .container {
201
+ max-width: 960px;
202
+ }
203
+ }
204
+
205
+ @media (min-width: 1200px) {
206
+ .container {
207
+ max-width: 1140px;
208
+ }
209
+ }
210
+
211
+ @media (min-width: 1400px) {
212
+ .container {
213
+ max-width: 1320px;
214
+ }
215
+ }
216
+
217
+ .row {
218
+ display: flex;
219
+ flex-wrap: wrap;
220
+ margin-right: calc($grid-gutter / -2);
221
+ margin-left: calc($grid-gutter / -2);
222
+ }
223
+
224
+ .row > * {
225
+ flex-shrink: 0;
226
+ width: 100%;
227
+ max-width: 100%;
228
+ padding-right: calc($grid-gutter / 2);
229
+ padding-left: calc($grid-gutter / 2);
230
+ }
231
+
232
+ .col {
233
+ flex: 1 0 0%;
234
+ }
235
+
236
+ .col-1 {
237
+ flex: 0 0 auto;
238
+ width: 8.33333%;
239
+ }
240
+
241
+ .col-2 {
242
+ flex: 0 0 auto;
243
+ width: 16.66667%;
244
+ }
245
+
246
+ .col-3 {
247
+ flex: 0 0 auto;
248
+ width: 25%;
249
+ }
250
+
251
+ .col-4 {
252
+ flex: 0 0 auto;
253
+ width: 33.33333%;
254
+ }
255
+
256
+ .col-5 {
257
+ flex: 0 0 auto;
258
+ width: 41.66667%;
259
+ }
260
+
261
+ .col-6 {
262
+ flex: 0 0 auto;
263
+ width: 50%;
264
+ }
265
+
266
+ .col-7 {
267
+ flex: 0 0 auto;
268
+ width: 58.33333%;
269
+ }
270
+
271
+ .col-8 {
272
+ flex: 0 0 auto;
273
+ width: 66.66667%;
274
+ }
275
+
276
+ .col-9 {
277
+ flex: 0 0 auto;
278
+ width: 75%;
279
+ }
280
+
281
+ .col-10 {
282
+ flex: 0 0 auto;
283
+ width: 83.33333%;
284
+ }
285
+
286
+ .col-11 {
287
+ flex: 0 0 auto;
288
+ width: 91.66667%;
289
+ }
290
+
291
+ .col-12 {
292
+ flex: 0 0 auto;
293
+ width: 100%;
294
+ }
295
+
296
+ .offset-1 {
297
+ margin-left: 8.33333%;
298
+ }
299
+
300
+ .offset-2 {
301
+ margin-left: 16.66667%;
302
+ }
303
+
304
+ .offset-3 {
305
+ margin-left: 25%;
306
+ }
307
+
308
+ .offset-4 {
309
+ margin-left: 33.33333%;
310
+ }
311
+
312
+ .offset-0 {
313
+ margin-left: 0;
314
+ }
315
+
316
+ @media (min-width: 576px) {
317
+ .col-sm {
318
+ flex: 1 0 0%;
319
+ }
320
+ .col-sm-1 {
321
+ flex: 0 0 auto;
322
+ width: 8.33333%;
323
+ }
324
+ .col-sm-2 {
325
+ flex: 0 0 auto;
326
+ width: 16.66667%;
327
+ }
328
+ .col-sm-3 {
329
+ flex: 0 0 auto;
330
+ width: 25%;
331
+ }
332
+ .col-sm-4 {
333
+ flex: 0 0 auto;
334
+ width: 33.33333%;
335
+ }
336
+ .col-sm-5 {
337
+ flex: 0 0 auto;
338
+ width: 41.66667%;
339
+ }
340
+ .col-sm-6 {
341
+ flex: 0 0 auto;
342
+ width: 50%;
343
+ }
344
+ .col-sm-7 {
345
+ flex: 0 0 auto;
346
+ width: 58.33333%;
347
+ }
348
+ .col-sm-8 {
349
+ flex: 0 0 auto;
350
+ width: 66.66667%;
351
+ }
352
+ .col-sm-9 {
353
+ flex: 0 0 auto;
354
+ width: 75%;
355
+ }
356
+ .col-sm-10 {
357
+ flex: 0 0 auto;
358
+ width: 83.33333%;
359
+ }
360
+ .col-sm-11 {
361
+ flex: 0 0 auto;
362
+ width: 91.66667%;
363
+ }
364
+ .col-sm-12 {
365
+ flex: 0 0 auto;
366
+ width: 100%;
367
+ }
368
+ .offset-sm-0 {
369
+ margin-left: 0;
370
+ }
371
+ }
372
+
373
+ @media (min-width: 768px) {
374
+ .col-md {
375
+ flex: 1 0 0%;
376
+ }
377
+ .col-md-1 {
378
+ flex: 0 0 auto;
379
+ width: 8.33333%;
380
+ }
381
+ .col-md-2 {
382
+ flex: 0 0 auto;
383
+ width: 16.66667%;
384
+ }
385
+ .col-md-3 {
386
+ flex: 0 0 auto;
387
+ width: 25%;
388
+ }
389
+ .col-md-4 {
390
+ flex: 0 0 auto;
391
+ width: 33.33333%;
392
+ }
393
+ .col-md-5 {
394
+ flex: 0 0 auto;
395
+ width: 41.66667%;
396
+ }
397
+ .col-md-6 {
398
+ flex: 0 0 auto;
399
+ width: 50%;
400
+ }
401
+ .col-md-7 {
402
+ flex: 0 0 auto;
403
+ width: 58.33333%;
404
+ }
405
+ .col-md-8 {
406
+ flex: 0 0 auto;
407
+ width: 66.66667%;
408
+ }
409
+ .col-md-9 {
410
+ flex: 0 0 auto;
411
+ width: 75%;
412
+ }
413
+ .col-md-10 {
414
+ flex: 0 0 auto;
415
+ width: 83.33333%;
416
+ }
417
+ .col-md-11 {
418
+ flex: 0 0 auto;
419
+ width: 91.66667%;
420
+ }
421
+ .col-md-12 {
422
+ flex: 0 0 auto;
423
+ width: 100%;
424
+ }
425
+ .offset-md-0 {
426
+ margin-left: 0;
427
+ }
428
+ }
429
+
430
+ @media (min-width: 992px) {
431
+ .col-lg {
432
+ flex: 1 0 0%;
433
+ }
434
+ .col-lg-1 {
435
+ flex: 0 0 auto;
436
+ width: 8.33333%;
437
+ }
438
+ .col-lg-2 {
439
+ flex: 0 0 auto;
440
+ width: 16.66667%;
441
+ }
442
+ .col-lg-3 {
443
+ flex: 0 0 auto;
444
+ width: 25%;
445
+ }
446
+ .col-lg-4 {
447
+ flex: 0 0 auto;
448
+ width: 33.33333%;
449
+ }
450
+ .col-lg-5 {
451
+ flex: 0 0 auto;
452
+ width: 41.66667%;
453
+ }
454
+ .col-lg-6 {
455
+ flex: 0 0 auto;
456
+ width: 50%;
457
+ }
458
+ .col-lg-7 {
459
+ flex: 0 0 auto;
460
+ width: 58.33333%;
461
+ }
462
+ .col-lg-8 {
463
+ flex: 0 0 auto;
464
+ width: 66.66667%;
465
+ }
466
+ .col-lg-9 {
467
+ flex: 0 0 auto;
468
+ width: 75%;
469
+ }
470
+ .col-lg-10 {
471
+ flex: 0 0 auto;
472
+ width: 83.33333%;
473
+ }
474
+ .col-lg-11 {
475
+ flex: 0 0 auto;
476
+ width: 91.66667%;
477
+ }
478
+ .col-lg-12 {
479
+ flex: 0 0 auto;
480
+ width: 100%;
481
+ }
482
+ .offset-lg-0 {
483
+ margin-left: 0;
484
+ }
485
+ }
486
+
487
+ @media (min-width: 1200px) {
488
+ .col-xl {
489
+ flex: 1 0 0%;
490
+ }
491
+ .col-xl-1 {
492
+ flex: 0 0 auto;
493
+ width: 8.33333%;
494
+ }
495
+ .col-xl-2 {
496
+ flex: 0 0 auto;
497
+ width: 16.66667%;
498
+ }
499
+ .col-xl-3 {
500
+ flex: 0 0 auto;
501
+ width: 25%;
502
+ }
503
+ .col-xl-4 {
504
+ flex: 0 0 auto;
505
+ width: 33.33333%;
506
+ }
507
+ .col-xl-5 {
508
+ flex: 0 0 auto;
509
+ width: 41.66667%;
510
+ }
511
+ .col-xl-6 {
512
+ flex: 0 0 auto;
513
+ width: 50%;
514
+ }
515
+ .col-xl-7 {
516
+ flex: 0 0 auto;
517
+ width: 58.33333%;
518
+ }
519
+ .col-xl-8 {
520
+ flex: 0 0 auto;
521
+ width: 66.66667%;
522
+ }
523
+ .col-xl-9 {
524
+ flex: 0 0 auto;
525
+ width: 75%;
526
+ }
527
+ .col-xl-10 {
528
+ flex: 0 0 auto;
529
+ width: 83.33333%;
530
+ }
531
+ .col-xl-11 {
532
+ flex: 0 0 auto;
533
+ width: 91.66667%;
534
+ }
535
+ .col-xl-12 {
536
+ flex: 0 0 auto;
537
+ width: 100%;
538
+ }
539
+ .offset-xl-0 {
540
+ margin-left: 0;
541
+ }
542
+ }
543
+
544
+ .justify-start {
545
+ justify-content: flex-start;
546
+ }
547
+
548
+ .justify-center {
549
+ justify-content: center;
550
+ }
551
+
552
+ .justify-end {
553
+ justify-content: flex-end;
554
+ }
555
+
556
+ .justify-between {
557
+ justify-content: space-between;
558
+ }
559
+
560
+ .justify-around {
561
+ justify-content: space-around;
562
+ }
563
+
564
+ .align-start {
565
+ align-items: flex-start;
566
+ }
567
+
568
+ .align-center {
569
+ align-items: center;
570
+ }
571
+
572
+ .align-end {
573
+ align-items: flex-end;
574
+ }
575
+
576
+ .btn {
577
+ display: inline-block;
578
+ font-weight: 400;
579
+ line-height: 1.5;
580
+ color: #212529;
581
+ text-align: center;
582
+ vertical-align: middle;
583
+ cursor: pointer;
584
+ user-select: none;
585
+ background-color: transparent;
586
+ border: 1px solid transparent;
587
+ padding: 0.375rem 0.75rem;
588
+ font-size: 1rem;
589
+ border-radius: 0.25rem;
590
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
591
+ text-decoration: none;
592
+ }
593
+
594
+ .btn:disabled, .btn.disabled {
595
+ pointer-events: none;
596
+ opacity: 0.65;
597
+ }
598
+
599
+ .btn-primary {
600
+ color: #fff;
601
+ background-color: #4a90d9;
602
+ border-color: #4a90d9;
603
+ }
604
+
605
+ .btn-primary:hover {
606
+ background-color: #2b7bcf;
607
+ border-color: #2a76c6;
608
+ }
609
+
610
+ .btn-secondary {
611
+ color: #fff;
612
+ background-color: #6c757d;
613
+ border-color: #6c757d;
614
+ }
615
+
616
+ .btn-secondary:hover {
617
+ background-color: #596167;
618
+ border-color: #545b62;
619
+ }
620
+
621
+ .btn-success {
622
+ color: #fff;
623
+ background-color: #28a745;
624
+ border-color: #28a745;
625
+ }
626
+
627
+ .btn-success:hover {
628
+ background-color: #208637;
629
+ border-color: #1e7e34;
630
+ }
631
+
632
+ .btn-danger {
633
+ color: #fff;
634
+ background-color: #dc3545;
635
+ border-color: #dc3545;
636
+ }
637
+
638
+ .btn-danger:hover {
639
+ background-color: #c62232;
640
+ border-color: #bd2130;
641
+ }
642
+
643
+ .btn-warning {
644
+ color: #212529;
645
+ background-color: #ffc107;
646
+ border-color: #ffc107;
647
+ }
648
+
649
+ .btn-warning:hover {
650
+ background-color: #dda600;
651
+ border-color: #d39e00;
652
+ }
653
+
654
+ .btn-info {
655
+ color: #fff;
656
+ background-color: #17a2b8;
657
+ border-color: #17a2b8;
658
+ }
659
+
660
+ .btn-info:hover {
661
+ background-color: #128294;
662
+ border-color: #117a8b;
663
+ }
664
+
665
+ .btn-light {
666
+ color: #212529;
667
+ background-color: #f8f9fa;
668
+ border-color: #f8f9fa;
669
+ }
670
+
671
+ .btn-light:hover {
672
+ background-color: #e0e5e9;
673
+ border-color: #dae0e5;
674
+ }
675
+
676
+ .btn-dark {
677
+ color: #fff;
678
+ background-color: #212529;
679
+ border-color: #212529;
680
+ }
681
+
682
+ .btn-dark:hover {
683
+ background-color: #0f1112;
684
+ border-color: #0a0c0d;
685
+ }
686
+
687
+ .btn-outline-primary {
688
+ color: #4a90d9;
689
+ border-color: #4a90d9;
690
+ background-color: transparent;
691
+ }
692
+
693
+ .btn-outline-primary:hover {
694
+ color: #fff;
695
+ background-color: #4a90d9;
696
+ }
697
+
698
+ .btn-outline-secondary {
699
+ color: #6c757d;
700
+ border-color: #6c757d;
701
+ background-color: transparent;
702
+ }
703
+
704
+ .btn-outline-secondary:hover {
705
+ color: #fff;
706
+ background-color: #6c757d;
707
+ }
708
+
709
+ .btn-outline-success {
710
+ color: #28a745;
711
+ border-color: #28a745;
712
+ background-color: transparent;
713
+ }
714
+
715
+ .btn-outline-success:hover {
716
+ color: #fff;
717
+ background-color: #28a745;
718
+ }
719
+
720
+ .btn-outline-danger {
721
+ color: #dc3545;
722
+ border-color: #dc3545;
723
+ background-color: transparent;
724
+ }
725
+
726
+ .btn-outline-danger:hover {
727
+ color: #fff;
728
+ background-color: #dc3545;
729
+ }
730
+
731
+ .btn-outline-warning {
732
+ color: #ffc107;
733
+ border-color: #ffc107;
734
+ background-color: transparent;
735
+ }
736
+
737
+ .btn-outline-warning:hover {
738
+ color: #212529;
739
+ background-color: #ffc107;
740
+ }
741
+
742
+ .btn-outline-info {
743
+ color: #17a2b8;
744
+ border-color: #17a2b8;
745
+ background-color: transparent;
746
+ }
747
+
748
+ .btn-outline-info:hover {
749
+ color: #fff;
750
+ background-color: #17a2b8;
751
+ }
752
+
753
+ .btn-outline-light {
754
+ color: #f8f9fa;
755
+ border-color: #f8f9fa;
756
+ background-color: transparent;
757
+ }
758
+
759
+ .btn-outline-light:hover {
760
+ color: #212529;
761
+ background-color: #f8f9fa;
762
+ }
763
+
764
+ .btn-outline-dark {
765
+ color: #212529;
766
+ border-color: #212529;
767
+ background-color: transparent;
768
+ }
769
+
770
+ .btn-outline-dark:hover {
771
+ color: #fff;
772
+ background-color: #212529;
773
+ }
774
+
775
+ .btn-sm {
776
+ padding: 0.25rem 0.5rem;
777
+ font-size: 0.875rem;
778
+ border-radius: 0.25rem;
779
+ }
780
+
781
+ .btn-lg {
782
+ padding: 0.5rem 1rem;
783
+ font-size: 1.125rem;
784
+ border-radius: 0.5rem;
785
+ }
786
+
787
+ .btn-block {
788
+ display: block;
789
+ width: 100%;
790
+ }
791
+
792
+ .form-group {
793
+ margin-bottom: 1rem;
794
+ }
795
+
796
+ .form-label {
797
+ display: inline-block;
798
+ margin-bottom: 0.5rem;
799
+ font-weight: 700;
800
+ }
801
+
802
+ .form-control {
803
+ display: block;
804
+ width: 100%;
805
+ padding: 0.375rem 0.75rem;
806
+ font-size: 1rem;
807
+ font-weight: 400;
808
+ line-height: 1.5;
809
+ color: #212529;
810
+ background-color: #fff;
811
+ background-clip: padding-box;
812
+ border: 1px solid #ced4da;
813
+ border-radius: 0.25rem;
814
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
815
+ appearance: none;
816
+ }
817
+
818
+ .form-control:focus {
819
+ color: #212529;
820
+ background-color: #fff;
821
+ border-color: #b3d1ef;
822
+ outline: 0;
823
+ box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
824
+ }
825
+
826
+ .form-control::placeholder {
827
+ color: #6c757d;
828
+ opacity: 1;
829
+ }
830
+
831
+ .form-control:disabled {
832
+ background-color: #f8f9fa;
833
+ opacity: 1;
834
+ }
835
+
836
+ textarea.form-control {
837
+ min-height: calc(1.5em + 0.75rem + 2px);
838
+ }
839
+
840
+ .form-select {
841
+ display: block;
842
+ width: 100%;
843
+ padding: 0.375rem 2.25rem 0.375rem 0.75rem;
844
+ font-size: 1rem;
845
+ font-weight: 400;
846
+ line-height: 1.5;
847
+ color: #212529;
848
+ background-color: #fff;
849
+ border: 1px solid #ced4da;
850
+ border-radius: 0.25rem;
851
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
852
+ appearance: none;
853
+ }
854
+
855
+ .form-select:focus {
856
+ border-color: #b3d1ef;
857
+ outline: 0;
858
+ box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
859
+ }
860
+
861
+ .form-check {
862
+ display: block;
863
+ min-height: 1.5rem;
864
+ padding-left: 1.5em;
865
+ margin-bottom: 0.125rem;
866
+ }
867
+
868
+ .form-check-input {
869
+ float: left;
870
+ width: 1em;
871
+ height: 1em;
872
+ margin-left: -1.5em;
873
+ margin-top: 0.25em;
874
+ appearance: none;
875
+ background-color: #fff;
876
+ border: 1px solid rgba(0, 0, 0, 0.25);
877
+ }
878
+
879
+ .form-check-input[type="checkbox"] {
880
+ border-radius: 0.25em;
881
+ }
882
+
883
+ .form-check-input[type="radio"] {
884
+ border-radius: 50%;
885
+ }
886
+
887
+ .form-check-input:checked {
888
+ background-color: #4a90d9;
889
+ border-color: #4a90d9;
890
+ }
891
+
892
+ .form-check-input:focus {
893
+ border-color: #b3d1ef;
894
+ outline: 0;
895
+ box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
896
+ }
897
+
898
+ .form-check-label {
899
+ cursor: pointer;
900
+ }
901
+
902
+ .is-valid {
903
+ border-color: #28a745 !important;
904
+ }
905
+
906
+ .is-valid:focus {
907
+ box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25) !important;
908
+ }
909
+
910
+ .is-invalid {
911
+ border-color: #dc3545 !important;
912
+ }
913
+
914
+ .is-invalid:focus {
915
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
916
+ }
917
+
918
+ .valid-feedback,
919
+ .invalid-feedback {
920
+ display: none;
921
+ width: 100%;
922
+ margin-top: 0.25rem;
923
+ font-size: 0.875em;
924
+ }
925
+
926
+ .valid-feedback {
927
+ color: #28a745;
928
+ }
929
+
930
+ .invalid-feedback {
931
+ color: #dc3545;
932
+ }
933
+
934
+ .is-valid ~ .valid-feedback,
935
+ .is-invalid ~ .invalid-feedback {
936
+ display: block;
937
+ }
938
+
939
+ .input-group {
940
+ position: relative;
941
+ display: flex;
942
+ flex-wrap: wrap;
943
+ align-items: stretch;
944
+ width: 100%;
945
+ }
946
+
947
+ .input-group > .form-control,
948
+ .input-group > .form-select {
949
+ position: relative;
950
+ flex: 1 1 auto;
951
+ width: 1%;
952
+ min-width: 0;
953
+ }
954
+
955
+ .input-group-text {
956
+ display: flex;
957
+ align-items: center;
958
+ padding: 0.375rem 0.75rem;
959
+ font-size: 1rem;
960
+ line-height: 1.5;
961
+ color: #212529;
962
+ text-align: center;
963
+ white-space: nowrap;
964
+ background-color: #f8f9fa;
965
+ border: 1px solid #ced4da;
966
+ border-radius: 0.25rem;
967
+ }
968
+
969
+ .card {
970
+ position: relative;
971
+ display: flex;
972
+ flex-direction: column;
973
+ min-width: 0;
974
+ word-wrap: break-word;
975
+ background-color: #fff;
976
+ background-clip: border-box;
977
+ border: 1px solid rgba(0, 0, 0, 0.125);
978
+ border-radius: 0.5rem;
979
+ }
980
+
981
+ .card-header {
982
+ padding: 0.75rem 1rem;
983
+ margin-bottom: 0;
984
+ background-color: rgba(0, 0, 0, 0.03);
985
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
986
+ }
987
+
988
+ .card-header:first-child {
989
+ border-radius: calc($border-radius-lg - 1px) calc($border-radius-lg - 1px) 0 0;
990
+ }
991
+
992
+ .card-body {
993
+ flex: 1 1 auto;
994
+ padding: 1rem;
995
+ }
996
+
997
+ .card-footer {
998
+ padding: 0.75rem 1rem;
999
+ background-color: rgba(0, 0, 0, 0.03);
1000
+ border-top: 1px solid rgba(0, 0, 0, 0.125);
1001
+ }
1002
+
1003
+ .card-footer:last-child {
1004
+ border-radius: 0 0 calc($border-radius-lg - 1px) calc($border-radius-lg - 1px);
1005
+ }
1006
+
1007
+ .card-title {
1008
+ margin-bottom: 0.5rem;
1009
+ font-weight: 700;
1010
+ }
1011
+
1012
+ .card-text:last-child {
1013
+ margin-bottom: 0;
1014
+ }
1015
+
1016
+ .card-img-top {
1017
+ width: 100%;
1018
+ border-top-left-radius: calc($border-radius-lg - 1px);
1019
+ border-top-right-radius: calc($border-radius-lg - 1px);
1020
+ }
1021
+
1022
+ .nav {
1023
+ display: flex;
1024
+ flex-wrap: wrap;
1025
+ padding-left: 0;
1026
+ margin-bottom: 0;
1027
+ list-style: none;
1028
+ }
1029
+
1030
+ .nav-link {
1031
+ display: block;
1032
+ padding: 0.5rem 1rem;
1033
+ color: #4a90d9;
1034
+ text-decoration: none;
1035
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
1036
+ }
1037
+
1038
+ .nav-link:hover, .nav-link:focus {
1039
+ color: #256ab1;
1040
+ }
1041
+
1042
+ .nav-link.disabled {
1043
+ color: #6c757d;
1044
+ pointer-events: none;
1045
+ cursor: default;
1046
+ }
1047
+
1048
+ .nav-link.active {
1049
+ color: #4a90d9;
1050
+ font-weight: 700;
1051
+ }
1052
+
1053
+ .navbar {
1054
+ position: relative;
1055
+ display: flex;
1056
+ flex-wrap: wrap;
1057
+ align-items: center;
1058
+ justify-content: space-between;
1059
+ padding: 0.5rem 1rem;
1060
+ }
1061
+
1062
+ .navbar-brand {
1063
+ padding-top: 0.3125rem;
1064
+ padding-bottom: 0.3125rem;
1065
+ margin-right: 1rem;
1066
+ font-size: 1.25rem;
1067
+ font-weight: 700;
1068
+ color: inherit;
1069
+ text-decoration: none;
1070
+ white-space: nowrap;
1071
+ }
1072
+
1073
+ .navbar-brand:hover {
1074
+ color: inherit;
1075
+ opacity: 0.8;
1076
+ }
1077
+
1078
+ .navbar-nav {
1079
+ display: flex;
1080
+ flex-direction: column;
1081
+ padding-left: 0;
1082
+ margin-bottom: 0;
1083
+ list-style: none;
1084
+ }
1085
+
1086
+ .navbar-nav .nav-link {
1087
+ padding-right: 0.5rem;
1088
+ padding-left: 0.5rem;
1089
+ }
1090
+
1091
+ .navbar-toggler {
1092
+ padding: 0.25rem 0.75rem;
1093
+ font-size: 1.125rem;
1094
+ line-height: 1;
1095
+ background-color: transparent;
1096
+ border: 1px solid rgba(0, 0, 0, 0.1);
1097
+ border-radius: 0.25rem;
1098
+ cursor: pointer;
1099
+ }
1100
+
1101
+ .navbar-toggler:focus {
1102
+ outline: 0;
1103
+ box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
1104
+ }
1105
+
1106
+ .navbar-collapse {
1107
+ flex-basis: 100%;
1108
+ flex-grow: 1;
1109
+ align-items: center;
1110
+ display: none;
1111
+ }
1112
+
1113
+ .navbar-collapse.show {
1114
+ display: flex;
1115
+ }
1116
+
1117
+ @media (min-width: 576px) {
1118
+ .navbar-expand-sm .navbar-nav {
1119
+ flex-direction: row;
1120
+ }
1121
+ .navbar-expand-sm .navbar-collapse {
1122
+ display: flex;
1123
+ flex-basis: auto;
1124
+ }
1125
+ .navbar-expand-sm .navbar-toggler {
1126
+ display: none;
1127
+ }
1128
+ }
1129
+
1130
+ @media (min-width: 768px) {
1131
+ .navbar-expand-md .navbar-nav {
1132
+ flex-direction: row;
1133
+ }
1134
+ .navbar-expand-md .navbar-collapse {
1135
+ display: flex;
1136
+ flex-basis: auto;
1137
+ }
1138
+ .navbar-expand-md .navbar-toggler {
1139
+ display: none;
1140
+ }
1141
+ }
1142
+
1143
+ @media (min-width: 992px) {
1144
+ .navbar-expand-lg .navbar-nav {
1145
+ flex-direction: row;
1146
+ }
1147
+ .navbar-expand-lg .navbar-collapse {
1148
+ display: flex;
1149
+ flex-basis: auto;
1150
+ }
1151
+ .navbar-expand-lg .navbar-toggler {
1152
+ display: none;
1153
+ }
1154
+ }
1155
+
1156
+ @media (min-width: 1200px) {
1157
+ .navbar-expand-xl .navbar-nav {
1158
+ flex-direction: row;
1159
+ }
1160
+ .navbar-expand-xl .navbar-collapse {
1161
+ display: flex;
1162
+ flex-basis: auto;
1163
+ }
1164
+ .navbar-expand-xl .navbar-toggler {
1165
+ display: none;
1166
+ }
1167
+ }
1168
+
1169
+ @media (min-width: 1400px) {
1170
+ .navbar-expand-xxl .navbar-nav {
1171
+ flex-direction: row;
1172
+ }
1173
+ .navbar-expand-xxl .navbar-collapse {
1174
+ display: flex;
1175
+ flex-basis: auto;
1176
+ }
1177
+ .navbar-expand-xxl .navbar-toggler {
1178
+ display: none;
1179
+ }
1180
+ }
1181
+
1182
+ @media (min-width: 992px) {
1183
+ .navbar-nav {
1184
+ flex-direction: row;
1185
+ }
1186
+ .navbar-collapse {
1187
+ display: flex;
1188
+ flex-basis: auto;
1189
+ }
1190
+ .navbar-toggler {
1191
+ display: none;
1192
+ }
1193
+ }
1194
+
1195
+ .navbar-dark {
1196
+ color: #fff;
1197
+ background-color: #212529;
1198
+ }
1199
+
1200
+ .navbar-dark .navbar-brand {
1201
+ color: #fff;
1202
+ }
1203
+
1204
+ .navbar-dark .nav-link {
1205
+ color: rgba(255, 255, 255, 0.75);
1206
+ }
1207
+
1208
+ .navbar-dark .nav-link:hover, .navbar-dark .nav-link.active {
1209
+ color: #fff;
1210
+ }
1211
+
1212
+ .navbar-light {
1213
+ background-color: #f8f9fa;
1214
+ }
1215
+
1216
+ .navbar-light .nav-link {
1217
+ color: rgba(0, 0, 0, 0.55);
1218
+ }
1219
+
1220
+ .navbar-light .nav-link:hover, .navbar-light .nav-link.active {
1221
+ color: rgba(0, 0, 0, 0.9);
1222
+ }
1223
+
1224
+ .breadcrumb {
1225
+ display: flex;
1226
+ flex-wrap: wrap;
1227
+ padding: 0.5rem 1rem;
1228
+ margin-bottom: 1rem;
1229
+ list-style: none;
1230
+ background-color: #f8f9fa;
1231
+ border-radius: 0.25rem;
1232
+ }
1233
+
1234
+ .breadcrumb-item + .breadcrumb-item::before {
1235
+ display: inline-block;
1236
+ padding-right: 0.5rem;
1237
+ padding-left: 0.5rem;
1238
+ color: #6c757d;
1239
+ content: "/";
1240
+ }
1241
+
1242
+ .breadcrumb-item.active {
1243
+ color: #6c757d;
1244
+ }
1245
+
1246
+ .modal {
1247
+ position: fixed;
1248
+ top: 0;
1249
+ left: 0;
1250
+ z-index: 1050;
1251
+ display: none;
1252
+ width: 100%;
1253
+ height: 100%;
1254
+ overflow-x: hidden;
1255
+ overflow-y: auto;
1256
+ outline: 0;
1257
+ }
1258
+
1259
+ .modal.show {
1260
+ display: block;
1261
+ }
1262
+
1263
+ .modal-dialog {
1264
+ position: relative;
1265
+ width: auto;
1266
+ margin: 1.75rem auto;
1267
+ max-width: 500px;
1268
+ }
1269
+
1270
+ .modal-sm {
1271
+ max-width: 300px;
1272
+ }
1273
+
1274
+ .modal-lg {
1275
+ max-width: 800px;
1276
+ }
1277
+
1278
+ .modal-content {
1279
+ position: relative;
1280
+ display: flex;
1281
+ flex-direction: column;
1282
+ width: 100%;
1283
+ pointer-events: auto;
1284
+ background-color: #fff;
1285
+ background-clip: padding-box;
1286
+ border: 1px solid rgba(0, 0, 0, 0.2);
1287
+ border-radius: 0.5rem;
1288
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
1289
+ outline: 0;
1290
+ }
1291
+
1292
+ .modal-header {
1293
+ display: flex;
1294
+ flex-shrink: 0;
1295
+ align-items: center;
1296
+ justify-content: space-between;
1297
+ padding: 1rem;
1298
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1299
+ }
1300
+
1301
+ .modal-title {
1302
+ margin-bottom: 0;
1303
+ font-weight: 700;
1304
+ }
1305
+
1306
+ .modal-body {
1307
+ position: relative;
1308
+ flex: 1 1 auto;
1309
+ padding: 1rem;
1310
+ }
1311
+
1312
+ .modal-footer {
1313
+ display: flex;
1314
+ flex-shrink: 0;
1315
+ flex-wrap: wrap;
1316
+ align-items: center;
1317
+ justify-content: flex-end;
1318
+ padding: 0.75rem;
1319
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
1320
+ gap: 0.5rem;
1321
+ }
1322
+
1323
+ .modal-backdrop {
1324
+ position: fixed;
1325
+ top: 0;
1326
+ left: 0;
1327
+ z-index: 1040;
1328
+ width: 100vw;
1329
+ height: 100vh;
1330
+ background-color: rgba(0, 0, 0, 0.5);
1331
+ display: none;
1332
+ }
1333
+
1334
+ .modal-backdrop.show {
1335
+ display: block;
1336
+ }
1337
+
1338
+ .alert {
1339
+ position: relative;
1340
+ padding: 0.75rem 1rem;
1341
+ margin-bottom: 1rem;
1342
+ border: 1px solid transparent;
1343
+ border-radius: 0.25rem;
1344
+ }
1345
+
1346
+ .alert-primary {
1347
+ color: #1c5187;
1348
+ background-color: #deeaf8;
1349
+ border-color: #b3d1ef;
1350
+ }
1351
+
1352
+ .alert-secondary {
1353
+ color: #313539;
1354
+ background-color: #caced1;
1355
+ border-color: #afb5ba;
1356
+ }
1357
+
1358
+ .alert-success {
1359
+ color: #0f401b;
1360
+ background-color: #9be7ac;
1361
+ border-color: #71dd8a;
1362
+ }
1363
+
1364
+ .alert-danger {
1365
+ color: #7c151f;
1366
+ background-color: #f6cdd1;
1367
+ border-color: #efa2a9;
1368
+ }
1369
+
1370
+ .alert-warning {
1371
+ color: #876500;
1372
+ background-color: #ffeeba;
1373
+ border-color: #ffe187;
1374
+ }
1375
+
1376
+ .alert-info {
1377
+ color: #093e47;
1378
+ background-color: #90e4f1;
1379
+ border-color: #63d9ec;
1380
+ }
1381
+
1382
+ .alert-light {
1383
+ color: #aeb9c5;
1384
+ background-color: white;
1385
+ border-color: white;
1386
+ }
1387
+
1388
+ .alert-dark {
1389
+ color: black;
1390
+ background-color: #717e8c;
1391
+ border-color: #5a6570;
1392
+ }
1393
+
1394
+ .alert-dismissible {
1395
+ padding-right: 3rem;
1396
+ }
1397
+
1398
+ .alert-dismissible .btn-close {
1399
+ position: absolute;
1400
+ top: 0;
1401
+ right: 0;
1402
+ padding: 0.9375rem 1rem;
1403
+ background: transparent;
1404
+ border: 0;
1405
+ cursor: pointer;
1406
+ color: inherit;
1407
+ opacity: 0.5;
1408
+ }
1409
+
1410
+ .alert-dismissible .btn-close:hover {
1411
+ opacity: 0.75;
1412
+ }
1413
+
1414
+ .table {
1415
+ width: 100%;
1416
+ margin-bottom: 1rem;
1417
+ vertical-align: top;
1418
+ border-color: rgba(0, 0, 0, 0.1);
1419
+ }
1420
+
1421
+ .table > :not(caption) > * > * {
1422
+ padding: 0.5rem;
1423
+ border-bottom-width: 1px;
1424
+ border-bottom-style: solid;
1425
+ border-bottom-color: inherit;
1426
+ }
1427
+
1428
+ .table > thead {
1429
+ vertical-align: bottom;
1430
+ border-bottom: 2px solid currentColor;
1431
+ }
1432
+
1433
+ .table > tbody > tr:last-child > * {
1434
+ border-bottom-color: transparent;
1435
+ }
1436
+
1437
+ .table-sm > :not(caption) > * > * {
1438
+ padding: 0.25rem;
1439
+ }
1440
+
1441
+ .table-bordered {
1442
+ border: 1px solid rgba(0, 0, 0, 0.1);
1443
+ }
1444
+
1445
+ .table-bordered > :not(caption) > * > * {
1446
+ border-width: 1px;
1447
+ border-style: solid;
1448
+ border-color: inherit;
1449
+ }
1450
+
1451
+ .table-striped > tbody > tr:nth-of-type(odd) > * {
1452
+ background-color: rgba(0, 0, 0, 0.02);
1453
+ }
1454
+
1455
+ .table-hover > tbody > tr:hover > * {
1456
+ background-color: rgba(0, 0, 0, 0.04);
1457
+ }
1458
+
1459
+ .table-responsive {
1460
+ overflow-x: auto;
1461
+ -webkit-overflow-scrolling: touch;
1462
+ }
1463
+
1464
+ .badge {
1465
+ display: inline-block;
1466
+ padding: 0.25em 0.65em;
1467
+ font-size: 0.75em;
1468
+ font-weight: 700;
1469
+ line-height: 1;
1470
+ color: #fff;
1471
+ text-align: center;
1472
+ white-space: nowrap;
1473
+ vertical-align: baseline;
1474
+ border-radius: 50rem;
1475
+ }
1476
+
1477
+ .badge-primary {
1478
+ color: #fff;
1479
+ background-color: #4a90d9;
1480
+ }
1481
+
1482
+ .badge-secondary {
1483
+ color: #fff;
1484
+ background-color: #6c757d;
1485
+ }
1486
+
1487
+ .badge-success {
1488
+ color: #fff;
1489
+ background-color: #28a745;
1490
+ }
1491
+
1492
+ .badge-danger {
1493
+ color: #fff;
1494
+ background-color: #dc3545;
1495
+ }
1496
+
1497
+ .badge-warning {
1498
+ color: #212529;
1499
+ background-color: #ffc107;
1500
+ }
1501
+
1502
+ .badge-info {
1503
+ color: #fff;
1504
+ background-color: #17a2b8;
1505
+ }
1506
+
1507
+ .badge-light {
1508
+ color: #212529;
1509
+ background-color: #f8f9fa;
1510
+ }
1511
+
1512
+ .badge-dark {
1513
+ color: #fff;
1514
+ background-color: #212529;
1515
+ }
1516
+
1517
+ .pagination {
1518
+ display: flex;
1519
+ flex-wrap: wrap;
1520
+ padding-left: 0;
1521
+ list-style: none;
1522
+ gap: 0.25rem;
1523
+ }
1524
+
1525
+ .page-item.disabled .page-link {
1526
+ color: #6c757d;
1527
+ pointer-events: none;
1528
+ background-color: #fff;
1529
+ border-color: rgba(0, 0, 0, 0.1);
1530
+ }
1531
+
1532
+ .page-item.active .page-link {
1533
+ color: #fff;
1534
+ background-color: #4a90d9;
1535
+ border-color: #4a90d9;
1536
+ }
1537
+
1538
+ .page-link {
1539
+ display: block;
1540
+ padding: 0.375rem 0.75rem;
1541
+ color: #4a90d9;
1542
+ background-color: #fff;
1543
+ border: 1px solid rgba(0, 0, 0, 0.15);
1544
+ border-radius: 0.25rem;
1545
+ text-decoration: none;
1546
+ line-height: 1.25;
1547
+ transition: color 0.15s, background-color 0.15s, border-color 0.15s;
1548
+ }
1549
+
1550
+ .page-link:hover {
1551
+ color: #2a76c6;
1552
+ background-color: rgba(74, 144, 217, 0.08);
1553
+ border-color: rgba(0, 0, 0, 0.2);
1554
+ }
1555
+
1556
+ .page-link:focus {
1557
+ outline: 0;
1558
+ box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
1559
+ }
1560
+
1561
+ .crud-img-preview {
1562
+ max-height: 200px;
1563
+ max-width: 100%;
1564
+ border-radius: 0.25rem;
1565
+ object-fit: cover;
1566
+ }
1567
+
1568
+ .crud-img-preview-sm {
1569
+ max-height: 180px;
1570
+ max-width: 100%;
1571
+ border-radius: 0.25rem;
1572
+ object-fit: cover;
1573
+ }
1574
+
1575
+ .d-none {
1576
+ display: none !important;
1577
+ }
1578
+
1579
+ .d-block {
1580
+ display: block !important;
1581
+ }
1582
+
1583
+ .d-flex {
1584
+ display: flex !important;
1585
+ }
1586
+
1587
+ .d-inline {
1588
+ display: inline !important;
1589
+ }
1590
+
1591
+ .d-inline-block {
1592
+ display: inline-block !important;
1593
+ }
1594
+
1595
+ .d-grid {
1596
+ display: grid !important;
1597
+ }
1598
+
1599
+ @media (min-width: 576px) {
1600
+ .d-sm-none {
1601
+ display: none !important;
1602
+ }
1603
+ .d-sm-block {
1604
+ display: block !important;
1605
+ }
1606
+ .d-sm-flex {
1607
+ display: flex !important;
1608
+ }
1609
+ .d-sm-inline {
1610
+ display: inline !important;
1611
+ }
1612
+ .d-sm-inline-block {
1613
+ display: inline-block !important;
1614
+ }
1615
+ }
1616
+
1617
+ @media (min-width: 768px) {
1618
+ .d-md-none {
1619
+ display: none !important;
1620
+ }
1621
+ .d-md-block {
1622
+ display: block !important;
1623
+ }
1624
+ .d-md-flex {
1625
+ display: flex !important;
1626
+ }
1627
+ .d-md-inline {
1628
+ display: inline !important;
1629
+ }
1630
+ .d-md-inline-block {
1631
+ display: inline-block !important;
1632
+ }
1633
+ }
1634
+
1635
+ @media (min-width: 992px) {
1636
+ .d-lg-none {
1637
+ display: none !important;
1638
+ }
1639
+ .d-lg-block {
1640
+ display: block !important;
1641
+ }
1642
+ .d-lg-flex {
1643
+ display: flex !important;
1644
+ }
1645
+ .d-lg-inline {
1646
+ display: inline !important;
1647
+ }
1648
+ .d-lg-inline-block {
1649
+ display: inline-block !important;
1650
+ }
1651
+ }
1652
+
1653
+ .flex-row {
1654
+ flex-direction: row !important;
1655
+ }
1656
+
1657
+ .flex-column {
1658
+ flex-direction: column !important;
1659
+ }
1660
+
1661
+ .flex-wrap {
1662
+ flex-wrap: wrap !important;
1663
+ }
1664
+
1665
+ .flex-nowrap {
1666
+ flex-wrap: nowrap !important;
1667
+ }
1668
+
1669
+ .flex-grow-0 {
1670
+ flex-grow: 0 !important;
1671
+ }
1672
+
1673
+ .flex-grow-1 {
1674
+ flex-grow: 1 !important;
1675
+ }
1676
+
1677
+ .justify-content-start {
1678
+ justify-content: flex-start !important;
1679
+ }
1680
+
1681
+ .justify-content-end {
1682
+ justify-content: flex-end !important;
1683
+ }
1684
+
1685
+ .justify-content-center {
1686
+ justify-content: center !important;
1687
+ }
1688
+
1689
+ .justify-content-between {
1690
+ justify-content: space-between !important;
1691
+ }
1692
+
1693
+ .justify-content-around {
1694
+ justify-content: space-around !important;
1695
+ }
1696
+
1697
+ .align-items-start {
1698
+ align-items: flex-start !important;
1699
+ }
1700
+
1701
+ .align-items-end {
1702
+ align-items: flex-end !important;
1703
+ }
1704
+
1705
+ .align-items-center {
1706
+ align-items: center !important;
1707
+ }
1708
+
1709
+ .gap-0 {
1710
+ gap: 0 !important;
1711
+ }
1712
+
1713
+ .gap-1 {
1714
+ gap: 0.25rem !important;
1715
+ }
1716
+
1717
+ .gap-2 {
1718
+ gap: 0.5rem !important;
1719
+ }
1720
+
1721
+ .gap-3 {
1722
+ gap: 1rem !important;
1723
+ }
1724
+
1725
+ .gap-4 {
1726
+ gap: 1.5rem !important;
1727
+ }
1728
+
1729
+ .gap-5 {
1730
+ gap: 3rem !important;
1731
+ }
1732
+
1733
+ .m-0 {
1734
+ margin: 0 !important;
1735
+ }
1736
+
1737
+ .m-1 {
1738
+ margin: 0.25rem !important;
1739
+ }
1740
+
1741
+ .m-2 {
1742
+ margin: 0.5rem !important;
1743
+ }
1744
+
1745
+ .m-3 {
1746
+ margin: 1rem !important;
1747
+ }
1748
+
1749
+ .m-4 {
1750
+ margin: 1.5rem !important;
1751
+ }
1752
+
1753
+ .m-5 {
1754
+ margin: 3rem !important;
1755
+ }
1756
+
1757
+ .mt-0 {
1758
+ margin-top: 0 !important;
1759
+ }
1760
+
1761
+ .mt-1 {
1762
+ margin-top: 0.25rem !important;
1763
+ }
1764
+
1765
+ .mt-2 {
1766
+ margin-top: 0.5rem !important;
1767
+ }
1768
+
1769
+ .mt-3 {
1770
+ margin-top: 1rem !important;
1771
+ }
1772
+
1773
+ .mt-4 {
1774
+ margin-top: 1.5rem !important;
1775
+ }
1776
+
1777
+ .mt-5 {
1778
+ margin-top: 3rem !important;
1779
+ }
1780
+
1781
+ .mb-0 {
1782
+ margin-bottom: 0 !important;
1783
+ }
1784
+
1785
+ .mb-1 {
1786
+ margin-bottom: 0.25rem !important;
1787
+ }
1788
+
1789
+ .mb-2 {
1790
+ margin-bottom: 0.5rem !important;
1791
+ }
1792
+
1793
+ .mb-3 {
1794
+ margin-bottom: 1rem !important;
1795
+ }
1796
+
1797
+ .mb-4 {
1798
+ margin-bottom: 1.5rem !important;
1799
+ }
1800
+
1801
+ .mb-5 {
1802
+ margin-bottom: 3rem !important;
1803
+ }
1804
+
1805
+ .ms-0 {
1806
+ margin-left: 0 !important;
1807
+ }
1808
+
1809
+ .ms-1 {
1810
+ margin-left: 0.25rem !important;
1811
+ }
1812
+
1813
+ .ms-2 {
1814
+ margin-left: 0.5rem !important;
1815
+ }
1816
+
1817
+ .ms-3 {
1818
+ margin-left: 1rem !important;
1819
+ }
1820
+
1821
+ .ms-4 {
1822
+ margin-left: 1.5rem !important;
1823
+ }
1824
+
1825
+ .ms-5 {
1826
+ margin-left: 3rem !important;
1827
+ }
1828
+
1829
+ .me-0 {
1830
+ margin-right: 0 !important;
1831
+ }
1832
+
1833
+ .me-1 {
1834
+ margin-right: 0.25rem !important;
1835
+ }
1836
+
1837
+ .me-2 {
1838
+ margin-right: 0.5rem !important;
1839
+ }
1840
+
1841
+ .me-3 {
1842
+ margin-right: 1rem !important;
1843
+ }
1844
+
1845
+ .me-4 {
1846
+ margin-right: 1.5rem !important;
1847
+ }
1848
+
1849
+ .me-5 {
1850
+ margin-right: 3rem !important;
1851
+ }
1852
+
1853
+ .my-0 {
1854
+ margin-top: 0 !important;
1855
+ margin-bottom: 0 !important;
1856
+ }
1857
+
1858
+ .mx-0 {
1859
+ margin-left: 0 !important;
1860
+ margin-right: 0 !important;
1861
+ }
1862
+
1863
+ .my-1 {
1864
+ margin-top: 0.25rem !important;
1865
+ margin-bottom: 0.25rem !important;
1866
+ }
1867
+
1868
+ .mx-1 {
1869
+ margin-left: 0.25rem !important;
1870
+ margin-right: 0.25rem !important;
1871
+ }
1872
+
1873
+ .my-2 {
1874
+ margin-top: 0.5rem !important;
1875
+ margin-bottom: 0.5rem !important;
1876
+ }
1877
+
1878
+ .mx-2 {
1879
+ margin-left: 0.5rem !important;
1880
+ margin-right: 0.5rem !important;
1881
+ }
1882
+
1883
+ .my-3 {
1884
+ margin-top: 1rem !important;
1885
+ margin-bottom: 1rem !important;
1886
+ }
1887
+
1888
+ .mx-3 {
1889
+ margin-left: 1rem !important;
1890
+ margin-right: 1rem !important;
1891
+ }
1892
+
1893
+ .my-4 {
1894
+ margin-top: 1.5rem !important;
1895
+ margin-bottom: 1.5rem !important;
1896
+ }
1897
+
1898
+ .mx-4 {
1899
+ margin-left: 1.5rem !important;
1900
+ margin-right: 1.5rem !important;
1901
+ }
1902
+
1903
+ .my-5 {
1904
+ margin-top: 3rem !important;
1905
+ margin-bottom: 3rem !important;
1906
+ }
1907
+
1908
+ .mx-5 {
1909
+ margin-left: 3rem !important;
1910
+ margin-right: 3rem !important;
1911
+ }
1912
+
1913
+ .p-0 {
1914
+ padding: 0 !important;
1915
+ }
1916
+
1917
+ .p-1 {
1918
+ padding: 0.25rem !important;
1919
+ }
1920
+
1921
+ .p-2 {
1922
+ padding: 0.5rem !important;
1923
+ }
1924
+
1925
+ .p-3 {
1926
+ padding: 1rem !important;
1927
+ }
1928
+
1929
+ .p-4 {
1930
+ padding: 1.5rem !important;
1931
+ }
1932
+
1933
+ .p-5 {
1934
+ padding: 3rem !important;
1935
+ }
1936
+
1937
+ .pt-0 {
1938
+ padding-top: 0 !important;
1939
+ }
1940
+
1941
+ .pt-1 {
1942
+ padding-top: 0.25rem !important;
1943
+ }
1944
+
1945
+ .pt-2 {
1946
+ padding-top: 0.5rem !important;
1947
+ }
1948
+
1949
+ .pt-3 {
1950
+ padding-top: 1rem !important;
1951
+ }
1952
+
1953
+ .pt-4 {
1954
+ padding-top: 1.5rem !important;
1955
+ }
1956
+
1957
+ .pt-5 {
1958
+ padding-top: 3rem !important;
1959
+ }
1960
+
1961
+ .pb-0 {
1962
+ padding-bottom: 0 !important;
1963
+ }
1964
+
1965
+ .pb-1 {
1966
+ padding-bottom: 0.25rem !important;
1967
+ }
1968
+
1969
+ .pb-2 {
1970
+ padding-bottom: 0.5rem !important;
1971
+ }
1972
+
1973
+ .pb-3 {
1974
+ padding-bottom: 1rem !important;
1975
+ }
1976
+
1977
+ .pb-4 {
1978
+ padding-bottom: 1.5rem !important;
1979
+ }
1980
+
1981
+ .pb-5 {
1982
+ padding-bottom: 3rem !important;
1983
+ }
1984
+
1985
+ .ps-0 {
1986
+ padding-left: 0 !important;
1987
+ }
1988
+
1989
+ .ps-1 {
1990
+ padding-left: 0.25rem !important;
1991
+ }
1992
+
1993
+ .ps-2 {
1994
+ padding-left: 0.5rem !important;
1995
+ }
1996
+
1997
+ .ps-3 {
1998
+ padding-left: 1rem !important;
1999
+ }
2000
+
2001
+ .ps-4 {
2002
+ padding-left: 1.5rem !important;
2003
+ }
2004
+
2005
+ .ps-5 {
2006
+ padding-left: 3rem !important;
2007
+ }
2008
+
2009
+ .pe-0 {
2010
+ padding-right: 0 !important;
2011
+ }
2012
+
2013
+ .pe-1 {
2014
+ padding-right: 0.25rem !important;
2015
+ }
2016
+
2017
+ .pe-2 {
2018
+ padding-right: 0.5rem !important;
2019
+ }
2020
+
2021
+ .pe-3 {
2022
+ padding-right: 1rem !important;
2023
+ }
2024
+
2025
+ .pe-4 {
2026
+ padding-right: 1.5rem !important;
2027
+ }
2028
+
2029
+ .pe-5 {
2030
+ padding-right: 3rem !important;
2031
+ }
2032
+
2033
+ .py-0 {
2034
+ padding-top: 0 !important;
2035
+ padding-bottom: 0 !important;
2036
+ }
2037
+
2038
+ .px-0 {
2039
+ padding-left: 0 !important;
2040
+ padding-right: 0 !important;
2041
+ }
2042
+
2043
+ .py-1 {
2044
+ padding-top: 0.25rem !important;
2045
+ padding-bottom: 0.25rem !important;
2046
+ }
2047
+
2048
+ .px-1 {
2049
+ padding-left: 0.25rem !important;
2050
+ padding-right: 0.25rem !important;
2051
+ }
2052
+
2053
+ .py-2 {
2054
+ padding-top: 0.5rem !important;
2055
+ padding-bottom: 0.5rem !important;
2056
+ }
2057
+
2058
+ .px-2 {
2059
+ padding-left: 0.5rem !important;
2060
+ padding-right: 0.5rem !important;
2061
+ }
2062
+
2063
+ .py-3 {
2064
+ padding-top: 1rem !important;
2065
+ padding-bottom: 1rem !important;
2066
+ }
2067
+
2068
+ .px-3 {
2069
+ padding-left: 1rem !important;
2070
+ padding-right: 1rem !important;
2071
+ }
2072
+
2073
+ .py-4 {
2074
+ padding-top: 1.5rem !important;
2075
+ padding-bottom: 1.5rem !important;
2076
+ }
2077
+
2078
+ .px-4 {
2079
+ padding-left: 1.5rem !important;
2080
+ padding-right: 1.5rem !important;
2081
+ }
2082
+
2083
+ .py-5 {
2084
+ padding-top: 3rem !important;
2085
+ padding-bottom: 3rem !important;
2086
+ }
2087
+
2088
+ .px-5 {
2089
+ padding-left: 3rem !important;
2090
+ padding-right: 3rem !important;
2091
+ }
2092
+
2093
+ .mx-auto {
2094
+ margin-left: auto !important;
2095
+ margin-right: auto !important;
2096
+ }
2097
+
2098
+ .text-start {
2099
+ text-align: left !important;
2100
+ }
2101
+
2102
+ .text-center {
2103
+ text-align: center !important;
2104
+ }
2105
+
2106
+ .text-end {
2107
+ text-align: right !important;
2108
+ }
2109
+
2110
+ .text-uppercase {
2111
+ text-transform: uppercase !important;
2112
+ }
2113
+
2114
+ .text-capitalize {
2115
+ text-transform: capitalize !important;
2116
+ }
2117
+
2118
+ .text-nowrap {
2119
+ white-space: nowrap !important;
2120
+ }
2121
+
2122
+ .text-truncate {
2123
+ overflow: hidden;
2124
+ text-overflow: ellipsis;
2125
+ white-space: nowrap;
2126
+ }
2127
+
2128
+ .fw-bold {
2129
+ font-weight: 700 !important;
2130
+ }
2131
+
2132
+ .fw-normal {
2133
+ font-weight: 400 !important;
2134
+ }
2135
+
2136
+ .fw-light {
2137
+ font-weight: 300 !important;
2138
+ }
2139
+
2140
+ .fs-1 {
2141
+ font-size: 2.25rem !important;
2142
+ }
2143
+
2144
+ .fs-2 {
2145
+ font-size: 1.875rem !important;
2146
+ }
2147
+
2148
+ .fs-3 {
2149
+ font-size: 1.5rem !important;
2150
+ }
2151
+
2152
+ .fs-4 {
2153
+ font-size: 1.25rem !important;
2154
+ }
2155
+
2156
+ .fs-5 {
2157
+ font-size: 1rem !important;
2158
+ }
2159
+
2160
+ .fs-6 {
2161
+ font-size: 0.875rem !important;
2162
+ }
2163
+
2164
+ .text-primary {
2165
+ color: #4a90d9 !important;
2166
+ }
2167
+
2168
+ .text-secondary {
2169
+ color: #6c757d !important;
2170
+ }
2171
+
2172
+ .text-success {
2173
+ color: #28a745 !important;
2174
+ }
2175
+
2176
+ .text-danger {
2177
+ color: #dc3545 !important;
2178
+ }
2179
+
2180
+ .text-warning {
2181
+ color: #ffc107 !important;
2182
+ }
2183
+
2184
+ .text-info {
2185
+ color: #17a2b8 !important;
2186
+ }
2187
+
2188
+ .text-light {
2189
+ color: #f8f9fa !important;
2190
+ }
2191
+
2192
+ .text-dark {
2193
+ color: #212529 !important;
2194
+ }
2195
+
2196
+ .text-muted {
2197
+ color: #6c757d !important;
2198
+ }
2199
+
2200
+ .text-white {
2201
+ color: #fff !important;
2202
+ }
2203
+
2204
+ .bg-primary {
2205
+ background-color: #4a90d9 !important;
2206
+ }
2207
+
2208
+ .bg-secondary {
2209
+ background-color: #6c757d !important;
2210
+ }
2211
+
2212
+ .bg-success {
2213
+ background-color: #28a745 !important;
2214
+ }
2215
+
2216
+ .bg-danger {
2217
+ background-color: #dc3545 !important;
2218
+ }
2219
+
2220
+ .bg-warning {
2221
+ background-color: #ffc107 !important;
2222
+ }
2223
+
2224
+ .bg-info {
2225
+ background-color: #17a2b8 !important;
2226
+ }
2227
+
2228
+ .bg-light {
2229
+ background-color: #f8f9fa !important;
2230
+ }
2231
+
2232
+ .bg-dark {
2233
+ background-color: #212529 !important;
2234
+ }
2235
+
2236
+ .bg-white {
2237
+ background-color: #fff !important;
2238
+ }
2239
+
2240
+ .border {
2241
+ border: 1px solid rgba(0, 0, 0, 0.1) !important;
2242
+ }
2243
+
2244
+ .border-0 {
2245
+ border: 0 !important;
2246
+ }
2247
+
2248
+ .rounded {
2249
+ border-radius: 0.25rem !important;
2250
+ }
2251
+
2252
+ .rounded-0 {
2253
+ border-radius: 0 !important;
2254
+ }
2255
+
2256
+ .rounded-circle {
2257
+ border-radius: 50% !important;
2258
+ }
2259
+
2260
+ .rounded-pill {
2261
+ border-radius: 50rem !important;
2262
+ }
2263
+
2264
+ .w-25 {
2265
+ width: 25% !important;
2266
+ }
2267
+
2268
+ .h-25 {
2269
+ height: 25% !important;
2270
+ }
2271
+
2272
+ .w-50 {
2273
+ width: 50% !important;
2274
+ }
2275
+
2276
+ .h-50 {
2277
+ height: 50% !important;
2278
+ }
2279
+
2280
+ .w-75 {
2281
+ width: 75% !important;
2282
+ }
2283
+
2284
+ .h-75 {
2285
+ height: 75% !important;
2286
+ }
2287
+
2288
+ .w-100 {
2289
+ width: 100% !important;
2290
+ }
2291
+
2292
+ .h-100 {
2293
+ height: 100% !important;
2294
+ }
2295
+
2296
+ .mw-100 {
2297
+ max-width: 100% !important;
2298
+ }
2299
+
2300
+ .mh-100 {
2301
+ max-height: 100% !important;
2302
+ }
2303
+
2304
+ .position-relative {
2305
+ position: relative !important;
2306
+ }
2307
+
2308
+ .position-absolute {
2309
+ position: absolute !important;
2310
+ }
2311
+
2312
+ .position-fixed {
2313
+ position: fixed !important;
2314
+ }
2315
+
2316
+ .position-sticky {
2317
+ position: sticky !important;
2318
+ }
2319
+
2320
+ .position-static {
2321
+ position: static !important;
2322
+ }
2323
+
2324
+ .visible {
2325
+ visibility: visible !important;
2326
+ }
2327
+
2328
+ .invisible {
2329
+ visibility: hidden !important;
2330
+ }
2331
+
2332
+ .overflow-hidden {
2333
+ overflow: hidden !important;
2334
+ }
2335
+
2336
+ .overflow-auto {
2337
+ overflow: auto !important;
2338
+ }
2339
+
2340
+ .shadow {
2341
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
2342
+ }
2343
+
2344
+ .shadow-sm {
2345
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
2346
+ }
2347
+
2348
+ .shadow-lg {
2349
+ box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
2350
+ }
2351
+
2352
+ .shadow-none {
2353
+ box-shadow: none !important;
2354
+ }
2355
+
2356
+ .collapse {
2357
+ display: none;
2358
+ }
2359
+
2360
+ .collapse.show {
2361
+ display: block;
2362
+ }
2363
+
2364
+ .fade {
2365
+ opacity: 0;
2366
+ transition: opacity 0.15s linear;
2367
+ }
2368
+
2369
+ .fade.show {
2370
+ opacity: 1;
2371
+ }
2372
+
2373
+ .clearfix::after {
2374
+ display: block;
2375
+ clear: both;
2376
+ content: "";
2377
+ }
2378
+
2379
+ .cursor-pointer {
2380
+ cursor: pointer !important;
2381
+ }
2382
+
2383
+ .btn-close {
2384
+ box-sizing: content-box;
2385
+ width: 1em;
2386
+ height: 1em;
2387
+ padding: 0.25em;
2388
+ color: #000;
2389
+ background: transparent;
2390
+ border: 0;
2391
+ opacity: 0.5;
2392
+ cursor: pointer;
2393
+ font-size: 1.25rem;
2394
+ line-height: 1;
2395
+ }
2396
+
2397
+ .btn-close:hover {
2398
+ opacity: 0.75;
2399
+ }
2400
+
2401
+ .btn-close:focus {
2402
+ opacity: 1;
2403
+ outline: 0;
2404
+ box-shadow: 0 0 0 0.2rem rgba(74, 144, 217, 0.25);
2405
+ }
2406
+
2407
+ .img-fluid {
2408
+ max-width: 100%;
2409
+ height: auto;
2410
+ }
2411
+
2412
+ .img-thumbnail {
2413
+ padding: 0.25rem;
2414
+ background-color: #fff;
2415
+ border: 1px solid rgba(0, 0, 0, 0.1);
2416
+ border-radius: 0.25rem;
2417
+ max-width: 100%;
2418
+ height: auto;
2419
+ }
2420
+
2421
+ .border-top {
2422
+ border-top: 1px solid rgba(0, 0, 0, 0.1) !important;
2423
+ }
2424
+
2425
+ .border-bottom {
2426
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
2427
+ }
2428
+
2429
+ .align-middle {
2430
+ vertical-align: middle !important;
2431
+ }
2432
+
2433
+ .align-top {
2434
+ vertical-align: top !important;
2435
+ }
2436
+
2437
+ .align-bottom {
2438
+ vertical-align: bottom !important;
2439
+ }
2440
+
2441
+ .float-start {
2442
+ float: left !important;
2443
+ }
2444
+
2445
+ .float-end {
2446
+ float: right !important;
2447
+ }
2448
+
2449
+ .float-none {
2450
+ float: none !important;
2451
+ }
2452
+
2453
+ .visually-hidden {
2454
+ position: absolute !important;
2455
+ width: 1px !important;
2456
+ height: 1px !important;
2457
+ padding: 0 !important;
2458
+ margin: -1px !important;
2459
+ overflow: hidden !important;
2460
+ clip: rect(0, 0, 0, 0) !important;
2461
+ white-space: nowrap !important;
2462
+ border: 0 !important;
2463
+ }