monopyly 1.4.8__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 (69) hide show
  1. monopyly/CHANGELOG.md +7 -0
  2. monopyly/__init__.py +2 -2
  3. monopyly/_version.py +2 -2
  4. monopyly/cli/apps.py +1 -1
  5. monopyly/cli/launch.py +3 -0
  6. monopyly/common/forms/_forms.py +56 -2
  7. monopyly/common/transactions.py +162 -0
  8. monopyly/credit/actions.py +29 -0
  9. monopyly/credit/forms.py +25 -0
  10. monopyly/credit/routes.py +97 -7
  11. monopyly/credit/transactions/_transactions.py +15 -0
  12. monopyly/credit/transactions/activity/__init__.py +3 -0
  13. monopyly/credit/transactions/activity/data.py +161 -0
  14. monopyly/credit/transactions/activity/parser.py +274 -0
  15. monopyly/credit/transactions/activity/reconciliation.py +456 -0
  16. monopyly/database/models.py +6 -0
  17. monopyly/static/css/style.css +1141 -263
  18. monopyly/static/img/icons/statement-pair.png +0 -0
  19. monopyly/static/img/icons/statement-thick.png +0 -0
  20. monopyly/static/img/icons/statement.png +0 -0
  21. monopyly/static/js/bind-tag-actions.js +1 -1
  22. monopyly/static/js/create-balance-chart.js +1 -1
  23. monopyly/static/js/create-category-chart.js +27 -0
  24. monopyly/static/js/define-filter.js +1 -1
  25. monopyly/static/js/expand-transaction.js +10 -0
  26. monopyly/static/js/highlight-discrepant-transactions.js +124 -0
  27. monopyly/static/js/modules/expand-transaction.js +12 -3
  28. monopyly/static/js/modules/form-suggestions.js +60 -0
  29. monopyly/static/js/modules/manage-overlays.js +1 -3
  30. monopyly/static/js/show-credit-activity-loader.js +29 -0
  31. monopyly/static/js/toggle-navigation.js +35 -0
  32. monopyly/static/js/update-card-status.js +1 -1
  33. monopyly/static/js/use-suggested-amount.js +11 -0
  34. monopyly/static/js/use-suggested-merchant.js +11 -0
  35. monopyly/templates/banking/account_page.html +3 -1
  36. monopyly/templates/banking/account_summaries.html +1 -1
  37. monopyly/templates/banking/accounts_page.html +11 -15
  38. monopyly/templates/banking/transactions_table/expanded_row_content.html +18 -20
  39. monopyly/templates/common/transaction_form/subtransaction_subform.html +10 -1
  40. monopyly/templates/common/transactions_table/linked_bank_transaction.html +1 -1
  41. monopyly/templates/common/transactions_table/linked_credit_transaction.html +1 -1
  42. monopyly/templates/common/transactions_table/transaction_condensed.html +2 -2
  43. monopyly/templates/common/transactions_table/transaction_expanded.html +3 -3
  44. monopyly/templates/common/transactions_table/transactions.html +1 -1
  45. monopyly/templates/core/credits.html +10 -8
  46. monopyly/templates/core/index.html +10 -0
  47. monopyly/templates/core/profile.html +1 -1
  48. monopyly/templates/credit/statement_page.html +33 -0
  49. monopyly/templates/credit/statement_reconciliation/discrepant_records.html +25 -0
  50. monopyly/templates/credit/statement_reconciliation/statement_reconciliation_inquiry.html +23 -0
  51. monopyly/templates/credit/statement_reconciliation/statement_reconciliation_page.html +86 -0
  52. monopyly/templates/credit/statement_reconciliation/summary.html +45 -0
  53. monopyly/templates/credit/statement_reconciliation/unrecorded_activities.html +24 -0
  54. monopyly/templates/credit/statement_summary.html +2 -2
  55. monopyly/templates/credit/statements.html +1 -1
  56. monopyly/templates/credit/transaction_form/transaction_form.html +9 -1
  57. monopyly/templates/credit/transaction_form/transaction_form_page.html +2 -0
  58. monopyly/templates/credit/transaction_form/transaction_form_page_update.html +9 -0
  59. monopyly/templates/credit/transaction_submission_page.html +8 -0
  60. monopyly/templates/credit/transactions_table/expanded_row_content.html +18 -12
  61. monopyly/templates/layout.html +35 -27
  62. {monopyly-1.4.8.dist-info → monopyly-1.5.0.dist-info}/METADATA +2 -1
  63. {monopyly-1.4.8.dist-info → monopyly-1.5.0.dist-info}/RECORD +67 -51
  64. monopyly/static/img/icons/statement-pair.svg +0 -281
  65. monopyly/static/img/icons/statement.svg +0 -294
  66. {monopyly-1.4.8.dist-info → monopyly-1.5.0.dist-info}/WHEEL +0 -0
  67. {monopyly-1.4.8.dist-info → monopyly-1.5.0.dist-info}/entry_points.txt +0 -0
  68. {monopyly-1.4.8.dist-info → monopyly-1.5.0.dist-info}/licenses/COPYING +0 -0
  69. {monopyly-1.4.8.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,12 +119,25 @@ 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);
@@ -127,40 +147,165 @@ header#masthead {
127
147
  font-weight: normal;
128
148
  text-transform: none;
129
149
  }
150
+ @media screen and (max-width: 600px) {
151
+ /* Mobile layout */
152
+ .monopyly-logo .development-mode {
153
+ font-size: 0.6em;
154
+ }
155
+ }
130
156
 
131
157
 
132
158
  /*
133
159
  * Display navigation links inline
134
160
  */
135
- #nav-menu {
161
+ #header-menu {
162
+ display: flex;
163
+ flex-direction: column;
136
164
  margin-left: auto;
137
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
+ }
138
201
 
139
- #nav-menu li {
202
+ #header-menu li {
140
203
  display: inline;
141
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
+ }
142
222
 
143
- #nav-menu li + li {
223
+ #header-menu li + li {
144
224
  margin-left: 35px;
145
225
  }
226
+ @media screen and (max-width: 600px) {
227
+ /* Mobile layout */
228
+ #header-menu li + li {
229
+ margin-left: 0;
230
+ }
231
+ }
146
232
 
147
- #nav-menu li a {
233
+ #header-menu li a {
148
234
  color: #bbbbbb;
149
235
  }
150
236
 
151
- #nav-menu li a:hover {
237
+ #header-menu li a:hover {
152
238
  color: #cdcdcd;
153
239
  }
154
240
 
155
- #nav-menu li .username {
241
+ #header-menu li .username {
156
242
  color: #777777;
157
243
  }
158
244
 
159
- #nav-menu li .username:hover {
245
+ #header-menu li .username:hover {
160
246
  color: var(--moneytree-leaves);
161
247
  }
162
248
 
163
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
+
164
309
  /*
165
310
  * Create a footer with site information
166
311
  */
@@ -173,6 +318,12 @@ footer#site-info {
173
318
  font-size: 9pt;
174
319
  text-align: center;
175
320
  }
321
+ @media screen and (max-width: 600px) {
322
+ /* Mobile layout */
323
+ #site-info p {
324
+ font-size: 8pt;
325
+ }
326
+ }
176
327
 
177
328
  #site-info span {
178
329
  padding: 0 5px;
@@ -193,6 +344,13 @@ footer#site-info {
193
344
  #page .container {
194
345
  width: 80%;
195
346
  }
347
+ @media screen and (max-width: 600px) {
348
+ /* Mobile layout */
349
+ #page .container {
350
+ width: 90%;
351
+ margin: auto;
352
+ }
353
+ }
196
354
 
197
355
  aside.sidebar {
198
356
  display: flex;
@@ -203,6 +361,12 @@ aside.sidebar {
203
361
  min-width: 50px;
204
362
  margin-top: 50px; /* account for content header */
205
363
  }
364
+ @media screen and (max-width: 600px) {
365
+ /* Mobile layout */
366
+ aside.sidebar {
367
+ display: none;
368
+ }
369
+ }
206
370
 
207
371
  #content-header h1 {
208
372
  height: 50px;
@@ -214,21 +378,44 @@ aside.sidebar {
214
378
  font-size: 2em;
215
379
  letter-spacing: -2px;
216
380
  }
217
-
218
- #content-header h1.error {
219
- text-align: left;
381
+ @media screen and (max-width: 600px) {
382
+ /* Mobile layout */
383
+ #content-header h1 {
384
+ font-size: 1.8em;
385
+ }
220
386
  }
