monopyly 1.4.7__py3-none-any.whl → 1.5.0__py3-none-any.whl

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 (75) hide show
  1. monopyly/CHANGELOG.md +15 -0
  2. monopyly/README.md +1 -1
  3. monopyly/__init__.py +3 -3
  4. monopyly/_version.py +2 -2
  5. monopyly/auth/actions.py +7 -2
  6. monopyly/banking/actions.py +51 -10
  7. monopyly/banking/routes.py +2 -1
  8. monopyly/cli/apps.py +26 -24
  9. monopyly/cli/{run.py → launch.py} +19 -8
  10. monopyly/common/forms/_forms.py +56 -2
  11. monopyly/common/transactions.py +162 -0
  12. monopyly/credit/actions.py +29 -0
  13. monopyly/credit/forms.py +25 -0
  14. monopyly/credit/routes.py +97 -7
  15. monopyly/credit/transactions/_transactions.py +15 -0
  16. monopyly/credit/transactions/activity/__init__.py +3 -0
  17. monopyly/credit/transactions/activity/data.py +161 -0
  18. monopyly/credit/transactions/activity/parser.py +274 -0
  19. monopyly/credit/transactions/activity/reconciliation.py +456 -0
  20. monopyly/database/models.py +6 -0
  21. monopyly/static/css/style.css +1146 -263
  22. monopyly/static/img/icons/statement-pair.png +0 -0
  23. monopyly/static/img/icons/statement-thick.png +0 -0
  24. monopyly/static/img/icons/statement.png +0 -0
  25. monopyly/static/js/bind-tag-actions.js +1 -1
  26. monopyly/static/js/create-balance-chart.js +1 -1
  27. monopyly/static/js/create-category-chart.js +27 -0
  28. monopyly/static/js/define-filter.js +1 -1
  29. monopyly/static/js/expand-transaction.js +10 -0
  30. monopyly/static/js/highlight-discrepant-transactions.js +124 -0
  31. monopyly/static/js/modules/expand-transaction.js +12 -3
  32. monopyly/static/js/modules/form-suggestions.js +60 -0
  33. monopyly/static/js/modules/manage-overlays.js +1 -3
  34. monopyly/static/js/show-credit-activity-loader.js +29 -0
  35. monopyly/static/js/toggle-navigation.js +35 -0
  36. monopyly/static/js/update-card-status.js +1 -1
  37. monopyly/static/js/use-suggested-amount.js +11 -0
  38. monopyly/static/js/use-suggested-merchant.js +11 -0
  39. monopyly/templates/banking/account_page.html +3 -1
  40. monopyly/templates/banking/account_summaries.html +1 -1
  41. monopyly/templates/banking/accounts_page.html +11 -15
  42. monopyly/templates/banking/transactions_table/expanded_row_content.html +18 -20
  43. monopyly/templates/common/transaction_form/subtransaction_subform.html +10 -1
  44. monopyly/templates/common/transactions_table/linked_bank_transaction.html +1 -1
  45. monopyly/templates/common/transactions_table/linked_credit_transaction.html +1 -1
  46. monopyly/templates/common/transactions_table/transaction_condensed.html +2 -2
  47. monopyly/templates/common/transactions_table/transaction_expanded.html +3 -3
  48. monopyly/templates/common/transactions_table/transactions.html +1 -1
  49. monopyly/templates/core/credits.html +10 -8
  50. monopyly/templates/core/index.html +10 -0
  51. monopyly/templates/core/profile.html +1 -1
  52. monopyly/templates/core/story.html +42 -27
  53. monopyly/templates/credit/statement_page.html +33 -0
  54. monopyly/templates/credit/statement_reconciliation/discrepant_records.html +25 -0
  55. monopyly/templates/credit/statement_reconciliation/statement_reconciliation_inquiry.html +23 -0
  56. monopyly/templates/credit/statement_reconciliation/statement_reconciliation_page.html +86 -0
  57. monopyly/templates/credit/statement_reconciliation/summary.html +45 -0
  58. monopyly/templates/credit/statement_reconciliation/unrecorded_activities.html +24 -0
  59. monopyly/templates/credit/statement_summary.html +2 -2
  60. monopyly/templates/credit/statements.html +1 -1
  61. monopyly/templates/credit/transaction_form/transaction_form.html +9 -1
  62. monopyly/templates/credit/transaction_form/transaction_form_page.html +2 -0
  63. monopyly/templates/credit/transaction_form/transaction_form_page_update.html +9 -0
  64. monopyly/templates/credit/transaction_submission_page.html +8 -0
  65. monopyly/templates/credit/transactions_table/expanded_row_content.html +18 -12
  66. monopyly/templates/layout.html +46 -29
  67. {monopyly-1.4.7.dist-info → monopyly-1.5.0.dist-info}/METADATA +3 -2
  68. {monopyly-1.4.7.dist-info → monopyly-1.5.0.dist-info}/RECORD +72 -56
  69. monopyly-1.5.0.dist-info/entry_points.txt +2 -0
  70. monopyly/static/img/icons/statement-pair.svg +0 -281
  71. monopyly/static/img/icons/statement.svg +0 -294
  72. monopyly-1.4.7.dist-info/entry_points.txt +0 -2
  73. {monopyly-1.4.7.dist-info → monopyly-1.5.0.dist-info}/WHEEL +0 -0
  74. {monopyly-1.4.7.dist-info → monopyly-1.5.0.dist-info}/licenses/COPYING +0 -0
  75. {monopyly-1.4.7.dist-info → monopyly-1.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -46,6 +46,12 @@ form {
46
46
  width: 50%;
47
47
  margin: auto;
48
48
  }
49
+ @media screen and (max-width: 600px) {
50
+ /* Mobile layout */
51
+ form {
52
+ width: 90%;
53
+ }
54
+ }
49
55
 
50
56
  input {
51
57
  color: inherit;
@@ -74,6 +80,7 @@ pre code {
74
80
  margin: 5px 0;
75
81
  padding: 10px 20px;
76
82
  border: 1px solid #eeeeee;
83
+ overflow: auto;
77
84
  }
78
85
 
79
86
  code {
@@ -98,7 +105,7 @@ header#masthead {
98
105
  border-style: solid;
99
106
  border-color: var(--moneytree-leaves);
100
107
  background-color: var(--masthead-color);
101
- opacity: 0.9;
108
+ opacity: 0.95;
102
109
  }
103
110
 
104
111
  #masthead a {
@@ -112,50 +119,193 @@ header#masthead {
112
119
  margin: 0 auto;
113
120
  }
114
121
 
122
+ @media screen and (max-width: 600px) {
123
+ /* Mobile layout */
124
+ #masthead .container a {
125
+ z-index: 98; /* ensure the logo is on top of the header menu */
126
+ }
127
+ }
128
+
115
129
  .monopyly-logo {
116
130
  margin: 0;
117
131
  color: white;
118
132
  font-size: 1.7em;
119
133
  text-transform: uppercase;
120
134
  }
135
+ @media screen and (max-width: 600px) {
136
+ /* Mobile layout */
137
+ .monopyly-logo {
138
+ font-size: 1.2em;
139
+ }
140
+ }
121
141
 
122
142
  .monopyly-logo:hover {
123
143
  filter: brightness(0.95);
124
144
  }
125
145
 
146
+ .monopyly-logo .development-mode {
147
+ font-weight: normal;
148
+ text-transform: none;
149
+ }
150
+ @media screen and (max-width: 600px) {
151
+ /* Mobile layout */
152
+ .monopyly-logo .development-mode {
153
+ font-size: 0.6em;
154
+ }
155
+ }
156
+
126
157
 
127
158
  /*
128
159
  * Display navigation links inline
129
160
  */
130
- #nav-menu {
161
+ #header-menu {
162
+ display: flex;
163
+ flex-direction: column;
131
164
  margin-left: auto;
132
165
  }
166
+ @media screen and (max-width: 600px) {
167
+ /* Mobile layout */
168
+ #header-menu {
169
+ position: fixed;
170
+ top: 0;
171
+ width: 90%;
172
+ align-items: flex-end;
173
+ z-index: 97;
174
+ }
175
+ }
176
+
177
+ #header-menu a.toggle-button {
178
+ display: none;
179
+ align-items: center;
180
+ height: var(--masthead-height);
181
+ }
182
+ @media screen and (max-width: 600px) {
183
+ /* Mobile layout */
184
+ #header-menu a.toggle-button {
185
+ display: flex;
186
+ }
187
+ }
188
+
189
+ @media screen and (max-width: 600px) {
190
+ /* Mobile layout */
191
+ #header-menu ul.menu-links {
192
+ display: none;
193
+ flex-direction: column;
194
+ list-style-type: none;
195
+ width: min-content;
196
+ margin: 0;
197
+ padding: 0;
198
+ border-top: 3px solid var(--moneytree-leaves);
199
+ }
200
+ }
133
201
 
134
- #nav-menu li {
202
+ #header-menu li {
135
203
  display: inline;
136
204
  }
205
+ @media screen and (max-width: 600px) {
206
+ /* Mobile layout */
207
+ #header-menu li {
208
+ padding: 15px 25px;
209
+ border-bottom: 1px solid gray;
210
+ border-right: 2px solid gray;
211
+ border-left: 1px solid gray;
212
+ background-color: var(--masthead-color);
213
+ font-weight: bold;
214
+ white-space: nowrap;
215
+ letter-spacing: 0.25px;
216
+ }
217
+ #header-menu li:last-of-type {
218
+ padding-bottom: 15px;
219
+ border-bottom: 2px solid gray;
220
+ }
221
+ }
137
222
 
138
- #nav-menu li + li {
223
+ #header-menu li + li {
139
224
  margin-left: 35px;
140
225
  }
226
+ @media screen and (max-width: 600px) {
227
+ /* Mobile layout */
228
+ #header-menu li + li {
229
+ margin-left: 0;
230
+ }
231
+ }
141
232
 
142
- #nav-menu li a {
233
+ #header-menu li a {
143
234
  color: #bbbbbb;
144
235
  }
145
236
 
146
- #nav-menu li a:hover {
237
+ #header-menu li a:hover {
147
238
  color: #cdcdcd;
148
239
  }
149
240
 
150
- #nav-menu li .username {
241
+ #header-menu li .username {
151
242
  color: #777777;
152
243
  }
153
244
 
154
- #nav-menu li .username:hover {
245
+ #header-menu li .username:hover {
155
246
  color: var(--moneytree-leaves);
156
247
  }
157
248
 
158
249
 
