@import "tailwindcss"; html, body { background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-end) 100%); background-attachment: fixed; overscroll-behavior-y: none; } :root, [data-theme="light"] { --gradient-start: #667eea; --gradient-end: #764ba2; --glass-bg: rgba(255, 255, 255, 0.8); --text-primary: #1f2937; --text-secondary: #6b7280; --category-from: #8b5cf6; --category-to: #3b82f6; --btn-primary-from: #8b5cf6; --btn-primary-to: #6366f1; --btn-success-from: #22c55e; --btn-success-to: #16a34a; --btn-danger-from: #ef4444; --btn-danger-to: #ec4899; --card-bg: rgba(255, 255, 255, 0.8); } [data-theme="dark"] { --gradient-start: #000000; --gradient-end: #000000; --glass-bg: rgba(17, 17, 17, 0.95); --text-primary: #f9fafb; --text-secondary: #d1d5db; --category-from: #6366f1; --category-to: #8b5cf6; --btn-primary-from: #6366f1; --btn-primary-to: #8b5cf6; --btn-success-from: #059669; --btn-success-to: #10b981; --btn-danger-from: #dc2626; --btn-danger-to: #be185d; --card-bg: rgba(31, 31, 31, 0.9); } [data-theme="sunset"] { --gradient-start: #f97316; --gradient-end: #ec4899; --glass-bg: rgba(255, 255, 255, 0.85); --text-primary: #1f2937; --text-secondary: #6b7280; --category-from: #f97316; --category-to: #ec4899; --btn-primary-from: #f97316; --btn-primary-to: #ea580c; --btn-success-from: #22c55e; --btn-success-to: #16a34a; --btn-danger-from: #ef4444; --btn-danger-to: #dc2626; --card-bg: rgba(255, 255, 255, 0.85); } [data-theme="ocean"] { --gradient-start: #3b82f6; --gradient-end: #06b6d4; --glass-bg: rgba(255, 255, 255, 0.85); --text-primary: #1f2937; --text-secondary: #6b7280; --category-from: #3b82f6; --category-to: #06b6d4; --btn-primary-from: #3b82f6; --btn-primary-to: #2563eb; --btn-success-from: #22c55e; --btn-success-to: #16a34a; --btn-danger-from: #ef4444; --btn-danger-to: #dc2626; --card-bg: rgba(255, 255, 255, 0.85); } [data-theme="forest"] { --gradient-start: #22c55e; --gradient-end: #14b8a6; --glass-bg: rgba(255, 255, 255, 0.85); --text-primary: #1f2937; --text-secondary: #6b7280; --category-from: #22c55e; --category-to: #14b8a6; --btn-primary-from: #22c55e; --btn-primary-to: #16a34a; --btn-success-from: #22c55e; --btn-success-to: #16a34a; --btn-danger-from: #ef4444; --btn-danger-to: #dc2626; --card-bg: rgba(255, 255, 255, 0.85); } [data-theme="purple"] { --gradient-start: #8b5cf6; --gradient-end: #ec4899; --glass-bg: rgba(255, 255, 255, 0.85); --text-primary: #1f2937; --text-secondary: #6b7280; --category-from: #8b5cf6; --category-to: #ec4899; --btn-primary-from: #8b5cf6; --btn-primary-to: #7c3aed; --btn-success-from: #22c55e; --btn-success-to: #16a34a; --btn-danger-from: #ef4444; --btn-danger-to: #dc2626; --card-bg: rgba(255, 255, 255, 0.85); } .gradient-bg { background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-end) 100%); } .gradient-bg-light { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); } .card-hover { transition: all 0.3s; } .card-hover:hover { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); transform: translateY(-0.25rem); } .glass-effect { background: var(--glass-bg); backdrop-filter: blur(12px); } .category-icon { background: linear-gradient(135deg, var(--category-from) 0%, var(--category-to) 100%); } .btn-primary { background: linear-gradient(135deg, var(--btn-primary-from) 0%, var(--btn-primary-to) 100%); } .btn-success { background: linear-gradient(135deg, var(--btn-success-from) 0%, var(--btn-success-to) 100%); } .btn-danger { background: linear-gradient(135deg, var(--btn-danger-from) 0%, var(--btn-danger-to) 100%); } [data-theme="dark"] .glass-effect { color: var(--text-primary); } [data-theme="dark"] .text-gray-800, [data-theme="dark"] .text-gray-900 { color: var(--text-primary); } [data-theme="dark"] .text-gray-600, [data-theme="dark"] .text-gray-500 { color: var(--text-secondary); } [data-theme="dark"] .bg-gray-100, [data-theme="dark"] .bg-gray-50 { background-color: rgba(55, 55, 55, 0.5); } [data-theme="dark"] .bg-gray-200 { background-color: rgba(75, 75, 75, 0.5); } [data-theme="dark"] .border-gray-200, [data-theme="dark"] .border-gray-300 { border-color: rgba(75, 75, 75, 0.8); } [data-theme="dark"] input, [data-theme="dark"] textarea { background-color: rgba(40, 40, 40, 0.9); color: var(--text-primary); border-color: rgba(75, 75, 75, 0.8); } [data-theme="dark"] input::placeholder, [data-theme="dark"] textarea::placeholder { color: var(--text-secondary); } .member-current { background-color: rgb(243, 232, 255); border-color: rgb(216, 180, 254); } [data-theme="dark"] .member-current { background-color: rgba(139, 92, 246, 0.2); border-color: rgba(139, 92, 246, 0.5); } .shopping-purchased { background-color: rgb(240, 253, 244); border-color: rgb(187, 247, 208); } [data-theme="dark"] .shopping-purchased { background-color: rgba(34, 197, 94, 0.15); border-color: rgba(34, 197, 94, 0.4); } .expense-history-item { background-color: rgb(255, 255, 255); border-color: rgb(229, 231, 235); } [data-theme="dark"] .expense-history-item { background-color: rgba(55, 55, 55, 0.6); border-color: rgba(75, 75, 75, 0.8); } .expense-description { background-color: rgb(249, 250, 251); } [data-theme="dark"] .expense-description { background-color: rgba(40, 40, 40, 0.8); } .animate-fadeIn { animation: fadeIn 0.2s ease-in-out; } .animate-scaleIn { animation: scaleIn 0.2s ease-in-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }