@tailwind base; @tailwind components; @tailwind utilities; :root { --bg-deep: #060912; --bg-card: rgba(16, 22, 36, 0.78); --accent: #22d3ee; --accent2: #a78bfa; --danger: #f43f5e; --ok: #34d399; --text: #e8edf7; --muted: #94a3b8; --ring-offset: #060912; } html[data-theme="light"] { --bg-deep: #f1f5f9; --bg-card: rgba(255, 255, 255, 0.88); --text: #0f172a; --muted: #64748b; --ring-offset: #f1f5f9; } body { color: var(--text); background: var(--bg-deep); min-height: 100vh; font-family: var(--font-geist-sans), system-ui, sans-serif; transition: background-color 0.35s ease, color 0.25s ease; } .app-bg-layer { position: fixed; inset: 0; z-index: -1; opacity: 0.92; pointer-events: none; background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(34, 211, 238, 0.22), transparent), radial-gradient(ellipse 60% 40% at 100% 0%, rgba(167, 139, 250, 0.18), transparent), radial-gradient(ellipse 50% 30% at 0% 100%, rgba(59, 130, 246, 0.12), transparent); transition: opacity 0.35s ease; } html[data-theme="light"] .app-bg-layer { opacity: 0.75; background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(14, 165, 233, 0.12), transparent), radial-gradient(ellipse 60% 40% at 100% 0%, rgba(139, 92, 246, 0.1), transparent), radial-gradient(ellipse 50% 30% at 0% 100%, rgba(59, 130, 246, 0.08), transparent); } html[data-theme="light"] .chart-surface { border-color: rgba(15, 23, 42, 0.12) !important; background: rgba(255, 255, 255, 0.65) !important; } ::selection { background: rgba(34, 211, 238, 0.25); } @layer utilities { .glass { @apply border border-white/[0.08] shadow-2xl shadow-black/40; background: var(--bg-card); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } .glow-text { text-shadow: 0 0 32px rgba(34, 211, 238, 0.28); } .btn-focus { @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cyan-400/50 focus-visible:ring-offset-2; --tw-ring-offset-color: var(--ring-offset); } } /* H5 底部导航安全区 */ .safe-pb-nav { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px)); } @media (min-width: 768px) { .safe-pb-nav { padding-bottom: 4rem; } } @keyframes toast-in { from { opacity: 0; transform: translate(-50%, 12px); } to { opacity: 1; transform: translate(-50%, 0); } } .animate-toast-in { animation: toast-in 0.35s ease-out both; } @keyframes pulse-soft { 0%, 100% { opacity: 1; } 50% { opacity: 0.65; } } .animate-pulse-soft { animation: pulse-soft 2s ease-in-out infinite; } /* 自定义滚动条,日志区更易读 */ .log-scroll { scrollbar-width: thin; scrollbar-color: rgba(148, 163, 184, 0.35) transparent; } .log-scroll::-webkit-scrollbar { width: 6px; height: 6px; } .log-scroll::-webkit-scrollbar-thumb { background: rgba(148, 163, 184, 0.35); border-radius: 6px; }