250
+ /*
251
+ * Style the mobile icon for toggling the mobile header navigation menu
252
+ */
253
+ .mobile-menu {
254
+ display: none;
255
+ width: 50px;
256
+ user-select: none;
257
+ cursor: pointer;
258
+ transition: transform 300ms;
259
+ }
260
+ @media screen and (max-width: 600px) {
261
+ /* Mobile layout */
262
+ .mobile-menu {
263
+ display: block;
264
+ }
265
+ }
266
+
267
+ .mobile-menu-rotate.active {
268
+ transform: rotate(45deg);
269
+ }
270
+
271
+ .line {
272
+ fill: none;
273
+ transition: stroke-dasharray 300ms, stroke-dashoffset 300ms;
274
+ stroke: white;
275
+ stroke-width: 5.5;
276
+ stroke-linecap: round;
277
+ }
278
+
279
+ .mobile-menu .top {
280
+ stroke-dasharray: 40 160;
281
+ }
282
+
283
+ .mobile-menu .middle {
284
+ stroke-dasharray: 40 142;
285
+ transform-origin: 50%;
286
+ transition: transform 300ms;
287
+ }
288
+
289
+ .mobile-menu .bottom {
290
+ stroke-dasharray: 40 85;
291
+ transform-origin: 50%;
292
+ transition: transform 300ms, stroke-dashoffset 300ms;
293
+ }
294
+
295
+ .mobile-menu.active .top {
296
+ stroke-dashoffset: -64px;
297
+ }
298
+
299
+ .mobile-menu.active .middle {
300
+ //stroke-dashoffset: -20px;
301
+ transform: rotate(90deg);
302
+ }
303
+
304
+ .mobile-menu.active .bottom {
305
+ stroke-dashoffset: -64px;
306
+ }
307
+
308
+
159
309
  /*
160
310
  * Create a footer with site information
161
311
  */
@@ -168,6 +318,12 @@ footer#site-info {
168
318
  font-size: 9pt;
169
319
  text-align: center;
170
320
  }
321
+ @media screen and (max-width: 600px) {
322
+ /* Mobile layout */
323
+ #site-info p {
324
+ font-size: 8pt;
325
+ }
326
+ }
171
327
 
172
328
  #site-info span {
173
329
  padding: 0 5px;
@@ -188,6 +344,13 @@ footer#site-info {
188
344
  #page .container {
189
345
  width: 80%;
190
346
  }
347
+ @media screen and (max-width: 600px) {
348
+ /* Mobile layout */
349
+ #page .container {
350
+ width: 90%;
351
+ margin: auto;
352
+ }
353
+ }
191
354
 
192
355
  aside.sidebar {
193
356
  display: flex;
@@ -198,6 +361,12 @@ aside.sidebar {
198
361
  min-width: 50px;
199
362
  margin-top: 50px; /* account for content header */
200
363
  }
364
+ @media screen and (max-width: 600px) {
365
+ /* Mobile layout */
366
+ aside.sidebar {
367
+ display: none;
368
+ }
369
+ }
201
370
 
202
371
  #content-header h1 {
203
372
  height: 50px;
@@ -209,21 +378,44 @@ aside.sidebar {
209
378
  font-size: 2em;
210
379
  letter-spacing: -2px;
211
380
  }
212
-
213
- #content-header h1.error {
214
- text-align: left;
381
+ @media screen and (max-width: 600px) {
382
+ /* Mobile layout */
383
+ #content-header h1 {
384
+ font-size: 1.8em;
385
+ }
215
386
  }
216
387
 
217
388
 
218
389
  /*
219
390
  * Provide styles for error pages
220
391
  */
221
- .error span.code {
392
+ #content-header h1.error {
393
+ text-align: left;
394
+ }
395
+ @media screen and (max-width: 600px) {
396
+ /* Mobile layout */
397
+ #content-header h1.error {
398
+ height: 100px;
399
+ font-size: 2em;
400
+ }
401
+ }
402
+
403
+ #content-header h1.error span.code {
222
404
  margin-left: 30px;
223
405
  color: var(--silver-dollar);
224
406
  font-weight: 300;
225
407
  letter-spacing: 1px;
226
408
  }
409
+ @media screen and (max-width: 600px) {
410
+ /* Mobile layout */
411
+ #content-header h1.error span.code {
412
+ display: block;
413
+ height: 30px;
414
+ margin-top: 15px;
415
+ margin-left: 0;
416
+ font-size: 0.75em;
417
+ }
418
+ }
227
419
 
