/* 富贵吉祥主题 - 投资本金记录系统 */ @import url('https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&family=TsangerYuMo&display=swap'); body { position: relative; overflow-x: hidden; /* 只保留渐变底色 */ background: linear-gradient(135deg, rgba(255, 249, 230, 0.98) 0%, rgba(255, 235, 205, 0.98) 50%, rgba(248, 244, 230, 0.98) 100%); background-attachment: fixed; min-height: 100vh; } body::before { content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url("/images/xiangyun.png"); background-repeat: repeat; background-size: 250px auto; background-position: top left; opacity: 0.2; z-index: -2; pointer-events: none; mix-blend-mode: multiply; } /* 标题波浪特效 */ .lucky-header h1 .char { display: inline-block; animation: text-wave 2.5s ease-in-out infinite; transform-origin: bottom center; } @keyframes text-wave { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } } .lucky-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: -1; overflow: hidden; } .gold-coin { position: absolute; font-size: 2rem; opacity: 0.3; animation: float 6s ease-in-out infinite; } .coin-1 { top: 20%; left: 10%; animation-delay: 0s; } .coin-2 { top: 60%; left: 80%; animation-delay: 2s; } .coin-3 { top: 30%; left: 70%; animation-delay: 4s; } .coin-4 { top: 80%; left: 20%; animation-delay: 1s; } /* 右上角灯笼 */ .lucky-lantern.right { position: fixed; top: 20px; right: 30px; font-size: 2.5rem; color: #C1272D; animation: swing 3s ease-in-out infinite; z-index: 1000; text-shadow: 2px 2px 4px rgba(193,39,45,0.4); } .lantern-tassel { position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%); width: 2px; height: 20px; background: linear-gradient(to bottom, #FFD700, #D4AF37); animation: tassel-sway 2s ease-in-out infinite; } /* 左上角灯笼 */ .lucky-lantern.left { position: fixed; top: 20px; left: 30px; font-size: 2.5rem; color: #C1272D; animation: swing 3s ease-in-out infinite; z-index: 1000; text-shadow: 2px 2px 4px rgba(193,39,45,0.4); } @keyframes tassel-sway { 0%, 100% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } } @keyframes fly { 0%, 100% { transform: rotate(-45deg) translateY(0); } 50% { transform: rotate(-45deg) translateY(-10px); } } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-20px) rotate(10deg); } } .container { padding: 30px 20px; position: relative; z-index: 1; } .lucky-header { text-align: center; margin-bottom: 30px; padding: 20px; background: linear-gradient(135deg, rgba(212, 175, 55, 0.1), rgba(255, 215, 0, 0.05)); border-radius: 16px; border: 2px solid rgba(212, 175, 55, 0.3); } .lucky-header h1 { font-family: 'Ma Shan Zheng', cursive; font-size: 2.5rem; color: #D4AF37; margin: 0; text-shadow: 2px 2px 4px rgba(0,0,0,0.1); } .lucky-subtitle { font-family: 'TsangerYuMo', cursive; font-size: 1.3rem; margin: 10px 0 0 0; font-weight: 500; background: linear-gradient(120deg, #8B4513 0%, #D4AF37 40%, #FFD700 50%, #D4AF37 60%, #8B4513 100%); background-size: 200% auto; color: #8B4513; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: shine 10s linear infinite; } @keyframes shine { to { background-position: 200% center; } } .toolbar, .add-bar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 20px; padding: 20px; background: linear-gradient(135deg, rgba(212, 175, 55, 0.07), rgba(255, 215, 0, 0.035)); border-radius: 16px; box-shadow: 0 4px 20px rgba(212, 175, 55, 0.15); border: 2px solid rgba(212, 175, 55, 0.21); position: relative; backdrop-filter: blur(5px); } .btn { height: 40px; padding: 0 18px; border: none; background: linear-gradient(145deg, #D4AF37, #FFD700); color: #2C2C2C; border-radius: 10px; cursor: pointer; font-weight: 700; transition: all 0.3s ease; box-shadow: 0 4px 8px rgba(212, 175, 55, 0.4); position: relative; overflow: hidden; font-family: 'TsangerYuMo', cursive; font-size: 1.1rem; display: inline-flex; align-items: center; justify-content: center; } .btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); transition: left 0.5s ease; } .btn:hover { background: linear-gradient(145deg, #C1272D, #D4AF37); color: #FFFFFF; transform: translateY(-1px) scale(1.03); box-shadow: 0 5px 12px rgba(193, 39, 45, 0.45); } .btn:hover::before { left: 100%; } #btn-add { background: linear-gradient(145deg, #2D8A57, #2AAE7A); box-shadow: 0 4px 8px rgba(40, 167, 69, 0.28); border: 1px solid rgba(212, 175, 55, 0.35); } #btn-add:hover { background: linear-gradient(145deg, #277B4D, #239968); } .table-wrap { overflow: auto; border: 2px solid #D4AF37; border-radius: 12px; background: #FFFFFF; box-shadow: 0 4px 12px rgba(212, 175, 55, 0.15); background: rgba(255, 255, 255, 0.95); -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #D4AF37 rgba(212, 175, 55, 0.1); } input, select { border: 1px solid #D4AF37; border-radius: 8px; padding: 8px 12px; height: 40px; background: rgba(255, 255, 255, 0.9); transition: all 0.3s; font-family: inherit; color: #5d4037; } input:focus, select:focus { outline: none; border-color: #FFD700; box-shadow: 0 0 10px rgba(255, 215, 0, 0.5); background: #FFFFFF; } ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: rgba(212, 175, 55, 0.1); border-radius: 5px; } ::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, #D4AF37, #FFD700); border-radius: 5px; border: 2px solid rgba(255, 255, 255, 0.5); } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(to bottom, #B8860B, #D4AF37); } table.flows { width: 100%; border-collapse: separate; border-spacing: 0; background: rgba(255, 255, 255, 0.85); border-radius: 12px; } table.flows th, table.flows td { padding: 12px; border-bottom: 1px solid #E8E6DF; text-align: left; } table.flows tbody tr:nth-child(odd).in td { background: rgba(212, 175, 55, 0.06); } table.flows tbody tr:nth-child(even).in td { background: rgba(212, 175, 55, 0.035); } table.flows tbody tr:nth-child(odd).out td { background: rgba(193, 39, 45, 0.055); } table.flows tbody tr:nth-child(even).out td { background: rgba(193, 39, 45, 0.03); } table.flows th { background: linear-gradient(145deg, #8B0000, #C1272D); color: #FFD700; font-weight: 600; position: sticky; top: 0; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); } table.flows tr { transition: background 0.2s; } table.flows tr:hover td { background: rgba(212, 175, 55, 0.10) !important; } table.flows tr.in { background: rgba(212, 175, 55, 0.08); border-left: 4px solid #D4AF37; } table.flows tr.out { background: rgba(193, 39, 45, 0.08); border-left: 4px solid #C1272D; } table.flows td.amount { font-weight: 700; color: #1A365D; } table.flows td.ending { font-weight: 800; color: #D4AF37; font-size: 1.1em; } .stats { margin: 28px 0; padding: 24px 20px; border: 3px solid rgba(212, 175, 55, 0.21); border-radius: 16px; background: linear-gradient(135deg, rgba(212, 175, 55, 0.07), rgba(255, 215, 0, 0.035)); backdrop-filter: blur(5px); font-weight: 700; color: #8B4513; text-align: center; box-shadow: 0 4px 16px rgba(212, 175, 55, 0.3); font-family: 'TsangerYuMo', cursive; font-size: 1.2rem; position: relative; } .stats::after { content: '💰'; position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: #D4AF37; color: white; padding: 5px 10px; border-radius: 20px; font-size: 1.5rem; } .status { margin: 16px 0; padding: 12px; border: 2px solid #FFD666; background: #FFFBE6; color: #8B6508; border-radius: 8px; text-align: center; font-weight: 500; } .debug { margin: 12px 0; padding: 8px; border: 1px dashed #aaa; } .debug-actions { display: flex; gap: 8px; margin-bottom: 8px } .debug-output { height: 200px; overflow: auto; background: #f6f6f6; padding: 8px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; white-space: pre-wrap } @media (max-width: 760px) { .toolbar, .add-bar { flex-direction: column; align-items: stretch; gap: 10px; padding: 16px; } .toolbar input, .toolbar select, .add-bar input, .add-bar select { width: 100%; } .toolbar .btn, #btn-add { width: 100%; } table.flows th, table.flows td { padding: 10px; } } @media (prefers-reduced-motion: reduce) { .lucky-header h1 .char, .lucky-subtitle, .gold-coin, .lucky-lantern.right, .lucky-lantern.left { animation: none !important; } .btn, input, select, table.flows tr { transition: none !important; } } @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .toolbar, .add-bar, .stats { background: rgba(255, 255, 255, 0.75); } }