/* ============================================================
   common.css — 跨页面公共样式（不含主题变量，需配合 theme.css 使用）
   ============================================================ */

/* ── Background glow ── */
.bg-glow {
    position: fixed;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.25;
    z-index: 0;
    pointer-events: none;
    animation: float 12s infinite ease-in-out alternate;
}
[data-theme="light"] .bg-glow { opacity: 0.08; }

@keyframes float {
    0%   { transform: scale(1) translate(0, 0); }
    100% { transform: scale(1.08) translate(20px, 25px); }
}

/* Default glow colors */
.glow-1 { background: linear-gradient(135deg, #3b82f6, #a855f7); }
.glow-2 { background: linear-gradient(135deg, #10b981, #3b82f6); }

/* Per-theme glow colors */
[data-theme="emerald"] .glow-1 { background: linear-gradient(135deg, #059669, #10b981); }
[data-theme="emerald"] .glow-2 { background: linear-gradient(135deg, #065f46, #34d399); }
[data-theme="coral"]   .glow-1 { background: linear-gradient(135deg, #ea580c, #f97316); }
[data-theme="coral"]   .glow-2 { background: linear-gradient(135deg, #9a3412, #fb923c); }
[data-theme="rose"]    .glow-1 { background: linear-gradient(135deg, #e11d48, #f43f5e); }
[data-theme="rose"]    .glow-2 { background: linear-gradient(135deg, #9f1239, #fb7185); }

/* ── Flash / alert messages ── */
.flash-msg {
    margin-bottom: 1.25rem;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    font-size: 0.8rem;
    font-weight: 600;
}
.flash-error   { background: rgba(239,68,68,0.12);  border: 1px solid rgba(239,68,68,0.25);  color: #fca5a5; }
.flash-success { background: rgba(16,185,129,0.12); border: 1px solid rgba(16,185,129,0.25); color: #6ee7b7; }
[data-theme="light"] .flash-error   { color: #dc2626; }
[data-theme="light"] .flash-success { color: #059669; }