228
420
  .custom-error-content p {
229
421
  font-size: 18pt;
@@ -264,7 +456,6 @@ aside.sidebar {
264
456
  }
265
457
 
266
458
  .button-block {
267
- margin: 15px 0;
268
459
  border: 1px solid var(--border-gray);
269
460
  border-radius: 10px;
270
461
  box-shadow: 1px 1px 3px #bbbbbb;
@@ -273,14 +464,6 @@ aside.sidebar {
273
464
  color: inherit;
274
465
  }
275
466
 
276
- .button-block:first-of-type {
277
- margin-top: 0;
278
- }
279
-
280
- .button-block:last-of-type {
281
- margin-bottom: 0;
282
- }
283
-
284
467
  .button-block:hover {
285
468
  filter: brightness(0.98);
286
469
  text-decoration: none;
@@ -290,6 +473,13 @@ aside.sidebar {
290
473
  color: inherit;
291
474
  }
292
475
 
476
+ .highlight {
477
+ background-color: #fff9ee;
478
+ background-image: linear-gradient(135deg, #ffffff, 15%, #fff9ee, 85%, #ffffff);
479
+ color: sienna;
480
+ font-weight: 500;
481
+ }
482
+
293
483
  .screenshot {
294
484
  width: 100%; /* override the markdown default */
295
485
  margin: 20px 0;
@@ -298,10 +488,10 @@ aside.sidebar {
298
488
  }
299
489
 
300
490
  .group-stack {
301
- margin: 15px 10px 25px;
302
491
  padding: 20px 30px;
303
492
  border-radius: 15px;
304
493
  box-shadow: 0 0 20px #eeeeee;
494
+ box-sizing: border-box;
305
495
  background-color: #eef5eb;
306
496
  }
307
497
 
@@ -321,6 +511,12 @@ aside.sidebar {
321
511
  font-weight: 400;
322
512
  }
323
513
 
514
+ .group-stack .stack-buttons {
515
+ display: flex;
516
+ flex-direction: column;
517
+ gap: 15px;
518
+ }
519
+
324
520
  .paid-notice {
325
521
  color: var(--moneytree-leaves);
326
522
  font-weight: bold;
@@ -351,7 +547,7 @@ aside.sidebar {
351
547
  height: 100%;
352
548
  width: 100%;
353
549
  background-color: rgba(0, 0, 0, 0.75);
354
- z-index: 10;
550
+ z-index: 50; /* in front of content, but behind the header */
355
551
  }
356
552
 
357
553
  .modal {
@@ -373,25 +569,17 @@ aside.sidebar {
373
569
  /*
374
570
  * Style forms
375
571
  */
376
- form.transaction {
377
- min-width: 300px;
378
- }
379
-
380
572
  form .form-line {
381
573
  display: flex;
382
574
  justify-content: space-between;
575
+ flex-wrap: wrap;
576
+ column-gap: 5px;;
383
577
  }
384
578
 
385
579
  form .form-field {
386
- margin-left: 0;
387
580
  flex-grow: 1;
388
581
  }
389
582
 
390
- form .form-line .form-field ~ .form-field {
391
- /* Only set margin for fields other than the first on a line */
392
- margin-left: 5px;
393
- }
394
-
395
583
  form .add-info.buttons {
396
584
  margin: 20px 0;
397
585
  }
@@ -410,9 +598,15 @@ form .add-info.button {
410
598
 
411
599
  form label {
412
600
  display: block;
413
- padding: 10px 0;
601
+ margin: 15px 0 7.5px;
414
602
  font-size: 1.1em;
415
603
  }
604
+ @media screen and (max-width: 600px) {
605
+ /* Mobile layout */
606
+ form label {
607
+ font-size: 0.8em;
608
+ }
609
+ }
416
610
 
417
611
  form button,
418
612
  form input,
@@ -470,6 +664,13 @@ form button .icon {
470
664
  margin: 0 10px;
471
665
  filter: brightness(0.8);
472
666
  }
667
+ @media screen and (max-width: 600px) {
668
+ /* Mobile layout */
669
+ form button .icon {
670
+ height: 30px;
671
+ width: 30px;
672
+ }
673
+ }
473
674
 
474
675
  form button.dark-background .icon {
475
676
  filter: brightness(1.2);
@@ -508,9 +709,28 @@ form .subform .close.button {
508
709
  /*
509
710
  * Style transaction forms
510
711
  */
712
+ form.transaction {
713
+ min-width: 300px;
714
+ }
715
+
716
+ form.transaction div.form-suggestion {
717
+ margin: 5px 0 ;
718
+ color: #999999;
719
+ font-size: 11pt;
720
+ }
721
+
722
+ form.transaction div.form-suggestion .suggested-value {
723
+ font-weight: bold;
724
+ }
725
+
726
+ form.transaction div.form-suggestion .suggested-value:hover {
727
+ color: var(--moneytree-leaves);
728
+ cursor: pointer;
729
+ }
730
+
511
731
  form .subtotal-field {
512
732
  flex: 1;
513
- min-width: 100px;
733
+ min-width: 125px;
514
734
  }
515
735
 
516
736
  form .subtotal-field input.currency {
@@ -546,7 +766,7 @@ form .autocomplete-box {
546
766
  position: absolute;
547
767
  top: 98%;
548
768
  left: 0;
549
- z-index: 99;
769
+ z-index: 40; /* in front of most content, but behind the header */
550
770
  width: 100%;
551
771
  padding-right: 10px;
552
772
  border: 1px solid var(--silver-dollar);
@@ -589,7 +809,6 @@ form .autocomplete-box .item.active {
589
809
  .sidebar-menu div:first-of-type {
590
810
  margin-top: 5px;
591
811
  }
592
-
593
812
  .sidebar-menu div:last-of-type {
594
813
  margin-bottom: 5px;
595
814
  }
@@ -848,16 +1067,45 @@ form .autocomplete-box .item.active {
848
1067
  }
849
1068
 
850
1069
  .box-table .box-row {
1070
+ padding: 10px;
851
1071
  border-top: 0.5px solid var(--border-gray);
852
1072
  border-bottom: 0.5px solid var(--border-gray);
853
1073
  background-color: #f5f5f5;
854
1074
  }
1075
+ @media screen and (max-width: 600px) {
1076
+ /* Mobile layout */
1077
+ .box-table .box-row {
1078
+ font-size: 0.8em;
1079
+ }
1080
+ }
855
1081
 
856
- .box-table .box-row:hover {
1082
+ .box-table .box-row.action:hover {
857
1083
  cursor: pointer;
858
1084
  filter: brightness(0.98);
859
1085
  }
860
1086
 
1087
+ .box-table .box-header {
1088
+ margin: 0;
1089
+ padding: 10px;
1090
+ border-bottom: 2px solid var(--border-gray);
1091
+ }
1092
+ @media screen and (max-width: 600px) {
1093
+ /* Mobile layout */
1094
+ .box-table .box-header {
1095
+ font-size: 1.2em;
1096
+ }
1097
+ }
1098
+
1099
+ .group-stack .box-table .box-row {
1100
+ padding: 25px 30px;
1101
+ }
1102
+ @media screen and (max-width: 600px) {
1103
+ /* Mobile layout */
1104
+ .group-stack .box-table .box-row {
1105
+ padding: 15px 30px;
1106
+ }
1107
+ }
1108
+
861
1109
 
862
1110
  /*
863
1111
  * Style the card filter
@@ -865,12 +1113,13 @@ form .autocomplete-box .item.active {
865
1113
  #card-filter {
866
1114
  display: flex;
867
1115
  justify-content: center;
1116
+ flex-wrap: wrap;
1117
+ gap: 8px 4px;
868
1118
  margin-bottom: 20px;
869
1119
  }
870
1120
 
871
1121
  #card-filter .card {
872
1122
  position: relative;
873
- margin: 0 3px;
874
1123
  padding: 1px 10px;
875
1124
  border-radius: 10px;
876
1125
  background-color: #eeeeee;
@@ -1029,6 +1278,12 @@ form .autocomplete-box .item.active {
1029
1278
  color: #666666;
1030
1279
  font-size: 12pt;
1031
1280
  }
1281
+ @media screen and (max-width: 600px) {
1282
+ /* Mobile layout */
1283
+ .transaction .description {
1284
+ font-size: 11pt;
1285
+ }
1286
+ }
1032
1287
 
1033
1288
  .transaction .description-header {
1034
1289
  display: flex;
@@ -1061,9 +1316,25 @@ form .autocomplete-box .item.active {
1061
1316
 
1062
1317
  .transactions-table .row {
1063
1318
  display: flex;
1064
- height: 100%;
1065
- width: 100%;
1066
1319
  align-items: center;
1320
+ border-top: 0px solid var(--border-gray);
1321
+ border-bottom: 1px solid var(--border-gray);;
1322
+ }
1323
+
1324
+ .transactions-table .transaction.row {
1325
+ flex-direction: column;
1326
+ transition: border-bottom 0.2s ease,
1327
+ border-top 0.2s ease;
1328
+ }
1329
+
1330
+ .transactions-table .selected.transaction.row {
1331
+ /*Make top & bottom borders approximately the same size */
1332
+ border-top: 2px solid var(--border-gray);
1333
+ border-bottom: 3px solid var(--border-gray);
1334
+ }
1335
+
1336
+ .transactions-table .future.transaction.row {
1337
+ color: #aaaaaa;
1067
1338
  }
1068
1339
 
1069
1340
  /* Define a region with row content (separate from actions/buttons) */
@@ -1081,50 +1352,74 @@ form .autocomplete-box .item.active {
1081
1352
  box-sizing: border-box;
1082
1353
  margin: 0 10px;
1083
1354
  }
1084
-
1085
- .transactions-table .date.column {
1086
- flex: 1;
1087
- min-width: 100px;
1088
- text-align: center;
1355
+ .transactions-table .column:first-of-type {
1356
+ margin-left: 30px;
1089
1357
  }
1090
-
1091
- .transactions-table .merchant.column {
1092
- flex: 3;
1093
- min-width: 180px;
1358
+ @media screen and (max-width: 600px) {
1359
+ /* Mobile layout */
1360
+ .transactions-table .column {
1361
+ margin: 0 5px;
1362
+ }
1363
+ .transactions-table .column:first-of-type {
1364
+ margin-left: 20px;
1365
+ }
1094
1366
  }
1095
1367
 
1096
- .transactions-table .balance.column,
1097
- .transactions-table .amount.column {
1098
- flex: 1;
1099
- text-align: right;
1368
+ .transactions-table .text.column {
1100
1369
  white-space: nowrap;
1370
+ overflow: hidden;
1371
+ text-overflow: ellipsis;
1101
1372
  }
1102
1373
 
1103
- .transactions-table .amount.column {
1104
- min-width: 100px;
1374
+ .transactions-table .date.column {
1375
+ width: 80px;
1376
+ min-width: 80px;
1105
1377
  }
1106
1378
 
1107
- .transactions-table .balance.column {
1108
- min-width: 80px;
1379
+ .transactions-table .merchant.column {
1380
+ flex: 6;
1381
+ min-width: 180px;
1382
+ }
1383
+ @media screen and (max-width: 600px) {
1384
+ /* Mobile layout */
1385
+ .transactions-table .merchant.column {
1386
+ min-width: 100px;
1387
+ }
1109
1388
  }
1110
1389
 
1111
1390
  .transactions-table .notes.column {
1112
- flex: 4;
1113
- min-width: 175px;
1114
- white-space: nowrap;
1115
- overflow: hidden;
1391
+ flex: 9;
1392
+ min-width: 100px;
1116
1393
  }
1117
- @media screen and (max-width: 1000px) {
1394
+ @media screen and (max-width: 600px) {
1118
1395
  /* Mobile layout */
1119
1396
  .transactions-table .notes.column {
1120
1397
  display: none;
1121
1398
  }
1122
1399
  }
1123
1400
 
1124
- .transactions-table .notes.column:hover {
1125
- overflow: auto;
1401
+
1402
+ .transactions-table .amount.column {
1403
+ flex: 3;
1404
+ min-width: 80px;
1405
+ }
1406
+ @media screen and (max-width: 600px) {
1407
+ /* Mobile layout */
1408
+ .transactions-table .amount.column {
1409
+ min-width: 80px;
1410
+ }
1411
+ }
1412
+
1413
+ .transactions-table .balance.column {
1414
+ flex: 1;
1415
+ min-width: 80px;
1126
1416
  }
1127
1417
 
1418
+ .transactions-table .balance.column,
1419
+ .transactions-table .amount.column {
1420
+ text-align: right;
1421
+ white-space: nowrap;
1422
+ }
1128
1423
 
1129
1424
  .transactions-table .card.column {
1130
1425
  flex: 1;
@@ -1138,16 +1433,21 @@ form .autocomplete-box .item.active {
1138
1433
  margin-left: auto;
1139
1434
  }
1140
1435
  }
1436
+ @media screen and (max-width: 600px) {
1437
+ /* Mobile layout */
1438
+ .transactions-table .card.column {
1439
+ display: none;
1440
+ }
1441
+ }
1141
1442
 
1142
1443
  .transactions-table .buttons.column {
1143
- min-width: 40px;
1144
- margin: 0 0 0 20px;
1145
- padding: 5px 10px;
1444
+ width: 20px;
1146
1445
  }
1147
-
1148
- .transactions-table .titles,
1149
- .transactions-table .transaction {
1150
- border-bottom: 1px solid var(--border-gray);
1446
+ @media screen and (max-width: 600px) {
1447
+ /* Mobile layout */
1448
+ .transactions-table .buttons.column {
1449
+ display: none;
1450
+ }
1151
1451
  }
1152
1452
 
1153
1453
  .transactions-table .titles {
@@ -1166,35 +1466,20 @@ form .autocomplete-box .item.active {
1166
1466
  display: inline;
1167
1467
  }
1168
1468
 
1169
- .transactions-table .transaction {
1469
+ .transactions-table .transaction .buttons {
1170
1470
  display: flex;
1171
1471
  flex-direction: column;
1172
- width: 100%;
1173
- transition: border 0.2s ease;
1472
+ visibility: hidden;
1174
1473
  }
1175
-
1176
- .transactions-table .transaction.future {
1177
- color: #aaaaaa;
1474
+ .transactions-table .transaction:hover .buttons {
1475
+ z-index: 10;
1476
+ visibility: visible;
1178
1477
  }
1179
-
1180
- .transactions-table .transaction .condensed {
1181
- height: 25px;
1182
- transition: background-color 0.1s ease;
1183
- }
1184
-
1185
- .transactions-table .transaction .condensed:hover {
1186
- background-color: #fafafa;
1187
- }
1188
-
1189
- .transactions-table .transaction .buttons {
1190
- display: flex;
1191
- flex-direction: column;
1192
- visibility: hidden;
1193
- }
1194
-
1195
- .transactions-table .transaction:hover .buttons {
1196
- z-index: 99;
1197
- visibility: visible;
1478
+ @media screen and (max-width: 600px) {
1479
+ /* Mobile layout */
1480
+ .transactions-table .transaction .buttons {
1481
+ display: none;
1482
+ }
1198
1483
  }
1199
1484
 
1200
1485
  .transactions-table .transaction .button {
@@ -1220,138 +1505,175 @@ form .autocomplete-box .item.active {
1220
1505
  }
1221
1506
  }
1222
1507
 
1223
- .transactions-table .selected.transaction {
1224
- /*Make top & bottom borders approximately the same size */
1225
- border-width: 3px;
1226
- border-top: 2px solid #eeeeee;
1508
+ .transactions-table .transaction .transaction-info {
1509
+ display: flex;
1510
+ flex-grow: 1;
1511
+ min-width: 0; /* allow the info (columns) to collapse */
1512
+ }
1513
+
1514
+ .transactions-table .transaction .condensed {
1515
+ height: 25px;
1516
+ width: 100%;
1517
+ transition: background-color 0.1s ease;
1518
+ }
1519
+ @media screen and (max-width: 600px) {
1520
+ /* Mobile layout */
1521
+ .transactions-table .transaction .condensed {
1522
+ height: 30px;
1523
+ }
1524
+ }
1525
+
1526
+ .transactions-table .transaction .condensed:hover {
1527
+ background-color: #fafafa;
1227
1528
  }
1228
1529
 
1229
1530
  .transactions-table .transaction .expanded {
1230
1531
  display: none;
1532
+ width: 100%;
1231
1533
  opacity: 0;
1232
1534
  }
1535
+ @media screen and (max-width: 600px) {
1536
+ /* Mobile layout */
1537
+ .transactions-table .transaction .expanded {
1538
+ margin: 5px 0 5px 0;
1539
+ }
1540
+ }
1233
1541
 
1234
- .transactions-table .transaction .expanded .row {
1235
- align-items: flex-start;
1542
+ .transactions-table .transaction .expanded .row-content {
1543
+ margin: 5px 0;
1236
1544
  }
1237
1545
 
1238
- .transactions-table .expanded .row-content {
1239
- align-items: flex-start;
1240
- margin: 20px 0;
1546
+ .transactions-table .transaction .expanded .transaction-info {
1547
+ margin: 10px 0;
1548
+ }
1549
+
1550
+ .transactions-table .transaction .expanded .setting {
1551
+ display: flex;
1552
+ flex: 15;
1241
1553
  }
1242
1554
  @media screen and (max-width: 1000px) {
1243
- .transactions-table .expanded .row-content {
1244
- margin-left: 28px;
1555
+ .transactions-table .transaction .expanded .setting {
1556
+ flex-direction: column
1245
1557
  }
1246
1558
  }
1247
1559
 
1560
+ .transactions-table .transaction .expanded .setting.column {
1561
+ margin: 0;
1562
+ }
1248
1563
  @media screen and (max-width: 1000px) {
1249
- .transactions-table .expanded .date.column {
1250
- margin: 0;
1564
+ .transactions-table .transaction .expanded .setting.column {
1565
+ margin: 0 10px 0 30px; /* revert to behaving like a normal column */
1566
+ }
1567
+ }
1568
+ @media screen and (max-width: 600px) {
1569
+ /* Mobile layout */
1570
+ .transactions-table .transaction .expanded .setting.column {
1571
+ margin-left: 20px; /* revert to behaving like a normal column */
1251
1572
  }
1252
1573
  }
1253
1574
 
1254
- .transactions-table .expanded .setting {
1255
- display: flex;
1256
- flex: 3;
1575
+ .transactions-table .transaction .expanded .date.column {
1576
+ font-weight: bold;
1257
1577
  }
1258
1578
  @media screen and (max-width: 1000px) {
1259
- /* Mobile layout */
1260
- .transactions-table .expanded .setting {
1261
- flex-direction: column;
1262
- align-items: flex-start;
1263
- flex: 9;
1579
+ .transactions-table .transaction .expanded .date.column {
1580
+ margin-left: 0;
1581
+ margin-bottom: 5px;
1264
1582
  }
1265
1583
  }
1266
1584
 
1267
- .transactions-table .expanded .setting .date {
1585
+ .transactions-table .transaction .expanded .stacked-date {
1268
1586
  display: flex;
1269
1587
  flex-direction: column;
1270
1588
  justify-content: center;
1271
1589
  align-items: center;
1272
- flex: 2;
1273
- padding-top: 3px;
1590
+ width: min-content;
1591
+ margin-left: 5px;
1274
1592
  font-weight: bold;
1275
1593
  }
1276
1594
  @media screen and (max-width: 1000px) {
1277
- /* Mobile layout */
1278
- .transactions-table .expanded .setting .date {
1279
- align-items: flex-start;
1595
+ .transactions-table .transaction .expanded .stacked-date {
1596
+ margin-left: 0;
1280
1597
  }
1281
1598
  }
1282
1599
 
1283
1600
  @media screen and (max-width: 1000px) {
1284
- /* Mobile layout */
1285
- .transactions-table .expanded .setting .date .month,
1286
- .transactions-table .expanded .setting .date .day,
1287
- .transactions-table .expanded .setting .date .year {
1601
+ .transactions-table .transaction .expanded .date .month,
1602
+ .transactions-table .transaction .expanded .date .day,
1603
+ .transactions-table .transaction .expanded .date .year {
1288
1604
  display: none;
1289
1605
  }
1290
1606
  }
1291
1607
 
1292
- .transactions-table .expanded .setting .date .month {
1608
+ .transactions-table .transaction .expanded .date .month {
1293
1609
  margin-bottom: -10px;
1294
1610
  font-size: 18pt;
1295
1611
  }
1296
1612
 
1297
- .transactions-table .expanded .setting .date .day {
1613
+ .transactions-table .transaction .expanded .date .day {
1298
1614
  font-size: 36pt;
1299
1615
  }
1300
1616
 
1301
- .transactions-table .expanded .setting .date .year {
1617
+ .transactions-table .transaction .expanded .date .year {
1302
1618
  margin-top: -10px;
1303
1619
  font-size: 14pt;
1304
1620
  letter-spacing: 3px;
1305
1621
  }
1306
1622
 
1307
- .transactions-table .expanded .setting .date .full {
1623
+ .transactions-table .transaction .expanded .date .full-date {
1308
1624
  display: none;
1309
1625
  color: #aaaaaa;
1310
1626
  font-size: 1.1em;
1311
1627
  }
1312
1628
  @media screen and (max-width: 1000px) {
1313
- /* Mobile layout */
1314
- .transactions-table .expanded .setting .date .full {
1629
+ .transactions-table .transaction .expanded .date .full-date {
1315
1630
  display: block;
1316
1631
  }
1317
1632
  }
1318
1633
 
1319
- .transactions-table .expanded .setting .description {
1320
- flex: 13;
1321
- min-width: 250px;
1634
+ .transactions-table .transaction .expanded .description {
1635
+ display: flex;
1636
+ flex-direction: column;
1637
+ flex: 1;
1638
+ min-width: 200px;
1322
1639
  }
1640
+
1323
1641
  @media screen and (max-width: 1000px) {
1324
- /* Mobile layout */
1325
- .transactions-table .expanded .setting .description {
1326
- width: 95%;
1327
- margin-top: 5px;
1642
+ .transactions-table .transaction .expanded .description.column {
1643
+ margin: 0;
1328
1644
  }
1329
1645
  }
1330
1646
 
1331
- .transactions-table .transaction .expanded .setting .description-header {
1647
+ .transactions-table .transaction .expanded .description .description-header {
1332
1648
  transition: font-size 0.3s;
1333
1649
  }
1334
1650
  @media screen and (max-width: 1200px) {
1335
1651
  /* Statement disappear */
1336
- .transactions-table .transaction .expanded .setting .description-header {
1652
+ .transactions-table .transaction .expanded .description .description-header {
1337
1653
  font-size: 22pt;
1338
1654
  }
1339
1655
  }
1340
1656
  @media screen and (max-width: 1050px) {
1341
- /* Disable transitions for mobile switch */
1342
- .transactions-table .transaction .expanded .setting .description-header {
1657
+ /* Disable transitions for reduced view */
1658
+ .transactions-table .transaction .expanded .description .description-header {
1343
1659
  transition: all 0s;
1344
1660
  }
1345
1661
  }
1346
1662
  @media screen and (max-width: 1000px) {
1347
- /* Mobile layout */
1348
- .transactions-table .transaction .expanded .setting .description-header {
1663
+ /* Condensed layout */
1664
+ .transactions-table .transaction .expanded .description .description-header {
1349
1665
  font-size: 20pt;
1350
1666
  }
1351
1667
  }
1668
+ @media screen and (max-width: 600px) {
1669
+ /* Mobile layout */
1670
+ .transactions-table .transaction .expanded .description .description-header {
1671
+ font-size: 14pt;
1672
+ }
1673
+ }
1352
1674
 
1353
- .transactions-table .transaction .expanded .setting .description-header .merchant,
1354
- .transactions-table .transaction .expanded .setting .description-header .brief {
1675
+ .transactions-table .transaction .expanded .description .description-header .merchant,
1676
+ .transactions-table .transaction .expanded .description .description-header .brief {
1355
1677
  flex: 4;
1356
1678
  box-sizing: border-box;
1357
1679
  padding-right: 10px;
@@ -1368,6 +1690,12 @@ form .autocomplete-box .item.active {
1368
1690
  flex: 4;
1369
1691
  padding-right: 10px;
1370
1692
  }
1693
+ @media screen and (max-width: 600px) {
1694
+ /* Mobile layout */
1695
+ .transactions-table .transaction .expanded .setting .subtransaction-details .notes {
1696
+ padding-right: 15px;
1697
+ }
1698
+ }
1371
1699
 
1372
1700
  .transactions-table .transaction .expanded .setting .subtransaction-details .subtotal {
1373
1701
  flex: 1;
@@ -1400,9 +1728,8 @@ form .autocomplete-box .item.active {
1400
1728
  display: flex;
1401
1729
  justify-content: space-between;
1402
1730
  align-items: flex-start;
1403
- flex: 1;
1731
+ flex: 5;
1404
1732
  height: 100%;
1405
- padding-right: 10px;
1406
1733
  }
1407
1734
  @media screen and (max-width: 1200px) {
1408
1735
  /* Statement disappear */
@@ -1411,7 +1738,7 @@ form .autocomplete-box .item.active {
1411
1738
  }
1412
1739
  }
1413
1740
  @media screen and (max-width: 1000px) {
1414
- /* Mobile layout */
1741
+ /* Condensed layout */
1415
1742
  .transactions-table .transaction .expanded .payment {
1416
1743
  flex-direction: column;
1417
1744
  justify-content: center;
@@ -1420,6 +1747,12 @@ form .autocomplete-box .item.active {
1420
1747
  margin-top: 15px;
1421
1748
  }
1422
1749
  }
1750
+ @media screen and (max-width: 600px) {
1751
+ /* Mobile layout */
1752
+ .transactions-table .transaction .expanded .payment {
1753
+ margin-top: 30px;
1754
+ }
1755
+ }
1423
1756
 
1424
1757
  .transactions-table .transaction .expanded .payment .statement {
1425
1758
  position: relative;
@@ -1505,11 +1838,17 @@ form .autocomplete-box .item.active {
1505
1838
  }
1506
1839
  }
1507
1840
  @media screen and (max-width: 1000px) {
1508
- /* Mobile layout */
1841
+ /* Condensed layout */
1509
1842
  .transactions-table .transaction .expanded .payment .card {
1510
1843
  height: 50px;
1511
1844
  }
1512
1845
  }
1846
+ @media screen and (max-width: 600px) {
1847
+ /* Mobile layout */
1848
+ .transactions-table .transaction .expanded .payment .card {
1849
+ height: 30px;
1850
+ }
1851
+ }
1513
1852
 
1514
1853
  .transactions-table .transaction .expanded .payment .card .card-background {
1515
1854
  height: 100%;
@@ -1542,7 +1881,7 @@ form .autocomplete-box .item.active {
1542
1881
  }
1543
1882
  }
1544
1883
  @media screen and (max-width: 1000px) {
1545
- /* Mobile layout */
1884
+ /* Condensed layout */
1546
1885
  .transactions-table .transaction .expanded .payment .card-number {
1547
1886
  font-size: 0.5em;
1548
1887
  }
@@ -1554,15 +1893,24 @@ form .autocomplete-box .item.active {
1554
1893
  justify-content: space-between;
1555
1894
  align-self: flex-start;
1556
1895
  }
1896
+ @media screen and (max-width: 600px) {
1897
+ /* Mobile layout */
1898
+ .transactions-table .transaction .expanded .buttons {
1899
+ margin-left: 10px;
1900
+ z-index: 10;
1901
+ visibility: visible;
1902
+ }
1903
+ }
1557
1904
 
1558
1905
  .transactions-table .transaction .expanded .buttons a.button {
1559
1906
  margin: 3px 0;
1560
1907
  }
1561
1908
 
1909
+
1562
1910
  /*
1563
1911
  * Style linked transaction overlays
1564
1912
  */
1565
- #linked-transaction-display {
1913
+ #linked-transaction-display.modal {
1566
1914
  display: flex;
1567
1915
  flex-direction: column;
1568
1916
  align-items: center;
@@ -1570,13 +1918,13 @@ form .autocomplete-box .item.active {
1570
1918
  height: 80%;
1571
1919
  }
1572
1920
 
1573
- #linked-transaction-display #link {
1921
+ #linked-transaction-display.modal #link {
1574
1922
  width: 50px;
1575
1923
  height: 50px;
1576
1924
  background-size: 50px 50px;
1577
1925
  }
1578
1926
 
1579
- #linked-transaction-display .buttons {
1927
+ #linked-transaction-display.modal .buttons {
1580
1928
  display: flex;
1581
1929
  justify-content: flex-end;
1582
1930
  align-items: center;
@@ -1584,12 +1932,12 @@ form .autocomplete-box .item.active {
1584
1932
  width: 100%;
1585
1933
  }
1586
1934
 
1587
- #linked-transaction-display .button {
1935
+ #linked-transaction-display.modal .buttons .button {
1588
1936
  height: 40px;
1589
1937
  width: 40px;
1590
1938
  }
1591
1939
 
1592
- #linked-transaction-display .linked-transaction {
1940
+ #linked-transaction-display.modal .linked-transaction {
1593
1941
  display: flex;
1594
1942
  flex-direction: column;
1595
1943
  width: 100%;
@@ -1597,11 +1945,11 @@ form .autocomplete-box .item.active {
1597
1945
  padding: 20px 40px;
1598
1946
  }
1599
1947
 
1600
- #linked-transaction-display .linked-transaction.selected {
1948
+ #linked-transaction-display.modal. linked-transaction.selected {
1601
1949
  border: 5px solid var(--moneytree-leaves);
1602
1950
  }
1603
1951
 
1604
- #linked-transaction-display .linked-transaction .date {
1952
+ #linked-transaction-display.modal .linked-transaction .date {
1605
1953
  margin-bottom: 20px;
1606
1954
  color: #888888;
1607
1955
  font-size: 14pt;
@@ -1610,45 +1958,45 @@ form .autocomplete-box .item.active {
1610
1958
  text-align: right;
1611
1959
  }
1612
1960
 
1613
- #linked-transaction-display .linked-transaction .description-header {
1961
+ #linked-transaction-display.modal .linked-transaction .description-header {
1614
1962
  display: flex;
1615
1963
  }
1616
1964
 
1617
- #linked-transaction-display .linked-transaction .description-header .account {
1965
+ #linked-transaction-display.modal .linked-transaction .description-header .account {
1618
1966
  flex: 4;
1619
1967
  padding-right: 10px;
1620
1968
  font-size: 20pt;
1621
1969
  }
1622
1970
 
1623
- #linked-transaction-display .linked-transaction .description-header .account-type {
1971
+ #linked-transaction-display.modal .linked-transaction .description-header .account-type {
1624
1972
  color: #888888;
1625
1973
  font-size: 16pt;
1626
1974
  font-weight: bold;
1627
1975
  text-transform: uppercase;
1628
1976
  }
1629
1977
 
1630
- #linked-transaction-display .linked-transaction .description-header .total {
1978
+ #linked-transaction-display.modal .linked-transaction .description-header .total {
1631
1979
  flex: 1;
1632
1980
  margin-top: auto;
1633
1981
  font-size: 20pt;
1634
1982
  font-weight: bold;
1635
1983
  }
1636
1984
 
1637
- #linked-transaction-display .linked-transaction .notes {
1985
+ #linked-transaction-display.modal .linked-transaction .notes {
1638
1986
  font-size: 12pt;
1639
1987
  }
1640
1988
 
1641
- #linked-transaction-display .linked-transaction .buttons {
1989
+ #linked-transaction-display.modal .linked-transaction .buttons {
1642
1990
  display: flex;
1643
1991
  justify-content: flex-end;
1644
1992
  visibility: hidden;
1645
1993
  }
1646
1994
 
1647
- #linked-transaction-display .linked-transaction:hover .buttons {
1995
+ #linked-transaction-display.modal .linked-transaction:hover .buttons {
1648
1996
  visibility: visible;
1649
1997
  }
1650
1998
 
1651
- #linked-transaction-display .linked-transaction .button {
1999
+ #linked-transaction-display.modal .linked-transaction .button {
1652
2000
  height: 20px;
1653
2001
  width: 20px;
1654
2002
  margin: 0 5px;
@@ -1701,6 +2049,13 @@ form .autocomplete-box .item.active {
1701
2049
  min-width: 500px;
1702
2050
  margin: 0 0 0 0;
1703
2051
  }
2052
+ @media screen and (max-width: 600px) {
2053
+ /* Mobile layout */
2054
+ .details .summary-container {
2055
+ width: 100%;
2056
+ min-width: 250px;
2057
+ }
2058
+ }
1704
2059
 
1705
2060
  .details .summary-box {
1706
2061
  display: flex;
@@ -1712,10 +2067,18 @@ form .autocomplete-box .item.active {
1712
2067
  box-shadow: 1px 1px 5px #dddddd;
1713
2068
  background-color: #f8f8f8;
1714
2069
  }
2070
+ @media screen and (max-width: 600px) {
2071
+ /* Mobile layout */
2072
+ .details .summary-box {
2073
+ width: 80%;
2074
+ padding: 20px 25px 30px;
2075
+ }
2076
+ }
1715
2077
 
1716
2078
  .details .summary-box .balance {
1717
2079
  display: flex;
1718
2080
  justify-content: space-between;
2081
+ width: 100%;
1719
2082
  margin: 20px 0;
1720
2083
  font-size: 72pt;
1721
2084
  font-weight: bold;
@@ -1723,6 +2086,10 @@ form .autocomplete-box .item.active {
1723
2086
  text-align: center;
1724
2087
  }
1725
2088
 
2089
+ .details .summary-box .balance svg {
2090
+ width: 100%;
2091
+ }
2092
+
1726
2093
  .details .summary-box .projected-balance .amount {
1727
2094
  color: var(--moneytree);
1728
2095
  font-weight: 500;
@@ -1735,6 +2102,12 @@ form .autocomplete-box .item.active {
1735
2102
  .details .summary-box .title {
1736
2103
  font-size: 28pt;
1737
2104
  }
2105
+ @media screen and (max-width: 600px) {
2106
+ /* Mobile layout */
2107
+ .details .summary-box .title {
2108
+ font-size: 20pt;
2109
+ }
2110
+ }
1738
2111
 
1739
2112
  .details .summary-box .suptitle,
1740
2113
  .details .summary-box .subtitle {
@@ -1745,7 +2118,7 @@ form .autocomplete-box .item.active {
1745
2118
 
1746
2119
  .details .summary-box .suptitle {
1747
2120
  margin-bottom: 10px;
1748
- font-size: 14pt;
2121
+ font-size: 12pt;
1749
2122
  }
1750
2123
 
1751
2124
  .details .summary-box .subtitle {
@@ -1764,19 +2137,21 @@ form .autocomplete-box .item.active {
1764
2137
  margin-top: 50px;
1765
2138
  }
1766
2139
  }
2140
+ @media screen and (max-width: 600px) {
2141
+ /* Mobile layout */
2142
+ .details .transactions-container {
2143
+ width: 90%;
2144
+ min-width: 200px;
2145
+ }
2146
+ }
1767
2147
 
1768
2148
  .details .transactions-table {
1769
2149
  width: 100%;
1770
2150
  min-width: inherit;
1771
2151
  }
1772
2152
 
1773
- .details .transactions-table .date.column {
1774
- flex: 1;
1775
- }
1776
-
1777
2153
  .details .transactions-table .merchant.column {
1778
2154
  flex: 4;
1779
- min-width: 150px;
1780
2155
  }
1781
2156
 
1782
2157
  .details .transactions-table .amount.column {
@@ -1784,98 +2159,112 @@ form .autocomplete-box .item.active {
1784
2159
  margin-left: auto;
1785
2160
  }
1786
2161
 
1787
- .details .transactions-table .notes.column {
1788
- flex: 4;
1789
- min-width: 100px;
2162
+ .details .transactions-table .transaction .expanded .setting {
2163
+ flex: 1;
1790
2164
  }
1791
-
1792
2165
  @media screen and (max-width: 1500px) {
1793
- .details .transactions-table .expanded .row-content {
1794
- margin-left: 28px;
2166
+ /* Condensed layout */
2167
+ .details .transactions-table .transaction .expanded .setting {
2168
+ flex-direction: column;
2169
+ align-items: flex-start;
1795
2170
  }
1796
2171
  }
1797
2172
 
1798
2173
  @media screen and (max-width: 1500px) {
1799
- .details .transactions-table .expanded .date.column {
1800
- margin: 0;
2174
+ .details .transactions-table .transaction .expanded .setting.column {
2175
+ margin: 0 10px 0 30px; /* revert to behaving like a normal column */
1801
2176
  }
1802
2177
  }
1803
-
1804
- .details .transactions-table .expanded .setting {
1805
- width: 100%;
2178
+ @media screen and (max-width: 600px) {
2179
+ /* Mobile layout */
2180
+ .details .transactions-table .transaction .expanded .setting.column {
2181
+ margin-left: 20px; /* revert to behaving like a normal column */
2182
+ }
1806
2183
  }
2184
+
1807
2185
  @media screen and (max-width: 1500px) {
1808
- /* Mobile layout */
1809
- .details .transactions-table .expanded .setting {
1810
- flex-direction: column;
2186
+ /* Condensed layout */
2187
+ .details .transactions-table .transaction .expanded .date {
1811
2188
  align-items: flex-start;
1812
2189
  }
1813
2190
  }
1814
2191
 
1815
2192
  @media screen and (max-width: 1500px) {
1816
- /* Mobile layout */
1817
- .details .transactions-table .expanded .setting .date {
1818
- align-items: flex-start;
2193
+ /* Condensed layout */
2194
+ .details .transactions-table .transaction .expanded .date.column {
2195
+ margin-left: 0;
2196
+ margin-bottom: 5px;
1819
2197
  }
1820
2198
  }
1821
2199
 
1822
2200
  @media screen and (max-width: 1500px) {
1823
- .details .transactions-table .expanded .setting .date .month,
1824
- .details .transactions-table .expanded .setting .date .day,
1825
- .details .transactions-table .expanded .setting .date .year {
2201
+ /* Condensed layout */
2202
+ .details .transactions-table .transaction .expanded .setting .date .month,
2203
+ .details .transactions-table .transaction .expanded .setting .date .day,
2204
+ .details .transactions-table .transaction .expanded .setting .date .year {
1826
2205
  display: none;
1827
2206
  }
1828
2207
  }
1829
2208
 
1830
2209
  @media screen and (max-width: 1500px) {
1831
- /* Mobile layout */
1832
- .details .transactions-table .expanded .setting .date .full {
2210
+ /* Condensed layout */
2211
+ .details .transactions-table .transaction .expanded .date .full-date {
1833
2212
  display: block;
1834
2213
  }
1835
2214
  }
1836
2215
 
1837
2216
  @media screen and (max-width: 1500px) {
1838
- /* Mobile layout */
1839
- .details .transactions-table .expanded .setting .description {
2217
+ /* Condensed layout */
2218
+ .details .transactions-table .transaction .expanded .description.column {
1840
2219
  width: 100%;
1841
- margin-top: 5px;
2220
+ margin: 0;
1842
2221
  }
1843
2222
  }
1844
2223
 
1845
2224
  @media screen and (max-width: 1800px) {
1846
2225
  /* Statement disappear */
1847
- .details .transactions-table .expanded .setting .description-header {
2226
+ .details .transactions-table .transaction .expanded .description .description-header {
1848
2227
  font-size: 22pt;
1849
2228
  }
1850
2229
  }
1851
2230
  @media screen and (max-width: 1550px) {
1852
2231
  /* Disable transitions for mobile switch */
1853
- .details .transactions-table .expanded .setting .description-header {
2232
+ .details .transactions-table .transaction .expanded .description .description-header {
1854
2233
  transition: all 0s;
1855
2234
  }
1856
2235
  }
1857
2236
  @media screen and (max-width: 1500px) {
1858
- /* Statement disappear */
1859
- .details .transactions-table .expanded .setting .description-header {
2237
+ /* Condensed layout (statement disappear) */
2238
+ .details .transactions-table .transaction .expanded .description .description-header {
1860
2239
  font-size: 20pt;
1861
2240
  }
1862
2241
  }
2242
+ @media screen and (max-width: 600px) {
2243
+ /* Mobile layout */
2244
+ .details .transactions-table .transaction .expanded .description .description-header {
2245
+ font-size: 14pt;
2246
+ }
2247
+ }
1863
2248
 
1864
- .details .transactions-table .expanded .payment {
1865
- flex: 0;
1866
- padding: 0;
2249
+ @media screen and (max-width: 600px) {
2250
+ /* Mobile layout */
2251
+ .details .transactions-table .transaction .expanded .description .description-header .transaction-type {
2252
+ display: block;
2253
+ }
1867
2254
  }
1868
2255
 
1869
- .details .transactions-table .expanded .buttons {
1870
- height: 60%;
2256
+ .details .transactions-table .transaction .expanded .payment {
2257
+ flex: 0;
2258
+ margin: 0;
1871
2259
  }
1872
2260
 
2261
+
1873
2262
  /*
1874
2263
  * Customization for the 'Home' page
1875
2264
  */
1876
2265
  #homepage-block {
1877
2266
  margin-bottom: 20px;
1878
- padding: 0 0 30px 0;
2267
+ padding: 10px 10px 25px;
1879
2268
  background-color: gainsboro;
1880
2269
  border: 1px solid lightgray;
1881
2270
  border-radius: 6px;
@@ -1883,44 +2272,94 @@ form .autocomplete-box .item.active {
1883
2272
  }
1884
2273
 
1885
2274
  #homepage-block h2 {
1886
- margin: 0 0;
2275
+ margin: 10px 0;
1887
2276
  font-size: 3em;
1888
2277
  letter-spacing: -2px;
1889
2278
  text-align: center;
1890
2279
  }
2280
+ @media screen and (max-width: 600px) {
2281
+ /* Mobile layout */
2282
+ #homepage-block h2 {
2283
+ font-size: 2em;
2284
+ }
2285
+ }
1891
2286
 
1892
2287
  #homepage-block h3 {
1893
2288
  margin: 25px 0;
2289
+ padding: 0 20px;
1894
2290
  color: #777777;
1895
2291
  font-size: 1.7em;
1896
2292
  font-weight: 100;
1897
2293
  letter-spacing: 0.5px;
1898
2294
  text-align: center;
1899
2295
  }
2296
+ @media screen and (max-width: 600px) {
2297
+ /* Mobile layout */
2298
+ #homepage-block h3 {
2299
+ font-size: 1em;
2300
+ }
2301
+ }
1900
2302
 
1901
2303
  #homepage-block .buttons {
1902
2304
  display: flex;
1903
2305
  justify-content: flex-end;
1904
2306
  height: 30px;
1905
- padding: 10px;
1906
2307
  filter: brightness(0.90);
1907
2308
  }
2309
+ @media screen and (max-width: 600px) {
2310
+ /* Mobile layout */
2311
+ #homepage-block .buttons {
2312
+ filter: brightness(0.95);
2313
+ }
2314
+ }
1908
2315
 
1909
2316
  #homepage-block .button {
1910
2317
  height: 25px;
1911
2318
  opacity: 0;
1912
2319
  transition: opacity 0.5s ease;
1913
2320
  }
2321
+ @media screen and (max-width: 600px) {
2322
+ /* Mobile layout */
2323
+ #homepage-block .button {
2324
+ opacity: 100%;
2325
+ }
2326
+ }
1914
2327
 
1915
2328
  #homepage-block:hover .button {
1916
2329
  opacity: 100%;
1917
2330
  }
1918
2331
 
2332
+ #homepage-suggestion {
2333
+ display: none;
2334
+ padding: 20px;
2335
+ color: gray;
2336
+ }
2337
+ @media screen and (max-width: 600px) {
2338
+ /* Mobile layout */
2339
+ #homepage-suggestion {
2340
+ display: block;
2341
+ }
2342
+ }
2343
+
2344
+ #homepage-suggestion p {
2345
+ margin: 25px 0;
2346
+ }
2347
+
2348
+ #homepage-suggestion p.register {
2349
+ font-size: 0.8em;
2350
+ }
2351
+
1919
2352
  #homepage-panels {
1920
2353
  display: flex;
1921
2354
  justify-content: space-between;
1922
2355
  width: 100%;
1923
2356
  }
2357
+ @media screen and (max-width: 600px) {
2358
+ /* Mobile layout */
2359
+ #homepage-panels {
2360
+ flex-direction: column;
2361
+ }
2362
+ }
1924
2363
 
1925
2364
  #homepage-panels .panel {
1926
2365
  display: flex;
@@ -1932,11 +2371,16 @@ form .autocomplete-box .item.active {
1932
2371
  box-shadow: 2px 2px 5px var(--silver-dollar);
1933
2372
  background-color: #fafafa;
1934
2373
  }
2374
+ @media screen and (max-width: 600px) {
2375
+ /* Mobile layout */
2376
+ #homepage-panels .panel {
2377
+ margin: 20px 0;
2378
+ }
2379
+ }
1935
2380
 
1936
2381
  #homepage-panels div:first-of-type {
1937
2382
  margin-left: 0;
1938
2383
  }
1939
-
1940
2384
  #homepage-panels div:last-of-type {
1941
2385
  margin-right: 0;
1942
2386
  }
@@ -1956,7 +2400,6 @@ form .autocomplete-box .item.active {
1956
2400
  #homepage-panels .panel ul {
1957
2401
  margin: 0 0 15px;
1958
2402
  }
1959
-
1960
2403
  #homepage-panels .panel ul:last-of-type {
1961
2404
  margin: 0;
1962
2405
  }
@@ -1995,10 +2438,32 @@ form .autocomplete-box .item.active {
1995
2438
  margin: auto;
1996
2439
  text-align: justify;
1997
2440
  }
2441
+ @media screen and (max-width: 600px) {
2442
+ /* Mobile layout */
2443
+ .about {
2444
+ width: 90%;
2445
+ }
2446
+ }
2447
+
2448
+ @media screen and (max-width: 600px) {
2449
+ /* Mobile layout */
2450
+ .about p {
2451
+ margin: 20px 0;
2452
+ font-size: 10pt;
2453
+ line-height: 1.5;
2454
+ }
2455
+ }
2456
+
1998
2457
 
1999
2458
  #readme #header {
2000
2459
  margin: 40px 0;
2001
2460
  }
2461
+ @media screen and (max-width: 600px) {
2462
+ /* Mobile layout */
2463
+ #readme #header {
2464
+ margin: 20px 0 30px;
2465
+ }
2466
+ }
2002
2467
 
2003
2468
  #readme #title {
2004
2469
  margin: 0;
@@ -2033,6 +2498,13 @@ form .autocomplete-box .item.active {
2033
2498
  width: 80%;
2034
2499
  margin: 0 auto;
2035
2500
  }
2501
+ @media screen and (max-width: 600px) {
2502
+ /* Mobile layout */
2503
+ #changelog {
2504
+ width: 90%;
2505
+ font-size: 10pt;
2506
+ }
2507
+ }
2036
2508
 
2037
2509
  #changelog h1 {
2038
2510
  font-size: 32pt;
@@ -2048,6 +2520,12 @@ form .autocomplete-box .item.active {
2048
2520
  margin: 30px 0;
2049
2521
  font-size: 1.5em;
2050
2522
  }
2523
+ @media screen and (max-width: 600px) {
2524
+ /* Mobile layout */
2525
+ #changelog a.latest-release {
2526
+ text-align: center;
2527
+ }
2528
+ }
2051
2529
 
2052
2530
  #story .signature {
2053
2531
  margin-bottom: 100px;
@@ -2055,22 +2533,57 @@ form .autocomplete-box .item.active {
2055
2533
  font-style: oblique;
2056
2534
  text-align: right;
2057
2535
  }
2536
+ @media screen and (max-width: 600px) {
2537
+ /* Mobile layout */
2538
+ #story .signature {
2539
+ margin-top: 30px;
2540
+ }
2541
+ }
2058
2542
 
2543
+ #credits .affiliation-disclaimer {
2544
+ margin-top: 200px;
2545
+ padding: 10px 20px;
2546
+ border: 1px solid var(--border-gray);
2547
+ border-radius: 10px;
2548
+ background-color: whitesmoke;
2549
+ font-size: 8pt;
2550
+ }
2551
+ @media screen and (max-width: 600px) {
2552
+ /* Mobile layout */
2553
+ #credits .affiliation-disclaimer {
2554
+ padding: 10px 10px;
2555
+ }
2556
+ }
2059
2557
 
2060
- /*
2061
- * Customization for the 'Credits' page
2062
- */
2063
- .affiliation-disclaimer {
2064
- margin-top: 80px;
2558
+ @media screen and (max-width: 600px) {
2559
+ /* Mobile layout */
2560
+ #credits .affiliation-disclaimer p {
2561
+ font-size: 8pt;
2562
+ line-height: 1.25;
2563
+ }
2065
2564
  }
2066
2565
 
2067
2566
 
2068
2567
  /*
2069
2568
  * Customization for the 'Profile' page
2070
2569
  */
2570
+ @media screen and (max-width: 600px) {
2571
+ /* Mobile layout */
2572
+ #profile {
2573
+ width: 90%;
2574
+ margin: auto;
2575
+ }
2576
+ }
2577
+
2071
2578
  #profile h2 {
2072
2579
  font-size: 24pt;
2073
2580
  }
2581
+ @media screen and (max-width: 600px) {
2582
+ /* Mobile layout */
2583
+ #profile h2 {
2584
+ font-size: 20pt;
2585
+ }
2586
+ }
2074
2587
 
2075
2588
  #profile .username-section {
2076
2589
  font-size: 24pt;
@@ -2093,6 +2606,12 @@ form .autocomplete-box .item.active {
2093
2606
  margin-right: 10%;
2094
2607
  margin-bottom: 60px;
2095
2608
  }
2609
+ @media screen and (max-width: 600px) {
2610
+ /* Mobile layout */
2611
+ #profile .profile-section {
2612
+ margin-bottom: 25px;
2613
+ }
2614
+ }
2096
2615
 
2097
2616
  #profile .settings.profile-section {
2098
2617
  flex-basis: 100%;
@@ -2100,6 +2619,12 @@ form .autocomplete-box .item.active {
2100
2619
  padding-bottom: 50px;
2101
2620
  border-bottom: 0.5px solid var(--border-gray);
2102
2621
  }
2622
+ @media screen and (max-width: 600px) {
2623
+ /* Mobile layout */
2624
+ #profile .settings.profile-section {
2625
+ padding-bottom: 25px;
2626
+ }
2627
+ }
2103
2628
 
2104
2629
  #profile .banking.profile-section .bank-list {
2105
2630
  width: 90%;
@@ -2121,15 +2646,23 @@ form .autocomplete-box .item.active {
2121
2646
  /*
2122
2647
  * Customization for the 'Bank Accounts' page
2123
2648
  */
2649
+ #bank-container {
2650
+ display: flex;
2651
+ flex-direction: column;
2652
+ gap: 25px;
2653
+ padding: 10px;
2654
+ box-sizing: border-box;
2655
+ }
2656
+
2657
+ #bank-container .bank-stack {
2658
+ max-width: 1000px;
2659
+ }
2660
+
2124
2661
  #bank-container .bank-stack .stack-title {
2125
2662
  padding: 0 30px;
2126
2663
  text-align: left;
2127
2664
  }
2128
2665
 
2129
- #bank-container .account-block {
2130
- padding: 25px 30px;
2131
- }
2132
-
2133
2666
  #bank-container .account-block .account-info {
2134
2667
  display: flex;
2135
2668
  align-items: center;
@@ -2151,36 +2684,41 @@ form .autocomplete-box .item.active {
2151
2684
  }
2152
2685
 
2153
2686
  #bank-account-settings {
2154
- margin: 50px 0 25px;
2155
- padding: 0 25px;
2687
+ margin: 50px 25px 25px;
2156
2688
  }
2157
2689
 
2158
2690
  #account-type-container {
2159
- width: 30%;
2691
+ width: 40%;
2160
2692
  min-width: 350px;
2161
2693
  border: 2px solid var(--border-gray);
2162
2694
  background-color: #f5f5f5;
2163
2695
  }
2164
-
2165
- #account-type-container h2 {
2166
- margin: 0;
2167
- padding: 10px;
2696
+ @media screen and (max-width: 600px) {
2697
+ /* Mobile layout */
2698
+ #account-type-container {
2699
+ width: 100%;
2700
+ min-width: 200px;
2701
+ }
2168
2702
  }
2169
2703
 
2170
- #account-type-container .account-types {
2171
- border-top: 2px solid var(--border-gray);
2704
+
2705
+ /*
2706
+ * Customization for the 'New Bank Account' & 'Update Bank Account' pages
2707
+ */
2708
+ form#bank-account #last-four-digits-field {
2709
+ flex-basis: 25%;
2710
+ min-width: 150px;
2172
2711
  }
2173
2712
 
2174
- #account-type-container .account-type {
2175
- padding: 10px;
2176
- border-top: 0.5px solid var(--border-gray);
2177
- border-bottom: 0.5px solid var(--border-gray);
2713
+ form#bank-account #active-field {
2714
+ flex-basis: 10%;
2715
+ min-width: 60px;
2178
2716
  }
2179
2717
 
2718
+ form#bank-account #active-field label {
2719
+ text-align: center;
2720
+ }
2180
2721
 
2181
- /*
2182
- * Customization for the 'New Bank Account' & 'Update Bank Account' pages
2183
- */
2184
2722
  form#bank-account .hidden {
2185
2723
  display: none;
2186
2724
  }
@@ -2192,7 +2730,7 @@ form#bank-account .hidden {
2192
2730
  #bank-account-summaries-container {
2193
2731
  display: flex;
2194
2732
  flex-direction: column;
2195
- align-items: center
2733
+ align-items: center;
2196
2734
  }
2197
2735
 
2198
2736
  #bank-account-summaries-container h2.bank {
@@ -2216,7 +2754,11 @@ form#bank-account .hidden {
2216
2754
  #bank-account-summaries {
2217
2755
  display: flex;
2218
2756
  flex-direction: column;
2757
+ align-items: center;
2758
+ gap: 25px;
2219
2759
  width: 100%;
2760
+ padding: 10px;
2761
+ box-sizing: border-box;
2220
2762
  }
2221
2763
 
2222
2764
  #bank-account-summaries .account-type-stack {
@@ -2224,7 +2766,13 @@ form#bank-account .hidden {
2224
2766
  flex-direction: column;
2225
2767
  width: 60%;
2226
2768
  min-width: 400px;
2227
- margin: 15px auto 25px;
2769
+ }
2770
+ @media screen and (max-width: 600px) {
2771
+ /* Mobile layout */
2772
+ #bank-account-summaries .account-type-stack {
2773
+ width: 100%;
2774
+ min-width: 0;
2775
+ }
2228
2776
  }
2229
2777
 
2230
2778
  #bank-account-summaries .account-block {
@@ -2233,19 +2781,43 @@ form#bank-account .hidden {
2233
2781
  align-items: center;
2234
2782
  padding: 30px 10%;
2235
2783
  }
2784
+ @media screen and (max-width: 600px) {
2785
+ /* Mobile layout */
2786
+ #bank-account-summaries .account-block {
2787
+ padding: 20px 20px;
2788
+ }
2789
+ }
2236
2790
 
2237
2791
  #bank-account-summaries .account-block .title {
2238
2792
  font-size: 16pt;
2239
2793
  }
2794
+ @media screen and (max-width: 600px) {
2795
+ /* Mobile layout */
2796
+ #bank-account-summaries .account-block .title {
2797
+ font-size: 12pt;
2798
+ }
2799
+ }
2240
2800
 
2241
2801
  #bank-account-summaries .account-block .title .digits {
2242
2802
  margin-right: 10px;
2243
2803
  }
2804
+ @media screen and (max-width: 600px) {
2805
+ /* Mobile layout */
2806
+ #bank-account-summaries .account-block .title .digits {
2807
+ display: block;
2808
+ }
2809
+ }
2244
2810
 
2245
2811
  #bank-account-summaries .account-block .balance {
2246
2812
  font-size: 24pt;
2247
2813
  font-weight: bold;
2248
2814
  }
2815
+ @media screen and (max-width: 600px) {
2816
+ /* Mobile layout */
2817
+ #bank-account-summaries .account-block .balance {
2818
+ font-size: 18pt;
2819
+ }
2820
+ }
2249
2821
 
2250
2822
 
2251
2823
  /*
@@ -2257,18 +2829,25 @@ form#bank-account .hidden {
2257
2829
  }
2258
2830
  }
2259
2831
 
2260
- #balance-chart {
2832
+ #balance-chart-container {
2261
2833
  width: 42.5%;
2262
2834
  max-width: 600px;
2263
- margin-top: 40px;
2835
+ margin: 40px auto 0;
2264
2836
  }
2265
2837
  @media screen and (max-width: 1500px) {
2266
- #balance-chart {
2838
+ #balance-chart-container {
2267
2839
  order: 2;
2268
2840
  width: 45%;
2269
2841
  min-width: 450px;
2270
2842
  }
2271
2843
  }
2844
+ @media screen and (max-width: 600px) {
2845
+ /* Mobile layout */
2846
+ #balance-chart-container {
2847
+ width: 90%;
2848
+ min-width: 200px;
2849
+ }
2850
+ }
2272
2851
 
2273
2852
  #balance-chart .ct-chart-line {
2274
2853
  overflow: visible;
@@ -2282,6 +2861,13 @@ form#bank-account .hidden {
2282
2861
  stroke-width: 2px;
2283
2862
  }
2284
2863
 
2864
+ @media screen and (max-width: 600px) {
2865
+ /* Mobile layout */
2866
+ #balance-chart .ct-label {
2867
+ font-size: 0.5rem;
2868
+ }
2869
+ }
2870
+
2285
2871
 
2286
2872
  /*
2287
2873
  * Customization for the 'New Bank Transaction'/'Update Bank Transaction' pages
@@ -2289,6 +2875,12 @@ form#bank-account .hidden {
2289
2875
  form#bank-transaction .bank-field {
2290
2876
  flex: 3;
2291
2877
  }
2878
+ @media screen and (max-width: 600px) {
2879
+ /* Mobile layout */
2880
+ form#bank-transaction .bank-field {
2881
+ min-width: 200px;
2882
+ }
2883
+ }
2292
2884
 
2293
2885
  form#bank-transaction .account-type-field {
2294
2886
  flex: 1;
@@ -2378,21 +2970,22 @@ form#bank-transaction .transfer-title {
2378
2970
  transition: margin-left 0.2s;
2379
2971
  perspective: 1200px;
2380
2972
  }
2381
-
2382
- #credit-account-info div.credit-card-block:hover {
2383
- margin-left: 0;
2384
- padding-left: 15px;
2385
- }
2386
-
2387
2973
  #credit-account-info div.credit-card-block:first-of-type {
2388
2974
  padding-right: 10px;
2389
2975
  }
2390
-
2391
2976
  #credit-account-info div.credit-card-block:last-of-type {
2392
2977
  margin-left: 0;
2393
2978
  padding-left: 0;
2394
2979
  }
2395
2980
 
2981
+ #credit-account-info div.credit-card-block:hover {
2982
+ margin-left: 0;
2983
+ padding-left: 15px;
2984
+ }
2985
+ #credit-account-info div.credit-card-block:last-of-type:hover {
2986
+ padding-left: 0;
2987
+ }
2988
+
2396
2989
  #credit-account-info .credit-card .card-face {
2397
2990
  cursor: pointer;
2398
2991
  }
@@ -2410,10 +3003,6 @@ form#bank-transaction .transfer-title {
2410
3003
  /*
2411
3004
  * Customization for the 'New Card' & 'Update Card' pages
2412
3005
  */
2413
- form#card {
2414
- min-width: 500px;
2415
- }
2416
-
2417
3006
  form#card #last-four-digits-field {
2418
3007
  flex-basis: 25%;
2419
3008
  min-width: 150px;
@@ -2500,12 +3089,34 @@ form#card #statement-due-day-field {
2500
3089
  #credit-statements {
2501
3090
  display: flex;
2502
3091
  justify-content: space-around;
3092
+ gap: 25px;
3093
+ width: 100%;
3094
+ padding: 10px;
3095
+ box-sizing: border-box;
3096
+ }
3097
+ @media screen and (max-width: 600px) {
3098
+ /* Mobile layout */
3099
+ #credit-statements {
3100
+ justify-content: left;
3101
+ scroll-snap-type: x mandatory;
3102
+ padding-bottom: 20px;
3103
+ overflow-x: scroll;
3104
+ }
2503
3105
  }
2504
3106
 
2505
3107
  #credit-statements .card-stack {
2506
3108
  display: flex;
2507
3109
  flex-direction: column;
