PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / trunk
ووسلام – همگام سازی ووکامرس و باسلام vtrunk
1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 1.8.7 1.8.4 All 51 releases
sync-basalam / assets / css / finance.css

finance.css in ووسلام – همگام سازی ووکامرس و باسلام trunk, at assets/css/finance.css

847 lines 17.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* Financial Management Page Styles */
2 /* Using PelakFA font and matching main plugin conventions */
3
4 :root {
5 --basalam-primary-color: #ff5c35;
6 --basalam-primary-hover: #e54e2a;
7 --basalam-success-color: #28a745;
8 --basalam-success-hover: #218838;
9 --basalam-danger-color: #dc3545;
10 --basalam-danger-hover: #c82333;
11 --basalam-gray-100: #f7fafc;
12 --basalam-gray-200: #edf2f7;
13 --basalam-gray-300: #e2e8f0;
14 --basalam-gray-400: #cbd5e0;
15 --basalam-gray-500: #a0aec0;
16 --basalam-gray-600: #718096;
17 --basalam-gray-700: #4a5568;
18 --basalam-gray-800: #2d3748;
19 }
20
21 /* Balance Grid */
22 .basalam-balance-grid {
23 display: grid;
24 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
25 gap: 20px;
26 margin-top: 16px;
27 }
28
29 .basalam-balance-card {
30 display: flex;
31 align-items: flex-start;
32 gap: 16px;
33 padding: 20px;
34 background: var(--basalam-gray-100);
35 border-radius: 12px;
36 border: 1px solid var(--basalam-gray-200);
37 transition: all 0.3s ease;
38 }
39
40 .basalam-balance-card:hover {
41 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
42 transform: translateY(-2px);
43 }
44
45 .basalam-balance-card--highlight {
46 background: linear-gradient(135deg, #fff5f0 0%, #ffe8e0 100%);
47 border-color: var(--basalam-primary-color);
48 }
49
50 .basalam-balance-card__icon {
51 width: 48px;
52 height: 48px;
53 display: flex;
54 align-items: center;
55 justify-content: center;
56 background: white;
57 border-radius: 10px;
58 flex-shrink: 0;
59 }
60
61 .basalam-balance-card__icon .dashicons {
62 font-size: 24px;
63 width: 24px;
64 height: 24px;
65 color: var(--basalam-primary-color);
66 }
67
68 .basalam-balance-card--highlight .basalam-balance-card__icon {
69 background: var(--basalam-primary-color);
70 }
71
72 .basalam-balance-card--highlight .basalam-balance-card__icon .dashicons {
73 color: white;
74 }
75
76 .basalam-balance-card__content h3 {
77 font-family: "PelakFA", sans-serif;
78 font-size: 14px;
79 font-weight: 600;
80 color: var(--basalam-gray-700);
81 margin: 0 0 8px 0;
82 }
83
84 .basalam-balance-card__value {
85 font-family: "PelakFA", sans-serif;
86 font-size: 24px;
87 font-weight: 700;
88 color: var(--basalam-gray-800);
89 direction: rtl;
90 text-align: right;
91 }
92
93 .basalam-balance-card__value--small {
94 font-size: 18px;
95 }
96
97 .basalam-balance-card__content p {
98 font-family: "PelakFA", sans-serif;
99 font-size: 12px;
100 color: var(--basalam-gray-500);
101 margin: 8px 0 0 0;
102 }
103
104 .basalam-balance-actions {
105 display: grid;
106 grid-template-columns: repeat(2, minmax(0, 1fr));
107 gap: 16px;
108 margin-top: 20px;
109 }
110
111 .basalam-balance-action-wrap {
112 position: relative;
113 display: block;
114 }
115
116 .basalam-balance-action {
117 display: inline-flex;
118 align-items: center;
119 justify-content: center;
120 width: 100%;
121 min-height: 52px;
122 padding: 0 20px;
123 border-radius: 12px;
124 border: 1px solid transparent;
125 font-family: "PelakFA", sans-serif;
126 font-size: 14px;
127 font-weight: 600;
128 line-height: 1.4;
129 cursor: pointer;
130 transition: all 0.2s ease;
131 }
132
133 .basalam-balance-action[disabled] {
134 cursor: not-allowed;
135 opacity: 0.72;
136 pointer-events: none;
137 }
138
139 .basalam-balance-action--wallet {
140 background: #fff5f0;
141 border-color: #ffd8cc;
142 color: var(--basalam-primary-color);
143 }
144
145 .basalam-balance-action--wallet:hover {
146 background: #ffe8e0;
147 border-color: #ffc2ad;
148 }
149
150 .basalam-balance-action--bank {
151 background: var(--basalam-primary-color);
152 border-color: var(--basalam-primary-color);
153 color: #fff;
154 box-shadow: 0 10px 24px rgba(255, 92, 53, 0.18);
155 }
156
157 .basalam-balance-action--bank:hover {
158 background: var(--basalam-primary-hover);
159 border-color: var(--basalam-primary-hover);
160 }
161
162 .basalam-balance-action-wrap::before,
163 .basalam-balance-action-wrap::after {
164 position: absolute;
165 left: 50%;
166 opacity: 0;
167 visibility: hidden;
168 transform: translateX(-50%) translateY(6px);
169 transition: all 0.18s ease;
170 pointer-events: none;
171 z-index: 5;
172 }
173
174 .basalam-balance-action-wrap::before {
175 content: attr(data-tooltip);
176 bottom: calc(100% + 10px);
177 min-width: 180px;
178 max-width: 240px;
179 padding: 10px 12px;
180 border-radius: 10px;
181 background: var(--basalam-gray-800);
182 color: #fff;
183 font-family: "PelakFA", sans-serif;
184 font-size: 12px;
185 line-height: 1.6;
186 text-align: center;
187 box-shadow: 0 12px 24px rgba(45, 55, 72, 0.2);
188 }
189
190 .basalam-balance-action-wrap::after {
191 content: "";
192 bottom: calc(100% + 4px);
193 width: 10px;
194 height: 10px;
195 background: var(--basalam-gray-800);
196 transform: translateX(-50%) translateY(6px) rotate(45deg);
197 }
198
199 .basalam-balance-action-wrap:hover::before,
200 .basalam-balance-action-wrap:hover::after,
201 .basalam-balance-action-wrap:focus-visible::before,
202 .basalam-balance-action-wrap:focus-visible::after {
203 opacity: 1;
204 visibility: visible;
205 }
206
207 .basalam-balance-action-wrap:hover::before,
208 .basalam-balance-action-wrap:focus-visible::before {
209 transform: translateX(-50%) translateY(0);
210 }
211
212 .basalam-balance-action-wrap:hover::after,
213 .basalam-balance-action-wrap:focus-visible::after {
214 transform: translateX(-50%) translateY(0) rotate(45deg);
215 }
216
217 .basalam-balance-action-wrap:focus-visible {
218 outline: 2px solid rgba(255, 92, 53, 0.35);
219 outline-offset: 4px;
220 border-radius: 14px;
221 }
222
223 /* Settlement List */
224 .basalam-settlement-list {
225 display: flex;
226 flex-direction: column;
227 gap: 16px;
228 margin-top: 16px;
229 }
230
231 .basalam-settlement-card {
232 background: var(--basalam-gray-100);
233 border-radius: 12px;
234 padding: 16px 20px;
235 border: 1px solid var(--basalam-gray-200);
236 transition: all 0.3s ease;
237 }
238
239 .basalam-settlement-card:hover {
240 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
241 border-color: var(--basalam-gray-300);
242 }
243
244 .basalam-settlement-card__top {
245 display: flex;
246 justify-content: space-between;
247 align-items: center;
248 margin-bottom: 12px;
249 flex-wrap: wrap;
250 gap: 8px;
251 }
252
253 .basalam-settlement-card__id {
254 font-family: "PelakFA", sans-serif;
255 font-size: 14px;
256 font-weight: 600;
257 color: var(--basalam-gray-600);
258 }
259
260 .basalam-settlement-card__amount {
261 font-family: "PelakFA", sans-serif;
262 font-size: 18px;
263 font-weight: 700;
264 color: var(--basalam-gray-800);
265 direction: rtl;
266 }
267
268 .basalam-settlement-card__meta {
269 display: flex;
270 flex-wrap: wrap;
271 gap: 16px;
272 align-items: center;
273 font-family: "PelakFA", sans-serif;
274 font-size: 12px;
275 color: var(--basalam-gray-600);
276 }
277
278 .basalam-settlement-card__meta .dashicons {
279 font-size: 14px;
280 width: 14px;
281 height: 14px;
282 vertical-align: middle;
283 margin-left: 4px;
284 color: var(--basalam-gray-500);
285 }
286
287 .basalam-settlement-card__description {
288 font-family: "PelakFA", sans-serif;
289 font-size: 13px;
290 color: var(--basalam-gray-600);
291 margin: 12px 0 0 0;
292 padding-top: 12px;
293 border-top: 1px solid var(--basalam-gray-200);
294 line-height: 1.6;
295 }
296
297 /* Status Badges */
298 .basalam-status-badge {
299 display: inline-flex;
300 align-items: center;
301 padding: 4px 12px;
302 border-radius: 20px;
303 font-family: "PelakFA", sans-serif;
304 font-size: 12px;
305 width: fit-content;
306 font-weight: 500;
307 -webkit-border-radius: 20px;
308 -moz-border-radius: 20px;
309 -ms-border-radius: 20px;
310 -o-border-radius: 20px;
311 }
312
313 .basalam-status-badge--created {
314 background: #fff3cd !important;
315 color: #856404 !important;
316 }
317
318 .basalam-status-badge--prepared {
319 background: #cce5ff !important;
320 color: #004085 !important;
321 }
322
323 .basalam-status-badge--confirmed {
324 background: #d4edda !important;
325 color: var(--basalam-success-color) !important;
326 }
327
328 .basalam-status-badge--paid {
329 background: #d4edda !important;
330 color: var(--basalam-success-color) !important;
331 }
332
333 .basalam-status-badge--rejected {
334 background: #f8d7da !important;
335 color: var(--basalam-danger-color) !important;
336 }
337
338 .basalam-status-badge--default {
339 background: var(--basalam-gray-200) !important;
340 color: var(--basalam-gray-600) !important;
341 }
342
343 /* History Table */
344 .basalam-history-table-wrap {
345 overflow-x: auto;
346 margin-top: 16px;
347 border-radius: 8px;
348 border: 1px solid var(--basalam-gray-200);
349 }
350
351 .basalam-history-table {
352 width: 100%;
353 border-collapse: collapse;
354 font-family: "PelakFA", sans-serif;
355 font-size: 13px;
356 }
357
358 .basalam-history-table th {
359 background: var(--basalam-gray-100);
360 padding: 14px 16px;
361 text-align: right;
362 font-weight: 600;
363 color: var(--basalam-gray-700);
364 border-bottom: 2px solid var(--basalam-gray-200);
365 white-space: nowrap;
366 }
367
368 .basalam-history-table td {
369 padding: 14px 16px;
370 border-bottom: 1px solid var(--basalam-gray-200);
371 vertical-align: top;
372 color: var(--basalam-gray-700);
373 }
374
375 .basalam-history-table tr:last-child td {
376 border-bottom: none;
377 }
378
379 .basalam-history-table tr:hover td {
380 background: var(--basalam-gray-100);
381 }
382
383 .basalam-history-table__title {
384 min-width: 160px;
385 }
386
387 .basalam-history-table__date {
388 min-width: 180px;
389 }
390
391 .basalam-history-table__amount {
392 font-weight: 600;
393 color: var(--basalam-gray-800);
394 direction: rtl;
395 text-align: right;
396 white-space: nowrap;
397 }
398
399 .basalam-history-table__description {
400 max-width: 200px;
401 color: var(--basalam-gray-500);
402 }
403
404 .basalam-history-item-info div,
405 .basalam-history-item-date div {
406 margin-bottom: 4px;
407 }
408
409 .basalam-history-item-info strong,
410 .basalam-history-item-date strong {
411 color: var(--basalam-gray-600);
412 margin-left: 4px;
413 }
414
415 .basalam-history-item-method {
416 display: flex;
417 flex-direction: column;
418 gap: 8px;
419 }
420
421 /* Empty State */
422 .basalam-empty-state {
423 display: flex;
424 flex-direction: column;
425 align-items: center;
426 justify-content: center;
427 padding: 40px 20px;
428 text-align: center;
429 color: var(--basalam-gray-500);
430 }
431
432 .basalam-empty-state .dashicons {
433 font-size: 48px;
434 width: 48px;
435 height: 48px;
436 color: var(--basalam-success-color);
437 margin-bottom: 16px;
438 }
439
440 .basalam-empty-state p {
441 font-family: "PelakFA", sans-serif;
442 font-size: 14px;
443 margin: 0;
444 }
445
446 /* Notice Styles */
447 .basalam-container .notice {
448 margin: 16px 0 0 0;
449 font-family: "PelakFA", sans-serif;
450 }
451
452 .basalam-container .notice p {
453 font-family: "PelakFA", sans-serif;
454 font-size: 13px;
455 }
456
457 /* Pagination Enhancement */
458 .basalam-pagination {
459 margin-top: 20px;
460 font-family: "PelakFA", sans-serif;
461 text-align: center;
462 direction: rtl;
463 display: flex;
464 justify-content: center;
465 flex-wrap: wrap;
466 gap: 4px;
467 }
468
469 .basalam-pagination .page-numbers {
470 display: inline-flex;
471 align-items: center;
472 justify-content: center;
473 min-width: 36px;
474 height: 36px;
475 padding: 0 12px;
476 border: 1px solid var(--basalam-gray-300);
477 border-radius: 6px;
478 color: var(--basalam-gray-700);
479 text-decoration: none;
480 transition: all 0.2s ease;
481 font-size: 13px;
482 }
483
484 .basalam-pagination .page-numbers:hover:not(.current) {
485 background: var(--basalam-gray-100);
486 border-color: var(--basalam-gray-400);
487 color: var(--basalam-gray-800);
488 }
489
490 .basalam-pagination .page-numbers.current {
491 background: var(--basalam-primary-color);
492 color: white;
493 border-color: var(--basalam-primary-color);
494 font-weight: 600;
495 }
496
497 .basalam-pagination .prev-next {
498 background: var(--basalam-gray-100);
499 font-weight: 500;
500 padding: 0 16px;
501 }
502
503 .basalam-pagination .prev-next:hover {
504 background: var(--basalam-gray-200);
505 }
506
507 .basalam-history-section {
508 position: relative;
509 }
510
511 .basalam-history-section.is-loading {
512 pointer-events: none;
513 }
514
515 .basalam-history-section.is-loading::before {
516 content: "";
517 position: absolute;
518 top: 18px;
519 left: 18px;
520 width: 18px;
521 height: 18px;
522 border: 2px solid var(--basalam-gray-300);
523 border-top-color: var(--basalam-primary-color);
524 border-radius: 50%;
525 animation: basalam-spin 0.8s linear infinite;
526 z-index: 2;
527 }
528
529 .basalam-history-section.is-loading::after {
530 content: "";
531 position: absolute;
532 inset: 0;
533 background: rgba(255, 255, 255, 0.55);
534 border-radius: 12px;
535 z-index: 1;
536 }
537
538 @keyframes basalam-spin {
539 to {
540 transform: rotate(360deg);
541 }
542 }
543
544 /* Responsive */
545 @media (max-width: 768px) {
546 .basalam-balance-grid {
547 grid-template-columns: 1fr;
548 }
549
550 .basalam-balance-actions {
551 gap: 10px;
552 }
553
554 .basalam-balance-action {
555 min-height: 48px;
556 padding: 0 12px;
557 font-size: 13px;
558 }
559
560 .basalam-settlement-card__meta {
561 flex-direction: column;
562 align-items: flex-start;
563 gap: 8px;
564 }
565
566 .basalam-history-table th,
567 .basalam-history-table td {
568 padding: 10px 12px;
569 font-size: 12px;
570 }
571
572 .basalam-pagination .page-numbers {
573 min-width: 32px;
574 height: 32px;
575 font-size: 12px;
576 }
577 }
578
579 .basalam-badge-success {
580 font-family: "PelakFA";
581 }
582
583 /* Modal */
584 .basalam-plus-modal-overlay {
585 display: none;
586 position: fixed;
587 inset: 0;
588 z-index: 100000;
589 background: rgba(0, 0, 0, 0.45);
590 align-items: center;
591 justify-content: center;
592 }
593
594 .basalam-plus-modal-overlay.is-open {
595 display: flex !important;
596 }
597
598 .basalam-plus-modal {
599 background: #fff;
600 border-radius: 16px;
601 width: 100%;
602 max-width: 440px;
603 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
604 animation: basalam-plus-modal-in 0.2s ease;
605 direction: rtl;
606 }
607
608 @keyframes basalam-plus-modal-in {
609 from {
610 opacity: 0;
611 transform: translateY(16px) scale(0.97);
612 }
613 to {
614 opacity: 1;
615 transform: translateY(0) scale(1);
616 }
617 }
618
619 .basalam-plus-modal__header {
620 display: flex;
621 align-items: center;
622 justify-content: space-between;
623 padding: 20px 24px 0;
624 }
625
626 .basalam-plus-modal__title {
627 font-family: "PelakFA", sans-serif !important;
628 font-size: 16px;
629 font-weight: 700;
630 color: var(--basalam-gray-800);
631 margin: 0;
632 }
633
634 .basalam-plus-modal__close {
635 background: none;
636 border: none;
637 font-size: 22px;
638 color: var(--basalam-gray-500);
639 cursor: pointer;
640 padding: 0 4px;
641 line-height: 1;
642 transition: color 0.15s;
643 }
644
645 .basalam-plus-modal__close:hover {
646 color: var(--basalam-gray-800);
647 }
648
649 .basalam-plus-modal__body {
650 padding: 20px 24px;
651 }
652
653 .basalam-plus-modal__label {
654 display: block;
655 font-family: "PelakFA", sans-serif;
656 font-size: 13px;
657 font-weight: 600;
658 color: var(--basalam-gray-700);
659 margin-bottom: 8px;
660 }
661
662 .basalam-plus-modal__input {
663 width: 100%;
664 padding: 12px 14px;
665 border: 1px solid var(--basalam-gray-300);
666 border-radius: 10px;
667 font-family: "PelakFA", sans-serif;
668 font-size: 16px;
669 font-weight: 600;
670 color: var(--basalam-gray-800);
671 direction: ltr;
672 text-align: right;
673 outline: none;
674 transition: border-color 0.2s;
675 box-sizing: border-box;
676 }
677
678 .basalam-plus-modal__input:focus {
679 border-color: var(--basalam-primary-color);
680 box-shadow: 0 0 0 3px rgba(255, 92, 53, 0.12);
681 }
682
683 .basalam-plus-modal__input::placeholder {
684 color: var(--basalam-gray-400);
685 font-weight: 400;
686 font-size: 13px;
687 }
688
689 .basalam-plus-modal__input--error {
690 border-color: var(--basalam-danger-color) !important;
691 box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.12) !important;
692 }
693
694 .basalam-plus-modal__balance-error {
695 color: var(--basalam-danger-color);
696 }
697
698 .basalam-plus-modal__balance-info {
699 font-family: "PelakFA", sans-serif;
700 font-size: 13px;
701 color: var(--basalam-gray-600);
702 margin-bottom: 16px;
703 padding: 10px 14px;
704 background: var(--basalam-gray-100);
705 border-radius: 8px;
706 }
707
708 .basalam-plus-modal__balance-info strong {
709 color: var(--basalam-gray-800);
710 }
711
712 .basalam-plus-modal__error {
713 font-family: "PelakFA", sans-serif;
714 font-size: 12px;
715 color: var(--basalam-danger-color);
716 margin-top: 8px;
717 line-height: 1.5;
718 }
719
720 .basalam-plus-modal__footer {
721 display: flex;
722 gap: 12px;
723 padding: 0 24px 20px;
724 }
725
726 .basalam-plus-modal__btn {
727 flex: 1;
728 padding: 12px 16px;
729 border-radius: 10px;
730 border: none;
731 font-family: "PelakFA", sans-serif;
732 font-size: 14px;
733 font-weight: 600;
734 cursor: pointer;
735 transition: all 0.2s;
736 }
737
738 .basalam-plus-modal__btn:disabled {
739 opacity: 0.6;
740 cursor: not-allowed;
741 }
742
743 .basalam-plus-modal__btn--primary {
744 background: var(--basalam-primary-color);
745 color: #fff;
746 }
747
748 .basalam-plus-modal__btn--primary:hover:not(:disabled) {
749 background: var(--basalam-primary-hover);
750 }
751
752 .basalam-plus-modal__btn--secondary {
753 background: var(--basalam-gray-200);
754 color: var(--basalam-gray-700);
755 }
756
757 .basalam-plus-modal__btn--secondary:hover {
758 background: var(--basalam-gray-300);
759 }
760
761 @media (max-width: 480px) {
762 .basalam-plus-modal {
763 max-width: calc(100% - 32px);
764 margin: 16px;
765 }
766 }
767
768 /* Bank Accounts List */
769 .basalam-bank-accounts-list {
770 display: flex;
771 flex-direction: column;
772 gap: 10px;
773 max-height: 300px;
774 overflow-y: auto;
775 }
776
777 .basalam-bank-account-item {
778 display: flex;
779 align-items: flex-start;
780 gap: 12px;
781 padding: 14px 16px;
782 border: 2px solid var(--basalam-gray-200);
783 border-radius: 12px;
784 cursor: pointer;
785 transition: all 0.2s;
786 background: var(--basalam-gray-100);
787 }
788
789 .basalam-bank-account-item:hover {
790 border-color: var(--basalam-gray-400);
791 background: var(--basalam-gray-200);
792 }
793
794 .basalam-bank-account-item.is-selected {
795 border-color: var(--basalam-primary-color);
796 background: #fff5f0;
797 }
798
799 .basalam-bank-account-item__radio {
800 margin-top: 4px;
801 accent-color: var(--basalam-primary-color);
802 width: 18px;
803 height: 18px;
804 flex-shrink: 0;
805 cursor: pointer;
806 }
807
808 .basalam-bank-account-item__content {
809 flex: 1;
810 display: flex;
811 flex-direction: column;
812 gap: 6px;
813 }
814
815 .basalam-bank-account-item__row {
816 display: flex;
817 gap: 6px;
818 font-family: "PelakFA", sans-serif;
819 font-size: 13px;
820 line-height: 1.6;
821 }
822
823 .basalam-bank-account-item__label {
824 color: var(--basalam-gray-500);
825 white-space: nowrap;
826 }
827
828 .basalam-bank-account-item__value {
829 color: var(--basalam-gray-800);
830 font-weight: 600;
831 }
832
833 .basalam-bank-account-item__sheba {
834 direction: ltr;
835 text-align: right;
836 letter-spacing: 0.5px;
837 }
838
839 .basalam-bank-accounts-loading,
840 .basalam-bank-accounts-empty {
841 font-family: "PelakFA", sans-serif;
842 font-size: 13px;
843 color: var(--basalam-gray-500);
844 text-align: center;
845 padding: 24px 0;
846 }
847