/* 公共样式 */
:root {
    --primary-color: #ffb6c1;
    --secondary-color: #ffffff;
    --light-pink: #ffe4e9;
    --dark-pink: #ff9aae;
    --text-color: #333;
    --light-gray: #f8f9fa;
    --border-radius: 10px;
    --box-shadow: 0 5px 15px rgba(255, 182, 193, 0.1);
}

/* 弹窗遮罩 */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 提示框 */
.alert {
    padding: 12px;
    margin-bottom: 20px;
    border-radius: 5px;
    border-left: 4px solid;
    animation: fadeIn 0.3s ease;
}

.alert-error {
    background: #ffebee;
    color: #c62828;
    border-left-color: #ef5350;
}

.alert-success {
    background: #e8f5e9;
    color: #2e7d32;
    border-left-color: #4caf50;
}

/* 动画 */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 响应式通用 */
@media (max-width: 768px) {
    .mobile-full-width {
        width: 100% !important;
    }
}