2508
3110
  height: min-content;
3111
+ box-sizing: border-box;
3112
+ }
3113
+ @media screen and (max-width: 600px) {
3114
+ /* Mobile layout */
3115
+ #credit-statements .card-stack {
3116
+ flex: 0 0 100%;
3117
+ scroll-snap-align: center;
3118
+ scroll-snap-stop: always;
3119
+ }
2509
3120
  }
2510
3121
 
2511
3122
  #credit-statements .card-stack .stack-title {
@@ -2519,6 +3130,13 @@ form#card #statement-due-day-field {
2519
3130
  width: 275px;
2520
3131
  padding: 45px 50px;
2521
3132
  }
3133
+ @media screen and (max-width: 600px) {
3134
+ /* Mobile layout */
3135
+ #credit-statements .statement-block {
3136
+ width: 200px;
3137
+ padding: 30px 40px;
3138
+ }
3139
+ }
2522
3140
 
2523
3141
  #credit-statements .statement-block .date,
2524
3142
  #credit-statements .statement-block .payment {
@@ -2531,16 +3149,35 @@ form#card #statement-due-day-field {
2531
3149
  font-size: 22pt;
2532
3150
  letter-spacing: -1px;
2533
3151
  }
3152
+ @media screen and (max-width: 600px) {
3153
+ /* Mobile layout */
3154
+ #credit-statements .statement-block .date .month {
3155
+ font-size: 16pt;
3156
+ }
3157
+ }
2534
3158
 