221
387
 
222
388
 
223
389
  /*
224
390
  * Provide styles for error pages
225
391
  */
226
- .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 {
227
404
  margin-left: 30px;
228
405
  color: var(--silver-dollar);
229
406
  font-weight: 300;
230
407
  letter-spacing: 1px;
231
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
+ }
232
419
 
233
420
  .custom-error-content p {
234
421
  font-size: 18pt;
@@ -269,7 +456,6 @@ aside.sidebar {
269
456
  }
270
457
 
271
458
  .button-block {
272
- margin: 15px 0;
273
459
  border: 1px solid var(--border-gray);
274
460
  border-radius: 10px;
275
461
  box-shadow: 1px 1px 3px #bbbbbb;
@@ -278,14 +464,6 @@ aside.sidebar {
278
464
  color: inherit;
279
465
  }
280
466
 
281
- .button-block:first-of-type {
282
- margin-top: 0;
283
- }
284
-
285
- .button-block:last-of-type {
286
- margin-bottom: 0;
287
- }
288
-
289
467
  .button-block:hover {
290
468
  filter: brightness(0.98);
291
469
  text-decoration: none;
@@ -295,6 +473,13 @@ aside.sidebar {
295
473
  color: inherit;
296
474
  }
297
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
+
298
483
  .screenshot {
299
484
  width: 100%; /* override the markdown default */
300
485
  margin: 20px 0;
@@ -303,10 +488,10 @@ aside.sidebar {
303
488
  }
304
489
 
305
490
  .group-stack {
306
- margin: 15px 10px 25px;
307
491
  padding: 20px 30px;
308
492
  border-radius: 15px;
309
493
  box-shadow: 0 0 20px #eeeeee;
494
+ box-sizing: border-box;
310
495
  background-color: #eef5eb;
311
496
  }
312
497
 
@@ -326,6 +511,12 @@ aside.sidebar {
326
511
  font-weight: 400;
327
512
  }
328
513
 
514
+ .group-stack .stack-buttons {
515
+ display: flex;
516
+ flex-direction: column;
517
+ gap: 15px;
518
+ }
519
+
329
520
  .paid-notice {
330
521
  color: var(--moneytree-leaves);
331
522
  font-weight: bold;
@@ -356,7 +547,7 @@ aside.sidebar {
356
547
  height: 100%;
357
548
  width: 100%;
358
549
  background-color: rgba(0, 0, 0, 0.75);
359
- z-index: 10;
550
+ z-index: 50; /* in front of content, but behind the header */
360
551
  }
361
552
 
362
553
  .modal {
@@ -378,25 +569,17 @@ aside.sidebar {
378
569
  /*
379
570
  * Style forms
380
571
  */
381
- form.transaction {
382
- min-width: 300px;
383
- }
384
-
385
572
  form .form-line {
386
573
  display: flex;
387
574
  justify-content: space-between;
575
+ flex-wrap: wrap;
576
+ column-gap: 5px;;
388
577
  }
389
578
 
390
579
  form .form-field {
391
- margin-left: 0;
392
580
  flex-grow: 1;
393
581
  }
394
582
 
395
- form .form-line .form-field ~ .form-field {
396
- /* Only set margin for fields other than the first on a line */
397
- margin-left: 5px;
398
- }
399
-
400
583
  form .add-info.buttons {
401
584
  margin: 20px 0;
402
585
  }
@@ -415,9 +598,15 @@ form .add-info.button {
415
598
 
416
599
  form label {
417
600
  display: block;
418
- padding: 10px 0;
601
+ margin: 15px 0 7.5px;
419
602
  font-size: 1.1em;
420
603
  }
604
+ @media screen and (max-width: 600px) {
605
+ /* Mobile layout */
606
+ form label {
607
+ font-size: 0.8em;
608
+ }
609
+ }
421
610
 
422
611
  form button,
423
612
  form input,
@@ -475,6 +664,13 @@ form button .icon {
475
664
  margin: 0 10px;
476
665
  filter: brightness(0.8);
477
666
  }
667
+ @media screen and (max-width: 600px) {
668
+ /* Mobile layout */
669
+ form button .icon {
670
+ height: 30px;
671
+ width: 30px;
672
+ }
673
+ }
478
674
 
479
675
  form button.dark-background .icon {
480
676
  filter: brightness(1.2);
@@ -513,9 +709,28 @@ form .subform .close.button {
513
709
  /*
514
710
  * Style transaction forms
515
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
+
516
731
  form .subtotal-field {
517
732
  flex: 1;
518
- min-width: 100px;
733
+ min-width: 125px;
519
734
  }
520
735
 
521
736
  form .subtotal-field input.currency {
@@ -551,7 +766,7 @@ form .autocomplete-box {
551
766
  position: absolute;
552
767
  top: 98%;
553
768
  left: 0;
554
- z-index: 99;
769
+ z-index: 40; /* in front of most content, but behind the header */
555
770
  width: 100%;
556
771
  padding-right: 10px;
557
772
  border: 1px solid var(--silver-dollar);
@@ -594,7 +809,6 @@ form .autocomplete-box .item.active {
594
809
  .sidebar-menu div:first-of-type {
595
810
  margin-top: 5px;
596
811
  }
597
-
598
812
  .sidebar-menu div:last-of-type {
599
813
  margin-bottom: 5px;
600
814
  }
@@ -853,16 +1067,45 @@ form .autocomplete-box .item.active {
853
1067
  }
854
1068
 
855
1069
  .box-table .box-row {
1070
+ padding: 10px;
856
1071
  border-top: 0.5px solid var(--border-gray);
857
1072
  border-bottom: 0.5px solid var(--border-gray);
858
1073
  background-color: #f5f5f5;
859
1074
  }
1075
+ @media screen and (max-width: 600px) {
1076
+ /* Mobile layout */
1077
+ .box-table .box-row {
1078
+ font-size: 0.8em;
1079
+ }
1080
+ }
860
1081
 
861
- .box-table .box-row:hover {
1082
+ .box-table .box-row.action:hover {
862
1083
  cursor: pointer;
863
1084
  filter: brightness(0.98);
864
1085
  }
865
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
+
866
1109
 
867
1110
  /*
868
1111
  * Style the card filter
@@ -870,12 +1113,13 @@ form .autocomplete-box .item.active {
870
1113
  #card-filter {
871
1114
  display: flex;
872
1115
  justify-content: center;
1116
+ flex-wrap: wrap;
1117
+ gap: 8px 4px;
873
1118
  margin-bottom: 20px;
874
1119
  }
875
1120
 
876
1121
  #card-filter .card {
877
1122
  position: relative;
878
- margin: 0 3px;
879
1123
  padding: 1px 10px;
880
1124
  border-radius: 10px;
881
1125
  background-color: #eeeeee;
@@ -1034,6 +1278,12 @@ form .autocomplete-box .item.active {
1034
1278
  color: #666666;
1035
1279
  font-size: 12pt;
1036
1280
  }
1281
+ @media screen and (max-width: 600px) {
1282
+ /* Mobile layout */
1283
+ .transaction .description {
1284
+ font-size: 11pt;
1285
+ }
1286
+ }
1037
1287
 
1038
1288
  .transaction .description-header {
1039
1289
  display: flex;
@@ -1066,9 +1316,25 @@ form .autocomplete-box .item.active {
1066
1316
 
1067
1317
  .transactions-table .row {
1068
1318
  display: flex;
1069
- height: 100%;
1070
- width: 100%;
1071
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;
1072
1338
  }
1073
1339
 
1074
1340
  /* Define a region with row content (separate from actions/buttons) */
@@ -1086,50 +1352,74 @@ form .autocomplete-box .item.active {
1086
1352
  box-sizing: border-box;
1087
1353
  margin: 0 10px;
1088
1354
  }
1089
-
1090
- .transactions-table .date.column {
1091
- flex: 1;
1092
- min-width: 100px;
1093
- text-align: center;
1355
+ .transactions-table .column:first-of-type {
1356
+ margin-left: 30px;
1094
1357
  }
1095
-
1096
- .transactions-table .merchant.column {
1097
- flex: 3;
1098
- 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
+ }
1099
1366
  }
1100
1367
 
1101
- .transactions-table .balance.column,
1102
- .transactions-table .amount.column {
1103
- flex: 1;
1104
- text-align: right;
1368
+ .transactions-table .text.column {
1105
1369
  white-space: nowrap;
1370
+ overflow: hidden;
1371
+ text-overflow: ellipsis;
1106
1372
  }
1107
1373
 
1108
- .transactions-table .amount.column {
1109
- min-width: 100px;
1374
+ .transactions-table .date.column {
1375
+ width: 80px;
1376
+ min-width: 80px;
1110
1377
  }
1111
1378
 
1112
- .transactions-table .balance.column {
1113
- 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
+ }
1114
1388
  }
1115
1389
 
1116
1390
  .transactions-table .notes.column {
1117
- flex: 4;
1118
- min-width: 175px;
1119
- white-space: nowrap;
1120
- overflow: hidden;
1391
+ flex: 9;
1392
+ min-width: 100px;
1121
1393
  }
1122
- @media screen and (max-width: 1000px) {
1394
+ @media screen and (max-width: 600px) {
1123
1395
  /* Mobile layout */
1124
1396
  .transactions-table .notes.column {
1125
1397
  display: none;
1126
1398
  }
1127
1399
  }
1128
1400
 
1129
- .transactions-table .notes.column:hover {
1130
- 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;
1131
1416
  }
1132
1417
 
1418
+ .transactions-table .balance.column,
1419
+ .transactions-table .amount.column {
1420
+ text-align: right;
1421
+ white-space: nowrap;
1422
+ }
1133
1423
 
1134
1424
  .transactions-table .card.column {
1135
1425
  flex: 1;
@@ -1143,16 +1433,21 @@ form .autocomplete-box .item.active {
1143
1433
  margin-left: auto;
1144
1434
  }
1145
1435
  }
1436
+ @media screen and (max-width: 600px) {
1437
+ /* Mobile layout */
1438
+ .transactions-table .card.column {
1439
+ display: none;
1440
+ }
1441
+ }
1146
1442
 
1147
1443
  .transactions-table .buttons.column {
1148
- min-width: 40px;
1149
- margin: 0 0 0 20px;
1150
- padding: 5px 10px;
1444
+ width: 20px;
1151
1445
  }
1152
-
1153
- .transactions-table .titles,
1154
- .transactions-table .transaction {
1155
- 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
+ }
1156
1451
  }
1157
1452
 
1158
1453
  .transactions-table .titles {
@@ -1171,35 +1466,20 @@ form .autocomplete-box .item.active {
1171
1466
  display: inline;
1172
1467
  }
1173
1468
 
1174
- .transactions-table .transaction {
1469
+ .transactions-table .transaction .buttons {
1175
1470
  display: flex;
1176
1471
  flex-direction: column;
1177
- width: 100%;
1178
- transition: border 0.2s ease;
1472
+ visibility: hidden;
1179
1473
  }
1180
-
1181
- .transactions-table .transaction.future {
1182
- color: #aaaaaa;
1474
+ .transactions-table .transaction:hover .buttons {
1475
+ z-index: 10;
1476
+ visibility: visible;
1183
1477
  }
1184
-
1185
- .transactions-table .transaction .condensed {
1186
- height: 25px;
1187
- transition: background-color 0.1s ease;
1188
- }
1189
-
1190
- .transactions-table .transaction .condensed:hover {
1191
- background-color: #fafafa;
1192
- }
1193
-
1194
- .transactions-table .transaction .buttons {
1195
- display: flex;
1196
- flex-direction: column;
1197
- visibility: hidden;
1198
- }
1199
-
1200
- .transactions-table .transaction:hover .buttons {
1201
- z-index: 99;
1202
- visibility: visible;
1478
+ @media screen and (max-width: 600px) {
1479
+ /* Mobile layout */
1480
+ .transactions-table .transaction .buttons {
1481
+ display: none;
1482
+ }
1203
1483
  }
1204
1484
 
1205
1485
  .transactions-table .transaction .button {
@@ -1225,138 +1505,175 @@ form .autocomplete-box .item.active {
1225
1505
  }
1226
1506
  }
1227
1507
 
1228
- .transactions-table .selected.transaction {
1229
- /*Make top & bottom borders approximately the same size */
1230
- border-width: 3px;
1231
- 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;
1232
1528
  }
1233
1529
 
1234
1530
  .transactions-table .transaction .expanded {
1235
1531
  display: none;
1532
+ width: 100%;
1236
1533
  opacity: 0;
1237
1534
  }
1535
+ @media screen and (max-width: 600px) {
1536
+ /* Mobile layout */
1537
+ .transactions-table .transaction .expanded {
1538
+ margin: 5px 0 5px 0;
1539
+ }
1540
+ }
1238
1541
 
1239
- .transactions-table .transaction .expanded .row {
1240
- align-items: flex-start;
1542
+ .transactions-table .transaction .expanded .row-content {
1543
+ margin: 5px 0;
1241
1544
  }
1242
1545
 
1243
- .transactions-table .expanded .row-content {
1244
- align-items: flex-start;
1245
- 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;
1246
1553
  }
1247
1554
  @media screen and (max-width: 1000px) {
1248
- .transactions-table .expanded .row-content {
1249
- margin-left: 28px;
1555
+ .transactions-table .transaction .expanded .setting {
1556
+ flex-direction: column
1250
1557
  }
1251
1558
  }
1252
1559
 
1560
+ .transactions-table .transaction .expanded .setting.column {
1561
+ margin: 0;
1562
+ }
1253
1563
  @media screen and (max-width: 1000px) {
1254
- .transactions-table .expanded .date.column {
1255
- 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 */
1256
1572
  }
1257
1573
  }
1258
1574
 
1259
- .transactions-table .expanded .setting {
1260
- display: flex;
1261
- flex: 3;
1575
+ .transactions-table .transaction .expanded .date.column {
1576
+ font-weight: bold;
1262
1577
  }
1263
1578
  @media screen and (max-width: 1000px) {
1264
- /* Mobile layout */
1265
- .transactions-table .expanded .setting {
1266
- flex-direction: column;
1267
- align-items: flex-start;
1268
- flex: 9;
1579
+ .transactions-table .transaction .expanded .date.column {
1580
+ margin-left: 0;
1581
+ margin-bottom: 5px;
1269
1582
  }
1270
1583
  }
1271
1584
 
1272
- .transactions-table .expanded .setting .date {
1585
+ .transactions-table .transaction .expanded .stacked-date {
1273
1586
  display: flex;
1274
1587
  flex-direction: column;
1275
1588
  justify-content: center;
1276
1589
  align-items: center;
1277
- flex: 2;
1278
- padding-top: 3px;
1590
+ width: min-content;
1591
+ margin-left: 5px;
1279
1592
  font-weight: bold;
1280
1593
  }
1281
1594
  @media screen and (max-width: 1000px) {
1282
- /* Mobile layout */
1283
- .transactions-table .expanded .setting .date {
1284
- align-items: flex-start;
1595
+ .transactions-table .transaction .expanded .stacked-date {
1596
+ margin-left: 0;
1285
1597
  }
1286
1598
  }
1287
1599
 
1288
1600
  @media screen and (max-width: 1000px) {
1289
- /* Mobile layout */
1290
- .transactions-table .expanded .setting .date .month,
1291
- .transactions-table .expanded .setting .date .day,
1292
- .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 {
1293
1604
  display: none;
1294
1605
  }
1295
1606
  }
1296
1607
 
1297
- .transactions-table .expanded .setting .date .month {
1608
+ .transactions-table .transaction .expanded .date .month {
1298
1609
  margin-bottom: -10px;
1299
1610
  font-size: 18pt;
1300
1611
  }
1301
1612
 
1302
- .transactions-table .expanded .setting .date .day {
1613
+ .transactions-table .transaction .expanded .date .day {
1303
1614
  font-size: 36pt;
1304
1615
  }
1305
1616
 
1306
- .transactions-table .expanded .setting .date .year {
1617
+ .transactions-table .transaction .expanded .date .year {
1307
1618
  margin-top: -10px;
1308
1619
  font-size: 14pt;
1309
1620
  letter-spacing: 3px;
1310
1621
  }
1311
1622
 
1312
- .transactions-table .expanded .setting .date .full {
1623
+ .transactions-table .transaction .expanded .date .full-date {
1313
1624
  display: none;
1314
1625
  color: #aaaaaa;
1315
1626
  font-size: 1.1em;
1316
1627
  }
1317
1628
  @media screen and (max-width: 1000px) {
1318
- /* Mobile layout */
1319
- .transactions-table .expanded .setting .date .full {
1629
+ .transactions-table .transaction .expanded .date .full-date {
1320
1630
  display: block;
1321
1631
  }
1322
1632
  }
1323
1633
 
1324
- .transactions-table .expanded .setting .description {
1325
- flex: 13;
1326
- min-width: 250px;
1634
+ .transactions-table .transaction .expanded .description {
1635
+ display: flex;
1636
+ flex-direction: column;
1637
+ flex: 1;
1638
+ min-width: 200px;
1327
1639
  }
1640
+
1328
1641
  @media screen and (max-width: 1000px) {
1329
- /* Mobile layout */
1330
- .transactions-table .expanded .setting .description {
1331
- width: 95%;
1332
- margin-top: 5px;
1642
+ .transactions-table .transaction .expanded .description.column {
1643
+ margin: 0;
1333
1644
  }
1334
1645
  }
1335
1646
 
1336
- .transactions-table .transaction .expanded .setting .description-header {
1647
+ .transactions-table .transaction .expanded .description .description-header {
1337
1648
  transition: font-size 0.3s;
1338
1649
  }
1339
1650
  @media screen and (max-width: 1200px) {
1340
1651
  /* Statement disappear */
1341
- .transactions-table .transaction .expanded .setting .description-header {
1652
+ .transactions-table .transaction .expanded .description .description-header {
1342
1653
  font-size: 22pt;
1343
1654
  }
1344
1655
  }
1345
1656
  @media screen and (max-width: 1050px) {
1346
- /* Disable transitions for mobile switch */
1347
- .transactions-table .transaction .expanded .setting .description-header {
1657
+ /* Disable transitions for reduced view */
1658
+ .transactions-table .transaction .expanded .description .description-header {
1348
1659
  transition: all 0s;
1349
1660
  }
1350
1661
  }
1351
1662
  @media screen and (max-width: 1000px) {
1352
- /* Mobile layout */
1353
- .transactions-table .transaction .expanded .setting .description-header {
1663
+ /* Condensed layout */
1664
+ .transactions-table .transaction .expanded .description .description-header {
1354
1665
  font-size: 20pt;
1355
1666
  }
1356
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
+ }
1357
1674
 
1358
- .transactions-table .transaction .expanded .setting .description-header .merchant,
1359
- .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 {
1360
1677
  flex: 4;
1361
1678
  box-sizing: border-box;
1362
1679
  padding-right: 10px;
@@ -1373,6 +1690,12 @@ form .autocomplete-box .item.active {
1373
1690
  flex: 4;
1374
1691
  padding-right: 10px;
1375
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
+ }
1376
1699
 
1377
1700
  .transactions-table .transaction .expanded .setting .subtransaction-details .subtotal {
1378
1701
  flex: 1;
@@ -1405,9 +1728,8 @@ form .autocomplete-box .item.active {
1405
1728
  display: flex;
1406
1729
  justify-content: space-between;
1407
1730
  align-items: flex-start;
1408
- flex: 1;
1731
+ flex: 5;
1409
1732
  height: 100%;
1410
- padding-right: 10px;
1411
1733
  }
1412
1734
  @media screen and (max-width: 1200px) {
1413
1735
  /* Statement disappear */
@@ -1416,7 +1738,7 @@ form .autocomplete-box .item.active {
1416
1738
  }
1417
1739
  }
1418
1740
  @media screen and (max-width: 1000px) {
1419
- /* Mobile layout */
1741
+ /* Condensed layout */
1420
1742
  .transactions-table .transaction .expanded .payment {
1421
1743
  flex-direction: column;
1422
1744
  justify-content: center;
@@ -1425,6 +1747,12 @@ form .autocomplete-box .item.active {
1425
1747
  margin-top: 15px;
1426
1748
  }
1427
1749
  }
1750
+ @media screen and (max-width: 600px) {
1751
+ /* Mobile layout */
1752
+ .transactions-table .transaction .expanded .payment {
1753
+ margin-top: 30px;
1754
+ }
1755
+ }
1428
1756
 
1429
1757
  .transactions-table .transaction .expanded .payment .statement {
1430
1758
  position: relative;
@@ -1510,11 +1838,17 @@ form .autocomplete-box .item.active {
1510
1838
  }
1511
1839
  }
1512
1840
  @media screen and (max-width: 1000px) {
1513
- /* Mobile layout */
1841
+ /* Condensed layout */
1514
1842
  .transactions-table .transaction .expanded .payment .card {
1515
1843
  height: 50px;
1516
1844
  }
1517
1845
  }
1846
+ @media screen and (max-width: 600px) {
1847
+ /* Mobile layout */
1848
+ .transactions-table .transaction .expanded .payment .card {
1849
+ height: 30px;
1850
+ }
1851
+ }
1518
1852
 
1519
1853
  .transactions-table .transaction .expanded .payment .card .card-background {
1520
1854
  height: 100%;
@@ -1547,7 +1881,7 @@ form .autocomplete-box .item.active {
1547
1881
  }
1548
1882
  }
1549
1883
  @media screen and (max-width: 1000px) {
1550
- /* Mobile layout */
1884
+ /* Condensed layout */
1551
1885
  .transactions-table .transaction .expanded .payment .card-number {
1552
1886
  font-size: 0.5em;
1553
1887
  }
@@ -1559,15 +1893,24 @@ form .autocomplete-box .item.active {
1559
1893
  justify-content: space-between;
1560
1894
  align-self: flex-start;
1561
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
+ }
1562
1904
 
1563
1905
  .transactions-table .transaction .expanded .buttons a.button {
1564
1906
  margin: 3px 0;
1565
1907
  }
1566
1908
 
1909
+
1567
1910
  /*
1568
1911
  * Style linked transaction overlays
1569
1912
  */
1570
- #linked-transaction-display {
1913
+ #linked-transaction-display.modal {
1571
1914
  display: flex;
1572
1915
  flex-direction: column;
1573
1916
  align-items: center;
@@ -1575,13 +1918,13 @@ form .autocomplete-box .item.active {
1575
1918
  height: 80%;
1576
1919
  }
1577
1920
 
1578
- #linked-transaction-display #link {
1921
+ #linked-transaction-display.modal #link {
1579
1922
  width: 50px;
1580
1923
  height: 50px;
1581
1924
  background-size: 50px 50px;
1582
1925
  }
1583
1926
 
1584
- #linked-transaction-display .buttons {
1927
+ #linked-transaction-display.modal .buttons {
1585
1928
  display: flex;
1586
1929
  justify-content: flex-end;
1587
1930
  align-items: center;
@@ -1589,12 +1932,12 @@ form .autocomplete-box .item.active {
1589
1932
  width: 100%;
1590
1933
  }
1591
1934
 
1592
- #linked-transaction-display .button {
1935
+ #linked-transaction-display.modal .buttons .button {
1593
1936
  height: 40px;
1594
1937
  width: 40px;
1595
1938
  }
1596
1939
 
1597
- #linked-transaction-display .linked-transaction {
1940
+ #linked-transaction-display.modal .linked-transaction {
1598
1941
  display: flex;
1599
1942
  flex-direction: column;
1600
1943
  width: 100%;
@@ -1602,11 +1945,11 @@ form .autocomplete-box .item.active {
1602
1945
  padding: 20px 40px;
1603
1946
  }
1604
1947
 
1605
- #linked-transaction-display .linked-transaction.selected {
1948
+ #linked-transaction-display.modal. linked-transaction.selected {
1606
1949
  border: 5px solid var(--moneytree-leaves);
1607
1950
  }
1608
1951
 
1609
- #linked-transaction-display .linked-transaction .date {
1952
+ #linked-transaction-display.modal .linked-transaction .date {
1610
1953
  margin-bottom: 20px;
1611
1954
  color: #888888;
1612
1955
  font-size: 14pt;
@@ -1615,45 +1958,45 @@ form .autocomplete-box .item.active {
1615
1958
  text-align: right;
1616
1959
  }
1617
1960
 
1618
- #linked-transaction-display .linked-transaction .description-header {
1961
+ #linked-transaction-display.modal .linked-transaction .description-header {
1619
1962
  display: flex;
1620
1963
  }
1621
1964
 
1622
- #linked-transaction-display .linked-transaction .description-header .account {
1965
+ #linked-transaction-display.modal .linked-transaction .description-header .account {
1623
1966
  flex: 4;
1624
1967
  padding-right: 10px;
1625
1968
  font-size: 20pt;
1626
1969
  }
1627
1970
 
1628
- #linked-transaction-display .linked-transaction .description-header .account-type {
1971
+ #linked-transaction-display.modal .linked-transaction .description-header .account-type {
1629
1972
  color: #888888;
1630
1973
  font-size: 16pt;
1631
1974
  font-weight: bold;
1632
1975
  text-transform: uppercase;
1633
1976
  }
1634
1977
 
1635
- #linked-transaction-display .linked-transaction .description-header .total {
1978
+ #linked-transaction-display.modal .linked-transaction .description-header .total {
1636
1979
  flex: 1;
1637
1980
  margin-top: auto;
1638
1981
  font-size: 20pt;
1639
1982
  font-weight: bold;
1640
1983
  }
1641
1984
 
1642
- #linked-transaction-display .linked-transaction .notes {
1985
+ #linked-transaction-display.modal .linked-transaction .notes {
1643
1986
  font-size: 12pt;
1644
1987
  }
1645
1988
 
1646
- #linked-transaction-display .linked-transaction .buttons {
1989
+ #linked-transaction-display.modal .linked-transaction .buttons {
1647
1990
  display: flex;
1648
1991
  justify-content: flex-end;
1649
1992
  visibility: hidden;
1650
1993
  }
1651
1994
 
1652
- #linked-transaction-display .linked-transaction:hover .buttons {
1995
+ #linked-transaction-display.modal .linked-transaction:hover .buttons {
1653
1996
  visibility: visible;
1654
1997
  }
1655
1998
 
1656
- #linked-transaction-display .linked-transaction .button {
1999
+ #linked-transaction-display.modal .linked-transaction .button {
1657
2000
  height: 20px;
1658
2001
  width: 20px;
1659
2002
  margin: 0 5px;
@@ -1706,6 +2049,13 @@ form .autocomplete-box .item.active {
1706
2049
  min-width: 500px;
1707
2050
  margin: 0 0 0 0;
1708
2051
  }
2052
+ @media screen and (max-width: 600px) {
2053
+ /* Mobile layout */
2054
+ .details .summary-container {
2055
+ width: 100%;
2056
+ min-width: 250px;
2057
+ }
2058
+ }
1709
2059
 
1710
2060
  .details .summary-box {
1711
2061
  display: flex;
@@ -1717,10 +2067,18 @@ form .autocomplete-box .item.active {
1717
2067
  box-shadow: 1px 1px 5px #dddddd;
1718
2068
  background-color: #f8f8f8;
1719
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
+ }
1720
2077
 
1721
2078
  .details .summary-box .balance {
1722
2079
  display: flex;
1723
2080
  justify-content: space-between;
2081
+ width: 100%;
1724
2082
  margin: 20px 0;
1725
2083
  font-size: 72pt;
1726
2084
  font-weight: bold;
@@ -1728,6 +2086,10 @@ form .autocomplete-box .item.active {
1728
2086
  text-align: center;
1729
2087
  }
1730
2088
 
2089
+ .details .summary-box .balance svg {
2090
+ width: 100%;
2091
+ }
2092
+
1731
2093
  .details .summary-box .projected-balance .amount {
1732
2094
  color: var(--moneytree);
1733
2095
  font-weight: 500;
@@ -1740,6 +2102,12 @@ form .autocomplete-box .item.active {
1740
2102
  .details .summary-box .title {
1741
2103
  font-size: 28pt;
1742
2104
  }
2105
+ @media screen and (max-width: 600px) {
2106
+ /* Mobile layout */
2107
+ .details .summary-box .title {
2108
+ font-size: 20pt;
2109
+ }
2110
+ }
1743
2111
 
1744
2112
  .details .summary-box .suptitle,
1745
2113
  .details .summary-box .subtitle {
@@ -1750,7 +2118,7 @@ form .autocomplete-box .item.active {
1750
2118
 
1751
2119
  .details .summary-box .suptitle {
1752
2120
  margin-bottom: 10px;
1753
- font-size: 14pt;
2121
+ font-size: 12pt;
1754
2122
  }
1755
2123
 
1756
2124
  .details .summary-box .subtitle {
@@ -1769,19 +2137,21 @@ form .autocomplete-box .item.active {
1769
2137
  margin-top: 50px;
1770
2138
  }
1771
2139
  }
2140
+ @media screen and (max-width: 600px) {
2141
+ /* Mobile layout */
2142
+ .details .transactions-container {
2143
+ width: 90%;
2144
+ min-width: 200px;
2145
+ }
2146
+ }
1772
2147
 
1773
2148
  .details .transactions-table {
1774
2149
  width: 100%;
1775
2150
  min-width: inherit;
1776
2151
  }
1777
2152
 
1778
- .details .transactions-table .date.column {
1779
- flex: 1;
1780
- }
1781
-
1782
2153
  .details .transactions-table .merchant.column {
1783
2154
  flex: 4;
1784
- min-width: 150px;
1785
2155
  }
1786
2156
 
1787
2157
  .details .transactions-table .amount.column {
@@ -1789,98 +2159,112 @@ form .autocomplete-box .item.active {
1789
2159
  margin-left: auto;
1790
2160
  }
1791
2161
 
1792
- .details .transactions-table .notes.column {
1793
- flex: 4;
1794
- min-width: 100px;
2162
+ .details .transactions-table .transaction .expanded .setting {
2163
+ flex: 1;
1795
2164
  }
1796
-
1797
2165
  @media screen and (max-width: 1500px) {
1798
- .details .transactions-table .expanded .row-content {
1799
- margin-left: 28px;
2166
+ /* Condensed layout */
2167
+ .details .transactions-table .transaction .expanded .setting {
2168
+ flex-direction: column;
2169
+ align-items: flex-start;
1800
2170
  }
1801
2171
  }
1802
2172
 
1803
2173
  @media screen and (max-width: 1500px) {
1804
- .details .transactions-table .expanded .date.column {
1805
- margin: 0;
2174
+ .details .transactions-table .transaction .expanded .setting.column {
2175
+ margin: 0 10px 0 30px; /* revert to behaving like a normal column */
1806
2176
  }
1807
2177
  }
1808
-
1809
- .details .transactions-table .expanded .setting {
1810
- 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
+ }
1811
2183
  }
2184
+
1812
2185
  @media screen and (max-width: 1500px) {
1813
- /* Mobile layout */
1814
- .details .transactions-table .expanded .setting {
1815
- flex-direction: column;
2186
+ /* Condensed layout */
2187
+ .details .transactions-table .transaction .expanded .date {
1816
2188
  align-items: flex-start;
1817
2189
  }
1818
2190
  }
1819
2191
 
1820
2192
  @media screen and (max-width: 1500px) {
1821
- /* Mobile layout */
1822
- .details .transactions-table .expanded .setting .date {
1823
- align-items: flex-start;
2193
+ /* Condensed layout */
2194
+ .details .transactions-table .transaction .expanded .date.column {
2195
+ margin-left: 0;
2196
+ margin-bottom: 5px;
1824
2197
  }
1825
2198
  }
1826
2199
 
1827
2200
  @media screen and (max-width: 1500px) {
1828
- .details .transactions-table .expanded .setting .date .month,
1829
- .details .transactions-table .expanded .setting .date .day,
1830
- .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 {
1831
2205
  display: none;
1832
2206
  }
1833
2207
  }
1834
2208
 
1835
2209
  @media screen and (max-width: 1500px) {
1836
- /* Mobile layout */
1837
- .details .transactions-table .expanded .setting .date .full {
2210
+ /* Condensed layout */
2211
+ .details .transactions-table .transaction .expanded .date .full-date {
1838
2212
  display: block;
1839
2213
  }
1840
2214
  }
1841
2215
 
1842
2216
  @media screen and (max-width: 1500px) {
1843
- /* Mobile layout */
1844
- .details .transactions-table .expanded .setting .description {
2217
+ /* Condensed layout */
2218
+ .details .transactions-table .transaction .expanded .description.column {
1845
2219
  width: 100%;
1846
- margin-top: 5px;
2220
+ margin: 0;
1847
2221
  }
1848
2222
  }
1849
2223
 
1850
2224
  @media screen and (max-width: 1800px) {
1851
2225
  /* Statement disappear */
1852
- .details .transactions-table .expanded .setting .description-header {
2226
+ .details .transactions-table .transaction .expanded .description .description-header {
1853
2227
  font-size: 22pt;
1854
2228
  }
1855
2229
  }
1856
2230
  @media screen and (max-width: 1550px) {
1857
2231
  /* Disable transitions for mobile switch */
1858
- .details .transactions-table .expanded .setting .description-header {
2232
+ .details .transactions-table .transaction .expanded .description .description-header {
1859
2233
  transition: all 0s;
1860
2234
  }
1861
2235
  }
1862
2236
  @media screen and (max-width: 1500px) {
1863
- /* Statement disappear */
1864
- .details .transactions-table .expanded .setting .description-header {
2237
+ /* Condensed layout (statement disappear) */
2238
+ .details .transactions-table .transaction .expanded .description .description-header {
1865
2239
  font-size: 20pt;
1866
2240
  }
1867
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
+ }
1868
2248
 
1869
- .details .transactions-table .expanded .payment {
1870
- flex: 0;
1871
- 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
+ }
1872
2254
  }
1873
2255
 
1874
- .details .transactions-table .expanded .buttons {
1875
- height: 60%;
2256
+ .details .transactions-table .transaction .expanded .payment {
2257
+ flex: 0;
2258
+ margin: 0;
1876
2259
  }
1877
2260
 
2261
+
1878
2262
  /*
1879
2263
  * Customization for the 'Home' page
1880
2264
  */
1881
2265
  #homepage-block {
1882
2266
  margin-bottom: 20px;
1883
- padding: 0 0 30px 0;
2267
+ padding: 10px 10px 25px;
1884
2268
  background-color: gainsboro;
1885
2269
  border: 1px solid lightgray;
1886
2270
  border-radius: 6px;
@@ -1888,44 +2272,94 @@ form .autocomplete-box .item.active {
1888
2272
  }
1889
2273
 
1890
2274
  #homepage-block h2 {
1891
- margin: 0 0;
2275
+ margin: 10px 0;
1892
2276
  font-size: 3em;
1893
2277
  letter-spacing: -2px;
1894
2278
  text-align: center;
1895
2279
  }
2280
+ @media screen and (max-width: 600px) {
2281
+ /* Mobile layout */
2282
+ #homepage-block h2 {
2283
+ font-size: 2em;
2284
+ }
2285
+ }
1896
2286
 
1897
2287
  #homepage-block h3 {
1898
2288
  margin: 25px 0;
2289
+ padding: 0 20px;
1899
2290
  color: #777777;
1900
2291
  font-size: 1.7em;
1901
2292
  font-weight: 100;
1902
2293
  letter-spacing: 0.5px;
1903
2294
  text-align: center;
1904
2295
  }
2296
+ @media screen and (max-width: 600px) {
2297
+ /* Mobile layout */
2298
+ #homepage-block h3 {
2299
+ font-size: 1em;
2300
+ }
2301
+ }
1905
2302
 
1906
2303
  #homepage-block .buttons {
1907
2304
  display: flex;
1908
2305
  justify-content: flex-end;
1909
2306
  height: 30px;
1910
- padding: 10px;
1911
2307
  filter: brightness(0.90);
1912
2308
  }
2309
+ @media screen and (max-width: 600px) {
2310
+ /* Mobile layout */
2311
+ #homepage-block .buttons {
2312
+ filter: brightness(0.95);
2313
+ }
2314
+ }
1913
2315
 
1914
2316
  #homepage-block .button {
1915
2317
  height: 25px;
1916
2318
  opacity: 0;
1917
2319
  transition: opacity 0.5s ease;
1918
2320
  }
2321
+ @media screen and (max-width: 600px) {
2322
+ /* Mobile layout */
2323
+ #homepage-block .button {
2324
+ opacity: 100%;
2325
+ }
2326
+ }
1919
2327
 
1920
2328
  #homepage-block:hover .button {
1921
2329
  opacity: 100%;
1922
2330
  }
1923
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
+
1924
2352
  #homepage-panels {
1925
2353
  display: flex;
1926
2354
  justify-content: space-between;
1927
2355
  width: 100%;
1928
2356
  }
2357
+ @media screen and (max-width: 600px) {
2358
+ /* Mobile layout */
2359
+ #homepage-panels {
2360
+ flex-direction: column;
2361
+ }
2362
+ }
1929
2363
 
1930
2364
  #homepage-panels .panel {
1931
2365
  display: flex;
@@ -1937,11 +2371,16 @@ form .autocomplete-box .item.active {
1937
2371
  box-shadow: 2px 2px 5px var(--silver-dollar);
1938
2372
  background-color: #fafafa;
1939
2373
  }
2374
+ @media screen and (max-width: 600px) {
2375
+ /* Mobile layout */
2376
+ #homepage-panels .panel {
2377
+ margin: 20px 0;
2378
+ }
2379
+ }
1940
2380
 
1941
2381
  #homepage-panels div:first-of-type {
1942
2382
  margin-left: 0;
1943
2383
  }
1944
-
1945
2384
  #homepage-panels div:last-of-type {
1946
2385
  margin-right: 0;
1947
2386
  }
@@ -1961,7 +2400,6 @@ form .autocomplete-box .item.active {
1961
2400
  #homepage-panels .panel ul {
1962
2401
  margin: 0 0 15px;
1963
2402
  }
1964
-
1965
2403
  #homepage-panels .panel ul:last-of-type {
1966
2404
  margin: 0;
1967
2405
  }
@@ -2000,10 +2438,32 @@ form .autocomplete-box .item.active {
2000
2438
  margin: auto;
2001
2439
  text-align: justify;
2002
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
+
2003
2457
 
2004
2458
  #readme #header {
2005
2459
  margin: 40px 0;
2006
2460
  }
2461
+ @media screen and (max-width: 600px) {
2462
+ /* Mobile layout */
2463
+ #readme #header {
2464
+ margin: 20px 0 30px;
2465
+ }
2466
+ }
2007
2467
 
2008
2468
  #readme #title {
2009
2469
  margin: 0;
@@ -2038,6 +2498,13 @@ form .autocomplete-box .item.active {
2038
2498
  width: 80%;
2039
2499
  margin: 0 auto;
2040
2500
  }
2501
+ @media screen and (max-width: 600px) {
2502
+ /* Mobile layout */
2503
+ #changelog {
2504
+ width: 90%;
2505
+ font-size: 10pt;
2506
+ }
2507
+ }
2041
2508
 
2042
2509
  #changelog h1 {
2043
2510
  font-size: 32pt;
@@ -2053,6 +2520,12 @@ form .autocomplete-box .item.active {
2053
2520
  margin: 30px 0;
2054
2521
  font-size: 1.5em;
2055
2522
  }
2523
+ @media screen and (max-width: 600px) {
2524
+ /* Mobile layout */
2525
+ #changelog a.latest-release {
2526
+ text-align: center;
2527
+ }
2528
+ }
2056
2529
 
2057
2530
  #story .signature {
2058
2531
  margin-bottom: 100px;
@@ -2060,22 +2533,57 @@ form .autocomplete-box .item.active {
2060
2533
  font-style: oblique;
2061
2534
  text-align: right;
2062
2535
  }
2536
+ @media screen and (max-width: 600px) {
2537
+ /* Mobile layout */
2538
+ #story .signature {
2539
+ margin-top: 30px;
2540
+ }
2541
+ }
2063
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
+ }
2064
2557
 
2065
- /*
2066
- * Customization for the 'Credits' page
2067
- */
2068
- .affiliation-disclaimer {
2069
- 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
+ }
2070
2564
  }
2071
2565
 
2072
2566
 
2073
2567
  /*
2074
2568
  * Customization for the 'Profile' page
2075
2569
  */
2570
+ @media screen and (max-width: 600px) {
2571
+ /* Mobile layout */
2572
+ #profile {
2573
+ width: 90%;
2574
+ margin: auto;
2575
+ }
2576
+ }
2577
+
2076
2578
  #profile h2 {
2077
2579
  font-size: 24pt;
2078
2580
  }
2581
+ @media screen and (max-width: 600px) {
2582
+ /* Mobile layout */
2583
+ #profile h2 {
2584
+ font-size: 20pt;
2585
+ }
2586
+ }
2079
2587
 
2080
2588
  #profile .username-section {
2081
2589
  font-size: 24pt;
@@ -2098,6 +2606,12 @@ form .autocomplete-box .item.active {
2098
2606
  margin-right: 10%;
2099
2607
  margin-bottom: 60px;
2100
2608
  }
2609
+ @media screen and (max-width: 600px) {
2610
+ /* Mobile layout */
2611
+ #profile .profile-section {
2612
+ margin-bottom: 25px;
2613
+ }
2614
+ }
2101
2615
 
2102
2616
  #profile .settings.profile-section {
2103
2617
  flex-basis: 100%;
@@ -2105,6 +2619,12 @@ form .autocomplete-box .item.active {
2105
2619
  padding-bottom: 50px;
2106
2620
  border-bottom: 0.5px solid var(--border-gray);
2107
2621
  }
2622
+ @media screen and (max-width: 600px) {
2623
+ /* Mobile layout */
2624
+ #profile .settings.profile-section {
2625
+ padding-bottom: 25px;
2626
+ }
2627
+ }
2108
2628
 
2109
2629
  #profile .banking.profile-section .bank-list {
2110
2630
  width: 90%;
@@ -2126,15 +2646,23 @@ form .autocomplete-box .item.active {
2126
2646
  /*
2127
2647
  * Customization for the 'Bank Accounts' page
2128
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
+
2129
2661
  #bank-container .bank-stack .stack-title {
2130
2662
  padding: 0 30px;
2131
2663
  text-align: left;
2132
2664
  }
2133
2665
 
2134
- #bank-container .account-block {
2135
- padding: 25px 30px;
2136
- }
2137
-
2138
2666
  #bank-container .account-block .account-info {
2139
2667
  display: flex;
2140
2668
  align-items: center;
@@ -2156,36 +2684,41 @@ form .autocomplete-box .item.active {
2156
2684
  }
2157
2685
 
2158
2686
  #bank-account-settings {
2159
- margin: 50px 0 25px;
2160
- padding: 0 25px;
2687
+ margin: 50px 25px 25px;
2161
2688
  }
2162
2689
 
2163
2690
  #account-type-container {
2164
- width: 30%;
2691
+ width: 40%;
2165
2692
  min-width: 350px;
2166
2693
  border: 2px solid var(--border-gray);
2167
2694
  background-color: #f5f5f5;
2168
2695
  }
2169
-
2170
- #account-type-container h2 {
2171
- margin: 0;
2172
- padding: 10px;
2696
+ @media screen and (max-width: 600px) {
2697
+ /* Mobile layout */
2698
+ #account-type-container {
2699
+ width: 100%;
2700
+ min-width: 200px;
2701
+ }
2173
2702
  }
2174
2703
 
2175
- #account-type-container .account-types {
2176
- 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;
2177
2711
  }
2178
2712
 
2179
- #account-type-container .account-type {
2180
- padding: 10px;
2181
- border-top: 0.5px solid var(--border-gray);
2182
- border-bottom: 0.5px solid var(--border-gray);
2713
+ form#bank-account #active-field {
2714
+ flex-basis: 10%;
2715
+ min-width: 60px;
2183
2716
  }
2184
2717
 
2718
+ form#bank-account #active-field label {
2719
+ text-align: center;
2720
+ }
2185
2721
 
2186
- /*
2187
- * Customization for the 'New Bank Account' & 'Update Bank Account' pages
2188
- */
2189
2722
  form#bank-account .hidden {
2190
2723
  display: none;
2191
2724
  }
@@ -2197,7 +2730,7 @@ form#bank-account .hidden {
2197
2730
  #bank-account-summaries-container {
2198
2731
  display: flex;
2199
2732
  flex-direction: column;
2200
- align-items: center
2733
+ align-items: center;
2201
2734
  }
2202
2735
 
2203
2736
  #bank-account-summaries-container h2.bank {
@@ -2221,7 +2754,11 @@ form#bank-account .hidden {
2221
2754
  #bank-account-summaries {
2222
2755
  display: flex;
2223
2756
  flex-direction: column;
2757
+ align-items: center;
2758
+ gap: 25px;
2224
2759
  width: 100%;
2760
+ padding: 10px;
2761
+ box-sizing: border-box;
2225
2762
  }
2226
2763
 
2227
2764
  #bank-account-summaries .account-type-stack {
@@ -2229,7 +2766,13 @@ form#bank-account .hidden {
2229
2766
  flex-direction: column;
2230
2767
  width: 60%;
2231
2768
  min-width: 400px;
2232
- 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
+ }
2233
2776
  }
2234
2777
 
2235
2778
  #bank-account-summaries .account-block {
@@ -2238,19 +2781,43 @@ form#bank-account .hidden {
2238
2781
  align-items: center;
2239
2782
  padding: 30px 10%;
2240
2783
  }
2784
+ @media screen and (max-width: 600px) {
2785
+ /* Mobile layout */
2786
+ #bank-account-summaries .account-block {
2787
+ padding: 20px 20px;
2788
+ }
2789
+ }
2241
2790
 
2242
2791
  #bank-account-summaries .account-block .title {
2243
2792
  font-size: 16pt;
2244
2793
  }
2794
+ @media screen and (max-width: 600px) {
2795
+ /* Mobile layout */
2796
+ #bank-account-summaries .account-block .title {
2797
+ font-size: 12pt;
2798
+ }
2799
+ }
2245
2800
 
2246
2801
  #bank-account-summaries .account-block .title .digits {
2247
2802
  margin-right: 10px;
2248
2803
  }
2804
+ @media screen and (max-width: 600px) {
2805
+ /* Mobile layout */
2806
+ #bank-account-summaries .account-block .title .digits {
2807
+ display: block;
2808
+ }
2809
+ }
2249
2810
 
2250
2811
  #bank-account-summaries .account-block .balance {
2251
2812
  font-size: 24pt;
2252
2813
  font-weight: bold;
2253
2814
  }
2815
+ @media screen and (max-width: 600px) {
2816
+ /* Mobile layout */
2817
+ #bank-account-summaries .account-block .balance {
2818
+ font-size: 18pt;
2819
+ }
2820
+ }
2254
2821
 
2255
2822
 
2256
2823
  /*
@@ -2262,18 +2829,25 @@ form#bank-account .hidden {
2262
2829
  }
2263
2830
  }
2264
2831
 
2265
- #balance-chart {
2832
+ #balance-chart-container {
2266
2833
  width: 42.5%;
2267
2834
  max-width: 600px;
2268
- margin-top: 40px;
2835
+ margin: 40px auto 0;
2269
2836
  }
2270
2837
  @media screen and (max-width: 1500px) {
2271
- #balance-chart {
2838
+ #balance-chart-container {
2272
2839
  order: 2;
2273
2840
  width: 45%;
2274
2841
  min-width: 450px;
2275
2842
  }
2276
2843
  }
2844
+ @media screen and (max-width: 600px) {
2845
+ /* Mobile layout */
2846
+ #balance-chart-container {
2847
+ width: 90%;
2848
+ min-width: 200px;
2849
+ }
2850
+ }
2277
2851
 
