Spaces:
Sleeping
Sleeping
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ADMIN PANEL STYLES - AADHAAR PRO | |
| Organized CSS with Reusable Utility Classes | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SECTION 1: REUSABLE UTILITY CLASSES (DRY Principles) | |
| Use these across multiple components | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| /* βββ Master Hover Effect (Stat Card Style) ββββββββββββββββββββββ*/ | |
| /* Apply to ANY element for premium hover animation */ | |
| .hover-effect-master { | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .hover-effect-master::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .hover-effect-master:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| transform: translateY(-3px); | |
| } | |
| .hover-effect-master:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ Card Base Styles βββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .card-base { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 16px; | |
| padding: 24px; | |
| } | |
| /* βββ Button Base Styles βββββββββββββββββββββββββββββββββββββββββ*/ | |
| .button-base { | |
| padding: 10px 18px; | |
| border-radius: 10px; | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .button-base::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .button-base:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| transform: translateY(-3px); | |
| } | |
| .button-base:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ Input/Select Base Styles βββββββββββββββββββββββββββββββββββ*/ | |
| .input-base { | |
| padding: 12px 16px; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| cursor: pointer; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .input-base::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .input-base:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .input-base:hover::before { | |
| opacity: 1; | |
| } | |
| .input-base:focus { | |
| outline: none; | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1); | |
| } | |
| /* βββ Table Row Base Styles ββββββββββββββββββββββββββββββββββββββ*/ | |
| .table-row-base { | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .table-row-base::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .table-row-base:hover { | |
| background: var(--bg-color); | |
| transform: translateX(4px); | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); | |
| } | |
| .table-row-base:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ Badge/Pill Base Styles βββββββββββββββββββββββββββββββββββββ*/ | |
| .badge-base { | |
| display: inline-block; | |
| padding: 4px 12px; | |
| border-radius: 20px; | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .badge-base:hover { | |
| transform: scale(1.05); | |
| } | |
| /* Status Variants */ | |
| .badge-pending { | |
| background: rgba(245, 158, 11, 0.1); | |
| color: #b45309; | |
| } | |
| .badge-approved { | |
| background: rgba(34, 197, 94, 0.1); | |
| color: #15803d; | |
| } | |
| .badge-rejected { | |
| background: rgba(239, 68, 68, 0.1); | |
| color: #b91c1c; | |
| } | |
| /* βββ Layout Utilities βββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .grid-auto-fit { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: 16px; | |
| } | |
| .flex-center { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .flex-between { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| /* βββ Animation Utilities ββββββββββββββββββββββββββββββββββββββββ*/ | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes slideUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .animate-fade-in { | |
| animation: fadeIn 0.3s ease; | |
| } | |
| .animate-slide-up { | |
| animation: slideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SECTION 2: ADMIN LAYOUT & STRUCTURE | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| /* Admin Grid Layout */ | |
| .admin-grid { | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| gap: 30px; | |
| margin-top: 20px; | |
| } | |
| /* Section Management */ | |
| .admin-section { | |
| display: none; | |
| opacity: 0; | |
| transform: translateY(20px); | |
| transition: all 0.4s ease; | |
| } | |
| .admin-section.active { | |
| display: block; | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SECTION 3: TAB NAVIGATION COMPONENTS | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| /* βββ Admin Tabs βββββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .admin-tabs { | |
| display: flex; | |
| gap: 8px; | |
| margin-bottom: 25px; | |
| overflow-x: auto; | |
| padding-bottom: 5px; | |
| scrollbar-width: none; | |
| } | |
| .admin-tabs::-webkit-scrollbar { | |
| display: none; | |
| } | |
| .admin-tab-btn { | |
| padding: 12px 24px; | |
| border-radius: 12px; | |
| border: 2px solid var(--border-color); | |
| background: transparent; | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.95rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| color: var(--text-muted); | |
| white-space: nowrap; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .admin-tab-btn::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .admin-tab-btn:hover, | |
| .admin-tab-btn.tab-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| transform: translateY(-3px); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| } | |
| .admin-tab-btn:hover::before, | |
| .admin-tab-btn.tab-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| .admin-tab-btn.active, | |
| .admin-tab-btn.tab-hover-effect.active { | |
| background: var(--primary-color); | |
| border-color: var(--primary-color); | |
| color: white; | |
| box-shadow: 0 8px 20px rgba(67, 97, 238, 0.2); | |
| transform: translateY(-3px); | |
| } | |
| .admin-tab-btn.active:hover, | |
| .admin-tab-btn.tab-hover-effect.active:hover { | |
| box-shadow: 0 10px 25px rgba(67, 97, 238, 0.3); | |
| } | |
| /* βββ Payment Tabs βββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .payment-tabs-container { | |
| display: flex; | |
| gap: 4px; | |
| margin: 20px 0; | |
| overflow-x: auto; | |
| padding-bottom: 5px; | |
| } | |
| .payment-tab-btn { | |
| padding: 12px 24px; | |
| border-radius: 8px; | |
| border: 2px solid var(--border-color); | |
| background: var(--card-bg); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| cursor: pointer; | |
| color: var(--text-color); | |
| white-space: nowrap; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .payment-tab-btn::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .payment-tab-btn:hover, | |
| .payment-tab-btn.tab-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| transform: translateY(-3px); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| } | |
| .payment-tab-btn:hover::before, | |
| .payment-tab-btn.tab-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| .payment-tab-btn.active, | |
| .payment-tab-btn.tab-hover-effect.active { | |
| background: var(--primary-color); | |
| border-color: var(--primary-color); | |
| color: white; | |
| box-shadow: 0 8px 20px rgba(67, 97, 238, 0.2); | |
| transform: translateY(-3px); | |
| } | |
| .payment-tab-btn.active:hover, | |
| .payment-tab-btn.tab-hover-effect.active:hover { | |
| box-shadow: 0 10px 25px rgba(67, 97, 238, 0.3); | |
| } | |
| /* βββ Ticket Filter Tabs βββββββββββββββββββββββββββββββββββββββββ*/ | |
| .ticket-filter-tabs { | |
| display: flex; | |
| gap: 6px; | |
| padding: 12px 16px; | |
| border-bottom: 1px solid var(--border-color); | |
| flex-wrap: wrap; | |
| background: var(--bg-secondary); | |
| } | |
| .tf-tab { | |
| font-size: 0.75rem; | |
| padding: 8px 16px; | |
| border-radius: 20px; | |
| border: 2px solid var(--border-color); | |
| cursor: pointer; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-weight: 600; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .tf-tab::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .tf-tab:hover, | |
| .tf-tab.tab-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| transform: translateY(-3px); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| } | |
| .tf-tab:hover::before, | |
| .tf-tab.tab-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| .tf-tab.on { | |
| background: var(--card-bg) ; | |
| border-color: var(--border-color) ; | |
| color: var(--text-color) ; | |
| font-weight: 600 ; | |
| } | |
| /* βββ Wallet Filter Select βββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-filter-select { | |
| padding: 12px 16px; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-size: 0.9rem; | |
| cursor: pointer; | |
| min-width: 160px; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .wallet-filter-select::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .wallet-filter-select:hover, | |
| .wallet-filter-select.input-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .wallet-filter-select:hover::before, | |
| .wallet-filter-select.input-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ Wallet Sort Select βββββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-sort-select { | |
| padding: 12px 16px; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-size: 0.9rem; | |
| cursor: pointer; | |
| min-width: 180px; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .wallet-sort-select::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .wallet-sort-select:hover, | |
| .wallet-sort-select.input-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .wallet-sort-select:hover::before, | |
| .wallet-sort-select.input-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ Wallet Controls ββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-controls { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| margin-bottom: 16px; | |
| } | |
| .wallet-search-wrap { | |
| flex: 1; | |
| min-width: 240px; | |
| position: relative; | |
| } | |
| .wallet-search-wrap i { | |
| position: absolute; | |
| left: 12px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: var(--text-muted); | |
| } | |
| .wallet-controls input, | |
| .wallet-controls select { | |
| padding: 12px 16px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border-color); | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| .wallet-controls input:hover, | |
| .wallet-controls select:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .wallet-controls input:focus, | |
| .wallet-controls select:focus { | |
| outline: none; | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1); | |
| } | |
| .wallet-search-wrap input { | |
| width: 100%; | |
| padding-left: 36px; | |
| } | |
| /* βββ Wallet Controls Inline βββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-controls-inline { | |
| display: flex; | |
| gap: 16px; | |
| align-items: center; | |
| margin: 20px 0; | |
| flex-wrap: wrap; | |
| } | |
| .wallet-search-wrap-inline { | |
| position: relative; | |
| flex: 1; | |
| min-width: 250px; | |
| } | |
| .wallet-search-wrap-inline i { | |
| position: absolute; | |
| left: 12px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: var(--text-muted); | |
| z-index: 2; | |
| } | |
| .wallet-search-wrap-inline input { | |
| width: 100%; | |
| padding: 12px 12px 12px 40px; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-size: 0.9rem; | |
| } | |
| /* βββ Payment Controls βββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .payment-controls-container { | |
| display: flex; | |
| gap: 12px; | |
| margin-bottom: 20px; | |
| flex-wrap: wrap; | |
| } | |
| /* βββ Search Box βββββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .search-box { | |
| position: relative; | |
| flex: 1; | |
| min-width: 250px; | |
| } | |
| .search-box i { | |
| position: absolute; | |
| left: 12px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: var(--text-muted); | |
| transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| z-index: 2; | |
| } | |
| .search-box:hover i { | |
| color: var(--primary-color); | |
| } | |
| .search-box input { | |
| width: 100%; | |
| padding: 12px 16px 12px 40px; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .search-box input::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .search-box input:hover, | |
| .search-box input.input-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .search-box input:hover::before, | |
| .search-box input.input-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| .search-box input:focus { | |
| outline: none; | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1); | |
| } | |
| /* βββ Filter/Sort Selects ββββββββββββββββββββββββββββββββββββββββ*/ | |
| .filter-select { | |
| padding: 12px 16px; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| min-width: 140px; | |
| cursor: pointer; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .filter-select::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .filter-select:hover, | |
| .filter-select.input-hover-effect:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .filter-select:hover::before, | |
| .filter-select.input-hover-effect:hover::before { | |
| opacity: 1; | |
| } | |
| .filter-select:focus { | |
| outline: none; | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1); | |
| } | |
| /* βββ Admin Tab Container ββββββββββββββββββββββββββββββββββββββββ*/ | |
| .admin-tabs-container { | |
| display: flex; | |
| gap: 4px; | |
| margin-bottom: 20px; | |
| overflow-x: auto; | |
| padding-bottom: 5px; | |
| } | |
| /* βββ Tab Badge ββββββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .tab-badge { | |
| display: none; | |
| background: #e74c3c; | |
| color: #fff; | |
| border-radius: 20px; | |
| font-size: 0.7rem; | |
| padding: 1px 7px; | |
| margin-left: 6px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .payment-tab-btn:hover .tab-badge, | |
| .admin-tab-btn:hover .tab-badge { | |
| transform: scale(1.1); | |
| box-shadow: 0 4px 12px rgba(231, 76, 60, 0.3); | |
| } | |
| /* βββ Welcome Banner βββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .admin-banner { | |
| background: var(--primary-gradient) ; | |
| border-radius: 20px; | |
| padding: 30px; | |
| color: #fff ; | |
| border: 2px solid red; | |
| border: none ; | |
| box-shadow: 0 10px 30px rgba(67, 97, 238, 0.2) ; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .admin-banner h1 { | |
| color: #fff ; | |
| margin: 0 0 8px 0 ; | |
| } | |
| .admin-banner p { | |
| color: rgba(255, 255, 255, 0.9) ; | |
| margin: 0 ; | |
| } | |
| .admin-banner .btn-premium.small { | |
| padding: 8px 16px ; | |
| font-size: 0.9rem ; | |
| background: rgba(255, 255, 255, 0.15) ; | |
| border: 1px solid rgba(255, 255, 255, 0.3) ; | |
| color: #fff ; | |
| } | |
| .admin-banner-decoration { | |
| position: absolute; | |
| right: -30px; | |
| top: -30px; | |
| width: 120px; | |
| height: 120px; | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 50%; | |
| } | |
| /* βββ Stat Grid ββββββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .stat-grid-container { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: 16px; | |
| margin-top: 20px; | |
| } | |
| /* βββ Feature Grid Admin βββββββββββββββββββββββββββββββββββββββ*/ | |
| .feature-grid-admin { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 20px; | |
| margin-top: 30px; | |
| } | |
| /* βββ Logo Area Icon βββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .logo-area i { | |
| color: var(--warning); | |
| } | |
| /* βββ Open Ticket Count Badge ββββββββββββββββββββββββββββββββββββ*/ | |
| #open-ticket-count { | |
| display: none; | |
| background: #e74c3c; | |
| color: #fff; | |
| border-radius: 20px; | |
| font-size: 0.7rem; | |
| padding: 1px 6px; | |
| margin-left: auto; | |
| } | |
| /* βββ Enhanced Stat Cards ββββββββββββββββββββββββββββββββββββββββ*/ | |
| .stat-card { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 16px; | |
| padding: 24px; | |
| display: flex; | |
| align-items: center; | |
| gap: 20px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .stat-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .stat-card:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| transform: translateY(-3px); | |
| } | |
| .stat-card:hover::before { | |
| opacity: 1; | |
| } | |
| .stat-icon { | |
| width: 56px; | |
| height: 56px; | |
| border-radius: 14px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 1.6rem; | |
| flex-shrink: 0; | |
| } | |
| .stat-info h3 { | |
| font-size: 1.6rem; | |
| margin: 0 0 6px 0; | |
| color: var(--text-color); | |
| font-weight: 700; | |
| } | |
| .stat-info p { | |
| font-size: 0.9rem; | |
| color: var(--text-muted); | |
| margin: 0; | |
| font-weight: 500; | |
| } | |
| /* βββ Enhanced Feature Cards βββββββββββββββββββββββββββββββββββββ*/ | |
| .feature-card-admin { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 18px; | |
| padding: 25px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .feature-card-admin:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 12px 35px rgba(0, 0, 0, 0.1); | |
| transform: translateY(-3px); | |
| } | |
| .feature-card-admin h4 { | |
| margin: 0 0 18px 0; | |
| font-size: 1.1rem; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| color: var(--text-color); | |
| font-weight: 600; | |
| } | |
| .action-buttons { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 12px; | |
| } | |
| .ra-btn { | |
| padding: 10px 18px; | |
| border-radius: 10px; | |
| border: 2px solid var(--border-color); | |
| background: transparent; | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| color: var(--text-color); | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .ra-btn::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .ra-btn:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| transform: translateY(-3px); | |
| } | |
| .ra-btn:hover::before { | |
| opacity: 1; | |
| } | |
| .ra-btn.primary { | |
| background: var(--primary-color); | |
| border-color: var(--primary-color); | |
| color: white; | |
| } | |
| .ra-btn.primary:hover { | |
| background: #3a0ca3; | |
| border-color: #3a0ca3; | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(67, 97, 238, 0.3); | |
| } | |
| /* βββ Table Wrapper ββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .table-wrapper { | |
| background: var(--card-bg); | |
| border-radius: 20px; | |
| border: 1px solid var(--border-color); | |
| padding: 25px; | |
| overflow-x: auto; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02); | |
| } | |
| .admin-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| } | |
| .admin-table th { | |
| text-align: left; | |
| padding: 18px 15px; | |
| font-size: 0.9rem; | |
| color: var(--text-muted); | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| border-bottom: 2px solid var(--border-color); | |
| } | |
| .admin-table td { | |
| padding: 18px 15px; | |
| border-bottom: 1px solid var(--border-color); | |
| font-size: 0.95rem; | |
| vertical-align: middle; | |
| } | |
| .admin-table tr { | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .admin-table tr::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .admin-table tr:hover, | |
| .admin-table tr.table-row-hover:hover { | |
| background: var(--bg-color); | |
| transform: translateX(4px); | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); | |
| } | |
| .admin-table tr:hover::before, | |
| .admin-table tr.table-row-hover:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ User Info Styling ββββββββββββββββββββββββββββββββββββββββ*/ | |
| .user-cell { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| } | |
| .user-cell strong { | |
| color: var(--text-color); | |
| } | |
| .user-cell small { | |
| color: var(--text-muted); | |
| font-size: 0.8rem; | |
| } | |
| /* βββ Status Badges ββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .status-pill { | |
| padding: 6px 14px; | |
| border-radius: 8px; | |
| font-size: 0.75rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| } | |
| .status-pending { | |
| background: rgba(245, 158, 11, 0.1); | |
| color: #b45309; | |
| } | |
| .status-approved { | |
| background: rgba(34, 197, 94, 0.1); | |
| color: #15803d; | |
| } | |
| .status-rejected { | |
| background: rgba(239, 68, 68, 0.1); | |
| color: #b91c1c; | |
| } | |
| /* βββ Action Buttons βββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .admin-actions { | |
| display: flex; | |
| gap: 10px; | |
| } | |
| .btn-verify { | |
| padding: 8px 16px; | |
| border-radius: 10px; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| border: none; | |
| transition: var(--transition); | |
| } | |
| .btn-approve { | |
| background: var(--success); | |
| color: #fff; | |
| } | |
| .btn-reject { | |
| background: var(--error); | |
| color: #fff; | |
| } | |
| .btn-verify:hover { | |
| transform: translateY(-2px); | |
| opacity: 0.9; | |
| } | |
| .proof-link { | |
| color: var(--primary-color); | |
| text-decoration: none; | |
| font-weight: 600; | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| } | |
| .proof-link:hover { | |
| text-decoration: underline; | |
| } | |
| /* βββ Ticket Panel Split Layout ββββββββββββββββββββββββββββββββ*/ | |
| .ticket-panel { | |
| display: grid; | |
| grid-template-columns: 340px 1fr; | |
| gap: 20px; | |
| min-height: 550px; | |
| margin-top: 20px; | |
| } | |
| .ticket-list-col { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 16px; | |
| overflow: hidden; | |
| display: flex; | |
| flex-direction: column; | |
| position: relative; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .ticket-list-col::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .ticket-list-col:hover::before { | |
| opacity: 1; | |
| } | |
| .ticket-list-header { | |
| padding: 16px 20px; | |
| border-bottom: 1px solid var(--border-color); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| background: var(--bg-secondary); | |
| } | |
| .ticket-list-header h4 { | |
| font-size: 1rem; | |
| font-weight: 700; | |
| color: var(--text-color); | |
| margin: 0; | |
| } | |
| .ticket-list-header button { | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 10px; | |
| border: 2px solid var(--border-color); | |
| background: transparent; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .ticket-list-header button::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .ticket-list-header button:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| transform: translateY(-3px); | |
| box-shadow: 0 8px 20px rgba(67, 97, 238, 0.15); | |
| } | |
| .ticket-list-header button:hover::before { | |
| opacity: 1; | |
| } | |
| .ticket-items { | |
| overflow-y: auto; | |
| max-height: 500px; | |
| flex: 1; | |
| scrollbar-width: thin; | |
| scrollbar-color: var(--border-color) transparent; | |
| } | |
| .tkt-row { | |
| padding: 14px 20px; | |
| border-bottom: 1px solid var(--border-color); | |
| cursor: pointer; | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .tkt-row::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .tkt-row:hover { | |
| background: var(--bg-color); | |
| transform: translateX(4px); | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); | |
| } | |
| .tkt-row:hover::before { | |
| opacity: 1; | |
| } | |
| .tkt-row.active { | |
| background: rgba(67, 97, 238, 0.05); | |
| border-left: 3px solid var(--primary-color); | |
| transform: translateX(4px); | |
| } | |
| .tkt-row-top { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| margin-bottom: 4px; | |
| } | |
| .tkt-num { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| font-family: monospace; | |
| } | |
| .tkt-name { | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| flex: 1; | |
| color: var(--text-color); | |
| } | |
| .tkt-time { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| } | |
| .tkt-row-bot { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .tkt-subject { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| flex: 1; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .priority-dot { | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| flex-shrink: 0; | |
| } | |
| .p-high { | |
| background: #ff4757; | |
| box-shadow: 0 0 5px rgba(255, 71, 87, 0.5); | |
| } | |
| .p-medium { | |
| background: #ffa502; | |
| } | |
| .p-low { | |
| background: #2ed573; | |
| } | |
| /* βββ Status pills βββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .spill { | |
| display: inline-block; | |
| font-size: 0.65rem; | |
| font-weight: 700; | |
| padding: 3px 10px; | |
| border-radius: 20px; | |
| text-transform: uppercase; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .spill-open { | |
| background: rgba(255, 71, 87, 0.15); | |
| color: #ff4757; | |
| border: 1px solid rgba(255, 71, 87, 0.2); | |
| } | |
| .spill-pending { | |
| background: rgba(255, 165, 2, 0.15); | |
| color: #ffa502; | |
| border: 1px solid rgba(255, 165, 2, 0.2); | |
| } | |
| .spill-resolved { | |
| background: rgba(46, 213, 115, 0.15); | |
| color: #2ed573; | |
| border: 1px solid rgba(46, 213, 115, 0.2); | |
| } | |
| .spill-closed { | |
| background: var(--bg-color); | |
| color: var(--text-muted); | |
| border: 1px solid var(--border-color); | |
| } | |
| /* βββ Category pills βββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .cpill { | |
| display: inline-block; | |
| font-size: 0.7rem; | |
| font-weight: 600; | |
| padding: 3px 12px; | |
| border-radius: 20px; | |
| background: var(--bg-secondary); | |
| border: 1px solid var(--border-color); | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| /* βββ Ticket detail col ββββββββββββββββββββββββββββββββββββββββ*/ | |
| .ticket-detail-col { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 16px; | |
| display: flex; | |
| flex-direction: column; | |
| overflow: hidden; | |
| position: relative; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .ticket-detail-col::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .ticket-detail-col:hover::before { | |
| opacity: 1; | |
| } | |
| .detail-head { | |
| padding: 24px; | |
| border-bottom: 1px solid var(--border-color); | |
| background: var(--bg-secondary); | |
| } | |
| .detail-head-top { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| margin-bottom: 12px; | |
| } | |
| .detail-head-num { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| font-family: monospace; | |
| } | |
| .detail-head-name { | |
| font-size: 1.1rem; | |
| font-weight: 700; | |
| flex: 1; | |
| color: var(--text-color); | |
| } | |
| .detail-head-meta { | |
| display: flex; | |
| align-items: center; | |
| gap: 15px; | |
| flex-wrap: wrap; | |
| font-size: 0.85rem; | |
| color: var(--text-muted); | |
| } | |
| .chat-window { | |
| flex: 1; | |
| padding: 20px; | |
| overflow-y: auto; | |
| max-height: 450px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 15px; | |
| background: var(--bg-color); | |
| } | |
| .chat-msg { | |
| max-width: 85%; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .chat-msg.from-user { | |
| align-self: flex-start; | |
| } | |
| .chat-msg.from-admin { | |
| align-self: flex-end; | |
| } | |
| .chat-bubble { | |
| padding: 12px 16px; | |
| border-radius: 15px; | |
| font-size: 0.9rem; | |
| line-height: 1.6; | |
| word-wrap: break-word; | |
| } | |
| .from-user .chat-bubble { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| color: var(--text-color); | |
| border-bottom-left-radius: 4px; | |
| } | |
| .from-admin .chat-bubble { | |
| background: var(--primary-gradient); | |
| color: #fff; | |
| border-bottom-right-radius: 4px; | |
| box-shadow: 0 4px 15px rgba(67, 97, 238, 0.2); | |
| } | |
| .chat-meta { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| margin-top: 5px; | |
| padding: 0 5px; | |
| } | |
| .from-admin .chat-meta { | |
| text-align: right; | |
| } | |
| .reply-footer { | |
| padding: 20px; | |
| border-top: 1px solid var(--border-color); | |
| background: var(--card-bg); | |
| } | |
| .reply-textarea { | |
| width: 100%; | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| padding: 12px 15px; | |
| font-size: 0.9rem; | |
| font-family: inherit; | |
| resize: none; | |
| background: var(--bg-color); | |
| color: var(--text-color); | |
| margin-bottom: 15px; | |
| transition: var(--transition); | |
| } | |
| .reply-textarea:focus { | |
| outline: none; | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 4px rgba(67, 97, 238, 0.1); | |
| } | |
| .reply-actions { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .ra-btn { | |
| font-size: 0.85rem; | |
| padding: 10px 18px; | |
| border-radius: 10px; | |
| border: 1px solid var(--border-color); | |
| cursor: pointer; | |
| font-weight: 600; | |
| background: var(--bg-color); | |
| color: var(--text-color); | |
| transition: var(--transition); | |
| } | |
| .ra-btn:hover { | |
| transform: translateY(-2px); | |
| border-color: var(--text-muted); | |
| } | |
| .ra-btn.primary { | |
| background: var(--primary-gradient); | |
| color: #fff; | |
| border: none; | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.2); | |
| } | |
| .ra-btn.resolve { | |
| background: #2ed573; | |
| color: #fff; | |
| border: none; | |
| } | |
| .ra-btn.escalate { | |
| background: #ffa502; | |
| color: #fff; | |
| border: none; | |
| } | |
| /* βββ Wallet KPI Grid ββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-kpi-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(150px, 1fr)); | |
| gap: 14px; | |
| margin: 20px 0; | |
| } | |
| .wallet-kpi-card { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 16px; | |
| padding: 20px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| cursor: pointer; | |
| } | |
| .wallet-kpi-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .wallet-kpi-card:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); | |
| border-color: var(--primary-color); | |
| } | |
| .wallet-kpi-card:hover::before { | |
| opacity: 1; | |
| } | |
| .wallet-kpi-label { | |
| color: var(--text-muted); | |
| font-size: 0.78rem; | |
| margin-bottom: 6px; | |
| } | |
| .wallet-kpi-value { | |
| font-size: 1.4rem; | |
| font-weight: 700; | |
| color: var(--text-color); | |
| } | |
| /* βββ Wallet KPI Accent Bars βββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-kpi-accent { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .wallet-kpi-card:hover .wallet-kpi-accent { | |
| opacity: 1; | |
| } | |
| .wallet-kpi-accent.balance { | |
| background: linear-gradient(90deg, #00b894, #00cec9); | |
| } | |
| .wallet-kpi-accent.activity { | |
| background: linear-gradient(90deg, #fd9644, #feca57); | |
| } | |
| .wallet-kpi-accent.low-balance { | |
| background: linear-gradient(90deg, #ff7675, #ff6b81); | |
| } | |
| /* βββ Wallet Controls ββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-controls { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| margin-bottom: 16px; | |
| } | |
| .wallet-search-wrap { | |
| flex: 1; | |
| min-width: 240px; | |
| position: relative; | |
| } | |
| .wallet-search-wrap i { | |
| position: absolute; | |
| left: 12px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: var(--text-muted); | |
| } | |
| .wallet-controls input, | |
| .wallet-controls select { | |
| padding: 12px 16px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border-color); | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| .wallet-controls input:hover, | |
| .wallet-controls select:hover { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 4px 12px rgba(67, 97, 238, 0.1); | |
| transform: translateY(-1px); | |
| } | |
| .wallet-controls input:focus, | |
| .wallet-controls select:focus { | |
| outline: none; | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1); | |
| } | |
| .wallet-search-wrap input { | |
| width: 100%; | |
| padding-left: 36px; | |
| } | |
| /* βββ Wallet Layout ββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-layout { | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| gap: 16px; | |
| } | |
| .wallet-panel-head { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 10px; | |
| } | |
| .wallet-panel-head h3 { | |
| margin: 0; | |
| font-size: 1rem; | |
| color: var(--text-color); | |
| } | |
| .wallet-panel-head span { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| } | |
| .wallet-balance { | |
| font-weight: 700; | |
| color: var(--primary-color); | |
| } | |
| .wallet-id { | |
| font-size: 0.72rem; | |
| color: var(--text-muted); | |
| font-family: monospace; | |
| } | |
| .wallet-cards-grid { | |
| display: none; | |
| gap: 10px; | |
| } | |
| .wallet-user-card { | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| padding: 12px; | |
| display: grid; | |
| gap: 8px; | |
| background: var(--card-bg); | |
| } | |
| .wallet-card-top { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: flex-start; | |
| gap: 8px; | |
| } | |
| .wallet-user-name { | |
| font-weight: 600; | |
| color: var(--text-color); | |
| } | |
| .wallet-user-phone { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| } | |
| .wallet-meta { | |
| font-size: 0.78rem; | |
| color: var(--text-muted); | |
| } | |
| .wallet-actions-wrap { | |
| display: flex; | |
| gap: 8px; | |
| flex-wrap: wrap; | |
| } | |
| .wallet-action-btn { | |
| font-size: 0.75rem; | |
| padding: 6px 10px; | |
| border-radius: 8px; | |
| border: 1px solid var(--border-color); | |
| background: var(--bg-color); | |
| color: var(--text-color); | |
| cursor: pointer; | |
| font-family: 'Outfit', sans-serif; | |
| } | |
| .wallet-action-btn.primary { | |
| background: var(--primary-gradient); | |
| color: #fff; | |
| border: none; | |
| } | |
| /* βββ Wallet Table Wrapper βββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-table-wrapper { | |
| background: var(--card-bg); | |
| border: 1px solid var(--border-color); | |
| border-radius: 16px; | |
| overflow: hidden; | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); | |
| } | |
| .wallet-panel-head { | |
| padding: 20px; | |
| border-bottom: 1px solid var(--border-color); | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| background: var(--bg-secondary); | |
| } | |
| .wallet-panel-head h3 { | |
| margin: 0; | |
| font-size: 1.1rem; | |
| color: var(--text-color); | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .wallet-panel-head h3 i { | |
| color: var(--primary-color); | |
| } | |
| .wallet-panel-head span { | |
| font-size: 0.9rem; | |
| color: var(--text-muted); | |
| font-weight: 500; | |
| } | |
| .wallet-desktop-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| } | |
| .wallet-desktop-table thead tr { | |
| background: var(--bg-secondary); | |
| } | |
| .wallet-desktop-table th { | |
| padding: 16px; | |
| text-align: left; | |
| font-weight: 600; | |
| color: var(--text-color); | |
| border-bottom: 2px solid var(--border-color); | |
| } | |
| .wallet-desktop-table tbody tr { | |
| position: relative; | |
| overflow: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .wallet-desktop-table tbody tr::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .wallet-desktop-table tbody tr:hover, | |
| .wallet-desktop-table tbody tr.table-row-hover:hover { | |
| background: var(--bg-color); | |
| transform: translateX(4px); | |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); | |
| } | |
| .wallet-desktop-table tbody tr:hover::before, | |
| .wallet-desktop-table tbody tr.table-row-hover:hover::before { | |
| opacity: 1; | |
| } | |
| /* βββ Wallet User Details Modal ββββββββββββββββββββββββββββββββ*/ | |
| #wallet-user-details-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(5, 10, 25, 0.7); | |
| z-index: 1002; | |
| align-items: center; | |
| justify-content: center; | |
| backdrop-filter: blur(6px); | |
| } | |
| /* βββ Wallet Manage Modal ββββββββββββββββββββββββββββββββββββββββ*/ | |
| #wallet-manage-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(5, 10, 25, 0.65); | |
| z-index: 1003; | |
| align-items: center; | |
| justify-content: center; | |
| backdrop-filter: blur(6px); | |
| } | |
| /* βββ Wallet Modal Base ββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| z-index: 1002; | |
| align-items: center; | |
| justify-content: center; | |
| backdrop-filter: blur(6px); | |
| -webkit-backdrop-filter: blur(6px); | |
| } | |
| .wallet-modal.manage { | |
| z-index: 1003; | |
| background: rgba(5, 10, 25, 0.65); | |
| } | |
| .wallet-modal:not(.manage) { | |
| background: rgba(5, 10, 25, 0.7); | |
| } | |
| /* βββ Wallet Detail Card βββββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-detail-card { | |
| border: 1px solid var(--border-color); | |
| border-radius: 12px; | |
| padding: 14px; | |
| background: var(--bg-color); | |
| } | |
| .wallet-detail-card h4 { | |
| margin: 0 0 10px 0; | |
| font-size: 0.92rem; | |
| color: var(--text-color); | |
| } | |
| .wallet-detail-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(180px, 1fr)); | |
| gap: 10px; | |
| } | |
| .wallet-detail-item { | |
| font-size: 0.82rem; | |
| color: var(--text-muted); | |
| } | |
| .wallet-detail-item strong { | |
| display: block; | |
| color: var(--text-color); | |
| font-size: 0.86rem; | |
| margin-bottom: 3px; | |
| } | |
| /* βββ Wallet History Table βββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-history-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| } | |
| .wallet-history-table th, | |
| .wallet-history-table td { | |
| font-size: 0.8rem; | |
| text-align: left; | |
| border-bottom: 1px solid var(--border-color); | |
| padding: 8px 6px; | |
| vertical-align: top; | |
| } | |
| .wallet-history-empty { | |
| font-size: 0.82rem; | |
| color: var(--text-muted); | |
| } | |
| /* βββ Wallet Manage Fields βββββββββββββββββββββββββββββββββββββ*/ | |
| .wallet-manage-fields { | |
| display: grid; | |
| gap: 12px; | |
| } | |
| .wallet-manage-user { | |
| color: var(--text-color); | |
| font-weight: 600; | |
| } | |
| .wallet-manage-balance { | |
| color: var(--primary-color); | |
| font-weight: 700; | |
| } | |
| .wallet-manage-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 10px; | |
| } | |
| .wallet-manage-fields label { | |
| display: grid; | |
| gap: 6px; | |
| color: var(--text-muted); | |
| font-size: 0.82rem; | |
| } | |
| .wallet-manage-fields select, | |
| .wallet-manage-fields input, | |
| .wallet-manage-fields textarea { | |
| border: 1px solid var(--border-color); | |
| background: var(--bg-color); | |
| color: var(--text-color); | |
| border-radius: 10px; | |
| padding: 10px; | |
| font-family: 'Outfit', sans-serif; | |
| } | |
| .wallet-manage-fields textarea { | |
| min-height: 95px; | |
| resize: vertical; | |
| } | |
| .wallet-manage-feedback { | |
| min-height: 18px; | |
| margin: 0; | |
| font-size: 0.8rem; | |
| color: #ff7675; | |
| } | |
| .wallet-manage-feedback.success { | |
| color: #2ed573; | |
| } | |
| .wallet-manage-actions { | |
| display: flex; | |
| justify-content: flex-end; | |
| gap: 10px; | |
| } | |
| /* βββ Payment Details Modal ββββββββββββββββββββββββββββββββββββββ*/ | |
| .payment-details-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(0, 0, 0, 0.5); | |
| z-index: 1000; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .payment-details-modal .modal-content { | |
| background: var(--card-bg); | |
| border-radius: 12px; | |
| padding: 30px; | |
| max-width: 500px; | |
| width: 90%; | |
| max-height: 80vh; | |
| overflow-y: auto; | |
| border: 1px solid var(--border-color); | |
| } | |
| .payment-details-modal .modal-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 20px; | |
| } | |
| .payment-details-modal .modal-header h3 { | |
| margin: 0; | |
| color: var(--text-color); | |
| } | |
| .payment-details-modal .modal-header button { | |
| background: none; | |
| border: none; | |
| color: var(--text-muted); | |
| cursor: pointer; | |
| font-size: 1.2rem; | |
| } | |
| .payment-details-modal .modal-body { | |
| line-height: 1.6; | |
| } | |
| .payment-details-modal .modal-footer { | |
| margin-top: 20px; | |
| display: flex; | |
| gap: 10px; | |
| justify-content: flex-end; | |
| } | |
| .payment-details-modal .modal-footer button:first-child { | |
| padding: 8px 16px; | |
| border: 1px solid var(--border-color); | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| border-radius: 6px; | |
| cursor: pointer; | |
| font-family: 'Outfit', sans-serif; | |
| } | |
| .payment-details-modal .modal-actions { | |
| display: flex; | |
| gap: 10px; | |
| } | |
| /* βββ Rejection Modal ββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .rejection-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(0, 0, 0, 0.7); | |
| z-index: 1001; | |
| align-items: center; | |
| justify-content: center; | |
| backdrop-filter: blur(8px); | |
| -webkit-backdrop-filter: blur(8px); | |
| animation: fadeIn 0.3s ease; | |
| } | |
| .rejection-modal .modal-content { | |
| background: var(--card-bg); | |
| border-radius: 16px; | |
| padding: 30px; | |
| max-width: 500px; | |
| width: 90%; | |
| border: 1px solid var(--border-color); | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); | |
| animation: slideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1); | |
| transform-origin: center; | |
| } | |
| .rejection-modal .modal-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 20px; | |
| } | |
| .rejection-modal .modal-header h3 { | |
| margin: 0; | |
| color: var(--text-color); | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .rejection-modal .modal-header h3 i { | |
| color: #ff7675; | |
| } | |
| .rejection-modal .modal-header button { | |
| background: none; | |
| border: none; | |
| color: var(--text-muted); | |
| cursor: pointer; | |
| font-size: 1.2rem; | |
| transition: color 0.2s ease; | |
| } | |
| .rejection-modal-body { | |
| margin-bottom: 25px; | |
| } | |
| .rejection-modal-body p { | |
| color: var(--text-muted); | |
| margin-bottom: 15px; | |
| font-size: 0.95rem; | |
| line-height: 1.5; | |
| } | |
| .rejection-modal-body textarea { | |
| width: 100%; | |
| min-height: 120px; | |
| padding: 15px; | |
| border: 2px solid var(--border-color); | |
| border-radius: 10px; | |
| background: var(--card-bg); | |
| color: var(--text-color); | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.95rem; | |
| resize: vertical; | |
| transition: all 0.3s ease; | |
| } | |
| .rejection-error { | |
| color: #ff7675; | |
| font-size: 0.85rem; | |
| margin-top: 8px; | |
| display: none; | |
| font-weight: 500; | |
| } | |
| .rejection-error i { | |
| margin-right: 4px; | |
| } | |
| .rejection-modal-footer { | |
| display: flex; | |
| gap: 12px; | |
| justify-content: flex-end; | |
| } | |
| .rejection-modal-footer button:first-child { | |
| padding: 10px 20px; | |
| border: 2px solid var(--border-color); | |
| background: transparent; | |
| color: var(--text-color); | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-family: 'Outfit', sans-serif; | |
| font-weight: 500; | |
| transition: all 0.2s ease; | |
| } | |
| .rejection-modal-footer button:last-child { | |
| padding: 10px 24px; | |
| background: #ff7675; | |
| color: white; | |
| border: none; | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-family: 'Outfit', sans-serif; | |
| font-weight: 600; | |
| transition: all 0.2s ease; | |
| box-shadow: 0 4px 12px rgba(255, 118, 117, 0.3); | |
| } | |
| /* βββ Custom Confirm Modal βββββββββββββββββββββββββββββββββββββββ*/ | |
| #custom-confirm-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100vw; | |
| height: 100vh; | |
| z-index: 9999; | |
| background: rgba(0, 0, 0, 0.5); | |
| backdrop-filter: blur(8px); | |
| -webkit-backdrop-filter: blur(8px); | |
| justify-content: center; | |
| align-items: center; | |
| } | |
| #custom-confirm-modal .auth-card { | |
| max-width: 400px; | |
| padding: 40px; | |
| text-align: center; | |
| animation: authSlideUp 0.3s ease-out; | |
| position: relative; | |
| } | |
| #modal-icon-container { | |
| font-size: 50px; | |
| margin-bottom: 15px; | |
| color: var(--primary-color); | |
| } | |
| #custom-confirm-modal h3 { | |
| font-size: 1.6rem; | |
| font-weight: 700; | |
| margin-bottom: 10px; | |
| } | |
| #custom-confirm-modal p { | |
| color: var(--text-muted); | |
| margin-bottom: 30px; | |
| font-size: 0.95rem; | |
| } | |
| #custom-confirm-modal .button-group { | |
| display: flex; | |
| gap: 15px; | |
| } | |
| #modal-cancel-btn { | |
| background: transparent; | |
| border: 2px solid var(--border-color); | |
| color: var(--text-color); | |
| box-shadow: none; | |
| } | |
| /* βββ Custom Modal βββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .custom-modal { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100vw; | |
| height: 100vh; | |
| z-index: 9999; | |
| background: rgba(0, 0, 0, 0.5); | |
| backdrop-filter: blur(8px); | |
| -webkit-backdrop-filter: blur(8px); | |
| justify-content: center; | |
| align-items: center; | |
| } | |
| .custom-modal .auth-card { | |
| max-width: 400px; | |
| padding: 40px; | |
| text-align: center; | |
| animation: authSlideUp 0.3s ease-out; | |
| position: relative; | |
| } | |
| .custom-modal .button-group { | |
| display: flex; | |
| gap: 15px; | |
| } | |
| #modal-cancel-btn { | |
| background: transparent; | |
| border: 2px solid var(--border-color); | |
| color: var(--text-color); | |
| box-shadow: none; | |
| } | |
| /* βββ Loading State ββββββββββββββββββββββββββββββββββββββββββββββ*/ | |
| .loading-state { | |
| padding: 40px; | |
| text-align: center; | |
| color: var(--text-muted); | |
| } | |
| .loading-state i { | |
| color: var(--primary-color); | |
| margin-right: 8px; | |
| } | |
| /* βββ System Status Info Div βββββββββββββββββββββββββββββββββββββ*/ | |
| .system-status-info { | |
| font-size: 0.85rem; | |
| color: var(--text-muted); | |
| line-height: 1.6; | |
| } | |
| .system-status-info div { | |
| display: flex; | |
| justify-content: space-between; | |
| margin-bottom: 5px; | |
| } | |
| /* βββ Status Online Span βββββββββββββββββββββββββββββββββββββββββ*/ | |
| .status-online { | |
| color: #2ed573; | |
| font-weight: 600; | |
| } | |
| /* βββ Responsive adjustments βββββββββββββββββββββββββββββββββββββ*/ | |
| @media (max-width: 1024px) { | |
| .ticket-panel { | |
| grid-template-columns: 1fr; | |
| } | |
| .wallet-kpi-grid { | |
| grid-template-columns: repeat(2, minmax(150px, 1fr)); | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .wallet-kpi-grid { | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| .wallet-desktop-table { | |
| display: none; | |
| } | |
| .wallet-cards-grid { | |
| display: grid; | |
| } | |
| .wallet-detail-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .wallet-history-table { | |
| display: block; | |
| overflow-x: auto; | |
| } | |
| .wallet-manage-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| @media (max-width: 520px) { | |
| .wallet-kpi-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .wallet-controls select { | |
| min-width: 100%; | |
| } | |
| } | |
| /* βββ Shake Animation for Validation βββββββββββββββββββββββββββ*/ | |
| .shake-animation { | |
| animation: shake 0.5s cubic-bezier(.36, .07, .19, .97) both; | |
| } | |
| /* βββ Enhanced Modal Animations ββββββββββββββββββββββββββββββββ*/ | |
| @keyframes modalSlideIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.9) translateY(30px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1) translateY(0); | |
| } | |
| } | |
| /* βββ Enhanced Focus States for Modal Elements βββββββββββββββββββ*/ | |
| #rejection-comment:focus { | |
| border-color: var(--primary-color); | |
| box-shadow: 0 0 0 4px rgba(67, 97, 238, 0.1); | |
| outline: none; | |
| } | |
| /* βββ Hover Effects for Modal Buttons ββββββββββββββββββββββββββββ*/ | |
| #rejection-comment-modal button:hover { | |
| transform: translateY(-1px); | |
| box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15); | |
| } | |
| #rejection-comment-modal button:active { | |
| transform: translateY(0); | |
| } | |
| /* βββ Legacy class support for backward compatibility ββββββββββββ*/ | |
| .tab-hover-effect { | |
| /* Inherits from global .hover-effect-tab */ | |
| } | |
| .card-hover-effect { | |
| /* Inherits from global .hover-effect-card */ | |
| } | |
| .input-hover-effect { | |
| /* Inherits from global .hover-effect-input */ | |
| } | |
| .quick-action-hover { | |
| /* Inherits from global .hover-effect-button or .hover-effect-secondary */ | |
| } | |
| /* βββ Quick Action Buttons βββββββββββββββββββββββββββββββββββββ*/ | |
| .quick-action-btn { | |
| padding: 8px 16px; | |
| border-radius: 10px; | |
| font-family: 'Outfit', sans-serif; | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| color: var(--text-color); | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| position: relative; | |
| overflow: hidden; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .quick-action-btn::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: linear-gradient(90deg, var(--primary-color), #3a0ca3); | |
| opacity: 0; | |
| transition: opacity 0.3s ease; | |
| } | |
| .quick-action-btn:hover { | |
| border-color: var(--primary-color); | |
| color: var(--primary-color); | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); | |
| transform: translateY(-3px); | |
| } | |
| .quick-action-btn:hover::before { | |
| opacity: 1; | |
| } | |
| .quick-action-btn.primary { | |
| background: var(--primary-color); | |
| border-color: var(--primary-color); | |
| color: white; | |
| } | |
| .quick-action-btn.primary:hover { | |
| background: #3a0ca3; | |
| border-color: #3a0ca3; | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(67, 97, 238, 0.3); | |
| } |