2535
3159
  #credit-statements .statement-block .date .year {
2536
3160
  font-size: 16pt;
2537
3161
  letter-spacing: 1px;
2538
3162
  }
3163
+ @media screen and (max-width: 600px) {
3164
+ /* Mobile layout */
3165
+ #credit-statements .statement-block .date .year {
3166
+ font-size: 12pt;
3167
+ }
3168
+ }
2539
3169
 
2540
3170
  #credit-statements .statement-block .payment .balance {
2541
3171
  font-size: 30pt;
2542
3172
  font-weight: bold;
2543
3173
  }
3174
+ @media screen and (max-width: 600px) {
3175
+ /* Mobile layout */
3176
+ #credit-statements .statement-block .payment .balance {
3177
+ font-size: 24pt;
3178
+ }
3179
+ }
3180
+
2544
3181
 
2545
3182
  #credit-statements .statement-block .payment .paid-notice {
2546
3183
  font-size: 10pt;
@@ -2550,10 +3187,6 @@ form#card #statement-due-day-field {
2550
3187
  /*
2551
3188
  * Customization for the (credit) 'Statement Details' page
2552
3189
  */
2553
- #credit-statement-details #statement-summary {
2554
- min-width: 375px;
2555
- }
2556
-
2557
3190
  #credit-statement-details #statement-summary #payment {