2278
2852
  #balance-chart .ct-chart-line {
2279
2853
  overflow: visible;
@@ -2287,6 +2861,13 @@ form#bank-account .hidden {
2287
2861
  stroke-width: 2px;
2288
2862
  }
2289
2863
 
2864
+ @media screen and (max-width: 600px) {
2865
+ /* Mobile layout */
2866
+ #balance-chart .ct-label {
2867
+ font-size: 0.5rem;
2868
+ }
2869
+ }
2870
+
2290
2871
 
2291
2872
  /*
2292
2873
  * Customization for the 'New Bank Transaction'/'Update Bank Transaction' pages
@@ -2294,6 +2875,12 @@ form#bank-account .hidden {
2294
2875
  form#bank-transaction .bank-field {
2295
2876
  flex: 3;
2296
2877
  }
2878
+ @media screen and (max-width: 600px) {
2879
+ /* Mobile layout */
2880
+ form#bank-transaction .bank-field {
2881
+ min-width: 200px;
2882
+ }
2883
+ }
2297
2884
 
2298
2885
  form#bank-transaction .account-type-field {
2299
2886
  flex: 1;
@@ -2383,21 +2970,22 @@ form#bank-transaction .transfer-title {
2383
2970
  transition: margin-left 0.2s;
2384
2971
  perspective: 1200px;
2385
2972
  }
2386
-
2387
- #credit-account-info div.credit-card-block:hover {
2388
- margin-left: 0;
2389
- padding-left: 15px;
2390
- }
2391
-
2392
2973
  #credit-account-info div.credit-card-block:first-of-type {
2393
2974
  padding-right: 10px;
2394
2975
  }
2395
-
2396
2976
  #credit-account-info div.credit-card-block:last-of-type {
2397
2977
  margin-left: 0;
2398
2978
  padding-left: 0;
2399
2979
  }
2400
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
+
2401
2989
  #credit-account-info .credit-card .card-face {
2402
2990
  cursor: pointer;
2403
2991
  }
@@ -2415,10 +3003,6 @@ form#bank-transaction .transfer-title {
2415
3003
  /*
2416
3004
  * Customization for the 'New Card' & 'Update Card' pages
2417
3005
  */
2418
- form#card {
2419
- min-width: 500px;
2420
- }
2421
-
2422
3006
  form#card #last-four-digits-field {
2423
3007
  flex-basis: 25%;
2424
3008
  min-width: 150px;
@@ -2505,12 +3089,34 @@ form#card #statement-due-day-field {
2505
3089
  #credit-statements {
2506
3090
  display: flex;
2507
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
+ }
2508
3105
  }
2509
3106
 
2510
3107
  #credit-statements .card-stack {
2511
3108
  display: flex;
2512
3109
  flex-direction: column;
2513
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
+ }
2514
3120
  }
2515
3121
 
2516
3122
  #credit-statements .card-stack .stack-title {
@@ -2524,6 +3130,13 @@ form#card #statement-due-day-field {
2524
3130
  width: 275px;
2525
3131
  padding: 45px 50px;
2526
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
+ }
2527
3140
 
2528
3141
  #credit-statements .statement-block .date,
2529
3142
  #credit-statements .statement-block .payment {
@@ -2536,16 +3149,35 @@ form#card #statement-due-day-field {
2536
3149
  font-size: 22pt;
2537
3150
  letter-spacing: -1px;
2538
3151
  }
3152
+ @media screen and (max-width: 600px) {
3153
+ /* Mobile layout */
3154
+ #credit-statements .statement-block .date .month {
3155
+ font-size: 16pt;
3156
+ }
3157
+ }
2539
3158
 
2540
3159
  #credit-statements .statement-block .date .year {
2541
3160
  font-size: 16pt;
2542
3161
  letter-spacing: 1px;
2543
3162
  }
3163
+ @media screen and (max-width: 600px) {
3164
+ /* Mobile layout */
3165
+ #credit-statements .statement-block .date .year {
3166
+ font-size: 12pt;
3167
+ }
3168
+ }
2544
3169
 
2545
3170
  #credit-statements .statement-block .payment .balance {
2546
3171
  font-size: 30pt;
2547
3172
  font-weight: bold;
2548
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
+
2549
3181
 
2550
3182
  #credit-statements .statement-block .payment .paid-notice {
2551
3183
  font-size: 10pt;
@@ -2555,10 +3187,6 @@ form#card #statement-due-day-field {
2555
3187
  /*
2556
3188
  * Customization for the (credit) 'Statement Details' page
2557
3189
  */
2558
- #credit-statement-details #statement-summary {
2559
- min-width: 375px;
2560
- }
2561
-
2562
3190
  #credit-statement-details #statement-summary #payment {
2563
3191
  width: 100%;
2564
3192
  font-size: 12pt;
@@ -2567,7 +3195,8 @@ form#card #statement-due-day-field {
2567
3195
  #credit-statement-details #statement-summary #due {
2568
3196
  float: left;
2569
3197
  display: flex;
2570
- width: 140px;
3198
+ width: 40%;
3199
+ min-width: 160px;
2571
3200
  }
2572
3201
 
2573
3202
  #credit-statement-details #statement-summary #due-date {
@@ -2577,15 +3206,44 @@ form#card #statement-due-day-field {
2577
3206
 
2578
3207
  #credit-statement-details #statement-summary #paid {