2558
3191
  width: 100%;
2559
3192
  font-size: 12pt;
@@ -2562,7 +3195,8 @@ form#card #statement-due-day-field {
2562
3195
  #credit-statement-details #statement-summary #due {
2563
3196
  float: left;
2564
3197
  display: flex;
2565
- width: 140px;
3198
+ width: 40%;
3199
+ min-width: 160px;
2566
3200
  }
2567
3201
 
2568
3202
  #credit-statement-details #statement-summary #due-date {
@@ -2572,15 +3206,44 @@ form#card #statement-due-day-field {
2572
3206
 
2573
3207
  #credit-statement-details #statement-summary #paid {
2574
3208
  float: right;
3209
+ width: 60%
3210
+ }
3211
+ @media screen and (max-width: 600px) {
3212
+ /* Mobile layout */
3213
+ #credit-statement-details #statement-summary #paid {
3214
+ width: 60px;
3215
+ }
3216
+ }
3217
+
3218
+ @media screen and (max-width: 600px) {
3219
+ /* Mobile layout */
3220
+ #credit-statement-details #statement-summary #paid.slide-text-gadget:hover .sleeve {
3221
+ transform: none;
3222
+ }
3223
+ }
3224
+
3225
+ @media screen and (max-width: 600px) {
3226
+ /* Mobile layout */
3227
+ #credit-statement-details #statement-summary #paid.slide-text-gadget:hover .sleeve .main {
3228
+ padding-right: 0;
3229
+ }
2575
3230
  }