2579
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
+ }
2580
3230
  }
2581
3231
 
2582
3232
  form#pay {
2583
3233
  clear: left;
2584
3234
  position: relative;
2585
- width: 300px;
3235
+ width: 85%;
2586
3236
  margin: 50px auto 0;
2587
3237
  border-radius: 5px;
2588
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
+ }
2589
3247
  }
2590
3248
 
2591
3249
  form#pay button {
@@ -2620,6 +3278,12 @@ form#pay .form-line {
2620
3278
  border-bottom-right-radius: 0;
2621
3279
  box-sizing: border-box;
2622
3280
  }
3281
+ @media screen and (max-width: 600px) {
3282
+ /* Mobile layout */
3283
+ form#pay .form-line {
3284
+ width: 70%;
3285
+ }
3286
+ }
2623
3287
 
2624
3288
  form#pay .form-line input,
2625
3289
  form#pay .form-line select {
@@ -2634,12 +3298,25 @@ form#pay .form-line .dollar-sign {
2634
3298
  height: 100%;
2635
3299
  color: #666666;
2636
3300
  }
3301
+ @media screen and (max-width: 600px) {
3302
+ /* Mobile layout */
3303
+ form#pay .form-line .dollar-sign {
3304
+ top: -15px;
3305
+ }
3306
+ }
2637
3307
 