2576
3231
 
2577
3232
  form#pay {
2578
3233
  clear: left;
2579
3234
  position: relative;
2580
- width: 300px;
3235
+ width: 85%;
2581
3236
  margin: 50px auto 0;
2582
3237
  border-radius: 5px;
2583
3238
  box-sizing: border-box;
3239
+ font-size: 0.9em;
3240
+ }
3241
+ @media screen and (max-width: 600px) {
3242
+ /* Mobile layout */
3243
+ form#pay {
3244
+ width: 100%;
3245
+ font-size: 0.75em;
3246
+ }
2584
3247
  }
2585
3248
 
2586
3249
  form#pay button {
@@ -2615,6 +3278,12 @@ form#pay .form-line {
2615
3278
  border-bottom-right-radius: 0;
2616
3279
  box-sizing: border-box;
2617
3280
  }
3281
+ @media screen and (max-width: 600px) {
3282
+ /* Mobile layout */
3283
+ form#pay .form-line {
3284
+ width: 70%;
3285
+ }
3286
+ }
2618
3287
 
2619
3288
  form#pay .form-line input,
2620
3289
  form#pay .form-line select {
@@ -2629,12 +3298,25 @@ form#pay .form-line .dollar-sign {
2629
3298
  height: 100%;
2630
3299
  color: #666666;
2631
3300
  }
3301
+ @media screen and (max-width: 600px) {
3302
+ /* Mobile layout */
3303
+ form#pay .form-line .dollar-sign {
3304
+ top: -15px;
3305
+ }
3306
+ }
2632
3307
 
2633
3308
  form#pay .form-line #pay-amount,
2634
3309
  form#pay .form-line #pay-date {
2635
- width: 50%;
3310
+ width: 49%;
2636
3311
  border-bottom: 2px solid #eeeeee;
2637
3312
  }
3313
+ @media screen and (max-width: 600px) {
3314
+ /* Mobile layout */
3315
+ form#pay .form-line #pay-amount,
3316
+ form#pay .form-line #pay-date {
3317
+ width: 100%;
3318
+ }
3319
+ }
2638
3320
 
2639
3321
  form#pay .form-line #pay-amount {
2640
3322
  padding-left: 25px;
@@ -2645,6 +3327,12 @@ form#pay .form-line #pay-amount {
2645
3327
  border-bottom-left-radius: 0;
2646
3328
  text-align: right;
2647
3329
  }
3330
+ @media screen and (max-width: 600px) {
3331
+ /* Mobile layout */
3332
+ form#pay .form-line #pay-amount {
3333
+ padding-right: 5px;
3334
+ }
3335
+ }
2648
3336
 
2649
3337
  form#pay .form-line #pay-date {
2650
3338
  text-align: center;
@@ -2652,7 +3340,6 @@ form#pay .form-line #pay-date {
2652
3340
  border-bottom-left-radius: 0;
2653
3341
  }
2654
3342
 
2655
-
2656
3343
  form#pay #make-payment {
2657
3344
  position: absolute;
2658
3345
  top: 0;
@@ -2679,6 +3366,13 @@ form#pay #make-payment[type="submit"] {
2679
3366
  border-top-left-radius: 0;
2680
3367
  border-bottom-left-radius: 0;
2681
3368
  }
3369
+ @media screen and (max-width: 600px) {
3370
+ /* Mobile layout */
3371
+ form#pay #make-payment[type="submit"] {
3372
+ left: 70%;
3373
+ width: 30%;
3374
+ }
3375
+ }
2682
3376
 
2683
3377
  form#pay #make-payment[type="submit"] #prompt {
2684
3378
  display: none;
@@ -2694,6 +3388,195 @@ form#pay #make-payment[type="submit"] #prompt {
2694
3388
  text-align: right;
2695
3389
  }
2696
3390
 
3391
+ #category-chart-container {
3392
+ width: 42.5%;
3393
+ max-width: 600px;
3394
+ margin: 40px auto 0;
3395
+ }
3396
+ @media screen and (max-width: 1500px) {
3397
+ #category-chart-container {
3398
+ order: 2;
3399
+ width: 45%;
3400
+ min-width: 450px;
3401
+ }
3402
+ }
3403
+ @media screen and (max-width: 600px) {
3404
+ #category-chart-container {
3405
+ width: 80%;
3406
+ min-width: 100px;
3407
+ }
3408
+ }
3409
+
3410
+ #category-chart.ct-chart {
3411
+ min-height: 400px;
3412
+ }
3413
+
3414
+ #category-chart text.ct-label {
3415
+ transition: fill 0.1s ease;
3416
+ }
3417
+
3418
+ #category-chart text.ct-label:hover {
3419
+ fill: rgba(0, 0, 0, 0.8);
3420
+ }
3421
+
3422
+ #category-chart .ct-series-a .ct-slice-donut {
3423
+ stroke: var(--moneytree-leaves);
3424
+ }
3425
+
3426
+ #category-chart .ct-series-b .ct-slice-donut {
3427
+ stroke: #41493b;
3428
+ }
3429
+
3430
+ #category-chart .ct-series-c .ct-slice-donut {
3431
+ stroke: #a4ae9d;
3432
+ }
3433
+
3434
+ #category-chart .ct-series-d .ct-slice-donut {
3435
+ stroke: #00bdfb;
3436
+ }
3437
+
3438
+ #category-chart .ct-series-e .ct-slice-donut {
3439
+ stroke: #0087c3;
3440
+ }
3441
+
3442
+
3443
+ /*
3444
+ * Customization for the (credit) 'Statement Reconciliation' details page
3445
+ */
3446
+ #credit-statement-reconciliation-details .note {
3447
+ font-size: 9pt;
3448
+ color: #888888;
3449
+ }
3450
+
3451
+ #statement-reconciliation-summary {
3452
+ min-width: 75%;
3453
+ }
3454
+
3455
+ #statement-reconciliation-summary.summary-box .balance {
3456
+ justify-content: center;
3457
+ margin: 20px 0 30px;
3458
+ }
3459
+
3460
+ #statement-reconciliation-summary.summary-box .balance .dollar-sign {
3461
+ margin-right: 15px;
3462
+ }
3463
+
3464
+ #statement-reconciliation-summary .reconciliation-indicator {
3465
+ width: 200px;
3466
+ align-self: center;
3467
+ padding: 50px;
3468
+ }
3469
+
3470
+ #statement-reconciliation-summary #statement-discrepancies-container h2 {
3471
+ margin: 25px 0;
3472
+ color: #888888;
3473
+ font-size: 14pt;
3474
+ font-weight: 500;
3475
+ letter-spacing: 2px;
3476
+ text-transform: uppercase;
3477
+ }
3478
+
3479
+ #credit-statement-reconciliation-details statement-transactions-container .note {
3480
+ padding: 0 20px 20px;
3481
+ }
3482
+
3483
+ #credit-statement-reconciliation-details div.discrepancy-category {
3484
+ margin-bottom: 30px;
3485
+ }
3486
+
3487
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity {
3488
+ display: flex;
3489
+ flex-direction: row;
3490
+ margin: 3px 0px;
3491
+ padding: 5px 15px;
3492
+ border-radius: 10px;
3493
+ }
3494
+
3495
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity:hover {
3496
+ box-shadow: 0 0 3px 0 #cccccc;
3497
+ }
3498
+
3499
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity .button {
3500
+ margin-left: auto;
3501
+ cursor: pointer;
3502
+ }
3503
+
3504
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity .button .icon {
3505
+ width: 25px;
3506
+ opacity: 0;
3507
+ }
3508
+
3509
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity:hover .button .icon {
3510
+ opacity: 1;
3511
+ }
3512
+
3513
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity.discrepancy-highlight {
3514
+ box-shadow: 0 0 5px 0 var(--moneytree-leaves);
3515
+ }
3516
+
3517
+ #credit-statement-reconciliation-details #statement-discrepancies-container .reconciliation-activity.discrepancy-highlight:hover {
3518
+ box-shadow: 0 0 5px 0 var(--moneytree-leaves);
3519
+ }
3520
+
3521
+ #credit-statement-reconciliation-details #statement-transactions-container .transaction .discrepancy-highlight {
3522
+ background-color: #f1fbeb;
3523
+ background-image: linear-gradient(135deg, #fff, 5%, #f1fbeb, 95%, #fff);
3524
+ color: var(--moneytree);
3525
+ font-weight: 500;
3526
+ }
3527
+
3528
+
3529
+ /*
3530
+ * Customization for the statement reconciliation modal
3531
+ */
3532
+ #statement-reconciliation.modal {
3533
+ width: 50%;
3534
+ min-width: 300px;
3535
+ transform: translate(-50%, 100%);
3536
+ }
3537
+
3538
+ #statement-reconciliation.modal .modal-box {
3539
+ height: 100%;
3540
+ width: 100%;
3541
+ padding: 30px;
3542
+ }
3543
+
3544
+ #statement-reconciliation.modal .buttons {
3545
+ display: flex;
3546
+ justify-content: flex-end;
3547
+ align-items: center;
3548
+ height: 30px;
3549
+ width: 100%;
3550
+ }
3551
+
3552
+ #statement-reconciliation.modal .buttons .button {
3553
+ height: 30px;
3554
+ width: 30px;
3555
+ }
3556
+
3557
+ #statement-reconciliation.modal p {
3558
+ width: 80%;
3559
+ margin: auto;
3560
+ }
3561
+
3562
+ #statement-reconciliation.modal form {
3563
+ margin: 30px auto;
3564
+ padding: 20px 50px 30px;
3565
+ border: 3px solid var(--moneytree-leaves);
3566
+ border-radius: 15px;
3567
+ background-color: #fefefe;
3568
+ }
3569
+
3570
+ #statement-reconciliation.modal form input {
3571
+ margin: 3px 0;
3572
+ }
3573
+
3574
+ #statement-reconciliation.modal form label {
3575
+ text-transform: uppercase;
3576
+ font-size: 10pt;
3577
+ letter-spacing: 2px;
3578
+ }
3579
+
2697
3580
 
2698
3581
  /*
2699
3582
  * Customization for the 'New Credit Transaction'/