2638
3308
  form#pay .form-line #pay-amount,
2639
3309
  form#pay .form-line #pay-date {
2640
- width: 50%;
3310
+ width: 49%;
2641
3311
  border-bottom: 2px solid #eeeeee;
2642
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
+ }
2643
3320
 
2644
3321
  form#pay .form-line #pay-amount {
2645
3322
  padding-left: 25px;
@@ -2650,6 +3327,12 @@ form#pay .form-line #pay-amount {
2650
3327
  border-bottom-left-radius: 0;
2651
3328
  text-align: right;
2652
3329
  }
3330
+ @media screen and (max-width: 600px) {
3331
+ /* Mobile layout */
3332
+ form#pay .form-line #pay-amount {
3333
+ padding-right: 5px;
3334
+ }
3335
+ }
2653
3336
 
2654
3337
  form#pay .form-line #pay-date {
2655
3338
  text-align: center;
@@ -2657,7 +3340,6 @@ form#pay .form-line #pay-date {
2657
3340
  border-bottom-left-radius: 0;
2658
3341
  }
2659
3342
 
2660
-
2661
3343
  form#pay #make-payment {
2662
3344
  position: absolute;
2663
3345
  top: 0;
@@ -2684,6 +3366,13 @@ form#pay #make-payment[type="submit"] {
2684
3366
  border-top-left-radius: 0;
2685
3367
  border-bottom-left-radius: 0;
2686
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
+ }
2687
3376
 
2688
3377
  form#pay #make-payment[type="submit"] #prompt {
2689
3378
  display: none;
@@ -2699,6 +3388,195 @@ form#pay #make-payment[type="submit"] #prompt {
2699
3388
  text-align: right;
2700
3389
  }
2701
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
+
2702
3580
 
2703
3581
  /*
2704
3582
  * Customization for the 'New Credit Transaction'/